enscript-1.6.5.90/0000755000175000017500000000000011606344226010606 500000000000000enscript-1.6.5.90/Makefile.am0000644000175000017500000000216211606145102012553 00000000000000# # Top level Makefile for enscript. # Copyright (c) 1995-1999 Markku Rossi # # Author: Markku Rossi # # # This file is part of GNU Enscript. # # Enscript is free software: you can redistribute 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. # # Enscript is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Enscript. If not, see . # SUBDIRS = intl compat afm afmlib lib scripts src po states docs w32 EXTRA_DIST = README.ESCAPES README.DOS ascii.txt \ asciifise.txt asciidkno.txt 88591.txt 88592.txt 88593.txt 88594.txt \ 88595.txt 88597.txt 88599.txt 885910.txt ibmpc.txt mac.txt vms.txt \ hp8.txt koi8.txt mtr.eps mtr_small.eps mtr_tiny.eps po/ChangeLog.old ACLOCAL_AMFLAGS = -I m4 enscript-1.6.5.90/configure0000755000175000017500000124641611606344071012451 00000000000000#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.68 for GNU Enscript 1.6.5.90. # # Report bugs to . # # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 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=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # 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.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS 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 $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test \$(( 1 + 1 )) = 2 || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV export CONFIG_SHELL case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"} fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org and $0: bug-enscript@gnu.org about your system, including any $0: error possibly output before this message. Then install $0: a modern shell, or manually run the script under such a $0: shell if you do have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_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 || $as_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" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_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 } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -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 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='mkdir -p "$as_dir"' 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'" test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='GNU Enscript' PACKAGE_TARNAME='enscript' PACKAGE_VERSION='1.6.5.90' PACKAGE_STRING='GNU Enscript 1.6.5.90' PACKAGE_BUGREPORT='bug-enscript@gnu.org' PACKAGE_URL='http://www.gnu.org/software/enscript/' ac_unique_file="src/gsint.h" # 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" gt_needs= ac_header_list= ac_subst_vars='am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS PERL POSUB LTLIBINTL LIBINTL INTLLIBS INTL_LIBTOOL_SUFFIX_PREFIX INTLOBJS GENCAT INSTOBJEXT DATADIRNAME CATOBJEXT USE_INCLUDED_LIBINTL BUILD_INCLUDED_LIBINTL LTLIBC WINDRES WOE32 WOE32DLL HAVE_WPRINTF HAVE_SNPRINTF HAVE_ASPRINTF HAVE_POSIX_PRINTF INTL_MACOSX_LIBS GLIBC21 INTLBISON LTLIBICONV LIBICONV LTLIBMULTITHREAD LIBMULTITHREAD LTLIBTHREAD LIBTHREAD LIBPTH_PREFIX LTLIBPTH LIBPTH PRI_MACROS_BROKEN HAVE_VISIBILITY CFLAG_VISIBILITY GLIBC2 host_os host_vendor host_cpu host build_os build_vendor build_cpu build XGETTEXT_EXTRA_OPTIONS MSGMERGE XGETTEXT_015 XGETTEXT GMSGFMT_015 MSGFMT_015 GMSGFMT MSGFMT GETTEXT_MACRO_VERSION USE_NLS PSLEVEL SPOOLER MEDIA LEXLIB LEX_OUTPUT_ROOT LEX YFLAGS YACC RANLIB LIBOBJS ALLOCA ANSI2KNR U EGREP GREP CPP am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE am__quote am__include DEPDIR OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC am__untar am__tar AMTAR am__leading_dot SET_MAKE AWK mkdir_p MKDIR_P INSTALL_STRIP_PROGRAM STRIP install_sh MAKEINFO AUTOHEADER AUTOMAKE AUTOCONF ACLOCAL VERSION PACKAGE CYGPATH_W am__isrc INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking enable_dependency_tracking enable_debug with_media with_spooler with_ps_level enable_nls enable_threads with_gnu_ld enable_rpath with_libpth_prefix with_libiconv_prefix with_included_gettext with_libintl_prefix ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP YACC YFLAGS' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac # 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_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_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'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe $as_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 .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures GNU Enscript 1.6.5.90 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/enscript] --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 Enscript 1.6.5.90:";; esac cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors --enable-debug enable debugging --disable-nls do not use Native Language Support --enable-threads={posix|solaris|pth|win32} specify multithreading API --disable-threads build without multithread safety --disable-rpath do not hardcode runtime library paths Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-media(=MEDIA) use output media Letter (MEDIA), default is A4 --with-spooler=SPOOLER set the printer spooler command --with-ps-level=LEVEL set the PostScript language level to LEVEL --with-gnu-ld assume the C compiler uses GNU ld default=no --with-libpth-prefix[=DIR] search for libpth in DIR/include and DIR/lib --without-libpth-prefix don't search for libpth in includedir and libdir --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-included-gettext use the GNU gettext library included here --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 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 (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor YACC The `Yet Another Compiler Compiler' implementation to use. Defaults to the first program found out of: `bison -y', `byacc', `yacc'. YFLAGS The list of arguments that will be passed by default to $YACC. This script will default YFLAGS to the empty string to avoid a default value of `-d' given by some make applications. 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 . GNU Enscript home page: . General help using GNU software: . _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_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 $as_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 Enscript configure 1.6.5.90 generated by GNU Autoconf 2.68 Copyright (C) 2010 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## # ac_fn_c_try_compile LINENO # -------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_compile # ac_fn_c_try_cpp LINENO # ---------------------- # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } > conftest.i && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_cpp # ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists, giving a warning if it cannot be compiled using # the include files in INCLUDES and setting the cache variable VAR # accordingly. ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if eval \${$3+:} false; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 $as_echo_n "checking $2 usability... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_header_compiler=yes else ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 $as_echo_n "checking $2 presence... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <$2> _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : ac_header_preproc=yes else ac_header_preproc=no fi rm -f conftest.err conftest.i conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( yes:no: ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; no:yes:* ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ( $as_echo "## ----------------------------------- ## ## Report this to bug-enscript@gnu.org ## ## ----------------------------------- ##" ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_mongrel # ac_fn_c_try_run LINENO # ---------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes # that executables *can* be run. ac_fn_c_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : ac_retval=0 else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_run # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists and can be compiled using the include files in # INCLUDES, setting the cache variable VAR accordingly. ac_fn_c_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_compile # ac_fn_c_check_type LINENO TYPE VAR INCLUDES # ------------------------------------------- # Tests whether TYPE exists after having included INCLUDES, setting cache # variable VAR accordingly. ac_fn_c_check_type () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=no" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof ($2)) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof (($2))) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else eval "$3=yes" 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 eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_type # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_link # ac_fn_c_check_func LINENO FUNC VAR # ---------------------------------- # Tests whether FUNC exists, setting the cache variable VAR accordingly ac_fn_c_check_func () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case declares $2. For example, HP-UX 11i declares gettimeofday. */ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $2 (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $2 /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $2 (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$2 || defined __stub___$2 choke me #endif int main () { return $2 (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_func # ac_fn_c_compute_int LINENO EXPR VAR INCLUDES # -------------------------------------------- # Tries to find the compile-time value of EXPR in a program that includes # INCLUDES, setting VAR accordingly. Returns whether the value could be # computed ac_fn_c_compute_int () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if test "$cross_compiling" = yes; then # Depending upon the size, compute the lo and hi bounds. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) >= 0)]; test_array [0] = 0 ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_lo=0 ac_mid=0 while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) <= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_hi=$ac_mid; break else as_fn_arith $ac_mid + 1 && ac_lo=$as_val if test $ac_lo -le $ac_mid; then ac_lo= ac_hi= break fi as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) < 0)]; test_array [0] = 0 ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_hi=-1 ac_mid=-1 while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) >= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_lo=$ac_mid; break else as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val if test $ac_mid -le $ac_hi; then ac_lo= ac_hi= break fi as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else ac_lo= ac_hi= fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # Binary search between lo and hi bounds. while test "x$ac_lo" != "x$ac_hi"; do as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) <= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_hi=$ac_mid else as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done case $ac_lo in #(( ?*) eval "$3=\$ac_lo"; ac_retval=0 ;; '') ac_retval=1 ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 static long int longval () { return $2; } static unsigned long int ulongval () { return $2; } #include #include int main () { FILE *f = fopen ("conftest.val", "w"); if (! f) return 1; if (($2) < 0) { long int i = longval (); if (i != ($2)) return 1; fprintf (f, "%ld", i); } else { unsigned long int i = ulongval (); if (i != ($2)) return 1; fprintf (f, "%lu", i); } /* Do not output a trailing newline, as this causes \r\n confusion on some platforms. */ return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : echo >>conftest.val; read $3 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 Enscript $as_me 1.6.5.90, which was generated by GNU Autoconf 2.68. 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=. $as_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=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo $as_echo "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo $as_echo "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then $as_echo "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then $as_echo "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_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'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > 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 cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then # We do not want a PATH search for config.site. case $CONFIG_SITE in #(( -*) ac_site_file1=./$CONFIG_SITE;; */*) ac_site_file1=$CONFIG_SITE;; *) ac_site_file1=./$CONFIG_SITE;; esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi gt_needs="$gt_needs " as_fn_append ac_header_list " stdlib.h" as_fn_append ac_header_list " unistd.h" as_fn_append ac_header_list " sys/param.h" # 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,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_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 # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_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. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_config_headers="$ac_config_headers config.h" am__api_version='1.11' ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; 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 as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. 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. # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&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 rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$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' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } # Just in case sleep 1 echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;; esac # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( 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". as_fn_error $? "ls -t appears to fail. Make sure there is not a broken alias in your environment" "$LINENO" 5 fi test "$2" = conftest.file ) then # Ok. : else as_fn_error $? "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "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 $. # By default was `s,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5 $as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&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" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&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" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if ${ac_cv_path_mkdir+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS fi test -d ./--version && rmdir ./--version if test "${ac_cv_path_mkdir+set}" = set; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a # value for MKDIR_P within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. MKDIR_P="$ac_install_sh -d" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } mkdir_p="$MKDIR_P" case $mkdir_p in [\\/$]* | ?:[\\/]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac 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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AWK+:} false; then : $as_echo_n "(cached) " >&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" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : $as_echo_n "(cached) " >&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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "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 if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE='enscript' VERSION='1.6.5.90' 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"} # 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_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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&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" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&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" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&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" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&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" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&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" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&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" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "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:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 $as_echo_n "checking whether the C compiler works... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+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 if test -z "$ac_file"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables See \`config.log' for more details" "$LINENO" 5; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 $as_echo_n "checking for C compiler default output file name... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details" "$LINENO" 5; } fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if ${ac_cv_objext+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* 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 ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else 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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&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 confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* 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" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg 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) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : 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 DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 $as_echo_n "checking for style of include used by $am_make... " >&6; } am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from `make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 $as_echo "$_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= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if ${am_cv_CC_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&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 am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if ${ac_cv_prog_CPP+:} false; then : $as_echo_n "(cached) " >&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 confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 $as_echo "$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 confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } if ${ac_cv_path_GREP+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS 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 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_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 as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } if ${ac_cv_path_EGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS 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 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_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 as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else 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 confdefs.h - <<_ACEOF >conftest.$ac_ext /* 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 confdefs.h - <<_ACEOF >conftest.$ac_ext /* 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 confdefs.h - <<_ACEOF >conftest.$ac_ext /* 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 if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h 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=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default" if test "x$ac_cv_header_minix_config_h" = xyes; then : MINIX=yes else MINIX= fi if test "$MINIX" = yes; then $as_echo "#define _POSIX_SOURCE 1" >>confdefs.h $as_echo "#define _POSIX_1_SOURCE 2" >>confdefs.h $as_echo "#define _MINIX 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5 $as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; } if ${ac_cv_safe_to_define___extensions__+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ # define __EXTENSIONS__ 1 $ac_includes_default int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_safe_to_define___extensions__=yes else ac_cv_safe_to_define___extensions__=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5 $as_echo "$ac_cv_safe_to_define___extensions__" >&6; } test $ac_cv_safe_to_define___extensions__ = yes && $as_echo "#define __EXTENSIONS__ 1" >>confdefs.h $as_echo "#define _ALL_SOURCE 1" >>confdefs.h $as_echo "#define _GNU_SOURCE 1" >>confdefs.h $as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: checking for function prototypes" >&5 $as_echo_n "checking for function prototypes... " >&6; } if test "$ac_cv_prog_cc_c89" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } $as_echo "#define PROTOTYPES 1" >>confdefs.h $as_echo "#define __PROTOTYPES 1" >>confdefs.h else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "$ac_cv_prog_cc_stdc" != no; then U= ANSI2KNR= else U=_ ANSI2KNR=./ansi2knr fi # Ensure some checks needed by ansi2knr itself. for ac_header in string.h do : ac_fn_c_check_header_mongrel "$LINENO" "string.h" "ac_cv_header_string_h" "$ac_includes_default" if test "x$ac_cv_header_string_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRING_H 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 $as_echo_n "checking for an ANSI C-conforming const... " >&6; } if ${ac_cv_c_const+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* 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 if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_const=yes else ac_cv_c_const=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 $as_echo "$ac_cv_c_const" >&6; } if test $ac_cv_c_const = no; then $as_echo "#define const /**/" >>confdefs.h fi ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" if test "x$ac_cv_type_size_t" = xyes; then : else cat >>confdefs.h <<_ACEOF #define size_t unsigned int _ACEOF fi # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # for constant arguments. Useless! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5 $as_echo_n "checking for working alloca.h... " >&6; } if ${ac_cv_working_alloca_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { char *p = (char *) alloca (2 * sizeof (int)); if (p) return 0; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_working_alloca_h=yes else ac_cv_working_alloca_h=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_alloca_h" >&5 $as_echo "$ac_cv_working_alloca_h" >&6; } if test $ac_cv_working_alloca_h = yes; then $as_echo "#define HAVE_ALLOCA_H 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5 $as_echo_n "checking for alloca... " >&6; } if ${ac_cv_func_alloca_works+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* 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 */ void *alloca (size_t); # endif # endif # endif # endif #endif int main () { char *p = (char *) alloca (1); if (p) return 0; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_func_alloca_works=yes else ac_cv_func_alloca_works=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_alloca_works" >&5 $as_echo "$ac_cv_func_alloca_works" >&6; } if test $ac_cv_func_alloca_works = yes; then $as_echo "#define HAVE_ALLOCA 1" >>confdefs.h else # The SVR3 libPW and SVR4 libucb both contain incompatible functions # that cause trouble. Some versions do not even contain alloca or # contain a buggy version. If you still want to use their alloca, # use ar to extract alloca.o from them instead of compiling alloca.c. ALLOCA=\${LIBOBJDIR}alloca.$ac_objext $as_echo "#define C_ALLOCA 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether \`alloca.c' needs Cray hooks" >&5 $as_echo_n "checking whether \`alloca.c' needs Cray hooks... " >&6; } if ${ac_cv_os_cray+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* 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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_os_cray" >&5 $as_echo "$ac_cv_os_cray" >&6; } if test $ac_cv_os_cray = yes; then for ac_func in _getb67 GETB67 getb67; do as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define CRAY_STACKSEG_END $ac_func _ACEOF break fi done fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5 $as_echo_n "checking stack direction for C alloca... " >&6; } if ${ac_cv_c_stack_direction+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_c_stack_direction=0 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* 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 if ac_fn_c_try_run "$LINENO"; then : ac_cv_c_stack_direction=1 else ac_cv_c_stack_direction=-1 fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_stack_direction" >&5 $as_echo "$ac_cv_c_stack_direction" >&6; } cat >>confdefs.h <<_ACEOF #define STACK_DIRECTION $ac_cv_c_stack_direction _ACEOF fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else 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 confdefs.h - <<_ACEOF >conftest.$ac_ext /* 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 confdefs.h - <<_ACEOF >conftest.$ac_ext /* 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 confdefs.h - <<_ACEOF >conftest.$ac_ext /* 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 if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi for ac_header in string.h stdlib.h unistd.h stdarg.h math.h pwd.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in sys/types.h sys/stat.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_func in strchr getcwd do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done ac_fn_c_check_func "$LINENO" "strerror" "ac_cv_func_strerror" if test "x$ac_cv_func_strerror" = xyes; then : $as_echo "#define HAVE_STRERROR 1" >>confdefs.h else case " $LIBOBJS " in *" strerror.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS strerror.$ac_objext" ;; esac fi ac_fn_c_check_func "$LINENO" "memmove" "ac_cv_func_memmove" if test "x$ac_cv_func_memmove" = xyes; then : $as_echo "#define HAVE_MEMMOVE 1" >>confdefs.h else case " $LIBOBJS " in *" memmove.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS memmove.$ac_objext" ;; esac fi ac_fn_c_check_func "$LINENO" "memcpy" "ac_cv_func_memcpy" if test "x$ac_cv_func_memcpy" = xyes; then : $as_echo "#define HAVE_MEMCPY 1" >>confdefs.h else case " $LIBOBJS " in *" memcpy.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS memcpy.$ac_objext" ;; esac fi ac_fn_c_check_func "$LINENO" "strtoul" "ac_cv_func_strtoul" if test "x$ac_cv_func_strtoul" = xyes; then : $as_echo "#define HAVE_STRTOUL 1" >>confdefs.h else case " $LIBOBJS " in *" strtoul.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS strtoul.$ac_objext" ;; esac fi for ac_func in vprintf do : ac_fn_c_check_func "$LINENO" "vprintf" "ac_cv_func_vprintf" if test "x$ac_cv_func_vprintf" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_VPRINTF 1 _ACEOF ac_fn_c_check_func "$LINENO" "_doprnt" "ac_cv_func__doprnt" if test "x$ac_cv_func__doprnt" = xyes; then : $as_echo "#define HAVE_DOPRNT 1" >>confdefs.h fi fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lsun" >&5 $as_echo_n "checking for main in -lsun... " >&6; } if ${ac_cv_lib_sun_main+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsun $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { return main (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_sun_main=yes else ac_cv_lib_sun_main=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sun_main" >&5 $as_echo "$ac_cv_lib_sun_main" >&6; } if test "x$ac_cv_lib_sun_main" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBSUN 1 _ACEOF LIBS="-lsun $LIBS" fi ac_fn_c_check_func "$LINENO" "gethostname" "ac_cv_func_gethostname" if test "x$ac_cv_func_gethostname" = xyes; then : else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostname in -lnsl" >&5 $as_echo_n "checking for gethostname in -lnsl... " >&6; } if ${ac_cv_lib_nsl_gethostname+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lnsl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char gethostname (); int main () { return gethostname (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_nsl_gethostname=yes else ac_cv_lib_nsl_gethostname=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_gethostname" >&5 $as_echo "$ac_cv_lib_nsl_gethostname" >&6; } if test "x$ac_cv_lib_nsl_gethostname" = xyes; then : LIBS="$LIBS -lnsl" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostname in -lsocket" >&5 $as_echo_n "checking for gethostname in -lsocket... " >&6; } if ${ac_cv_lib_socket_gethostname+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsocket $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char gethostname (); int main () { return gethostname (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_socket_gethostname=yes else ac_cv_lib_socket_gethostname=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_gethostname" >&5 $as_echo "$ac_cv_lib_socket_gethostname" >&6; } if test "x$ac_cv_lib_socket_gethostname" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBSOCKET 1 _ACEOF LIBS="-lsocket $LIBS" fi fi 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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_RANLIB+:} false; then : $as_echo_n "(cached) " >&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" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 $as_echo "$RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : $as_echo_n "(cached) " >&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" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 $as_echo "$ac_ct_RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then RANLIB=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB fi else RANLIB="$ac_cv_prog_RANLIB" fi 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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_YACC+:} false; then : $as_echo_n "(cached) " >&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" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi YACC=$ac_cv_prog_YACC if test -n "$YACC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $YACC" >&5 $as_echo "$YACC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$YACC" && break done test -n "$YACC" || YACC="yacc" 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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_LEX+:} false; then : $as_echo_n "(cached) " >&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" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi LEX=$ac_cv_prog_LEX if test -n "$LEX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LEX" >&5 $as_echo "$LEX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "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 ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$LEX conftest.l") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking lex output file root" >&5 $as_echo_n "checking lex output file root... " >&6; } if ${ac_cv_prog_lex_root+:} false; then : $as_echo_n "(cached) " >&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 as_fn_error $? "cannot find output from $LEX; giving up" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_lex_root" >&5 $as_echo "$ac_cv_prog_lex_root" >&6; } LEX_OUTPUT_ROOT=$ac_cv_prog_lex_root if test -z "${LEXLIB+set}"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking lex library" >&5 $as_echo_n "checking lex library... " >&6; } if ${ac_cv_lib_lex+:} false; then : $as_echo_n "(cached) " >&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 confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ `cat $LEX_OUTPUT_ROOT.c` _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_lex=$ac_lib fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext test "$ac_cv_lib_lex" != 'none needed' && break done LIBS=$ac_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lex" >&5 $as_echo "$ac_cv_lib_lex" >&6; } test "$ac_cv_lib_lex" != 'none needed' && LEXLIB=$ac_cv_lib_lex fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether yytext is a pointer" >&5 $as_echo_n "checking whether yytext is a pointer... " >&6; } if ${ac_cv_prog_lex_yytext_pointer+:} false; then : $as_echo_n "(cached) " >&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 confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define YYTEXT_POINTER 1 `cat $LEX_OUTPUT_ROOT.c` _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_prog_lex_yytext_pointer=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_lex_yytext_pointer" >&5 $as_echo "$ac_cv_prog_lex_yytext_pointer" >&6; } if test $ac_cv_prog_lex_yytext_pointer = yes; then $as_echo "#define YYTEXT_POINTER 1" >>confdefs.h fi rm -f conftest.l $LEX_OUTPUT_ROOT.c fi if test "$LEX" = :; then LEX=${am_missing_run}flex fi # Check whether --enable-debug was given. if test "${enable_debug+set}" = set; then : enableval=$enable_debug; echo enabling debugging if test -n "$GCC"; then CFLAGS="$CFLAGS -Wall" fi fi # Check whether --with-media was given. if test "${with_media+set}" = set; then : withval=$with_media; if test "X$withval" != "Xno"; then if test "X$withval" = "Xyes"; then ac_cv_value_media='Letter' else ac_cv_value_media=$withval fi else ac_cv_value_media=${MEDIA-A4} fi else ac_cv_value_media=${MEDIA-A4} fi MEDIA=$ac_cv_value_media # Extract the first word of "lpr", so it can be a program name with args. set dummy lpr; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_SPOOLER+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$SPOOLER"; then ac_cv_prog_SPOOLER="$SPOOLER" # 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_SPOOLER="lpr" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi SPOOLER=$ac_cv_prog_SPOOLER if test -n "$SPOOLER"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SPOOLER" >&5 $as_echo "$SPOOLER" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "lp", so it can be a program name with args. set dummy lp; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_SPOOLER+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$SPOOLER"; then ac_cv_prog_SPOOLER="$SPOOLER" # 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_SPOOLER="lp" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi SPOOLER=$ac_cv_prog_SPOOLER if test -n "$SPOOLER"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SPOOLER" >&5 $as_echo "$SPOOLER" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Check whether --with-spooler was given. if test "${with_spooler+set}" = set; then : withval=$with_spooler; if test "X$withval" != "Xno"; then SPOOLER=$withval fi fi if test "X$SPOOLER" = "X"; then SPOOLER=lpr fi PSLEVEL="2" # Check whether --with-ps-level was given. if test "${with_ps_level+set}" = set; then : withval=$with_ps_level; if test "X$withval" != "Xno"; then PSLEVEL=$withval fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5 $as_echo_n "checking whether NLS is requested... " >&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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 $as_echo "$USE_NLS" >&6; } GETTEXT_MACRO_VERSION=0.17 # Prepare PATH_SEPARATOR. # 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 # Find out how to test for executable files. Don't use a zero-byte file, # as systems may use methods other than mode bits to determine executability. cat >conf$$.file <<_ASEOF #! /bin/sh exit 0 _ASEOF chmod +x conf$$.file if test -x conf$$.file >/dev/null 2>&1; then ac_executable_p="test -x" else ac_executable_p="test -f" fi rm -f conf$$.file # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_MSGFMT+:} false; then : $as_echo_n "(cached) " >&6 else case "$MSGFMT" in [\\/]* | ?:[\\/]*) ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. ;; *) ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then echo "$as_me: trying $ac_dir/$ac_word..." >&5 if $ac_dir/$ac_word --statistics /dev/null >&5 2>&1 && (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then ac_cv_path_MSGFMT="$ac_dir/$ac_word$ac_exec_ext" break 2 fi fi done done IFS="$ac_save_IFS" test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":" ;; esac fi MSGFMT="$ac_cv_path_MSGFMT" if test "$MSGFMT" != ":"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 $as_echo "$MSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_GMSGFMT+:} false; then : $as_echo_n "(cached) " >&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" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" ;; esac fi GMSGFMT=$ac_cv_path_GMSGFMT if test -n "$GMSGFMT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 $as_echo "$GMSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;; *) MSGFMT_015=$MSGFMT ;; esac case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;; *) GMSGFMT_015=$GMSGFMT ;; esac # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then 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 # Find out how to test for executable files. Don't use a zero-byte file, # as systems may use methods other than mode bits to determine executability. cat >conf$$.file <<_ASEOF #! /bin/sh exit 0 _ASEOF chmod +x conf$$.file if test -x conf$$.file >/dev/null 2>&1; then ac_executable_p="test -x" else ac_executable_p="test -f" fi rm -f conf$$.file # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_XGETTEXT+:} false; then : $as_echo_n "(cached) " >&6 else case "$XGETTEXT" in [\\/]* | ?:[\\/]*) ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. ;; *) ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then echo "$as_me: trying $ac_dir/$ac_word..." >&5 if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&5 2>&1 && (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then ac_cv_path_XGETTEXT="$ac_dir/$ac_word$ac_exec_ext" break 2 fi fi done done IFS="$ac_save_IFS" test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" ;; esac fi XGETTEXT="$ac_cv_path_XGETTEXT" if test "$XGETTEXT" != ":"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 $as_echo "$XGETTEXT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi rm -f messages.po case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;; *) XGETTEXT_015=$XGETTEXT ;; esac # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then 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 # Find out how to test for executable files. Don't use a zero-byte file, # as systems may use methods other than mode bits to determine executability. cat >conf$$.file <<_ASEOF #! /bin/sh exit 0 _ASEOF chmod +x conf$$.file if test -x conf$$.file >/dev/null 2>&1; then ac_executable_p="test -x" else ac_executable_p="test -f" fi rm -f conf$$.file # Extract the first word of "msgmerge", so it can be a program name with args. set dummy msgmerge; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_MSGMERGE+:} false; then : $as_echo_n "(cached) " >&6 else case "$MSGMERGE" in [\\/]* | ?:[\\/]*) ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. ;; *) ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then echo "$as_me: trying $ac_dir/$ac_word..." >&5 if $ac_dir/$ac_word --update -q /dev/null /dev/null >&5 2>&1; then ac_cv_path_MSGMERGE="$ac_dir/$ac_word$ac_exec_ext" break 2 fi fi done done IFS="$ac_save_IFS" test -z "$ac_cv_path_MSGMERGE" && ac_cv_path_MSGMERGE=":" ;; esac fi MSGMERGE="$ac_cv_path_MSGMERGE" if test "$MSGMERGE" != ":"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 $as_echo "$MSGMERGE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$localedir" || localedir='${datadir}/locale' test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS= ac_config_commands="$ac_config_commands po-directories" # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } if ${ac_cv_build+:} false; then : $as_echo_n "(cached) " >&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 && as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' set x $ac_cv_build shift build_cpu=$1 build_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: build_os=$* IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } if ${ac_cv_host+:} false; then : $as_echo_n "(cached) " >&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` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' set x $ac_cv_host shift host_cpu=$1 host_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: host_os=$* IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C Library 2 or newer" >&5 $as_echo_n "checking whether we are using the GNU C Library 2 or newer... " >&6; } if ${ac_cv_gnu_library_2+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef __GNU_LIBRARY__ #if (__GLIBC__ >= 2) Lucky GNU user #endif #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "Lucky GNU user" >/dev/null 2>&1; then : ac_cv_gnu_library_2=yes else ac_cv_gnu_library_2=no fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_gnu_library_2" >&5 $as_echo "$ac_cv_gnu_library_2" >&6; } GLIBC2="$ac_cv_gnu_library_2" CFLAG_VISIBILITY= HAVE_VISIBILITY=0 if test -n "$GCC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for simple visibility declarations" >&5 $as_echo_n "checking for simple visibility declarations... " >&6; } if ${gl_cv_cc_visibility+:} false; then : $as_echo_n "(cached) " >&6 else gl_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -fvisibility=hidden" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ extern __attribute__((__visibility__("hidden"))) int hiddenvar; extern __attribute__((__visibility__("default"))) int exportedvar; extern __attribute__((__visibility__("hidden"))) int hiddenfunc (void); extern __attribute__((__visibility__("default"))) int exportedfunc (void); int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_cc_visibility=yes else gl_cv_cc_visibility=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS="$gl_save_CFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_visibility" >&5 $as_echo "$gl_cv_cc_visibility" >&6; } if test $gl_cv_cc_visibility = yes; then CFLAG_VISIBILITY="-fvisibility=hidden" HAVE_VISIBILITY=1 fi fi cat >>confdefs.h <<_ACEOF #define HAVE_VISIBILITY $HAVE_VISIBILITY _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 $as_echo_n "checking for inline... " >&6; } if ${ac_cv_c_inline+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifndef __cplusplus typedef int foo_t; static $ac_kw foo_t static_foo () {return 0; } $ac_kw foo_t foo () {return 0; } #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_inline=$ac_kw fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext test "$ac_cv_c_inline" != no && break done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 $as_echo "$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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdint.h" >&5 $as_echo_n "checking for stdint.h... " >&6; } if ${gl_cv_header_stdint_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { uintmax_t i = (uintmax_t) -1; return !i; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_header_stdint_h=yes else gl_cv_header_stdint_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_stdint_h" >&5 $as_echo "$gl_cv_header_stdint_h" >&6; } if test $gl_cv_header_stdint_h = yes; then cat >>confdefs.h <<_ACEOF #define HAVE_STDINT_H_WITH_UINTMAX 1 _ACEOF fi for ac_header in $ac_header_list do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_func in getpagesize do : ac_fn_c_check_func "$LINENO" "getpagesize" "ac_cv_func_getpagesize" if test "x$ac_cv_func_getpagesize" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_GETPAGESIZE 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working mmap" >&5 $as_echo_n "checking for working mmap... " >&6; } if ${ac_cv_func_mmap_fixed_mapped+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_func_mmap_fixed_mapped=no else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default /* malloc might have been renamed as rpl_malloc. */ #undef malloc /* Thanks to Mike Haertel and Jim Avera for this test. Here is a matrix of mmap possibilities: mmap private not fixed mmap private fixed at somewhere currently unmapped mmap private fixed at somewhere already mapped mmap shared not fixed mmap shared fixed at somewhere currently unmapped mmap shared fixed at somewhere already mapped For private mappings, we should verify that changes cannot be read() back from the file, nor mmap's back from the file at a different address. (There have been systems where private was not correctly implemented like the infamous i386 svr4.0, and systems where the VM page cache was not coherent with the file system buffer cache like early versions of FreeBSD and possibly contemporary NetBSD.) For shared mappings, we should conversely verify that changes get propagated back to all the places they're supposed to be. Grep wants private fixed already mapped. The main things grep needs to know about mmap are: * does it exist and is it safe to write into the mmap'd area * how to use it (BSD variants) */ #include #include #if !defined STDC_HEADERS && !defined HAVE_STDLIB_H char *malloc (); #endif /* This mess was copied from the GNU getpagesize.h. */ #ifndef HAVE_GETPAGESIZE # ifdef _SC_PAGESIZE # define getpagesize() sysconf(_SC_PAGESIZE) # else /* no _SC_PAGESIZE */ # ifdef HAVE_SYS_PARAM_H # include # ifdef EXEC_PAGESIZE # define getpagesize() EXEC_PAGESIZE # else /* no EXEC_PAGESIZE */ # ifdef NBPG # define getpagesize() NBPG * CLSIZE # ifndef CLSIZE # define CLSIZE 1 # endif /* no CLSIZE */ # else /* no NBPG */ # ifdef NBPC # define getpagesize() NBPC # else /* no NBPC */ # ifdef PAGESIZE # define getpagesize() PAGESIZE # endif /* PAGESIZE */ # endif /* no NBPC */ # endif /* no NBPG */ # endif /* no EXEC_PAGESIZE */ # else /* no HAVE_SYS_PARAM_H */ # define getpagesize() 8192 /* punt totally */ # endif /* no HAVE_SYS_PARAM_H */ # endif /* no _SC_PAGESIZE */ #endif /* no HAVE_GETPAGESIZE */ int main () { char *data, *data2, *data3; const char *cdata2; int i, pagesize; int fd, fd2; pagesize = getpagesize (); /* First, make a file with some known garbage in it. */ data = (char *) malloc (pagesize); if (!data) return 1; for (i = 0; i < pagesize; ++i) *(data + i) = rand (); umask (0); fd = creat ("conftest.mmap", 0600); if (fd < 0) return 2; if (write (fd, data, pagesize) != pagesize) return 3; close (fd); /* Next, check that the tail of a page is zero-filled. File must have non-zero length, otherwise we risk SIGBUS for entire page. */ fd2 = open ("conftest.txt", O_RDWR | O_CREAT | O_TRUNC, 0600); if (fd2 < 0) return 4; cdata2 = ""; if (write (fd2, cdata2, 1) != 1) return 5; data2 = (char *) mmap (0, pagesize, PROT_READ | PROT_WRITE, MAP_SHARED, fd2, 0L); if (data2 == MAP_FAILED) return 6; for (i = 0; i < pagesize; ++i) if (*(data2 + i)) return 7; close (fd2); if (munmap (data2, pagesize)) return 8; /* Next, try to mmap the file at a fixed address which already has something else allocated at it. If we can, also make sure that we see the same garbage. */ fd = open ("conftest.mmap", O_RDWR); if (fd < 0) return 9; if (data2 != mmap (data2, pagesize, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_FIXED, fd, 0L)) return 10; for (i = 0; i < pagesize; ++i) if (*(data + i) != *(data2 + i)) return 11; /* Finally, make sure that changes to the mapped area do not percolate back to the file as seen by read(). (This is a bug on some variants of i386 svr4.0.) */ for (i = 0; i < pagesize; ++i) *(data2 + i) = *(data2 + i) + 1; data3 = (char *) malloc (pagesize); if (!data3) return 12; if (read (fd, data3, pagesize) != pagesize) return 13; for (i = 0; i < pagesize; ++i) if (*(data + i) != *(data3 + i)) return 14; close (fd); return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_mmap_fixed_mapped=yes else ac_cv_func_mmap_fixed_mapped=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_mmap_fixed_mapped" >&5 $as_echo "$ac_cv_func_mmap_fixed_mapped" >&6; } if test $ac_cv_func_mmap_fixed_mapped = yes; then $as_echo "#define HAVE_MMAP 1" >>confdefs.h fi rm -f conftest.mmap conftest.txt { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether integer division by zero raises SIGFPE" >&5 $as_echo_n "checking whether integer division by zero raises SIGFPE... " >&6; } if ${gt_cv_int_divbyzero_sigfpe+:} false; then : $as_echo_n "(cached) " >&6 else gt_cv_int_divbyzero_sigfpe= case "$host_os" in macos* | darwin[6-9]* | darwin[1-9][0-9]*) # On MacOS X 10.2 or newer, just assume the same as when cross- # compiling. If we were to perform the real test, 1 Crash Report # dialog window would pop up. case "$host_cpu" in i[34567]86 | x86_64) gt_cv_int_divbyzero_sigfpe="guessing yes" ;; esac ;; esac if test -z "$gt_cv_int_divbyzero_sigfpe"; then if test "$cross_compiling" = yes; then : # Guess based on the CPU. case "$host_cpu" in alpha* | i[34567]86 | x86_64 | m68k | s390*) gt_cv_int_divbyzero_sigfpe="guessing yes";; *) gt_cv_int_divbyzero_sigfpe="guessing no";; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include static void sigfpe_handler (int sig) { /* 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); } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gt_cv_int_divbyzero_sigfpe=yes else gt_cv_int_divbyzero_sigfpe=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_int_divbyzero_sigfpe" >&5 $as_echo "$gt_cv_int_divbyzero_sigfpe" >&6; } case "$gt_cv_int_divbyzero_sigfpe" in *yes) value=1;; *) value=0;; esac cat >>confdefs.h <<_ACEOF #define INTDIV0_RAISES_SIGFPE $value _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inttypes.h" >&5 $as_echo_n "checking for inttypes.h... " >&6; } if ${gl_cv_header_inttypes_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { uintmax_t i = (uintmax_t) -1; return !i; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_header_inttypes_h=yes else gl_cv_header_inttypes_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_inttypes_h" >&5 $as_echo "$gl_cv_header_inttypes_h" >&6; } if test $gl_cv_header_inttypes_h = yes; then cat >>confdefs.h <<_ACEOF #define HAVE_INTTYPES_H_WITH_UINTMAX 1 _ACEOF fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for unsigned long long int" >&5 $as_echo_n "checking for unsigned long long int... " >&6; } if ${ac_cv_type_unsigned_long_long_int+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Test preprocessor. */ #if ! (-9223372036854775807LL < 0 && 0 < 9223372036854775807ll) error in preprocessor; #endif #if ! (18446744073709551615ULL <= -1ull) error in preprocessor; #endif /* Test literals. */ long long int ll = 9223372036854775807ll; long long int nll = -9223372036854775807LL; unsigned long long int ull = 18446744073709551615ULL; /* Test constant expressions. */ typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll) ? 1 : -1)]; typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1 ? 1 : -1)]; int i = 63; int main () { /* Test availability of runtime routines for shift and division. */ long long int llmax = 9223372036854775807ll; unsigned long long int ullmax = 18446744073709551615ull; return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i) | (llmax / ll) | (llmax % ll) | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i) | (ullmax / ull) | (ullmax % ull)); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_type_unsigned_long_long_int=yes else ac_cv_type_unsigned_long_long_int=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_unsigned_long_long_int" >&5 $as_echo "$ac_cv_type_unsigned_long_long_int" >&6; } if test $ac_cv_type_unsigned_long_long_int = yes; then $as_echo "#define HAVE_UNSIGNED_LONG_LONG_INT 1" >>confdefs.h fi if test $gl_cv_header_inttypes_h = no && test $gl_cv_header_stdint_h = no; then test $ac_cv_type_unsigned_long_long_int = yes \ && ac_type='unsigned long long' \ || ac_type='unsigned long' cat >>confdefs.h <<_ACEOF #define uintmax_t $ac_type _ACEOF else $as_echo "#define HAVE_UINTMAX_T 1" >>confdefs.h fi for ac_header in inttypes.h do : ac_fn_c_check_header_mongrel "$LINENO" "inttypes.h" "ac_cv_header_inttypes_h" "$ac_includes_default" if test "x$ac_cv_header_inttypes_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_INTTYPES_H 1 _ACEOF fi done if test $ac_cv_header_inttypes_h = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the inttypes.h PRIxNN macros are broken" >&5 $as_echo_n "checking whether the inttypes.h PRIxNN macros are broken... " >&6; } if ${gt_cv_inttypes_pri_broken+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef PRId32 char *p = PRId32; #endif int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gt_cv_inttypes_pri_broken=no else gt_cv_inttypes_pri_broken=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_inttypes_pri_broken" >&5 $as_echo "$gt_cv_inttypes_pri_broken" >&6; } fi if test "$gt_cv_inttypes_pri_broken" = yes; then cat >>confdefs.h <<_ACEOF #define PRI_MACROS_BROKEN 1 _ACEOF PRI_MACROS_BROKEN=1 else PRI_MACROS_BROKEN=0 fi # Check whether --enable-threads was given. if test "${enable_threads+set}" = set; then : enableval=$enable_threads; gl_use_threads=$enableval else case "$host_os" in osf*) gl_use_threads=no ;; *) gl_use_threads=yes ;; esac fi if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then # For using : case "$host_os" in osf*) # On OSF/1, the compiler needs the flag -D_REENTRANT so that it # groks . cc also understands the flag -pthread, but # we don't use it because 1. gcc-2.95 doesn't understand -pthread, # 2. putting a flag into CPPFLAGS that has an effect on the linker # causes the AC_TRY_LINK test below to succeed unexpectedly, # leading to wrong values of LIBTHREAD and LTLIBTHREAD. CPPFLAGS="$CPPFLAGS -D_REENTRANT" ;; esac # Some systems optimize for single-threaded programs by default, and # need special flags to disable these optimizations. For example, the # definition of 'errno' in . case "$host_os" in aix* | freebsd*) CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE" ;; solaris*) CPPFLAGS="$CPPFLAGS -D_REENTRANT" ;; esac fi 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 # Prepare PATH_SEPARATOR. # 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 ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by GCC" >&5 $as_echo_n "checking for ld used by GCC... " >&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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi if ${acl_cv_path_LD+:} false; then : $as_echo_n "(cached) " >&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. case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in *GNU* | *'with BFD'*) test "$with_gnu_ld" != no && break ;; *) test "$with_gnu_ld" != yes && break ;; esac fi done IFS="$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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5 $as_echo "$LD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if ${acl_cv_prog_gnu_ld+:} false; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU ld's only accept -v. case `$LD -v 2>&1 &5 $as_echo "$acl_cv_prog_gnu_ld" >&6; } with_gnu_ld=$acl_cv_prog_gnu_ld { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shared library run path origin" >&5 $as_echo_n "checking for shared library run path origin... " >&6; } if ${acl_cv_rpath+:} false; then : $as_echo_n "(cached) " >&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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_rpath" >&5 $as_echo "$acl_cv_rpath" >&6; } wl="$acl_cv_wl" acl_libext="$acl_cv_libext" acl_shlibext="$acl_cv_shlibext" acl_libname_spec="$acl_cv_libname_spec" acl_library_names_spec="$acl_cv_library_names_spec" acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" acl_hardcode_direct="$acl_cv_hardcode_direct" acl_hardcode_minus_L="$acl_cv_hardcode_minus_L" # Check whether --enable-rpath was given. if test "${enable_rpath+set}" = set; then : enableval=$enable_rpath; : else enable_rpath=yes fi acl_libdirstem=lib searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` if test -n "$searchpath"; then acl_save_IFS="${IFS= }"; IFS=":" for searchdir in $searchpath; do if test -d "$searchdir"; then case "$searchdir" in */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; *) searchdir=`cd "$searchdir" && pwd` case "$searchdir" in */lib64 ) acl_libdirstem=lib64 ;; esac ;; esac fi done IFS="$acl_save_IFS" fi gl_threads_api=none LIBTHREAD= LTLIBTHREAD= LIBMULTITHREAD= LTLIBMULTITHREAD= if test "$gl_use_threads" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether imported symbols can be declared weak" >&5 $as_echo_n "checking whether imported symbols can be declared weak... " >&6; } gl_have_weak=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ extern void xyzzy (); #pragma weak xyzzy int main () { xyzzy(); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_have_weak=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_have_weak" >&5 $as_echo "$gl_have_weak" >&6; } if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then # On OSF/1, the compiler needs the flag -pthread or -D_REENTRANT so that # it groks . It's added above, in gl_LOCK_EARLY_BODY. ac_fn_c_check_header_mongrel "$LINENO" "pthread.h" "ac_cv_header_pthread_h" "$ac_includes_default" if test "x$ac_cv_header_pthread_h" = xyes; then : gl_have_pthread_h=yes else gl_have_pthread_h=no fi if test "$gl_have_pthread_h" = yes; then # Other possible tests: # -lpthreads (FSU threads, PCthreads) # -lgthreads gl_have_pthread= # Test whether both pthread_mutex_lock and pthread_mutexattr_init exist # in libc. IRIX 6.5 has the first one in both libc and libpthread, but # the second one only in libpthread, and lock.c needs it. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { pthread_mutex_lock((pthread_mutex_t*)0); pthread_mutexattr_init((pthread_mutexattr_t*)0); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_have_pthread=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext # Test for libpthread by looking for pthread_kill. (Not pthread_self, # since it is defined as a macro on OSF/1.) if test -n "$gl_have_pthread"; then # The program links fine without libpthread. But it may actually # need to link with libpthread in order to create multiple threads. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_kill in -lpthread" >&5 $as_echo_n "checking for pthread_kill in -lpthread... " >&6; } if ${ac_cv_lib_pthread_pthread_kill+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lpthread $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char pthread_kill (); int main () { return pthread_kill (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_pthread_pthread_kill=yes else ac_cv_lib_pthread_pthread_kill=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_kill" >&5 $as_echo "$ac_cv_lib_pthread_pthread_kill" >&6; } if test "x$ac_cv_lib_pthread_pthread_kill" = xyes; then : LIBMULTITHREAD=-lpthread LTLIBMULTITHREAD=-lpthread # On Solaris and HP-UX, most pthread functions exist also in libc. # Therefore pthread_in_use() needs to actually try to create a # thread: pthread_create from libc will fail, whereas # pthread_create will actually create a thread. case "$host_os" in solaris* | hpux*) $as_echo "#define PTHREAD_IN_USE_DETECTION_HARD 1" >>confdefs.h esac fi else # Some library is needed. Try libpthread and libc_r. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_kill in -lpthread" >&5 $as_echo_n "checking for pthread_kill in -lpthread... " >&6; } if ${ac_cv_lib_pthread_pthread_kill+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lpthread $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char pthread_kill (); int main () { return pthread_kill (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_pthread_pthread_kill=yes else ac_cv_lib_pthread_pthread_kill=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_kill" >&5 $as_echo "$ac_cv_lib_pthread_pthread_kill" >&6; } if test "x$ac_cv_lib_pthread_pthread_kill" = xyes; then : gl_have_pthread=yes LIBTHREAD=-lpthread LTLIBTHREAD=-lpthread LIBMULTITHREAD=-lpthread LTLIBMULTITHREAD=-lpthread fi if test -z "$gl_have_pthread"; then # For FreeBSD 4. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_kill in -lc_r" >&5 $as_echo_n "checking for pthread_kill in -lc_r... " >&6; } if ${ac_cv_lib_c_r_pthread_kill+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lc_r $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char pthread_kill (); int main () { return pthread_kill (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_c_r_pthread_kill=yes else ac_cv_lib_c_r_pthread_kill=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_r_pthread_kill" >&5 $as_echo "$ac_cv_lib_c_r_pthread_kill" >&6; } if test "x$ac_cv_lib_c_r_pthread_kill" = xyes; then : gl_have_pthread=yes LIBTHREAD=-lc_r LTLIBTHREAD=-lc_r LIBMULTITHREAD=-lc_r LTLIBMULTITHREAD=-lc_r fi fi fi if test -n "$gl_have_pthread"; then gl_threads_api=posix $as_echo "#define USE_POSIX_THREADS 1" >>confdefs.h if test -n "$LIBMULTITHREAD" || test -n "$LTLIBMULTITHREAD"; then if test $gl_have_weak = yes; then $as_echo "#define USE_POSIX_THREADS_WEAK 1" >>confdefs.h LIBTHREAD= LTLIBTHREAD= fi fi # OSF/1 4.0 and MacOS X 10.1 lack the pthread_rwlock_t type and the # pthread_rwlock_* functions. ac_fn_c_check_type "$LINENO" "pthread_rwlock_t" "ac_cv_type_pthread_rwlock_t" "#include " if test "x$ac_cv_type_pthread_rwlock_t" = xyes; then : $as_echo "#define HAVE_PTHREAD_RWLOCK 1" >>confdefs.h fi # glibc defines PTHREAD_MUTEX_RECURSIVE as enum, not as a macro. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { #if __FreeBSD__ == 4 error "No, in FreeBSD 4.0 recursive mutexes actually don't work." #else int x = (int)PTHREAD_MUTEX_RECURSIVE; return !x; #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : $as_echo "#define HAVE_PTHREAD_MUTEX_RECURSIVE 1" >>confdefs.h fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi fi fi if test -z "$gl_have_pthread"; then if test "$gl_use_threads" = yes || test "$gl_use_threads" = solaris; then gl_have_solaristhread= gl_save_LIBS="$LIBS" LIBS="$LIBS -lthread" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { thr_self(); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_have_solaristhread=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$gl_save_LIBS" if test -n "$gl_have_solaristhread"; then gl_threads_api=solaris LIBTHREAD=-lthread LTLIBTHREAD=-lthread LIBMULTITHREAD="$LIBTHREAD" LTLIBMULTITHREAD="$LTLIBTHREAD" $as_echo "#define USE_SOLARIS_THREADS 1" >>confdefs.h if test $gl_have_weak = yes; then $as_echo "#define USE_SOLARIS_THREADS_WEAK 1" >>confdefs.h LIBTHREAD= LTLIBTHREAD= fi fi fi fi if test "$gl_use_threads" = pth; then gl_save_CPPFLAGS="$CPPFLAGS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libpth" >&5 $as_echo_n "checking how to link with libpth... " >&6; } if ${ac_cv_libpth_libs+:} false; then : $as_echo_n "(cached) " >&6 else 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-libpth-prefix was given. if test "${with_libpth_prefix+set}" = set; then : withval=$with_libpth_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/$acl_libdirstem" fi fi fi LIBPTH= LTLIBPTH= INCPTH= LIBPTH_PREFIX= rpathdirs= ltrpathdirs= names_already_handled= names_next_round='pth ' 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" || LIBPTH="${LIBPTH}${LIBPTH:+ }$value" eval value=\"\$LTLIB$uppername\" test -z "$value" || LTLIBPTH="${LTLIBPTH}${LTLIBPTH:+ }$value" else : fi else found_dir= found_la= found_so= found_a= eval libname=\"$acl_libname_spec\" # typically: libname=lib$name if test -n "$acl_shlibext"; then shrext=".$acl_shlibext" # typically: shrext=.so else shrext= fi if test $use_additional = yes; then dir="$additional_libdir" if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi fi if test "X$found_dir" = "X"; then for x in $LDFLAGS $LTLIBPTH; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi ;; esac if test "X$found_dir" != "X"; then break fi done fi if test "X$found_dir" != "X"; then LTLIBPTH="${LTLIBPTH}${LTLIBPTH:+ }-L$found_dir -l$name" if test "X$found_so" != "X"; then if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/$acl_libdirstem"; then LIBPTH="${LIBPTH}${LIBPTH:+ }$found_so" else haveit= for x in $ltrpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $found_dir" fi if test "$acl_hardcode_direct" = yes; then LIBPTH="${LIBPTH}${LIBPTH:+ }$found_so" else if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then LIBPTH="${LIBPTH}${LIBPTH:+ }$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 $LIBPTH; 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 LIBPTH="${LIBPTH}${LIBPTH:+ }-L$found_dir" fi if test "$acl_hardcode_minus_L" != no; then LIBPTH="${LIBPTH}${LIBPTH:+ }$found_so" else LIBPTH="${LIBPTH}${LIBPTH:+ }-l$name" fi fi fi fi else if test "X$found_a" != "X"; then LIBPTH="${LIBPTH}${LIBPTH:+ }$found_a" else LIBPTH="${LIBPTH}${LIBPTH:+ }-L$found_dir -l$name" fi fi additional_includedir= case "$found_dir" in */$acl_libdirstem | */$acl_libdirstem/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` LIBPTH_PREFIX="$basedir" additional_includedir="$basedir/include" ;; esac if test "X$additional_includedir" != "X"; then if test "X$additional_includedir" != "X/usr/include"; then haveit= if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then for x in $CPPFLAGS $INCPTH; 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 INCPTH="${INCPTH}${INCPTH:+ }-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/$acl_libdirstem"; then haveit= if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then haveit= for x in $LDFLAGS $LIBPTH; 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 LIBPTH="${LIBPTH}${LIBPTH:+ }-L$additional_libdir" fi fi haveit= for x in $LDFLAGS $LTLIBPTH; 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 LTLIBPTH="${LTLIBPTH}${LTLIBPTH:+ }-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$,,'` ;; *) LIBPTH="${LIBPTH}${LIBPTH:+ }$dep" LTLIBPTH="${LTLIBPTH}${LTLIBPTH:+ }$dep" ;; esac done fi else LIBPTH="${LIBPTH}${LIBPTH:+ }-l$name" LTLIBPTH="${LTLIBPTH}${LTLIBPTH:+ }-l$name" fi fi fi done done if test "X$rpathdirs" != "X"; then if test -n "$acl_hardcode_libdir_separator"; then alldirs= for found_dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" done acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBPTH="${LIBPTH}${LIBPTH:+ }$flag" else for found_dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$found_dir" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBPTH="${LIBPTH}${LIBPTH:+ }$flag" done fi fi if test "X$ltrpathdirs" != "X"; then for found_dir in $ltrpathdirs; do LTLIBPTH="${LTLIBPTH}${LTLIBPTH:+ }-R$found_dir" done fi ac_cv_libpth_libs="$LIBPTH" ac_cv_libpth_ltlibs="$LTLIBPTH" ac_cv_libpth_cppflags="$INCPTH" ac_cv_libpth_prefix="$LIBPTH_PREFIX" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_libpth_libs" >&5 $as_echo "$ac_cv_libpth_libs" >&6; } LIBPTH="$ac_cv_libpth_libs" LTLIBPTH="$ac_cv_libpth_ltlibs" INCPTH="$ac_cv_libpth_cppflags" LIBPTH_PREFIX="$ac_cv_libpth_prefix" for element in $INCPTH; 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 HAVE_LIBPTH=yes gl_have_pth= gl_save_LIBS="$LIBS" LIBS="$LIBS -lpth" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { pth_self(); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_have_pth=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$gl_save_LIBS" if test -n "$gl_have_pth"; then gl_threads_api=pth LIBTHREAD="$LIBPTH" LTLIBTHREAD="$LTLIBPTH" LIBMULTITHREAD="$LIBTHREAD" LTLIBMULTITHREAD="$LTLIBTHREAD" $as_echo "#define USE_PTH_THREADS 1" >>confdefs.h if test -n "$LIBMULTITHREAD" || test -n "$LTLIBMULTITHREAD"; then if test $gl_have_weak = yes; then $as_echo "#define USE_PTH_THREADS_WEAK 1" >>confdefs.h LIBTHREAD= LTLIBTHREAD= fi fi else CPPFLAGS="$gl_save_CPPFLAGS" fi fi if test -z "$gl_have_pthread"; then if test "$gl_use_threads" = yes || test "$gl_use_threads" = win32; then if { case "$host_os" in mingw*) true;; *) false;; esac }; then gl_threads_api=win32 $as_echo "#define USE_WIN32_THREADS 1" >>confdefs.h fi fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for multithread API to use" >&5 $as_echo_n "checking for multithread API to use... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_threads_api" >&5 $as_echo "$gl_threads_api" >&6; } 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/$acl_libdirstem" fi fi fi LIBICONV= LTLIBICONV= INCICONV= LIBICONV_PREFIX= rpathdirs= ltrpathdirs= names_already_handled= names_next_round='iconv ' while test -n "$names_next_round"; do names_this_round="$names_next_round" names_next_round= for name in $names_this_round; do already_handled= for n in $names_already_handled; do if test "$n" = "$name"; then already_handled=yes break fi done if test -z "$already_handled"; then names_already_handled="$names_already_handled $name" uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` eval value=\"\$HAVE_LIB$uppername\" if test -n "$value"; then if test "$value" = yes; then eval value=\"\$LIB$uppername\" test -z "$value" || LIBICONV="${LIBICONV}${LIBICONV:+ }$value" eval value=\"\$LTLIB$uppername\" test -z "$value" || LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$value" else : fi else found_dir= found_la= found_so= found_a= eval libname=\"$acl_libname_spec\" # typically: libname=lib$name if test -n "$acl_shlibext"; then shrext=".$acl_shlibext" # typically: shrext=.so else shrext= fi if test $use_additional = yes; then dir="$additional_libdir" if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi fi if test "X$found_dir" = "X"; then for x in $LDFLAGS $LTLIBICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi ;; esac if test "X$found_dir" != "X"; then break fi done fi if test "X$found_dir" != "X"; then LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$found_dir -l$name" if test "X$found_so" != "X"; then if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/$acl_libdirstem"; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" else haveit= for x in $ltrpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $found_dir" fi if test "$acl_hardcode_direct" = yes; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" else if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" haveit= for x in $rpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $found_dir" fi else haveit= for x in $LDFLAGS $LIBICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir" fi if test "$acl_hardcode_minus_L" != no; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" else LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" fi fi fi fi else if test "X$found_a" != "X"; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_a" else LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir -l$name" fi fi additional_includedir= case "$found_dir" in */$acl_libdirstem | */$acl_libdirstem/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` LIBICONV_PREFIX="$basedir" additional_includedir="$basedir/include" ;; esac if test "X$additional_includedir" != "X"; then if test "X$additional_includedir" != "X/usr/include"; then haveit= if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then for x in $CPPFLAGS $INCICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_includedir"; then INCICONV="${INCICONV}${INCICONV:+ }-I$additional_includedir" fi fi fi fi fi if test -n "$found_la"; then save_libdir="$libdir" case "$found_la" in */* | *\\*) . "$found_la" ;; *) . "./$found_la" ;; esac libdir="$save_libdir" for dep in $dependency_libs; do case "$dep" in -L*) additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then haveit= if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then haveit= for x in $LDFLAGS $LIBICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$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 "$acl_hardcode_libdir_separator"; then alldirs= for found_dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" done acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" else for found_dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$found_dir" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" done fi fi if test "X$ltrpathdirs" != "X"; then for found_dir in $ltrpathdirs; do LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-R$found_dir" done fi cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int foo (int a) { a = __builtin_expect (a, 10); return a == 10 ? 0 : 1; } int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : $as_echo "#define HAVE_BUILTIN_EXPECT 1" >>confdefs.h fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext for ac_header in argz.h inttypes.h limits.h unistd.h sys/param.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_func in getcwd getegid geteuid getgid getuid mempcpy munmap \ stpcpy strcasecmp strdup strtoul tsearch argz_count argz_stringify \ argz_next __fsetlocking do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether feof_unlocked is declared" >&5 $as_echo_n "checking whether feof_unlocked is declared... " >&6; } if ${ac_cv_have_decl_feof_unlocked+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { #ifndef feof_unlocked char *p = (char *) feof_unlocked; #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_have_decl_feof_unlocked=yes else ac_cv_have_decl_feof_unlocked=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_decl_feof_unlocked" >&5 $as_echo "$ac_cv_have_decl_feof_unlocked" >&6; } if test $ac_cv_have_decl_feof_unlocked = yes; then gt_value=1 else gt_value=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_FEOF_UNLOCKED $gt_value _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fgets_unlocked is declared" >&5 $as_echo_n "checking whether fgets_unlocked is declared... " >&6; } if ${ac_cv_have_decl_fgets_unlocked+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { #ifndef fgets_unlocked char *p = (char *) fgets_unlocked; #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_have_decl_fgets_unlocked=yes else ac_cv_have_decl_fgets_unlocked=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_decl_fgets_unlocked" >&5 $as_echo "$ac_cv_have_decl_fgets_unlocked" >&6; } if test $ac_cv_have_decl_fgets_unlocked = yes; then gt_value=1 else gt_value=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_FGETS_UNLOCKED $gt_value _ACEOF 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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5 $as_echo_n "checking for iconv... " >&6; } if ${am_cv_func_iconv+:} false; then : $as_echo_n "(cached) " >&6 else am_cv_func_iconv="no, consider installing GNU libiconv" am_cv_lib_iconv=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : am_cv_func_iconv=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test "$am_cv_func_iconv" != yes; then am_save_LIBS="$LIBS" LIBS="$LIBS $LIBICONV" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : am_cv_lib_iconv=yes am_cv_func_iconv=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$am_save_LIBS" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv" >&5 $as_echo "$am_cv_func_iconv" >&6; } if test "$am_cv_func_iconv" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working iconv" >&5 $as_echo_n "checking for working iconv... " >&6; } if ${am_cv_func_iconv_works+:} false; then : $as_echo_n "(cached) " >&6 else am_save_LIBS="$LIBS" if test $am_cv_lib_iconv = yes; then LIBS="$LIBS $LIBICONV" fi if test "$cross_compiling" = yes; then : case "$host_os" in aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; *) am_cv_func_iconv_works="guessing yes" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { /* Test against AIX 5.1 bug: Failures are not distinguishable from successful returns. */ { iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8"); if (cd_utf8_to_88591 != (iconv_t)(-1)) { static const char input[] = "\342\202\254"; /* EURO SIGN */ char buf[10]; const char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_utf8_to_88591, (char **) &inptr, &inbytesleft, &outptr, &outbytesleft); if (res == 0) return 1; } } #if 0 /* This bug could be worked around by the caller. */ /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */ { iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591"); if (cd_88591_to_utf8 != (iconv_t)(-1)) { static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; char buf[50]; const char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_88591_to_utf8, (char **) &inptr, &inbytesleft, &outptr, &outbytesleft); if ((int)res > 0) return 1; } } #endif /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is provided. */ if (/* Try standardized names. */ iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1) /* Try IRIX, OSF/1 names. */ && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1) /* Try AIX names. */ && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1) /* Try HP-UX names. */ && iconv_open ("utf8", "eucJP") == (iconv_t)(-1)) return 1; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : am_cv_func_iconv_works=yes else am_cv_func_iconv_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi LIBS="$am_save_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv_works" >&5 $as_echo "$am_cv_func_iconv_works" >&6; } case "$am_cv_func_iconv_works" in *no) am_func_iconv=no am_cv_lib_iconv=no ;; *) am_func_iconv=yes ;; esac else am_func_iconv=no am_cv_lib_iconv=no fi if test "$am_func_iconv" = yes; then $as_echo "#define HAVE_ICONV 1" >>confdefs.h fi if test "$am_cv_lib_iconv" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libiconv" >&5 $as_echo_n "checking how to link with libiconv... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBICONV" >&5 $as_echo "$LIBICONV" >&6; } else CPPFLAGS="$am_save_CPPFLAGS" LIBICONV= LTLIBICONV= fi if test "$am_cv_func_iconv" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv declaration" >&5 $as_echo_n "checking for iconv declaration... " >&6; } if ${am_cv_proto_iconv+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #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 int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : am_cv_proto_iconv_arg1="" else am_cv_proto_iconv_arg1="const" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext 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);" fi am_cv_proto_iconv=`echo "$am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${ac_t:- }$am_cv_proto_iconv" >&5 $as_echo "${ac_t:- }$am_cv_proto_iconv" >&6; } cat >>confdefs.h <<_ACEOF #define ICONV_CONST $am_cv_proto_iconv_arg1 _ACEOF fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for NL_LOCALE_NAME macro" >&5 $as_echo_n "checking for NL_LOCALE_NAME macro... " >&6; } if ${gt_cv_nl_locale_name+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { char* cs = nl_langinfo(_NL_LOCALE_NAME(LC_MESSAGES)); return !cs; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gt_cv_nl_locale_name=yes else gt_cv_nl_locale_name=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_nl_locale_name" >&5 $as_echo "$gt_cv_nl_locale_name" >&6; } if test $gt_cv_nl_locale_name = yes; then $as_echo "#define HAVE_NL_LOCALE_NAME 1" >>confdefs.h fi for ac_prog in bison do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_INTLBISON+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$INTLBISON"; then ac_cv_prog_INTLBISON="$INTLBISON" # 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_INTLBISON="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi INTLBISON=$ac_cv_prog_INTLBISON if test -n "$INTLBISON"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLBISON" >&5 $as_echo "$INTLBISON" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$INTLBISON" && break done if test -z "$INTLBISON"; then ac_verc_fail=yes else { $as_echo "$as_me:${as_lineno-$LINENO}: checking version of bison" >&5 $as_echo_n "checking version of bison... " >&6; } 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].*) ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;; *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_prog_version" >&5 $as_echo "$ac_prog_version" >&6; } fi if test $ac_verc_fail = yes; then INTLBISON=: fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for long long int" >&5 $as_echo_n "checking for long long int... " >&6; } if ${ac_cv_type_long_long_int+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Test preprocessor. */ #if ! (-9223372036854775807LL < 0 && 0 < 9223372036854775807ll) error in preprocessor; #endif #if ! (18446744073709551615ULL <= -1ull) error in preprocessor; #endif /* Test literals. */ long long int ll = 9223372036854775807ll; long long int nll = -9223372036854775807LL; unsigned long long int ull = 18446744073709551615ULL; /* Test constant expressions. */ typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll) ? 1 : -1)]; typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1 ? 1 : -1)]; int i = 63; int main () { /* Test availability of runtime routines for shift and division. */ long long int llmax = 9223372036854775807ll; unsigned long long int ullmax = 18446744073709551615ull; return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i) | (llmax / ll) | (llmax % ll) | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i) | (ullmax / ull) | (ullmax % ull)); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : if test "$cross_compiling" = yes; then : ac_cv_type_long_long_int=yes else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifndef LLONG_MAX # define HALF \ (1LL << (sizeof (long long int) * CHAR_BIT - 2)) # define LLONG_MAX (HALF - 1 + HALF) #endif int main () { long long int n = 1; int i; for (i = 0; ; i++) { long long int m = n << i; if (m >> i != n) return 1; if (LLONG_MAX / 2 < m) break; } return 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_type_long_long_int=yes else ac_cv_type_long_long_int=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi else ac_cv_type_long_long_int=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_long_long_int" >&5 $as_echo "$ac_cv_type_long_long_int" >&6; } if test $ac_cv_type_long_long_int = yes; then $as_echo "#define HAVE_LONG_LONG_INT 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wchar_t" >&5 $as_echo_n "checking for wchar_t... " >&6; } if ${gt_cv_c_wchar_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include wchar_t foo = (wchar_t)'\0'; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gt_cv_c_wchar_t=yes else gt_cv_c_wchar_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_c_wchar_t" >&5 $as_echo "$gt_cv_c_wchar_t" >&6; } if test $gt_cv_c_wchar_t = yes; then $as_echo "#define HAVE_WCHAR_T 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wint_t" >&5 $as_echo_n "checking for wint_t... " >&6; } if ${gt_cv_c_wint_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include wint_t foo = (wchar_t)'\0'; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gt_cv_c_wint_t=yes else gt_cv_c_wint_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_c_wint_t" >&5 $as_echo "$gt_cv_c_wint_t" >&6; } if test $gt_cv_c_wint_t = yes; then $as_echo "#define HAVE_WINT_T 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for intmax_t" >&5 $as_echo_n "checking for intmax_t... " >&6; } if ${gt_cv_c_intmax_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if HAVE_STDINT_H_WITH_UINTMAX #include #endif #if HAVE_INTTYPES_H_WITH_UINTMAX #include #endif int main () { intmax_t x = -1; return !x; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gt_cv_c_intmax_t=yes else gt_cv_c_intmax_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_c_intmax_t" >&5 $as_echo "$gt_cv_c_intmax_t" >&6; } if test $gt_cv_c_intmax_t = yes; then $as_echo "#define HAVE_INTMAX_T 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether printf() supports POSIX/XSI format strings" >&5 $as_echo_n "checking whether printf() supports POSIX/XSI format strings... " >&6; } if ${gt_cv_func_printf_posix+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined __NetBSD__ || defined __BEOS__ || defined _MSC_VER || defined __MINGW32__ || defined __CYGWIN__ notposix #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "notposix" >/dev/null 2>&1; then : gt_cv_func_printf_posix="guessing no" else gt_cv_func_printf_posix="guessing yes" fi rm -f conftest* else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include /* The string "%2$d %1$d", with dollar characters protected from the shell's dollar expansion (possibly an autoconf bug). */ static char format[] = { '%', '2', '$', 'd', ' ', '%', '1', '$', 'd', '\0' }; static char buf[100]; int main () { sprintf (buf, format, 33, 55); return (strcmp (buf, "55 33") != 0); } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gt_cv_func_printf_posix=yes else gt_cv_func_printf_posix=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_printf_posix" >&5 $as_echo "$gt_cv_func_printf_posix" >&6; } case $gt_cv_func_printf_posix in *yes) $as_echo "#define HAVE_POSIX_PRINTF 1" >>confdefs.h ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C Library 2.1 or newer" >&5 $as_echo_n "checking whether we are using the GNU C Library 2.1 or newer... " >&6; } if ${ac_cv_gnu_library_2_1+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef __GNU_LIBRARY__ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2) Lucky GNU user #endif #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "Lucky GNU user" >/dev/null 2>&1; then : ac_cv_gnu_library_2_1=yes else ac_cv_gnu_library_2_1=no fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_gnu_library_2_1" >&5 $as_echo "$ac_cv_gnu_library_2_1" >&6; } GLIBC21="$ac_cv_gnu_library_2_1" for ac_header in stdint.h do : ac_fn_c_check_header_mongrel "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default" if test "x$ac_cv_header_stdint_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STDINT_H 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SIZE_MAX" >&5 $as_echo_n "checking for SIZE_MAX... " >&6; } if ${gl_cv_size_max+:} false; then : $as_echo_n "(cached) " >&6 else gl_cv_size_max= cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #if HAVE_STDINT_H #include #endif #ifdef SIZE_MAX Found it #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "Found it" >/dev/null 2>&1; then : gl_cv_size_max=yes fi rm -f conftest* if test -z "$gl_cv_size_max"; then if ac_fn_c_compute_int "$LINENO" "sizeof (size_t) * CHAR_BIT - 1" "size_t_bits_minus_1" "#include #include "; then : else size_t_bits_minus_1= fi if ac_fn_c_compute_int "$LINENO" "sizeof (size_t) <= sizeof (unsigned int)" "fits_in_uint" "#include "; then : else fits_in_uint= fi if test -n "$size_t_bits_minus_1" && test -n "$fits_in_uint"; then if test $fits_in_uint = 1; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include extern size_t foo; extern unsigned long foo; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : fits_in_uint=0 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi if test $fits_in_uint = 1; then gl_cv_size_max="(((1U << $size_t_bits_minus_1) - 1) * 2 + 1)" else gl_cv_size_max="(((1UL << $size_t_bits_minus_1) - 1) * 2 + 1)" fi else gl_cv_size_max='((size_t)~(size_t)0)' fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_size_max" >&5 $as_echo "$gl_cv_size_max" >&6; } if test "$gl_cv_size_max" != yes; then cat >>confdefs.h <<_ACEOF #define SIZE_MAX $gl_cv_size_max _ACEOF fi for ac_header in stdint.h do : ac_fn_c_check_header_mongrel "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default" if test "x$ac_cv_header_stdint_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STDINT_H 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFPreferencesCopyAppValue" >&5 $as_echo_n "checking for CFPreferencesCopyAppValue... " >&6; } if ${gt_cv_func_CFPreferencesCopyAppValue+:} false; then : $as_echo_n "(cached) " >&6 else gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { CFPreferencesCopyAppValue(NULL, NULL) ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gt_cv_func_CFPreferencesCopyAppValue=yes else gt_cv_func_CFPreferencesCopyAppValue=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$gt_save_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFPreferencesCopyAppValue" >&5 $as_echo "$gt_cv_func_CFPreferencesCopyAppValue" >&6; } if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then $as_echo "#define HAVE_CFPREFERENCESCOPYAPPVALUE 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFLocaleCopyCurrent" >&5 $as_echo_n "checking for CFLocaleCopyCurrent... " >&6; } if ${gt_cv_func_CFLocaleCopyCurrent+:} false; then : $as_echo_n "(cached) " >&6 else gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { CFLocaleCopyCurrent(); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gt_cv_func_CFLocaleCopyCurrent=yes else gt_cv_func_CFLocaleCopyCurrent=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$gt_save_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFLocaleCopyCurrent" >&5 $as_echo "$gt_cv_func_CFLocaleCopyCurrent" >&6; } if test $gt_cv_func_CFLocaleCopyCurrent = yes; then $as_echo "#define HAVE_CFLOCALECOPYCURRENT 1" >>confdefs.h fi INTL_MACOSX_LIBS= if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" fi ac_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default" if test "x$ac_cv_type_ptrdiff_t" = xyes; then : else $as_echo "#define ptrdiff_t long" >>confdefs.h fi for ac_header in stddef.h stdlib.h string.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_func in asprintf fwprintf putenv setenv setlocale snprintf wcslen do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether _snprintf is declared" >&5 $as_echo_n "checking whether _snprintf is declared... " >&6; } if ${ac_cv_have_decl__snprintf+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { #ifndef _snprintf char *p = (char *) _snprintf; #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_have_decl__snprintf=yes else ac_cv_have_decl__snprintf=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_decl__snprintf" >&5 $as_echo "$ac_cv_have_decl__snprintf" >&6; } if test $ac_cv_have_decl__snprintf = yes; then gt_value=1 else gt_value=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL__SNPRINTF $gt_value _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether _snwprintf is declared" >&5 $as_echo_n "checking whether _snwprintf is declared... " >&6; } if ${ac_cv_have_decl__snwprintf+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { #ifndef _snwprintf char *p = (char *) _snwprintf; #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_have_decl__snwprintf=yes else ac_cv_have_decl__snwprintf=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_decl__snwprintf" >&5 $as_echo "$ac_cv_have_decl__snwprintf" >&6; } if test $ac_cv_have_decl__snwprintf = yes; then gt_value=1 else gt_value=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL__SNWPRINTF $gt_value _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether getc_unlocked is declared" >&5 $as_echo_n "checking whether getc_unlocked is declared... " >&6; } if ${ac_cv_have_decl_getc_unlocked+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { #ifndef getc_unlocked char *p = (char *) getc_unlocked; #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_have_decl_getc_unlocked=yes else ac_cv_have_decl_getc_unlocked=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_decl_getc_unlocked" >&5 $as_echo "$ac_cv_have_decl_getc_unlocked" >&6; } if test $ac_cv_have_decl_getc_unlocked = yes; then gt_value=1 else gt_value=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_GETC_UNLOCKED $gt_value _ACEOF case $gt_cv_func_printf_posix in *yes) HAVE_POSIX_PRINTF=1 ;; *) HAVE_POSIX_PRINTF=0 ;; esac if test "$ac_cv_func_asprintf" = yes; then HAVE_ASPRINTF=1 else HAVE_ASPRINTF=0 fi if test "$ac_cv_func_snprintf" = yes; then HAVE_SNPRINTF=1 else HAVE_SNPRINTF=0 fi if test "$ac_cv_func_wprintf" = yes; then HAVE_WPRINTF=1 else HAVE_WPRINTF=0 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nl_langinfo and CODESET" >&5 $as_echo_n "checking for nl_langinfo and CODESET... " >&6; } if ${am_cv_langinfo_codeset+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { char* cs = nl_langinfo(CODESET); return !cs; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : am_cv_langinfo_codeset=yes else am_cv_langinfo_codeset=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_langinfo_codeset" >&5 $as_echo "$am_cv_langinfo_codeset" >&6; } if test $am_cv_langinfo_codeset = yes; then $as_echo "#define HAVE_LANGINFO_CODESET 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LC_MESSAGES" >&5 $as_echo_n "checking for LC_MESSAGES... " >&6; } if ${gt_cv_val_LC_MESSAGES+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { return LC_MESSAGES ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gt_cv_val_LC_MESSAGES=yes else gt_cv_val_LC_MESSAGES=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_val_LC_MESSAGES" >&5 $as_echo "$gt_cv_val_LC_MESSAGES" >&6; } if test $gt_cv_val_LC_MESSAGES = yes; then $as_echo "#define HAVE_LC_MESSAGES 1" >>confdefs.h fi if test "$enable_shared" = yes; then case "$host_os" in mingw* | cygwin*) is_woe32dll=yes ;; *) is_woe32dll=no ;; esac else is_woe32dll=no fi WOE32DLL=$is_woe32dll case "$host_os" in mingw* | cygwin*) is_woe32=yes ;; *) is_woe32=no ;; esac WOE32=$is_woe32 if test $WOE32 = yes; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}windres", so it can be a program name with args. set dummy ${ac_tool_prefix}windres; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_WINDRES+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$WINDRES"; then ac_cv_prog_WINDRES="$WINDRES" # 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_WINDRES="${ac_tool_prefix}windres" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi WINDRES=$ac_cv_prog_WINDRES if test -n "$WINDRES"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $WINDRES" >&5 $as_echo "$WINDRES" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_WINDRES"; then ac_ct_WINDRES=$WINDRES # Extract the first word of "windres", so it can be a program name with args. set dummy windres; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_WINDRES+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_WINDRES"; then ac_cv_prog_ac_ct_WINDRES="$ac_ct_WINDRES" # 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_WINDRES="windres" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_WINDRES=$ac_cv_prog_ac_ct_WINDRES if test -n "$ac_ct_WINDRES"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_WINDRES" >&5 $as_echo "$ac_ct_WINDRES" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_WINDRES" = x; then WINDRES="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac WINDRES=$ac_ct_WINDRES fi else WINDRES="$ac_cv_prog_WINDRES" fi fi case "$host_os" in hpux*) LTLIBC="" ;; *) LTLIBC="-lc" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFPreferencesCopyAppValue" >&5 $as_echo_n "checking for CFPreferencesCopyAppValue... " >&6; } if ${gt_cv_func_CFPreferencesCopyAppValue+:} false; then : $as_echo_n "(cached) " >&6 else gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { CFPreferencesCopyAppValue(NULL, NULL) ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gt_cv_func_CFPreferencesCopyAppValue=yes else gt_cv_func_CFPreferencesCopyAppValue=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$gt_save_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFPreferencesCopyAppValue" >&5 $as_echo "$gt_cv_func_CFPreferencesCopyAppValue" >&6; } if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then $as_echo "#define HAVE_CFPREFERENCESCOPYAPPVALUE 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFLocaleCopyCurrent" >&5 $as_echo_n "checking for CFLocaleCopyCurrent... " >&6; } if ${gt_cv_func_CFLocaleCopyCurrent+:} false; then : $as_echo_n "(cached) " >&6 else gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { CFLocaleCopyCurrent(); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gt_cv_func_CFLocaleCopyCurrent=yes else gt_cv_func_CFLocaleCopyCurrent=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$gt_save_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFLocaleCopyCurrent" >&5 $as_echo "$gt_cv_func_CFLocaleCopyCurrent" >&6; } if test $gt_cv_func_CFLocaleCopyCurrent = yes; then $as_echo "#define HAVE_CFLOCALECOPYCURRENT 1" >>confdefs.h fi INTL_MACOSX_LIBS= if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" fi BUILD_INCLUDED_LIBINTL=no USE_INCLUDED_LIBINTL=no LIBINTL= LTLIBINTL= POSUB= case " $gt_needs " in *" need-formatstring-macros "*) gt_api_version=3 ;; *" need-ngettext "*) gt_api_version=2 ;; *) gt_api_version=1 ;; esac gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc" gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl" if test "$USE_NLS" = "yes"; then gt_use_preinstalled_gnugettext=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether included gettext is requested" >&5 $as_echo_n "checking whether included gettext is requested... " >&6; } # Check whether --with-included-gettext was given. if test "${with_included_gettext+set}" = set; then : withval=$with_included_gettext; nls_cv_force_use_gnu_gettext=$withval else nls_cv_force_use_gnu_gettext=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $nls_cv_force_use_gnu_gettext" >&5 $as_echo "$nls_cv_force_use_gnu_gettext" >&6; } nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" if test "$nls_cv_force_use_gnu_gettext" != "yes"; then if test $gt_api_version -ge 3; then gt_revision_test_code=' #ifndef __GNU_GETTEXT_SUPPORTED_REVISION #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) #endif typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; ' else gt_revision_test_code= fi if test $gt_api_version -ge 2; then gt_expression_test_code=' + * ngettext ("", "", 0)' else gt_expression_test_code= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libc" >&5 $as_echo_n "checking for GNU gettext in libc... " >&6; } if eval \${$gt_func_gnugettext_libc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern int *_nl_domain_bindings; int main () { bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$gt_func_gnugettext_libc=yes" else eval "$gt_func_gnugettext_libc=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$gt_func_gnugettext_libc { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then 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/$acl_libdirstem" fi fi fi LIBINTL= LTLIBINTL= INCINTL= LIBINTL_PREFIX= rpathdirs= ltrpathdirs= names_already_handled= names_next_round='intl ' while test -n "$names_next_round"; do names_this_round="$names_next_round" names_next_round= for name in $names_this_round; do already_handled= for n in $names_already_handled; do if test "$n" = "$name"; then already_handled=yes break fi done if test -z "$already_handled"; then names_already_handled="$names_already_handled $name" uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` eval value=\"\$HAVE_LIB$uppername\" if test -n "$value"; then if test "$value" = yes; then eval value=\"\$LIB$uppername\" test -z "$value" || LIBINTL="${LIBINTL}${LIBINTL:+ }$value" eval value=\"\$LTLIB$uppername\" test -z "$value" || LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$value" else : fi else found_dir= found_la= found_so= found_a= eval libname=\"$acl_libname_spec\" # typically: libname=lib$name if test -n "$acl_shlibext"; then shrext=".$acl_shlibext" # typically: shrext=.so else shrext= fi if test $use_additional = yes; then dir="$additional_libdir" if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi fi if test "X$found_dir" = "X"; then for x in $LDFLAGS $LTLIBINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi ;; esac if test "X$found_dir" != "X"; then break fi done fi if test "X$found_dir" != "X"; then LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$found_dir -l$name" if test "X$found_so" != "X"; then if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/$acl_libdirstem"; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" else haveit= for x in $ltrpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $found_dir" fi if test "$acl_hardcode_direct" = yes; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" else if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" haveit= for x in $rpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $found_dir" fi else haveit= for x in $LDFLAGS $LIBINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir" fi if test "$acl_hardcode_minus_L" != no; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" else LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" fi fi fi fi else if test "X$found_a" != "X"; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_a" else LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir -l$name" fi fi additional_includedir= case "$found_dir" in */$acl_libdirstem | */$acl_libdirstem/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` LIBINTL_PREFIX="$basedir" additional_includedir="$basedir/include" ;; esac if test "X$additional_includedir" != "X"; then if test "X$additional_includedir" != "X/usr/include"; then haveit= if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then for x in $CPPFLAGS $INCINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_includedir"; then INCINTL="${INCINTL}${INCINTL:+ }-I$additional_includedir" fi fi fi fi fi if test -n "$found_la"; then save_libdir="$libdir" case "$found_la" in */* | *\\*) . "$found_la" ;; *) . "./$found_la" ;; esac libdir="$save_libdir" for dep in $dependency_libs; do case "$dep" in -L*) additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then haveit= if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then haveit= for x in $LDFLAGS $LIBINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$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 "$acl_hardcode_libdir_separator"; then alldirs= for found_dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" done acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" else for found_dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$found_dir" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" done fi fi if test "X$ltrpathdirs" != "X"; then for found_dir in $ltrpathdirs; do LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-R$found_dir" done fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libintl" >&5 $as_echo_n "checking for GNU gettext in libintl... " >&6; } if eval \${$gt_func_gnugettext_libintl+:} false; then : $as_echo_n "(cached) " >&6 else gt_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $INCINTL" gt_save_LIBS="$LIBS" LIBS="$LIBS $LIBINTL" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (const char *); int main () { bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("") ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$gt_func_gnugettext_libintl=yes" else eval "$gt_func_gnugettext_libintl=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then LIBS="$LIBS $LIBICONV" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (const char *); int main () { bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("") ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : LIBINTL="$LIBINTL $LIBICONV" LTLIBINTL="$LTLIBINTL $LTLIBICONV" eval "$gt_func_gnugettext_libintl=yes" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi CPPFLAGS="$gt_save_CPPFLAGS" LIBS="$gt_save_LIBS" fi eval ac_res=\$$gt_func_gnugettext_libintl { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \ && test "$PACKAGE" != gettext-runtime \ && test "$PACKAGE" != gettext-tools; }; then gt_use_preinstalled_gnugettext=yes else LIBINTL= LTLIBINTL= INCINTL= fi if test "$gt_use_preinstalled_gnugettext" != "yes"; then nls_cv_use_gnu_gettext=yes fi fi if test "$nls_cv_use_gnu_gettext" = "yes"; then BUILD_INCLUDED_LIBINTL=yes USE_INCLUDED_LIBINTL=yes LIBINTL="\${top_builddir}/intl/libintl.a $LIBICONV $LIBTHREAD" LTLIBINTL="\${top_builddir}/intl/libintl.a $LTLIBICONV $LTLIBTHREAD" LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` fi CATOBJEXT= if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then CATOBJEXT=.gmo fi if test -n "$INTL_MACOSX_LIBS"; then if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then LIBINTL="$LIBINTL $INTL_MACOSX_LIBS" LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS" fi fi if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then $as_echo "#define ENABLE_NLS 1" >>confdefs.h else USE_NLS=no fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use NLS" >&5 $as_echo_n "checking whether to use NLS... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 $as_echo "$USE_NLS" >&6; } if test "$USE_NLS" = "yes"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking where the gettext function comes from" >&5 $as_echo_n "checking where the gettext function comes from... " >&6; } if test "$gt_use_preinstalled_gnugettext" = "yes"; then if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then gt_source="external libintl" else gt_source="libc" fi else gt_source="included intl directory" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_source" >&5 $as_echo "$gt_source" >&6; } fi if test "$USE_NLS" = "yes"; then if test "$gt_use_preinstalled_gnugettext" = "yes"; then if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libintl" >&5 $as_echo_n "checking how to link with libintl... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBINTL" >&5 $as_echo "$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 $as_echo "#define HAVE_GETTEXT 1" >>confdefs.h $as_echo "#define HAVE_DCGETTEXT 1" >>confdefs.h fi POSUB=po fi if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then BUILD_INCLUDED_LIBINTL=yes fi nls_cv_header_intl= nls_cv_header_libgt= DATADIRNAME=share INSTOBJEXT=.mo GENCAT=gencat INTLOBJS= if test "$USE_INCLUDED_LIBINTL" = yes; then INTLOBJS="\$(GETTOBJS)" fi INTL_LIBTOOL_SUFFIX_PREFIX= INTLLIBS="$LIBINTL" cat >>confdefs.h <<_ACEOF #define PATH_SEPARATOR ':' _ACEOF cat >>confdefs.h <<_ACEOF #define PATH_SEPARATOR_STR ":" _ACEOF # Extract the first word of "perl", so it can be a program name with args. set dummy perl; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PERL+:} false; then : $as_echo_n "(cached) " >&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" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi PERL=$ac_cv_path_PERL if test -n "$PERL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PERL" >&5 $as_echo "$PERL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi ac_config_files="$ac_config_files Makefile po/Makefile.in intl/Makefile po/Makefile compat/Makefile afm/Makefile afmlib/Makefile src/Makefile src/tests/Makefile lib/Makefile scripts/Makefile states/Makefile states/hl/Makefile states/tests/Makefile docs/Makefile w32/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_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+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 if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_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=`$as_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. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' else am__EXEEXT_TRUE='#' am__EXEEXT_FALSE= fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then as_fn_error $? "conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # 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.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS 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 $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -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 else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_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 || $as_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" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi 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 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by GNU Enscript $as_me 1.6.5.90, which was generated by GNU Autoconf 2.68. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac case $ac_config_headers in *" "*) set x $ac_config_headers; shift; ac_config_headers=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" config_commands="$ac_config_commands" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Configuration commands: $config_commands Report bugs to . GNU Enscript home page: . General help using GNU software: ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ GNU Enscript config.status 1.6.5.90 configured by $0, generated by GNU Autoconf 2.68, with options \\"\$ac_cs_config\\" Copyright (C) 2010 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' AWK='$AWK' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_HEADERS " '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header as_fn_error $? "ambiguous option: \`$1' Try \`$0 --help' for more information.";; --help | --hel | -h ) $as_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. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # # 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, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it # from automake < 1.5. eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' # Capture the value of LINGUAS because we need it to compute CATALOGS. LINGUAS="${LINGUAS-%UNSET%}" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "po-directories") CONFIG_COMMANDS="$CONFIG_COMMANDS po-directories" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; "intl/Makefile") CONFIG_FILES="$CONFIG_FILES intl/Makefile" ;; "po/Makefile") CONFIG_FILES="$CONFIG_FILES po/Makefile" ;; "compat/Makefile") CONFIG_FILES="$CONFIG_FILES compat/Makefile" ;; "afm/Makefile") CONFIG_FILES="$CONFIG_FILES afm/Makefile" ;; "afmlib/Makefile") CONFIG_FILES="$CONFIG_FILES afmlib/Makefile" ;; "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; "src/tests/Makefile") CONFIG_FILES="$CONFIG_FILES src/tests/Makefile" ;; "lib/Makefile") CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;; "scripts/Makefile") CONFIG_FILES="$CONFIG_FILES scripts/Makefile" ;; "states/Makefile") CONFIG_FILES="$CONFIG_FILES states/Makefile" ;; "states/hl/Makefile") CONFIG_FILES="$CONFIG_FILES states/hl/Makefile" ;; "states/tests/Makefile") CONFIG_FILES="$CONFIG_FILES states/tests/Makefile" ;; "docs/Makefile") CONFIG_FILES="$CONFIG_FILES docs/Makefile" ;; "w32/Makefile") CONFIG_FILES="$CONFIG_FILES w32/Makefile" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+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= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" # Set up the scripts for CONFIG_HEADERS section. # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then cat >"$ac_tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF # Transform confdefs.h into an awk script `defines.awk', embedded as # here-document in config.status, that substitutes the proper values into # config.h.in to produce config.h. # Create a delimiter string that does not exist in confdefs.h, to ease # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do ac_tt=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_tt"; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done # For the awk script, D is an array of macro values keyed by name, # likewise P contains macro parameters if any. Preserve backslash # newline sequences. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* sed -n ' s/.\{148\}/&'"$ac_delim"'/g t rset :rset s/^[ ]*#[ ]*define[ ][ ]*/ / t def d :def s/\\$// t bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3"/p s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p d :bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3\\\\\\n"\\/p t cont s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p t cont d :cont n s/.\{148\}/&'"$ac_delim"'/g t clear :clear s/\\$// t bsnlc s/["\\]/\\&/g; s/^/"/; s/$/"/p d :bsnlc s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p b cont ' >$CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 for (key in D) D_is_set[key] = 1 FS = "" } /^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { line = \$ 0 split(line, arg, " ") if (arg[1] == "#") { defundef = arg[2] mac1 = arg[3] } else { defundef = substr(arg[1], 2) mac1 = arg[2] } split(mac1, mac2, "(") #) macro = mac2[1] prefix = substr(line, 1, index(line, defundef) - 1) if (D_is_set[macro]) { # Preserve the white space surrounding the "#". print prefix "define", macro P[macro] D[macro] next } else { # Replace #undef with comments. This is necessary, for example, # in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. if (defundef == "undef") { print "/*", prefix defundef, macro, "*/" next } } } { print } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 fi # test -n "$CONFIG_HEADERS" eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_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"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_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 ac_MKDIR_P=$MKDIR_P case $MKDIR_P in [\\/$]* | ?:[\\/]* ) ;; */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_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 "$ac_tmp/stdin" case $ac_file in -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; :H) # # CONFIG_HEADER # if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" } >"$ac_tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$ac_tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi # Compute "$ac_file"'s index in $config_headers. _am_arg="$ac_file" _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || $as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$_am_arg" : 'X\(//\)[^/]' \| \ X"$_am_arg" : 'X\(//\)$' \| \ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$_am_arg" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'`/stamp-h$_am_stamp_count ;; :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 $as_echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || { # Autoconf 2.62 quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf 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. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/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 || $as_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 || $as_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; as_fn_mkdir_p # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ;; "po-directories":C) for ac_file in $CONFIG_FILES; do # Support "outfile[:infile[:infile...]]" case "$ac_file" in *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; esac # PO directories have a Makefile.in generated from Makefile.in.in. case "$ac_file" in */Makefile.in) # Adjust a relative srcdir. ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` # In autoconf-2.13 it is called $ac_given_srcdir. # In autoconf-2.50 it is called $srcdir. test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" case "$ac_given_srcdir" in .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; /*) top_srcdir="$ac_given_srcdir" ;; *) top_srcdir="$ac_dots$ac_given_srcdir" ;; esac # Treat a directory as a PO directory if and only if it has a # POTFILES.in file. This allows packages to have multiple PO # directories under different names or in different locations. if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then rm -f "$ac_dir/POTFILES" test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" POMAKEFILEDEPS="POTFILES.in" # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend # on $ac_dir but don't depend on user-specified configuration # parameters. if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then # The LINGUAS file contains the set of available languages. if test -n "$OBSOLETE_ALL_LINGUAS"; then test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" fi ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` # Hide the ALL_LINGUAS assigment from automake < 1.5. eval 'ALL_LINGUAS''=$ALL_LINGUAS_' POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" else # The set of available languages was given in configure.in. # Hide the ALL_LINGUAS assigment from automake < 1.5. eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' fi # Compute POFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) # Compute UPDATEPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) # Compute DUMMYPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) # Compute GMOFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) case "$ac_given_srcdir" in .) srcdirpre= ;; *) srcdirpre='$(srcdir)/' ;; esac POFILES= UPDATEPOFILES= DUMMYPOFILES= GMOFILES= for lang in $ALL_LINGUAS; do POFILES="$POFILES $srcdirpre$lang.po" UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" DUMMYPOFILES="$DUMMYPOFILES $lang.nop" GMOFILES="$GMOFILES $srcdirpre$lang.gmo" done # CATALOGS depends on both $ac_dir and the user's LINGUAS # environment variable. INST_LINGUAS= if test -n "$ALL_LINGUAS"; then for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "$LINGUAS"; then desiredlanguages="$LINGUAS" else desiredlanguages="$ALL_LINGUAS" fi for desiredlang in $desiredlanguages; do # Use the presentlang catalog if desiredlang is # a. equal to presentlang, or # b. a variant of presentlang (because in this case, # presentlang can be used as a fallback for messages # which are not translated in the desiredlang catalog). case "$desiredlang" in "$presentlang"*) useit=yes;; esac done if test $useit = yes; then INST_LINGUAS="$INST_LINGUAS $presentlang" fi done fi CATALOGS= if test -n "$INST_LINGUAS"; then for lang in $INST_LINGUAS; do CATALOGS="$CATALOGS $lang.gmo" done fi test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do if test -f "$f"; then case "$f" in *.orig | *.bak | *~) ;; *) cat "$f" >> "$ac_dir/Makefile" ;; esac fi done fi ;; esac done ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi echo "" echo "Enscript is now configured to your system with the following" echo "user-definable options. Please, check that they are correct and" echo "match to your system's properties." echo "" echo "Option Change with configure's option Current value" echo "---------------------------------------------------------" echo "Media --with-media=MEDIA $MEDIA" echo "Spooler --with-spooler=SPOOLER $SPOOLER" echo "PS level --with-ps-level=LEVEL $PSLEVEL" echo "" enscript-1.6.5.90/88594.txt0000644000175000017500000001525411132443251011767 00000000000000 ISO-8859-4 (ISO Latin4) character set octal hex PostScript HTML entity character ---------------------------------------------------------------------- 000 0x00 non-printable 001 0x01 non-printable 002 0x02 non-printable 003 0x03 non-printable 004 0x04 non-printable 005 0x05 non-printable 006 0x06 non-printable 007 0x07 non-printable 010 0x08 non-printable 011 0x09 non-printable 012 0x0a non-printable 013 0x0b non-printable 014 0x0c non-printable 015 0x0d non-printable 016 0x0e non-printable 017 0x0f non-printable 020 0x10 non-printable 021 0x11 non-printable 022 0x12 non-printable 023 0x13 non-printable 024 0x14 non-printable 025 0x15 non-printable 026 0x16 non-printable 027 0x17 non-printable 030 0x18 non-printable 031 0x19 non-printable 032 0x1a non-printable 033 0x1b non-printable 034 0x1c non-printable 035 0x1d non-printable 036 0x1e non-printable 037 0x1f non-printable 040 0x20 /space 041 0x21 /exclam ! 042 0x22 /quotedbl " " 043 0x23 /numbersign # 044 0x24 /dollar $ 045 0x25 /percent % 046 0x26 /ampersand & & 047 0x27 /quoteright ' 050 0x28 /parenleft ( 051 0x29 /parenright ) 052 0x2a /asterisk * 053 0x2b /plus + 054 0x2c /comma , 055 0x2d /hyphen - 056 0x2e /period . 057 0x2f /slash / 060 0x30 /zero 0 061 0x31 /one 1 062 0x32 /two 2 063 0x33 /three 3 064 0x34 /four 4 065 0x35 /five 5 066 0x36 /six 6 067 0x37 /seven 7 070 0x38 /eight 8 071 0x39 /nine 9 072 0x3a /colon : 073 0x3b /semicolon ; 074 0x3c /less < < 075 0x3d /equal = 076 0x3e /greater > > 077 0x3f /question ? 0100 0x40 /at @ 0101 0x41 /A A 0102 0x42 /B B 0103 0x43 /C C 0104 0x44 /D D 0105 0x45 /E E 0106 0x46 /F F 0107 0x47 /G G 0110 0x48 /H H 0111 0x49 /I I 0112 0x4a /J J 0113 0x4b /K K 0114 0x4c /L L 0115 0x4d /M M 0116 0x4e /N N 0117 0x4f /O O 0120 0x50 /P P 0121 0x51 /Q Q 0122 0x52 /R R 0123 0x53 /S S 0124 0x54 /T T 0125 0x55 /U U 0126 0x56 /V V 0127 0x57 /W W 0130 0x58 /X X 0131 0x59 /Y Y 0132 0x5a /Z Z 0133 0x5b /bracketleft [ 0134 0x5c /backslash \ 0135 0x5d /bracketright ] 0136 0x5e /asciicircum ^ 0137 0x5f /underscore _ 0140 0x60 /quoteleft ` 0141 0x61 /a a 0142 0x62 /b b 0143 0x63 /c c 0144 0x64 /d d 0145 0x65 /e e 0146 0x66 /f f 0147 0x67 /g g 0150 0x68 /h h 0151 0x69 /i i 0152 0x6a /j j 0153 0x6b /k k 0154 0x6c /l l 0155 0x6d /m m 0156 0x6e /n n 0157 0x6f /o o 0160 0x70 /p p 0161 0x71 /q q 0162 0x72 /r r 0163 0x73 /s s 0164 0x74 /t t 0165 0x75 /u u 0166 0x76 /v v 0167 0x77 /w w 0170 0x78 /x x 0171 0x79 /y y 0172 0x7a /z z 0173 0x7b /braceleft { 0174 0x7c /bar | 0175 0x7d /braceright } 0176 0x7e /tilde ~ 0177 0x7f non-printable 0200 0x80 non-printable 0201 0x81 non-printable 0202 0x82 non-printable 0203 0x83 non-printable 0204 0x84 non-printable 0205 0x85 non-printable 0206 0x86 non-printable 0207 0x87 non-printable 0210 0x88 non-printable 0211 0x89 non-printable 0212 0x8a non-printable 0213 0x8b non-printable 0214 0x8c non-printable 0215 0x8d non-printable 0216 0x8e non-printable 0217 0x8f non-printable 0220 0x90 non-printable 0221 0x91 non-printable 0222 0x92 non-printable 0223 0x93 non-printable 0224 0x94 non-printable 0225 0x95 non-printable 0226 0x96 non-printable 0227 0x97 non-printable 0230 0x98 non-printable 0231 0x99 non-printable 0232 0x9a non-printable 0233 0x9b non-printable 0234 0x9c non-printable 0235 0x9d non-printable 0236 0x9e non-printable 0237 0x9f non-printable 0240 0xa0 /space     0241 0xa1 /Aogonek Ą ¡ 0242 0xa2 /kgreenlandic ĸ ¢ 0243 0xa3 /Rcedilla Ŗ £ 0244 0xa4 /currency ¤ ¤ 0245 0xa5 /Itilde Ĩ ¥ 0246 0xa6 /Lcedilla Ļ ¦ 0247 0xa7 /section § § 0250 0xa8 /dieresis ¨ ¨ 0251 0xa9 /Scaron Š © 0252 0xaa /Emacron Ē ª 0253 0xab /Gcedilla Ģ « 0254 0xac /Tbar Ŧ ¬ 0255 0xad /hyphen ­ ­ 0256 0xae /Zcaron Ž ® 0257 0xaf /macron ¯ ¯ 0260 0xb0 /degree ° ° 0261 0xb1 /aogonek ą ± 0262 0xb2 /ogonek ˛ ² 0263 0xb3 /rcedilla ŗ ³ 0264 0xb4 /acute ´ ´ 0265 0xb5 /itilde ĩ µ 0266 0xb6 /lcedilla ļ ¶ 0267 0xb7 /caron ˇ · 0270 0xb8 /cedilla ¸ ¸ 0271 0xb9 /scaron š ¹ 0272 0xba /emacron ē º 0273 0xbb /gacute ģ » 0274 0xbc /tbar ŧ ¼ 0275 0xbd /Eng Ŋ ½ 0276 0xbe /zcaron ž ¾ 0277 0xbf /eng ŋ ¿ 0300 0xc0 /Amacron Ā À 0301 0xc1 /Aacute Á Á 0302 0xc2 /Acircumflex   0303 0xc3 /Atilde à à 0304 0xc4 /Adieresis Ä Ä 0305 0xc5 /Aring Å Å 0306 0xc6 /AE Æ Æ 0307 0xc7 /Iogonek Į Ç 0310 0xc8 /Ccaron Č È 0311 0xc9 /Eacute É É 0312 0xca /Eogonek Ę Ê 0313 0xcb /Edieresis Ë Ë 0314 0xcc /Edotaccent Ė Ì 0315 0xcd /Iacute Í Í 0316 0xce /Icircumflex Î Î 0317 0xcf /Imacron Ī Ï 0320 0xd0 /Eth Ð Ð 0321 0xd1 /Ncedilla Ņ Ñ 0322 0xd2 /Omacron Ō Ò 0323 0xd3 /Kcedilla Ķ Ó 0324 0xd4 /Ocircumflex Ô Ô 0325 0xd5 /Otilde Õ Õ 0326 0xd6 /Odieresis Ö Ö 0327 0xd7 /multiply × × 0330 0xd8 /Oslash Ø Ø 0331 0xd9 /Uogonek Ų Ù 0332 0xda /Uacute Ú Ú 0333 0xdb /Ucircumflex Û Û 0334 0xdc /Udieresis Ü Ü 0335 0xdd /Utilde Ũ Ý 0336 0xde /Umacron Ū Þ 0337 0xdf /germandbls ß ß 0340 0xe0 /amacron ā à 0341 0xe1 /aacute á á 0342 0xe2 /acircumflex â â 0343 0xe3 /atilde ã ã 0344 0xe4 /adieresis ä ä 0345 0xe5 /aring å å 0346 0xe6 /ae æ æ 0347 0xe7 /iogonek į ç 0350 0xe8 /ccaron č è 0351 0xe9 /eacute é é 0352 0xea /eogonek ę ê 0353 0xeb /edieresis ë ë 0354 0xec /edotaccent ė ì 0355 0xed /iacute í í 0356 0xee /icircumflex î î 0357 0xef /imacron ī ï 0360 0xf0 /dbar đ ð 0361 0xf1 /ncedilla ņ ñ 0362 0xf2 /omacron ō ò 0363 0xf3 /kcedilla ķ ó 0364 0xf4 /ocircumflex ô ô 0365 0xf5 /otilde õ õ 0366 0xf6 /odieresis ö ö 0367 0xf7 /divide ÷ ÷ 0370 0xf8 /oslash ø ø 0371 0xf9 /uogonek ų ù 0372 0xfa /uacute ú ú 0373 0xfb /ucircumflex û û 0374 0xfc /udieresis ü ü 0375 0xfd /utilde ũ ý 0376 0xfe /umacron ū þ 0377 0xff /dotaccent ˙ ÿ enscript-1.6.5.90/mac.txt0000644000175000017500000001525511132443251012027 00000000000000 Mac character set octal hex PostScript HTML entity character ---------------------------------------------------------------------- 000 0x00 non-printable 001 0x01 non-printable 002 0x02 non-printable 003 0x03 non-printable 004 0x04 non-printable 005 0x05 non-printable 006 0x06 non-printable 007 0x07 non-printable 010 0x08 non-printable 011 0x09 non-printable 012 0x0a non-printable 013 0x0b non-printable 014 0x0c non-printable 015 0x0d non-printable 016 0x0e non-printable 017 0x0f non-printable 020 0x10 non-printable 021 0x11 non-printable 022 0x12 non-printable 023 0x13 non-printable 024 0x14 non-printable 025 0x15 non-printable 026 0x16 non-printable 027 0x17 non-printable 030 0x18 non-printable 031 0x19 non-printable 032 0x1a non-printable 033 0x1b non-printable 034 0x1c non-printable 035 0x1d non-printable 036 0x1e non-printable 037 0x1f non-printable 040 0x20 /space 041 0x21 /exclam ! 042 0x22 /quotedbl " " 043 0x23 /numbersign # 044 0x24 /dollar $ 045 0x25 /percent % 046 0x26 /ampersand & & 047 0x27 /quoteright ' 050 0x28 /parenleft ( 051 0x29 /parenright ) 052 0x2a /asterisk * 053 0x2b /plus + 054 0x2c /comma , 055 0x2d /hyphen - 056 0x2e /period . 057 0x2f /slash / 060 0x30 /zero 0 061 0x31 /one 1 062 0x32 /two 2 063 0x33 /three 3 064 0x34 /four 4 065 0x35 /five 5 066 0x36 /six 6 067 0x37 /seven 7 070 0x38 /eight 8 071 0x39 /nine 9 072 0x3a /colon : 073 0x3b /semicolon ; 074 0x3c /less < < 075 0x3d /equal = 076 0x3e /greater > > 077 0x3f /question ? 0100 0x40 /at @ 0101 0x41 /A A 0102 0x42 /B B 0103 0x43 /C C 0104 0x44 /D D 0105 0x45 /E E 0106 0x46 /F F 0107 0x47 /G G 0110 0x48 /H H 0111 0x49 /I I 0112 0x4a /J J 0113 0x4b /K K 0114 0x4c /L L 0115 0x4d /M M 0116 0x4e /N N 0117 0x4f /O O 0120 0x50 /P P 0121 0x51 /Q Q 0122 0x52 /R R 0123 0x53 /S S 0124 0x54 /T T 0125 0x55 /U U 0126 0x56 /V V 0127 0x57 /W W 0130 0x58 /X X 0131 0x59 /Y Y 0132 0x5a /Z Z 0133 0x5b /bracketleft [ 0134 0x5c /backslash \ 0135 0x5d /bracketright ] 0136 0x5e /asciicircum ^ 0137 0x5f /underscore _ 0140 0x60 /quoteleft ` 0141 0x61 /a a 0142 0x62 /b b 0143 0x63 /c c 0144 0x64 /d d 0145 0x65 /e e 0146 0x66 /f f 0147 0x67 /g g 0150 0x68 /h h 0151 0x69 /i i 0152 0x6a /j j 0153 0x6b /k k 0154 0x6c /l l 0155 0x6d /m m 0156 0x6e /n n 0157 0x6f /o o 0160 0x70 /p p 0161 0x71 /q q 0162 0x72 /r r 0163 0x73 /s s 0164 0x74 /t t 0165 0x75 /u u 0166 0x76 /v v 0167 0x77 /w w 0170 0x78 /x x 0171 0x79 /y y 0172 0x7a /z z 0173 0x7b /braceleft { 0174 0x7c /bar | 0175 0x7d /braceright } 0176 0x7e /tilde ~ 0177 0x7f non-printable 0200 0x80 /Adieresis Ä € 0201 0x81 /Aring Å 0202 0x82 /Ccedilla Ç ‚ 0203 0x83 /Eacute É ƒ 0204 0x84 /Ntilde Ñ „ 0205 0x85 /Odieresis Ö … 0206 0x86 /Udieresis Ü † 0207 0x87 /aacute á ‡ 0210 0x88 /agrave à ˆ 0211 0x89 /acircumflex â ‰ 0212 0x8a /adieresis ä Š 0213 0x8b /atilde ã ‹ 0214 0x8c /aring å Œ 0215 0x8d /ccedilla ç 0216 0x8e /eacute é Ž 0217 0x8f /egrave è 0220 0x90 /ecircumflex ê 0221 0x91 /edieresis ë ‘ 0222 0x92 /iacute í ’ 0223 0x93 /igrave ì “ 0224 0x94 /icircumflex î ” 0225 0x95 /idieresis ï • 0226 0x96 /ntilde ñ – 0227 0x97 /oacute ó — 0230 0x98 /ograve ò ˜ 0231 0x99 /ocircumflex ô ™ 0232 0x9a /odieresis ö š 0233 0x9b /otilde õ › 0234 0x9c /uacute ú œ 0235 0x9d /ugrave ù 0236 0x9e /ucircumflex û ž 0237 0x9f /udieresis ü Ÿ 0240 0xa0 /dagger   0241 0xa1 /degree ¡ 0242 0xa2 /cent ¢ 0243 0xa3 /sterling £ 0244 0xa4 /section ¤ 0245 0xa5 /bullet ¥ 0246 0xa6 /paragraph ¦ 0247 0xa7 /germandbls ß § 0250 0xa8 /registered ¨ 0251 0xa9 /copyright © 0252 0xaa /trademark ª 0253 0xab /acute « 0254 0xac /dieresis ¬ 0255 0xad /notequal ­ 0256 0xae /AE Æ ® 0257 0xaf /Oslash Ø ¯ 0260 0xb0 /infinity ° 0261 0xb1 /plusminus ± 0262 0xb2 /lessequal ² 0263 0xb3 /greaterequal ³ 0264 0xb4 /yen ´ 0265 0xb5 /mu µ 0266 0xb6 /partialdiff ¶ 0267 0xb7 /Sigma · 0270 0xb8 /product ¸ 0271 0xb9 /pi ¹ 0272 0xba /integral º 0273 0xbb /ordfeminine » 0274 0xbc /ordmasculine ¼ 0275 0xbd /Omega ½ 0276 0xbe /ae æ ¾ 0277 0xbf /oslash ø ¿ 0300 0xc0 /questiondown À 0301 0xc1 /exclamdown Á 0302 0xc2 /logicalnot  0303 0xc3 /radical à 0304 0xc4 /florin Ä 0305 0xc5 /approxequal Å 0306 0xc6 /Delta Æ 0307 0xc7 /guillemotleft Ç 0310 0xc8 /guillemotright È 0311 0xc9 /ellipsis É 0312 0xca /space Ê 0313 0xcb /Agrave À Ë 0314 0xcc /Atilde Ã Ì 0315 0xcd /Otilde Õ Í 0316 0xce /OE Î 0317 0xcf /oe Ï 0320 0xd0 /endash Ð 0321 0xd1 /emdash Ñ 0322 0xd2 /quotedblleft Ò 0323 0xd3 /quotedblright Ó 0324 0xd4 /quoteleft Ô 0325 0xd5 /quoteright Õ 0326 0xd6 /divide Ö 0327 0xd7 /lozenge × 0330 0xd8 /ydieresis ÿ Ø 0331 0xd9 /Ydieresis Ÿ Ù 0332 0xda /fraction Ú 0333 0xdb /currency Û 0334 0xdc /guilsinglleft Ü 0335 0xdd /guilsinglright Ý 0336 0xde /fi Þ 0337 0xdf /fl ß 0340 0xe0 /daggerdbl à 0341 0xe1 /periodcentered á 0342 0xe2 /quotesinglbase â 0343 0xe3 /quotedblbase ã 0344 0xe4 /perthousand ä 0345 0xe5 /Acircumflex  å 0346 0xe6 /Ecircumflex Ê æ 0347 0xe7 /Aacute Á ç 0350 0xe8 /Edieresis Ë è 0351 0xe9 /Egrave È é 0352 0xea /Iacute Í ê 0353 0xeb /Icircumflex Î ë 0354 0xec /Idieresis Ï ì 0355 0xed /Igrave Ì í 0356 0xee /Oacute Ó î 0357 0xef /Ocircumflex Ô ï 0360 0xf0 non-printable 0361 0xf1 /Ograve Ò ñ 0362 0xf2 /Uacute Ú ò 0363 0xf3 /Ucircumflex Û ó 0364 0xf4 /Ugrave Ù ô 0365 0xf5 /dotlessi õ 0366 0xf6 /circumflex ö 0367 0xf7 /tilde ÷ 0370 0xf8 /macron ø 0371 0xf9 /breve ù 0372 0xfa /dotaccent ú 0373 0xfb /ring û 0374 0xfc /cedilla ü 0375 0xfd /hungarumlaut ý 0376 0xfe /ogonek þ 0377 0xff /caron ÿ enscript-1.6.5.90/docs/0000755000175000017500000000000011606344235011536 500000000000000enscript-1.6.5.90/docs/enscript.man0000644000175000017500000012434011606177501014006 00000000000000.\" .\" GNU enscript manual page. .\" Copyright (c) 1995-1999 Markku Rossi. .\" Author: Markku Rossi .\" .\" .\" This file is part of GNU Enscript. .\" .\" Enscript is free software: you can redistribute 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. .\" .\" Enscript is distributed in the hope that it will be useful, .\" but WITHOUT ANY WARRANTY; without even the implied warranty of .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the .\" GNU General Public License for more details. .\" .\" You should have received a copy of the GNU General Public License .\" along with Enscript. If not, see . .\" .TH ENSCRIPT 1 "Mar 12, 1999" "ENSCRIPT" "ENSCRIPT" .SH NAME enscript \- convert text files to PostScript, HTML, RTF, ANSI, and overstrikes .SH SYNOPSIS .B enscript [\f3\-123456789BcgGhjkKlmOqrRvVzZ\f1] [\f3\-# \f2copies\f1] [\f3\-a \f2pages\f1] [\f3\-A \f2align\f1] [\f3\-b \f2header\f1] [\f3\-C\f1[\f2start_line\f1]] [\f3\-d \f2printer\f1] [\f3\-D \f2key\f1[\f3:\f2value\f1]] [\f3\-e\f1[\f2char\f1]] [\f3\-E\f1[\f2lang\f1]] [\f3\-f \f2font\f1] [\f3\-F \f2header_font\f1] [\f3\-H\f1[\f2num\f1]] [\f3\-i \f2indent\f1] [\f3\-I \f2filter\f1] [\f3\-J \f2title\f1] [\f3\-L \f2lines_per_page\f1] [\f3\-M \f2media\f1] [\f3\-n \f2copies\f1] [\f3\-N \f2newline\f1] [\f3\-o \f2outputfile\f1] [\f3\-o \-\f1] [\f3\-p \f2outputfile\f1] [\f3\-p \-\f1] [\f3\-P \f2printer\f1] [\f3\-s \f2baselineskip\f1] [\f3\-S \f2key\f1[\f3:\f2value\f1]] [\f3\-t \f2title\f1] [\f3\-T \f2tabsize\f1] [\f3\-u\f1[\f2text\f1]] [\f3\-U \f2num\f1] [\f3\-w \f2language\f1] [\f3\-X \f2encoding\f1] [\f2filename\f1 ...] .SH DESCRIPTION \f3Enscript\f1 converts text files to PostScript or to other output languages. \f3Enscript\f1 can spool the generated output directly to a specified printer or leave it to a file. If no input files are given, \f3enscript\f1 processes the standard input \f3stdin\f1. \f3Enscript\f1 can be extended to handle different output media and it has many options which can be used to customize the printouts. .SH OPTIONS .TP 8 .B \-# \f2num\f3 Print \f2num\f1 copies of each page. .TP 8 .B \-1, \-2, \-3, \-4, \-5, \-6, \-7, \-8, \-9, \-\-columns=\f2num\f3 Specify how many columns each page have. With the long option \f3\-\-columns=\f2num\f1 you can specify more than 9 columns per page. .TP 8 .B \-a \f2pages\f3, \-\-pages=\f2pages\f3 Specify which pages are printed. The page specification \f2pages\f1 can be given in the following formats: .RS 8 .TP 8 \f2begin\f1\-\f2end\f1 print pages from \f2begin\f1 to \f2end\f1 .TP 8 \-\f2end\f1 print pages from 0 to \f2end\f1 .TP 8 \f2begin\f1\- print pages from \f2begin\f1 to end .TP 8 \f2page\f1 print page \f2page\f1 .TP 8 odd print odd pages .TP 8 even print even pages .RE .TP 8 .B \-A \f2align\f3, \-\-file\-align=\f2align\f3 Align separate input files to even \f2align\f1 page count. This option is useful in two-side and 2-up printings (\-\-file\-align=2). .TP 8 .B \-b \f2header\f3, \-\-header=\f2header\f3 Use the text \f2header\f1 as a page header. The default page header is constructed from the name of the file and from its last modification time. The header string \f2header\f1 can contain the same formatting escapes which can be specified for the \f3%Format\f1 directives in the user defined fancy headers. For example, the following option prints the file name, current date and page numbers: \f3enscript \-\-header='$n %W Page $% of $=' *.c\f1 The header string can also contain left, center and right justified fields. The fields are separated by the \f3'|'\f1 character: \f3enscript \-\-header='$n|%W|Page $% of $=' *.c\f1 now the file name is printed left justified, the date is centered to the header and the page numbers are printed right justified. .TP 8 .B \-B, \-\-no\-header Do not print page headers. .TP 8 .B \-c, \-\-truncate\-lines Cut lines that are too long for the page. As a default, \f3enscript\f1 wraps long lines to the next line so no information is lost. You can also use the \f3\-\-slice\f1 option which slices long lines to separate pages. .TP 8 .B \-C\f1[\f2start_line\f1]\f3, \-\-line\-numbers\f1[\f3=\f2start_line\f1]\f3 Precede each line with its line number. The optional argument \f2start_line\f1 specifies the number of the first line in the input. The number of the first line defaults to 1. .TP 8 .B \-d \f2name\f3 Spool output to the printer \f2name\f1. .TP 8 .B \-D \f2key\f1[\f3:\f2value\f1]\f3, \-\-setpagedevice=\f2key\f1[\f3:\f2value\f1]\f3 Pass a page device definition to the generated PostScript output. If no value is given, the key \f2key\f1 is removed from the definitions. For example, the command .B enscript \-DDuplex:true foo.txt prints file foo.txt in duplex (two side) mode. Page device operators are implementation dependent but they are standardized. See section \f3PAGE DEVICE OPTIONS\f1 for the details. .TP 8 .B \-e\f1[\f2char\f1]\f3, \-\-escapes\f1[\f3=\f2char\f1]\f3 Enable special escapes interpretation (see section \f3SPECIAL ESCAPES\f1). If the argument \f2char\f1 is given, it changes the escape character to \f2char\f1. The default escape character is 0. .TP 8 .B \-E\f1[\f2lang\f1]\f3, \-\-highlight\f1[\f3=\f2lang\f1]\f3 Highlight source code by creating a special input filter with the \f3states\f1 program. The optional argument \f2lang\f1 specifies the language to highlight. As a default the \f3states\f1 makes an educated guess. You can print a short description of the supported highlighting languages and file formats with the command: .B enscript \-\-help\-highlight The highlighting rules are defined in the `@DATADIR@/enscript/hl/*.st' files which can be edited to create highlighting definitions for new languages. \f3Note!\f1 You can not use your own input filters with this option. .TP 8 .B \-f \f2name\f3, \-\-font=\f2name\f3 Select a font that is used for the body text. The default body font is \f3Courier10\f1, unless multicolumn landscape printing mode is selected, in which case the default font is \f3Courier7\f1. The font specification \f2name\f1 contains two parts: the name of the font and its size in PostScript points. For example, "\f3Times\-Roman12\f1" selects the "Times\-Roman" font with size 12pt. The font specification \f2name\f1 can also be given in format `\f2name\f1@\f2ptsize\f1', where the name of the font and its point size are separated by a `@' character. This allows \f3enscript\f1 to use fonts which contain digit characters in their names. The font point size can also be given in the format \f2width\f1/\f2height\f1 where the \f2width\f1 and the \f2height\f1 specify the size of the font in x- and y-directions. For example, "\f3Times\-Roman@10/12\f1" selects a 10 points wide and 12 points high "Times\-Roman" font. You can also give the font sizes as decimal numbers. For example, "\f3Times\-Roman10.2\f1" selects a 10.2pt "Times\-Roman" font. .TP 8 .B \-F \f2name\f3, \-\-header\-font=\f2name\f3 Select a font for the header texts. .TP 8 .B \-g, \-\-print\-anyway Print a file even if it contains binary data. The option is implemented only for compatibility purposes. \f3Enscript\f1 prints binary files anyway regardless of the option. .TP 8 .B \-G, \-\-fancy\-header\f1[\f3=\f2name\f1]\f3 Print a fancy page header \f2name\f1 to the top of each page. The option \f3\-G\f1 specifies the default fancy header. See section \f3CONFIGURATION FILES\f1 to see how the default fancy header can be changed. .TP 8 .B \-h, \-\-no\-job\-header Suppress printing of the job header page. .TP 8 .B \-H\f1[\f2num\f1]\f3, \-\-highlight\-bars\f1[\f3=\f2num\f1]\f3 Specify how high the highlight bars are in lines. If the \f2num\f1 is not given, the default value 2 is used. As a default, no highlight bars are printed. .TP 8 .B \-i \f2num\f3, \-\-indent=\f2num\f3 Indent every line \f2num\f1 characters. The indentation can also be specified in other units by appending an unit specifier after the number. The possible unit specifiers and the corresponding units are: .RS 8 .TP 8 .B c centimeters .TP 8 .B i inches .TP 8 .B l characters (default) .TP 8 .B p PostScript points .RE .TP 8 .B \-I \f2filter\f3, \-\-filter=\f2filter\f1 Read all input files through an input filter \f2filter\f1. The input filter can be a single command or a command pipeline. The filter can refer to the name of the input file with the escape `\f3%s\f1'. The name of the standard input can be changed with the option `\f3\-\-filter\-stdin\f1'. For example, the following command prints the file `foo.c' by using only upper-case characters: .B enscript \-\-filter="cat %s | tr 'a-z' 'A-Z'" foo.c The following command highlights changes which are made to files since the last checkout: .B enscript \-\-filter="rcsdiff %s | diffpp %s" \-e *.c To include the string "%s" to the filter command, you must write it as "%%s". .TP 8 .B \-j, \-\-borders Print borders around columns. .TP 8 .B \-J \f2title\f3 An alias for the option \f3\-t\f1, \f3\-\-title\f1. .TP 8 .B \-k, \-\-page\-prefeed Enable page prefeed. .TP 8 .B \-K, \-\-no\-page\-prefeed Disable page prefeed (default). .TP 8 .B \-l, \-\-lineprinter Emulate lineprinter. This option is a shortcut for the options \f3\-\-lines\-per\-page=66\f1, and \f3\-\-no\-header\f1. .TP 8 .B \-L \f2num\f3, \-\-lines\-per\-page=\f2num\f3 Print only \f2num\f1 lines for each page. As a default, the number of lines per page is computed from the height of the page and from the size of the font. .TP 8 .B \-m, \-\-mail Send a mail notification to user after the print job has been completed. .TP 8 .B \-M \f2name\f3, \-\-media=\f2name\f3 Select an output media \f2name\f1. \f3Enscript\f1's default output media is \f3@media@\f1. .TP 8 .B \-n \f2num\f3, \-\-copies=\f2num\f3 Print \f2num\f1 copies of each page. .TP 8 .B \-N \f2nl\f3, \-\-newline=\f2nl\f3 Select the \f2newline\f1 character. The possible values for \f2nl\f1 are: \f3n\f1 (unix newline, 0xa hex) and \f3r\f1 (mac newline, 0xd hex). .TP 8 .B \-o \f2file\f3 An alias for the option \f3\-p\f1, \f3\-\-output\f1. .TP 8 .B \-O, \-\-missing\-characters Print a listing of character codes which couldn't be printed. .TP 8 .B \-p \f2file\f3, \-\-output=\f2file\f3 Leave the output to file \f2file\f1. If the \f2file\f1 is `\-', enscript sends the output to the standard output \f3stdout\f1. .TP 8 .B \-P \f2name\f3, \-\-printer=\f2name\f3 Spool the output to the printer \f2name\f1. .TP 8 .B \-q, \-\-quiet, \-\-silent Make \f3enscript\f1 really quiet. Only fatal error messages are printed to \f2stderr\f1. .TP 8 .B \-r, \-\-landscape Print in the landscape mode; rotate page 90 degrees. .TP 8 .B \-R, \-\-portrait Print in the portrait mode (default). .TP 8 .B \-s \f2num\f3, \-\-baselineskip=\f2num\f3 Specify the baseline skip in PostScript points. The number \f2num\f1 can be given as a decimal number. When \f3enscript\f1 moves from line to line, the current point \f2y\f1 coordinate is moved (\f2font point size + baselineskip\f1) points down. The default baseline skip is 1. .TP 8 .B \-S \f2key\f1[\f3:\f2value\f1]\f3, \-\-statusdict=\f2key\f1[\f3:\f2value\f1]\f3 Pass a statusdict definition to the generated PostScript output. If no value is given, the key \f2key\f1 is removed from the definitions. The statusdict operators are implementation dependent; see the printer's documentation for the details. For example, the command .B enscript \-Ssetpapertray:1 foo.txt prints the file \f2foo.txt\f1 by using paper from the paper tray 1 (assuming that the printer supports paper tray selection). .TP 8 .B \-t \f2title\f3, \-\-title=\f2title\f3 Set banner page's job title to \f2title\f1. The option sets also the name of the input file \f3stdin\f1. .TP 8 .B \-T \f2num\f3, \-\-tabsize=\f2num\f3 Set the tabulator size to \f2num\f1 characters. The default is 8. .TP 8 .B \-u\f1[\f2text\f1]\f3, \-\-underlay\f1[\f3=\f2text\f1]\f3 Print the string \f2text\f1 under every page. The properties of the text can be changed with the options \f3\-\-ul\-angle\f1, \f3\-\-ul\-font\f1, \f3\-\-ul\-gray\f1, \f3\-\-ul\-position\f1, and \f3\-\-ul\-style\f1. If no \f2text\f1 is given, the underlay is not printed. This can be used to remove an underlay text that was specified with the `\f3Underlay\f1' configuration file option. .TP 8 .B \-U \f2num\f3, \-\-nup=\f2num\f3 Print \f2num\f1 logical pages on each output page (N\-up printing). The values \f2num\f1 must be a power of 2. .TP 8 .B \-v, \-\-verbose\f1[\f3=\f2level\f1]\f3 Tell what \f3enscript\f1 is doing. .TP 8 .B \-V, \-\-version Print \f3enscript\f1 version information and exit. .TP 8 .B \-w \f1[\f2lang\f1]\f3, \-\-language\f1[\f3=\f2lang\f1]\f3 Generate output for the language \f2lang\f1. The possible values for \f2lang\f1 are: .RS 8 .TP 8 .B PostScript generate PostScript (default) .TP 8 .B html generate HTML .TP 8 .B overstrike generate overstrikes (line printers, less) .TP 8 .B rtf generate RTF (Rich Text Format) .TP 8 .B ansi generate ANSI terminal control codes .RE .TP 8 .B \-X \f2name\f3, \-\-encoding=\f2name\f3 Use the input encoding \f2name\f1. Currently \f3enscript\f1 supports the following encodings: .RS 8 .TP 8 .B 88591, latin1 ISO\-8859\-1 (ISO Latin1) (\f3enscript\f1's default encoding). .TP 8 .B 88592, latin2 ISO\-8859\-2 (ISO Latin2) .TP 8 .B 88593, latin3 ISO\-8859\-3 (ISO Latin3) .TP 8 .B 88594, latin4 ISO\-8859\-4 (ISO Latin4) .TP 8 .B 88595, cyrillic ISO\-8859\-5 (ISO Cyrillic) .TP 8 .B 88597, greek ISO\-8859\-7 (ISO Greek) .TP 8 .B 88599, latin5 ISO\-8859\-9 (ISO Latin5) .TP 8 .B 885910, latin6 ISO\-8859\-10 (ISO Latin6) .TP 8 .B ascii 7\-bit ascii .TP 8 .B asciifise, asciifi, asciise 7\-bit ascii with some scandinavian (Finland, Sweden) extensions .TP 8 .B asciidkno, asciidk, asciino 7\-bit ascii with some scandinavian (Denmark, Norway) extensions .TP 8 .B ibmpc, pc, dos IBM PC charset .TP 8 .B mac Mac charset .TP 8 .B vms VMS multinational charset .TP 8 .B hp8 HP Roman-8 charset .TP 8 .B koi8 Adobe Standard Cyrillic Font KOI8 charset .TP 8 .B ps, PS PostScript font's default encoding .TP 8 .B pslatin1, ISOLatin1Encoding PostScript interpreter's `ISOLatin1Encoding' .RE .TP 8 .B \-z, \-\-no\-formfeed Turn off the form feed character interpretation. .TP 8 .B \-Z, \-\-pass\-through Pass through all PostScript and PCL files without any modifications. This allows that \f3enscript\f1 can be used as a lp filter. The PostScript files are recognized by looking up the `%!' magic cookie from the beginning of the file. \f3Note!\f1 \f3Enscript\f1 recognized also the Windoze damaged `^D%!' cookie. The PCL files are recognized by looking up the `^[E' or `^[%' magic cookies from the beginning of the file. .TP 8 .B \-\-color\f1[\f3=\f2bool\f1]\f3 Use colors in the highlighting outputs. .TP 8 .B \-\-download\-font=\f2fontname\f3 Include the font description file (\f2.pfa\f1 or \f2.pfb\f1 file) of the font \f2fontname\f1 to the generated output. .TP 8 .B \-\-extended\-return\-values Enable extended return values. As a default, \f3enscript\f1 returns 1 on error and 0 otherwise. The extended return values give more details about the printing operation. See the section \f3RETURN VALUE\f1 for the details. .TP 8 .B \-\-filter\-stdin=\f2name\f1 Specify how the \f3stdin\f1 is shown to the input filter. The default value is an empty string ("") but some programs require that the \f3stdin\f1 is called something else, usually "-". .TP 8 .B \-\-footer=\f2footer\f3 Use the text \f2footer\f1 as a page footer. Otherwise the option works like the \f3\-\-header\f1 option .TP 8 .B \-\-h\-column\-height=\f2height\f3 Set the horizontal column height to be \f2height\f1 PostScript points. The option sets the formfeed type to \f3horizontal\-columns\f1. .TP 8 .B \-\-help Print a short help message and exit. .TP 8 .B \-\-help\-highlight Describe all supported \f3\-\-highlight\f1 languages and file formats. .TP 8 .B \-\-highlight\-bar\-gray=\f2gray\f3 Specify the gray level which is used in printing the highlight bars. .TP 8 .B \-\-list\-media List the names of all known output media and exit successfully. .TP 8 .B \-\-margins=\f2left\f3:\f2right\f3:\f2top\f3:\f2bottom\f3 Adjust the page marginals to be exactly \f2left\f1, \f2right\f1, \f2top\f1 and \f2bottom\f1 PostScript points. Any of the arguments can be left empty in which case the default value is used. .TP 8 .B \-\-mark\-wrapped\-lines\f1[\f3=\f2style\f1]\f3 Mark wrapped lines in the output with the style \f2style\f1. The possible values for the \f2style\f1 are: .RS 8 .TP 8 .B none do not mark them (default) .TP 8 .B plus print a plus (+) character to the end of each wrapped line .TP 8 .B box print a black box to the end of each wrapped line .TP 8 .B arrow print a small arrow to the end of each wrapped line .RE .TP 8 .B \-\-non\-printable\-format=\f2format\f3 Specify how the non-printable characters are printed. The possible values for the \f2format\f1 are: .RS 8 .TP 8 .B caret caret notation: `^@', `^A', `^B', ... .TP 8 .B octal octal notation: `\\000', `\\001', `\\002', ... (default) .TP 8 .B questionmark replace non-printable characters with a question mark `?' .TP 8 .B space replace non-printable characters with a space ` ' .RE .TP 8 .B \-\-nup\-columnwise Change the layout of the sub-pages in the N\-up printing from row-wise to columnwise. .TP 8 .B \-\-nup\-xpad=\f2num\f3 Set the page x-padding of the \f2n\f1-up printing to \f2num\f1 PostScript points. The default is 10 points. .TP 8 .B \-\-nup\-ypad=\f2num\f3 Set the page y-padding of the \f2n\f1-up printing to \f2num\f1 PostScript points. The default is 10 points. .TP 8 .B \-\-page\-label\-format=\f2format\f3 Set the page label format to \f2format\f1. The page label format specifies how the labels for the `%%Page:' PostScript comments are formatted. The possible values are: .RS 8 .TP 8 .B short Print the current pagenumber: `%%Page: (1) 1' (default) .TP 8 .B long Print the current filename and pagenumber: `%%Page: (main.c: 1) 1' .RE .TP 8 .B \-\-ps\-level=\f2level\f3 Set the PostScript language level that \f3enscript\f1 uses for its output to \f2level\f1. The possible values are \f31\f1, and \f32\f1. .TP 8 .B \-\-printer\-options=\f2options\f3 Pass extra options to the printer command. .TP 8 .B \-\-rotate\-even\-pages Rotate each even\-numbered page 180 degrees. .TP 8 .B \-\-slice=\f2num\f3 Print the vertical slice \f2num\f1. The slices are vertical regions of input files. A new slice starts from the point where the line would otherwise be wrapped to the next line. The slice numbers start from 1. .TP 8 .B \-\-style=\f2style\f3 Set the highlighting style to \f2style\f1. The possible values are: \f3a2ps\f1, \f3emacs\f1, \f3emacs_verbose\f1, \f3ifh\f1, and \f3msvc\f1. .TP 8 .B \-\-swap\-even\-page\-margins Swap left and right page margins for even\-numbered pages. .TP 8 .B \-\-toc Print a table of contents to the end of the output. .TP 8 .B \-\-word\-wrap Wrap long lines from word boundaries. .TP 8 .B \-\-ul\-angle=\f2angle\f3 Set the angle of the underlay text to \f2angle\f1. As a default, the angle is \f3atan(\-d_page_h, d_page_w)\f1. .TP 8 .B \-\-ul\-font=\f2name\f3 Select a font for the underlay text. The default underlay font is \f3Times-Roman200\f1. .TP 8 .B \-\-ul\-gray=\f2num\f3 Print the underlay text with the gray value \f2num\f1 (0 ... 1), the default gray value is .8. .TP 8 .B \-\-ul\-position=\f2position_spec\f3 Set the underlay text's starting position according to the \f2position_spec\f1. The position specification must be given in format: `\f2sign\f1 \f2xpos\f1 \f2sign\f1 \f2ypos\f1', where the \f2sign\f1 must be `+' or `\-'. The positive dimensions are measured from the lower left corner and the negative dimensions from the upper right corner. For example, the specification `+0\-0' specifies the upper left corner and `\-0+0' specifies the lower right corner. .TP 8 .B \-\-ul\-style=\f2style\f3 Set the underlay text's style to \f2style\f1. The possible values for \f2style\f1 are: .RS 8 .TP 8 .B outline print outline underlay texts (default) .TP 8 .B filled print filled underlay texts .RE .SH CONFIGURATION FILES .B Enscript reads configuration information from the following sources (in this order): command line options, environment variable \f3ENSCRIPT\f1, user's personal configuration file (\f3$HOME/.enscriptrc\f1), site configuration file (\f3@SYSCONFDIR@/enscriptsite.cfg\f1) and system's global configuration file (\f3@SYSCONFDIR@/enscript.cfg\f1). The configuration files have the following format: Empty lines and lines starting with `#' are comments. All other lines are option lines and have format: \f2option\f1 [\f2arguments ...\f1]. The following options can be specified: .TP 8 .B AcceptCompositeCharacters: \f2bool\f1 Specify whether PostScript font's composite characters are accepted as printable or if they should be considered as non-existent. The default value is false (0). .TP 8 .B AFMPath: \f2path\f3 Specifies the search path for the \f2AFM\f1 files. .TP 8 .B AppendCtrlD: \f2bool\f3 Specify if the Control-D (^D) character should be appended to the end of the output. The default value is false (0). .TP 8 .B Clean7Bit: \f2bool\f3 Specify how characters greater than 127 are printed. The valuee true (1) generates 7-bit clean code by escaping all characters greater than 127 to the backslash-octal notation (default). The value false (0) generates 8-bit PostScript code leaving all characters untouched. .TP 8 .B DefaultEncoding: \f2name\f3 Select the default input encoding. The encoding name \f2name\f1 can be one of the values of the option \f3\-X\f1, \f3\-\-encoding\f1. .TP 8 .B DefaultFancyHeader: \f2name\f3 Select the default fancy header. The default header is used when the option \f3\-G\f1 is specified or the option \f3\-\-fancy\-header\f1 is given without an argument. The system\-wide default is `\f3enscript\f1'. .TP 8 .B DefaultMedia: \f2name\f3 Select the default output media. .TP 8 .B DefaultOutputMethod: \f2method\f3 Select the default target to which the generated output is sent. The possible values for the \f2method\f1 are: .RS 8 .TP 8 .B printer send output to printer (default) .TP 8 .B stdout send output to \f3stdout\f1 .RE .TP 8 .B DownloadFont: \f2fontname\f3 Include the font description file of the font \f2fontname\f1 to the generated output. .TP 8 .B EscapeChar: \f2num\f3 Specify the escape character for the special escapes. The default value is 0. .TP 8 .B FormFeedType: \f2type\f3 Specify what to do when a formfeed character is encountered from the input. The possible values for \f2type\f1 are: .RS 8 .TP 8 .B column move to the beginning of the next column (default) .TP 8 .B page move to the beginning of the next page .RE .TP 8 .B GeneratePageSize: \f2bool\f3 Specify whether the \f3PageSize\f1 page device setting is generated to the PostScript output. The default value is true (1). .TP 8 .B HighlightBarGray: \f2gray\f3 Specify the gray level which is used to print the highlight bars. .TP 8 .B HighlightBars: \f2num\f3 Specify how high the highlight bars are in lines. The default value is 0 which means that no highlight bars are printed. .TP 8 .B LibraryPath: \f2path\f3 Specifies the \f3enscript\f1's library path that is used to lookup various resources. The default path is: `@DATADIR@/enscript:\f2home\f1/.enscript'. Where the \f2home\f1 is the user's home directory. .TP 8 .B MarkWrappedLines: \f2style\f3 Mark wraped lines in the output with the style \f2style\f1. The possible values for the \f2format\f1 are the same which can be given for the \f3\-\-mark\-wrapped\-lines\f1 option. .TP 8 \f3Media: \f2name\f3 \f2width\f3 \f2height\f3 \f2llx\f3 \f2lly\f3 \f2urx\f3 \f2ury\f3 Add a new output media with the name \f2name\f1. The physical dimensions of the media are \f2width\f1 and \f2height\f1. The bounding box of the Media is specified by the points (\f2llx\f1, \f2lly\f1) and (\f2urx\f1, \f2ury\f1). \f3Enscript\f1 prints all graphics inside the bounding box of the media. User can select this media with option \f3\-M \f2name\f1. .TP 8 .B NoJobHeaderSwitch: \f2switch\f1 Specify the spooler option to suppress the print job header page. This option is passed to the printer spooler when the \f3enscript\f1's option \f3\-h\f1, \f3\-\-no\-job\-header\f1 is selected. .TP 8 .B NonPrintableFormat: \f2format\f1 Specify how the non-printable characters are printed. The possible values for \f2format\f1 are the same which can be given for the \f3\-\-non\-printable\-format\f1 option. .TP 8 .B OutputFirstLine: \f2line\f1 Set the PostScript output's first line to \f2line\f1. The default value is \f3PS-Adobe-3.0\f1. Since some printers do not like DSC levels greater than 2.0, this option can be used to change the output first line to something more suitable like \f3%!PS-Adobe-2.0\f1 or \f3%!\f1. .TP 8 .B PageLabelFormat: \f2format\f1 Set the page label format to \f2format\f1. The possible values for \f2format\f1 are the same which can be given for the \f3\-\-page\-label\-format\f1 option. .TP 8 .B PagePrefeed: \f2bool\f3 Enable / disable page prefeed. The default value is false (0). .TP 8 .B PostScriptLevel: \f2level\f3 Set the PostScript language level, that \f3enscript\f1 uses for its output, to \f2level\f1. The possible values for \f2level\f1 are the same which can be given for the \f3\-\-ps\-level\f1 option. .TP 8 .B Printer: \f2name\f3 Names the printer to which the output is spooled. .TP 8 .B QueueParam: \f2name\f3 The spooler command switch to select the printer queue, e.g. \f3\-P\f1 in \f3lpr \-Pps\f1. This option can also be used to pass other flags to the spooler command. These options must be given before the queue switch. .TP 8 .B SetPageDevice: \f2key\f1[\f3:\f2value\f1]\f3 Pass a page device definition to the generated PostScript output. .TP 8 .B Spooler: \f2name\f3 Names the printer spooler command. \f3Enscript\f1 pipes generated PostScript to the command \f2name\f1. .TP 8 .B StatesBinary: \f2path\f3 Define an absolute path to the \f3states\f1 program. .TP 8 .B StatesColor: \f2bool\f3 Should the \f3states\f1 program generate color outputs. .TP 8 .B StatesConfigFile: \f2file\f3 Read highlighting states configuration from the file \f2file\f1. The default config file is `@DATADIR@/enscript/hl/enscript.st'. .TP 8 .B StatesHighlightStyle: \f2style\f3 Set the highlight style to \f2style\f1. .TP 8 .B StatesPath: \f2path\f3 Define the path for the \f3states\f1 program. The \f3states\f1 program will lookup its state definition files from this path. The default value is `$HOME/.enscript:@DATADIR@/enscript/hl'. .TP 8 .B StatusDict: \f2key\f1[\f3:\f2value\f1]\f3 Pass a statusdict definition to the generated PostScript output. .TP 8 .B TOCFormat: \f2format\f3 Format table of contents entries with the format string \f2format\f1. The format string \f2format\f1 can contain the same escapes which are used to format header strings with the `%Format' special comment. .TP 8 .B Underlay: \f2text\f3 Print string \f2text\f1 under every page. .TP 8 .B UnderlayAngle: \f2num\f3 Set the angle of the underlay text to \f2num\f1. .TP 8 .B UnderlayFont: \f2fontspec\f3 Select a font for the underlay text. .TP 8 .B UnderlayGray: \f2num\f3 Print the underlay text with the gray value \f2num\f1. .TP 8 .B UnderlayPosition: \f2position_spec\f3 Set the underlay text's starting position according to the \f2position_spec\f1. .TP 8 .B UnderlayStyle: \f2style\f3 Set the underlay text's style to \f2style\f1. .SH FANCY HEADERS Users can create their own fancy headers by creating a header description file and placing it in a directory which is in \f3enscript\f1's library path. The name of the header file must be in format: `\f2headername\f1.hdr'. Header can be selected by giving option: \f3\-\-fancy\-header=\f2headername\f1. Header description file contains PostScript code that paints the header. Description file must provide procedure \f3do_header\f1 which is called by \f3enscript\f1 at the beginning of every page. Header description file contains two parts: comments and code. Parts are separated by a line containing text: % \-\- code follows this line \-\- .B Enscript copies only the code part of description file to the generated PostScript output. The comments part can contain any data, it is not copied. If separator line is missing, no data is copied to output. .B Enscript defines following constants which can be used in header description files: .TP 16 .B d_page_w page width .TP 16 .B d_page_h page height .TP 16 .B d_header_x header lower left \f2x\f1 coordinate .TP 16 .B d_header_y header lower left \f2y\f1 coordinate .TP 16 .B d_header_w header width .TP 16 .B d_header_h header height .TP 16 .B d_footer_x footer lower left \f2x\f1 coordinate .TP 16 .B d_footer_y footer lower left \f2y\f1 coordinate .TP 16 .B d_footer_w footer width .TP 16 .B d_footer_h footer height .TP 16 .B d_output_w width of the text output area .TP 16 .B d_output_h height of the text output area .TP 16 .B user_header_p predicate which tells if user has defined his/her own header string: \f3true\f1/\f3false\f1 .TP 16 .B user_header_left_str if \f3user_header_p\f1 is \f3true\f1, this is the left field of the user supplied header string. .TP 16 .B user_header_center_str if \f3user_header_p\f1 is \f3true\f1, this is the center field of the user supplied header string .TP 16 .B user_header_right_str if \f3user_header_p\f1 is \f3true\f1, this is the right field of the user supplied header string .TP 16 .B user_footer_p predicate which tells if user has defined his/her own footer string: \f3true\f1/\f3false\f1 .TP 16 .B user_footer_left_str if \f3user_footer_p\f1 is \f3true\f1, this is the left field of the user supplied footer string. .TP 16 .B user_footer_center_str if \f3user_footer_p\f1 is \f3true\f1, this is the center field of the user supplied footer string .TP 16 .B user_footer_right_str if \f3user_footer_p\f1 is \f3true\f1, this is the right field of the user supplied footer string .TP 16 .B HF standard header font (from \f3\-F\f1, \f3\-\-header\-font\f1 option). This can be selected simply by invoking command: `\f3HF setfont\f1'. .TP 16 .B pagenum the number of the current page .TP 16 .B fname the full name of the printed file (/foo/bar.c) .TP 16 .B fdir the directory part of the file name (/foo) .TP 16 .B ftail file name without the directory part (bar.c) .TP 16 .B gs_languagelevel PostScript interpreter's language level (currently 1 or 2) .P You can also use the following special comments to customize your headers and to specify some extra options. Special comments are like DSC comments but they start with a single `%' character; special comments start from the beginning of the line and they have the following syntax: %\f2commentname\f1: \f2options\f1 Currently \f3enscript\f1 support the following special comments: .TP 8 .B %Format: \f2name\f3 \f2format\f3 Define a new string constant \f2name\f1 according to the format string \f2format\f1. Format string start from the first non-space character and it ends to the end of the line. Format string can contain general `%' escapes and input file related `$' escapes. Currently following escapes are supported: .RS 8 .TP 8 .B %% character `%' .TP 8 .B $$ character `$' .TP 8 .B $% current page number .TP 8 .B $= number of pages in the current file .TP 8 .B $p number of pages processed so far .TP 8 .B $(\f2VAR\f3) value of the environment variable \f2VAR\f1. .TP 8 .B %c trailing component of the current working directory .TP 8 .B %C \f1(\f3$C\f1)\f3 current time (file modification time) in `hh:mm:ss' format .TP 8 .B %d current working directory .TP 8 .B %D \f1(\f3$D\f1)\f3 current date (file modification date) in `yy-mm-dd' format .TP 8 .B %D{\f2string\f3} \f1(\f3$D{\f2string\f3}\f1)\f3 format string \f2string\f1 with the strftime(3) function. `\f3%D{}\f1' refers to the current date and `\f3$D{}\f1' to the input file's last modification date. .TP 8 .B %E \f1(\f3$E\f1)\f3 current date (file modification date) in `yy/mm/dd' format .TP 8 .B %F \f1(\f3$F\f1)\f3 current date (file modification date) in `dd.mm.yyyy' format .TP 8 .B %H document title .TP 8 .B $L number of lines in the current input file. This is valid only for the toc entries, it can't be used in header strings. .TP 8 .B %m the hostname up to the first `.' character .TP 8 .B %M the full hostname .TP 8 .B %n the user login name .TP 8 .B $n input file name without the directory part .TP 8 .B %N the user's pw_gecos field up to the first `,' character .TP 8 .B $N the full input file name .TP 8 .B %t \f1(\f3$t\f1)\f3 current time (file modification time) in 12-hour am/pm format .TP 8 .B %T \f1(\f3$T\f1)\f3 current time (file modification time) in 24-hour format `hh:mm' .TP 8 .B %* \f1(\f3$*\f1)\f3 current time (file modification time) in 24-hour format with seconds `hh:mm:ss' .TP 8 .B $v the sequence number of the current input file .TP 8 .B $V the sequence number of the current input file in the `Table of Contents' format: if the \f3\-\-toc\f1 option is given, escape expands to `\f2num\f1\-'; if the \f3\-\-toc\f1 is not given, escape expands to an empty string. .TP 8 .B %W \f1(\f3$W\f1)\f3 current date (file modification date) in `mm/dd/yy' format .RE .RS 8 All format directives except `$=' can also be given in format \f2escape\f1 \f2width\f1 \f2directive\f1 where \f2width\f1 specifies the width of the column to which the escape is printed. For example, escape "$5%" will expand to something like " 12". If the width is negative, the value will be printed left-justified. For example, the `emacs.hdr' defines its date string with the following format comment: .B %Format: eurdatestr %E which expands to: .B /eurdatestr (96/01/08) def .RE .P .TP 8 .B %HeaderHeight: \f2height\f1 Allocate \f2height\f1 points space for the page header. The default header height is 36 points. .TP 8 .B %FooterHeight: \f2height\f1 Allocate \f2height\f1 points space for the page footer. The default footer height is 0 points. .P According to Adobe's Document Structuring Conventions (DSC), all resources needed by a document must be listed in document's prolog. Since user's can create their own headers, \f3enscript\f1 don't know what resources those headers use. That's why all headers must contain a standard DSC comment that lists all needed resources. For example, used fonts can be listed with following comment: %%DocumentNeededResources: font \f2fontname1\f1 \f2fontname2\f1 Comment can be continued to the next line with the standard continuation comment: %%+ font \f2fontname3\f1 .SH SPECIAL ESCAPES \f3Enscript\f1 supports special escape sequences which can be used to add some page formatting commands to ASCII documents. As a default, special escapes interpretation is off, so all ASCII files print out as everyone expects. Special escapes interpretation is activated by giving option \f3\-e\f1, \f3\-\-escapes\f1 to \f3enscript\f1. All special escapes start with the escape character. The default escape character is ^@ (octal 000); escape character can be changed with option \f3\-e\f1, \f3\-\-escapes\f1. Escape character is followed by escape's name and optional options and arguments. Currently \f3enscript\f1 supports following escapes: .TP 8 .B bgcolor change the text background color. The syntax of the escape is: ^@bgcolor{\f2red\f1 \f2green\f1 \f2blue\f1} where the color components \f2red\f1, \f2green\f1, and \f1blue\f1 are given as decimal numbers between values 0 and 1. .TP 8 .B bggray change the text background color. The syntax of the escape is: ^@bggray{\f2gray\f1} where \f2gray\f1 is the new text background gray value. The default value is 1.0 (white). .TP 8 .B color change the text color. The syntax of the escape is: ^@color{\f2red\f1 \f2green\f1 \f2blue\f1} where color components \f2red\f1, \f2green\f1 and \f2blue\f1 are given as decimal numbers between values 0 and 1. .TP 8 .B comment comment the rest of the line including the newline character. Escape's syntax is: ^@comment \f2text\f1 \f2newline_character\f1 .TP 8 .B escape change the escape character. The syntax of the escape is: ^@escape{\f2code\f1} where \f2code\f1 is the decimal code of the new escape character. .TP 8 .B epsf inline EPS file to the document. The syntax of the escape is: ^@epsf[\f2options\f1]{\f2filename\f1} where \f2options\f1 is an optional sequence of option characters and values enclosed with brackets and \f2filename\f1 is the name of the EPS file. If \f2filename\f1 ends to the `|' character, then \f2filename\f1 is assumed to name a command that prints EPS data to its standard output. In this case, \f3enscript\f1 opens a pipe to the specified command and reads EPS data from pipe. Following options can be given for the \f3epsf\f1 escape: .RS 8 .TP 8 .B c print image centered .TP 8 .B r print image right justified .TP 8 .B n do not update current point. Following output is printed to that position where the current point was just before the \f3epsf\f1 escape .TP 8 .B nx do not update current point \f2x\f1 coordinate .TP 8 .B ny do not update current point \f2y\f1 coordinate .TP 8 .B x\f2num\f3 move image's top left \f2x\f1 coordinate \f2num\f1 characters from current point \f2x\f1 coordinate (relative position) .TP 8 .B x\f2num\f3a set image's top left \f2x\f1 coordinate to column \f2num\f1 (absolute position) .TP 8 .B y\f2num\f3 move image's top left \f2y\f1 coordinate \f2num\f1 lines from current line (relative position) .TP 8 .B y\f2num\f3a set image's top left \f2y\f1 coordinate to line \f2num\f1 (absolute position) .TP 8 .B h\f2num\f3 set image's height to \f2num\f1 lines .TP 8 .B s\f2num\f3 scale image with factor \f2num\f1 .TP 8 .B sx\f2num\f3 scale image in \f2x\f1 direction with factor \f2num\f1 .TP 8 .B sy\f2num\f3 scale image in \f2y\f1 direction with factor \f2num\f1 .P As a default, all dimensions are given in lines (vertical) and characters (horizontal). You can also specify other units by appending an unit specifier after number. Possible unit specifiers and the corresponding units are: .TP 8 .B c centimeters .TP 8 .B i inches .TP 8 .B l lines or characters (default) .TP 8 .B p PostScript points .P For example to print an image one inch high, you can specify height by following options: \f3h1i\f1 (1 inch), \f3h2.54c\f1 (2.54 cm), \f3h72p\f1 (72 points). .RE .TP 8 .B font select current font. The syntax of the escape is: ^@font{\f2fontname\f1[:\f2encoding\f1]} where \f2fontname\f1 is a standard font specification. Special font specification \f3default\f1 can be used to select the default body font (\f3enscript\f1's default or the one specified by the command line option \f3\-f\f1, \f3\-\-font\f1). The optional argument \f2encoding\f1 specifies the encoding that should be used for the new font. Currently the encoding can only be the \f3enscript\f1's global input encoding or \f3ps\f1. .TP 8 .B ps include raw PostScript code to the output. The syntax of the escape is: ^@ps{\f2code\f1} .TP 8 .B shade highlight regions of text by changing the text background color. Escape's syntax is: ^@shade{\f2gray\f1} where \f2gray\f1 is the new text background gray value. The default value is 1.0 (white) which disables highlighting. .SH PAGE DEVICE OPTIONS Page device is a PostScript level 2 feature that offers an uniform interface to control printer's output device. \f3Enscript\f1 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 \f3\-D\f1, \f3\-\-setpagedevice\f1 option. For a complete listing, see \f2PostScript Language Reference Manual\f1: section 4.11 Device Setup. .TP 8 .B Collate \f2boolean\f1 how output is organized when printing multiple copies .TP 8 .B Duplex \f2boolean\f1 duplex (two side) printing .TP 8 .B ManualFeed \f2boolean\f1 manual feed paper tray .TP 8 .B OutputFaceUp \f2boolean\f1 print output `face up' or `face down' .TP 8 .B Tumble \f2boolean\f1 how opposite sides are positioned in duplex printing .SH PRINTING EXAMPLES Following printing examples assume that \f3enscript\f1 uses the default configuration. If default actions have been changed from the configuration files, some examples will behave differently. .TP 8 .B enscript foo.txt Print file \f3foo.txt\f1 to the default printer. .TP 8 .B enscript \-Possu foo.txt Print file \f3foo.txt\f1 to printer \f3ossu\f1. .TP 8 .B enscript \-pfoo.ps foo.txt Print file \f3foo.txt\f1, but leave PostScript output to file \f3foo.ps\f1. .TP 8 .B enscript \-2 foo.txt Print file \f3foo.txt\f1 to two columns. .TP 8 .B enscript \-2r foo.txt Print file to two columns and rotate output 90 degrees (landscape). .TP 8 .B enscript \-DDuplex:true foo.txt Print file in duplex (two side) mode (printer dependent). .TP 8 .B enscript \-G2rE \-U2 foo.c My default code printing command: gaudy header, two columns, landscape, code highlighting, 2-up printing. .TP 8 \f3enscript \-E \-\-color \-whtml \-\-toc \-pfoo.html *.h *.c\f1 A nice HTML report of your project's C source files. .SH ENVIRONMENT VARIABLES The environment variable \f3ENSCRIPT\f1 can be used to pass default options for \f3enscript\f1. For example, to select the default body font to be Times\-Roman 7pt, set the following value to the \f3ENSCRIPT\f1 environment variable: .TP 8 .B \-fTimes\-Roman7 .P The value of the \f3ENSCRIPT\f1 variable is processed before the command line options, so command line options can be used to overwrite these defaults. Variable \f3ENSCRIPT_LIBRARY\f1 specifies the \f3enscript\f1's library directory. It can be used to overwrite the build-in default `@DATADIR@/enscript'. .SH RETURN VALUE \f3Enscript\f1 returns value 1 to the shell if any errors were encountered or 0 otherwise. If the option \f3\-\-extended\-return\-values\f1 was specified, the return value is constructed from the following flags: .TP 8 .B 0 no errors or warnings .TP 8 .B 2 some lines were truncated or wrapped .TP 8 .B 4 some characters were missing from the used fonts .TP 8 .B 8 some characters were unprintable .SH FILES .nf .ta 4i @DATADIR@/enscript/*.hdr header files @DATADIR@/enscript/*.enc input encoding vectors @DATADIR@/enscript/enscript.pro PostScript prolog @DATADIR@/enscript/afm/*.afm AFM files for PostScript fonts @DATADIR@/enscript/font.map index for the AFM files @DATADIR@/enscript/hl/*.st states definition files @SYSCONFDIR@/enscript.cfg system\-wide configuration file @SYSCONFDIR@/enscriptsite.cfg site configuration file ~/.enscriptrc personal configuration file ~/.enscript/ personal resource directory .fi .SH SEE ALSO diffpp(1), ghostview(1), gs(1), lpq(1), lpr(1), lprm(1), states(1) .SH AUTHOR Markku Rossi GNU Enscript WWW home page: enscript-1.6.5.90/docs/Makefile.am0000644000175000017500000000237411401303365013510 00000000000000# # Automakefile for the enscript documentation. # Copyright (c) 1998-1999 Markku Rossi # # Author: Markku Rossi # # # Enscript is free software: you can redistribute 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. # # Enscript is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # # along with Enscript. If not, see . # info_TEXINFOS = enscript.texi enscript_TEXINFOS = fdl-1.3.texi man_MANS = enscript.1 states.1 CLEANFILES = $(man_MANS) EXTRA_DIST = ChangeLog.old enscript.man states.man FAQ.html \ clean-nroff.pl texinfo.tex enscript.man.html: enscript.1 nroff -man $(srcdir)/enscript.1 | ./clean-nroff.pl > enscript.tmp enscript -E --color -q -Whtml -penscript.man.html enscript.tmp rm -f enscript.tmp SUFFIXES = .1 .man .man.1: sed 's%@DATADIR@%$(datadir)%g; s%@media@%@MEDIA@%g; s%@SYSCONFDIR@%$(sysconfdir)%g' \ $< > $@ enscript-1.6.5.90/docs/ChangeLog.old0000644000175000017500000000407711401303365014005 000000000000002009-12-30 Tim Retout * enscript.man: Explicitly use minus signs rather than hyphens in various places in --ul-position and in PRINTING EXAMPLES. * states.man (STATES PROGRAM FILES): Escape backslashes in namerules and startrules examples. Small corrections probably originally by Michael Fedrowitz. * enscript.man (SYNOPSIS): Correct '-W' to '-w'. (OPTIONS): Likewise. (PRINTING EXAMPLES): Likewise. (--header): Correct date/data typo. (--help): Correct path to states files. (--style): Correct emacs_verbose. 2009-01-11 Tim Retout * enscript.texi: Update to FDL v1.3. * fdl.text: Deleted. * fdl-1.3.texi: New file. * Makefile.am: Update appropriately. 2008-02-03 Tim Retout * enscript.info: Remove from repository. * stamp-vti: Likewise. * version.texi: Likewise. 2008-01-29 Tim Retout * Makefile.am (CLEANFILES): Clean installed man pages. 2007-11-05 Tim Retout * enscript.texi: Relicense under GNU FDL. Change copyright holder to FSF. * fdl.texi: New file. 1999-09-17 Markku Rossi * enscript.man (files): Documented `--footer' option and its `user_footer_{p,{left,center,right}_str}' PostScript variables. 1999-09-13 Markku Rossi * enscript.man (are): Documented `--extended-return-values' option. 1999-08-26 Markku Rossi * enscript.man: Documented new user string format `$p'. 1998-12-31 Markku Rossi * enscript.texi: Added documentation about the highlighting definitions. 1998-10-23 Markku Rossi * enscript.texi: Started to write Texinfo documentation. * Makefile.am: The manual pages are now created during the compilation, not during the configuration. * New directory to hold the enscript documentation. Copyright (C) 1998, 1999, 2007, 2008 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. enscript-1.6.5.90/docs/texinfo.tex0000644000175000017500000110035111606344073013655 00000000000000% 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{2009-08-14.15} % % Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, % 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, % 2007, 2008, 2009 Free Software Foundation, Inc. % % This texinfo.tex file is free software: you can redistribute it and/or % modify it under the terms of the GNU General Public License as % published by the Free Software Foundation, either version 3 of the % License, or (at your option) any later version. % % This texinfo.tex file is distributed in the hope that it will be % useful, but WITHOUT ANY WARRANTY; without even the implied warranty % of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU % General Public License for more details. % % You should have received a copy of the GNU General Public License % along with this program. If not, see . % % 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} \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 \let\ptextop=\top {\catcode`\'=\active \global\let\ptexquoteright'}% Math-mode def from plain.tex. \let\ptexraggedright=\raggedright % 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 % Since the category of space is not known, we have to be careful. \chardef\spacecat = 10 \def\spaceisspace{\catcode`\ =\spacecat} % sometimes characters are active, so we need control sequences. \chardef\colonChar = `\: \chardef\commaChar = `\, \chardef\dashChar = `\- \chardef\dotChar = `\. \chardef\exclamChar= `\! \chardef\lquoteChar= `\` \chardef\questChar = `\? \chardef\rquoteChar= `\' \chardef\semiChar = `\; \chardef\underChar = `\_ % Ignore a token. % \def\gobble#1{} % The following is used inside several \edef's. \def\makecsname#1{\expandafter\noexpand\csname#1\endcsname} % Hyphenation fixes. \hyphenation{ Flor-i-da Ghost-script Ghost-view Mac-OS Post-Script ap-pen-dix bit-map bit-maps data-base data-bases eshell fall-ing half-way long-est man-u-script man-u-scripts mini-buf-fer mini-buf-fers over-view par-a-digm par-a-digms rath-er rec-tan-gu-lar ro-bot-ics se-vere-ly set-up spa-ces spell-ing spell-ings stand-alone strong-est time-stamp time-stamps which-ever white-space wide-spread wrap-around } % 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 % Output a mark which sets \thischapter, \thissection and \thiscolor. % We dump everything together because we only have one kind of mark. % This works because we only use \botmark / \topmark, not \firstmark. % % A mark contains a subexpression of the \ifcase ... \fi construct. % \get*marks macros below extract the needed part using \ifcase. % % Another complication is to let the user choose whether \thischapter % (\thissection) refers to the chapter (section) in effect at the top % of a page, or that at the bottom of a page. The solution is % described on page 260 of The TeXbook. It involves outputting two % marks for the sectioning macros, one before the section break, and % one after. I won't pretend I can describe this better than DEK... \def\domark{% \toks0=\expandafter{\lastchapterdefs}% \toks2=\expandafter{\lastsectiondefs}% \toks4=\expandafter{\prevchapterdefs}% \toks6=\expandafter{\prevsectiondefs}% \toks8=\expandafter{\lastcolordefs}% \mark{% \the\toks0 \the\toks2 \noexpand\or \the\toks4 \the\toks6 \noexpand\else \the\toks8 }% } % \topmark doesn't work for the very first chapter (after the title % page or the contents), so we use \firstmark there -- this gets us % the mark with the chapter defs, unless the user sneaks in, e.g., % @setcolor (or @url, or @link, etc.) between @contents and the very % first @chapter. \def\gettopheadingmarks{% \ifcase0\topmark\fi \ifx\thischapter\empty \ifcase0\firstmark\fi \fi } \def\getbottomheadingmarks{\ifcase1\botmark\fi} \def\getcolormarks{\ifcase2\topmark\fi} % Avoid "undefined control sequence" errors. \def\lastchapterdefs{} \def\lastsectiondefs{} \def\prevchapterdefs{} \def\prevsectiondefs{} \def\lastcolordefs{} % 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). \ifodd\pageno \getoddheadingmarks \else \getevenheadingmarks \fi \setbox\headlinebox = \vbox{\let\hsize=\pagewidth \makeheadline}% \ifodd\pageno \getoddfootingmarks \else \getevenfootingmarks \fi \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. \normalturnoffactive % \ in index entries must not stay \, e.g., if % the page break happens to be in the middle of an example. % We don't want .vr (or whatever) entries like this: % \entry{{\tt \indexbackslash }acronym}{32}{\code {\acronym}} % "\acronym" won't work when it's read back in; % it needs to be % {\code {{\tt \backslashcurfont }acronym} \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 \oddfootingyyy.) % The \baselineskip=24pt in plain's \makefootline has no effect. \vskip 24pt \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\relax \unvbox#1\relax \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\argtorun{#2}% \begingroup \obeylines \spaceisspace #1% \parseargline\empty% Insert the \empty token, see \finishparsearg below. } {\obeylines % \gdef\parseargline#1^^M{% \endgroup % End of the group started in \parsearg. \argremovecomment #1\comment\ArgTerm% }% } % First remove any @comment, then any @c comment. \def\argremovecomment#1\comment#2\ArgTerm{\argremovec #1\c\ArgTerm} \def\argremovec#1\c#2\ArgTerm{\argcheckspaces#1\^^M\ArgTerm} % Each occurrence of `\^^M' or `\^^M' is replaced by a single space. % % \argremovec might leave us with trailing space, e.g., % @end itemize @c foo % This space token undergoes the same procedure and is eventually removed % by \finishparsearg. % \def\argcheckspaces#1\^^M{\argcheckspacesX#1\^^M \^^M} \def\argcheckspacesX#1 \^^M{\argcheckspacesY#1\^^M} \def\argcheckspacesY#1\^^M#2\^^M#3\ArgTerm{% \def\temp{#3}% \ifx\temp\empty % Do not use \next, perhaps the caller of \parsearg uses it; reuse \temp: \let\temp\finishparsearg \else \let\temp\argcheckspaces \fi % Put the space token in: \temp#1 #3\ArgTerm } % If a _delimited_ argument is enclosed in braces, they get stripped; so % to get _exactly_ the rest of the line, we had to prevent such situation. % We prepended an \empty token at the very beginning and we expand it now, % just before passing the control to \argtorun. % (Similarly, we have to think about #3 of \argcheckspacesY above: it is % either the null string, or it ends with \^^M---thus there is no danger % that a pair of braces would be stripped. % % But first, we have to remove the trailing space token. % \def\finishparsearg#1 \ArgTerm{\expandafter\argtorun\expandafter{#1}} % \parseargdef\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 environments; they don't open a group. (The % implementation of @end takes care not to call \endgroup in this % special case.) % At run-time, environments start with this: \def\startenvironment#1{\begingroup\def\thisenv{#1}} % initialize \let\thisenv\empty % ... but they get defined via ``\envdef\foo{...}'': \long\def\envdef#1#2{\def#1{\startenvironment#1#2}} \def\envparseargdef#1#2{\parseargdef#1{\startenvironment#1#2}} % Check whether we're in the right environment: \def\checkenv#1{% \def\temp{#1}% \ifx\thisenv\temp \else \badenverr \fi } % Environment mismatch, #1 expected: \def\badenverr{% \errhelp = \EMsimple \errmessage{This command can appear only \inenvironment\temp, not \inenvironment\thisenv}% } \def\inenvironment#1{% \ifx#1\empty 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 \ifmmode\imath \else\ptexi \fi \else\ifx\temp\jmacro \ifmmode\jmath \else\j \fi \else \errmessage{@dotless can be used only with i or j}% \fi\fi } % The \TeX{} logo, as in plain, but resetting the spacing so that a % period following counts as ending a sentence. (Idea found in latex.) % \edef\TeX{\TeX \spacefactor=1000 } % @LaTeX{} logo. Not quite the same results as the definition in % latex.ltx, since we use a different font for the raised A; it's most % convenient for us to use an explicitly smaller font, rather than using % the \scriptstyle font (since we don't reset \scriptstyle and % \scriptscriptstyle). % \def\LaTeX{% L\kern-.36em {\setbox0=\hbox{T}% \vbox to \ht0{\hbox{\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 -- \input text of FILE. % \def\include{\parseargusing\filenamecatcodes\includezzz} \def\includezzz#1{% \pushthisfilestack \def\thisfile{#1}% {% \makevalueexpandable % we want to expand any @value in FILE. \turnoffactive % and allow special characters in the expansion \indexnofonts % Allow `@@' and other weird things in file names. \edef\temp{\noexpand\input #1 }% % % This trickery is to read FILE outside of a group, in case it makes % definitions, etc. \expandafter }\temp \popthisfilestack } \def\filenamecatcodes{% \catcode`\\=\other \catcode`~=\other \catcode`^=\other \catcode`_=\other \catcode`|=\other \catcode`<=\other \catcode`>=\other \catcode`+=\other \catcode`-=\other \catcode`\`=\other \catcode`\'=\other } \def\pushthisfilestack{% \expandafter\pushthisfilestackX\popthisfilestack\StackTerm } \def\pushthisfilestackX{% \expandafter\pushthisfilestackY\thisfile\StackTerm } \def\pushthisfilestackY #1\StackTerm #2\StackTerm {% \gdef\popthisfilestack{\gdef\thisfile{#1}\gdef\popthisfilestack{#2}}% } \def\popthisfilestack{\errthisfilestackempty} \def\errthisfilestackempty{\errmessage{Internal error: the stack of filenames is empty.}} \def\thisfile{} % @center line % outputs that line, centered. % \parseargdef\center{% \ifhmode \let\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`\_ = \active \gdef\mathunderscore{% \catcode`\_=\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 % make the texinfo accent commands work in math mode \let\"=\ddot \let\'=\acute \let\==\bar \let\^=\hat \let\`=\grave \let\u=\breve \let\v=\check \let\~=\tilde \let\dotaccent=\dot $\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 \catcode`' = \active \gdef\mathactive{% \let^ = \ptexhat \let< = \ptexless \let> = \ptexgtr \let+ = \ptexplus \let' = \ptexquoteright } } % Some math mode symbols. \def\bullet{$\ptexbullet$} \def\geq{\ifmmode \ge\else $\ge$\fi} \def\leq{\ifmmode \le\else $\le$\fi} \def\minus{\ifmmode -\else $-$\fi} % @dots{} outputs an ellipsis using the current font. % We do .5em per period so that it has the same spacing in the cm % typewriter fonts as three actual period characters; on the other hand, % in other typewriter fonts three periods are wider than 1.5em. So do % whichever is larger. % \def\dots{% \leavevmode \setbox0=\hbox{...}% get width of three periods \ifdim\wd0 > 1.5em \dimen0 = \wd0 \else \dimen0 = 1.5em \fi \hbox to \dimen0{% \hskip 0pt plus.25fil .\hskip 0pt plus1fil .\hskip 0pt plus1fil .\hskip 0pt plus.5fil }% } % @enddots{} is an end-of-sentence ellipsis. % \def\enddots{% \dots \spacefactor=\endofsentencespacefactor } % @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, % 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 what we do). % double active backslashes. % {\catcode`\@=0 \catcode`\\=\active @gdef@activebackslashdouble{% @catcode`@\=@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, with minor % changes for Texinfo. It is included here under the GPL by permission % from the author, Heiko Oberdiek. % % #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{(}{\realbackslash(}{#1}% \HyPsdSubst{)}{\realbackslash)}{#1}% } \newhelp\nopdfimagehelp{Texinfo supports .png, .jpg, .jpeg, and .pdf images with PDF output, and none of those formats could be found. (.eps cannot be supported due to the design of the PDF format; use regular TeX (DVI output) for that.)} \ifpdf % % Color manipulation macros based on pdfcolor.tex, % except using rgb instead of cmyk; the latter is said to render as a % very dark gray on-screen and a very dark halftone in print, instead % of actual black. \def\rgbDarkRed{0.50 0.09 0.12} \def\rgbBlack{0 0 0} % % k sets the color for filling (usual text, etc.); % K sets the color for stroking (thin rules, e.g., normal _'s). \def\pdfsetcolor#1{\pdfliteral{#1 rg #1 RG}} % % Set color, and create a mark which defines \thiscolor accordingly, % so that \makeheadline knows which color to restore. \def\setcolor#1{% \xdef\lastcolordefs{\gdef\noexpand\thiscolor{#1}}% \domark \pdfsetcolor{#1}% } % \def\maincolor{\rgbBlack} \pdfsetcolor{\maincolor} \edef\thiscolor{\maincolor} \def\lastcolordefs{} % \def\makefootline{% \baselineskip24pt \line{\pdfsetcolor{\maincolor}\the\footline}% } % \def\makeheadline{% \vbox to 0pt{% \vskip-22.5pt \line{% \vbox to8.5pt{}% % Extract \thiscolor definition from the marks. \getcolormarks % Typeset the headline with \maincolor, then restore the color. \pdfsetcolor{\maincolor}\the\headline\pdfsetcolor{\thiscolor}% }% \vss }% \nointerlineskip } % % \pdfcatalog{/PageMode /UseOutlines} % % #1 is image name, #2 width (might be empty/whitespace), #3 height (ditto). \def\dopdfimage#1#2#3{% \def\imagewidth{#2}\setbox0 = \hbox{\ignorespaces #2}% \def\imageheight{#3}\setbox2 = \hbox{\ignorespaces #3}% % % pdftex (and the PDF format) support .png, .jpg, .pdf (among % others). Let's try in that order. \let\pdfimgext=\empty \begingroup \openin 1 #1.png \ifeof 1 \openin 1 #1.jpg \ifeof 1 \openin 1 #1.jpeg \ifeof 1 \openin 1 #1.JPG \ifeof 1 \openin 1 #1.pdf \ifeof 1 \openin 1 #1.PDF \ifeof 1 \errhelp = \nopdfimagehelp \errmessage{Could not find image file #1 for pdf}% \else \gdef\pdfimgext{PDF}% \fi \else \gdef\pdfimgext{pdf}% \fi \else \gdef\pdfimgext{JPG}% \fi \else \gdef\pdfimgext{jpeg}% \fi \else \gdef\pdfimgext{jpg}% \fi \else \gdef\pdfimgext{png}% \fi \closein 1 \endgroup % % without \immediate, ancient pdftex seg faults when the same image is % included twice. (Version 3.14159-pre-1.0-unofficial-20010704.) \ifnum\pdftexversion < 14 \immediate\pdfimage \else \immediate\pdfximage \fi \ifdim \wd0 >0pt width \imagewidth \fi \ifdim \wd2 >0pt height \imageheight \fi \ifnum\pdftexversion<13 #1.\pdfimgext \else {#1.\pdfimgext}% \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. \indexnofonts \turnoffactive \activebackslashdouble \makevalueexpandable \def\pdfdestname{#1}% \backslashparens\pdfdestname \safewhatsit{\pdfdest name{\pdfdestname} xyz}% }} % % used to mark target names; must be expandable. \def\pdfmkpgn#1{#1} % % by default, use a color that is dark enough to print on paper as % nearly black, but still distinguishable for online viewing. \def\urlcolor{\rgbDarkRed} \def\linkcolor{\rgbDarkRed} \def\endlink{\setcolor{\maincolor}\pdfendlink} % % Adding outlines to PDF; macros for calculating structure of outlines % come from Petr Olsak \def\expnumber#1{\expandafter\ifx\csname#1\endcsname\relax 0% \else \csname#1\endcsname \fi} \def\advancenumber#1{\tempnum=\expnumber{#1}\relax \advance\tempnum by 1 \expandafter\xdef\csname#1\endcsname{\the\tempnum}} % % #1 is the section text, which is what will be displayed in the % outline by the pdf viewer. #2 is the pdf expression for the number % of subentries (or empty, for subsubsections). #3 is the node text, % which might be empty if this toc entry had no corresponding node. % #4 is the page number % \def\dopdfoutline#1#2#3#4{% % Generate a link to the node text if that exists; else, use the % page number. We could generate a destination for the section % text in the case where a section has no node, but it doesn't % seem worth the trouble, since most documents are normally structured. \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 \catcode`\\=\active \otherbackslash \input \tocreadfilename \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 % make a live url in pdf output. \def\pdfurl#1{% \begingroup % it seems we really need yet another set of dummies; have not % tried to figure out what each command should do in the context % of @url. for now, just make @/ a no-op, that's the only one % people have actually reported a problem with. % \normalturnoffactive \def\@{@}% \let\/=\empty \makevalueexpandable % do we want to go so far as to use \indexnofonts instead of just % special-casing \var here? \def\var##1{##1}% % \leavevmode\setcolor{\urlcolor}% \startlink attr{/Border [0 0 0]}% user{/Subtype /Link /A << /S /URI /URI (#1) >>}% \endgroup} \def\pdfgettoks#1.{\setbox\boxA=\hbox{\toksA={#1.}\toksB={}\maketoks}} \def\addtokens#1#2{\edef\addtoks{\noexpand#1={\the#1#2}}\addtoks} \def\adn#1{\addtokens{\toksC}{#1}\global\countA=1\let\next=\maketoks} \def\poptoks#1#2|ENDTOKS|{\let\first=#1\toksD={#1}\toksA={#2}} \def\maketoks{% \expandafter\poptoks\the\toksA|ENDTOKS|\relax \ifx\first0\adn0 \else\ifx\first1\adn1 \else\ifx\first2\adn2 \else\ifx\first3\adn3 \else\ifx\first4\adn4 \else\ifx\first5\adn5 \else\ifx\first6\adn6 \else\ifx\first7\adn7 \else\ifx\first8\adn8 \else\ifx\first9\adn9 \else \ifnum0=\countA\else\makelink\fi \ifx\first.\let\next=\done\else \let\next=\maketoks \addtokens{\toksB}{\the\toksD} \ifx\first,\addtokens{\toksB}{\space}\fi \fi \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi \next} \def\makelink{\addtokens{\toksB}% {\noexpand\pdflink{\the\toksC}}\toksC={}\global\countA=0} \def\pdflink#1{% \startlink attr{/Border [0 0 0]} goto name{\pdfmkpgn{#1}} \setcolor{\linkcolor}#1\endlink} \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st} \else % non-pdf mode \let\pdfmkdest = \gobble \let\pdfurl = \gobble \let\endlink = \relax \let\setcolor = \gobble \let\pdfsetcolor = \gobble \let\pdfmakeoutlines = \relax \fi % \ifx\pdfoutput \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}} % Unfortunately, we have to override this for titles and the like, since % in those cases "rm" is bold. Sigh. \def\rmisbold{\rm\def\curfontstyle{bf}} % 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} % % can get a sort of poor man's double spacing by redefining this. \def\baselinefactor{1} % \def\setleading#1{% \dimen0 = #1\relax \normalbaselineskip = \baselinefactor\dimen0 \normallineskip = \lineskipfactor\normalbaselineskip \normalbaselines \setbox\strutbox =\hbox{% \vrule width0pt height\strutheightpercent\baselineskip depth \strutdepthpercent \baselineskip }% } % PDF CMaps. See also LaTeX's t1.cmap. % % do nothing with this by default. \expandafter\let\csname cmapOT1\endcsname\gobble \expandafter\let\csname cmapOT1IT\endcsname\gobble \expandafter\let\csname cmapOT1TT\endcsname\gobble % if we are producing pdf, and we have \pdffontattr, then define cmaps. % (\pdffontattr was introduced many years ago, but people still run % older pdftex's; it's easy to conditionalize, so we do.) \ifpdf \ifx\pdffontattr\undefined \else \begingroup \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char. \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap %%DocumentNeededResources: ProcSet (CIDInit) %%IncludeResource: ProcSet (CIDInit) %%BeginResource: CMap (TeX-OT1-0) %%Title: (TeX-OT1-0 TeX OT1 0) %%Version: 1.000 %%EndComments /CIDInit /ProcSet findresource begin 12 dict begin begincmap /CIDSystemInfo << /Registry (TeX) /Ordering (OT1) /Supplement 0 >> def /CMapName /TeX-OT1-0 def /CMapType 2 def 1 begincodespacerange <00> <7F> endcodespacerange 8 beginbfrange <00> <01> <0393> <09> <0A> <03A8> <23> <26> <0023> <28> <3B> <0028> <3F> <5B> <003F> <5D> <5E> <005D> <61> <7A> <0061> <7B> <7C> <2013> endbfrange 40 beginbfchar <02> <0398> <03> <039B> <04> <039E> <05> <03A0> <06> <03A3> <07> <03D2> <08> <03A6> <0B> <00660066> <0C> <00660069> <0D> <0066006C> <0E> <006600660069> <0F> <00660066006C> <10> <0131> <11> <0237> <12> <0060> <13> <00B4> <14> <02C7> <15> <02D8> <16> <00AF> <17> <02DA> <18> <00B8> <19> <00DF> <1A> <00E6> <1B> <0153> <1C> <00F8> <1D> <00C6> <1E> <0152> <1F> <00D8> <21> <0021> <22> <201D> <27> <2019> <3C> <00A1> <3D> <003D> <3E> <00BF> <5C> <201C> <5F> <02D9> <60> <2018> <7D> <02DD> <7E> <007E> <7F> <00A8> endbfchar endcmap CMapName currentdict /CMap defineresource pop end end %%EndResource %%EOF }\endgroup \expandafter\edef\csname cmapOT1\endcsname#1{% \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}% }% % % \cmapOT1IT \begingroup \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char. \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap %%DocumentNeededResources: ProcSet (CIDInit) %%IncludeResource: ProcSet (CIDInit) %%BeginResource: CMap (TeX-OT1IT-0) %%Title: (TeX-OT1IT-0 TeX OT1IT 0) %%Version: 1.000 %%EndComments /CIDInit /ProcSet findresource begin 12 dict begin begincmap /CIDSystemInfo << /Registry (TeX) /Ordering (OT1IT) /Supplement 0 >> def /CMapName /TeX-OT1IT-0 def /CMapType 2 def 1 begincodespacerange <00> <7F> endcodespacerange 8 beginbfrange <00> <01> <0393> <09> <0A> <03A8> <25> <26> <0025> <28> <3B> <0028> <3F> <5B> <003F> <5D> <5E> <005D> <61> <7A> <0061> <7B> <7C> <2013> endbfrange 42 beginbfchar <02> <0398> <03> <039B> <04> <039E> <05> <03A0> <06> <03A3> <07> <03D2> <08> <03A6> <0B> <00660066> <0C> <00660069> <0D> <0066006C> <0E> <006600660069> <0F> <00660066006C> <10> <0131> <11> <0237> <12> <0060> <13> <00B4> <14> <02C7> <15> <02D8> <16> <00AF> <17> <02DA> <18> <00B8> <19> <00DF> <1A> <00E6> <1B> <0153> <1C> <00F8> <1D> <00C6> <1E> <0152> <1F> <00D8> <21> <0021> <22> <201D> <23> <0023> <24> <00A3> <27> <2019> <3C> <00A1> <3D> <003D> <3E> <00BF> <5C> <201C> <5F> <02D9> <60> <2018> <7D> <02DD> <7E> <007E> <7F> <00A8> endbfchar endcmap CMapName currentdict /CMap defineresource pop end end %%EndResource %%EOF }\endgroup \expandafter\edef\csname cmapOT1IT\endcsname#1{% \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}% }% % % \cmapOT1TT \begingroup \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char. \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap %%DocumentNeededResources: ProcSet (CIDInit) %%IncludeResource: ProcSet (CIDInit) %%BeginResource: CMap (TeX-OT1TT-0) %%Title: (TeX-OT1TT-0 TeX OT1TT 0) %%Version: 1.000 %%EndComments /CIDInit /ProcSet findresource begin 12 dict begin begincmap /CIDSystemInfo << /Registry (TeX) /Ordering (OT1TT) /Supplement 0 >> def /CMapName /TeX-OT1TT-0 def /CMapType 2 def 1 begincodespacerange <00> <7F> endcodespacerange 5 beginbfrange <00> <01> <0393> <09> <0A> <03A8> <21> <26> <0021> <28> <5F> <0028> <61> <7E> <0061> endbfrange 32 beginbfchar <02> <0398> <03> <039B> <04> <039E> <05> <03A0> <06> <03A3> <07> <03D2> <08> <03A6> <0B> <2191> <0C> <2193> <0D> <0027> <0E> <00A1> <0F> <00BF> <10> <0131> <11> <0237> <12> <0060> <13> <00B4> <14> <02C7> <15> <02D8> <16> <00AF> <17> <02DA> <18> <00B8> <19> <00DF> <1A> <00E6> <1B> <0153> <1C> <00F8> <1D> <00C6> <1E> <0152> <1F> <00D8> <20> <2423> <27> <2019> <60> <2018> <7F> <00A8> endbfchar endcmap CMapName currentdict /CMap defineresource pop end end %%EndResource %%EOF }\endgroup \expandafter\edef\csname cmapOT1TT\endcsname#1{% \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}% }% \fi\fi % Set the font macro #1 to the font named #2, adding on the % specified font prefix (normally `cm'). % #3 is the font's design size, #4 is a scale factor, #5 is the CMap % encoding (currently only OT1, OT1IT and OT1TT are allowed, pass % empty to omit). \def\setfont#1#2#3#4#5{% \font#1=\fontprefix#2#3 scaled #4 \csname cmap#5\endcsname#1% } % This is what gets called when #5 of \setfont is empty. \let\cmap\gobble % emacs-page end of cmaps % Use cm as the default font prefix. % To specify the font prefix, you must define \fontprefix % before you read in texinfo.tex. \ifx\fontprefix\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} % Definitions for a main text size of 11pt. This is the default in % Texinfo. % \def\definetextfontsizexi{% % Text fonts (11.2pt, magstep1). \def\textnominalsize{11pt} \edef\mainmagstep{\magstephalf} \setfont\textrm\rmshape{10}{\mainmagstep}{OT1} \setfont\texttt\ttshape{10}{\mainmagstep}{OT1TT} \setfont\textbf\bfshape{10}{\mainmagstep}{OT1} \setfont\textit\itshape{10}{\mainmagstep}{OT1IT} \setfont\textsl\slshape{10}{\mainmagstep}{OT1} \setfont\textsf\sfshape{10}{\mainmagstep}{OT1} \setfont\textsc\scshape{10}{\mainmagstep}{OT1} \setfont\textttsl\ttslshape{10}{\mainmagstep}{OT1TT} \font\texti=cmmi10 scaled \mainmagstep \font\textsy=cmsy10 scaled \mainmagstep \def\textecsize{1095} % A few fonts for @defun names and args. \setfont\defbf\bfshape{10}{\magstep1}{OT1} \setfont\deftt\ttshape{10}{\magstep1}{OT1TT} \setfont\defttsl\ttslshape{10}{\magstep1}{OT1TT} \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}{OT1} \setfont\smalltt\ttshape{9}{1000}{OT1TT} \setfont\smallbf\bfshape{10}{900}{OT1} \setfont\smallit\itshape{9}{1000}{OT1IT} \setfont\smallsl\slshape{9}{1000}{OT1} \setfont\smallsf\sfshape{9}{1000}{OT1} \setfont\smallsc\scshape{10}{900}{OT1} \setfont\smallttsl\ttslshape{10}{900}{OT1TT} \font\smalli=cmmi9 \font\smallsy=cmsy9 \def\smallecsize{0900} % Fonts for small examples (8pt). \def\smallernominalsize{8pt} \setfont\smallerrm\rmshape{8}{1000}{OT1} \setfont\smallertt\ttshape{8}{1000}{OT1TT} \setfont\smallerbf\bfshape{10}{800}{OT1} \setfont\smallerit\itshape{8}{1000}{OT1IT} \setfont\smallersl\slshape{8}{1000}{OT1} \setfont\smallersf\sfshape{8}{1000}{OT1} \setfont\smallersc\scshape{10}{800}{OT1} \setfont\smallerttsl\ttslshape{10}{800}{OT1TT} \font\smalleri=cmmi8 \font\smallersy=cmsy8 \def\smallerecsize{0800} % Fonts for title page (20.4pt): \def\titlenominalsize{20pt} \setfont\titlerm\rmbshape{12}{\magstep3}{OT1} \setfont\titleit\itbshape{10}{\magstep4}{OT1IT} \setfont\titlesl\slbshape{10}{\magstep4}{OT1} \setfont\titlett\ttbshape{12}{\magstep3}{OT1TT} \setfont\titlettsl\ttslshape{10}{\magstep4}{OT1TT} \setfont\titlesf\sfbshape{17}{\magstep1}{OT1} \let\titlebf=\titlerm \setfont\titlesc\scbshape{10}{\magstep4}{OT1} \font\titlei=cmmi12 scaled \magstep3 \font\titlesy=cmsy10 scaled \magstep4 \def\titleecsize{2074} % Chapter (and unnumbered) fonts (17.28pt). \def\chapnominalsize{17pt} \setfont\chaprm\rmbshape{12}{\magstep2}{OT1} \setfont\chapit\itbshape{10}{\magstep3}{OT1IT} \setfont\chapsl\slbshape{10}{\magstep3}{OT1} \setfont\chaptt\ttbshape{12}{\magstep2}{OT1TT} \setfont\chapttsl\ttslshape{10}{\magstep3}{OT1TT} \setfont\chapsf\sfbshape{17}{1000}{OT1} \let\chapbf=\chaprm \setfont\chapsc\scbshape{10}{\magstep3}{OT1} \font\chapi=cmmi12 scaled \magstep2 \font\chapsy=cmsy10 scaled \magstep3 \def\chapecsize{1728} % Section fonts (14.4pt). \def\secnominalsize{14pt} \setfont\secrm\rmbshape{12}{\magstep1}{OT1} \setfont\secit\itbshape{10}{\magstep2}{OT1IT} \setfont\secsl\slbshape{10}{\magstep2}{OT1} \setfont\sectt\ttbshape{12}{\magstep1}{OT1TT} \setfont\secttsl\ttslshape{10}{\magstep2}{OT1TT} \setfont\secsf\sfbshape{12}{\magstep1}{OT1} \let\secbf\secrm \setfont\secsc\scbshape{10}{\magstep2}{OT1} \font\seci=cmmi12 scaled \magstep1 \font\secsy=cmsy10 scaled \magstep2 \def\sececsize{1440} % Subsection fonts (13.15pt). \def\ssecnominalsize{13pt} \setfont\ssecrm\rmbshape{12}{\magstephalf}{OT1} \setfont\ssecit\itbshape{10}{1315}{OT1IT} \setfont\ssecsl\slbshape{10}{1315}{OT1} \setfont\ssectt\ttbshape{12}{\magstephalf}{OT1TT} \setfont\ssecttsl\ttslshape{10}{1315}{OT1TT} \setfont\ssecsf\sfbshape{12}{\magstephalf}{OT1} \let\ssecbf\ssecrm \setfont\ssecsc\scbshape{10}{1315}{OT1} \font\sseci=cmmi12 scaled \magstephalf \font\ssecsy=cmsy10 scaled 1315 \def\ssececsize{1200} % Reduced fonts for @acro in text (10pt). \def\reducednominalsize{10pt} \setfont\reducedrm\rmshape{10}{1000}{OT1} \setfont\reducedtt\ttshape{10}{1000}{OT1TT} \setfont\reducedbf\bfshape{10}{1000}{OT1} \setfont\reducedit\itshape{10}{1000}{OT1IT} \setfont\reducedsl\slshape{10}{1000}{OT1} \setfont\reducedsf\sfshape{10}{1000}{OT1} \setfont\reducedsc\scshape{10}{1000}{OT1} \setfont\reducedttsl\ttslshape{10}{1000}{OT1TT} \font\reducedi=cmmi10 \font\reducedsy=cmsy10 \def\reducedecsize{1000} % reset the current fonts \textfonts \rm } % end of 11pt text font size definitions % Definitions to make the main text be 10pt Computer Modern, with % section, chapter, etc., sizes following suit. This is for the GNU % Press printing of the Emacs 22 manual. Maybe other manuals in the % future. Used with @smallbook, which sets the leading to 12pt. % \def\definetextfontsizex{% % Text fonts (10pt). \def\textnominalsize{10pt} \edef\mainmagstep{1000} \setfont\textrm\rmshape{10}{\mainmagstep}{OT1} \setfont\texttt\ttshape{10}{\mainmagstep}{OT1TT} \setfont\textbf\bfshape{10}{\mainmagstep}{OT1} \setfont\textit\itshape{10}{\mainmagstep}{OT1IT} \setfont\textsl\slshape{10}{\mainmagstep}{OT1} \setfont\textsf\sfshape{10}{\mainmagstep}{OT1} \setfont\textsc\scshape{10}{\mainmagstep}{OT1} \setfont\textttsl\ttslshape{10}{\mainmagstep}{OT1TT} \font\texti=cmmi10 scaled \mainmagstep \font\textsy=cmsy10 scaled \mainmagstep \def\textecsize{1000} % A few fonts for @defun names and args. \setfont\defbf\bfshape{10}{\magstephalf}{OT1} \setfont\deftt\ttshape{10}{\magstephalf}{OT1TT} \setfont\defttsl\ttslshape{10}{\magstephalf}{OT1TT} \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}{OT1} \setfont\smalltt\ttshape{9}{1000}{OT1TT} \setfont\smallbf\bfshape{10}{900}{OT1} \setfont\smallit\itshape{9}{1000}{OT1IT} \setfont\smallsl\slshape{9}{1000}{OT1} \setfont\smallsf\sfshape{9}{1000}{OT1} \setfont\smallsc\scshape{10}{900}{OT1} \setfont\smallttsl\ttslshape{10}{900}{OT1TT} \font\smalli=cmmi9 \font\smallsy=cmsy9 \def\smallecsize{0900} % Fonts for small examples (8pt). \def\smallernominalsize{8pt} \setfont\smallerrm\rmshape{8}{1000}{OT1} \setfont\smallertt\ttshape{8}{1000}{OT1TT} \setfont\smallerbf\bfshape{10}{800}{OT1} \setfont\smallerit\itshape{8}{1000}{OT1IT} \setfont\smallersl\slshape{8}{1000}{OT1} \setfont\smallersf\sfshape{8}{1000}{OT1} \setfont\smallersc\scshape{10}{800}{OT1} \setfont\smallerttsl\ttslshape{10}{800}{OT1TT} \font\smalleri=cmmi8 \font\smallersy=cmsy8 \def\smallerecsize{0800} % Fonts for title page (20.4pt): \def\titlenominalsize{20pt} \setfont\titlerm\rmbshape{12}{\magstep3}{OT1} \setfont\titleit\itbshape{10}{\magstep4}{OT1IT} \setfont\titlesl\slbshape{10}{\magstep4}{OT1} \setfont\titlett\ttbshape{12}{\magstep3}{OT1TT} \setfont\titlettsl\ttslshape{10}{\magstep4}{OT1TT} \setfont\titlesf\sfbshape{17}{\magstep1}{OT1} \let\titlebf=\titlerm \setfont\titlesc\scbshape{10}{\magstep4}{OT1} \font\titlei=cmmi12 scaled \magstep3 \font\titlesy=cmsy10 scaled \magstep4 \def\titleecsize{2074} % Chapter fonts (14.4pt). \def\chapnominalsize{14pt} \setfont\chaprm\rmbshape{12}{\magstep1}{OT1} \setfont\chapit\itbshape{10}{\magstep2}{OT1IT} \setfont\chapsl\slbshape{10}{\magstep2}{OT1} \setfont\chaptt\ttbshape{12}{\magstep1}{OT1TT} \setfont\chapttsl\ttslshape{10}{\magstep2}{OT1TT} \setfont\chapsf\sfbshape{12}{\magstep1}{OT1} \let\chapbf\chaprm \setfont\chapsc\scbshape{10}{\magstep2}{OT1} \font\chapi=cmmi12 scaled \magstep1 \font\chapsy=cmsy10 scaled \magstep2 \def\chapecsize{1440} % Section fonts (12pt). \def\secnominalsize{12pt} \setfont\secrm\rmbshape{12}{1000}{OT1} \setfont\secit\itbshape{10}{\magstep1}{OT1IT} \setfont\secsl\slbshape{10}{\magstep1}{OT1} \setfont\sectt\ttbshape{12}{1000}{OT1TT} \setfont\secttsl\ttslshape{10}{\magstep1}{OT1TT} \setfont\secsf\sfbshape{12}{1000}{OT1} \let\secbf\secrm \setfont\secsc\scbshape{10}{\magstep1}{OT1} \font\seci=cmmi12 \font\secsy=cmsy10 scaled \magstep1 \def\sececsize{1200} % Subsection fonts (10pt). \def\ssecnominalsize{10pt} \setfont\ssecrm\rmbshape{10}{1000}{OT1} \setfont\ssecit\itbshape{10}{1000}{OT1IT} \setfont\ssecsl\slbshape{10}{1000}{OT1} \setfont\ssectt\ttbshape{10}{1000}{OT1TT} \setfont\ssecttsl\ttslshape{10}{1000}{OT1TT} \setfont\ssecsf\sfbshape{10}{1000}{OT1} \let\ssecbf\ssecrm \setfont\ssecsc\scbshape{10}{1000}{OT1} \font\sseci=cmmi10 \font\ssecsy=cmsy10 \def\ssececsize{1000} % Reduced fonts for @acro in text (9pt). \def\reducednominalsize{9pt} \setfont\reducedrm\rmshape{9}{1000}{OT1} \setfont\reducedtt\ttshape{9}{1000}{OT1TT} \setfont\reducedbf\bfshape{10}{900}{OT1} \setfont\reducedit\itshape{9}{1000}{OT1IT} \setfont\reducedsl\slshape{9}{1000}{OT1} \setfont\reducedsf\sfshape{9}{1000}{OT1} \setfont\reducedsc\scshape{10}{900}{OT1} \setfont\reducedttsl\ttslshape{10}{900}{OT1TT} \font\reducedi=cmmi9 \font\reducedsy=cmsy9 \def\reducedecsize{0900} % reduce space between paragraphs \divide\parskip by 2 % reset the current fonts \textfonts \rm } % end of 10pt text font size definitions % We provide the user-level command % @fonttextsize 10 % (or 11) to redefine the text font size. pt is assumed. % \def\xword{10} \def\xiword{11} % \parseargdef\fonttextsize{% \def\textsizearg{#1}% \wlog{doing @fonttextsize \textsizearg}% % % Set \globaldefs so that documents can use this inside @tex, since % makeinfo 4.8 does not support it, but we need it nonetheless. % \begingroup \globaldefs=1 \ifx\textsizearg\xword \definetextfontsizex \else \ifx\textsizearg\xiword \definetextfontsizexi \else \errhelp=\EMsimple \errmessage{@fonttextsize only supports `10' or `11', not `\textsizearg'} \fi\fi \endgroup } % 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\rmisbold #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}} % Fonts for short table of contents. \setfont\shortcontrm\rmshape{12}{1000}{OT1} \setfont\shortcontbf\bfshape{10}{\magstep1}{OT1} % no cmb12 \setfont\shortcontsl\slshape{12}{1000}{OT1} \setfont\shortconttt\ttshape{12}{1000}{OT1TT} % Define these just so they can be easily changed for other fonts. \def\angleleft{$\langle$} \def\angleright{$\rangle$} % Set the fonts to use with the @small... environments. \let\smallexamplefonts = \smallfonts % About \smallexamplefonts. If we use \smallfonts (9pt), @smallexample % can fit this many characters: % 8.5x11=86 smallbook=72 a4=90 a5=69 % If we use \scriptfonts (8pt), then we can fit this many characters: % 8.5x11=90+ smallbook=80 a4=90+ a5=77 % For me, subjectively, the few extra characters that fit aren't worth % the additional smallness of 8pt. So I'm making the default 9pt. % % By the way, for comparison, here's what fits with @example (10pt): % 8.5x11=71 smallbook=60 a4=75 a5=58 % --karl, 24jan03. % Set up the default fonts, so we can use them for creating boxes. % \definetextfontsizexi \message{markup,} % 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 } % Markup style infrastructure. \defmarkupstylesetup\INITMACRO will % define and register \INITMACRO to be called on markup style changes. % \INITMACRO can check \currentmarkupstyle for the innermost % style and the set of \ifmarkupSTYLE switches for all styles % currently in effect. \newif\ifmarkupvar \newif\ifmarkupsamp \newif\ifmarkupkey %\newif\ifmarkupfile % @file == @samp. %\newif\ifmarkupoption % @option == @samp. \newif\ifmarkupcode \newif\ifmarkupkbd %\newif\ifmarkupenv % @env == @code. %\newif\ifmarkupcommand % @command == @code. \newif\ifmarkuptex % @tex (and part of @math, for now). \newif\ifmarkupexample \newif\ifmarkupverb \newif\ifmarkupverbatim \let\currentmarkupstyle\empty \def\setupmarkupstyle#1{% \csname markup#1true\endcsname \def\currentmarkupstyle{#1}% \markupstylesetup } \let\markupstylesetup\empty \def\defmarkupstylesetup#1{% \expandafter\def\expandafter\markupstylesetup \expandafter{\markupstylesetup #1}% \def#1% } % Markup style setup for left and right quotes. \defmarkupstylesetup\markupsetuplq{% \expandafter\let\expandafter \temp \csname markupsetuplq\currentmarkupstyle\endcsname \ifx\temp\relax \markupsetuplqdefault \else \temp \fi } \defmarkupstylesetup\markupsetuprq{% \expandafter\let\expandafter \temp \csname markupsetuprq\currentmarkupstyle\endcsname \ifx\temp\relax \markupsetuprqdefault \else \temp \fi } { \catcode`\'=\active \catcode`\`=\active \gdef\markupsetuplqdefault{\let`\lq} \gdef\markupsetuprqdefault{\let'\rq} \gdef\markupsetcodequoteleft{\let`\codequoteleft} \gdef\markupsetcodequoteright{\let'\codequoteright} \gdef\markupsetnoligaturesquoteleft{\let`\noligaturesquoteleft} } \let\markupsetuplqcode \markupsetcodequoteleft \let\markupsetuprqcode \markupsetcodequoteright \let\markupsetuplqexample \markupsetcodequoteleft \let\markupsetuprqexample \markupsetcodequoteright \let\markupsetuplqverb \markupsetcodequoteleft \let\markupsetuprqverb \markupsetcodequoteright \let\markupsetuplqverbatim \markupsetcodequoteleft \let\markupsetuprqverbatim \markupsetcodequoteright \let\markupsetuplqsamp \markupsetnoligaturesquoteleft \let\markupsetuplqkbd \markupsetnoligaturesquoteleft % Allow an option to not replace quotes with a regular directed right % quote/apostrophe (char 0x27), but instead use the undirected quote % from cmtt (char 0x0d). The undirected quote is ugly, so don't make it % the default, but it works for pasting with more pdf viewers (at least % evince), the lilypond developers report. xpdf does work with the % regular 0x27. % \def\codequoteright{% \expandafter\ifx\csname SETtxicodequoteundirected\endcsname\relax \expandafter\ifx\csname SETcodequoteundirected\endcsname\relax '% \else \char'15 \fi \else \char'15 \fi } % % and a similar option for the left quote char vs. a grave accent. % Modern fonts display ASCII 0x60 as a grave accent, so some people like % the code environments to do likewise. % \def\codequoteleft{% \expandafter\ifx\csname SETtxicodequotebacktick\endcsname\relax \expandafter\ifx\csname SETcodequotebacktick\endcsname\relax % [Knuth] pp. 380,381,391 % \relax disables Spanish ligatures ?` and !` of \tt font. \relax`% \else \char'22 \fi \else \char'22 \fi } % [Knuth] pp. 380,381,391, disable Spanish ligatures ?` and !` of \tt font. \def\noligaturesquoteleft{\relax\lq} % Count depth in font-changes, for error checks \newcount\fontdepth \fontdepth=0 %% 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} % @cite is 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 \def\var#1{{\setupmarkupstyle{var}\smartslanted{#1}}} \let\dfn=\smartslanted \let\emph=\smartitalic % Explicit font changes: @r, @sc, undocumented @ii. \def\r#1{{\rm #1}} % roman font \def\sc#1{{\smallcaps#1}} % smallcaps font \def\ii#1{{\it #1}} % italic font % @b, explicit bold. Also @strong. \def\b#1{{\bf #1}} \let\strong=\b % @sansserif, explicit sans. \def\sansserif#1{{\sf #1}} % We can't just use \exhyphenpenalty, because that only has effect at % the end of a paragraph. Restore normal hyphenation at the end of the % group within which \nohyphenation is presumably called. % \def\nohyphenation{\hyphenchar\font = -1 \aftergroup\restorehyphenation} \def\restorehyphenation{\hyphenchar\font = `- } % Set sfcode to normal for the chars that usually have another value. % Can't use plain's \frenchspacing because it uses the `\x notation, and % sometimes \x has an active definition that messes things up. % \catcode`@=11 \def\plainfrenchspacing{% \sfcode\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 % @t, explicit typewriter. \def\t#1{% {\tt \rawbackslash \plainfrenchspacing #1}% \null } % @samp. \def\samp#1{{\setupmarkupstyle{samp}\lq\tclose{#1}\rq\null}} % definition of @key that produces a lozenge. Doesn't adjust to text size. %\setfont\keyrm\rmshape{8}{1000}{OT1} %\font\keysy=cmsy9 %\def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{% % \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{% % \vbox{\hrule\kern-0.4pt % \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}% % \kern-0.4pt\hrule}% % \kern-.06em\raise0.4pt\hbox{\angleright}}}} % definition of @key with no lozenge. If the current font is already % monospace, don't change it; that way, we respect @kbdinputstyle. But % if it isn't monospace, then use \tt. % \def\key#1{{\setupmarkupstyle{key}% \nohyphenation \ifmonospace\else\tt\fi #1}\null} % ctrl is no longer a Texinfo command. \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 \catcode`\'=\active \catcode`\`=\active \global\let'=\rq \global\let`=\lq % default definitions % \global\def\code{\begingroup \setupmarkupstyle{code}% % The following should really be moved into \setupmarkupstyle handlers. \catcode\dashChar=\active \catcode\underChar=\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. \def\kbd#1{{\setupmarkupstyle{kbd}\def\look{#1}\expandafter\kbdfoo\look??\par}} % @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\setupmarkupstyle{kbd}\look}}\fi \else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi} % For @indicateurl, @env, @command quotes seem unnecessary, so use \code. \let\indicateurl=\code \let\env=\code \let\command=\code % @clicksequence{File @click{} Open ...} \def\clicksequence#1{\begingroup #1\endgroup} % @clickstyle @arrow (by default) \parseargdef\clickstyle{\def\click{#1}} \def\click{\arrow} % @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 % 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} % @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} % @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 } \message{glyphs,} % @point{}, @result{}, @expansion{}, @print{}, @equiv{}. % % Since these characters are used in examples, they should be an even number of % \tt widths. Each \tt character is 1en, so two makes it 1em. % \def\point{$\star$} \def\arrow{\leavevmode\raise.05ex\hbox to 1em{\hfil$\rightarrow$\hfil}} \def\result{\leavevmode\raise.05ex\hbox to 1em{\hfil$\Rightarrow$\hfil}} \def\expansion{\leavevmode\hbox to 1em{\hfil$\mapsto$\hfil}} \def\print{\leavevmode\lower.1ex\hbox to 1em{\hfil$\dashv$\hfil}} \def\equiv{\leavevmode\hbox to 1em{\hfil$\ptexequiv$\hfil}} % The @error{} command. % Adapted from the TeXbook's \boxit. % \newbox\errorbox % {\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 \reducedsf 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} % @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 } % Glyphs from the EC fonts. We don't use \let for the aliases, because % sometimes we redefine the original macro, and the alias should reflect % the redefinition. % % Use LaTeX names for the Icelandic letters. \def\DH{{\ecfont \char"D0}} % Eth \def\dh{{\ecfont \char"F0}} % eth \def\TH{{\ecfont \char"DE}} % Thorn \def\th{{\ecfont \char"FE}} % thorn % \def\guillemetleft{{\ecfont \char"13}} \def\guillemotleft{\guillemetleft} \def\guillemetright{{\ecfont \char"14}} \def\guillemotright{\guillemetright} \def\guilsinglleft{{\ecfont \char"0E}} \def\guilsinglright{{\ecfont \char"0F}} \def\quotedblbase{{\ecfont \char"12}} \def\quotesinglbase{{\ecfont \char"0D}} % % This positioning is not perfect (see the ogonek LaTeX package), but % we have the precomposed glyphs for the most common cases. We put the % tests to use those glyphs in the single \ogonek macro so we have fewer % dummy definitions to worry about for index entries, etc. % % ogonek is also used with other letters in Lithuanian (IOU), but using % the precomposed glyphs for those is not so easy since they aren't in % the same EC font. \def\ogonek#1{{% \def\temp{#1}% \ifx\temp\macrocharA\Aogonek \else\ifx\temp\macrochara\aogonek \else\ifx\temp\macrocharE\Eogonek \else\ifx\temp\macrochare\eogonek \else \ecfont \setbox0=\hbox{#1}% \ifdim\ht0=1ex\accent"0C #1% \else\ooalign{\unhbox0\crcr\hidewidth\char"0C \hidewidth}% \fi \fi\fi\fi\fi }% } \def\Aogonek{{\ecfont \char"81}}\def\macrocharA{A} \def\aogonek{{\ecfont \char"A1}}\def\macrochara{a} \def\Eogonek{{\ecfont \char"86}}\def\macrocharE{E} \def\eogonek{{\ecfont \char"A6}}\def\macrochare{e} % % Use the ec* fonts (cm-super in outline format) for non-CM glyphs. \def\ecfont{% % We can't distinguish serif/sans and italic/slanted, but this % is used for crude hacks anyway (like adding French and German % quotes to documents typeset with CM, where we lose kerning), so % hopefully nobody will notice/care. \edef\ecsize{\csname\curfontsize ecsize\endcsname}% \edef\nominalsize{\csname\curfontsize nominalsize\endcsname}% \ifx\curfontstyle\bfstylename % bold: \font\thisecfont = ecb\ifusingit{i}{x}\ecsize \space at \nominalsize \else % regular: \font\thisecfont = ec\ifusingit{ti}{rm}\ecsize \space at \nominalsize \fi \thisecfont } % @registeredsymbol - R in a circle. The font for the R should really % be smaller yet, but lllsize is the best we can do for now. % Adapted from the plain.tex definition of \copyright. % \def\registeredsymbol{% $^{{\ooalign{\hfil\raise.07ex\hbox{\selectfonts\lllsize R}% \hfil\crcr\Orb}}% }$% } % @textdegree - the normal degrees sign. % \def\textdegree{$^\circ$} % Laurent Siebenmann reports \Orb undefined with: % Textures 1.7.7 (preloaded format=plain 93.10.14) (68K) 16 APR 2004 02:38 % so we'll define it if necessary. % \ifx\Orb\undefined \def\Orb{\mathhexbox20D} \fi % Quotes. \chardef\quotedblleft="5C \chardef\quotedblright=`\" \chardef\quoteleft=`\` \chardef\quoteright=`\' \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} \parseargdef\title{% \checkenv\titlepage \leftline{\titlefonts\rmisbold #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 {\secfonts\rmisbold \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 -12pt \global\advance\vsize by -12pt } \parseargdef\everyfooting{\oddfootingxxx{#1}\evenfootingxxx{#1}} % @evenheadingmarks top \thischapter <- chapter at the top of a page % @evenheadingmarks bottom \thischapter <- chapter at the bottom of a page % % The same set of arguments for: % % @oddheadingmarks % @evenfootingmarks % @oddfootingmarks % @everyheadingmarks % @everyfootingmarks \def\evenheadingmarks{\headingmarks{even}{heading}} \def\oddheadingmarks{\headingmarks{odd}{heading}} \def\evenfootingmarks{\headingmarks{even}{footing}} \def\oddfootingmarks{\headingmarks{odd}{footing}} \def\everyheadingmarks#1 {\headingmarks{even}{heading}{#1} \headingmarks{odd}{heading}{#1} } \def\everyfootingmarks#1 {\headingmarks{even}{footing}{#1} \headingmarks{odd}{footing}{#1} } % #1 = even/odd, #2 = heading/footing, #3 = top/bottom. \def\headingmarks#1#2#3 {% \expandafter\let\expandafter\temp \csname get#3headingmarks\endcsname \global\expandafter\let\csname get#1#2marks\endcsname \temp } \everyheadingmarks bottom \everyfootingmarks bottom % @headings double turns headings on for double-sided printing. % @headings single turns headings on for single-sided printing. % @headings off turns them off. % @headings on same as @headings double, retained for compatibility. % @headings after turns on double-sided headings after this page. % @headings doubleafter turns on double-sided headings after this page. % @headings singleafter turns on single-sided headings after this page. % By default, they are off at the start of a document, % and turned `on' after @end titlepage. \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 % % Try typesetting the item mark that if the document erroneously says % something like @itemize @samp (intending @table), there's an error % right away at the @itemize. It's not the best error message in the % world, but it's better than leaving it to the @item. This means if % the user wants an empty mark, they have to say @w{} not just @w. \def\itemcontents{#1}% \setbox0 = \hbox{\itemcontents}% % % @itemize with no arg is equivalent to @itemize @bullet. \ifx\itemcontents\empty\def\itemcontents{\bullet}\fi % \let\item=\itemizeitem } % Definition of @item while inside @itemize and @enumerate. % \def\itemizeitem{% \advance\itemno by 1 % for enumerations {\let\par=\endgraf \smallbreak}% reasonable place to break {% % If the document has an @itemize directly after a section title, a % \nobreak will be last on the list, and \sectionheading will have % done a \vskip-\parskip. In that case, we don't want to zero % parskip, or the item text will crash with the heading. On the % other hand, when there is normal text preceding the item (as there % usually is), we do want to zero parskip, or there would be too much % space. In that case, we won't have a \nobreak before. At least % that's the theory. \ifnum\lastpenalty<10000 \parskip=0in \fi \noindent \hbox to 0pt{\hss \itemcontents \kern\itemmargin}% % \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. \everycr resets \everytab so we don't have to % undo it ourselves. \def\headitemfont{\b}% for people to use in the template row; not changeable \def\headitem{% \checkenv\multitable \crcr \global\everytab={\bf}% can't use \headitemfont since the parsing differs \the\everytab % for the first item }% % % 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 again encounter the problem the 1sp was intended to solve. % --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: \obeylines \catcode`\@ = \other \catcode`\{ = \other \catcode`\} = \other % % Make sure that spaces turn into tokens that match what \doignoretext wants. \spaceisspace % % Count number of #1's that we've seen. \doignorecount = 0 % % Swallow text until we reach the matching `@end #1'. \dodoignore{#1}% } { \catcode`_=11 % We want to use \_STOP_ which cannot appear in texinfo source. \obeylines % % \gdef\dodoignore#1{% % #1 contains the command name as a string, e.g., `ifinfo'. % % Define a command to find the next `@end #1'. \long\def\doignoretext##1^^M@end #1{% \doignoretextyyy##1^^M@#1\_STOP_}% % % And this command to find another #1 command, at the beginning of a % line. (Otherwise, we would consider a line `@c @ifset', for % example, to count as an @ifset for nesting.) \long\def\doignoretextyyy##1^^M@#1##2\_STOP_{\doignoreyyy{##2}\_STOP_}% % % And now expand that command. \doignoretext ^^M% }% } \def\doignoreyyy#1{% \def\temp{#1}% \ifx\temp\empty % Nothing found. \let\next\doignoretextzzz \else % Found a nested condition, ... \advance\doignorecount by 1 \let\next\doignoretextyyy % ..., look for another. % If we're here, #1 ends with ^^M\ifinfo (for example). \fi \next #1% the token \_STOP_ is present just after this macro. } % We have to swallow the remaining "\_STOP_". % \def\doignoretextzzz#1{% \ifnum\doignorecount = 0 % We have just found the outermost @end. \let\next\enddoignore \else % Still inside a nested condition. \advance\doignorecount by -1 \let\next\doignoretext % Look for the next @end. \fi \next } % Finish off ignored text. { \obeylines% % Ignore anything after the last `@end #1'; this matters in verbatim % environments, where otherwise the newline after an ignored conditional % would result in a blank line in the output. \gdef\enddoignore#1^^M{\endgroup\ignorespaces}% } % @set VAR sets the variable VAR to an empty value. % @set VAR REST-OF-LINE sets VAR to the value REST-OF-LINE. % % Since we want to separate VAR from REST-OF-LINE (which might be % empty), we can't just use \parsearg; we have to insert a space of our % own to delimit the rest of the line, and then take it out again if we % didn't need it. % We rely on the fact that \parsearg sets \catcode`\ =10. % \parseargdef\set{\setyyy#1 \endsetyyy} \def\setyyy#1 #2\endsetyyy{% {% \makevalueexpandable \def\temp{#2}% \edef\next{\gdef\makecsname{SET#1}}% \ifx\temp\empty \next{}% \else \setzzz#2\endsetzzz \fi }% } % Remove the trailing space \setxxx inserted. \def\setzzz#1 \endsetzzz{\next{#1}} % @clear VAR clears (i.e., unsets) the variable VAR. % \parseargdef\clear{% {% \makevalueexpandable \global\expandafter\let\csname SET#1\endcsname=\relax }% } % @value{foo} gets the text saved in variable foo. \def\value{\begingroup\makevalueexpandable\valuexxx} \def\valuexxx#1{\expandablevalue{#1}\endgroup} { \catcode`\- = \active \catcode`\_ = \active % \gdef\makevalueexpandable{% \let\value = \expandablevalue % We don't want these characters active, ... \catcode`\-=\other \catcode`\_=\other % ..., but we might end up with active ones in the argument if % we're called from @code, as @code{@value{foo-bar_}}, though. % So \let them to their normal equivalents. \let-\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 \relax % 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 % % I don't entirely understand this, but when an index entry is % generated from a macro call, the \endinput which \scanmacro inserts % causes processing to be prematurely terminated. This is, % apparently, because \indexsorttmp is fully expanded, and \endinput % is an expandable command. The redefinition below makes \endinput % disappear altogether for that purpose -- although logging shows that % processing continues to some further point. On the other hand, it % seems \endinput does not hurt in the printed index arg, since that % is still getting written without apparent harm. % % Sample source (mac-idx3.tex, reported by Graham Percival to % help-texinfo, 22may06): % @macro funindex {WORD} % @findex xyz % @end macro % ... % @funindex commtest % % The above is not enough to reproduce the bug, but it gives the flavor. % % Sample whatsit resulting: % .@write3{\entry{xyz}{@folio }{@code {xyz@endinput }}} % % So: \let\endinput = \empty % % 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 \otherbackslash } % 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\DH \definedummyword\L \definedummyword\O \definedummyword\OE \definedummyword\TH \definedummyword\aa \definedummyword\ae \definedummyword\dh \definedummyword\exclamdown \definedummyword\l \definedummyword\o \definedummyword\oe \definedummyword\ordf \definedummyword\ordm \definedummyword\questiondown \definedummyword\ss \definedummyword\th % % Although these internal commands shouldn't show up, sometimes they do. \definedummyword\bf \definedummyword\gtr \definedummyword\hat \definedummyword\less \definedummyword\sf \definedummyword\sl \definedummyword\tclose \definedummyword\tt % \definedummyword\LaTeX \definedummyword\TeX % % Assorted special characters. \definedummyword\bullet \definedummyword\comma \definedummyword\copyright \definedummyword\registeredsymbol \definedummyword\dots \definedummyword\enddots \definedummyword\equiv \definedummyword\error \definedummyword\euro \definedummyword\guillemetleft \definedummyword\guillemetright \definedummyword\guilsinglleft \definedummyword\guilsinglright \definedummyword\expansion \definedummyword\minus \definedummyword\ogonek \definedummyword\pounds \definedummyword\point \definedummyword\print \definedummyword\quotedblbase \definedummyword\quotedblleft \definedummyword\quotedblright \definedummyword\quoteleft \definedummyword\quoteright \definedummyword\quotesinglbase \definedummyword\result \definedummyword\textdegree % % 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. % \def\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\ogonek \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\email \definedummyword\emph \definedummyword\env \definedummyword\file \definedummyword\kbd \definedummyword\key \definedummyword\math \definedummyword\option \definedummyword\pxref \definedummyword\ref \definedummyword\samp \definedummyword\strong \definedummyword\tie \definedummyword\uref \definedummyword\url \definedummyword\var \definedummyword\verb \definedummyword\w \definedummyword\xref } % \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\DH{DZZ}% \def\L{L}% \def\OE{OE}% \def\O{O}% \def\TH{ZZZ}% \def\aa{aa}% \def\ae{ae}% \def\dh{dzz}% \def\exclamdown{!}% \def\l{l}% \def\oe{oe}% \def\ordf{a}% \def\ordm{o}% \def\o{o}% \def\questiondown{?}% \def\ss{ss}% \def\th{zzz}% % \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\dots{...}% \def\enddots{...}% \def\equiv{==}% \def\error{error}% \def\euro{euro}% \def\expansion{==>}% \def\guillemetleft{<<}% \def\guillemetright{>>}% \def\guilsinglleft{<}% \def\guilsinglright{>}% \def\minus{-}% \def\point{.}% \def\pounds{pounds}% \def\print{-|}% \def\quotedblbase{"}% \def\quotedblleft{"}% \def\quotedblright{"}% \def\quoteleft{`}% \def\quoteright{'}% \def\quotesinglbase{,}% \def\registeredsymbol{R}% \def\result{=>}% \def\textdegree{o}% % % We need to get rid of all macros, leaving only the arguments (if present). % Of course this is not nearly correct, but it is the best we can do for now. % makeinfo does not expand macros in the argument to @deffn, which ends up % writing an index entry, and texindex isn't prepared for an index sort entry % that starts with \. % % Since macro invocations are followed by braces, we can just redefine them % to take a single TeX argument. The case of a macro invocation that % goes to end-of-line is not handled. % \macrolist } \let\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}% % \safewhatsit\dosubindwrite }% \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/skips around a whatsit: % % If a skip is the last thing on the list now, preserve it % by backing up by \lastskip, doing the \write, then inserting % the skip again. Otherwise, the whatsit generated by the % \write or \pdfdest will make \lastskip zero. The result is that % sequences like this: % @end defun % @tindex whatever % @defun ... % will have extra space inserted, because the \medbreak in the % start of the @defun won't see the skip inserted by the @end of % the previous defun. % % But don't do any of this if we're not in vertical mode. We % don't want to do a \vskip and prematurely end a paragraph. % % Avoid page breaks due to these extra skips, too. % % But wait, there is a catch there: % We'll have to check whether \lastskip is zero skip. \ifdim is not % sufficient for this purpose, as it ignores stretch and shrink parts % of the skip. The only way seems to be to check the textual % representation of the skip. % % The following is almost like \def\zeroskipmacro{0.0pt} except that % the ``p'' and ``t'' characters have catcode \other, not 11 (letter). % \edef\zeroskipmacro{\expandafter\the\csname z@skip\endcsname} % \newskip\whatsitskip \newcount\whatsitpenalty % % ..., ready, GO: % \def\safewhatsit#1{% \ifhmode #1% \else % \lastskip and \lastpenalty cannot both be nonzero simultaneously. \whatsitskip = \lastskip \edef\lastskipmacro{\the\lastskip}% \whatsitpenalty = \lastpenalty % % If \lastskip is nonzero, that means the last item was a % skip. And since a skip is discardable, that means this % -\whatsitskip glue we're inserting is preceded by a % non-discardable item, therefore it is not a potential % breakpoint, therefore no \nobreak needed. \ifx\lastskipmacro\zeroskipmacro \else \vskip-\whatsitskip \fi % #1% % \ifx\lastskipmacro\zeroskipmacro % If \lastskip was zero, perhaps the last item was a penalty, and % perhaps it was >=10000, e.g., a \nobreak. In that case, we want % to re-insert the same penalty (values >10000 are used for various % signals); since we just inserted a non-discardable item, any % following glue (such as a \parskip) would be a breakpoint. For example: % % @deffn deffn-whatever % @vindex index-whatever % Description. % would allow a break between the index-whatever whatsit % and the "Description." paragraph. \ifnum\whatsitpenalty>9999 \penalty\whatsitpenalty \fi \else % On the other hand, if we had a nonzero \lastskip, % this make-up glue would be preceded by a non-discardable item % (the whatsit from the \write), so we must insert a \nobreak. \nobreak\vskip\whatsitskip \fi \fi } % The index entry written in the file actually looks like % \entry {sortstring}{page}{topic} % or % \entry {sortstring}{page}{topic}{subtopic} % The texindex program reads in these files and writes files % containing these kinds of lines: % \initial {c} % before the first topic whose initial is c % \entry {topic}{pagelist} % for a topic that is used without subtopics % \primary {topic} % 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 \plainfrenchspacing \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 freezes 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. \setbox\boxA = \hbox{#1}% \ifdim\wd\boxA = 0pt \ % \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 plain.tex's \dotfill, except uses up at least 1 em. \def\indexdotfill{\cleaders \hbox{$\mathsurround=0pt \mkern1.5mu.\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{% % The following penalty ensures that the page builder is exercised % _before_ we change the output routine. This is necessary in the % following situation: % % The last section of the index consists only of a single entry. % Before this section, \pagetotal is less than \pagegoal, so no % break occurs before the last section starts. However, the last % section, consisting of \initial and the single \entry, does not % fit on the page and has to be broken off. Without the following % penalty the page builder will not be exercised until \eject % below, and by that time we'll already have changed the output % routine to the \balancecolumns version, so the next-to-last % double-column page will be processed with \balancecolumns, which % is wrong: The two columns will go to the main vertical list, with % the broken-off section in the recent contributions. As soon as % the output routine finishes, TeX starts reconsidering the page % break. The two columns and the broken-off section both fit on the % page, because the two columns now take up only half of the page % goal. When TeX sees \eject from below which follows the final % section, it invokes the new output routine that we've set after % \balancecolumns below; \onepageout will try to fit the two columns % and the final section into the vbox of \pageheight (see % \pagebody), causing an overfull box. % % Note that glue won't work here, because glue does not exercise the % page builder, unlike penalties (see The TeXbook, pp. 280-281). \penalty0 % \output = {% % Split the last of the double-column material. 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 these (using marks) as the number+name, number % and name of the chapter. Page headings and footings can use % these. @section does likewise. \def\thischapter{} \def\thischapternum{} \def\thischaptername{} \def\thissection{} \def\thissectionnum{} \def\thissectionname{} \newcount\absseclevel % used to calculate proper heading level \newcount\secbase\secbase=0 % @raisesections/@lowersections modify this count % @raisesections: treat @section as chapter, @subsection as section, etc. \def\raisesections{\global\advance\secbase by -1} \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 % % \putwordChapter can contain complex things in translations. \toks0=\expandafter{\putwordChapter}% \message{\the\toks0 \space \the\chapno}% % % Write the actual heading. \chapmacro{#1}{Ynumbered}{\the\chapno}% % % So @section and the like are numbered underneath this chapter. \global\let\section = \numberedsec \global\let\subsection = \numberedsubsec \global\let\subsubsection = \numberedsubsubsec } \outer\parseargdef\appendix{\apphead0{#1}} % normally calls appendixzzz % \def\appendixzzz#1{% \global\secno=0 \global\subsecno=0 \global\subsubsecno=0 \global\advance\appendixno by 1 \gdef\chaplevelprefix{\appendixletter.}% \resetallfloatnos % % \putwordAppendix can contain complex things in translations. \toks0=\expandafter{\putwordAppendix}% \message{\the\toks0 \space \appendixletter}% % \chapmacro{#1}{Yappendix}{\appendixletter}% % \global\let\section = \appendixsec \global\let\subsection = \appendixsubsec \global\let\subsubsection = \appendixsubsubsec } \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\ptexraggedright \rmisbold #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} % Because \domark is called before \chapoddpage, the filler page will % get the headings for the next chapter, which is wrong. But we don't % care -- we just disable all headings on the filler page. \def\chapoddpage{% \chappager \ifodd\pageno \else \begingroup \evenheadline={\hfil}\evenfootline={\hfil}% \oddheadline={\hfil}\oddfootline={\hfil}% \hbox to 0pt{}% \chappager \endgroup \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{% % Insert the first mark before the heading break (see notes for \domark). \let\prevchapterdefs=\lastchapterdefs \let\prevsectiondefs=\lastsectiondefs \gdef\lastsectiondefs{\gdef\thissectionname{}\gdef\thissectionnum{}% \gdef\thissection{}}% % \def\temptype{#2}% \ifx\temptype\Ynothingkeyword \gdef\lastchapterdefs{\gdef\thischaptername{#1}\gdef\thischapternum{}% \gdef\thischapter{\thischaptername}}% \else\ifx\temptype\Yomitfromtockeyword \gdef\lastchapterdefs{\gdef\thischaptername{#1}\gdef\thischapternum{}% \gdef\thischapter{}}% \else\ifx\temptype\Yappendixkeyword \toks0={#1}% \xdef\lastchapterdefs{% \gdef\noexpand\thischaptername{\the\toks0}% \gdef\noexpand\thischapternum{\appendixletter}% % \noexpand\putwordAppendix avoids expanding indigestible % commands in some of the translations. \gdef\noexpand\thischapter{\noexpand\putwordAppendix{} \noexpand\thischapternum: \noexpand\thischaptername}% }% \else \toks0={#1}% \xdef\lastchapterdefs{% \gdef\noexpand\thischaptername{\the\toks0}% \gdef\noexpand\thischapternum{\the\chapno}% % \noexpand\putwordChapter avoids expanding indigestible % commands in some of the translations. \gdef\noexpand\thischapter{\noexpand\putwordChapter{} \noexpand\thischapternum: \noexpand\thischaptername}% }% \fi\fi\fi % % Output the mark. Pass it through \safewhatsit, to take care of % the preceding space. \safewhatsit\domark % % Insert the chapter heading break. \pchapsepmacro % % Now the second mark, after the heading break. No break points % between here and the heading. \let\prevchapterdefs=\lastchapterdefs \let\prevsectiondefs=\lastsectiondefs \domark % {% \chapfonts \rmisbold % % Have to define \lastsection 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\lastsection{#1}% % % Only insert the separating space if we have a chapter/appendix % number, and don't print the unnumbered ``number''. \ifx\temptype\Ynothingkeyword \setbox0 = \hbox{}% \def\toctype{unnchap}% \else\ifx\temptype\Yomitfromtockeyword \setbox0 = \hbox{}% contents like unnumbered, but no toc entry \def\toctype{omit}% \else\ifx\temptype\Yappendixkeyword \setbox0 = \hbox{\putwordAppendix{} #3\enspace}% \def\toctype{app}% \else \setbox0 = \hbox{#3\enspace}% \def\toctype{numchap}% \fi\fi\fi % % Write the toc entry for this chapter. Must come before the % \donoderef, because we include the current node name in the toc % entry, and \donoderef resets it to empty. \writetocentry{\toctype}{#1}{#3}% % % For pdftex, we have to write out the node definition (aka, make % the pdfdest) after any page break, but before the actual text has % been typeset. If the destination for the pdf outline is after the % text, then jumping from the outline may wind up with the text not % being visible, for instance under high magnification. \donoderef{#2}% % % Typeset the actual heading. \nobreak % Avoid page breaks at the interline glue. \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \ptexraggedright \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\ptexraggedright \rmisbold #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 {\rmisbold #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\seckeyword{sec} % \def\sectionheading#1#2#3#4{% {% % Switch to the right set of fonts. \csname #2fonts\endcsname \rmisbold % \def\sectionlevel{#2}% \def\temptype{#3}% % % Insert first mark before the heading break (see notes for \domark). \let\prevsectiondefs=\lastsectiondefs \ifx\temptype\Ynothingkeyword \ifx\sectionlevel\seckeyword \gdef\lastsectiondefs{\gdef\thissectionname{#1}\gdef\thissectionnum{}% \gdef\thissection{\thissectionname}}% \fi \else\ifx\temptype\Yomitfromtockeyword % Don't redefine \thissection. \else\ifx\temptype\Yappendixkeyword \ifx\sectionlevel\seckeyword \toks0={#1}% \xdef\lastsectiondefs{% \gdef\noexpand\thissectionname{\the\toks0}% \gdef\noexpand\thissectionnum{#4}% % \noexpand\putwordSection avoids expanding indigestible % commands in some of the translations. \gdef\noexpand\thissection{\noexpand\putwordSection{} \noexpand\thissectionnum: \noexpand\thissectionname}% }% \fi \else \ifx\sectionlevel\seckeyword \toks0={#1}% \xdef\lastsectiondefs{% \gdef\noexpand\thissectionname{\the\toks0}% \gdef\noexpand\thissectionnum{#4}% % \noexpand\putwordSection avoids expanding indigestible % commands in some of the translations. \gdef\noexpand\thissection{\noexpand\putwordSection{} \noexpand\thissectionnum: \noexpand\thissectionname}% }% \fi \fi\fi\fi % % Go into vertical mode. Usually we'll already be there, but we % don't want the following whatsit to end up in a preceding paragraph % if the document didn't happen to have a blank line. \par % % Output the mark. Pass it through \safewhatsit, to take care of % the preceding space. \safewhatsit\domark % % Insert space above the heading. \csname #2headingbreak\endcsname % % Now the second mark, after the heading break. No break points % between here and the heading. \let\prevsectiondefs=\lastsectiondefs \domark % % Only insert the space after the number if we have a section number. \ifx\temptype\Ynothingkeyword \setbox0 = \hbox{}% \def\toctype{unn}% \gdef\lastsection{#1}% \else\ifx\temptype\Yomitfromtockeyword % for @headings -- no section number, don't include in toc, % and don't redefine \lastsection. \setbox0 = \hbox{}% \def\toctype{omit}% \let\sectionlevel=\empty \else\ifx\temptype\Yappendixkeyword \setbox0 = \hbox{#4\enspace}% \def\toctype{app}% \gdef\lastsection{#1}% \else \setbox0 = \hbox{#4\enspace}% \def\toctype{num}% \gdef\lastsection{#1}% \fi\fi\fi % % Write the toc entry (before \donoderef). See comments in \chapmacro. \writetocentry{\toctype\sectionlevel}{#1}{#4}% % % Write the node reference (= pdf destination for pdftex). % Again, see comments in \chapmacro. \donoderef{#3}% % % Interline glue will be inserted when the vbox is completed. % That glue will be a valid breakpoint for the page, since it'll be % preceded by a whatsit (usually from the \donoderef, or from the % \writetocentry if there was no node). We don't want to allow that % break, since then the whatsits could end up on page n while the % section is on page n+1, thus toc/etc. are wrong. Debian bug 276000. \nobreak % % Output the actual section heading. \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \ptexraggedright \hangindent=\wd0 % zero if no section number \unhbox0 #1}% }% % Add extra space after the heading -- half of whatever came above it. % Don't allow stretch, though. \kern .5 \csname #2headingskip\endcsname % % Do not let the kern be a potential breakpoint, as it would be if it % was followed by glue. \nobreak % % We'll almost certainly start a paragraph next, so don't let that % glue accumulate. (Not a breakpoint because it's preceded by a % discardable item.) \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 \tocreadfilename } \newskip\contentsrightmargin \contentsrightmargin=1in \newcount\savepageno \newcount\lastnegativepageno \lastnegativepageno = -1 % Prepare to read what we've written to \tocfile. % \def\startcontents#1{% % If @setchapternewpage on, and @headings double, the contents should % start on an odd page, unlike chapters. 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. \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 } % redefined for the two-volume lispref. We always output on % \jobname.toc even if this is redefined. % \def\tocreadfilename{\jobname.toc} % Normal (long) toc. % \def\contents{% \startcontents{\putwordTOC}% \openin 1 \tocreadfilename\space \ifeof 1 \else \readtocfile \fi \vfill \eject \contentsalignmacro % in case @setchapternewpage odd is in effect \ifeof 1 \else \pdfmakeoutlines \fi \closein 1 \endgroup \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 \tocreadfilename\space \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. % @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{% \setupmarkupstyle{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 \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 \expandafter \let\csname top\endcsname=\ptextop % outer \let\frenchspacing=\plainfrenchspacing % \def\endldots{\mathinner{\ldots\ldots\ldots\ldots}}% \def\enddots{\relax\ifmmode\endldots\else$\mathsurround=0pt \endldots\,$\fi}% \def\@{@}% } % There is no need to define \Etex. % Define @lisp ... @end lisp. % @lisp environment forms a group so it can rebind things, % including the definition of @end lisp (which normally is erroneous). % Amount to narrow the margins by for @lisp. \newskip\lispnarrowing \lispnarrowing=0.4in % This is the definition that ^^M gets inside @lisp, @example, and other % such environments. \null is better than a space, since it doesn't % have any width. \def\lisppar{\null\endgraf} % This space is always present above and below environments. \newskip\envskipamount \envskipamount = 0pt % Make spacing and below environment symmetrical. We use \parskip here % to help in doing that, since in @example-like environments \parskip % is reset to zero; thus the \afterenvbreak inserts no space -- but the % start of the next paragraph will insert \parskip. % \def\aboveenvbreak{{% % =10000 instead of <10000 because of a special case in \itemzzz and % \sectionheading, q.v. \ifnum \lastpenalty=10000 \else \advance\envskipamount by \parskip \endgraf \ifdim\lastskip<\envskipamount \removelastskip % 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. \newdimen\nonfillparindent \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 % Turn off paragraph indentation but redefine \indent to emulate % the normal \indent. \nonfillparindent=\parindent \parindent = 0pt \let\indent\nonfillindent % \emergencystretch = 0pt % don't try to avoid overfull boxes \ifx\nonarrowing\relax \advance \leftskip by \lispnarrowing \exdentamount=\lispnarrowing \else \let\nonarrowing = \relax \fi \let\exdent=\nofillexdent } \begingroup \obeyspaces % We want to swallow spaces (but not other tokens) after the fake % @indent in our nonfill-environments, where spaces are normally % active and set to @tie, resulting in them not being ignored after % @indent. \gdef\nonfillindent{\futurelet\temp\nonfillindentcheck}% \gdef\nonfillindentcheck{% \ifx\temp % \expandafter\nonfillindentgobble% \else% \leavevmode\nonfillindentbox% \fi% }% \endgroup \def\nonfillindentgobble#1{\nonfillindent} \def\nonfillindentbox{\hbox to \nonfillparindent{\hss}} % If you want all examples etc. small: @set dispenvsize small. % If you want even small examples the full size: @set dispenvsize nosmall. % This affects the following displayed environments: % @example, @display, @format, @lisp % \def\smallword{small} \def\nosmallword{nosmall} \let\SETdispenvsize\relax \def\setnormaldispenv{% \ifx\SETdispenvsize\smallword % end paragraph for sake of leading, in case document has no blank % line. This is redundant with what happens in \aboveenvbreak, but % we need to do it before changing the fonts, and it's inconvenient % to change the fonts afterward. \ifnum \lastpenalty=10000 \else \endgraf \fi \smallexamplefonts \rm \fi } \def\setsmalldispenv{% \ifx\SETdispenvsize\nosmallword \else \ifnum \lastpenalty=10000 \else \endgraf \fi \smallexamplefonts \rm \fi } % We often define two environments, @foo and @smallfoo. % Let's do it 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\setupmarkupstyle{example}% \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 % @raggedright does more-or-less normal line breaking but no right % justification. From plain.tex. \envdef\raggedright{% \rightskip0pt plus2em \spaceskip.3333em \xspaceskip.5em\relax } \let\Eraggedright\par \envdef\raggedleft{% \parindent=0pt \leftskip0pt plus2em \spaceskip.3333em \xspaceskip.5em \parfillskip=0pt \hbadness=10000 % Last line will usually be underfull, so turn off % badness reporting. } \let\Eraggedleft\par \envdef\raggedcenter{% \parindent=0pt \rightskip0pt plus1em \leftskip0pt plus1em \spaceskip.3333em \xspaceskip.5em \parfillskip=0pt \hbadness=10000 % Last line will usually be underfull, so turn off % badness reporting. } \let\Eraggedcenter\par % @quotation does normal linebreaking (hence we can't use \nonfillstart) % and narrows the margins. We keep \parskip nonzero in general, since % we're doing normal filling. So, when using \aboveenvbreak and % \afterenvbreak, temporarily make \parskip 0. % \def\quotationstart{% {\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 } \envdef\quotation{% \setnormaldispenv \quotationstart } \envdef\smallquotation{% \setsmalldispenv \quotationstart } \let\Esmallquotation = \Equotation % 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\"% % Don't do the quotes -- if we do, @set txicodequoteundirected and % @set txicodequotebacktick will not have effect on @verb and % @verbatim, and ?` and !` ligatures won't get disabled. %\do\`\do\'% } % % [Knuth] p. 380 \def\uncatcodespecials{% \def\do##1{\catcode`##1=\other}\dospecials} % % Setup for the @verb command. % % Eight spaces for a tab \begingroup \catcode`\^^I=\active \gdef\tabeightspaces{\catcode`\^^I=\active\def^^I{\ \ \ \ \ \ \ \ }} \endgroup % \def\setupverb{% \tt % easiest (and conventionally used) font for verbatim \def\par{\leavevmode\endgraf}% \setupmarkupstyle{verb}% \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 % start the verbatim environment. \def\setupverbatim{% \let\nonarrowing = t% \nonfillstart % Easiest (and conventionally used) font for verbatim \tt \def\par{\leavevmode\egroup\box0\endgraf}% \tabexpand \setupmarkupstyle{verbatim}% % 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 \indexnofonts % Allow `@@' and other weird things in file names. \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 \newcount\defunpenalty % Start the processing of @deffn: \def\startdefun{% \ifnum\lastpenalty<10000 \medbreak \defunpenalty=10003 % Will keep this @deffn together with the % following @def command, see below. \else % If there are two @def commands in a row, we'll have a \nobreak, % which is there to keep the function description together with its % header. But if there's nothing but headers, we need to allow a % break somewhere. Check specifically for penalty 10002, inserted % by \printdefunline, instead of 10000, since the sectioning % commands also insert a nobreak penalty, and we don't want to allow % a break between a section heading and a defun. % % As a minor refinement, we avoid "club" headers by signalling % with penalty of 10003 after the very first @deffn in the % sequence (see above), and penalty of 10002 after any following % @def command. \ifnum\lastpenalty=10002 \penalty2000 \else \defunpenalty=10002 \fi % % Similarly, after a section heading, do not allow a break. % But do insert the glue. \medskip % preceded by discardable penalty, so not a breakpoint \fi % \parindent=0in \advance\leftskip by \defbodyindent \exdentamount=\defbodyindent } \def\dodefunx#1{% % First, check whether we are in the right environment: \checkenv#1% % % As above, allow line break if we have multiple x headers in a row. % It's not a great place, though. \ifnum\lastpenalty=10002 \penalty3000 \else \defunpenalty=10002 \fi % % And now, it's time to reuse the body of the original defun: \expandafter\gobbledefun#1% } \def\gobbledefun#1\startdefun{} % \printdefunline \deffnheader{text} % \def\printdefunline#1#2{% \begingroup % call \deffnheader: #1#2 \endheader % common ending: \interlinepenalty = 10000 \advance\rightskip by 0pt plus 1fil \endgraf \nobreak\vskip -\parskip \penalty\defunpenalty % signal to \startdefun and \dodefunx % Some of the @defun-type tags do not enable magic parentheses, % rendering the following check redundant. But we don't optimize. \checkparencounts \endgroup } \def\Edefun{\endgraf\medbreak} % \makedefun{deffn} creates \deffn, \deffnx and \Edeffn; % the only thing remaining is to define \deffnheader. % \def\makedefun#1{% \expandafter\let\csname E#1\endcsname = \Edefun \edef\temp{\noexpand\domakedefun \makecsname{#1}\makecsname{#1x}\makecsname{#1header}}% \temp } % \domakedefun \deffn \deffnx \deffnheader % % 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. \def\var##1{{\setupmarkupstyle{var}\ttslanted{##1}}}% #1% \sl\hyphenchar\font=45 } % We want ()&[] to print specially on the defun line. % \def\activeparens{% \catcode`\(=\active \catcode`\)=\active \catcode`\[=\active \catcode`\]=\active \catcode`\&=\active } % Make control sequences which act like normal parenthesis chars. \let\lparen = ( \let\rparen = ) % Be sure that we always have a definition for `(', etc. For example, % if the fn name has parens in it, \boldbrax will not be in effect yet, % so TeX would otherwise complain about undefined control sequence. { \activeparens \global\let(=\lparen \global\let)=\rparen \global\let[=\lbrack \global\let]=\rbrack \global\let& = \& \gdef\boldbrax{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb} \gdef\magicamp{\let&=\amprm} } \newcount\parencount % If we encounter &foo, then turn on ()-hacking afterwards \newif\ifampseen \def\amprm#1 {\ampseentrue{\bf\ }} \def\parenfont{% \ifampseen % At the first level, print parens in roman, % otherwise use the default font. \ifnum \parencount=1 \rm \fi \else % The \sf parens (in \boldbrax) actually are a little bolder than % the contained text. This is especially needed for [ and ] . \sf \fi } \def\infirstlevel#1{% \ifampseen \ifnum\parencount=1 #1% \fi \fi } \def\bfafterword#1 {#1 \bf} \def\opnr{% \global\advance\parencount by 1 {\parenfont(}% \infirstlevel \bfafterword } \def\clnr{% {\parenfont)}% \infirstlevel \sl \global\advance\parencount by -1 } \newcount\brackcount \def\lbrb{% \global\advance\brackcount by 1 {\bf[}% } \def\rbrb{% {\bf]}% \global\advance\brackcount by -1 } \def\checkparencounts{% \ifnum\parencount=0 \else \badparencount \fi \ifnum\brackcount=0 \else \badbrackcount \fi } % these should not use \errmessage; the glibc manual, at least, actually % has such constructs (when documenting function pointers). \def\badparencount{% \message{Warning: unbalanced parentheses in @def...}% \global\parencount=0 } \def\badbrackcount{% \message{Warning: unbalanced square brackets in @def...}% \global\brackcount=0 } \message{macros,} % @macro. % To do this right we need a feature of e-TeX, \scantokens, % which we arrange to emulate with a temporary file in ordinary TeX. \ifx\eTeXversion\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 \. % Non-ASCII encodings make 8-bit characters active, so un-activate % them to avoid their expansion. Must do this non-globally, to % confine the change to the current group. % It's necessary to have hard CRs when the macro is executed. This is % done by making ^^M (\endlinechar) catcode 12 when reading the macro % body, and then making it the \newlinechar in \scanmacro. \def\scanctxt{% \catcode`\"=\other \catcode`\+=\other \catcode`\<=\other \catcode`\>=\other \catcode`\@=\other \catcode`\^=\other \catcode`\_=\other \catcode`\|=\other \catcode`\~=\other \ifx\declaredencoding\ascii \else \setnonasciicharscatcodenonglobal\other \fi } \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\macnamexxx=#1\futurelet\nchar\braceorlinexxx} \def\braceorlinexxx{% \ifx\nchar\bgroup\else \expandafter\parsearg \fi \macnamexxx} % @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 \lastsection, % 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{\lastsection}% \immediate \writexrdef{title}{\the\toks0 }% \immediate \writexrdef{snt}{\csname #2\endcsname}% \Ynumbered etc. \safewhatsit{\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 {\indexnofonts \turnoffactive % This expands tokens, so do it after making catcode changes, so _ % etc. don't get their TeX definitions. \getfilename{#4}% % % See comments at \activebackslashdouble. {\activebackslashdouble \xdef\pdfxrefdest{#1}% \backslashparens\pdfxrefdest}% % \leavevmode \startlink attr{/Border [0 0 0]}% \ifnum\filenamelength>0 goto file{\the\filename.pdf} name{\pdfxrefdest}% \else goto name{\pdfmkpgn{\pdfxrefdest}}% \fi }% \setcolor{\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{% {% The node name might contain 8-bit characters, which in our current % implementation are changed to commands like @'e. Don't let these % mess up the control sequence name. \indexnofonts \turnoffactive \xdef\safexrefname{#1}% }% % \expandafter\gdef\csname XR\safexrefname\endcsname{#2}% remember this xref % % Was that xref control sequence that we just defined for a float? \expandafter\iffloat\csname XR\safexrefname\endcsname % it was a float, and we have the (safe) float type in \iffloattype. \expandafter\let\expandafter\floatlist \csname floatlist\iffloattype\endcsname % % Is this the first time we've seen this float type? \expandafter\ifx\floatlist\relax \toks0 = {\do}% yes, so just \do \else % had it before, so preserve previous elements in list. \toks0 = \expandafter{\floatlist\do}% \fi % % Remember this xref in the control sequence \floatlistFLOATTYPE, % for later use in \listoffloats. \expandafter\xdef\csname floatlist\iffloattype\endcsname{\the\toks0 {\safexrefname}}% \fi } % 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. % Similarly, if a @footnote appears inside an alignment, save the footnote % text to a box and make the \insert when a row of the table is finished. % And the same can be done for other insert classes. --kasal, 16nov03. % Replace the \insert primitive by a cheating macro. % Deeper inside, just make sure that the saved insertions are not spilled % out prematurely. % \def\startsavinginserts{% \ifx \insert\ptexinsert \let\insert\saveinsert \else \let\checkinserts\relax \fi } % This \insert replacement works for both \insert\footins{foo} and % \insert\footins\bgroup foo\egroup, but it doesn't work for \insert27{foo}. % \def\saveinsert#1{% \edef\next{\noexpand\savetobox \makeSAVEname#1}% \afterassignment\next % swallow the left brace \let\temp = } \def\makeSAVEname#1{\makecsname{SAVE\expandafter\gobble\string#1}} \def\savetobox#1{\global\setbox#1 = \vbox\bgroup \unvbox#1} \def\checksaveins#1{\ifvoid#1\else \placesaveins#1\fi} \def\placesaveins#1{% \ptexinsert \csname\expandafter\gobblesave\string#1\endcsname {\box#1}% } % eat @SAVE -- beware, all of them have catcode \other: { \def\dospecials{\do S\do A\do V\do E} \uncatcodespecials % ;-) \gdef\gobblesave @SAVE{} } % initialization: \def\newsaveins #1{% \edef\next{\noexpand\newsaveinsX \makeSAVEname#1}% \next } \def\newsaveinsX #1{% \csname newbox\endcsname #1% \expandafter\def\expandafter\checkinserts\expandafter{\checkinserts \checksaveins #1}% } % initialize: \let\checkinserts\empty \newsaveins\footins \newsaveins\margin % @image. We use the macros from epsf.tex to support this. % If epsf.tex is not installed and @image is used, we complain. % % Check for and read epsf.tex up front. If we read it only at @image % time, we might be inside a group, and then its definitions would get % undone and the next image would fail. \openin 1 = epsf.tex \ifeof 1 \else % Do not bother showing banner with epsf.tex v2.7k (available in % doc/epsf.tex and on ctan). \def\epsfannounce{\toks0 = }% \input epsf.tex \fi \closein 1 % % We will only complain once about lack of epsf.tex. \newif\ifwarnednoepsf \newhelp\noepsfhelp{epsf.tex must be installed for images to work. It is also included in the Texinfo distribution, or you can get it from 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\medskip % Usually we'll have text after the image which will insert % \parskip glue, so insert it here too to equalize the space % above and below. \nobreak\vskip\parskip \nobreak \fi % % Leave vertical mode so that indentation from an enclosing % environment such as @quotation is respected. On the other hand, if % it's at the top level, we don't want the normal paragraph indentation. \noindent % % 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 \medskip \fi % space after the standalone 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 \lastsection 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\lastsection{\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 floating, 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 % \lastsection value which we \setref above. % \def\iffloat#1{\expandafter\doiffloat#1==\finish} % % #1 is (maybe) the \floatmagic string. If so, #2 will be the % (safe) float type for this float. We set \iffloattype to #2. % \def\doiffloat#1=#2=#3\finish{% \def\temp{#1}% \def\iffloattype{#2}% \ifx\temp\floatmagic } % @listoffloats FLOATTYPE - print a list of floats like a table of contents. % \parseargdef\listoffloats{% \def\floattype{#1}% floattype {% % the floattype might have accents or other special characters, % but we need to use it in a control sequence name. \indexnofonts \turnoffactive \xdef\safefloattype{\floattype}% }% % % \xrdef saves the floats as a \do-list in \floatlistSAFEFLOATTYPE. \expandafter\ifx\csname floatlist\safefloattype\endcsname \relax \ifhavexrefs % if the user said @listoffloats foo but never @float foo. \message{\linenumber No `\safefloattype' floats to list.}% \fi \else \begingroup \leftskip=\tocindent % indent these entries like a toc \let\do=\listoffloatsdo \csname floatlist\safefloattype\endcsname \endgroup \fi } % This is called on each entry in a list of floats. We're passed the % xref label, in the form LABEL-title, which is how we save it in the % aux file. We strip off the -title and look up \XRLABEL-lof, which % has the text we're supposed to typeset here. % % Figures without xref labels will not be included in the list (since % they won't appear in the aux file). % \def\listoffloatsdo#1{\listoffloatsdoentry#1\finish} \def\listoffloatsdoentry#1-title\finish{{% % Can't fully expand XR#1-lof because it can contain anything. Just % pass the control sequence. On the other hand, XR#1-pg is just the % page number, and we want to fully expand that so we can get a link % in pdf output. \toksA = \expandafter{\csname XR#1-lof\endcsname}% % % use the same \entry macro we use to generate the TOC and index. \edef\writeentry{\noexpand\entry{\the\toksA}{\csname XR#1-pg\endcsname}}% \writeentry }} \message{localization,} % For single-language documents, @documentlanguage is usually given very % early, just after @documentencoding. Single argument is the language % (de) or locale (de_DE) abbreviation. % { \catcode`\_ = \active \globaldefs=1 \parseargdef\documentlanguage{\begingroup \let_=\normalunderscore % normal _ character for filenames \tex % read txi-??.tex file in plain TeX. % Read the file by the name they passed if it exists. \openin 1 txi-#1.tex \ifeof 1 \documentlanguagetrywithoutunderscore{#1_\finish}% \else \globaldefs = 1 % everything in the txi-LL files needs to persist \input txi-#1.tex \fi \closein 1 \endgroup % end raw TeX \endgroup} % % If they passed de_DE, and txi-de_DE.tex doesn't exist, % try txi-de.tex. % \gdef\documentlanguagetrywithoutunderscore#1_#2\finish{% \openin 1 txi-#1.tex \ifeof 1 \errhelp = \nolanghelp \errmessage{Cannot read language file txi-#1.tex}% \else \globaldefs = 1 % everything in the txi-LL files needs to persist \input txi-#1.tex \fi \closein 1 } }% end of special _ catcode % \newhelp\nolanghelp{The given language definition file cannot be found or is empty. Maybe you need to install it? Putting it in the current directory should work if nowhere else does.} % This macro is called from txi-??.tex files; the first argument is the % \language name to set (without the "\lang@" prefix), the second and % third args are \{left,right}hyphenmin. % % The language names to pass are determined when the format is built. % See the etex.log file created at that time, e.g., % /usr/local/texlive/2008/texmf-var/web2c/pdftex/etex.log. % % With TeX Live 2008, etex now includes hyphenation patterns for all % available languages. This means we can support hyphenation in % Texinfo, at least to some extent. (This still doesn't solve the % accented characters problem.) % \catcode`@=11 \def\txisetlanguage#1#2#3{% % do not set the language if the name is undefined in the current TeX. \expandafter\ifx\csname lang@#1\endcsname \relax \message{no patterns for #1}% \else \global\language = \csname lang@#1\endcsname \fi % but there is no harm in adjusting the hyphenmin values regardless. \global\lefthyphenmin = #2\relax \global\righthyphenmin = #3\relax } % Helpers for encodings. % Set the catcode of characters 128 through 255 to the specified number. % \def\setnonasciicharscatcode#1{% \count255=128 \loop\ifnum\count255<256 \global\catcode\count255=#1\relax \advance\count255 by 1 \repeat } \def\setnonasciicharscatcodenonglobal#1{% \count255=128 \loop\ifnum\count255<256 \catcode\count255=#1\relax \advance\count255 by 1 \repeat } % @documentencoding sets the definition of non-ASCII characters % according to the specified encoding. % \parseargdef\documentencoding{% % Encoding being declared for the document. \def\declaredencoding{\csname #1.enc\endcsname}% % % Supported encodings: names converted to tokens in order to be able % to compare them with \ifx. \def\ascii{\csname US-ASCII.enc\endcsname}% \def\latnine{\csname ISO-8859-15.enc\endcsname}% \def\latone{\csname ISO-8859-1.enc\endcsname}% \def\lattwo{\csname ISO-8859-2.enc\endcsname}% \def\utfeight{\csname UTF-8.enc\endcsname}% % \ifx \declaredencoding \ascii \asciichardefs % \else \ifx \declaredencoding \lattwo \setnonasciicharscatcode\active \lattwochardefs % \else \ifx \declaredencoding \latone \setnonasciicharscatcode\active \latonechardefs % \else \ifx \declaredencoding \latnine \setnonasciicharscatcode\active \latninechardefs % \else \ifx \declaredencoding \utfeight \setnonasciicharscatcode\active \utfeightchardefs % \else \message{Unknown document encoding #1, ignoring.}% % \fi % utfeight \fi % latnine \fi % latone \fi % lattwo \fi % ascii } % A message to be logged when using a character that isn't available % the default font encoding (OT1). % \def\missingcharmsg#1{\message{Character missing in OT1 encoding: #1.}} % Take account of \c (plain) vs. \, (Texinfo) difference. \def\cedilla#1{\ifx\c\ptexc\c{#1}\else\,{#1}\fi} % First, make active non-ASCII characters in order for them to be % correctly categorized when TeX reads the replacement text of % macros containing the character definitions. \setnonasciicharscatcode\active % % Latin1 (ISO-8859-1) character definitions. \def\latonechardefs{% \gdef^^a0{~} \gdef^^a1{\exclamdown} \gdef^^a2{\missingcharmsg{CENT SIGN}} \gdef^^a3{{\pounds}} \gdef^^a4{\missingcharmsg{CURRENCY SIGN}} \gdef^^a5{\missingcharmsg{YEN SIGN}} \gdef^^a6{\missingcharmsg{BROKEN BAR}} \gdef^^a7{\S} \gdef^^a8{\"{}} \gdef^^a9{\copyright} \gdef^^aa{\ordf} \gdef^^ab{\guillemetleft} \gdef^^ac{$\lnot$} \gdef^^ad{\-} \gdef^^ae{\registeredsymbol} \gdef^^af{\={}} % \gdef^^b0{\textdegree} \gdef^^b1{$\pm$} \gdef^^b2{$^2$} \gdef^^b3{$^3$} \gdef^^b4{\'{}} \gdef^^b5{$\mu$} \gdef^^b6{\P} % \gdef^^b7{$^.$} \gdef^^b8{\cedilla\ } \gdef^^b9{$^1$} \gdef^^ba{\ordm} % \gdef^^bb{\guilletright} \gdef^^bc{$1\over4$} \gdef^^bd{$1\over2$} \gdef^^be{$3\over4$} \gdef^^bf{\questiondown} % \gdef^^c0{\`A} \gdef^^c1{\'A} \gdef^^c2{\^A} \gdef^^c3{\~A} \gdef^^c4{\"A} \gdef^^c5{\ringaccent A} \gdef^^c6{\AE} \gdef^^c7{\cedilla C} \gdef^^c8{\`E} \gdef^^c9{\'E} \gdef^^ca{\^E} \gdef^^cb{\"E} \gdef^^cc{\`I} \gdef^^cd{\'I} \gdef^^ce{\^I} \gdef^^cf{\"I} % \gdef^^d0{\DH} \gdef^^d1{\~N} \gdef^^d2{\`O} \gdef^^d3{\'O} \gdef^^d4{\^O} \gdef^^d5{\~O} \gdef^^d6{\"O} \gdef^^d7{$\times$} \gdef^^d8{\O} \gdef^^d9{\`U} \gdef^^da{\'U} \gdef^^db{\^U} \gdef^^dc{\"U} \gdef^^dd{\'Y} \gdef^^de{\TH} \gdef^^df{\ss} % \gdef^^e0{\`a} \gdef^^e1{\'a} \gdef^^e2{\^a} \gdef^^e3{\~a} \gdef^^e4{\"a} \gdef^^e5{\ringaccent a} \gdef^^e6{\ae} \gdef^^e7{\cedilla c} \gdef^^e8{\`e} \gdef^^e9{\'e} \gdef^^ea{\^e} \gdef^^eb{\"e} \gdef^^ec{\`{\dotless i}} \gdef^^ed{\'{\dotless i}} \gdef^^ee{\^{\dotless i}} \gdef^^ef{\"{\dotless i}} % \gdef^^f0{\dh} \gdef^^f1{\~n} \gdef^^f2{\`o} \gdef^^f3{\'o} \gdef^^f4{\^o} \gdef^^f5{\~o} \gdef^^f6{\"o} \gdef^^f7{$\div$} \gdef^^f8{\o} \gdef^^f9{\`u} \gdef^^fa{\'u} \gdef^^fb{\^u} \gdef^^fc{\"u} \gdef^^fd{\'y} \gdef^^fe{\th} \gdef^^ff{\"y} } % Latin9 (ISO-8859-15) encoding character definitions. \def\latninechardefs{% % Encoding is almost identical to Latin1. \latonechardefs % \gdef^^a4{\euro} \gdef^^a6{\v S} \gdef^^a8{\v s} \gdef^^b4{\v Z} \gdef^^b8{\v z} \gdef^^bc{\OE} \gdef^^bd{\oe} \gdef^^be{\"Y} } % Latin2 (ISO-8859-2) character definitions. \def\lattwochardefs{% \gdef^^a0{~} \gdef^^a1{\ogonek{A}} \gdef^^a2{\u{}} \gdef^^a3{\L} \gdef^^a4{\missingcharmsg{CURRENCY SIGN}} \gdef^^a5{\v L} \gdef^^a6{\'S} \gdef^^a7{\S} \gdef^^a8{\"{}} \gdef^^a9{\v S} \gdef^^aa{\cedilla S} \gdef^^ab{\v T} \gdef^^ac{\'Z} \gdef^^ad{\-} \gdef^^ae{\v Z} \gdef^^af{\dotaccent Z} % \gdef^^b0{\textdegree} \gdef^^b1{\ogonek{a}} \gdef^^b2{\ogonek{ }} \gdef^^b3{\l} \gdef^^b4{\'{}} \gdef^^b5{\v l} \gdef^^b6{\'s} \gdef^^b7{\v{}} \gdef^^b8{\cedilla\ } \gdef^^b9{\v s} \gdef^^ba{\cedilla s} \gdef^^bb{\v t} \gdef^^bc{\'z} \gdef^^bd{\H{}} \gdef^^be{\v z} \gdef^^bf{\dotaccent z} % \gdef^^c0{\'R} \gdef^^c1{\'A} \gdef^^c2{\^A} \gdef^^c3{\u A} \gdef^^c4{\"A} \gdef^^c5{\'L} \gdef^^c6{\'C} \gdef^^c7{\cedilla C} \gdef^^c8{\v C} \gdef^^c9{\'E} \gdef^^ca{\ogonek{E}} \gdef^^cb{\"E} \gdef^^cc{\v E} \gdef^^cd{\'I} \gdef^^ce{\^I} \gdef^^cf{\v D} % \gdef^^d0{\DH} \gdef^^d1{\'N} \gdef^^d2{\v N} \gdef^^d3{\'O} \gdef^^d4{\^O} \gdef^^d5{\H O} \gdef^^d6{\"O} \gdef^^d7{$\times$} \gdef^^d8{\v R} \gdef^^d9{\ringaccent U} \gdef^^da{\'U} \gdef^^db{\H U} \gdef^^dc{\"U} \gdef^^dd{\'Y} \gdef^^de{\cedilla T} \gdef^^df{\ss} % \gdef^^e0{\'r} \gdef^^e1{\'a} \gdef^^e2{\^a} \gdef^^e3{\u a} \gdef^^e4{\"a} \gdef^^e5{\'l} \gdef^^e6{\'c} \gdef^^e7{\cedilla c} \gdef^^e8{\v c} \gdef^^e9{\'e} \gdef^^ea{\ogonek{e}} \gdef^^eb{\"e} \gdef^^ec{\v e} \gdef^^ed{\'\i} \gdef^^ee{\^\i} \gdef^^ef{\v d} % \gdef^^f0{\dh} \gdef^^f1{\'n} \gdef^^f2{\v n} \gdef^^f3{\'o} \gdef^^f4{\^o} \gdef^^f5{\H o} \gdef^^f6{\"o} \gdef^^f7{$\div$} \gdef^^f8{\v r} \gdef^^f9{\ringaccent u} \gdef^^fa{\'u} \gdef^^fb{\H u} \gdef^^fc{\"u} \gdef^^fd{\'y} \gdef^^fe{\cedilla t} \gdef^^ff{\dotaccent{}} } % UTF-8 character definitions. % % This code to support UTF-8 is based on LaTeX's utf8.def, with some % changes for Texinfo conventions. It is included here under the GPL by % permission from Frank Mittelbach and the LaTeX team. % \newcount\countUTFx \newcount\countUTFy \newcount\countUTFz \gdef\UTFviiiTwoOctets#1#2{\expandafter \UTFviiiDefined\csname u8:#1\string #2\endcsname} % \gdef\UTFviiiThreeOctets#1#2#3{\expandafter \UTFviiiDefined\csname u8:#1\string #2\string #3\endcsname} % \gdef\UTFviiiFourOctets#1#2#3#4{\expandafter \UTFviiiDefined\csname u8:#1\string #2\string #3\string #4\endcsname} \gdef\UTFviiiDefined#1{% \ifx #1\relax \message{\linenumber Unicode char \string #1 not defined for Texinfo}% \else \expandafter #1% \fi } \begingroup \catcode`\~13 \catcode`\"12 \def\UTFviiiLoop{% \global\catcode\countUTFx\active \uccode`\~\countUTFx \uppercase\expandafter{\UTFviiiTmp}% \advance\countUTFx by 1 \ifnum\countUTFx < \countUTFy \expandafter\UTFviiiLoop \fi} \countUTFx = "C2 \countUTFy = "E0 \def\UTFviiiTmp{% \xdef~{\noexpand\UTFviiiTwoOctets\string~}} \UTFviiiLoop \countUTFx = "E0 \countUTFy = "F0 \def\UTFviiiTmp{% \xdef~{\noexpand\UTFviiiThreeOctets\string~}} \UTFviiiLoop \countUTFx = "F0 \countUTFy = "F4 \def\UTFviiiTmp{% \xdef~{\noexpand\UTFviiiFourOctets\string~}} \UTFviiiLoop \endgroup \begingroup \catcode`\"=12 \catcode`\<=12 \catcode`\.=12 \catcode`\,=12 \catcode`\;=12 \catcode`\!=12 \catcode`\~=13 \gdef\DeclareUnicodeCharacter#1#2{% \countUTFz = "#1\relax \wlog{\space\space defining Unicode char U+#1 (decimal \the\countUTFz)}% \begingroup \parseXMLCharref \def\UTFviiiTwoOctets##1##2{% \csname u8:##1\string ##2\endcsname}% \def\UTFviiiThreeOctets##1##2##3{% \csname u8:##1\string ##2\string ##3\endcsname}% \def\UTFviiiFourOctets##1##2##3##4{% \csname u8:##1\string ##2\string ##3\string ##4\endcsname}% \expandafter\expandafter\expandafter\expandafter \expandafter\expandafter\expandafter \gdef\UTFviiiTmp{#2}% \endgroup} \gdef\parseXMLCharref{% \ifnum\countUTFz < "A0\relax \errhelp = \EMsimple \errmessage{Cannot define Unicode char value < 00A0}% \else\ifnum\countUTFz < "800\relax \parseUTFviiiA,% \parseUTFviiiB C\UTFviiiTwoOctets.,% \else\ifnum\countUTFz < "10000\relax \parseUTFviiiA;% \parseUTFviiiA,% \parseUTFviiiB E\UTFviiiThreeOctets.{,;}% \else \parseUTFviiiA;% \parseUTFviiiA,% \parseUTFviiiA!% \parseUTFviiiB F\UTFviiiFourOctets.{!,;}% \fi\fi\fi } \gdef\parseUTFviiiA#1{% \countUTFx = \countUTFz \divide\countUTFz by 64 \countUTFy = \countUTFz \multiply\countUTFz by 64 \advance\countUTFx by -\countUTFz \advance\countUTFx by 128 \uccode `#1\countUTFx \countUTFz = \countUTFy} \gdef\parseUTFviiiB#1#2#3#4{% \advance\countUTFz by "#10\relax \uccode `#3\countUTFz \uppercase{\gdef\UTFviiiTmp{#2#3#4}}} \endgroup \def\utfeightchardefs{% \DeclareUnicodeCharacter{00A0}{\tie} \DeclareUnicodeCharacter{00A1}{\exclamdown} \DeclareUnicodeCharacter{00A3}{\pounds} \DeclareUnicodeCharacter{00A8}{\"{ }} \DeclareUnicodeCharacter{00A9}{\copyright} \DeclareUnicodeCharacter{00AA}{\ordf} \DeclareUnicodeCharacter{00AB}{\guillemetleft} \DeclareUnicodeCharacter{00AD}{\-} \DeclareUnicodeCharacter{00AE}{\registeredsymbol} \DeclareUnicodeCharacter{00AF}{\={ }} \DeclareUnicodeCharacter{00B0}{\ringaccent{ }} \DeclareUnicodeCharacter{00B4}{\'{ }} \DeclareUnicodeCharacter{00B8}{\cedilla{ }} \DeclareUnicodeCharacter{00BA}{\ordm} \DeclareUnicodeCharacter{00BB}{\guillemetright} \DeclareUnicodeCharacter{00BF}{\questiondown} \DeclareUnicodeCharacter{00C0}{\`A} \DeclareUnicodeCharacter{00C1}{\'A} \DeclareUnicodeCharacter{00C2}{\^A} \DeclareUnicodeCharacter{00C3}{\~A} \DeclareUnicodeCharacter{00C4}{\"A} \DeclareUnicodeCharacter{00C5}{\AA} \DeclareUnicodeCharacter{00C6}{\AE} \DeclareUnicodeCharacter{00C7}{\cedilla{C}} \DeclareUnicodeCharacter{00C8}{\`E} \DeclareUnicodeCharacter{00C9}{\'E} \DeclareUnicodeCharacter{00CA}{\^E} \DeclareUnicodeCharacter{00CB}{\"E} \DeclareUnicodeCharacter{00CC}{\`I} \DeclareUnicodeCharacter{00CD}{\'I} \DeclareUnicodeCharacter{00CE}{\^I} \DeclareUnicodeCharacter{00CF}{\"I} \DeclareUnicodeCharacter{00D0}{\DH} \DeclareUnicodeCharacter{00D1}{\~N} \DeclareUnicodeCharacter{00D2}{\`O} \DeclareUnicodeCharacter{00D3}{\'O} \DeclareUnicodeCharacter{00D4}{\^O} \DeclareUnicodeCharacter{00D5}{\~O} \DeclareUnicodeCharacter{00D6}{\"O} \DeclareUnicodeCharacter{00D8}{\O} \DeclareUnicodeCharacter{00D9}{\`U} \DeclareUnicodeCharacter{00DA}{\'U} \DeclareUnicodeCharacter{00DB}{\^U} \DeclareUnicodeCharacter{00DC}{\"U} \DeclareUnicodeCharacter{00DD}{\'Y} \DeclareUnicodeCharacter{00DE}{\TH} \DeclareUnicodeCharacter{00DF}{\ss} \DeclareUnicodeCharacter{00E0}{\`a} \DeclareUnicodeCharacter{00E1}{\'a} \DeclareUnicodeCharacter{00E2}{\^a} \DeclareUnicodeCharacter{00E3}{\~a} \DeclareUnicodeCharacter{00E4}{\"a} \DeclareUnicodeCharacter{00E5}{\aa} \DeclareUnicodeCharacter{00E6}{\ae} \DeclareUnicodeCharacter{00E7}{\cedilla{c}} \DeclareUnicodeCharacter{00E8}{\`e} \DeclareUnicodeCharacter{00E9}{\'e} \DeclareUnicodeCharacter{00EA}{\^e} \DeclareUnicodeCharacter{00EB}{\"e} \DeclareUnicodeCharacter{00EC}{\`{\dotless{i}}} \DeclareUnicodeCharacter{00ED}{\'{\dotless{i}}} \DeclareUnicodeCharacter{00EE}{\^{\dotless{i}}} \DeclareUnicodeCharacter{00EF}{\"{\dotless{i}}} \DeclareUnicodeCharacter{00F0}{\dh} \DeclareUnicodeCharacter{00F1}{\~n} \DeclareUnicodeCharacter{00F2}{\`o} \DeclareUnicodeCharacter{00F3}{\'o} \DeclareUnicodeCharacter{00F4}{\^o} \DeclareUnicodeCharacter{00F5}{\~o} \DeclareUnicodeCharacter{00F6}{\"o} \DeclareUnicodeCharacter{00F8}{\o} \DeclareUnicodeCharacter{00F9}{\`u} \DeclareUnicodeCharacter{00FA}{\'u} \DeclareUnicodeCharacter{00FB}{\^u} \DeclareUnicodeCharacter{00FC}{\"u} \DeclareUnicodeCharacter{00FD}{\'y} \DeclareUnicodeCharacter{00FE}{\th} \DeclareUnicodeCharacter{00FF}{\"y} \DeclareUnicodeCharacter{0100}{\=A} \DeclareUnicodeCharacter{0101}{\=a} \DeclareUnicodeCharacter{0102}{\u{A}} \DeclareUnicodeCharacter{0103}{\u{a}} \DeclareUnicodeCharacter{0104}{\ogonek{A}} \DeclareUnicodeCharacter{0105}{\ogonek{a}} \DeclareUnicodeCharacter{0106}{\'C} \DeclareUnicodeCharacter{0107}{\'c} \DeclareUnicodeCharacter{0108}{\^C} \DeclareUnicodeCharacter{0109}{\^c} \DeclareUnicodeCharacter{0118}{\ogonek{E}} \DeclareUnicodeCharacter{0119}{\ogonek{e}} \DeclareUnicodeCharacter{010A}{\dotaccent{C}} \DeclareUnicodeCharacter{010B}{\dotaccent{c}} \DeclareUnicodeCharacter{010C}{\v{C}} \DeclareUnicodeCharacter{010D}{\v{c}} \DeclareUnicodeCharacter{010E}{\v{D}} \DeclareUnicodeCharacter{0112}{\=E} \DeclareUnicodeCharacter{0113}{\=e} \DeclareUnicodeCharacter{0114}{\u{E}} \DeclareUnicodeCharacter{0115}{\u{e}} \DeclareUnicodeCharacter{0116}{\dotaccent{E}} \DeclareUnicodeCharacter{0117}{\dotaccent{e}} \DeclareUnicodeCharacter{011A}{\v{E}} \DeclareUnicodeCharacter{011B}{\v{e}} \DeclareUnicodeCharacter{011C}{\^G} \DeclareUnicodeCharacter{011D}{\^g} \DeclareUnicodeCharacter{011E}{\u{G}} \DeclareUnicodeCharacter{011F}{\u{g}} \DeclareUnicodeCharacter{0120}{\dotaccent{G}} \DeclareUnicodeCharacter{0121}{\dotaccent{g}} \DeclareUnicodeCharacter{0124}{\^H} \DeclareUnicodeCharacter{0125}{\^h} \DeclareUnicodeCharacter{0128}{\~I} \DeclareUnicodeCharacter{0129}{\~{\dotless{i}}} \DeclareUnicodeCharacter{012A}{\=I} \DeclareUnicodeCharacter{012B}{\={\dotless{i}}} \DeclareUnicodeCharacter{012C}{\u{I}} \DeclareUnicodeCharacter{012D}{\u{\dotless{i}}} \DeclareUnicodeCharacter{0130}{\dotaccent{I}} \DeclareUnicodeCharacter{0131}{\dotless{i}} \DeclareUnicodeCharacter{0132}{IJ} \DeclareUnicodeCharacter{0133}{ij} \DeclareUnicodeCharacter{0134}{\^J} \DeclareUnicodeCharacter{0135}{\^{\dotless{j}}} \DeclareUnicodeCharacter{0139}{\'L} \DeclareUnicodeCharacter{013A}{\'l} \DeclareUnicodeCharacter{0141}{\L} \DeclareUnicodeCharacter{0142}{\l} \DeclareUnicodeCharacter{0143}{\'N} \DeclareUnicodeCharacter{0144}{\'n} \DeclareUnicodeCharacter{0147}{\v{N}} \DeclareUnicodeCharacter{0148}{\v{n}} \DeclareUnicodeCharacter{014C}{\=O} \DeclareUnicodeCharacter{014D}{\=o} \DeclareUnicodeCharacter{014E}{\u{O}} \DeclareUnicodeCharacter{014F}{\u{o}} \DeclareUnicodeCharacter{0150}{\H{O}} \DeclareUnicodeCharacter{0151}{\H{o}} \DeclareUnicodeCharacter{0152}{\OE} \DeclareUnicodeCharacter{0153}{\oe} \DeclareUnicodeCharacter{0154}{\'R} \DeclareUnicodeCharacter{0155}{\'r} \DeclareUnicodeCharacter{0158}{\v{R}} \DeclareUnicodeCharacter{0159}{\v{r}} \DeclareUnicodeCharacter{015A}{\'S} \DeclareUnicodeCharacter{015B}{\'s} \DeclareUnicodeCharacter{015C}{\^S} \DeclareUnicodeCharacter{015D}{\^s} \DeclareUnicodeCharacter{015E}{\cedilla{S}} \DeclareUnicodeCharacter{015F}{\cedilla{s}} \DeclareUnicodeCharacter{0160}{\v{S}} \DeclareUnicodeCharacter{0161}{\v{s}} \DeclareUnicodeCharacter{0162}{\cedilla{t}} \DeclareUnicodeCharacter{0163}{\cedilla{T}} \DeclareUnicodeCharacter{0164}{\v{T}} \DeclareUnicodeCharacter{0168}{\~U} \DeclareUnicodeCharacter{0169}{\~u} \DeclareUnicodeCharacter{016A}{\=U} \DeclareUnicodeCharacter{016B}{\=u} \DeclareUnicodeCharacter{016C}{\u{U}} \DeclareUnicodeCharacter{016D}{\u{u}} \DeclareUnicodeCharacter{016E}{\ringaccent{U}} \DeclareUnicodeCharacter{016F}{\ringaccent{u}} \DeclareUnicodeCharacter{0170}{\H{U}} \DeclareUnicodeCharacter{0171}{\H{u}} \DeclareUnicodeCharacter{0174}{\^W} \DeclareUnicodeCharacter{0175}{\^w} \DeclareUnicodeCharacter{0176}{\^Y} \DeclareUnicodeCharacter{0177}{\^y} \DeclareUnicodeCharacter{0178}{\"Y} \DeclareUnicodeCharacter{0179}{\'Z} \DeclareUnicodeCharacter{017A}{\'z} \DeclareUnicodeCharacter{017B}{\dotaccent{Z}} \DeclareUnicodeCharacter{017C}{\dotaccent{z}} \DeclareUnicodeCharacter{017D}{\v{Z}} \DeclareUnicodeCharacter{017E}{\v{z}} \DeclareUnicodeCharacter{01C4}{D\v{Z}} \DeclareUnicodeCharacter{01C5}{D\v{z}} \DeclareUnicodeCharacter{01C6}{d\v{z}} \DeclareUnicodeCharacter{01C7}{LJ} \DeclareUnicodeCharacter{01C8}{Lj} \DeclareUnicodeCharacter{01C9}{lj} \DeclareUnicodeCharacter{01CA}{NJ} \DeclareUnicodeCharacter{01CB}{Nj} \DeclareUnicodeCharacter{01CC}{nj} \DeclareUnicodeCharacter{01CD}{\v{A}} \DeclareUnicodeCharacter{01CE}{\v{a}} \DeclareUnicodeCharacter{01CF}{\v{I}} \DeclareUnicodeCharacter{01D0}{\v{\dotless{i}}} \DeclareUnicodeCharacter{01D1}{\v{O}} \DeclareUnicodeCharacter{01D2}{\v{o}} \DeclareUnicodeCharacter{01D3}{\v{U}} \DeclareUnicodeCharacter{01D4}{\v{u}} \DeclareUnicodeCharacter{01E2}{\={\AE}} \DeclareUnicodeCharacter{01E3}{\={\ae}} \DeclareUnicodeCharacter{01E6}{\v{G}} \DeclareUnicodeCharacter{01E7}{\v{g}} \DeclareUnicodeCharacter{01E8}{\v{K}} \DeclareUnicodeCharacter{01E9}{\v{k}} \DeclareUnicodeCharacter{01F0}{\v{\dotless{j}}} \DeclareUnicodeCharacter{01F1}{DZ} \DeclareUnicodeCharacter{01F2}{Dz} \DeclareUnicodeCharacter{01F3}{dz} \DeclareUnicodeCharacter{01F4}{\'G} \DeclareUnicodeCharacter{01F5}{\'g} \DeclareUnicodeCharacter{01F8}{\`N} \DeclareUnicodeCharacter{01F9}{\`n} \DeclareUnicodeCharacter{01FC}{\'{\AE}} \DeclareUnicodeCharacter{01FD}{\'{\ae}} \DeclareUnicodeCharacter{01FE}{\'{\O}} \DeclareUnicodeCharacter{01FF}{\'{\o}} \DeclareUnicodeCharacter{021E}{\v{H}} \DeclareUnicodeCharacter{021F}{\v{h}} \DeclareUnicodeCharacter{0226}{\dotaccent{A}} \DeclareUnicodeCharacter{0227}{\dotaccent{a}} \DeclareUnicodeCharacter{0228}{\cedilla{E}} \DeclareUnicodeCharacter{0229}{\cedilla{e}} \DeclareUnicodeCharacter{022E}{\dotaccent{O}} \DeclareUnicodeCharacter{022F}{\dotaccent{o}} \DeclareUnicodeCharacter{0232}{\=Y} \DeclareUnicodeCharacter{0233}{\=y} \DeclareUnicodeCharacter{0237}{\dotless{j}} \DeclareUnicodeCharacter{02DB}{\ogonek{ }} \DeclareUnicodeCharacter{1E02}{\dotaccent{B}} \DeclareUnicodeCharacter{1E03}{\dotaccent{b}} \DeclareUnicodeCharacter{1E04}{\udotaccent{B}} \DeclareUnicodeCharacter{1E05}{\udotaccent{b}} \DeclareUnicodeCharacter{1E06}{\ubaraccent{B}} \DeclareUnicodeCharacter{1E07}{\ubaraccent{b}} \DeclareUnicodeCharacter{1E0A}{\dotaccent{D}} \DeclareUnicodeCharacter{1E0B}{\dotaccent{d}} \DeclareUnicodeCharacter{1E0C}{\udotaccent{D}} \DeclareUnicodeCharacter{1E0D}{\udotaccent{d}} \DeclareUnicodeCharacter{1E0E}{\ubaraccent{D}} \DeclareUnicodeCharacter{1E0F}{\ubaraccent{d}} \DeclareUnicodeCharacter{1E1E}{\dotaccent{F}} \DeclareUnicodeCharacter{1E1F}{\dotaccent{f}} \DeclareUnicodeCharacter{1E20}{\=G} \DeclareUnicodeCharacter{1E21}{\=g} \DeclareUnicodeCharacter{1E22}{\dotaccent{H}} \DeclareUnicodeCharacter{1E23}{\dotaccent{h}} \DeclareUnicodeCharacter{1E24}{\udotaccent{H}} \DeclareUnicodeCharacter{1E25}{\udotaccent{h}} \DeclareUnicodeCharacter{1E26}{\"H} \DeclareUnicodeCharacter{1E27}{\"h} \DeclareUnicodeCharacter{1E30}{\'K} \DeclareUnicodeCharacter{1E31}{\'k} \DeclareUnicodeCharacter{1E32}{\udotaccent{K}} \DeclareUnicodeCharacter{1E33}{\udotaccent{k}} \DeclareUnicodeCharacter{1E34}{\ubaraccent{K}} \DeclareUnicodeCharacter{1E35}{\ubaraccent{k}} \DeclareUnicodeCharacter{1E36}{\udotaccent{L}} \DeclareUnicodeCharacter{1E37}{\udotaccent{l}} \DeclareUnicodeCharacter{1E3A}{\ubaraccent{L}} \DeclareUnicodeCharacter{1E3B}{\ubaraccent{l}} \DeclareUnicodeCharacter{1E3E}{\'M} \DeclareUnicodeCharacter{1E3F}{\'m} \DeclareUnicodeCharacter{1E40}{\dotaccent{M}} \DeclareUnicodeCharacter{1E41}{\dotaccent{m}} \DeclareUnicodeCharacter{1E42}{\udotaccent{M}} \DeclareUnicodeCharacter{1E43}{\udotaccent{m}} \DeclareUnicodeCharacter{1E44}{\dotaccent{N}} \DeclareUnicodeCharacter{1E45}{\dotaccent{n}} \DeclareUnicodeCharacter{1E46}{\udotaccent{N}} \DeclareUnicodeCharacter{1E47}{\udotaccent{n}} \DeclareUnicodeCharacter{1E48}{\ubaraccent{N}} \DeclareUnicodeCharacter{1E49}{\ubaraccent{n}} \DeclareUnicodeCharacter{1E54}{\'P} \DeclareUnicodeCharacter{1E55}{\'p} \DeclareUnicodeCharacter{1E56}{\dotaccent{P}} \DeclareUnicodeCharacter{1E57}{\dotaccent{p}} \DeclareUnicodeCharacter{1E58}{\dotaccent{R}} \DeclareUnicodeCharacter{1E59}{\dotaccent{r}} \DeclareUnicodeCharacter{1E5A}{\udotaccent{R}} \DeclareUnicodeCharacter{1E5B}{\udotaccent{r}} \DeclareUnicodeCharacter{1E5E}{\ubaraccent{R}} \DeclareUnicodeCharacter{1E5F}{\ubaraccent{r}} \DeclareUnicodeCharacter{1E60}{\dotaccent{S}} \DeclareUnicodeCharacter{1E61}{\dotaccent{s}} \DeclareUnicodeCharacter{1E62}{\udotaccent{S}} \DeclareUnicodeCharacter{1E63}{\udotaccent{s}} \DeclareUnicodeCharacter{1E6A}{\dotaccent{T}} \DeclareUnicodeCharacter{1E6B}{\dotaccent{t}} \DeclareUnicodeCharacter{1E6C}{\udotaccent{T}} \DeclareUnicodeCharacter{1E6D}{\udotaccent{t}} \DeclareUnicodeCharacter{1E6E}{\ubaraccent{T}} \DeclareUnicodeCharacter{1E6F}{\ubaraccent{t}} \DeclareUnicodeCharacter{1E7C}{\~V} \DeclareUnicodeCharacter{1E7D}{\~v} \DeclareUnicodeCharacter{1E7E}{\udotaccent{V}} \DeclareUnicodeCharacter{1E7F}{\udotaccent{v}} \DeclareUnicodeCharacter{1E80}{\`W} \DeclareUnicodeCharacter{1E81}{\`w} \DeclareUnicodeCharacter{1E82}{\'W} \DeclareUnicodeCharacter{1E83}{\'w} \DeclareUnicodeCharacter{1E84}{\"W} \DeclareUnicodeCharacter{1E85}{\"w} \DeclareUnicodeCharacter{1E86}{\dotaccent{W}} \DeclareUnicodeCharacter{1E87}{\dotaccent{w}} \DeclareUnicodeCharacter{1E88}{\udotaccent{W}} \DeclareUnicodeCharacter{1E89}{\udotaccent{w}} \DeclareUnicodeCharacter{1E8A}{\dotaccent{X}} \DeclareUnicodeCharacter{1E8B}{\dotaccent{x}} \DeclareUnicodeCharacter{1E8C}{\"X} \DeclareUnicodeCharacter{1E8D}{\"x} \DeclareUnicodeCharacter{1E8E}{\dotaccent{Y}} \DeclareUnicodeCharacter{1E8F}{\dotaccent{y}} \DeclareUnicodeCharacter{1E90}{\^Z} \DeclareUnicodeCharacter{1E91}{\^z} \DeclareUnicodeCharacter{1E92}{\udotaccent{Z}} \DeclareUnicodeCharacter{1E93}{\udotaccent{z}} \DeclareUnicodeCharacter{1E94}{\ubaraccent{Z}} \DeclareUnicodeCharacter{1E95}{\ubaraccent{z}} \DeclareUnicodeCharacter{1E96}{\ubaraccent{h}} \DeclareUnicodeCharacter{1E97}{\"t} \DeclareUnicodeCharacter{1E98}{\ringaccent{w}} \DeclareUnicodeCharacter{1E99}{\ringaccent{y}} \DeclareUnicodeCharacter{1EA0}{\udotaccent{A}} \DeclareUnicodeCharacter{1EA1}{\udotaccent{a}} \DeclareUnicodeCharacter{1EB8}{\udotaccent{E}} \DeclareUnicodeCharacter{1EB9}{\udotaccent{e}} \DeclareUnicodeCharacter{1EBC}{\~E} \DeclareUnicodeCharacter{1EBD}{\~e} \DeclareUnicodeCharacter{1ECA}{\udotaccent{I}} \DeclareUnicodeCharacter{1ECB}{\udotaccent{i}} \DeclareUnicodeCharacter{1ECC}{\udotaccent{O}} \DeclareUnicodeCharacter{1ECD}{\udotaccent{o}} \DeclareUnicodeCharacter{1EE4}{\udotaccent{U}} \DeclareUnicodeCharacter{1EE5}{\udotaccent{u}} \DeclareUnicodeCharacter{1EF2}{\`Y} \DeclareUnicodeCharacter{1EF3}{\`y} \DeclareUnicodeCharacter{1EF4}{\udotaccent{Y}} \DeclareUnicodeCharacter{1EF8}{\~Y} \DeclareUnicodeCharacter{1EF9}{\~y} \DeclareUnicodeCharacter{2013}{--} \DeclareUnicodeCharacter{2014}{---} \DeclareUnicodeCharacter{2018}{\quoteleft} \DeclareUnicodeCharacter{2019}{\quoteright} \DeclareUnicodeCharacter{201A}{\quotesinglbase} \DeclareUnicodeCharacter{201C}{\quotedblleft} \DeclareUnicodeCharacter{201D}{\quotedblright} \DeclareUnicodeCharacter{201E}{\quotedblbase} \DeclareUnicodeCharacter{2022}{\bullet} \DeclareUnicodeCharacter{2026}{\dots} \DeclareUnicodeCharacter{2039}{\guilsinglleft} \DeclareUnicodeCharacter{203A}{\guilsinglright} \DeclareUnicodeCharacter{20AC}{\euro} \DeclareUnicodeCharacter{2192}{\expansion} \DeclareUnicodeCharacter{21D2}{\result} \DeclareUnicodeCharacter{2212}{\minus} \DeclareUnicodeCharacter{2217}{\point} \DeclareUnicodeCharacter{2261}{\equiv} }% end of \utfeightchardefs % US-ASCII character definitions. \def\asciichardefs{% nothing need be done \relax } % Make non-ASCII characters printable again for compatibility with % existing Texinfo documents that may use them, even without declaring a % document encoding. % \setnonasciicharscatcode \other \message{formatting,} \newdimen\defaultparindent \defaultparindent = 15pt \chapheadingskip = 15pt plus 4pt minus 2pt \secheadingskip = 12pt plus 3pt minus 2pt \subsecheadingskip = 9pt plus 2pt minus 2pt % Prevent underfull vbox error messages. \vbadness = 10000 % Don't be so finicky about underfull hboxes, either. \hbadness = 2000 % Following George Bush, get rid of widows and orphans. \widowpenalty=10000 \clubpenalty=10000 % Use TeX 3.0's \emergencystretch to help line breaking, but if we're % using an old version of TeX, don't do anything. We want the amount of % stretch added to depend on the line length, hence the dependence on % \hsize. We call this whenever the paper size is set. % \def\setemergencystretch{% \ifx\emergencystretch\thisisundefined % Allow us to assign to \emergencystretch anyway. \def\emergencystretch{\dimen0}% \else \emergencystretch = .15\hsize \fi } % Parameters in order: 1) textheight; 2) textwidth; % 3) voffset; 4) hoffset; 5) binding offset; 6) topskip; % 7) physical page height; 8) physical page width. % % We also call \setleading{\textleading}, so the caller should define % \textleading. The caller should also set \parskip. % \def\internalpagesizes#1#2#3#4#5#6#7#8{% \voffset = #3\relax \topskip = #6\relax \splittopskip = \topskip % \vsize = #1\relax \advance\vsize by \topskip \outervsize = \vsize \advance\outervsize by 2\topandbottommargin \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 % if we don't reset these, they will remain at "1 true in" of % whatever layout pdftex was dumped with. \pdfhorigin = 1 true in \pdfvorigin = 1 true in \fi % \setleading{\textleading} % \parindent = \defaultparindent \setemergencystretch } % @letterpaper (the default). \def\letterpaper{{\globaldefs = 1 \parskip = 3pt plus 2pt minus 1pt \textleading = 13.2pt % % If page is nothing but text, make it come out even. \internalpagesizes{607.2pt}{6in}% that's 46 lines {\voffset}{.25in}% {\bindingoffset}{36pt}% {11in}{8.5in}% }} % Use @smallbook to reset parameters for 7x9.25 trim size. \def\smallbook{{\globaldefs = 1 \parskip = 2pt plus 1pt \textleading = 12pt % \internalpagesizes{7.5in}{5in}% {-.2in}{0in}% {\bindingoffset}{16pt}% {9.25in}{7in}% % \lispnarrowing = 0.3in \tolerance = 700 \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{673.2pt}{160mm}% that's 51 lines {\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\relax \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.} % DEL is a comment character, in case @c does not suffice. \catcode`\^^? = 14 % Define macros to output various characters with catcode for normal text. \catcode`\"=\other \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} % Used sometimes to turn off (effectively) the active characters even after % parsing them. \def\turnoffactive{% \normalturnoffactive \otherbackslash } \catcode`\@=0 % \backslashcurfont outputs one backslash character in current font, % as in \char`\\. \global\chardef\backslashcurfont=`\\ \global\let\rawbackslashxx=\backslashcurfont % let existing .??s files work % \realbackslash is an actual character `\' with catcode other, and % \doublebackslash is two of them (for the pdf outlines). {\catcode`\\=\other @gdef@realbackslash{\} @gdef@doublebackslash{\\}} % In texinfo, backslash is an active character; it prints the backslash % in fixed width font. \catcode`\\=\active @def@normalbackslash{{@tt@backslashcurfont}} % On startup, @fixbackslash assigns: % @let \ = @normalbackslash % \rawbackslash defines an active \ to do \backslashcurfont. % \otherbackslash defines an active \ to be a literal `\' character with % catcode other. @gdef@rawbackslash{@let\=@backslashcurfont} @gdef@otherbackslash{@let\=@realbackslash} % Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of % the literal character `\'. % @def@normalturnoffactive{% @let\=@normalbackslash @let"=@normaldoublequote @let~=@normaltilde @let^=@normalcaret @let_=@normalunderscore @let|=@normalverticalbar @let<=@normalless @let>=@normalgreater @let+=@normalplus @let$=@normaldollar %$ font-lock fix @markupsetuplqdefault @markupsetuprqdefault @unsepspaces } % 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 Finally, make ` and ' active, so that txicodequoteundirected and @c txicodequotebacktick work right in, e.g., @w{@code{`foo'}}. If we @c don't make ` and ' active, @code will not get them as active chars. @c Do this last of all since we use ` in the previous @catcode assignments. @catcode`@'=@active @catcode`@`=@active @markupsetuplqdefault @markupsetuprqdefault @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 enscript-1.6.5.90/docs/enscript.texi0000644000175000017500000002640311133214772014202 00000000000000\input texinfo @c -*-texinfo-*- @c %**start of header @setfilename enscript.info @settitle enscript @setchapternewpage on @c %**end of header @include version.texi @dircategory Utilities @direntry * Enscript: (enscript). GNU Enscript @end direntry @c Combine function and variable indexes to the Concept index. @synindex fn cp @synindex vr cp @ifinfo This file documents GNU enscript @value{VERSION} Copyright (C) 1995, 1998, 1999, 2007, 2009 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled ``GNU Free Documentation License''. @end ifinfo @titlepage @title GNU enscript @subtitle For version @value{VERSION}, @value{UPDATED} @author Markku Rossi @page @vskip 0pt plus 1filll Copyright @copyright{} 1995-1998 Markku Rossi. @sp 2 This is the first edition of the GNU enscript documentation,@* and is consistent with GNU enscript @value{VERSION}.@* 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 @ifinfo @node Top, Introduction, (dir), (dir) @comment node-name, next, previous, up @top GNU enscript This file documents the GNU enscript program. This edition documents version @value{VERSION}. @menu * Introduction:: * Invoking Enscript:: * Basic Printing:: * Advanced Usage:: * Configuration Files:: * Customization:: * The states Program:: * Writing New Highlighting Definitions:: * Index:: * Documentation License:: @end menu @end ifinfo @c ---------------------------------------------------------------------- @node Introduction, Invoking Enscript, Top, Top @chapter Introduction @itemize @bullet @item overall @item design @end itemize @c ---------------------------------------------------------------------- @node Invoking Enscript, Basic Printing, Introduction, Top @chapter Invoking Enscript @c ---------------------------------------------------------------------- @node Basic Printing, Advanced Usage, Invoking Enscript, Top @chapter Basic Printing @menu * Input Encodings:: * Selecting Fonts:: * Page Headers:: * Page Handling:: * Highlighting:: @end menu @node Input Encodings, Selecting Fonts, Basic Printing, Basic Printing @section Input Encodings @node Selecting Fonts, Page Headers, Input Encodings, Basic Printing @section Selecting Fonts @node Page Headers, Page Handling, Selecting Fonts, Basic Printing @section Page Headers @node Page Handling, Highlighting, Page Headers, Basic Printing @section Page Handling @menu * Page Orientation:: * N-up Printing:: * Fitting Text to Page:: @end menu @node Page Orientation, N-up Printing, Page Handling, Page Handling @subsection Page Orientation @node N-up Printing, Fitting Text to Page, Page Orientation, Page Handling @subsection N-up Printing @node Fitting Text to Page, , N-up Printing, Page Handling @subsection Fitting Text to Page @node Highlighting, , Page Handling, Basic Printing @section Highlighting @menu * Different Output Languages:: @end menu @node Different Output Languages, , Highlighting, Highlighting @subsection Different Output Languages @c ---------------------------------------------------------------------- @node Advanced Usage, Configuration Files, Basic Printing, Top @chapter Advanced Usage @menu * Selecting Pages:: * Escape Sequences:: * Input Filters:: * Slice Printing:: * PostScript Printer Controlling:: * Pass-Through Mode:: @end menu @node Selecting Pages, Escape Sequences, Advanced Usage, Advanced Usage @section Selecting Pages @node Escape Sequences, Input Filters, Selecting Pages, Advanced Usage @section Escape Sequences @node Input Filters, Slice Printing, Escape Sequences, Advanced Usage @section Input Filters @node Slice Printing, PostScript Printer Controlling, Input Filters, Advanced Usage @section Slice Printing @node PostScript Printer Controlling, Pass-Through Mode, Slice Printing, Advanced Usage @section PostScript Printer Controlling @node Pass-Through Mode, , PostScript Printer Controlling, Advanced Usage @section Pass-Through Mode @c ---------------------------------------------------------------------- @node Configuration Files, Customization, Advanced Usage, Top @chapter Configuration Files @c ---------------------------------------------------------------------- @node Customization, The states Program, Configuration Files, Top @chapter Customization @menu * Output Media:: * User-Defined Fancy Headers:: @end menu @node Output Media, User-Defined Fancy Headers, Customization, Customization @section Output Media @node User-Defined Fancy Headers, , Output Media, Customization @section User-Defined Fancy Headers @c ---------------------------------------------------------------------- @node The states Program, Writing New Highlighting Definitions, Customization, Top @chapter The @samp{states} Program @c ---------------------------------------------------------------------- @node Writing New Highlighting Definitions, Index, The states Program, Top @chapter Writing New Highlighting Definitions The highlighting works in three separate phases. First, the @dfn{highlighing rules} process the input stream and parse it into logical components. The components are called @dfn{faces}. A face presents one logical component of the input language, for example, a keyword, a comment, etc.. The enscript's highlighting model defines the following faces: @table @b @item bold @itemx italic @itemx bold_italic Hard-coded faces for the bold, italic, and bold-italice text types. These faces define the exact presentation of the face font, so the style files have very little power in customizing their outlook. These faces should be avoided as much as possible. @item comment A comment, normally in a programming language. @item function_name A function name. The function names are normally recognized from function definitions, not from an use of the function. @item variable_name A variable name. The variable names are normally recognized from function, type, and variable definitions. @item keyword A reserved keyword. Normally, all occurrences of the keywords are recognized. @item reference A reference to another location in a file or to another file or resource. For example, in the C-language, the goto targets are references. @item string A string literal. @item builtin A builtin function or property. Normally, all occurrences of the builtins are recognized. @item type A type specifier. The types are normally recognized from function, type, and variable definitions. @end table As the second step, the @dfn{output style} specifies how the faces are presented in the generated output. Each face has the following properties: @table @b @item fontname The PostScript font name of the the font that is used for the face. This property is used only for the PostScript outputs. @item boldp A boolean flag which tells whether the face should be printed in bold font. This property is used for all output languages except for the PostScript which uses the fontname property. @item italicp A boolean flag which tells whether the face shuold be printed with italic font. This property is used for all output languages except for the PostScript which uses the fontname property. @item fg_color The foreground color of the face. @item bg_color The background color of the face. This property is not implemented on all output languages. @end table Finally, the @dfn{output language} describes how the faces and other text are presented in the output language. The output language defines a set of functions which are called to generate the output. @menu * Highlighting Rules:: * Styles:: * Output Languages:: @end menu @node Highlighting Rules, Styles, Writing New Highlighting Definitions, Writing New Highlighting Definitions @section Highlighting Rules @node Styles, Output Languages, Highlighting Rules, Writing New Highlighting Definitions @section Styles @node Output Languages, , Styles, Writing New Highlighting Definitions @section Output Languages @deffn Function map_color (r, g, b) @end deffn @deffn Function language_print (string) @end deffn @deffn Function language_symbol (symbol) @end deffn @deffn Function header () @end deffn @deffn Function trailer () @end deffn @deffn Function face_on (face) @end deffn @deffn Function face_off (face) @end deffn @defvr Variable LANGUAGE_SPECIALS @end defvr The following example creates a new output language @code{simple_html} that creates simple HTML outputs. The output language is defined in a file called @file{lang_simple_html.st}. The file must define a state called @code{lang_simple_html}. The file can be located in any directory that is in the load path of the states program. The output language definitions are defined in the @code{BEGIN} block of the @code{lang_simple_html} state. Please, note that the @code{BEGIN} block is ended with a @code{return}-statement. This statement will return the control to the calling state that is the start state of the enscript highlight program. If the @code{return}-statement was omitted, the states would start processing the input with the @code{lang_simple_html} state which is obviously a wrong choice. @example state lang_simple_html @{ BEGIN @{ sub map_color (r, g, b) @{ return sprintf ("#%02X%02X%02X", r, g, b); @} sub language_print (str) @{ str = regsuball (str, /\&/, "&"); str = regsuball (str, //, ">"); str = regsuball (str, /\"/, """); print (str); @} sub language_symbol (symbol) @{ return false; @} sub header () @{ print ("\n\nSimple HTML Output\n"); print ("\n\n"); @} sub trailer () @{ print ("\n\n"); @} sub fase_on (face) @{ if (face(boldp]) print (""); if (face(italicp]) print (""); if (face[fg_color]) print (""); @} sub face_off (face) @{ if (face[fg_color]) print (""); if (face[italicp]) print (""); if (face[boldp]) print (""); @} LANGUAGE_SPECIALS = /[<>\&\"]/; return; @} @} @end example @c ---------------------------------------------------------------------- @page @node Index, Documentation License, Writing New Highlighting Definitions, Top @unnumbered Index @printindex cp @c ---------------------------------------------------------------------- @node Documentation License, , Index, Top @appendix Documentation License @include fdl-1.3.texi @contents @bye enscript-1.6.5.90/docs/states.man0000644000175000017500000002715411401303365013457 00000000000000.\" .\" States manual page. .\" Copyright (c) 1997-1998 Markku Rossi. .\" Author: Markku Rossi .\" .\" This file is part of GNU Enscript. .\" .\" Enscript is free software: you can redistribute 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. .\" .\" Enscript is distributed in the hope that it will be useful, .\" but WITHOUT ANY WARRANTY; without even the implied warranty of .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the .\" GNU General Public License for more details. .\" .\" You should have received a copy of the GNU General Public License .\" along with Enscript. If not, see . .\" .TH STATES 1 "Oct 23, 1998" "STATES" "STATES" .SH NAME states \- awk alike text processing tool .SH SYNOPSIS .B states [\f3\-hvV\f1] [\f3\-D \f2var\f3=\f2val\f1] [\f3\-f \f2file\f1] [\f3\-o \f2outputfile\f1] [\f3\-p \f2path\f1] [\f3\-s \f2startstate\f1] [\f3\-W \f2level\f1] [\f2filename\f1 ...] .SH DESCRIPTION \f3States\f1 is an awk-alike text processing tool with some state machine extensions. It is designed for program source code highlighting and to similar tasks where state information helps input processing. At a single point of time, \f3States\f1 is in one state, each quite similar to awk's work environment, they have regular expressions which are matched from the input and actions which are executed when a match is found. From the action blocks, \f3states\f1 can perform state transitions; it can move to another state from which the processing is continued. State transitions are recorded so \f3states\f1 can return to the calling state once the current state has finished. The biggest difference between \f3states\f1 and awk, besides state machine extensions, is that \f3states\f1 is not line-oriented. It matches regular expression tokens from the input and once a match is processed, it continues processing from the current position, not from the beginning of the next input line. .SH OPTIONS .TP 8 .B \-D \f2var\f3=\f2val\f3, \-\-define=\f2var\f3=\f2val\f3 Define variable \f2var\f1 to have string value \f2val\f1. Command line definitions overwrite variable definitions found from the config file. .TP 8 .B \-f \f2file\f3, \-\-file=\f2file\f3 Read state definitions from file \f2file\f1. As a default, \f3states\f1 tries to read state definitions from file \f3states.st\f1 in the current working directory. .TP 8 .B \-h, \-\-help Print short help message and exit. .TP 8 .B \-o \f2file\f3, \-\-output=\f2file\f3 Save output to file \f2file\f1 instead of printing it to \f3stdout\f1. .TP 8 .B \-p \f2path\f3, \-\-path=\f2path\f3 Set the load path to \f2path\f1. The load path defaults to the directory, from which the state definitions file is loaded. .TP 8 .B \-s \f2state\f3, \-\-state=\f2state\f3 Start execution from state \f3state\f1. This definition overwrites start state resolved from the \f3start\f1 block. .TP 8 .B \-v, \-\-verbose Increase the program verbosity. .TP 8 .B \-V, \-\-version Print \f3states\f1 version and exit. .TP 8 .B \-W \f2level\f3, \-\-warning=\f2level\f3 Set the warning level to \f2level\f1. Possible values for \f2level\f1 are: .RS 8 .TP 8 .B light light warnings (default) .TP 8 .B all all warnings .RE .SH STATES PROGRAM FILES \f3States\f1 program files can contain on \f2start\f1 block, \f2startrules\f1 and \f2namerules\f1 blocks to specify the initial state, \f2state\f1 definitions and \f2expressions\f1. The \f2start\f1 block is the main() of the \f3states\f1 program, it is executed on script startup for each input file and it can perform any initialization the script needs. It normally also calls the \f3check_startrules()\f1 and \f3check_namerules()\f1 primitives which resolve the initial state from the input file name or the data found from the beginning of the input file. Here is a sample start block which initializes two variables and does the standard start state resolving: .PP .RS .nf start { a = 1; msg = "Hello, world!"; check_startrules (); check_namerules (); } .fi .RE .PP Once the start block is processed, the input processing is continued from the initial state. The initial state is resolved by the information found from the \f2startrules\f1 and \f2namerules\f1 blocks. Both blocks contain regular expression - symbol pairs, when the regular expression is matched from the name of from the beginning of the input file, the initial state is named by the corresponding symbol. For example, the following start and name rules can distinguish C and Fortran files: .PP .RS .nf namerules { /\\.(c|h)$/ c; /\\.[fF]$/ fortran; } startrules { /-\\*- [cC] -\\*-/ c; /-\\*- fortran -\\*-/ fortran; } .fi .RE .PP If these rules are used with the previously shown start block, \f3states\f1 first check the beginning of input file. If it has string \f3-*- c -*-\f1, the file is assumed to contain C code and the processing is started from state called \f3c\f1. If the beginning of the input file has string \f3-*- fortran -*-\f1, the initial state is \f3fortran\f1. If none of the start rules matched, the name of the input file is matched with the namerules. If the name ends to suffix \f3c\f1 or \f3C\f1, we go to state \f3c\f1. If the suffix is \f3f\f1 or \f3F\f1, the initial state is fortran. If both start and name rules failed to resolve the start state, \f3states\f1 just copies its input to output unmodified. The start state can also be specified from the command line with option \f3\-s\f1, \f3\-\-state\f1. State definitions have the following syntax: .B state { \f2expr\f1 {\f2statements\f1} ... } where \f2expr\f1 is: a regular expression, special expression or symbol and \f2statements\f1 is a list of statements. When the expression \f2expr\f1 is matched from the input, the statement block is executed. The statement block can call \f3states\f1' primitives, user-defined subroutines, call other states, etc. Once the block is executed, the input processing is continued from the current intput position (which might have been changed if the statement block called other states). Special expressions \f3BEGIN\f1 and \f3END\f1 can be used in the place of \f2expr\f1. Expression \f3BEGIN\f1 matches the beginning of the state, its block is called when the state is entered. Expression \f3END\f1 matches the end of the state, its block is executed when \f3states\f1 leaves the state. If \f2expr\f1 is a symbol, its value is looked up from the global environment and if it is a regular expression, it is matched to the input, otherwise that rule is ignored. The \f3states\f1 program file can also have top-level expressions, they are evaluated after the program file is parsed but before any input files are processed or the \f2start\f1 block is evaluated. .SH PRIMITIVE FUNCTIONS .TP 8 .B call (\f2symbol\f3) Move to state \f2symbol\f1 and continue input file processing from that state. Function returns whatever the \f3symbol\f1 state's terminating \f3return\f1 statement returned. .TP 8 .B calln (\f2name\f3) Like \f3call\f1 but the argument \f2name\f1 is evaluated and its value must be string. For example, this function can be used to call a state which name is stored to a variable. .TP 8 .B check_namerules () Try to resolve start state from \f3namerules\f1 rules. Function returns \f31\f1 if start state was resolved or \f30\f1 otherwise. .TP 8 .B check_startrules () Try to resolve start state from \f3startrules\f1 rules. Function returns \f31\f1 if start state was resolved or \f30\f1 otherwise. .TP 8 .B concat (\f2str\f3, ...) Concanate argument strings and return result as a new string. .TP 8 .B float (\f2any\f3) Convert argument to a floating point number. .TP 8 .B getenv (\f2str\f3) Get value of environment variable \f2str\f1. Returns an empty string if variable \f2var\f1 is undefined. .TP 8 .B int (\f2any\f3) Convert argument to an integer number. .TP 8 .B length (\f2item\f3, ...) Count the length of argument strings or lists. .TP 8 .B list (\f2any\f3, ...) Create a new list which contains items \f2any\f1, ... .TP 8 .B panic (\f2any\f3, ...) Report a non-recoverable error and exit with status \f31\f1. Function never returns. .TP 8 .B print (\f2any\f3, ...) Convert arguments to strings and print them to the output. .TP 8 .B range (\f2source\f3, \f2start\f3, \f2end\f3) Return a sub\-range of \f2source\f1 starting from position \f2start\f1 (inclusively) to \f2end\f1 (exclusively). Argument \f2source\f1 can be string or list. .TP 8 .B regexp (\f2string\f3) Convert string \f2string\f1 to a new regular expression. .TP 8 .B regexp_syntax (\f2char\f3, \f2syntax\f3) Modify regular expression character syntaxes by assigning new syntax \f2syntax\f1 for character \f2char\f1. Possible values for \f2syntax\f1 are: .RS 8 .TP 8 .B 'w' character is a word constituent .TP 8 .B ' ' character isn't a word constituent .RE .TP 8 .B regmatch (\f2string\f3, \f2regexp\f3) Check if string \f2string\f1 matches regular expression \f2regexp\f1. Functions returns a boolean success status and sets sub-expression registers \f3$\f2n\f1. .TP 8 .B regsub (\f2string\f1, \f2regexp\f3, \f2subst\f3) Search regular expression \f2regexp\f1 from string \f2string\f1 and replace the matching substring with string \f2subst\f1. Returns the resulting string. The substitution string \f2subst\f1 can contain \f3$\f2n\f1 references to the \f2n\f1:th parenthesized sup-expression. .TP 8 .B regsuball (\f2string\f1, \f2regexp\f3, \f2subst\f3) Like \f3regsub\f1 but replace all matches of regular expression \f2regexp\f1 from string \f2string\f1 with string \f2subst\f1. .TP 8 .B require_state (\f2symbol\f3) Check that the state \f2symbol\f1 is defined. If the required state is undefined, the function tries to autoload it. If the loading fails, the program will terminate with an error message. .TP 8 .B split (\f2regexp\f3, \f2string\f3) Split string \f2string\f1 to list considering matches of regular rexpression \f2regexp\f1 as item separator. .TP 8 .B sprintf (\f2fmt\f1, ...) Format arguments according to \f2fmt\f1 and return result as a string. .TP 8 .B strcmp (\f2str1\f3, \f2str2\f3) Perform a case\-sensitive comparision for strings \f2str1\f1 and \f2str2\f1. Function returns a value that is: .RS 8 .TP 8 .B -1 string \f2str1\f1 is less than \f2str2\f1 .TP 8 .B 0 strings are equal .TP 8 .B 1 string \f2str1\f1 is greater than \f2str2\f1 .RE .TP 8 .B string (\f2any\f3) Convert argument to string. .TP 8 .B strncmp (\f2str1\f3, \f2str2\f3, \f2num\f3) Perform a case\-sensitive comparision for strings \f2str1\f1 and \f2str2\f1 comparing at maximum \f2num\f3 characters. .TP 8 .B substring (\f2str\f3, \f2start\f3, \f2end\f3) Return a substring of string \f2str\f1 starting from position \f2start\f1 (inclusively) to \f2end\f1 (exclusively). .RE .SH BUILTIN VARIABLES .TP 8 .B $. current input line number .TP 8 .B $\f2n\f3 the \f2n\f1:th parenthesized regular expression sub-expression from the latest state regular expression or from the \f3regmatch\f1 primitive .TP 8 .B $` everything before the matched regular rexpression. This is usable when used with the \f3regmatch\f1 primitive; the contents of this variable is undefined when used in action blocks to refer the data before the block's regular expression. .TP 8 .B $B an alias for \f3$`\f1 .TP 8 .B argv list of input file names .TP 8 .B filename name of the current input file .TP 8 .B program name of the program (usually \f3states\f1) .TP 8 .B version program version string .RE .SH FILES .nf .ta 4i @DATADIR@/enscript/hl/*.st enscript's states definitions .fi .SH SEE ALSO awk(1), enscript(1) .SH AUTHOR Markku Rossi GNU Enscript WWW home page: enscript-1.6.5.90/docs/fdl-1.3.texi0000644000175000017500000005601511133214772013421 00000000000000@c The GNU Free Documentation License. @center Version 1.3, 3 November 2008 @c This file is intended to be included within another document, @c hence no sectioning command or @node. @display Copyright @copyright{} 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. @uref{http://fsf.org/} Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. @end display @enumerate 0 @item PREAMBLE The purpose of this License is to make a manual, textbook, or other functional and useful document @dfn{free} in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others. This License is a kind of ``copyleft'', which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software. We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference. @item APPLICABILITY AND DEFINITIONS This License applies to any manual or other work, in any medium, that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. Such a notice grants a world-wide, royalty-free license, unlimited in duration, to use that work under the conditions stated herein. The ``Document'', below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as ``you''. You accept the license if you copy, modify or distribute the work in a way requiring permission under copyright law. A ``Modified Version'' of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language. A ``Secondary Section'' is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document's overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (Thus, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them. The ``Invariant Sections'' are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License. If a section does not fit the above definition of Secondary then it is not allowed to be designated as Invariant. The Document may contain zero Invariant Sections. If the Document does not identify any Invariant Sections then there are none. The ``Cover Texts'' are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License. A Front-Cover Text may be at most 5 words, and a Back-Cover Text may be at most 25 words. A ``Transparent'' copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, that is suitable for revising the document straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup, or absence of markup, has been arranged to thwart or discourage subsequent modification by readers is not Transparent. An image format is not Transparent if used for any substantial amount of text. A copy that is not ``Transparent'' is called ``Opaque''. Examples of suitable formats for Transparent copies include plain @sc{ascii} without markup, Texinfo input format, La@TeX{} input format, @acronym{SGML} or @acronym{XML} using a publicly available @acronym{DTD}, and standard-conforming simple @acronym{HTML}, PostScript or @acronym{PDF} designed for human modification. Examples of transparent image formats include @acronym{PNG}, @acronym{XCF} and @acronym{JPG}. Opaque formats include proprietary formats that can be read and edited only by proprietary word processors, @acronym{SGML} or @acronym{XML} for which the @acronym{DTD} and/or processing tools are not generally available, and the machine-generated @acronym{HTML}, PostScript or @acronym{PDF} produced by some word processors for output purposes only. The ``Title Page'' means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, ``Title Page'' means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text. The ``publisher'' means any person or entity that distributes copies of the Document to the public. A section ``Entitled XYZ'' means a named subunit of the Document whose title either is precisely XYZ or contains XYZ in parentheses following text that translates XYZ in another language. (Here XYZ stands for a specific section name mentioned below, such as ``Acknowledgements'', ``Dedications'', ``Endorsements'', or ``History''.) To ``Preserve the Title'' of such a section when you modify the Document means that it remains a section ``Entitled XYZ'' according to this definition. The Document may include Warranty Disclaimers next to the notice which states that this License applies to the Document. These Warranty Disclaimers are considered to be included by reference in this License, but only as regards disclaiming warranties: any other implication that these Warranty Disclaimers may have is void and has no effect on the meaning of this License. @item VERBATIM COPYING You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3. You may also lend copies, under the same conditions stated above, and you may publicly display copies. @item COPYING IN QUANTITY If you publish printed copies (or copies in media that commonly have printed covers) of the Document, numbering more than 100, and the Document's license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects. If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages. If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a computer-network location from which the general network-using public has access to download using public-standard network protocols a complete Transparent copy of the Document, free of added material. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public. It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document. @item MODIFICATIONS You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version: @enumerate A @item Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission. @item List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has fewer than five), unless they release you from this requirement. @item State on the Title page the name of the publisher of the Modified Version, as the publisher. @item Preserve all the copyright notices of the Document. @item Add an appropriate copyright notice for your modifications adjacent to the other copyright notices. @item Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below. @item Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document's license notice. @item Include an unaltered copy of this License. @item Preserve the section Entitled ``History'', Preserve its Title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section Entitled ``History'' in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence. @item Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the ``History'' section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission. @item For any section Entitled ``Acknowledgements'' or ``Dedications'', Preserve the Title of the section, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein. @item Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles. @item Delete any section Entitled ``Endorsements''. Such a section may not be included in the Modified Version. @item Do not retitle any existing section to be Entitled ``Endorsements'' or to conflict in title with any Invariant Section. @item Preserve any Warranty Disclaimers. @end enumerate If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version's license notice. These titles must be distinct from any other section titles. You may add a section Entitled ``Endorsements'', provided it contains nothing but endorsements of your Modified Version by various parties---for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard. You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one. The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version. @item COMBINING DOCUMENTS You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice, and that you preserve all their Warranty Disclaimers. The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work. In the combination, you must combine any sections Entitled ``History'' in the various original documents, forming one section Entitled ``History''; likewise combine any sections Entitled ``Acknowledgements'', and any sections Entitled ``Dedications''. You must delete all sections Entitled ``Endorsements.'' @item COLLECTIONS OF DOCUMENTS You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects. You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document. @item AGGREGATION WITH INDEPENDENT WORKS A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, is called an ``aggregate'' if the copyright resulting from the compilation is not used to limit the legal rights of the compilation's users beyond what the individual works permit. When the Document is included in an aggregate, this License does not apply to the other works in the aggregate which are not themselves derivative works of the Document. If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one half of the entire aggregate, the Document's Cover Texts may be placed on covers that bracket the Document within the aggregate, or the electronic equivalent of covers if the Document is in electronic form. Otherwise they must appear on printed covers that bracket the whole aggregate. @item TRANSLATION Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License, and all the license notices in the Document, and any Warranty Disclaimers, provided that you also include the original English version of this License and the original versions of those notices and disclaimers. In case of a disagreement between the translation and the original version of this License or a notice or disclaimer, the original version will prevail. If a section in the Document is Entitled ``Acknowledgements'', ``Dedications'', or ``History'', the requirement (section 4) to Preserve its Title (section 1) will typically require changing the actual title. @item TERMINATION You may not copy, modify, sublicense, or distribute the Document except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, or distribute it is void, and will automatically terminate your rights under this License. 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, receipt of a copy of some or all of the same material does not give you any rights to use it. @item FUTURE REVISIONS OF THIS LICENSE The Free Software Foundation may publish new, revised versions of the GNU Free Documentation 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. See @uref{http://www.gnu.org/copyleft/}. Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License ``or any later version'' applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation. If the Document specifies that a proxy can decide which future versions of this License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Document. @item RELICENSING ``Massive Multiauthor Collaboration Site'' (or ``MMC Site'') means any World Wide Web server that publishes copyrightable works and also provides prominent facilities for anybody to edit those works. A public wiki that anybody can edit is an example of such a server. A ``Massive Multiauthor Collaboration'' (or ``MMC'') contained in the site means any set of copyrightable works thus published on the MMC site. ``CC-BY-SA'' means the Creative Commons Attribution-Share Alike 3.0 license published by Creative Commons Corporation, a not-for-profit corporation with a principal place of business in San Francisco, California, as well as future copyleft versions of that license published by that same organization. ``Incorporate'' means to publish or republish a Document, in whole or in part, as part of another Document. An MMC is ``eligible for relicensing'' if it is licensed under this License, and if all works that were first published under this License somewhere other than this MMC, and subsequently incorporated in whole or in part into the MMC, (1) had no cover texts or invariant sections, and (2) were thus incorporated prior to November 1, 2008. The operator of an MMC Site may republish an MMC contained in the site under CC-BY-SA on the same site at any time before August 1, 2009, provided the MMC is eligible for relicensing. @end enumerate @page @heading ADDENDUM: How to use this License for your documents To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page: @smallexample @group Copyright (C) @var{year} @var{your name}. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled ``GNU Free Documentation License''. @end group @end smallexample If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, replace the ``with@dots{}Texts.'' line with this: @smallexample @group with the Invariant Sections being @var{list their titles}, with the Front-Cover Texts being @var{list}, and with the Back-Cover Texts being @var{list}. @end group @end smallexample If you have Invariant Sections without Cover Texts, or some other combination of the three, merge those two alternatives to suit the situation. If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software. @c Local Variables: @c ispell-local-pdict: "ispell-dict" @c End: enscript-1.6.5.90/docs/FAQ.html0000644000175000017500000002210411443774777012773 00000000000000 GNU Enscript Frequently Asked Questions (FAQ)

GNU Enscript Frequently Asked Questions (FAQ)

$Id: FAQ.html,v 1.1.1.1 2003/03/05 07:25:53 mtr Exp $

For GNU Enscript version 1.6.0

This FAQ assumes that you are using the latest version of GNU Enscript, there are many old bugs and misfeatures but many of them have been fixed for the latest version. For on-line information about the latest version, bugs, features, etc. please, check the GNU Enscript WWW home at URL: http://www.iki.fi/~mtr/genscript/.


Contents


Misc

  • Does enscript read PPD files?
    No. PPD file support is on my TODO list, I will implement in the near future.

  • What's missing / what's different in the Adobe enscript emulation?
    • Enscript's option `-o' has been changed. In enscript `-o' lists missing characters. In GNU enscript `-o' is an alias for `-p' and missing characters are listed with an option `-O'.
  • Make install installs with the current umask. I use 077 for root, which gives all the installed directories rwx------. No good for general use...
    Makefile is just doing what it was told. Change your umask for the installation time or override INSTALL_DATA and INSTALL_PROGRAM Makefile variables.

Character Sets


Printing, Output Media

  • I printed some documents with options `-G2r', everything goes just fine but there are no page numbers in the upper right corner. What goes wrong?
    You are probably using wrong output media; your printer uses different output media than enscript. Check what is your default output media in the enscript.cfg (and $HOME/.enscriptrc) file and change it if needed. For example, to change enscript's default media A4 to Letter, you must to do the following change:
    # Default output media.
    DefaultMedia: A4
    =>
    DefaultMedia: Letter
    
    You can also set the default output media during the configuration step, just give configure script option

    --with-media[=media]

    If no media is given, it defaults to Letter.

  • How can I change margins under enscript?
    You have to define a new output media which has better margins. This is quite easy, just define the new media in enscript's configuration file. For example, below is a new `A4BigMargin' media with bigger margins:
    # Media definitions:
    #	name		width	height	llx	lly	urx	ury
    Media:	A3		839	1190	18	17	821	1173
    Media:	A4		595	839	18	17	581	822
    Media:	A5		420	595	18	17	406	578
    Media:  Letter		612	792	18	17	597	776
    Media:	Legal		612	1008	18	17	597	992
    
    Media:   A4BigMargin	595	839	36	34	563	805
    
    You can select this media by giving enscript option `-M A4BigMargin' or by setting it to be your default output media by editing enscript.cfg:
    # Default output media.
    DefaultMedia: A4
    =>
    DefaultMedia: A4BigMargin
    

  • Ghostscript does not show enscript's outputs correctly, what's the problem?
    There is one minor problem in enscript / ghostscript co-operation. Enscript's default output media is A4 (because I live in Europe) and GhostScript's default output media is Letter. There are three solutions for this problem:

    1. Tell Enscript that it should use the Letter media:
      $ enscript -MLetter other options and files
      
    2. Fix Enscript
      Add / edit following line to file enscript.cfg:
      # Default output media.
      DefaultMedia: A4
      
      =>
      
      # Default output media.
      DefaultMedia: Letter
      
    3. Fix GhostScript
      edit following line to file gs_init.ps:
      % Optionally choose a default paper size other than U.S. letter.
      % (a4) /PAPERSIZE where { pop pop } { /PAPERSIZE exch def } ifelse
      
      =>
      
      % Optionally choose a default paper size other than U.S. letter.
      (a4) /PAPERSIZE where { pop pop } { /PAPERSIZE exch def } ifelse
      
      or give ghostscript option -sPAPERSIZE=a4

  • My PostScript printer supports only level 1 PostScript. How can I setup enscript to work with it?

    The level 2 features are protected by an if-else block in the generated output file. So, basicly everything should work smoothly. But, there is a but. As a default, enscript generates the page size selection code, and it might cause a syntax error on level 1 PostScript engines. This problem is fixed by disabling the page size generation. Just edit your .enscriptrc or enscript.cfg files and add the following line:

    GeneratePageSize: 0
    

Please send comments on these web pages to
mtr@iki.fi.

Copyright © 1998 Markku Rossi

Verbatim copying and distribution is permitted in any medium, provided this notice is preserved.


enscript-1.6.5.90/docs/enscript.info0000644000175000017500000011151411606344235014165 00000000000000This is enscript.info, produced by makeinfo version 4.13 from enscript.texi. INFO-DIR-SECTION Utilities START-INFO-DIR-ENTRY * Enscript: (enscript). GNU Enscript END-INFO-DIR-ENTRY This file documents GNU enscript 1.6.5.90 Copyright (C) 1995, 1998, 1999, 2007, 2009 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".  File: enscript.info, Node: Top, Next: Introduction, Prev: (dir), Up: (dir) GNU enscript ************ This file documents the GNU enscript program. This edition documents version 1.6.5.90. * Menu: * Introduction:: * Invoking Enscript:: * Basic Printing:: * Advanced Usage:: * Configuration Files:: * Customization:: * The states Program:: * Writing New Highlighting Definitions:: * Index:: * Documentation License::  File: enscript.info, Node: Introduction, Next: Invoking Enscript, Prev: Top, Up: Top 1 Introduction ************** * overall * design  File: enscript.info, Node: Invoking Enscript, Next: Basic Printing, Prev: Introduction, Up: Top 2 Invoking Enscript *******************  File: enscript.info, Node: Basic Printing, Next: Advanced Usage, Prev: Invoking Enscript, Up: Top 3 Basic Printing **************** * Menu: * Input Encodings:: * Selecting Fonts:: * Page Headers:: * Page Handling:: * Highlighting::  File: enscript.info, Node: Input Encodings, Next: Selecting Fonts, Prev: Basic Printing, Up: Basic Printing 3.1 Input Encodings ===================  File: enscript.info, Node: Selecting Fonts, Next: Page Headers, Prev: Input Encodings, Up: Basic Printing 3.2 Selecting Fonts ===================  File: enscript.info, Node: Page Headers, Next: Page Handling, Prev: Selecting Fonts, Up: Basic Printing 3.3 Page Headers ================  File: enscript.info, Node: Page Handling, Next: Highlighting, Prev: Page Headers, Up: Basic Printing 3.4 Page Handling ================= * Menu: * Page Orientation:: * N-up Printing:: * Fitting Text to Page::  File: enscript.info, Node: Page Orientation, Next: N-up Printing, Prev: Page Handling, Up: Page Handling 3.4.1 Page Orientation ----------------------  File: enscript.info, Node: N-up Printing, Next: Fitting Text to Page, Prev: Page Orientation, Up: Page Handling 3.4.2 N-up Printing -------------------  File: enscript.info, Node: Fitting Text to Page, Prev: N-up Printing, Up: Page Handling 3.4.3 Fitting Text to Page --------------------------  File: enscript.info, Node: Highlighting, Prev: Page Handling, Up: Basic Printing 3.5 Highlighting ================ * Menu: * Different Output Languages::  File: enscript.info, Node: Different Output Languages, Prev: Highlighting, Up: Highlighting 3.5.1 Different Output Languages --------------------------------  File: enscript.info, Node: Advanced Usage, Next: Configuration Files, Prev: Basic Printing, Up: Top 4 Advanced Usage **************** * Menu: * Selecting Pages:: * Escape Sequences:: * Input Filters:: * Slice Printing:: * PostScript Printer Controlling:: * Pass-Through Mode::  File: enscript.info, Node: Selecting Pages, Next: Escape Sequences, Prev: Advanced Usage, Up: Advanced Usage 4.1 Selecting Pages ===================  File: enscript.info, Node: Escape Sequences, Next: Input Filters, Prev: Selecting Pages, Up: Advanced Usage 4.2 Escape Sequences ====================  File: enscript.info, Node: Input Filters, Next: Slice Printing, Prev: Escape Sequences, Up: Advanced Usage 4.3 Input Filters =================  File: enscript.info, Node: Slice Printing, Next: PostScript Printer Controlling, Prev: Input Filters, Up: Advanced Usage 4.4 Slice Printing ==================  File: enscript.info, Node: PostScript Printer Controlling, Next: Pass-Through Mode, Prev: Slice Printing, Up: Advanced Usage 4.5 PostScript Printer Controlling ==================================  File: enscript.info, Node: Pass-Through Mode, Prev: PostScript Printer Controlling, Up: Advanced Usage 4.6 Pass-Through Mode =====================  File: enscript.info, Node: Configuration Files, Next: Customization, Prev: Advanced Usage, Up: Top 5 Configuration Files *********************  File: enscript.info, Node: Customization, Next: The states Program, Prev: Configuration Files, Up: Top 6 Customization *************** * Menu: * Output Media:: * User-Defined Fancy Headers::  File: enscript.info, Node: Output Media, Next: User-Defined Fancy Headers, Prev: Customization, Up: Customization 6.1 Output Media ================  File: enscript.info, Node: User-Defined Fancy Headers, Prev: Output Media, Up: Customization 6.2 User-Defined Fancy Headers ==============================  File: enscript.info, Node: The states Program, Next: Writing New Highlighting Definitions, Prev: Customization, Up: Top 7 The `states' Program **********************  File: enscript.info, Node: Writing New Highlighting Definitions, Next: Index, Prev: The states Program, Up: Top 8 Writing New Highlighting Definitions ************************************** The highlighting works in three separate phases. First, the "highlighing rules" process the input stream and parse it into logical components. The components are called "faces". A face presents one logical component of the input language, for example, a keyword, a comment, etc.. The enscript's highlighting model defines the following faces: bold italic bold_italic Hard-coded faces for the bold, italic, and bold-italice text types. These faces define the exact presentation of the face font, so the style files have very little power in customizing their outlook. These faces should be avoided as much as possible. comment A comment, normally in a programming language. function_name A function name. The function names are normally recognized from function definitions, not from an use of the function. variable_name A variable name. The variable names are normally recognized from function, type, and variable definitions. keyword A reserved keyword. Normally, all occurrences of the keywords are recognized. reference A reference to another location in a file or to another file or resource. For example, in the C-language, the goto targets are references. string A string literal. builtin A builtin function or property. Normally, all occurrences of the builtins are recognized. type A type specifier. The types are normally recognized from function, type, and variable definitions. As the second step, the "output style" specifies how the faces are presented in the generated output. Each face has the following properties: fontname The PostScript font name of the the font that is used for the face. This property is used only for the PostScript outputs. boldp A boolean flag which tells whether the face should be printed in bold font. This property is used for all output languages except for the PostScript which uses the fontname property. italicp A boolean flag which tells whether the face shuold be printed with italic font. This property is used for all output languages except for the PostScript which uses the fontname property. fg_color The foreground color of the face. bg_color The background color of the face. This property is not implemented on all output languages. Finally, the "output language" describes how the faces and other text are presented in the output language. The output language defines a set of functions which are called to generate the output. * Menu: * Highlighting Rules:: * Styles:: * Output Languages::  File: enscript.info, Node: Highlighting Rules, Next: Styles, Prev: Writing New Highlighting Definitions, Up: Writing New Highlighting Definitions 8.1 Highlighting Rules ======================  File: enscript.info, Node: Styles, Next: Output Languages, Prev: Highlighting Rules, Up: Writing New Highlighting Definitions 8.2 Styles ==========  File: enscript.info, Node: Output Languages, Prev: Styles, Up: Writing New Highlighting Definitions 8.3 Output Languages ==================== -- Function: map_color (r, g, b) -- Function: language_print (string) -- Function: language_symbol (symbol) -- Function: header () -- Function: trailer () -- Function: face_on (face) -- Function: face_off (face) -- Variable: LANGUAGE_SPECIALS The following example creates a new output language `simple_html' that creates simple HTML outputs. The output language is defined in a file called `lang_simple_html.st'. The file must define a state called `lang_simple_html'. The file can be located in any directory that is in the load path of the states program. The output language definitions are defined in the `BEGIN' block of the `lang_simple_html' state. Please, note that the `BEGIN' block is ended with a `return'-statement. This statement will return the control to the calling state that is the start state of the enscript highlight program. If the `return'-statement was omitted, the states would start processing the input with the `lang_simple_html' state which is obviously a wrong choice. state lang_simple_html { BEGIN { sub map_color (r, g, b) { return sprintf ("#%02X%02X%02X", r, g, b); } sub language_print (str) { str = regsuball (str, /\&/, "&"); str = regsuball (str, //, ">"); str = regsuball (str, /\"/, """); print (str); } sub language_symbol (symbol) { return false; } sub header () { print ("\n\nSimple HTML Output\n"); print ("\n\n"); } sub trailer () { print ("\n\n"); } sub fase_on (face) { if (face(boldp]) print (""); if (face(italicp]) print (""); if (face[fg_color]) print (""); } sub face_off (face) { if (face[fg_color]) print (""); if (face[italicp]) print (""); if (face[boldp]) print (""); } LANGUAGE_SPECIALS = /[<>\&\"]/; return; } }  File: enscript.info, Node: Index, Next: Documentation License, Prev: Writing New Highlighting Definitions, Up: Top Index ***** [index] * Menu: * face_off: Output Languages. (line 19) * face_on: Output Languages. (line 17) * header: Output Languages. (line 13) * language_print: Output Languages. (line 9) * LANGUAGE_SPECIALS: Output Languages. (line 21) * language_symbol: Output Languages. (line 11) * map_color: Output Languages. (line 7) * trailer: Output Languages. (line 15)  File: enscript.info, Node: Documentation License, Prev: Index, Up: Top Appendix A Documentation License ******************************** Version 1.3, 3 November 2008 Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. `http://fsf.org/' Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. 0. PREAMBLE The purpose of this License is to make a manual, textbook, or other functional and useful document "free" in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others. This License is a kind of "copyleft", which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software. We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference. 1. APPLICABILITY AND DEFINITIONS This License applies to any manual or other work, in any medium, that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. Such a notice grants a world-wide, royalty-free license, unlimited in duration, to use that work under the conditions stated herein. The "Document", below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as "you". You accept the license if you copy, modify or distribute the work in a way requiring permission under copyright law. A "Modified Version" of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language. A "Secondary Section" is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document's overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (Thus, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them. The "Invariant Sections" are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License. If a section does not fit the above definition of Secondary then it is not allowed to be designated as Invariant. The Document may contain zero Invariant Sections. If the Document does not identify any Invariant Sections then there are none. The "Cover Texts" are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License. A Front-Cover Text may be at most 5 words, and a Back-Cover Text may be at most 25 words. A "Transparent" copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, that is suitable for revising the document straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup, or absence of markup, has been arranged to thwart or discourage subsequent modification by readers is not Transparent. An image format is not Transparent if used for any substantial amount of text. A copy that is not "Transparent" is called "Opaque". Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML, PostScript or PDF designed for human modification. Examples of transparent image formats include PNG, XCF and JPG. Opaque formats include proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machine-generated HTML, PostScript or PDF produced by some word processors for output purposes only. The "Title Page" means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, "Title Page" means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text. The "publisher" means any person or entity that distributes copies of the Document to the public. A section "Entitled XYZ" means a named subunit of the Document whose title either is precisely XYZ or contains XYZ in parentheses following text that translates XYZ in another language. (Here XYZ stands for a specific section name mentioned below, such as "Acknowledgements", "Dedications", "Endorsements", or "History".) To "Preserve the Title" of such a section when you modify the Document means that it remains a section "Entitled XYZ" according to this definition. The Document may include Warranty Disclaimers next to the notice which states that this License applies to the Document. These Warranty Disclaimers are considered to be included by reference in this License, but only as regards disclaiming warranties: any other implication that these Warranty Disclaimers may have is void and has no effect on the meaning of this License. 2. VERBATIM COPYING You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3. You may also lend copies, under the same conditions stated above, and you may publicly display copies. 3. COPYING IN QUANTITY If you publish printed copies (or copies in media that commonly have printed covers) of the Document, numbering more than 100, and the Document's license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects. If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages. If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a computer-network location from which the general network-using public has access to download using public-standard network protocols a complete Transparent copy of the Document, free of added material. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public. It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document. 4. MODIFICATIONS You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version: A. Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission. B. List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has fewer than five), unless they release you from this requirement. C. State on the Title page the name of the publisher of the Modified Version, as the publisher. D. Preserve all the copyright notices of the Document. E. Add an appropriate copyright notice for your modifications adjacent to the other copyright notices. F. Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below. G. Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document's license notice. H. Include an unaltered copy of this License. I. Preserve the section Entitled "History", Preserve its Title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section Entitled "History" in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence. J. Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the "History" section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission. K. For any section Entitled "Acknowledgements" or "Dedications", Preserve the Title of the section, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein. L. Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles. M. Delete any section Entitled "Endorsements". Such a section may not be included in the Modified Version. N. Do not retitle any existing section to be Entitled "Endorsements" or to conflict in title with any Invariant Section. O. Preserve any Warranty Disclaimers. If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version's license notice. These titles must be distinct from any other section titles. You may add a section Entitled "Endorsements", provided it contains nothing but endorsements of your Modified Version by various parties--for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard. You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one. The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version. 5. COMBINING DOCUMENTS You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice, and that you preserve all their Warranty Disclaimers. The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work. In the combination, you must combine any sections Entitled "History" in the various original documents, forming one section Entitled "History"; likewise combine any sections Entitled "Acknowledgements", and any sections Entitled "Dedications". You must delete all sections Entitled "Endorsements." 6. COLLECTIONS OF DOCUMENTS You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects. You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document. 7. AGGREGATION WITH INDEPENDENT WORKS A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, is called an "aggregate" if the copyright resulting from the compilation is not used to limit the legal rights of the compilation's users beyond what the individual works permit. When the Document is included in an aggregate, this License does not apply to the other works in the aggregate which are not themselves derivative works of the Document. If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one half of the entire aggregate, the Document's Cover Texts may be placed on covers that bracket the Document within the aggregate, or the electronic equivalent of covers if the Document is in electronic form. Otherwise they must appear on printed covers that bracket the whole aggregate. 8. TRANSLATION Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License, and all the license notices in the Document, and any Warranty Disclaimers, provided that you also include the original English version of this License and the original versions of those notices and disclaimers. In case of a disagreement between the translation and the original version of this License or a notice or disclaimer, the original version will prevail. If a section in the Document is Entitled "Acknowledgements", "Dedications", or "History", the requirement (section 4) to Preserve its Title (section 1) will typically require changing the actual title. 9. TERMINATION You may not copy, modify, sublicense, or distribute the Document except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, or distribute it is void, and will automatically terminate your rights under this License. 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, receipt of a copy of some or all of the same material does not give you any rights to use it. 10. FUTURE REVISIONS OF THIS LICENSE The Free Software Foundation may publish new, revised versions of the GNU Free Documentation 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. See `http://www.gnu.org/copyleft/'. Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License "or any later version" applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation. If the Document specifies that a proxy can decide which future versions of this License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Document. 11. RELICENSING "Massive Multiauthor Collaboration Site" (or "MMC Site") means any World Wide Web server that publishes copyrightable works and also provides prominent facilities for anybody to edit those works. A public wiki that anybody can edit is an example of such a server. A "Massive Multiauthor Collaboration" (or "MMC") contained in the site means any set of copyrightable works thus published on the MMC site. "CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0 license published by Creative Commons Corporation, a not-for-profit corporation with a principal place of business in San Francisco, California, as well as future copyleft versions of that license published by that same organization. "Incorporate" means to publish or republish a Document, in whole or in part, as part of another Document. An MMC is "eligible for relicensing" if it is licensed under this License, and if all works that were first published under this License somewhere other than this MMC, and subsequently incorporated in whole or in part into the MMC, (1) had no cover texts or invariant sections, and (2) were thus incorporated prior to November 1, 2008. The operator of an MMC Site may republish an MMC contained in the site under CC-BY-SA on the same site at any time before August 1, 2009, provided the MMC is eligible for relicensing. ADDENDUM: How to use this License for your documents ==================================================== To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page: Copyright (C) YEAR YOUR NAME. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled ``GNU Free Documentation License''. If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, replace the "with...Texts." line with this: with the Invariant Sections being LIST THEIR TITLES, with the Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. If you have Invariant Sections without Cover Texts, or some other combination of the three, merge those two alternatives to suit the situation. If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software.  Tag Table: Node: Top685 Node: Introduction1112 Node: Invoking Enscript1262 Node: Basic Printing1406 Node: Input Encodings1648 Node: Selecting Fonts1804 Node: Page Headers1958 Node: Page Handling2104 Node: Page Orientation2323 Node: N-up Printing2482 Node: Fitting Text to Page2642 Node: Highlighting2791 Node: Different Output Languages2954 Node: Advanced Usage3119 Node: Selecting Pages3406 Node: Escape Sequences3563 Node: Input Filters3721 Node: Slice Printing3872 Node: PostScript Printer Controlling4039 Node: Pass-Through Mode4242 Node: Configuration Files4396 Node: Customization4547 Node: Output Media4748 Node: User-Defined Fancy Headers4904 Node: The states Program5066 Node: Writing New Highlighting Definitions5240 Node: Highlighting Rules8080 Node: Styles8280 Node: Output Languages8436 Node: Index10947 Node: Documentation License11688  End Tag Table enscript-1.6.5.90/docs/stamp-vti0000644000175000017500000000015111606344235013322 00000000000000@set UPDATED 13 January 2009 @set UPDATED-MONTH January 2009 @set EDITION 1.6.5.90 @set VERSION 1.6.5.90 enscript-1.6.5.90/docs/clean-nroff.pl0000755000175000017500000000076111132443251014204 00000000000000#!/usr/local/bin/perl -w sub skip_lines { ($count) = @_; while ($count > 0) { if (!<>) { last; } $count--; } if ($count > 0) { return 0; } return 1; } sub print_lines { ($count) = @_; while ($count > 0) { $line = <>; if (!$line) { last; } print $line; $count--; } if ($count > 0) { return 0; } return 1; } # Header. print_lines(7); # Process file. while (1) { if (!print_lines(52) || !skip_lines(14)) { last; } } enscript-1.6.5.90/docs/mdate-sh0000755000175000017500000001275111606344073013114 00000000000000#!/bin/sh # Get modification time of a file or directory and pretty-print it. scriptversion=2009-04-28.21; # UTC # Copyright (C) 1995, 1996, 1997, 2003, 2004, 2005, 2007, 2009 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, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # This file is maintained in Automake, please report # bugs to or send patches to # . 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 # Avoid user/group names that might have spaces, when possible. if ls -n /dev/null 1>/dev/null 2>&1; then ls_command="$ls_command -n" fi # A `ls -l' line looks as follows on OS/2. # drwxrwx--- 0 Aug 11 2001 foo # This differs from Unix, which adds ownership information. # drwxrwx--- 2 root root 4096 Aug 11 2001 foo # # To find the date, we split the line on spaces and iterate on words # until we find a month. This cannot work with files whose owner is a # user named `Jan', or `Feb', etc. However, it's unlikely that `/' # will be owned by a user whose name is a month. So we first look at # the extended ls output of the root directory to decide how many # words should be skipped to get the date. # On HPUX /bin/sh, "set" interprets "-rw-r--r--" as options, so the "x" below. set x`$ls_command /` # Find which argument is the month. month= command= until test $month do 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-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: enscript-1.6.5.90/docs/Makefile.in0000644000175000017500000006334011606344073013531 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 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@ # # Automakefile for the enscript documentation. # Copyright (c) 1998-1999 Markku Rossi # # Author: Markku Rossi # # # Enscript is free software: you can redistribute 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. # # Enscript is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # # along with Enscript. If not, see . # VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = docs DIST_COMMON = $(enscript_TEXINFOS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/stamp-vti \ $(srcdir)/version.texi mdate-sh texinfo.tex ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc2.m4 \ $(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intdiv0.m4 $(top_srcdir)/m4/intl.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/intmax.m4 \ $(top_srcdir)/m4/inttypes-pri.m4 \ $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/lcmessage.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/lock.m4 \ $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/printf-posix.m4 \ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/size_max.m4 \ $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/uintmax_t.m4 \ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/wchar_t.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xsize.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = INFO_DEPS = $(srcdir)/enscript.info am__TEXINFO_TEX_DIR = $(srcdir) DVIS = enscript.dvi PDFS = enscript.pdf PSS = enscript.ps HTMLS = enscript.html TEXINFOS = enscript.texi TEXI2DVI = texi2dvi TEXI2PDF = $(TEXI2DVI) --pdf --batch MAKEINFOHTML = $(MAKEINFO) --html AM_MAKEINFOHTMLFLAGS = $(AM_MAKEINFOFLAGS) DVIPS = dvips am__installdirs = "$(DESTDIR)$(infodir)" "$(DESTDIR)$(man1dir)" am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' man1dir = $(mandir)/man1 NROFF = nroff MANS = $(man_MANS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GENCAT = @GENCAT@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GLIBC2 = @GLIBC2@ GLIBC21 = @GLIBC21@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ HAVE_ASPRINTF = @HAVE_ASPRINTF@ HAVE_POSIX_PRINTF = @HAVE_POSIX_PRINTF@ HAVE_SNPRINTF = @HAVE_SNPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WPRINTF = @HAVE_WPRINTF@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLBISON = @INTLBISON@ INTLLIBS = @INTLLIBS@ INTLOBJS = @INTLOBJS@ INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTHREAD = @LIBTHREAD@ LTLIBC = @LTLIBC@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ MAKEINFO = @MAKEINFO@ MEDIA = @MEDIA@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ POSUB = @POSUB@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ PSLEVEL = @PSLEVEL@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SPOOLER = @SPOOLER@ STRIP = @STRIP@ U = @U@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WINDRES = @WINDRES@ WOE32 = @WOE32@ WOE32DLL = @WOE32DLL@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ YACC = @YACC@ YFLAGS = @YFLAGS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ 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@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ info_TEXINFOS = enscript.texi enscript_TEXINFOS = fdl-1.3.texi man_MANS = enscript.1 states.1 CLEANFILES = $(man_MANS) EXTRA_DIST = ChangeLog.old enscript.man states.man FAQ.html \ clean-nroff.pl texinfo.tex SUFFIXES = .1 .man all: all-am .SUFFIXES: .SUFFIXES: .1 .man .dvi .html .info .pdf .ps .texi $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu docs/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 $(am__aclocal_m4_deps): .texi.info: restore=: && backupdir="$(am__leading_dot)am$$$$" && \ am__cwd=`pwd` && $(am__cd) $(srcdir) && \ rm -rf $$backupdir && mkdir $$backupdir && \ if ($(MAKEINFO) --version) >/dev/null 2>&1; then \ for f in $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]; do \ if test -f $$f; then mv $$f $$backupdir; restore=mv; else :; fi; \ done; \ else :; fi && \ cd "$$am__cwd"; \ if $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \ -o $@ $<; \ then \ rc=0; \ $(am__cd) $(srcdir); \ else \ rc=$$?; \ $(am__cd) $(srcdir) && \ $$restore $$backupdir/* `echo "./$@" | sed 's|[^/]*$$||'`; \ fi; \ rm -rf $$backupdir; exit $$rc .texi.dvi: 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)/enscript.info: enscript.texi $(srcdir)/version.texi $(enscript_TEXINFOS) enscript.dvi: enscript.texi $(srcdir)/version.texi $(enscript_TEXINFOS) enscript.pdf: enscript.texi $(srcdir)/version.texi $(enscript_TEXINFOS) enscript.html: enscript.texi $(srcdir)/version.texi $(enscript_TEXINFOS) $(srcdir)/version.texi: $(srcdir)/stamp-vti $(srcdir)/stamp-vti: enscript.texi $(top_srcdir)/configure @(dir=.; test -f ./enscript.texi || dir=$(srcdir); \ set `$(SHELL) $(srcdir)/mdate-sh $$dir/enscript.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 .dvi.ps: TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ $(DVIPS) -o $@ $< uninstall-dvi-am: @$(NORMAL_UNINSTALL) @list='$(DVIS)'; test -n "$(dvidir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(dvidir)/$$f'"; \ rm -f "$(DESTDIR)$(dvidir)/$$f"; \ done uninstall-html-am: @$(NORMAL_UNINSTALL) @list='$(HTMLS)'; test -n "$(htmldir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " rm -rf '$(DESTDIR)$(htmldir)/$$f'"; \ rm -rf "$(DESTDIR)$(htmldir)/$$f"; \ done uninstall-info-am: @$(PRE_UNINSTALL) @if test -d '$(DESTDIR)$(infodir)' && \ (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'"; \ if install-info --info-dir="$(DESTDIR)$(infodir)" --remove "$(DESTDIR)$(infodir)/$$relfile"; \ then :; else test ! -f "$(DESTDIR)$(infodir)/$$relfile" || exit 1; fi; \ done; \ else :; fi @$(NORMAL_UNINSTALL) @list='$(INFO_DEPS)'; \ for file in $$list; do \ relfile=`echo "$$file" | sed 's|^.*/||'`; \ relfile_i=`echo "$$relfile" | sed 's|\.info$$||;s|$$|.i|'`; \ (if test -d "$(DESTDIR)$(infodir)" && cd "$(DESTDIR)$(infodir)"; then \ echo " cd '$(DESTDIR)$(infodir)' && rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]"; \ rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]; \ else :; fi); \ done uninstall-pdf-am: @$(NORMAL_UNINSTALL) @list='$(PDFS)'; test -n "$(pdfdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(pdfdir)/$$f'"; \ rm -f "$(DESTDIR)$(pdfdir)/$$f"; \ done uninstall-ps-am: @$(NORMAL_UNINSTALL) @list='$(PSS)'; test -n "$(psdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(psdir)/$$f'"; \ rm -f "$(DESTDIR)$(psdir)/$$f"; \ done dist-info: $(INFO_DEPS) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ list='$(INFO_DEPS)'; \ for base in $$list; do \ case $$base in \ $(srcdir)/*) base=`echo "$$base" | sed "s|^$$srcdirstrip/||"`;; \ esac; \ if test -f $$base; then d=.; else d=$(srcdir); fi; \ base_i=`echo "$$base" | sed 's|\.info$$||;s|$$|.i|'`; \ for file in $$d/$$base $$d/$$base-[0-9] $$d/$$base-[0-9][0-9] $$d/$$base_i[0-9] $$d/$$base_i[0-9][0-9]; do \ if test -f $$file; then \ relfile=`expr "$$file" : "$$d/\(.*\)"`; \ test -f "$(distdir)/$$relfile" || \ cp -p $$file "$(distdir)/$$relfile"; \ else :; fi; \ done; \ done mostlyclean-aminfo: -rm -rf enscript.aux enscript.cp enscript.cps enscript.fn enscript.ky \ enscript.kys enscript.log enscript.pg enscript.pgs \ enscript.tmp enscript.toc enscript.tp enscript.tps \ enscript.vr clean-aminfo: -test -z "enscript.dvi enscript.pdf enscript.ps enscript.html" \ || rm -rf enscript.dvi enscript.pdf enscript.ps enscript.html maintainer-clean-aminfo: @list='$(INFO_DEPS)'; for i in $$list; do \ i_i=`echo "$$i" | sed 's|\.info$$||;s|$$|.i|'`; \ echo " rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]"; \ rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]; \ done install-man1: $(man_MANS) @$(NORMAL_INSTALL) test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)" @list=''; test -n "$(man1dir)" || exit 0; \ { for i in $$list; do echo "$$i"; done; \ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ sed -n '/\.1[a-z]*$$/p'; \ } | while read p; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; echo "$$p"; \ done | \ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ sed 'N;N;s,\n, ,g' | { \ list=; while read file base inst; do \ if test "$$base" = "$$inst"; then list="$$list $$file"; else \ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \ fi; \ done; \ for i in $$list; do echo "$$i"; done | $(am__base_list) | \ while read files; do \ test -z "$$files" || { \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \ done; } uninstall-man1: @$(NORMAL_UNINSTALL) @list=''; test -n "$(man1dir)" || exit 0; \ files=`{ for i in $$list; do echo "$$i"; done; \ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ sed -n '/\.1[a-z]*$$/p'; \ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ test -z "$$files" || { \ echo " ( cd '$(DESTDIR)$(man1dir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(man1dir)" && rm -f $$files; } tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @list='$(MANS)'; if test -n "$$list"; then \ list=`for p in $$list; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \ if test -n "$$list" && \ grep 'ab help2man is required to generate this page' $$list >/dev/null; then \ echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \ grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \ echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \ echo " typically \`make maintainer-clean' will remove them" >&2; \ exit 1; \ else :; fi; \ else :; fi @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" distdir="$(distdir)" \ dist-info check-am: all-am check: check-am all-am: Makefile $(INFO_DEPS) $(MANS) installdirs: for dir in "$(DESTDIR)$(infodir)" "$(DESTDIR)$(man1dir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(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 . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-aminfo clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: $(DVIS) html: html-am html-am: $(HTMLS) info: info-am info-am: $(INFO_DEPS) install-data-am: install-info-am install-man install-dvi: install-dvi-am install-dvi-am: $(DVIS) @$(NORMAL_INSTALL) test -z "$(dvidir)" || $(MKDIR_P) "$(DESTDIR)$(dvidir)" @list='$(DVIS)'; test -n "$(dvidir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(dvidir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(dvidir)" || exit $$?; \ done install-exec-am: install-html: install-html-am install-html-am: $(HTMLS) @$(NORMAL_INSTALL) test -z "$(htmldir)" || $(MKDIR_P) "$(DESTDIR)$(htmldir)" @list='$(HTMLS)'; list2=; test -n "$(htmldir)" || list=; \ for p in $$list; do \ if test -f "$$p" || test -d "$$p"; then d=; else d="$(srcdir)/"; fi; \ $(am__strip_dir) \ if test -d "$$d$$p"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(htmldir)/$$f'"; \ $(MKDIR_P) "$(DESTDIR)$(htmldir)/$$f" || exit 1; \ echo " $(INSTALL_DATA) '$$d$$p'/* '$(DESTDIR)$(htmldir)/$$f'"; \ $(INSTALL_DATA) "$$d$$p"/* "$(DESTDIR)$(htmldir)/$$f" || exit $$?; \ else \ list2="$$list2 $$d$$p"; \ fi; \ done; \ test -z "$$list2" || { echo "$$list2" | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(htmldir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(htmldir)" || exit $$?; \ done; } install-info: install-info-am install-info-am: $(INFO_DEPS) @$(NORMAL_INSTALL) test -z "$(infodir)" || $(MKDIR_P) "$(DESTDIR)$(infodir)" @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ list='$(INFO_DEPS)'; test -n "$(infodir)" || list=; \ for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ esac; \ if test -f $$file; then d=.; else d=$(srcdir); fi; \ file_i=`echo "$$file" | sed 's|\.info$$||;s|$$|.i|'`; \ for ifile in $$d/$$file $$d/$$file-[0-9] $$d/$$file-[0-9][0-9] \ $$d/$$file_i[0-9] $$d/$$file_i[0-9][0-9] ; do \ if test -f $$ifile; then \ echo "$$ifile"; \ else : ; fi; \ done; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(infodir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(infodir)" || exit $$?; done @$(POST_INSTALL) @if (install-info --version && \ install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \ list='$(INFO_DEPS)'; test -n "$(infodir)" || list=; \ for file in $$list; do \ relfile=`echo "$$file" | sed 's|^.*/||'`; \ echo " install-info --info-dir='$(DESTDIR)$(infodir)' '$(DESTDIR)$(infodir)/$$relfile'";\ install-info --info-dir="$(DESTDIR)$(infodir)" "$(DESTDIR)$(infodir)/$$relfile" || :;\ done; \ else : ; fi install-man: install-man1 install-pdf: install-pdf-am install-pdf-am: $(PDFS) @$(NORMAL_INSTALL) test -z "$(pdfdir)" || $(MKDIR_P) "$(DESTDIR)$(pdfdir)" @list='$(PDFS)'; test -n "$(pdfdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pdfdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(pdfdir)" || exit $$?; done install-ps: install-ps-am install-ps-am: $(PSS) @$(NORMAL_INSTALL) test -z "$(psdir)" || $(MKDIR_P) "$(DESTDIR)$(psdir)" @list='$(PSS)'; test -n "$(psdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(psdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(psdir)" || exit $$?; done installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-aminfo \ maintainer-clean-generic maintainer-clean-vti mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-aminfo mostlyclean-generic mostlyclean-vti pdf: pdf-am pdf-am: $(PDFS) ps: ps-am ps-am: $(PSS) uninstall-am: uninstall-dvi-am uninstall-html-am uninstall-info-am \ uninstall-man uninstall-pdf-am uninstall-ps-am uninstall-man: uninstall-man1 .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-aminfo clean-generic \ dist-info distclean distclean-generic distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-man1 install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-aminfo maintainer-clean-generic \ maintainer-clean-vti mostlyclean mostlyclean-aminfo \ mostlyclean-generic mostlyclean-vti pdf pdf-am ps ps-am \ uninstall uninstall-am uninstall-dvi-am uninstall-html-am \ uninstall-info-am uninstall-man uninstall-man1 \ uninstall-pdf-am uninstall-ps-am enscript.man.html: enscript.1 nroff -man $(srcdir)/enscript.1 | ./clean-nroff.pl > enscript.tmp enscript -E --color -q -Whtml -penscript.man.html enscript.tmp rm -f enscript.tmp .man.1: sed 's%@DATADIR@%$(datadir)%g; s%@media@%@MEDIA@%g; s%@SYSCONFDIR@%$(sysconfdir)%g' \ $< > $@ # 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: enscript-1.6.5.90/docs/version.texi0000644000175000017500000000015111606344235014033 00000000000000@set UPDATED 13 January 2009 @set UPDATED-MONTH January 2009 @set EDITION 1.6.5.90 @set VERSION 1.6.5.90 enscript-1.6.5.90/INSTALL0000644000175000017500000003633211606344074011567 00000000000000Installation Instructions ************************* Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. This file is offered as-is, without warranty of any kind. Basic Installation ================== Briefly, the shell commands `./configure; make; make install' should configure, build, and install this package. The following more-detailed instructions are generic; see the `README' file for instructions specific to this package. Some packages provide this `INSTALL' file but do not implement all of the features documented below. The lack of an optional feature in a given package is not necessarily a bug. More recommendations for GNU packages can be found in *note Makefile Conventions: (standards)Makefile Conventions. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a `Makefile' in each directory of the package. It may also create one or more `.h' files containing system-dependent definitions. Finally, it creates a shell script `config.status' that you can run in the future to recreate the current configuration, and a file `config.log' containing compiler output (useful mainly for debugging `configure'). It can also use an optional file (typically called `config.cache' and enabled with `--cache-file=config.cache' or simply `-C') that saves the results of its tests to speed up reconfiguring. Caching is disabled by default to prevent problems with accidental use of stale cache files. If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail diffs or instructions to the address given in the `README' so they can be considered for the next release. If you are using the cache, and at some point `config.cache' contains results you don't want to keep, you may remove or edit it. The file `configure.ac' (or `configure.in') is used to create `configure' by a program called `autoconf'. You need `configure.ac' if you want to change it or regenerate `configure' using a newer version of `autoconf'. The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type `./configure' to configure the package for your system. Running `configure' might take a while. While running, it prints some messages telling which features it is checking for. 2. Type `make' to compile the package. 3. Optionally, type `make check' to run any self-tests that come with the package, generally using the just-built uninstalled binaries. 4. Type `make install' to install the programs and any data files and documentation. When installing into a prefix owned by root, it is recommended that the package be configured and built as a regular user, and only the `make install' phase executed with root privileges. 5. Optionally, type `make installcheck' to repeat any self-tests, but this time using the binaries in their final installed location. This target does not install anything. Running this target as a regular user, particularly if the prior `make install' required root privileges, verifies that the installation completed correctly. 6. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is also a `make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. 7. Often, you can also type `make uninstall' to remove the installed files again. In practice, not all packages have tested that uninstallation works correctly, even though it is required by the GNU Coding Standards. 8. Some packages, particularly those that use Automake, provide `make distcheck', which can by used by developers to test that all other targets like `make install' and `make uninstall' work correctly. This target is generally not run by end users. Compilers and Options ===================== Some systems require unusual options for compilation or linking that the `configure' script does not know about. Run `./configure --help' for details on some of the pertinent environment variables. You can give `configure' initial values for configuration parameters by setting variables in the command line or in the environment. Here is an example: ./configure CC=c99 CFLAGS=-g LIBS=-lposix *Note Defining Variables::, for more details. Compiling For Multiple Architectures ==================================== You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their own directory. To do this, you can use GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. This is known as a "VPATH" build. With a non-GNU `make', it is safer to compile the package for one architecture at a time in the source code directory. After you have installed the package for one architecture, use `make distclean' before reconfiguring for another architecture. On MacOS X 10.5 and later systems, you can create libraries and executables that work on multiple system types--known as "fat" or "universal" binaries--by specifying multiple `-arch' options to the compiler but only a single `-arch' option to the preprocessor. Like this: ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ CPP="gcc -E" CXXCPP="g++ -E" This is not guaranteed to produce working output in all cases, you may have to build one architecture at a time and combine the results using the `lipo' tool if you have problems. Installation Names ================== By default, `make install' installs the package's commands under `/usr/local/bin', include files under `/usr/local/include', etc. You can specify an installation prefix other than `/usr/local' by giving `configure' the option `--prefix=PREFIX', where PREFIX must be an absolute file name. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you pass the option `--exec-prefix=PREFIX' to `configure', the package uses PREFIX as the prefix for installing programs and libraries. Documentation and other data files still use the regular prefix. In addition, if you use an unusual directory layout you can give options like `--bindir=DIR' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories you can set and what kinds of files go in them. In general, the default for these options is expressed in terms of `${prefix}', so that specifying just `--prefix' will affect all of the other directory specifications that were not explicitly provided. The most portable way to affect installation locations is to pass the correct locations to `configure'; however, many packages provide one or both of the following shortcuts of passing variable assignments to the `make install' command line to change installation locations without having to reconfigure or recompile. The first method involves providing an override variable for each affected directory. For example, `make install prefix=/alternate/directory' will choose an alternate location for all directory configuration variables that were expressed in terms of `${prefix}'. Any directories that were specified during `configure', but not in terms of `${prefix}', must each be overridden at install time for the entire installation to be relocated. The approach of makefile variable overrides for each directory variable is required by the GNU Coding Standards, and ideally causes no recompilation. However, some platforms have known limitations with the semantics of shared libraries that end up requiring recompilation when using this method, particularly noticeable in packages that use GNU Libtool. The second method involves providing the `DESTDIR' variable. For example, `make install DESTDIR=/alternate/directory' will prepend `/alternate/directory' before all installation names. The approach of `DESTDIR' overrides is not required by the GNU Coding Standards, and does not work on platforms that have drive letters. On the other hand, it does better at avoiding recompilation issues, and works well even when some directory options were not specified in terms of `${prefix}' at `configure' time. Optional Features ================= If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving `configure' the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE is something like `gnu-as' or `x' (for the X Window System). The `README' should mention any `--enable-' and `--with-' options that the package recognizes. For packages that use the X Window System, `configure' can usually find the X include and library files automatically, but if it doesn't, you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. Some packages offer the ability to configure how verbose the execution of `make' will be. For these packages, running `./configure --enable-silent-rules' sets the default to minimal output, which can be overridden with `make V=1'; while running `./configure --disable-silent-rules' sets the default to verbose, which can be overridden with `make V=0'. Particular systems ================== On HP-UX, the default C compiler is not ANSI C compatible. If GNU CC is not installed, it is recommended to use the following options in order to use an ANSI C compiler: ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" and if that doesn't work, install pre-built binaries of GCC for HP-UX. On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot parse its `' header file. The option `-nodtk' can be used as a workaround. If GNU CC is not installed, it is therefore recommended to try ./configure CC="cc" and if that doesn't work, try ./configure CC="cc -nodtk" On Solaris, don't put `/usr/ucb' early in your `PATH'. This directory contains several dysfunctional programs; working variants of these programs are available in `/usr/bin'. So, if you need `/usr/ucb' in your `PATH', put it _after_ `/usr/bin'. On Haiku, software installed for all users goes in `/boot/common', not `/usr/local'. It is recommended to use the following options: ./configure --prefix=/boot/common Specifying the System Type ========================== There may be some features `configure' cannot figure out automatically, but needs to determine by the type of machine the package will run on. Usually, assuming the package is built to be run on the _same_ architectures, `configure' can figure that out, but if it prints a message saying it cannot guess the machine type, give it the `--build=TYPE' option. TYPE can either be a short name for the system type, such as `sun4', or a canonical name which has the form: CPU-COMPANY-SYSTEM where SYSTEM can have one of these forms: OS KERNEL-OS See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't need to know the machine type. If you are _building_ compiler tools for cross-compiling, you should use the option `--target=TYPE' to select the type of system they will produce code for. If you want to _use_ a cross compiler, that generates code for a platform different from the build platform, you should specify the "host" platform (i.e., that on which the generated programs will eventually be run) with `--host=TYPE'. Sharing Defaults ================ If you want to set default values for `configure' scripts to share, you can create a site shell script called `config.site' that gives default values for variables like `CC', `cache_file', and `prefix'. `configure' looks for `PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site' if it exists. Or, you can set the `CONFIG_SITE' environment variable to the location of the site script. A warning: not all `configure' scripts look for a site script. Defining Variables ================== Variables not defined in a site shell script can be set in the environment passed to `configure'. However, some packages may run configure again during the build, and the customized values of these variables may be lost. In order to avoid this problem, you should set them in the `configure' command line, using `VAR=value'. For example: ./configure CC=/usr/local2/bin/gcc causes the specified `gcc' to be used as the C compiler (unless it is overridden in the site shell script). Unfortunately, this technique does not work for `CONFIG_SHELL' due to an Autoconf bug. Until the bug is fixed you can use this workaround: CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash `configure' Invocation ====================== `configure' recognizes the following options to control how it operates. `--help' `-h' Print a summary of all of the options to `configure', and exit. `--help=short' `--help=recursive' Print a summary of the options unique to this package's `configure', and exit. The `short' variant lists options used only in the top level, while the `recursive' variant lists options also present in any nested packages. `--version' `-V' Print the version of Autoconf used to generate the `configure' script, and exit. `--cache-file=FILE' Enable the cache: use and save the results of the tests in FILE, traditionally `config.cache'. FILE defaults to `/dev/null' to disable caching. `--config-cache' `-C' Alias for `--cache-file=config.cache'. `--quiet' `--silent' `-q' Do not print messages saying which checks are being made. To suppress all normal output, redirect it to `/dev/null' (any error messages will still be shown). `--srcdir=DIR' Look for the package's source code in directory DIR. Usually `configure' can determine that directory automatically. `--prefix=DIR' Use DIR as the installation prefix. *note Installation Names:: for more details, including other options available for fine-tuning the installation locations. `--no-create' `-n' Run the configure checks, but stop before creating any output files. `configure' also accepts some other, not widely useful, options. Run `configure --help' for more details. enscript-1.6.5.90/ABOUT-NLS0000644000175000017500000022532611606344056011770 000000000000001 Notes 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 free software 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 on translations can 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. 1.1 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'. 1.2 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 included GNU `gettext' 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 not be 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 usually have 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. 1.3 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. If you happen to have the `LC_ALL' or some other `LC_xxx' environment variables set, you should unset them before setting `LANG', otherwise the setting of `LANG' will not have the desired effect. 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 language 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'. Special advice for Norwegian users: The language code for Norwegian bokma*l changed from `no' to `nb' recently (in 2003). During the transition period, while some message catalogs for this language are installed under `nb' and some older ones under `no', it's recommended for Norwegian users to set `LANGUAGE' to `nb:no' so that both newer and older translations are used. 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. 1.4 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://translationproject.org/', in the "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 `coordinator@translationproject.org' 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 skills are praised more than programming skills, here. 1.5 Available Packages ====================== Languages are not equally supported in all packages. The following matrix shows the current state of internationalization, as of November 2007. 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 af am ar az be bg bs ca cs cy da de el en en_GB eo +----------------------------------------------------+ Compendium | [] [] [] [] | a2ps | [] [] [] [] [] | aegis | () | ant-phone | () | anubis | [] | ap-utils | | aspell | [] [] [] [] [] | bash | [] | bfd | | bibshelf | [] | binutils | | bison | [] [] | bison-runtime | [] | bluez-pin | [] [] [] [] [] | cflow | [] | clisp | [] [] [] | console-tools | [] [] | coreutils | [] [] [] [] | cpio | | cpplib | [] [] [] | cryptonit | [] | dialog | | diffutils | [] [] [] [] [] [] | doodle | [] | e2fsprogs | [] [] | enscript | [] [] [] [] | fetchmail | [] [] () [] [] | findutils | [] | findutils_stable | [] [] [] | flex | [] [] [] | fslint | | gas | | gawk | [] [] [] | gcal | [] | gcc | [] | gettext-examples | [] [] [] [] [] | gettext-runtime | [] [] [] [] [] | gettext-tools | [] [] | gip | [] | gliv | [] [] | glunarclock | [] | gmult | [] [] | gnubiff | () | gnucash | [] [] () () [] | gnuedu | | gnulib | [] | gnunet | | gnunet-gtk | | gnutls | [] | gpe-aerial | [] [] | gpe-beam | [] [] | gpe-calendar | | gpe-clock | [] [] | gpe-conf | [] [] | gpe-contacts | | gpe-edit | [] | gpe-filemanager | | gpe-go | [] | gpe-login | [] [] | gpe-ownerinfo | [] [] | gpe-package | | gpe-sketchbook | [] [] | gpe-su | [] [] | gpe-taskmanager | [] [] | gpe-timesheet | [] | gpe-today | [] [] | gpe-todo | | gphoto2 | [] [] [] [] | gprof | [] [] | gpsdrive | | gramadoir | [] [] | grep | [] [] | gretl | () | gsasl | | gss | | gst-plugins-bad | [] [] | gst-plugins-base | [] [] | gst-plugins-good | [] [] [] | gst-plugins-ugly | [] [] | gstreamer | [] [] [] [] [] [] [] | gtick | () | gtkam | [] [] [] [] | gtkorphan | [] [] | gtkspell | [] [] [] [] | gutenprint | [] | hello | [] [] [] [] [] | herrie | [] | hylafax | | idutils | [] [] | indent | [] [] [] [] | iso_15924 | | iso_3166 | [] [] [] [] [] [] [] [] [] [] [] | iso_3166_2 | | iso_4217 | [] [] [] | iso_639 | [] [] [] [] | jpilot | [] | jtag | | jwhois | | kbd | [] [] [] [] | keytouch | [] [] | keytouch-editor | [] | keytouch-keyboa... | [] | latrine | () | ld | [] | leafpad | [] [] [] [] [] | libc | [] [] [] [] | libexif | [] | libextractor | [] | libgpewidget | [] [] [] | libgpg-error | [] | libgphoto2 | [] [] | libgphoto2_port | [] [] | libgsasl | | libiconv | [] [] | libidn | [] [] [] | lifelines | [] () | lilypond | [] | lingoteach | | lprng | | lynx | [] [] [] [] | m4 | [] [] [] [] | mailfromd | | mailutils | [] | make | [] [] | man-db | [] [] [] | minicom | [] [] [] | nano | [] [] [] | opcodes | [] | parted | [] [] | pilot-qof | | popt | [] [] [] | psmisc | [] | pwdutils | | qof | | radius | [] | recode | [] [] [] [] [] [] | rpm | [] | screem | | scrollkeeper | [] [] [] [] [] [] [] [] | sed | [] [] [] | shared-mime-info | [] [] [] [] () [] [] [] | sharutils | [] [] [] [] [] [] | shishi | | skencil | [] () | solfege | | soundtracker | [] [] | sp | [] | system-tools-ba... | [] [] [] [] [] [] [] [] [] | tar | [] [] | texinfo | [] [] [] | tin | () () | tuxpaint | [] [] [] [] [] [] | unicode-han-tra... | | unicode-transla... | | util-linux | [] [] [] [] | util-linux-ng | [] [] [] [] | vorbis-tools | [] | wastesedge | () | wdiff | [] [] [] [] | wget | [] [] [] | xchat | [] [] [] [] [] [] [] | xkeyboard-config | [] | xpad | [] [] [] | +----------------------------------------------------+ af am ar az be bg bs ca cs cy da de el en en_GB eo 6 0 2 1 8 26 2 40 48 2 56 88 15 1 15 18 es et eu fa fi fr ga gl gu he hi hr hu id is it +--------------------------------------------------+ Compendium | [] [] [] [] [] | a2ps | [] [] [] () | aegis | | ant-phone | [] | anubis | [] | ap-utils | [] [] | aspell | [] [] [] | bash | [] | bfd | [] [] | bibshelf | [] [] [] | binutils | [] [] [] | bison | [] [] [] [] [] [] | bison-runtime | [] [] [] [] [] | bluez-pin | [] [] [] [] [] | cflow | [] | clisp | [] [] | console-tools | | coreutils | [] [] [] [] [] [] | cpio | [] [] [] | cpplib | [] [] | cryptonit | [] | dialog | [] [] [] | diffutils | [] [] [] [] [] [] [] [] [] | doodle | [] [] | e2fsprogs | [] [] [] | enscript | [] [] [] | fetchmail | [] | findutils | [] [] [] | findutils_stable | [] [] [] [] | flex | [] [] [] | fslint | | gas | [] [] | gawk | [] [] [] [] () | gcal | [] [] | gcc | [] | gettext-examples | [] [] [] [] [] [] [] | gettext-runtime | [] [] [] [] [] [] | gettext-tools | [] [] [] [] | gip | [] [] [] [] | gliv | () | glunarclock | [] [] [] | gmult | [] [] [] | gnubiff | () () | gnucash | () () () | gnuedu | [] | gnulib | [] [] [] | gnunet | | gnunet-gtk | | gnutls | | gpe-aerial | [] [] | gpe-beam | [] [] | gpe-calendar | | gpe-clock | [] [] [] [] | gpe-conf | [] | gpe-contacts | [] [] | gpe-edit | [] [] [] [] | gpe-filemanager | [] | gpe-go | [] [] [] | gpe-login | [] [] [] | gpe-ownerinfo | [] [] [] [] [] | gpe-package | [] | gpe-sketchbook | [] [] | gpe-su | [] [] [] [] | gpe-taskmanager | [] [] [] | gpe-timesheet | [] [] [] [] | gpe-today | [] [] [] [] | gpe-todo | [] | gphoto2 | [] [] [] [] [] | gprof | [] [] [] [] [] | gpsdrive | [] | gramadoir | [] [] | grep | [] [] [] | gretl | [] [] [] () | gsasl | [] [] | gss | [] [] | gst-plugins-bad | [] [] [] [] | gst-plugins-base | [] [] [] [] | gst-plugins-good | [] [] [] [] [] | gst-plugins-ugly | [] [] [] [] | gstreamer | [] [] [] | gtick | [] [] [] | gtkam | [] [] [] [] | gtkorphan | [] [] | gtkspell | [] [] [] [] [] [] [] | gutenprint | [] | hello | [] [] [] [] [] [] [] [] [] [] [] [] [] | herrie | [] | hylafax | | idutils | [] [] [] [] [] | indent | [] [] [] [] [] [] [] [] [] [] | iso_15924 | [] | iso_3166 | [] [] [] [] [] [] [] [] [] [] [] [] [] | iso_3166_2 | [] | iso_4217 | [] [] [] [] [] [] | iso_639 | [] [] [] [] [] [] | jpilot | [] [] | jtag | [] | jwhois | [] [] [] [] [] | kbd | [] [] | keytouch | [] [] [] | keytouch-editor | [] | keytouch-keyboa... | [] [] | latrine | [] [] | ld | [] [] [] [] | leafpad | [] [] [] [] [] [] | libc | [] [] [] [] [] | libexif | [] | libextractor | [] | libgpewidget | [] [] [] [] [] | libgpg-error | [] | libgphoto2 | [] [] [] | libgphoto2_port | [] [] | libgsasl | [] [] | libiconv | [] [] [] | libidn | [] [] | lifelines | () | lilypond | [] [] [] | lingoteach | [] [] [] | lprng | | lynx | [] [] [] | m4 | [] [] [] [] | mailfromd | | mailutils | [] [] | make | [] [] [] [] [] [] [] [] | man-db | [] | minicom | [] [] [] [] | nano | [] [] [] [] [] [] [] | opcodes | [] [] [] [] | parted | [] [] [] | pilot-qof | | popt | [] [] [] [] | psmisc | [] [] | pwdutils | | qof | [] | radius | [] [] | recode | [] [] [] [] [] [] [] [] | rpm | [] [] | screem | | scrollkeeper | [] [] [] | sed | [] [] [] [] [] | shared-mime-info | [] [] [] [] [] [] | sharutils | [] [] [] [] [] [] [] [] | shishi | [] | skencil | [] [] | solfege | [] | soundtracker | [] [] [] | sp | [] | system-tools-ba... | [] [] [] [] [] [] [] [] [] | tar | [] [] [] [] [] | texinfo | [] [] [] | tin | [] () | tuxpaint | [] [] | unicode-han-tra... | | unicode-transla... | [] [] | util-linux | [] [] [] [] [] [] [] | util-linux-ng | [] [] [] [] [] [] [] | vorbis-tools | | wastesedge | () | wdiff | [] [] [] [] [] [] [] [] | wget | [] [] [] [] [] [] [] [] | xchat | [] [] [] [] [] [] [] | xkeyboard-config | [] [] [] [] | xpad | [] [] [] | +--------------------------------------------------+ es et eu fa fi fr ga gl gu he hi hr hu id is it 85 22 14 2 48 101 61 12 2 8 2 6 53 29 1 52 ja ka ko ku ky lg lt lv mk mn ms mt nb ne nl nn +--------------------------------------------------+ Compendium | [] | a2ps | () [] [] | aegis | () | ant-phone | [] | anubis | [] [] [] | ap-utils | [] | aspell | [] [] | bash | [] | bfd | | bibshelf | [] | binutils | | bison | [] [] [] | bison-runtime | [] [] [] | bluez-pin | [] [] [] | cflow | | clisp | [] | console-tools | | coreutils | [] | cpio | [] | cpplib | [] | cryptonit | [] | dialog | [] [] | diffutils | [] [] [] | doodle | | e2fsprogs | [] | enscript | [] | fetchmail | [] [] | findutils | [] | findutils_stable | [] | flex | [] [] | fslint | | gas | | gawk | [] [] | gcal | | gcc | | gettext-examples | [] [] [] | gettext-runtime | [] [] [] | gettext-tools | [] [] | gip | [] [] | gliv | [] | glunarclock | [] [] | gmult | [] [] [] | gnubiff | | gnucash | () () () | gnuedu | | gnulib | [] [] | gnunet | | gnunet-gtk | | gnutls | [] | gpe-aerial | [] | gpe-beam | [] | gpe-calendar | [] | gpe-clock | [] [] [] | gpe-conf | [] [] [] | gpe-contacts | [] | gpe-edit | [] [] [] | gpe-filemanager | [] [] | gpe-go | [] [] [] | gpe-login | [] [] [] | gpe-ownerinfo | [] [] | gpe-package | [] [] | gpe-sketchbook | [] [] | gpe-su | [] [] [] | gpe-taskmanager | [] [] [] [] | gpe-timesheet | [] | gpe-today | [] [] | gpe-todo | [] | gphoto2 | [] [] | gprof | [] | gpsdrive | [] | gramadoir | () | grep | [] [] | gretl | | gsasl | [] | gss | | gst-plugins-bad | [] | gst-plugins-base | [] | gst-plugins-good | [] | gst-plugins-ugly | [] | gstreamer | [] | gtick | [] | gtkam | [] [] | gtkorphan | [] | gtkspell | [] [] | gutenprint | [] | hello | [] [] [] [] [] [] [] | herrie | [] | hylafax | | idutils | [] | indent | [] [] | iso_15924 | [] | iso_3166 | [] [] [] [] [] [] [] [] | iso_3166_2 | [] | iso_4217 | [] [] [] | iso_639 | [] [] [] [] | jpilot | () () | jtag | | jwhois | [] | kbd | [] | keytouch | [] | keytouch-editor | [] | keytouch-keyboa... | | latrine | [] | ld | | leafpad | [] [] | libc | [] [] [] | libexif | | libextractor | | libgpewidget | [] | libgpg-error | | libgphoto2 | [] | libgphoto2_port | [] | libgsasl | [] | libiconv | [] | libidn | [] [] | lifelines | [] | lilypond | [] | lingoteach | [] | lprng | | lynx | [] [] | m4 | [] [] | mailfromd | | mailutils | | make | [] [] [] | man-db | | minicom | [] | nano | [] [] [] | opcodes | [] | parted | [] [] | pilot-qof | | popt | [] [] [] | psmisc | [] [] [] | pwdutils | | qof | | radius | | recode | [] | rpm | [] [] | screem | [] | scrollkeeper | [] [] [] [] | sed | [] [] | shared-mime-info | [] [] [] [] [] [] [] | sharutils | [] [] | shishi | | skencil | | solfege | () () | soundtracker | | sp | () | system-tools-ba... | [] [] [] [] | tar | [] [] [] | texinfo | [] [] | tin | | tuxpaint | () [] [] | unicode-han-tra... | | unicode-transla... | | util-linux | [] [] | util-linux-ng | [] [] | vorbis-tools | | wastesedge | [] | wdiff | [] [] | wget | [] [] | xchat | [] [] [] [] | xkeyboard-config | [] [] [] | xpad | [] [] [] | +--------------------------------------------------+ ja ka ko ku ky lg lt lv mk mn ms mt nb ne nl nn 51 2 25 3 2 0 6 0 2 2 20 0 11 1 103 6 or pa pl pt pt_BR rm ro ru rw sk sl sq sr sv ta +--------------------------------------------------+ Compendium | [] [] [] [] [] | a2ps | () [] [] [] [] [] [] | aegis | () () | ant-phone | [] [] | anubis | [] [] [] | ap-utils | () | aspell | [] [] [] | bash | [] [] | bfd | | bibshelf | [] | binutils | [] [] | bison | [] [] [] [] [] | bison-runtime | [] [] [] [] [] | bluez-pin | [] [] [] [] [] [] [] [] [] | cflow | [] | clisp | [] | console-tools | [] | coreutils | [] [] [] [] | cpio | [] [] [] | cpplib | [] | cryptonit | [] [] | dialog | [] | diffutils | [] [] [] [] [] [] | doodle | [] [] | e2fsprogs | [] [] | enscript | [] [] [] [] [] | fetchmail | [] [] [] | findutils | [] [] [] | findutils_stable | [] [] [] [] [] [] | flex | [] [] [] [] [] | fslint | [] | gas | | gawk | [] [] [] [] | gcal | [] | gcc | [] [] | gettext-examples | [] [] [] [] [] [] [] [] | gettext-runtime | [] [] [] [] [] [] [] [] | gettext-tools | [] [] [] [] [] [] [] | gip | [] [] [] [] | gliv | [] [] [] [] [] [] | glunarclock | [] [] [] [] [] [] | gmult | [] [] [] [] | gnubiff | () [] | gnucash | () [] | gnuedu | | gnulib | [] [] [] | gnunet | | gnunet-gtk | [] | gnutls | [] [] | gpe-aerial | [] [] [] [] [] [] [] | gpe-beam | [] [] [] [] [] [] [] | gpe-calendar | [] [] [] [] | gpe-clock | [] [] [] [] [] [] [] [] | gpe-conf | [] [] [] [] [] [] [] | gpe-contacts | [] [] [] [] [] | gpe-edit | [] [] [] [] [] [] [] [] [] | gpe-filemanager | [] [] | gpe-go | [] [] [] [] [] [] [] [] | gpe-login | [] [] [] [] [] [] [] [] | gpe-ownerinfo | [] [] [] [] [] [] [] [] | gpe-package | [] [] | gpe-sketchbook | [] [] [] [] [] [] [] [] | gpe-su | [] [] [] [] [] [] [] [] | gpe-taskmanager | [] [] [] [] [] [] [] [] | gpe-timesheet | [] [] [] [] [] [] [] [] | gpe-today | [] [] [] [] [] [] [] [] | gpe-todo | [] [] [] [] | gphoto2 | [] [] [] [] [] [] | gprof | [] [] [] | gpsdrive | [] [] | gramadoir | [] [] | grep | [] [] [] [] | gretl | [] [] [] | gsasl | [] [] [] | gss | [] [] [] [] | gst-plugins-bad | [] [] [] | gst-plugins-base | [] [] | gst-plugins-good | [] [] | gst-plugins-ugly | [] [] [] | gstreamer | [] [] [] [] | gtick | [] | gtkam | [] [] [] [] [] | gtkorphan | [] | gtkspell | [] [] [] [] [] [] [] [] | gutenprint | [] | hello | [] [] [] [] [] [] [] [] | herrie | [] [] [] | hylafax | | idutils | [] [] [] [] [] | indent | [] [] [] [] [] [] [] | iso_15924 | | iso_3166 | [] [] [] [] [] [] [] [] [] [] [] [] [] | iso_3166_2 | | iso_4217 | [] [] [] [] [] [] [] | iso_639 | [] [] [] [] [] [] [] | jpilot | | jtag | [] | jwhois | [] [] [] [] | kbd | [] [] [] | keytouch | [] | keytouch-editor | [] | keytouch-keyboa... | [] | latrine | | ld | [] | leafpad | [] [] [] [] [] [] | libc | [] [] [] [] | libexif | [] [] | libextractor | [] [] | libgpewidget | [] [] [] [] [] [] [] [] | libgpg-error | [] [] [] | libgphoto2 | [] | libgphoto2_port | [] [] [] | libgsasl | [] [] [] [] | libiconv | [] [] [] | libidn | [] [] () | lifelines | [] [] | lilypond | | lingoteach | [] | lprng | [] | lynx | [] [] [] | m4 | [] [] [] [] [] | mailfromd | [] | mailutils | [] [] [] | make | [] [] [] [] | man-db | [] [] [] [] | minicom | [] [] [] [] [] | nano | [] [] [] [] | opcodes | [] [] | parted | [] | pilot-qof | | popt | [] [] [] [] | psmisc | [] [] | pwdutils | [] [] | qof | [] [] | radius | [] [] | recode | [] [] [] [] [] [] [] | rpm | [] [] [] [] | screem | | scrollkeeper | [] [] [] [] [] [] [] | sed | [] [] [] [] [] [] [] [] [] | shared-mime-info | [] [] [] [] [] [] | sharutils | [] [] [] [] | shishi | [] | skencil | [] [] [] | solfege | [] | soundtracker | [] [] | sp | | system-tools-ba... | [] [] [] [] [] [] [] [] [] | tar | [] [] [] [] | texinfo | [] [] [] [] | tin | () | tuxpaint | [] [] [] [] [] [] | unicode-han-tra... | | unicode-transla... | | util-linux | [] [] [] [] | util-linux-ng | [] [] [] [] | vorbis-tools | [] | wastesedge | | wdiff | [] [] [] [] [] [] [] | wget | [] [] [] [] | xchat | [] [] [] [] [] [] [] | xkeyboard-config | [] [] [] | xpad | [] [] [] | +--------------------------------------------------+ or pa pl pt pt_BR rm ro ru rw sk sl sq sr sv ta 0 5 77 31 53 4 58 72 3 45 46 9 45 122 3 tg th tk tr uk ven vi wa xh zh_CN zh_HK zh_TW zu +---------------------------------------------------+ Compendium | [] [] [] [] | 19 a2ps | [] [] [] | 19 aegis | [] | 1 ant-phone | [] [] | 6 anubis | [] [] [] | 11 ap-utils | () [] | 4 aspell | [] [] [] | 16 bash | [] | 6 bfd | | 2 bibshelf | [] | 7 binutils | [] [] [] [] | 9 bison | [] [] [] [] | 20 bison-runtime | [] [] [] [] | 18 bluez-pin | [] [] [] [] [] [] | 28 cflow | [] [] | 5 clisp | | 9 console-tools | [] [] | 5 coreutils | [] [] [] | 18 cpio | [] [] [] [] | 11 cpplib | [] [] [] [] [] | 12 cryptonit | [] | 6 dialog | [] [] [] | 9 diffutils | [] [] [] [] [] | 29 doodle | [] | 6 e2fsprogs | [] [] | 10 enscript | [] [] [] | 16 fetchmail | [] [] | 12 findutils | [] [] [] | 11 findutils_stable | [] [] [] [] | 18 flex | [] [] | 15 fslint | [] | 2 gas | [] | 3 gawk | [] [] [] | 16 gcal | [] | 5 gcc | [] [] [] | 7 gettext-examples | [] [] [] [] [] [] | 29 gettext-runtime | [] [] [] [] [] [] | 28 gettext-tools | [] [] [] [] [] | 20 gip | [] [] | 13 gliv | [] [] | 11 glunarclock | [] [] [] | 15 gmult | [] [] [] [] | 16 gnubiff | [] | 2 gnucash | () [] | 5 gnuedu | [] | 2 gnulib | [] | 10 gnunet | | 0 gnunet-gtk | [] [] | 3 gnutls | | 4 gpe-aerial | [] [] | 14 gpe-beam | [] [] | 14 gpe-calendar | [] [] | 7 gpe-clock | [] [] [] [] | 21 gpe-conf | [] [] [] | 16 gpe-contacts | [] [] | 10 gpe-edit | [] [] [] [] [] | 22 gpe-filemanager | [] [] | 7 gpe-go | [] [] [] [] | 19 gpe-login | [] [] [] [] [] | 21 gpe-ownerinfo | [] [] [] [] | 21 gpe-package | [] | 6 gpe-sketchbook | [] [] | 16 gpe-su | [] [] [] [] | 21 gpe-taskmanager | [] [] [] [] | 21 gpe-timesheet | [] [] [] [] | 18 gpe-today | [] [] [] [] [] | 21 gpe-todo | [] [] | 8 gphoto2 | [] [] [] [] | 21 gprof | [] [] | 13 gpsdrive | [] | 5 gramadoir | [] | 7 grep | [] | 12 gretl | | 6 gsasl | [] [] [] | 9 gss | [] | 7 gst-plugins-bad | [] [] [] | 13 gst-plugins-base | [] [] | 11 gst-plugins-good | [] [] [] [] [] | 16 gst-plugins-ugly | [] [] [] | 13 gstreamer | [] [] [] | 18 gtick | [] [] | 7 gtkam | [] | 16 gtkorphan | [] | 7 gtkspell | [] [] [] [] [] [] | 27 gutenprint | | 4 hello | [] [] [] [] [] | 38 herrie | [] [] | 8 hylafax | | 0 idutils | [] [] | 15 indent | [] [] [] [] [] | 28 iso_15924 | [] [] | 4 iso_3166 | [] [] [] [] [] [] [] [] [] | 54 iso_3166_2 | [] [] | 4 iso_4217 | [] [] [] [] [] | 24 iso_639 | [] [] [] [] [] | 26 jpilot | [] [] [] [] | 7 jtag | [] | 3 jwhois | [] [] [] | 13 kbd | [] [] [] | 13 keytouch | [] | 8 keytouch-editor | [] | 5 keytouch-keyboa... | [] | 5 latrine | [] [] | 5 ld | [] [] [] [] | 10 leafpad | [] [] [] [] [] | 24 libc | [] [] [] | 19 libexif | [] | 5 libextractor | [] | 5 libgpewidget | [] [] [] | 20 libgpg-error | [] | 6 libgphoto2 | [] [] | 9 libgphoto2_port | [] [] [] | 11 libgsasl | [] | 8 libiconv | [] [] | 11 libidn | [] [] | 11 lifelines | | 4 lilypond | [] | 6 lingoteach | [] | 6 lprng | [] | 2 lynx | [] [] [] | 15 m4 | [] [] [] | 18 mailfromd | [] [] | 3 mailutils | [] [] | 8 make | [] [] [] | 20 man-db | [] | 9 minicom | [] | 14 nano | [] [] [] | 20 opcodes | [] [] | 10 parted | [] [] [] | 11 pilot-qof | [] | 1 popt | [] [] [] [] | 18 psmisc | [] [] | 10 pwdutils | [] | 3 qof | [] | 4 radius | [] [] | 7 recode | [] [] [] | 25 rpm | [] [] [] [] | 13 screem | [] | 2 scrollkeeper | [] [] [] [] | 26 sed | [] [] [] [] | 23 shared-mime-info | [] [] [] | 29 sharutils | [] [] [] | 23 shishi | [] | 3 skencil | [] | 7 solfege | [] | 3 soundtracker | [] [] | 9 sp | [] | 3 system-tools-ba... | [] [] [] [] [] [] [] | 38 tar | [] [] [] | 17 texinfo | [] [] [] | 15 tin | | 1 tuxpaint | [] [] [] | 19 unicode-han-tra... | | 0 unicode-transla... | | 2 util-linux | [] [] [] | 20 util-linux-ng | [] [] [] | 20 vorbis-tools | [] [] | 4 wastesedge | | 1 wdiff | [] [] | 23 wget | [] [] [] | 20 xchat | [] [] [] [] | 29 xkeyboard-config | [] [] [] | 14 xpad | [] [] [] | 15 +---------------------------------------------------+ 76 teams tg th tk tr uk ven vi wa xh zh_CN zh_HK zh_TW zu 163 domains 0 3 1 74 51 0 143 21 1 57 7 45 0 2036 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 November 2007 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://translationproject.org/extra/matrix.html'. 1.6 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 the 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 `coordinator@translationproject.org' to make the `.pot' files available to the translation teams. enscript-1.6.5.90/README.DOS0000644000175000017500000000350211132443251012022 00000000000000 How to compile enscript for Windows NT This file documents how I managed to compile enscript to the Windows NT environment. In theory the instructions for Windows NT will be the same as for Windows '95, although I haven't tested it yet. I used Visual C++ 5.0 (Visual Studio Edition) for the Intel Platform and Visual C++ 2.0 for the DEC Alpha Platform. The magic steps were: 1) unpack the distribution 2) copy `compat/config.dos' to the top level directory to the name `config.h': cp compat/config.dos config.h 3) create a new `Console Application' project for enscript.exe 4) add the following files to the project: afmlib\afm.c afmlib\afmparse.c afmlib\deffont.c afmlib\enc_hp8.c afmlib\enc_iso.c afmlib\enc_iso2.c afmlib\enc_iso3.c afmlib\enc_iso4.c afmlib\enc_iso5.c afmlib\enc_koi8.c afmlib\enc_mac.c afmlib\enc_pc.c afmlib\enc_vms.c afmlib\strhash.c compat\gethostname.c compat\getopt.c compat\getopt1.c compat\getpwd.c compat\getuid.c compat\xalloc.c src\main.c src\prt_dos.c src\psgen.c src\util.c 5) define following additional preprocessor symbols: HAVE_CONFIG_H 6) add following additional include directories: \compat \afmlib \src 7) build enscript.exe 8) create a new 'Console Application' project for states.exe 9) add the following files to the project: afmlib\strhash.c compat\alloca.c compat\getopt.c compat\getopt1.c compat\regex.c compat\xalloc.c states\gram.c states\lex.c states\main.c states\prims.c states\process.c states\utils.c 10) define following additional preprocessor symbols: HAVE_CONFIG_H 11) add following additional include directories: \compat \afmlib 12) print enscript-1.6.5.90/states/0000755000175000017500000000000011606344233012107 500000000000000enscript-1.6.5.90/states/tests/0000755000175000017500000000000011606344234013252 500000000000000enscript-1.6.5.90/states/tests/Makefile.am0000644000175000017500000000236011401303365015220 00000000000000# # Makefile.am for states tests. # Copyright (c) 1997 Markku Rossi # # Author: Markku Rossi # # # This file is part of GNU Enscript. # # Enscript is free software: you can redistribute 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. # # Enscript is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Enscript. If not, see . # AUTOMAKE_OPTIONS = TESTS = startrules.test namerules.test optionstate.test \ firstmatch.test longestmatch.test icase.test vardef.test exprs.test \ primconcat.test primfloat.test primgetenv.test primint.test \ primlength.test primlist.test primprint.test primregexp.test \ primregexp_syntax.test primregmatch.test primregsub.test \ primregsuball.test primsprintf.test primstrcmp.test primstring.test \ primstrncmp.test primsubstring.test EXTRA_DIST = ChangeLog.old defs tests.st $(TESTS) enscript-1.6.5.90/states/tests/icase.test0000755000175000017500000000036611132443251015160 00000000000000#!/bin/sh # # Test case-insensitive regular expressions. # . $srcdir/defs || exit 1 cat << EOF >data.in AaAa EOF result=`$states --state=test_case_insensitive_regexps data.in 2>&1` rm -f data.in if test "X$result" != "Xok"; then exit 1; fi enscript-1.6.5.90/states/tests/startrules.test0000755000175000017500000000024711132443252016303 00000000000000#!/bin/sh # # Test startrules. # . $srcdir/defs || exit 1 result=`$states $srcdir/startrules.test 2>&1` if test "X$result" != "Xtest_startrules"; then exit 1; fi enscript-1.6.5.90/states/tests/ChangeLog.old0000644000175000017500000000173711401303365015522 000000000000002008-01-01 Tim Retout * ChangeLog: Run M-x change-log-redate. Add copyright notice at end. 1997-08-27 Markku Rossi * primregexp_syntax.test (result): Added test for regexp syntax tables. * primregexp.test: Added test for regexp() primitive. 1997-07-18 Markku Rossi * icase.test: Added check for case-insensitive regular expressions. 1997-06-06 Markku Rossi * primfloat.test: Added checks for float() primitive. 1997-04-14 Markku Rossi * exprs.test: Added tests for States language's expressions. 1997-02-27 Markku Rossi * Cleaned up tests to work if buildir != srcdir. Redirected stderr to stdout so more errors are caught at the run time. Copyright (C) 1997, 2008 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. enscript-1.6.5.90/states/tests/longestmatch.test0000755000175000017500000000033111132443251016554 00000000000000#!/bin/sh # # Test the longest match. # . $srcdir/defs || exit 1 cat << EOF >data.in aaaab EOF result=`$states --state=test_first_match data.in 2>&1` rm -f data.in if test "X$result" != "Xfail"; then exit 1; fi enscript-1.6.5.90/states/tests/primlength.test0000755000175000017500000000025511132443251016242 00000000000000#!/bin/sh # # Test length() primitive. # . $srcdir/defs || exit 1 result=`$states --state=test_primlength $srcdir/defs 2>&1` if test "X$result" != "X"; then exit 1; fi enscript-1.6.5.90/states/tests/primregsuball.test0000755000175000017500000000026311132443252016741 00000000000000#!/bin/sh # # Test regsuball() primitive. # . $srcdir/defs || exit 1 result=`$states --state=test_primregsuball $srcdir/defs 2>&1` if test "X$result" != "X"; then exit 1; fi enscript-1.6.5.90/states/tests/primstring.test0000755000175000017500000000025511132443252016270 00000000000000#!/bin/sh # # Test string() primitive. # . $srcdir/defs || exit 1 result=`$states --state=test_primstring $srcdir/defs 2>&1` if test "X$result" != "X"; then exit 1; fi enscript-1.6.5.90/states/tests/primstrcmp.test0000755000175000017500000000025511132443252016272 00000000000000#!/bin/sh # # Test strcmp() primitive. # . $srcdir/defs || exit 1 result=`$states --state=test_primstrcmp $srcdir/defs 2>&1` if test "X$result" != "X"; then exit 1; fi enscript-1.6.5.90/states/tests/primconcat.test0000755000175000017500000000025511132443251016230 00000000000000#!/bin/sh # # Test concat() primitive. # . $srcdir/defs || exit 1 result=`$states --state=test_primconcat $srcdir/defs 2>&1` if test "X$result" != "X"; then exit 1; fi enscript-1.6.5.90/states/tests/optionstate.test0000755000175000017500000000031311132443251016435 00000000000000#!/bin/sh # # Test command line option --state. # . $srcdir/defs || exit 1 result=`$states --state=test_optionstate $srcdir/tests.st 2>&1` if test "X$result" != "Xtest_optionstate"; then exit 1; fi enscript-1.6.5.90/states/tests/vardef.test0000755000175000017500000000032111132443252015333 00000000000000#!/bin/sh # # Test command line variable definitions. # . $srcdir/defs || exit 1 result=`$states --state=test_vardef --define=a_variable=ok $srcdir/defs 2>&1` if test "X$result" != "Xok"; then exit 1; fi enscript-1.6.5.90/states/tests/primstrncmp.test0000755000175000017500000000025711132443252016452 00000000000000#!/bin/sh # # Test strncmp() primitive. # . $srcdir/defs || exit 1 result=`$states --state=test_primstrncmp $srcdir/defs 2>&1` if test "X$result" != "X"; then exit 1; fi enscript-1.6.5.90/states/tests/firstmatch.test0000755000175000017500000000032411132443251016232 00000000000000#!/bin/sh # # Test the first match. # . $srcdir/defs || exit 1 cat << EOF >data.in aaaa EOF result=`$states --state=test_first_match data.in 2>&1` rm -f data.in if test "X$result" != "Xok"; then exit 1; fi enscript-1.6.5.90/states/tests/primfloat.test0000755000175000017500000000025311132443251016064 00000000000000#!/bin/sh # # Test float() primitive. # . $srcdir/defs || exit 1 result=`$states --state=test_primfloat $srcdir/defs 2>&1` if test "X$result" != "X"; then exit 1; fi enscript-1.6.5.90/states/tests/primsprintf.test0000755000175000017500000000025711132443252016451 00000000000000#!/bin/sh # # Test sprintf() primitive. # . $srcdir/defs || exit 1 result=`$states --state=test_primsprintf $srcdir/defs 2>&1` if test "X$result" != "X"; then exit 1; fi enscript-1.6.5.90/states/tests/namerules.test0000755000175000017500000000023611132443251016063 00000000000000#!/bin/sh # # Test namerules. # . $srcdir/defs || exit 1 result=`$states $srcdir/tests.st 2>&1` if test "X$result" != "Xtest_namerules"; then exit 1; fi enscript-1.6.5.90/states/tests/primregmatch.test0000755000175000017500000000030011132443252016543 00000000000000#!/bin/sh # # Test regmatch() primitive. # . $srcdir/defs || exit 1 result=`$states --state=test_primregmatch $srcdir/defs 2>&1` if test "X$result" != "X"; then echo $result exit 1; fi enscript-1.6.5.90/states/tests/primregexp_syntax.test0000755000175000017500000000031211132443252017654 00000000000000#!/bin/sh # # Test regexp_syntax() primitive. # . $srcdir/defs || exit 1 result=`$states --state=test_primregexp_syntax $srcdir/defs 2>&1` if test "X$result" != "X"; then echo $result exit 1; fi enscript-1.6.5.90/states/tests/defs0000644000175000017500000000033211132443251014025 00000000000000#!/bin/sh # # Definitions for States testing environment. # states="../states -f $srcdir/tests.st" # Check that $srcdir is set correctly. test -f $srcdir/defs || { echo "defs: installation error" 1>&2 exit 1 } enscript-1.6.5.90/states/tests/Makefile.in0000644000175000017500000003567611606344074015262 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 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.am for states tests. # Copyright (c) 1997 Markku Rossi # # Author: Markku Rossi # # # This file is part of GNU Enscript. # # Enscript is free software: you can redistribute 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. # # Enscript is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Enscript. If not, see . # VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = states/tests DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc2.m4 \ $(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intdiv0.m4 $(top_srcdir)/m4/intl.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/intmax.m4 \ $(top_srcdir)/m4/inttypes-pri.m4 \ $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/lcmessage.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/lock.m4 \ $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/printf-posix.m4 \ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/size_max.m4 \ $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/uintmax_t.m4 \ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/wchar_t.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xsize.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__tty_colors = \ red=; grn=; lgn=; blu=; std= DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GENCAT = @GENCAT@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GLIBC2 = @GLIBC2@ GLIBC21 = @GLIBC21@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ HAVE_ASPRINTF = @HAVE_ASPRINTF@ HAVE_POSIX_PRINTF = @HAVE_POSIX_PRINTF@ HAVE_SNPRINTF = @HAVE_SNPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WPRINTF = @HAVE_WPRINTF@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLBISON = @INTLBISON@ INTLLIBS = @INTLLIBS@ INTLOBJS = @INTLOBJS@ INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTHREAD = @LIBTHREAD@ LTLIBC = @LTLIBC@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ MAKEINFO = @MAKEINFO@ MEDIA = @MEDIA@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ POSUB = @POSUB@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ PSLEVEL = @PSLEVEL@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SPOOLER = @SPOOLER@ STRIP = @STRIP@ U = @U@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WINDRES = @WINDRES@ WOE32 = @WOE32@ WOE32DLL = @WOE32DLL@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ YACC = @YACC@ YFLAGS = @YFLAGS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ 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@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AUTOMAKE_OPTIONS = TESTS = startrules.test namerules.test optionstate.test \ firstmatch.test longestmatch.test icase.test vardef.test exprs.test \ primconcat.test primfloat.test primgetenv.test primint.test \ primlength.test primlist.test primprint.test primregexp.test \ primregexp_syntax.test primregmatch.test primregsub.test \ primregsuball.test primsprintf.test primstrcmp.test primstring.test \ primstrncmp.test primsubstring.test EXTRA_DIST = ChangeLog.old defs tests.st $(TESTS) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu states/tests/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu states/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 $(am__aclocal_m4_deps): 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) '; \ $(am__tty_colors); \ 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`; \ col=$$red; res=XPASS; \ ;; \ *) \ col=$$grn; res=PASS; \ ;; \ esac; \ elif test $$? -ne 77; then \ all=`expr $$all + 1`; \ case " $(XFAIL_TESTS) " in \ *[\ \ ]$$tst[\ \ ]*) \ xfail=`expr $$xfail + 1`; \ col=$$lgn; res=XFAIL; \ ;; \ *) \ failed=`expr $$failed + 1`; \ col=$$red; res=FAIL; \ ;; \ esac; \ else \ skip=`expr $$skip + 1`; \ col=$$blu; res=SKIP; \ fi; \ echo "$${col}$$res$${std}: $$tst"; \ done; \ if test "$$all" -eq 1; then \ tests="test"; \ All=""; \ else \ tests="tests"; \ All="All "; \ fi; \ if test "$$failed" -eq 0; then \ if test "$$xfail" -eq 0; then \ banner="$$All$$all $$tests passed"; \ else \ if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ 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 \ if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ fi; \ fi; \ dashes="$$banner"; \ skipped=""; \ if test "$$skip" -ne 0; then \ if test "$$skip" -eq 1; then \ skipped="($$skip test was not run)"; \ else \ skipped="($$skip tests were not run)"; \ fi; \ 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`; \ if test "$$failed" -eq 0; then \ echo "$$grn$$dashes"; \ else \ echo "$$red$$dashes"; \ fi; \ echo "$$banner"; \ test -z "$$skipped" || echo "$$skipped"; \ test -z "$$report" || echo "$$report"; \ echo "$$dashes$$std"; \ test "$$failed" -eq 0; \ else :; fi distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am $(MAKE) $(AM_MAKEFLAGS) check-TESTS check: check-am all-am: Makefile 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) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: check-am install-am install-strip .PHONY: all all-am check check-TESTS 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-dvi install-dvi-am install-exec install-exec-am \ install-html install-html-am install-info install-info-am \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic pdf pdf-am ps ps-am uninstall \ uninstall-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: enscript-1.6.5.90/states/tests/primint.test0000755000175000017500000000024711132443251015554 00000000000000#!/bin/sh # # Test int() primitive. # . $srcdir/defs || exit 1 result=`$states --state=test_primint $srcdir/defs 2>&1` if test "X$result" != "X"; then exit 1; fi enscript-1.6.5.90/states/tests/primgetenv.test0000755000175000017500000000032011132443251016242 00000000000000#!/bin/sh # # Test getenv() primitive. # . $srcdir/defs || exit 1 STATES_DATA=ok export STATES_DATA result=`$states --state=test_primgetenv $srcdir/defs 2>&1` if test "X$result" != "X"; then exit 1; fi enscript-1.6.5.90/states/tests/primlist.test0000755000175000017500000000025111132443251015730 00000000000000#!/bin/sh # # Test list() primitive. # . $srcdir/defs || exit 1 result=`$states --state=test_primlist $srcdir/defs 2>&1` if test "X$result" != "X"; then exit 1; fi enscript-1.6.5.90/states/tests/primprint.test0000755000175000017500000000026111132443251016112 00000000000000#!/bin/sh # # Test print() primitive. # . $srcdir/defs || exit 1 result=`$states --state=test_primprint $srcdir/defs 2>&1` if test "X$result" != "Xok1/2/"; then exit 1; fi enscript-1.6.5.90/states/tests/exprs.test0000755000175000017500000000025411132443251015231 00000000000000#!/bin/sh # # Test language expressions. # . $srcdir/defs || exit 1 result=`$states --state=test_exprs $srcdir/defs 2>&1` if test "X$result" != "Xok"; then exit 1; fi enscript-1.6.5.90/states/tests/primsubstring.test0000755000175000017500000000026311132443252017001 00000000000000#!/bin/sh # # Test substring() primitive. # . $srcdir/defs || exit 1 result=`$states --state=test_primsubstring $srcdir/defs 2>&1` if test "X$result" != "X"; then exit 1; fi enscript-1.6.5.90/states/tests/tests.st0000644000175000017500000001303111133214772014700 00000000000000/* * States definitions file for States tests. * Copyright (c) 1997 Markku Rossi. * Author: Markku Rossi */ /* * This file is part of GNU Enscript. * * Enscript is free software: you can redistribute 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. * * Enscript is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Enscript. If not, see . */ /* * Initializations. */ a_variable = "false"; start { check_startrules (); check_namerules (); } startrules { /Test startrules\./ test_startrules; } namerules { /\.st$/ test_namerules; } sub ok () { print ("ok"); } sub fail () { print ("fail"); } /* * Test states. */ state skip_input { /[^\\\/]+/ { /* NOP */ } /./ { /* NOP */ } } state test_startrules { BEGIN { print ("test_startrules"); call (skip_input); } } state test_namerules { BEGIN { print ("test_namerules"); call (skip_input); } } state test_optionstate { BEGIN { print ("test_optionstate"); call (skip_input); } } state test_first_match { /aaaa/ { ok (); call (skip_input); } /[ab]+/ { fail (); call (skip_input); } } state test_case_insensitive_regexps { /aaaa/i { ok (); call (skip_input); } } state test_vardef { BEGIN { print (a_variable); call (skip_input); } } state test_exprs { BEGIN { /* Postfix add. */ a = 1; if (a++ != 1) fail (); if (a++ != 2) fail (); if (a++ != 3) fail (); /* Postfix sub. */ if (a-- != 4) fail (); if (a-- != 3) fail (); if (a-- != 2) fail (); /* Prefix add. */ a = 1; if (++a != 2) fail (); if (++a != 3) fail (); /* Prefix sub. */ if (--a != 2) fail (); if (--a != 1) fail (); /* += */ a = 0; a += 5; if (a != 5) fail (); /* -= */ a -= 3; if (a != 2) fail (); /* *= */ a *= 2; if (a != 4) fail (); /* div= */ a div= 2; if (a != 2) fail (); call (skip_input); ok (); } } state test_primconcat { BEGIN { if (strcmp (concat ("a", "b", "c"), "abc") != 0) fail (); call (skip_input); } } state test_primfloat { BEGIN { if (float (/f/) != 0.0) fail (); if (float (list (1, 2, 3)) != 3.0) fail (); if (float ("1") != 1.0) fail (); if (float ("1.34") != 1.34) fail (); if (float ("") != 0.0) fail (); if (float (1) != 1.0) fail (); if (float (1.1) != 1.1) fail (); call (skip_input); } } state test_primgetenv { BEGIN { if (strcmp (getenv ("STATES_DATA"), "ok") != 0) fail (); call (skip_input); } } state test_primint { BEGIN { if (int (/a/) != 0) fail (); if (int (list (1, 2, 3, 4)) != 4) fail (); if (int ("1") != 1) fail (); if (int ("1.5") != 1) fail (); if (int ("") != 0) fail (); if (int (3) != 3) fail (); if (int (1.1) != 1) fail (); call (skip_input); } } state test_primlength { BEGIN { if (length ("ab") != 2) fail (); if (length (list (1, 2, "3", /4/)) != 4) fail (); call (skip_input); } } state test_primlist { BEGIN { lst = list (1, "2", /3/, 4); if (lst[0] != 1) fail (); if (lst[3] != 4) fail (); call (skip_input); } } state test_primprint { BEGIN { print ("ok", 1, /2/); call (skip_input); } } state test_primregexp { BEGIN { re = regexp (".*"); if (!regmatch ("abcd", re)) fail (); call (skip_input); } } state test_primregexp_syntax { BEGIN { regexp_syntax ('-', 'w'); if (regmatch ("foo-bar", /\bbar\b/)) fail (); call (skip_input); } } state test_primregmatch { BEGIN { if (!regmatch ("abcde foo bar", /[a-z]+ ([a-z]+)/)) fail (); if (strcmp ($0, "abcde foo") != 0) fail (); if (strcmp ($1, "foo") != 0) fail (); call (skip_input); } } state test_primregsub { BEGIN { if (strcmp (regsub ("a.b.c.d", /\./, "_"), "a_b.c.d") != 0) fail (); call (skip_input); } } state test_primregsuball { BEGIN { if (strcmp (regsuball ("a.b.c.d", /\./, "_"), "a_b_c_d") != 0) fail (); call (skip_input); } } state test_primsprintf { BEGIN { str = sprintf ("%d: foo %s %.2f", 1, "bar", 1.0); if (strcmp (str, "1: foo bar 1.00") != 0) fail (); call (skip_input); } } state test_primstrcmp { BEGIN { if (strcmp ("a", "b") != -1) fail (); if (strcmp ("aa", "a") != 1) fail (); if (strcmp ("a", "a") != 0) fail (); call (skip_input); } } state test_primstring { BEGIN { str = concat (string (1), string ("a")); if (strcmp (str, "1a") != 0) fail (); call (skip_input); } } state test_primstrncmp { BEGIN { if (strncmp ("a", "ab", 1) != 0) fail (); if (strncmp ("aaa", "a", 2) != 1) fail (); call (skip_input); } } state test_primsubstring { BEGIN { if (strcmp (substring ("abcdef", 1, 3), "bc") != 0) fail (); call (skip_input); } } /* Local Variables: mode: c End: */ enscript-1.6.5.90/states/tests/primregexp.test0000755000175000017500000000027411132443251016254 00000000000000#!/bin/sh # # Test regexp() primitive. # . $srcdir/defs || exit 1 result=`$states --state=test_primregexp $srcdir/defs 2>&1` if test "X$result" != "X"; then echo $result exit 1; fi enscript-1.6.5.90/states/tests/primregsub.test0000755000175000017500000000025511132443252016251 00000000000000#!/bin/sh # # Test regsub() primitive. # . $srcdir/defs || exit 1 result=`$states --state=test_primregsub $srcdir/defs 2>&1` if test "X$result" != "X"; then exit 1; fi enscript-1.6.5.90/states/Makefile.am0000644000175000017500000000300411606317742014065 00000000000000# # Makefile for states. # Copyright (c) 1997-2003 Markku Rossi # # Author: Markku Rossi # # # This file is part of GNU Enscript. # # Enscript is free software: you can redistribute 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. # # Enscript is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Enscript. If not, see . # SUBDIRS = hl tests AUTOMAKE_OPTIONS = bin_PROGRAMS = states states_SOURCES = main.c utils.c prims.c process.c gram.y lex.l states_SOURCES_windelta = \ -gram.y \ +gram.c \ -lex.l \ +lex.c LDADD = ../afmlib/libafm.a @LIBINTL@ ../compat/libcompat.a @LEXLIB@ states_DEPENDENCIES = ../compat/libcompat.a noinst_HEADERS = defs.h gram.h EXTRA_DIST = ChangeLog.old TODO over.in enscript.el localedir = $(datadir)/locale bin_SCRIPTS = over CLEANFILES = $(bin_SCRIPTS) over: $(srcdir)/over.in sed 's%@LIBRARYDIR@%$(datadir)/enscript%g' \ $(srcdir)/over.in > over AM_YFLAGS = -d INCLUDES = -I$(srcdir)/../compat -I$(srcdir)/../afmlib \ -I$(srcdir)/../intl -I../intl -DLOCALEDIR=\"$(localedir)\" INCLUDES_windelta = \ +-I../w32 \ --DLOCALEDIR=\"$(localedir)\" enscript-1.6.5.90/states/ChangeLog.old0000644000175000017500000004426411401303365014362 000000000000002009-12-30 Tim Retout * over.in: Use "$@" instead of $*. 2009-01-13 Tim Retout * gram.c, gram.h, lex.c: Remove generated files from repository. 2008-01-29 Tim Retout * Makefile.am (CLEANFILES): Clean up installed scripts. 2008-01-02 Tim Retout * main.c (main): Use PACKAGE_STRING to produce version string. 2008-01-01 Tim Retout * ChangeLog: Run M-x change-log-redate. Add copyright notice at end. 1999-09-24 Markku Rossi * utils.c (eval_expr): Added filename and linenumber information to some error messages. 1999-07-19 Markku Rossi * enscript.st (mail_body): Changes by Matthew Weigel . * prims.c (prim_sprintf): Implemented `%c' format to print characters. 1999-07-13 Markku Rossi * utils.c (lookup_var): Fixed memory leaks from the special variable lookup. 1999-07-08 Markku Rossi * enscript.st: Highlighting rules for TeX/LaTeX. Thanks to Toni Giorgino . 1999-04-28 Markku Rossi * prims.c (prim_system): Implemented the system() primitive. 1999-04-01 Markku Rossi * enscript.st (namerules): Changed the `.m' suffix from Objective-C to Matlab. Matlab changes Jack Dunn. 1999-03-30 Markku Rossi * enscript.st (ansi_faces): New output language ANSI for color xterms. It should be used with the `tty' style. Thanks to Bill Petheram . 1999-03-12 Markku Rossi * enscript.st (makefile): Added highlighting for Matlab files. Thanks to Jack Dunn . 1999-01-07 Markku Rossi * enscript.st (ksh): In ${#text}, the '#' character does not start a comment. Thanks to Tobias Buchal . (cpp): Allow '&' characters in function names. Thans to Tobias Buchal. 1998-10-28 Markku Rossi * process.c (execute_state): Added initialization for the variable `found'. 1998-10-23 Markku Rossi * Makefile.am: Changed the enscript to use the new highlighting style. The highlighting definition files are in the `hl' sub-directory. * prims.c (prim_calln): New primitive function to call a state by its name. (prim_require_state): New primitive function to check that the arugment state is defined. * main.c (main): Use PATH_SEPARATOR when constructing the path. * utils.c (autoload_file): Fixed to use PATH_SEPARATOR. 1998-10-22 Markku Rossi * enscript.st (vrml): Added built-in nodes. Thanks to James Sørlie. * utils.c (load_states_file): The `global_stmts' must be initialized to list() instead of NULL. (autoload_file): Send verbose messages to stderr. * enscript.st (vrml): Small fixes by James Sørlie. (overstrike_faces): Fixed to handle newline characters correctly in the bold mode. 1998-10-21 Markku Rossi * utils.c: Changed all input file related error messages to use the correct file name. (load_states_file): New function to load a states file. (autoload_file): New function to autoload a feature. (lookup_state): Moved here from process.c. * process.c: The function lookup_state() was moved to utils.c and made global. * main.c: New options -p, --path, -v, --verbose. * defs.h: Added `filename' members to all types that report errors from a source file locations. Added support for state autoloading. * enscript.st (vrml): Small fixes by James Sørlie. * process.c (execute_state): Fixed to execute the BEGIN and END rules of the inherited states. * enscript.st (vrml): Added highlighting for the Virtual Reality Modeling Language (VRML97). Thanks to James Sørlie . 1998-10-15 Markku Rossi * gram.y: Added support for state inheritance. * lex.l: New keyword `extends'. * process.c (lookup_state): New function to lookup a state by its name. This function is extented in the future to support autoloading. (execute_state): Fixed to support state heritance. * utils.c (define_state): Added argument `super' for the super state of our new state. * defs.h (struct state_st): New type for the states. The states can be ~inherited, so we can't use the basic list anymore. 1998-09-17 Markku Rossi * enscript.st: Updated C, C++, and Objective-C mode highlightings to support bitfields in structure definitions. Thanks to Chris Jepeway . 1998-08-03 Markku Rossi * enscript.st: New highlighting rules for: bash, csh, ksh, m4, skill, tcsh, and zsh. Thanks to Jean-Marc Calvez . (fortran): Some fortran highlighting fixes. Thanks to Philip Sterne. 1998-07-01 Markku Rossi * enscript.st (c, cpp, objc): Major updates. Now these are pretty close to Emacs' font-lock mode. (html_faces): Changed type faces to be printed in boldface instead of italic. (start): Changed `type_face_font' to be the `bold_font' instead of `italic_font'. 1998-06-26 Markku Rossi * enscript.st (c): Added support for the C++'ish //-single line comments. 1998-06-23 Markku Rossi * enscript.st (html_faces): Cleaned up the HTML faces. (start): Added support for `LucidaSans-Typewriter' font. * main.c (main): Changed the name of the stdin to "-". 1998-06-22 Markku Rossi * main.c (main): Enscript gives the stdin as an empty argument. Fixed the main() to handle it. 1998-06-11 Markku Rossi * enscript.st: Fixed Python function definition highlighting. Thanks to Andy Eskilsson . 1998-05-29 Markku Rossi * enscript.st (idl): Added highlighting for the CORBA Interface Definition Language IDL. Thanks to Alexis Layton . 1998-05-27 Markku Rossi * enscript.st (javascript): Updated the function name regexp. The function names - and all other symbols - can contain the dollar sign. (javascript): Fixed ''-strings and character constants. 1998-03-09 Markku Rossi * enscript.st (vba): Added highlighting for Visual Basic (for Applications). Thanks to Kevin Grover . Added new output language RTF (Rich Text Format). Thanks to Kevin Grover . (python): Updated Python highlighting rules. 1998-02-27 Markku Rossi * enscript.st (python): Added highlighting for the Python language. Thanks to Andy Eskilsson . (asm): Added highlighting rules for Assembler listings. 1998-02-11 Markku Rossi * enscript.st (javascript): Initialize from_html to 0 at the global level. Now we can print JavaScript files that are not embedded to HTML. 1998-01-29 Markku Rossi * enscript.st (perl): Fixed to handle oddities in OO perl and perl used for cgi scripts. Thanks to Jim Villani. 1998-01-28 Markku Rossi * enscript.st (sh): Added highlighting for bourne shell scripts. Thanks to Juergen Kahrs . (startrules): Fixed perl and awk rules to accept space after `#!'. 1998-01-20 Markku Rossi * enscript.st (awk): Added highlighting for awk. Thanks to Juergen Kahrs . 1997-12-31 Markku Rossi * enscript.st (namerules): Added suffix `.pm' for perl mode. (startrules): Fixed perl mode to recognize files which start with `#!...perl'. 1997-12-30 Markku Rossi * enscript.st: Added colors `cadet blue' and `orchid'. Fixed `emacs' color model to conform the emacs' defaults. (changelog): Updated ChangeLog highlighting to conform emacs. 1997-12-17 Markku Rossi * utils.c (lookup_var): Made special variable `$`' an alias for `$B'. 1997-12-15 Markku Rossi * enscript.st (html_faces): Added navigation links: top, next, prev. (start): New colormode `ifh'. Thanks to Tobias Buchal (diff): Added highlighting for diffs. Thanks to Tobias Buchal. (diffu): Added highlighting for unified diffs. Thanks to Tobias Buchal. (html_annotate_mailtos): Fixed addresses which contain '-' characters. (html_annotate_mailtos): Fixed addresses which contain '.' characters in the user name. 1997-11-13 Markku Rossi * enscript.st (delphi): Added support for C++ style comments. (fortran): Updated Fortran highlighting. Thanks to Keith Refson . 1997-08-27 Markku Rossi * prims.c (prim_regexp_syntax): New primitive to modify regexp engine's character syntax table. * enscript.st (scheme): Improved keyword highlighting, thanks to the new regexp_syntax() primitive which can be used to modify regexp character syntax table. 1997-08-11 Markku Rossi * enscript.st (start): Fixed PostScript font resolving to work with the `Souvenir' font. 1997-07-18 Markku Rossi * lex.l: Implemented case-insensitive regular expressions. 1997-07-16 Markku Rossi * enscript.st (sql): Updated Sybase SQL highlighting rules, thanks to Chris Jack . 1997-07-04 Markku Rossi * utils.c (compile_regexp): New function to handle regular expression compilations. (compile_regexp): Added fastmaps for regexps, this speeds up the processing noticeably. 1997-06-23 Markku Rossi * enscript.st (sql): Added highlighting for SQL language by Chris Jack . * utils.c (lookup_var): Renamed special variable `$`' to `$B'. * enscript.st (perl): Added highlighting for Perl programming language by Jim Villani, Logistics Management Institute (jvillani@lmi.org). 1997-06-10 Markku Rossi * utils.c (lookup_var): New special variable `$.'. (lookup_var): New special variable `$`'. 1997-06-06 Markku Rossi * prims.c (prim_float): New primitive to convert items to float numbers. 1997-06-03 Markku Rossi * enscript.st (c): Improved C pre-processor line highlighting to highlights also string and character constansts. (c): Added highlighting for goto's labels and targets. (c): Added highlighting for function definitions and prototypes. (changelog): Added highlighting for description entries with function name but without file name. (cpp): Added highlighting for goto's labels and targes. (cpp): Added highlighting for function definitions and prototypes. (objc): Added highlighting for goto's labels and targets. 1997-05-20 Markku Rossi * enscript.st (delphi): Added highlighting for Delphi language by Michael Van Canneyt . * main.c (main): Moved the initialization of `ofp' from the variable declaration to main(). 1997-05-02 Markku Rossi * enscript.el (build-re): Added support for case-insensitive regular expressions. * enscript.st (fortran): Added highlighting for Fortran77 language. Re-generated case-insensitive keyword regular expressions with the new build-re function. 1997-04-25 Markku Rossi * enscript.st (pascal): Added highlighting for Pascal language by Michael Van Canneyt . 1997-04-16 Markku Rossi * gram.y: Implemented expressions: +=, -=, *=, div=. 1997-04-14 Markku Rossi * gram.y: Implemented prefix and postfix increment (++) and decrement (--) operators. 1997-04-04 Markku Rossi * enscript.st (java): Added highlighting for Java language by Paul Fisher . (html_faces): Fixed 1.5.0 compatibility bug. 1997-04-03 Markku Rossi * prims.c (prim_range): New primitive to fetch sub-ranges from lists and strings. Changed all primitives' error messages to be in format `FILE:LINE: MESSAGE'. 1997-03-25 Markku Rossi * prims.c (prim_regexp): New primitive to create regular expressions from strings. (prim_split): New primitive to split string to list. 1997-03-21 Markku Rossi * enscript.st (html): Added support for nested scripts. (javascript): Added highlighting for JavaScript. 1997-03-19 Markku Rossi * enscript.st (need_version): New help subroutine to check that a specified version of the states program is in use. (html_faces): Changed HTML output language to co-operate with enscript's new --language option. (passthrough): New state which simply pass its input to output preserving only face specific headers, footers and language specials. * main.c (main): New built-in variable `argv' which holds input file names. 1997-03-17 Markku Rossi * enscript.st (elisp): Added highlighting for Emacs Lisp. (overstrike_faces): New output language `overstrike' for line printers and less by François Pinard. (tcl): Updated Tcl and Tk keywords from Tcl/Tk 8.0a1. Added highlighting for procedure names and variable names. (scheme): Fixed keywords to recognize `set!'. 1997-03-11 Markku Rossi * enscript.st (states): Updated keyword list. Implemented highlighting for built-in functions. Added highlighting for function names. 1997-03-10 Markku Rossi * enscript.st (postscript): Added highlighting for PostScript language by Dave Hylands . Sorted highlighting states according to their names. 1997-03-06 Markku Rossi * enscript.st: Implemented new `variable_name_face' typeface. (c_ppline): Implemented a smarter C preprocessor line highlighting support. Now it should be identical with Emacs's highlight. 1997-03-04 Markku Rossi * enscript.st (ada): Added highlighting for the Ada95 programming language by Rolf Ebert . 1997-03-03 Markku Rossi * enscript.st (start): Cleaned bold, italic and bold-italic font resolving. (makefile): Fixed highlighting to handle nested (){} structures. (scheme): Updated to highlight function names and ':'-started function arguments. 1997-02-27 Markku Rossi * enscript.st: Implemented new type faces: `builtin_face' and `type_face'. (haskell): Added highlighting for the Haskell programming language by Hans-Wolfgang Loidl . Updated highlighting rule guidelines and updated all current rules to obey them. Implemented new documentation state `describe_languages_html' which will create a HTML report about all supported highlighting formats. 1997-02-26 Markku Rossi * Release enscript-1.5.0. 1997-02-21 Markku Rossi * gram.y: Implemented logical operators `not', `and' and `or'. * main.c: New option -W, --warning to set the warning level. * Added test subdirectory and tests for States. 1997-02-19 Markku Rossi * enscript.st (synopsys): Added highlighting for the Synopsys DC Shell scripting language by Brian Silveira (brian@nortel.ca) and Hartley Horwitz (harts@nortel.ca). (synopsys): New synopsys mode with some minor fixes. 1997-02-18 Markku Rossi * enscript.st: Added guidelines for new highlighting rules. (vhdl): Added VHDL highlighting by Brian Silveira (brian@nortel.ca). 1997-02-11 Markku Rossi * enscript.st (verilog): Added new '`' keywords. (verilog): Added highlighting for references of the pre-processor defined things. 1997-02-05 Markku Rossi * prims.c (prim_tointeger): Renamed primitive `tonumber' to `int'. (prim_string): Renamed primitive `tostring' to `string'. (prim_sprintf): New primitive to create formatted strings. * utils.c (eval_expr): Implemented integer and real values and expressions and conversions betweeen them. * prims.c (prim_concat): Renamed primitive `strcat' to `concat'. 1997-02-04 Markku Rossi * prims.c (prim_list): New primitive `list' to create lists. (prim_length): Renamed primitive `strlen' to `length'. * gram.y: Implemented array references and assignments for lists and strings. * lex.l: Implemented C's character constants ('a'). 1997-02-03 Markku Rossi * enscript.st: Added `describe_languages' state which can be used to extract information about the supported --pretty-print languages from the enscript.st file. Added documentation comments (/** */) to all supported languages and file formats. Changed start state resolving to check the startrules before the namerules. Added colors for HTML target. * Fixed bugs encountered with enscript-1.4.4. Updated developement tools: flex-2.5.4 and bison-1.25. 1997-01-31 Markku Rossi * prims.c (prim_prereq): New primitive to check that a recent enough version of States is being used. 1997-01-25 Markku Rossi * enscript.st (changelog): Implemented ChangeLog highlighting. * enscript.el: Emacs lisp commands to help enscript.st editing. * enscript.st (objc): Implemented Objective-C highlighting. Regenerated keyword regular expressions with the Emacs-lisp build-re command. 1997-01-24 Markku Rossi * prims.c: New primitives: regmatch, regsub and regsuball. 1997-01-23 Markku Rossi * prims.c (prim_getenv): New primitive: getenv. * Makefile.am: Moved libcompat.a before libintl.a so intl library can use alloca. * De-ANSI-fied states sources since bison generated gram.c is already in K&R. 1997-01-22 Markku Rossi * Makefile.am: Added many2html script. * enscript.st: Added support for multiple output languages and implemented HTML target for all supported input languages. * gram.y: changed top-level expressions to statements and moved subroutine definition from top-level to statements. This allows conditional subroutine definitions. added tSYMBOL for state rule's expr part. This allows user-definable matches. 1997-01-20 Markku Rossi * enscript.st (tcl): Implemented Tcl highlighting. * defs.h (struct environment_st): Changed procedure call's environment from StringHash to linked list, this gives major speedup. * Version 0.9 of States, this is an early beta. Copyright (C) 1997, 1998, 1999, 2008 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. enscript-1.6.5.90/states/defs.h0000644000175000017500000002030511606320437013121 00000000000000/* * Internal definitions for states. * Copyright (c) 1997-1998 Markku Rossi. * * Author: Markku Rossi */ /* * This file is part of GNU Enscript. * * Enscript is free software: you can redistribute 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. * * Enscript is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Enscript. If not, see . */ #ifndef DEFS_H #define DEFS_H /* * Config stuffs. */ #ifdef HAVE_CONFIG_H #include #endif #include #include #ifndef ___P #if PROTOTYPES #define ___P(protos) protos #else /* no PROTOTYPES */ #define ___P(protos) () #endif /* no PROTOTYPES */ #endif #if STDC_HEADERS #include #include #else /* no STDC_HEADERS */ #if HAVE_STDLIB_H #include #endif #if HAVE_STRING_H #include #endif #ifndef HAVE_STRCHR #define strchr index #define strrchr rindex #endif char *strchr (); char *strrchr (); #ifndef HAVE_STRERROR extern char *strerror ___P ((int)); #endif #ifndef HAVE_MEMMOVE extern void *memmove ___P ((void *, void *, size_t)); #endif #ifndef HAVE_MEMCPY extern void *memcpy ___P ((void *, void *, size_t)); #endif #endif /* no STDC_HEADERS */ #if HAVE_UNISTD_H #include #endif #include #if HAVE_SYS_TYPES_H #include #endif #if HAVE_SYS_STAT_H #include #endif #include "gettext.h" #define _(String) gettext (String) #if HAVE_LC_MESSAGES #include #endif #include "regex.h" #include "xalloc.h" #include "strhash.h" /* * Types and definitions. */ #define RULE_BEGIN ((void *) 0) #define RULE_END ((void *) 1) #define INBUFSIZE (20 * 1024) #define IS_TRUE(n) ((n)->type != nINTEGER || (n)->u.integer != 0) #define REGEXP(regexp) \ ((regexp)->u.re.compiled.fastmap_accurate \ ? (&(regexp)->u.re.compiled) \ : (compile_regexp (regexp), &(regexp)->u.re.compiled)) /* Flags for regular expressions. */ #define fRE_CASE_INSENSITIVE 1 /* Generic linked list. */ struct list_item_st { struct list_item_st *next; void *data; }; typedef struct list_item_st ListItem; struct list_st { ListItem *head; ListItem *tail; }; typedef struct list_st List; /* State. */ struct state_st { char *name; char *super_name; struct state_st *super; List *rules; }; typedef struct state_st State; /* Node. */ typedef enum { nVOID, nSTRING, nREGEXP, nINTEGER, nREAL, nSYMBOL, nARRAY } NodeType; struct node_st { NodeType type; unsigned int refcount; unsigned int linenum; char *filename; union { struct { char *data; unsigned int len; } str; struct { char *data; unsigned int len; unsigned int flags; regex_t compiled; struct re_registers matches; } re; int integer; double real; char *sym; struct { struct node_st **array; unsigned int len; unsigned int allocated; } array; } u; }; typedef struct node_st Node; /* Cons cell. */ struct cons_st { void *car; void *cdr; }; typedef struct cons_st Cons; /* Grammar types. */ typedef enum { eSTRING, eREGEXP, eINTEGER, eREAL, eSYMBOL, eNOT, eAND, eOR, eFCALL, eASSIGN, eADDASSIGN, eSUBASSIGN, eMULASSIGN, eDIVASSIGN, ePOSTFIXADD, ePOSTFIXSUB, ePREFIXADD, ePREFIXSUB, eARRAYASSIGN, eARRAYREF, eQUESTCOLON, eMULT, eDIV, ePLUS, eMINUS, eLT, eGT, eEQ, eNE, eGE, eLE } ExprType; struct expr_st { ExprType type; unsigned int linenum; char *filename; union { Node *node; struct expr_st *not; struct { Node *name; List *args; } fcall; struct { Node *sym; struct expr_st *expr; } assign; struct { struct expr_st *expr1; struct expr_st *expr2; struct expr_st *expr3; } arrayassign; struct { struct expr_st *expr1; struct expr_st *expr2; } arrayref; struct { struct expr_st *cond; struct expr_st *expr1; struct expr_st *expr2; } questcolon; struct { struct expr_st *left; struct expr_st *right; } op; } u; }; typedef struct expr_st Expr; typedef enum { sRETURN, sDEFSUB, sBLOCK, sIF, sEXPR, sWHILE, sFOR } StmtType; struct stmt_st { StmtType type; unsigned int linenum; char *filename; union { Expr *expr; struct { Node *name; Cons *closure; } defsub; struct { Expr *expr; struct stmt_st *then_stmt; struct stmt_st *else_stmt; } stmt_if; struct { Expr *expr; struct stmt_st *body; } stmt_while; struct { Expr *init; Expr *cond; Expr *incr; struct stmt_st *body; } stmt_for; List *block; } u; }; typedef struct stmt_st Stmt; struct environment_st { struct environment_st *next; char *name; Node *val; }; typedef struct environment_st Environment; /* Primitive procedure. */ typedef Node *(*Primitive) ___P ((char *prim_name, List *args, Environment *env, char *filename, unsigned int linenum)); /* Variable definition chain. */ struct variable_definition_st { struct variable_definition_st *next; char *sym; char *val; }; typedef struct variable_definition_st VariableDef; /* Grammar and execution warning levels. */ typedef enum { WARN_LIGHT = 10, WARN_ALL = 100 } WarningLevel; /* * Global variables. */ extern char *program; extern FILE *yyin; extern FILE *ofp; extern char *defs_file; extern unsigned int linenum; extern char *yyin_name; extern WarningLevel warning_level; extern char *path; extern unsigned int verbose; /* Namespaces. */ extern StringHashPtr ns_prims; extern StringHashPtr ns_vars; extern StringHashPtr ns_subs; extern StringHashPtr ns_states; extern List *global_stmts; extern List *start_stmts; extern List *startrules; extern List *namerules; /* Void node value. There is only nvoid instance. */ extern Node *nvoid; extern FILE *ifp; extern char *inbuf; extern unsigned int data_in_buffer; extern unsigned int bufpos; extern int eof_seen; extern char *current_fname; extern unsigned int current_linenum; extern struct re_registers *current_match; extern char *current_match_buf; /* Options. */ extern char *start_state_arg; extern char *start_state; /* * Prototypes for global functions. */ void init_primitives (); /* Parser & lexer. */ int yyparse (); int yylex (); void yyerror ___P ((char *msg)); /* Generic linked list. */ /* Create a new linked list. */ List *list (); /* Add a new element to the beginning of list . */ void list_prepend ___P ((List *list, void *data)); /* Add a new element to the end of list . */ void list_append ___P ((List *list, void *data)); /* Node manipulators. */ Node *node_alloc ___P ((NodeType type)); Node *node_copy ___P ((Node *node)); void node_reference ___P ((Node *node)); void node_free ___P ((Node *node)); void enter_system_variable ___P ((char *name, char *value)); void compile_regexp ___P ((Node *regexp)); /* Grammar constructors. */ Stmt *mk_stmt ___P ((StmtType type, void *arg1, void *arg2, void *arg3, void *arg4)); Expr *mk_expr ___P ((ExprType type, void *arg1, void *arg2, void *arg3)); Cons *cons ___P ((void *car, void *cdr)); void define_state ___P ((Node *sym, Node *super, List *rules)); /* Execution. */ Node *eval_expr ___P ((Expr *expr, Environment *env)); Node *eval_statement ___P ((Stmt *stmt, Environment *env, int *return_seen)); Node *eval_statement_list ___P ((List *lst, Environment *env, int *return_seen)); void process_file ___P ((char *fname)); Node *execute_state ___P ((char *name)); void load_states_file ___P ((char *name)); /* * Lookup state and return its handle. If the state is * undefined, the function tries to autoload it. */ State *lookup_state ___P ((char *name)); #endif /* not DEFS_H */ enscript-1.6.5.90/states/hl/0000755000175000017500000000000011606344234012513 500000000000000enscript-1.6.5.90/states/hl/ada.st0000644000175000017500000000306011132443251013520 00000000000000/** * Name: ada * Description: Ada95 programming language. * Author: Rolf Ebert */ state ada extends HighlightEntry { /* Comments. */ /--/ { comment_face (true); language_print ($0); call (eat_one_line); comment_face (false); } /* String constants. */ /\"/ { string_face (true); language_print ($0); call (c_string); string_face (false); } /* Character constants. */ /'.'|'\\\\.'/ { string_face (true); language_print ($0); string_face (false); } /* Keywords. (build-re '(abort abs abstract accept access 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)) */ /\b(a(b(ort|s(|tract))|cce(pt|ss)|l(iased|l)|nd|rray|t)|b(egin|ody)\ |c(ase|onstant)|d(e(clare|l(ay|ta))|igits|o)\ |e(ls(e|if)|n(d|try)|x(ception|it))|f(or|unction)|g(eneric|oto)\ |i(f|n|s)|l(imited|oop)|mod|n(ew|ot|ull)|o(f|r|thers|ut)\ |p(ackage|r(agma|ivate|o(cedure|tected)))\ |r(a(ise|nge)|e(cord|m|names|queue|turn|verse))\ |s(e(lect|parate)|ubtype)|t(a(gged|sk)|erminate|hen|ype)|u(ntil|se)\ |w(h(en|ile)|ith)|xor)\b/ { keyword_face (true); language_print ($0); keyword_face (false); } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/Makefile.am0000644000175000017500000000317411401303365014465 00000000000000# # Automakefile for the highlighting rules. # Copyright (c) 1998-2003 Markku Rossi # # Author: Markku Rossi # # # Enscript is free software: you can redistribute 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. # # Enscript is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # # along with Enscript. If not, see . # misc = enscript.st describe_languages.st default_faces.st styles = style_emacs.st style_emacs_verbose.st style_ifh.st \ style_a2ps.st style_msvc.st languages = lang_ansi.st lang_enscript.st lang_html.st \ lang_overstrike.st lang_rtf.st lang_texinfo.st highlightings = ada.st asm.st awk.st bash.st c.st c_comment.st \ c_ppline.st c_string.st changelog.st cpp.st csh.st delphi.st diff.st \ diffs.st diffu.st elisp.st fortran.st fortran_pp.st f90.st haskell.st html.st \ idl.st inf.st java.st javascript.st ksh.st m4.st mail.st makefile.st \ matlab.st nroff.st objc.st outline.st pascal.st passthrough.st perl.st \ postscript.st python.st pyrex.st rfc.st scheme.st sh.st skill.st \ sql.st states.st synopsys.st tcl.st tcsh.st tex.st vba.st verilog.st \ vhdl.st vrml.st wmlscript.st zsh.st hldir = $(pkgdatadir)/hl dist_hl_DATA = $(misc) $(styles) $(languages) $(highlightings) EXTRA_DIST = ChangeLog.oldenscript-1.6.5.90/states/hl/synopsys.st0000644000175000017500000002342411132443251014710 00000000000000/** * Name: synopsys * Description: Synopsys dc shell scripting language * * Author: Brian Silveira (brian@nortel.ca) * Hartley Horwitz (hars@nortel.ca) */ state synopsys extends HighlightEntry { /* * Synopsys allows globing...so pick out constructs like * /foo/bar/* and just print them out. i.e. don't treat the * ending like a comment! */ /[A-z0-9_-]\/\*/{ language_print($0); } /* Comments. * Synopsys DC-shell uses C-style comments */ /\/\*/ { comment_face (true); language_print ($0); call (c_comment); comment_face (false); } /* String constants. */ /\"/ { string_face (true); language_print ($0); call (c_string); string_face (false); } /* I use make-regexp in emacs which uses a list of strings to generate a regular expression. (setq synopsys-keywords-enscript '("alias" "all_connected" "analyze" "balance_buffer" "balance_registers" "break" "cd" "change_link" "change_names" "characterize" "check_design" "check_test" "check_timing" "continue" "compile" "copy_design" "create_clock" "drive_of" "echo" "elaborate" "else" "exit" "get_attribute" "get_license" "get_unix_variable" "group" "group_path" "include" "insert_scan" "insert_test" "link" "list_designs" "list_instances" "list_libs" "load_of" "quit" "read" "read_lib" "read_timing" "remove_attribute" "remove_constraint" "remove_design" "remove_input_delay" "remove_lib" "remove_clock" "remove_cell" "remove_license" "remove_output_delay" "remove_unconnected_ports" "rename_design" "reoptimize_design" "report_area" "report_attribute" "report_cell" "report_constraint" "report_design" "report_design_lib" "report_hierarchy" "report_internal_loads" "report_lib" "report_multicycles" "report_net" "report_port" "report_power" "report_reference" "report_resources" "report_test" "report_timing" "reset_design" "set_attribute" "set_boundary_optimization" "set_clock_skew" "set_dont_touch" "set_dont_touch_network" "set_dont_use" "set_drive" "set_driving_cell" "set_equal" "set_disable_timing" "set_false_path" "set_flatten" "set_implementation" "set_fix_hold" "set_input_delay" "set_load" "set_logic_one" "set_logic_zero" "set_max_area" "set_max_capacitance" "set_max_fanout" "set_max_transition" "set_multicycle_path" "set_operating_conditions" "set_output_delay" "set_scan_style" "set_signal_type" "set_structure" "set_test_methodology" "set_unconnected" "set_wire_load" "unalias" "sh" "ungroup" "uniquify" "update_lib" "which" "write" "write_constraints" "write_script" "write_timing" "if" "foreach" "find" "while" "-all" "-all_violators" "-allowed" "-attributes" "-base_name" "-boundary_optimization" "-cell" "-cell_name" "-clock" "-context" "-connections" "-constraints" "-delay" "-design" "-design_name" "-depth" "-drive" "-except" "-f" "-fall_delay" "-flat" "-format" "-from" "-hierarchy" "-hier" "-hold" "-incremental_mapping" "-ideal" "-ignored" "-in_place" "-logic" "-library" "-map_effort" "-mode" "-max_paths" "-max_scan_chain_length" "-no_disable" "-methodology" "-name" "-net" "-new_name" "-none" "-nosplit" "-nworst" "-output" "-path" "-parameters" "-period" "-pin_load" "-propagated" "-reference" "-rise_delay" "-rules" "-skew" "-setup" "-through" "-to" "-type" "-uncertainty" "-plus_uncertainty" "-minus_uncertainty" "-update" "-verify" "-verbose" "-waveform" "-wire_load" "-work" "-weight" "-worst" "actel_qbar_opto" "actel_seq_opto" "auto_link_disable" "auto_link_options" "auto_wire_load_selection" "bc_enable_chaining" "bc_enable_multi_cycle" "bc_enable_speculative_execution" "bc_fsm_coding_style" "bc_time_all_sequential_op_bindings" "bus_extraction_style" "bus_inference_style" "bus_naming_style" "change_names_dont_change_bus_members" "change_names_update_inst_tree" "command_log_file" "company" "compatibility_version" "compile_assume_fully_decoded_three_state_busses" "compile_create_mux_op_hierarchy" "compile_default_critical_range" "compile_disable_area_opt_during_inplace_opt" "compile_disable_hierarchical_inverter_opt" "compile_dont_touch_annotated_cell_during_inplace_opt" "compile_fix_multiple_port_nets" "compile_ignore_area_during_inplace_opt" "compile_ignore_footprint_during_inplace_opt" "compile_implementation_selection" "compile_inplace_changed_list_file_name" "compile_instance_name_prefix" "compile_instance_name_suffix" "compile_mux_no_boundary_optimization" "compile_negative_logic_methodology" "compile_no_new_cells_at_top_level" "compile_ok_to_buffer_during_inplace_opt" "compile_preserve_subdesign_interfaces" "compile_preserve_sync_resets" "compile_update_annotated_delays_during_inplace_opt" "compile_use_fast_delay_mode" "compile_use_low_timing_effort" "context_check_status" "current_design" "current_instance" "dc_shell_status" "default_name_rules" "design_library_file" "designer" "duplicate_ports" "echo_include_commands" "enable_page_mode" "exit_delete_filename_log_file" "filename_log_file" "find_converts_name_lists" "find_ignore_case" "hdl_keep_licenses" "hdl_naming_threshold" "hdl_preferred_license" "hdl_variables" "hdlin_advisor_directory" "hdlin_auto_save_templates" "hdlin_check_no_latch" "hdlin_dont_infer_mux_for_resource_sharing" "hdlin_enable_advisor" "hdlin_ff_always_async_set_reset" "hdlin_ff_always_sync_set_reset" "hdlin_files" "hdlin_hide_resource_line_numbers" "hdlin_infer_mux" "hdlin_keep_feedback" "hdlin_keep_inv_feedback" "hdlin_mux_size_limit" "hdlin_reg_report_length" "hdlin_replace_synthetic" "hdlin_report_inferred_modules" "hdlin_resource_allocation" "hdlin_resource_implementation" "hdlin_source_to_gates_mode" "hdlin_sync_set_reset" "hdlin_synch_set_reset" "hdlin_translate_off_skip_text" "link_force_case" "link_library" "port_complement_naming_style" "reoptimize_design_changed_list_file_name" "sdfin_fall_cell_delay_type" "sdfin_fall_net_delay_type" "sdfin_min_fall_cell_delay" "sdfin_min_fall_net_delay" "sdfin_min_rise_cell_delay" "sdfin_min_rise_net_delay" "sdfin_rise_cell_delay_type" "sdfin_rise_net_delay_type" "sdfin_top_instance_name" "sdfout_allow_non_positive_constraints" "sdfout_min_fall_cell_delay" "sdfout_min_fall_net_delay" "sdfout_min_rise_cell_delay" "sdfout_min_rise_net_delay" "sdfout_time_scale" "sdfout_top_instance_name" "sdfout_write_to_output" "search_path" "shell_prompt" "suppress_errors" "synlib_dont_get_license" "syntax_check_status" "synthetic_library" "target_library" "uniquify_naming_style" "verbose_messages")) */ /\ba(l(ias|l_connected)|nalyze|uto_(link_(disable|options)\ |wire_load_selection))|b(alance_(buffer|registers)\ |c_(enable_(chaining|multi_cycle|speculative_execution)\ |fsm_coding_style|time_all_sequential_op_bindings)|reak\ |us_(extraction_style|inference_style|naming_style))\ |c(d|h(a(nge_(link|names(|_(dont_change_bus_members|update_inst_tree)))\ |racterize)|eck_(design|t(est|iming)))|o(m(mand_log_file|p(a(ny\ |tibility_version)|ile(|_(assume_fully_decoded_three_state_busses\ |create_mux_op_hierarchy|d(efault_critical_range\ |isable_(area_opt_during_inplace_opt|hierarchical_inverter_opt)\ |ont_touch_annotated_cell_during_inplace_opt)|fix_multiple_port_nets\ |i(gnore_(area_during_inplace_opt|footprint_during_inplace_opt)\ |mplementation_selection|n(place_changed_list_file_name\ |stance_name_(prefix|suffix)))|mux_no_boundary_optimization\ |n(egative_logic_methodology|o_new_cells_at_top_level)\ |ok_to_buffer_during_inplace_opt|preserve_s(ubdesign_interfaces\ |ync_resets)|u(pdate_annotated_delays_during_inplace_opt\ |se_(fast_delay_mode|low_timing_effort))))))|nt(ext_check_status|inue)\ |py_design)|reate_clock|urrent_(design|instance))|d(c_shell_status\ |e(fault_name_rules|sign(_library_file|er))|rive_of|uplicate_ports)|e(cho(\ |_include_commands)|l(aborate|se)|nable_page_mode|xit(\ |_delete_filename_log_file))|f(i(lename_log_file|nd(|_(converts_name_lists\ |ignore_case)))|oreach)|g(et_(attribute|license|unix_variable)|roup(\ |_path))|hdl(_(keep_licenses|naming_threshold|preferred_license|variables)\ |in_(a(dvisor_directory|uto_save_templates)|check_no_latch\ |dont_infer_mux_for_resource_sharing|enable_advisor\ |f(f_always_(async_set_reset|sync_set_reset)|iles)\ |hide_resource_line_numbers|infer_mux|keep_(feedback|inv_feedback)\ |mux_size_limit|re(g_report_length|p(lace_synthetic|ort_inferred_modules)\ |source_(allocation|implementation))|s(ource_to_gates_mode|ync(_set_reset\ |h_set_reset))|translate_off_skip_text))|i(f|n(clude|sert_(scan|test)))\ |l(i(nk(|_(force_case|library))|st_(designs|instances|libs))|oad_of)\ |port_complement_naming_style|quit|re(ad(|_(lib|timing))|move_(attribute\ |c(ell|lock|onstraint)|design|input_delay|li(b|cense)|output_delay\ |unconnected_ports)|name_design|optimize_design(|_changed_list_file_name)\ |port_(a(rea|ttribute)|c(ell|onstraint)|design(|_lib)|hierarchy\ |internal_loads|lib|multicycles|net|po(rt|wer)|re(ference|sources)|t(est\ |iming))|set_design)|s(df(in_(fall_(cell_delay_type|net_delay_type)\ |min_(fall_(cell_delay|net_delay)|rise_(cell_delay|net_delay))\ |rise_(cell_delay_type|net_delay_type)|top_instance_name)\ |out_(allow_non_positive_constraints|min_(fall_(cell_delay|net_delay)\ |rise_(cell_delay|net_delay))|t(ime_scale|op_instance_name)\ |write_to_output))|e(arch_path|t_(attribute|boundary_optimization\ |clock_skew|d(isable_timing|ont_(touch(|_network)|use)|riv(e|ing_cell))\ |equal|f(alse_path|ix_hold|latten)|i(mplementation|nput_delay)|lo(ad\ |gic_(one|zero))|m(ax_(area|capacitance|fanout|transition)|ulticycle_path)\ |o(perating_conditions|utput_delay)|s(can_style|ignal_type|tructure)\ |test_methodology|unconnected|wire_load))|h(|ell_prompt)|uppress_errors\ |yn(lib_dont_get_license|t(ax_check_status|hetic_library)))|target_library\ |u(n(alias|group|iquify(|_naming_style))|pdate_lib)|verbose_messages\ |w(hi(ch|le)|rite(|_(constraints|script|timing)))\b/{ keyword_face (true); language_print ($0); keyword_face (false); } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/tcl.st0000644000175000017500000001004511132443251013556 00000000000000/** * Name: tcl * Description: Tcl programming language. * Author: Markku Rossi */ state tcl_comment extends Highlight { /[^\\\\]\n/ { language_print ($0); return; } } state tcl_proc_arglist extends Highlight { /* List of arguments. */ /{/ { language_print ($0); variable_name_face (true); str = match_balanced_block (/{/, /}/); variable_name_face (false); language_print (str); return; } /* Only one argument. */ /[A-Za-z0-9]+/ { variable_name_face (true); language_print ($0); variable_name_face (false); return; } /* No idea what this is??? */ /[.\n]/ { language_print ($0); return; } } state tcl extends HighlightEntry { /* Comments. */ /#/ { comment_face (true); language_print ($0); call (tcl_comment); comment_face (false); } /#\n/ { comment_face (true); language_print ($0); comment_face (false); } /* String constants. */ /\"/ { string_face (true); language_print ($0); call (c_string); string_face (false); } /* Procedure definitions. */ /\b(proc)([ \t]+)([A-Za-z_0-9]+)([ \t]+)/ { /* Keyword `proc'. */ keyword_face (true); language_print ($1); keyword_face (false); /* Middle garbage. */ language_print ($2); /* Function name. */ function_name_face (true); language_print ($3); function_name_face (false); /* Second middle garbage. */ language_print ($4); /* Function argument list. */ call (tcl_proc_arglist); } /* Simple variable reference. */ /(\$)([A-Za-z_0-9]+)/ { language_print ($1); variable_name_face (true); language_print ($2); variable_name_face (false); } /* {}-enclosed variable reference. */ /\${/ { language_print ($0); variable_name_face (true); str = match_balanced_block (/{/, /}/); variable_name_face (false); language_print (str); } /* Keywords. (build-re '( ;; Tcl: Http Tcl after append array bgerror break case catch cd clock concat continue eof error eval exec exit expr fblocked fconfigure file fileevent filename flush for foreach format gets glob global history if incr info interp join lappend library lindex linsert list llength load lose lrange lreplace lsearch lsort open package pid pkg_mkIndex proc puts pwd read regexp regsub rename return scan seek set socket source split string subst switch tclvars tell time trace unknown unset update uplevel upvar vwait while ;; Tk: bell bind bindtags bitmap button canvas checkbutton clipboard destroy entry event focus font frame grab grid image label listbox lower menu menubutton message option options pack photo place radiobutton raise scale scrollbar selection send text tk tk_bindForTraversal tk_bisque tk_chooseColor tk_dialog tk_focusFollowsMouse tk_focusNext tk_focusPrev tk_getOpenFile tk_getSaveFile tk_menuBar tk_messageBox tk_optionMenu tk_popup tk_setPalette tkerror tkvars tkwait toplevel winfo wm )) */ /\b(Http|Tcl|a(fter|ppend|rray)\ |b(ell|gerror|i(nd(|tags)|tmap)|reak|utton)\ |c(a(nvas|se|tch)|d|heckbutton|l(ipboard|ock)|on(cat|tinue))|destroy\ |e(ntry|of|rror|v(al|ent)|x(ec|it|pr))\ |f(blocked|configure|ile(|event|name)|lush|o(cus|nt|r(|each|mat))|rame)\ |g(ets|lob(|al)|r(ab|id))|history|i(f|mage|n(cr|fo|terp))|join\ |l(a(bel|ppend)|i(brary|n(dex|sert)|st(|box))|length|o(ad|se|wer)\ |r(ange|eplace)|s(earch|ort))\ |me(nu(|button)|ssage)|op(en|tion(|s))\ |p(ack(|age)|hoto|id|kg_mkIndex|lace|roc|uts|wd)\ |r(a(diobutton|ise)|e(ad|g(exp|sub)|name|turn))\ |s(c(a(le|n)|rollbar)|e(ek|lection|nd|t)|o(cket|urce)|plit|tring|ubst\ |witch)\ |t(clvars|e(ll|xt)|ime\ |k(\ |_(bi(ndForTraversal|sque)|chooseColor|dialog\ |focus(FollowsMouse|Next|Prev)|get(OpenFile|SaveFile)\ |me(nuBar|ssageBox)|optionMenu|popup|setPalette)\ |error|vars|wait)\ |oplevel|race)\ |u(n(known|set)|p(date|level|var))|vwait|w(hile|info|m))\b/ { keyword_face (true); language_print ($0); keyword_face (false); } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/ChangeLog.old0000644000175000017500000001356611401303415014762 000000000000002009-12-27 Tim Retout * f90.st: New syntax highlighting for Fortran 90 from David Bowler. * enscript.st (namerules): Use f90.st for .f90 files. 2009-01-25 Tim Retout * javascript.st (Highlight): Add basic handling of regexes. 2008-02-03 Tim Retout * Makefile.am (install-data-local): Remove. (uninstall-local): Likewise. (EXTRA_DIST): Likewise. (hldir): New variable for location of highlighting files. (dist_hl_DATA): New variable with previous contents of EXTRA_DIST. 2008-01-29 Tim Retout * Makefile.am (install-data-local): Use $(DESTDIR) in local installation paths, to fix `make distcheck'. (uninstall-local): Likewise. 2008-01-01 Tim Retout * ChangeLog: Add copyright notice at end. * c_ppline.st (c_ppline_comment): New state. (c_ppline, c_ppline_comments_strings_chars, c_ppline_tokensequence): Call c_ppline_comment rather than c_comment. (c_ppline, c_ppline_include, c_ppline_define) (c_ppline_comments_strings_chars, c_ppline_tokensequence): Treat backslash-escaped newlines as continuing the preprocessor line. * c_ppline.st (c_ppline): Move dependency on C rules to top of file, to fix use of CHighlight. * bash.st (bash): Fix highlighting of escaped quote marks. * csh.st (csh): Likewise. * ksh.st (ksh): Likewise. * sh.st (sh): Likewise. * tcsh.st (tcsh): Likewise. * zsh.st (zsh): Likewise. Incorporates and extends original patch for ksh.st and sh.st by Shawn McMahon . 2003-02-27 Markku Rossi * pyrex.st: Highlighting rules for the Pyrex language (Pyrex - a Language for Writing Python Extension Modules). 2000-06-07 Markku Rossi * rfc.st (rfc): Fixed to highlight the RFC keywords, described by the RFC 2119. * enscript.st (highlight_face): New face `highlight' to highlight text some way. 2000-04-19 Markku Rossi * rfc.st: Fixed to recognize also the `[page nn]' page number. 1999-11-20 Markku Rossi * wmlscript.st: Highlighting rules for WMLScript. 1999-09-24 Markku Rossi * fortran.st (fortran_io): Fixed a typo from the debugging messages which halted the fortran_io processing. 1999-09-07 Markku Rossi * describe_languages.st (describe_languages_html): Cleaned up the HTML output. * diffs.st: Highlighting rules for side diff files. Thanks to Tobias Buchal. * fortran_pp.st: Highlighting rules for Fortran 77 with preprocessor. Thanks to Tobias Buchal . 1999-07-19 Markku Rossi * mail.st: Changes by Matthew Weigel . * fortran.st: Changes by Joachim Kaiser . 1999-07-08 Markku Rossi * tex.st: Highlighting rules for TeX/LaTeX. Thanks to Toni Giorgino . * outline.st: Highlighting rules for emacs' outline text. 1999-04-01 Markku Rossi * enscript.st: Changed the `.m' suffix from Objective-C to Matlab. * matlab.st: Minor Matlab mode changes by Jack Dunn. 1999-03-29 Markku Rossi * lang_ansi.st: Added ANSI output language for color outputs on color xterm, etc. Thanks to Bill Petheram . 1999-03-12 Markku Rossi * matlab.st: Highlighting rules for Matlab files. Thanks to Jack Dunn . 1999-02-18 Markku Rossi * inf.st: Highlighting rules for the GUI INF Script language. 1999-01-11 Markku Rossi * rfc.st: Highlighting rules for the RFCs and the Internet Drafts. The `rfc' rule fixes broken documents which have an invalid page break sequence. 1999-01-07 Markku Rossi * cpp.st (c): Accept '&' characters in function names. Thanks to Tobias Buchal. * ksh.st (HighlightEntry): In ${#text}, the '#' character does not start a comment. Thanks to Tobias Buchal . 1998-12-29 Markku Rossi * style_msvc.st: New MS Visual C -style style. 1998-12-22 Markku Rossi * enscript.st (start): Added support for `LucidaTypewriter' font. 1998-12-18 Markku Rossi * html.st (html): Fixed the nested JavaScript script detection to accept all JavaScript versions. The script name detection is also case-insensitive. 1998-10-30 Markku Rossi * lang_texinfo.st (language_symbol): New function. * lang_rtf.st (language_symbol): New function. * lang_overstrike.st (language_symbol): New function. * lang_html.st (language_symbol): New function. * lang_enscript.st (language_symbol): New function to print the language dependent symbols. * enscript.st: New option variable `verbose_highlighting'. The style files can set this to true and some highlighting rules will add some extra highlightings. * c.st: Implemented verbose highlighting where things like &&, ||, etc. are replaced with their mathematical symbols: logical and, logical or, etc. * style_emacs_verbose.st: Emacs style with verbose highlighting. * c.st: Fixed to cooperate with the inherited Objective-C and C++ highlighting rules. * objc.st: Changed to be inherited from the C highlighting rules. * cpp.st: Changed to be inherited from the C highlighting rules. This allows use to re-use code from the C definitions, and RSN, we get the verbose highlightings for free. 1998-10-26 Markku Rossi * style_a2ps.st: New style to imitate a2ps' highlighting. This is incomplete. * Split the old `enscript.st' to about many .st files. They are here. Copyright (C) 1998, 1999, 2000, 2003, 2008 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. enscript-1.6.5.90/states/hl/lang_html.st0000644000175000017500000000520511132443251014743 00000000000000 state lang_html { BEGIN { /* RGB -> HTML color mapper function. */ sub map_color (r, g, b) { return sprintf ("#%02X%02X%02X", r, g, b); } LANGUAGE_SPECIALS = /[<>\&\"]/; sub language_print (str) { str = regsuball (str, /\&/, "&"); str = regsuball (str, //, ">"); str = regsuball (str, /\"/, """); print (str); } sub language_symbol (symbol) { return false; } sub header () { local i; if (current_input_file == 1) { print ("\n"); print ("\n\n"); language_print (document_title); print ("\n\n", color ? "" : "", "\n\n"); if (need_version (1, 5, 1) && int (toc) == 1) { if (length (argv) == 0) argv[0] = "(stdin)"; print ("

Contents

\n
    \n"); for (i = 0; i < length (argv); i = i + 1) print ("
  1. ", argv[i], "\n"); print ("
\n
\n"); } } print ("\n

"); language_print (filename); if (int (num_input_files) > 1) print (" ", current_input_file, "/", num_input_files); print ("

\n"); /* Navigation bar. */ if (need_version (1, 5, 1)) { if (length (argv) >= 2 ) { print ("[
top]"); if (current_input_file == 1) print ("[prev]"); else print ("[prev]"); if (current_input_file == length (argv)) print ("[next]"); else print ("[next]"); } } else print ("[top]"); print ("\n
\n");
      }

    sub trailer ()
      {
	print ("

\n"); if (current_input_file == int (num_input_files)) print ("
Generated by ", "", substring (version, strchr (version, 'G'), length (version)), ".
\n"); } sub face_on (face) { if (face[boldp]) print (""); if (face[italicp]) print (""); if (face[fg_color]) print (""); /* The background color is not supported in HTML. */ } sub face_off (face) { if (face[fg_color]) print (""); if (face[italicp]) print (""); if (face[boldp]) print (""); } return; } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/pyrex.st0000644000175000017500000000115211132443251014142 00000000000000/** * Name: pyrex * Description: Pyrex - a Language for Writing Python Extension Modules * Author: Markku Rossi */ state pyrex extends python { /* Additional keywords. (build-re '( NULL as cdef char ctypedef double enum extern float include int long private public short signed sizeof struct union unsigned void )) */ /\b(NULL|as|c(def|har|typedef)|double|e(num|xtern)|float|in(clude|t)|long\ |p(rivate|ublic)|s(hort|i(gned|zeof)|truct)|un(ion|signed)|void)\b/ { keyword_face(true); language_print($0); keyword_face(false); } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/default_faces.st0000644000175000017500000000170511132443251015564 00000000000000/* * Initialize the default faces. */ sub make_face(ps_font_name, boldp, italicp) { return list(ps_font_name, boldp, italicp, 0, 0); } fontname = 0; boldp = 1; italicp = 2; fg_color = 3; bg_color = 4; state default_faces { BEGIN { face_bold = make_face(bold_font, 1, 0); face_italic = make_face(italic_font, 0, 1); face_bold_italic = make_face(bold_italic_font, 1, 1); face_comment = make_face(italic_font, 0, 1); face_function_name = make_face(bold_font, 1, 0); if (color) face_variable_name = make_face(font, 0, 0); else face_variable_name = make_face(bold_font, 1, 0); face_keyword = make_face(bold_font, 1, 0); face_reference = make_face(bold_font, 1, 0); face_string = make_face(bold_font, 1, 0); face_builtin = make_face(bold_font, 1, 0); face_type = make_face(bold_font, 1, 0); face_highlight = make_face(font, 0, 0); return; } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/skill.st0000644000175000017500000001575511132443251014127 00000000000000/** * Name: skill * Description: Cadence Design Systems lispy language. * Author: Jean-Marc Calvez */ state skill extends HighlightEntry { /* Line Comments (lispish). */ /;/ { comment_face (true); language_print ($0); call (eat_one_line); comment_face (false); } /* Block Comments (C-style) */ /\/\*/ { comment_face (true); language_print ($0); call (c_comment); comment_face (false); } /* String constants. */ /\"/ { string_face (true); language_print ($0); call (c_string); string_face (false); } /* Definitions. */ /(\([ \t]*)(procedure|defmacro|mprocedure|nprocedure|defun)([ \t]+\(?)([!\$%&\*\/:<=>\?~_^a-zA-Z][!\$%&\*\/:<=>\?~_^a-zA-Z0-9.+\-]*)/ { /* Starting garbage. */ language_print ($1); /* Keyword. */ keyword_face (true); language_print ($2); keyword_face (false); /* Middle garbage. */ language_print ($3); /* Function name. */ function_name_face (true); language_print ($4); function_name_face (false); } /* Keywords. Taken from Skill Language in the Quick Ref. + operators (build-re '(@rest @optional @key abs acos add1 alias alphalessp alphaNumCmp and append append1 apply arglist arrayp arrayref asin assoc assq atan atom band bcdp bitfield bitfield bnand bnor bnot bor boundp break breakpt buildString bxnor bxor caaar caadr caar cadr callInitProc car case caseq cdar cddr cdr changeWorkingDir clear clearExitProcs close compareTime compress concat cond cons cont continue copy copyDefstructDeep cos count createDir csh debugQuit debugStatus declare declareLambda declareNLambda defCapDepends defCapPrefixes defInitProc defmacro defprop defstruct defstructp defun defUserInitProc defvar deleteDir deleteFile difference drain dtpr dump ed edi edit edl encrypt eq equal err error errset errsetstring eval evalstring evenp exists exit exp expandMacro expt fileLength fileSeek fileTell fix fixp float floatp for forall foreach fprintf fscanf gc gcsummary gensym get get_pname get_string getAllLoadedFiles getc getchar getCurrentTime getd getDirFiles getFnWriteProtect getFunctions getInstallPath getq getqq gets getShellEnvVar getSkillPath getVarWriteProtect getVersion getWarn getWorkingDir go geqp getq getqq greaterp if ilToolBox index infile installDebugger instring isCallable isDir isExecutable isFile isFileEncrypted isFileName isLink isReadable isWritable lambda last lconc leftshift length leqp lessp let lineread linereadstring list listFunctions listp listVariables load loadContext loadi loadstring log lowerCase makeTable makeTempFileName map mapc mapcan mapcar maplist max measureTime member memq min minus minusp mod mprocedure nconc ncons needCells neq nequal newline next nil nindex nlambda nprocedure nth nthcdr nthelem null numberp numOpenFiles oddp onep or otherp outfile parseString plist plus plusp portp postdecrement postincrement pp pprint predecrement preincrement prependInstallPath print printf printFunctions printlev println printstruct printVariables procedure profile profileReset profileSummary prog prog1 prog2 progn putd putprop putpropq putpropqq quote quotient random range readTable regExitAfter regExitBefore remd remdq remExitProc remove remprop remq return reverse rexCompile rexExecute rexMagic rexMatchAssocList rexMatchList rexMatchp rexReplace rexSubstitute rightshift rindex round rplaca rplacd saveContext set setarray setContext setFnWriteProtect setof setplist setq setqbitfield steqbitfield1 setShellEnvVar setSkillPath setVarWriteProtect sh shell simplifyFilename sin skDisableMessage skIgnoreMessage skillDebugger sklint skUnignoreMessage sort sortcar sprintf sqrt srandom sstatus stacktrace status step stepout strcat strcmp stringp stringToFunction strlen strncat strncmp sub1 subst substring sxtd symbolp symeval symstrp tablep tableToList tailp tan tconc terpri times tracef tracep tracev type typep unalias unbreakpt uncount uninstallDebugger unless unprofile untrace untracep untracev upperCase warn when where whereis while writeTable xcons zerop zxtd)) */ /\b(@(key|optional|rest)\ |a(bs|cos|dd1|l(ias|pha(NumCmp|lessp))|nd|pp(end(|1)|ly)\ |r(glist|ray(p|ref))|s(in|s(oc|q))|t(an|om))\ |b(and|cdp|itfield()|n(and|o(r|t))|o(r|undp)|reak(|pt)|uildString\ |x(nor|or))\ |c(a(a(ar|dr|r)|dr|llInitProc|r|se(|q))|d(ar|dr|r)|hangeWorkingDir\ |l(ear(|ExitProcs)|ose)\ |o(mp(areTime|ress)|n(cat|d|s|t(|inue))|py(|DefstructDeep)|s|unt)\ |reateDir|sh)\ |d(e(bug(Quit|Status)|clare(|Lambda|NLambda)\ |f(Cap(Depends|Prefixes)|InitProc|UserInitProc|macro|prop|struct(|p)|un\ |var)\ |lete(Dir|File))\ |ifference|rain|tpr|ump)\ |e(d(|i(|t)|l)|ncrypt|q(|ual)|rr(|or|set(|string))|v(al(|string)|enp)\ |x(i(sts|t)|p(|andMacro|t)))\ |f(i(le(Length|Seek|Tell)|x(|p))|loat(|p)|or(|all|each)|printf|scanf)\ |g(c(|summary)\ |e(nsym|qp\ |t(|AllLoadedFiles|CurrentTime|DirFiles|F(nWriteProtect|unctions)\ |InstallPath|S(hellEnvVar|killPath)|V(arWriteProtect|ersion)\ |W(arn|orkingDir)|_(pname|string)|c(|har)|d|q(|q())|s))\ |o|reaterp)\ |i(f|lToolBox|n(dex|file|st(allDebugger|ring))\ |s(Callable|Dir|Executable|File(|Encrypted|Name)|Link|Readable|Writable))\ |l(a(mbda|st)|conc|e(ftshift|ngth|qp|ssp|t)\ |i(neread(|string)|st(|Functions|Variables|p))\ |o(ad(|Context|i|string)|g|werCase))\ |m(a(keT(able|empFileName)|p(|c(|a(n|r))|list)|x)|e(asureTime|m(ber|q))\ |in(|us(|p))|od|procedure)\ |n(con(c|s)|e(edCells|q(|ual)|wline|xt)|i(l|ndex)|lambda|procedure\ |th(|cdr|elem)|u(ll|m(OpenFiles|berp)))\ |o(ddp|nep|r|therp|utfile)\ |p(arseString|l(ist|us(|p))|o(rtp|st(decrement|increment))|p(|rint)\ |r(e(decrement|increment|pendInstallPath)\ |int(|Functions|Variables|f|l(ev|n)|struct)\ |o(cedure|file(|Reset|Summary)|g(|1|2|n)))\ |ut(d|prop(|q(|q))))\ |quot(e|ient)\ |r(an(dom|ge)\ |e(adTable|gExit(After|Before)|m(ExitProc|d(|q)|ove|prop|q)|turn|verse\ |x(Compile|Execute|Ma(gic|tch(AssocList|List|p))|Replace|Substitute))\ |i(ghtshift|ndex)|ound|plac(a|d))\ |s(aveContext\ |et(|Context|FnWriteProtect|S(hellEnvVar|killPath)|VarWriteProtect|array\ |of|plist|q(|bitfield))\ |h(|ell)|i(mplifyFilename|n)\ |k(DisableMessage|IgnoreMessage|UnignoreMessage|illDebugger|lint)\ |ort(|car)|printf|qrt|random|status\ |t(a(cktrace|tus)|e(p(|out)|qbitfield1)\ |r(c(at|mp)|ing(ToFunction|p)|len|nc(at|mp)))\ |ub(1|st(|ring))|xtd|ym(bolp|eval|strp))\ |t(a(ble(ToList|p)|ilp|n)|conc|erpri|imes|race(f|p|v)|ype(|p))\ |u(n(alias|breakpt|count|installDebugger|less|profile|trace(|p|v))\ |pperCase)\ |w(arn|h(e(n|re(|is))|ile)|riteTable)|xcons|z(erop|xtd))\b/ { keyword_face (true); language_print ($0); keyword_face (false); } /* Skill functions. Use prefix to match, they are too many to enumerate. Used bold-italic... */ /(cdf|dag|db|de|df|dl|dm|enter|fm|ge|hi|mif|tc|tfc|sch)[A-Z][^ \t]*/ { bold_italic (true); language_print ($0); bold_italic (false); } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/objc.st0000644000175000017500000001203511132443251013712 00000000000000/** * Name: objc * Description: Objective-C programming language. * Author: Markku Rossi with help of Emacs' `font-lock.el'. */ objc_type_re = /* Types. (build-re '(auto extern register static typedef struct union enum signed unsigned short long int char float double void volatile const id oneway in out inout bycopy byref)) */ /\b(auto|by(copy|ref)|c(har|onst)|double|e(num|xtern)|float\ |i(d|n(|out|t))|long|o(neway|ut)|register|s(hort|igned|t(atic|ruct))\ |typedef|un(ion|signed)|vo(id|latile))\b/; state objc_method_line extends CHighlight { /* Argument declarations after the method. $1 $2 $3 $4 $5 $6 $7 */ /([ \t]*)([A-Za-z_][A-Za-z_0-9]*)?(:[ \t]*)(\(([^)\n]+)\))?([ \t]*)([A-Za-z_][A-Za-z_0-9]*)/ { language_print ($1); if (length ($2) > 0) { function_name_face (true); language_print ($2); function_name_face (false); } language_print ($3); if (length ($4) > 0) { language_print ("("); type_face (true); language_print ($5); type_face (false); language_print (")"); } language_print ($6); variable_name_face (true); language_print ($7); variable_name_face (false); } /\n/ { language_print ($0); return; } } /* This is *not* inherited from CHighlight. */ state objc_method_continuation_line { /* Method names and arguments on lines following the function declaration. $1 $2 $3 $4 $5 $6 $7 */ /^([ \t]*)([A-Za-z_][A-Za-z_0-9]*)?(:[ \t]*)(\(([^)\n]+)\))?([ \t]*)\ ([A-Za-z_][A-Za-z_0-9]*)/ { language_print ($1); if (length ($2) > 0) { function_name_face (true); language_print ($2); function_name_face (false); } language_print ($3); if (length ($4) > 0) { language_print ("("); type_face (true); language_print ($5); type_face (false); language_print (")"); } language_print ($6); variable_name_face (true); language_print ($7); variable_name_face (false); /* Highlight all remaining arguments on this line. */ call (objc_method_line); } /* * If the previous one didn't match, we'r done with this method * declaration. */ /()/ { return; } } /* This is *not* inherited from CHighlight. */ state objc_compiler_directive_line { /([ \t:<(,]*)([A-Za-z_][A-Za-z_0-9]*)/ { language_print ($1); function_name_face (true); language_print ($2); function_name_face (false); } /* * If the previous one didn't match, we'r done with this directive. * Yes, that should match an empty string. */ /()/ { return; } } /* * We inherit the Objective-C state from the C state. This gives us * all the defaults, etc. All we have to do here is to overwrite * things that are not implemented, or are broken. */ state objc extends c { BEGIN { /* See `c.st' for the comments on this one. */ type_re = objc_type_re; } /* One line comments. */ /\/\// { comment_face (true); language_print ($0); call (eat_one_line); comment_face (false); } /* Compiler directives. */ /(@)([A-Za-z][A-Za-z0-9]*)\>/ { /* Leading garbage. */ language_print ($1); /* The directive. */ keyword_face (true); language_print ($2); keyword_face (false); /* And all the remaining stuff on this line. */ call (objc_compiler_directive_line); } /* Keywords. Basicly what's missing from C *but* not goto or case. (build-re '(self super _cmd id Class SEL IMP BOOL YES NO nil Nil)) */ /\b(BOOL|Class|IMP|N(O|il)|SEL|YES|_cmd|id|nil|s(elf|uper))\b/ { keyword_face (true); language_print ($0); keyword_face (false); } /* Types. */ objc_type_re { type_face (true); language_print ($0); type_face (false); } /* Method names. First, on the same line as the function declaration. $1 $2 $3 $4 $5 $6 $7 */ /(^[+-][ \t]*)(PRIVATE)?([ \t]*)(\(([^)\n]+)\))?([ \t]*)([A-Za-z_]\ [A-Za-z_0-9]*)/ { language_print ($1); if (length ($2) > 0) { type_face (true); language_print ($2); type_face (false); } language_print ($3); if (length ($4) > 0) { language_print ("("); type_face (true); language_print ($5); type_face (false); language_print (")"); } language_print ($6); function_name_face (true); language_print ($7); function_name_face (false); /* Highlight arguments from the same line. */ call (objc_method_line); /* * Method names and arguments on lines following the function declaration. */ call (objc_method_continuation_line); } /* * Labels and case tags. These must remain as a sole statement on a line, * otherwise we detect selectors. Emacs accepts also bare numbers. */ /^([ \t]*)([a-zA-Z0-9_]+)(:[ \t]*)$/ { language_print ($1); reference_face (true); language_print ($2); reference_face (false); language_print ($3); } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/delphi.st0000644000175000017500000000637311132443251014252 00000000000000/** * Name: delphi * Description: Delphi programming language. * Author: Michael Van Canneyt */ state delphi extends HighlightEntry { BEGIN { require_state (pascal); } /* comments */ /(\{|\(\*)/ { comment_face (true); language_print ($0); call (pascal_comment); comment_face (false); } /* C++ -style comments */ /\/\// { comment_face (true); language_print ($0); call (eat_one_line); comment_face (false); } /* strings */ /[\']/ { string_face (true); language_print ($0); call (pascal_string); string_face (false); } /* Keywords. (build-re '(and asm array begin case const constructor destructor div do downto else end file for function goto if implementation in inline interface label mod nil not object of or packed procedure program record repeat set shlr string then to type unit until uses var while with xor As class except exports finalization finally inherited initialization is library property raise threAdvar try absolute abstract assembler automated cdecl default dispid dynamic export external far forward index message name near nodefault override pascal private protected public published read register resident stdcall stored virtual write) t) */ /\b(A[sS]\ |[aA]([bB][sS]([oO][lL][uU][tT][eE]|[tT][rR][aA][cC][tT])|[nN][dD]\ |[rR][rR][aA][yY]|[sS]([mM]|[sS][eE][mM][bB][lL][eE][rR])\ |[uU][tT][oO][mM][aA][tT][eE][dD])\ |[bB][eE][gG][iI][nN]\ |[cC]([aA][sS][eE]|[dD][eE][cC][lL]|[lL][aA][sS][sS]\ |[oO][nN][sS][tT](|[rR][uU][cC][tT][oO][rR]))\ |[dD]([eE]([fF][aA][uU][lL][tT]|[sS][tT][rR][uU][cC][tT][oO][rR])\ |[iI]([sS][pP][iI][dD]|[vV])|[oO](|[wW][nN][tT][oO])\ |[yY][nN][aA][mM][iI][cC])\ |[eE]([lL][sS][eE]|[nN][dD]\ |[xX]([cC][eE][pP][tT]|[pP][oO][rR][tT](|[sS])|[tT][eE][rR][nN][aA][lL]))\ |[fF]([aA][rR]\ |[iI]([lL][eE]|[nN][aA][lL]([iI][zZ][aA][tT][iI][oO][nN]|[lL][yY]))\ |[oO][rR](|[wW][aA][rR][dD])|[uU][nN][cC][tT][iI][oO][nN])\ |[gG][oO][tT][oO]\ |[iI]([fF]|[mM][pP][lL][eE][mM][eE][nN][tT][aA][tT][iI][oO][nN]\ |[nN](|[dD][eE][xX]|[hH][eE][rR][iI][tT][eE][dD]\ |[iI][tT][iI][aA][lL][iI][zZ][aA][tT][iI][oO][nN]|[lL][iI][nN][eE]\ |[tT][eE][rR][fF][aA][cC][eE])\ |[sS])\ |[lL]([aA][bB][eE][lL]|[iI][bB][rR][aA][rR][yY])\ |[mM]([eE][sS][sS][aA][gG][eE]|[oO][dD])\ |[nN]([aA][mM][eE]|[eE][aA][rR]|[iI][lL]\ |[oO]([dD][eE][fF][aA][uU][lL][tT]|[tT]))\ |[oO]([bB][jJ][eE][cC][tT]|[fF]|[rR]|[vV][eE][rR][rR][iI][dD][eE])\ |[pP]([aA]([cC][kK][eE][dD]|[sS][cC][aA][lL])\ |[rR]([iI][vV][aA][tT][eE]\ |[oO]([cC][eE][dD][uU][rR][eE]|[gG][rR][aA][mM]|[pP][eE][rR][tT][yY]\ |[tT][eE][cC][tT][eE][dD]))\ |[uU][bB][lL][iI]([cC]|[sS][hH][eE][dD]))\ |[rR]([aA][iI][sS][eE]\ |[eE]([aA][dD]|[cC][oO][rR][dD]|[gG][iI][sS][tT][eE][rR]|[pP][eE][aA][tT]\ |[sS][iI][dD][eE][nN][tT]))\ |[sS]([eE][tT]|[hH][lL][rR]\ |[tT]([dD][cC][aA][lL][lL]|[oO][rR][eE][dD]|[rR][iI][nN][gG]))\ |[tT]([hH]([eE][nN]|[rR][eE]A[dD][vV][aA][rR])|[oO]|[rR][yY]|[yY][pP][eE])\ |[uU]([nN]([iI][tT]|[tT][iI][lL])|[sS][eE][sS])\ |[vV]([aA][rR]|[iI][rR][tT][uU][aA][lL])\ |[wW]([hH][iI][lL][eE]|[iI][tT][hH]|[rR][iI][tT][eE])|[xX][oO][rR])\b/ { keyword_face (true); language_print ($0); keyword_face (false); } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/wmlscript.st0000644000175000017500000000466011132443251015026 00000000000000/** * Name: wmlscript * Description: WMLScript language. * Author: Markku Rossi */ state wmlscript_string extends Highlight { /\\\\./ { language_print ($0); } /[\']/ { language_print ($0); return; } } state wmlscript extends HighlightEntry { /* Comments. */ /\/\*/ { comment_face (true); language_print ($0); call (c_comment); comment_face (false); } /\/\// { comment_face (true); language_print ($0); call (eat_one_line); comment_face (false); } /* String constants. */ /\"/ { string_face (true); language_print ($0); call (c_string); string_face (false); } /* '' strings. */ /[\']/ { string_face (true); language_print ($0); call (wmlscript_string); string_face (false); } /* Function definitions. */ /\b(function)([ \t]+)([A-Za-z\$_][A-Za-z\$_0-9]*)([ \t]*\()/ { keyword_face (true); language_print ($1); keyword_face (false); language_print ($2); function_name_face (true); language_print ($3); function_name_face (false); language_print ($4); } /* This is actually punctuation. We define it here so the `div' part won't get accidentally highlighted. */ /\bdiv=/ { language_print($0); } /* Keywords. (build-re '(access agent break case catch class const continue debugger default delete div do domain else enum equiv export extends extern false finally for function header http if import in invalid isvalid lib meta name new null path private public return sizeof struct super switch this throw true try typeof use user var void with )) */ /\b(a(ccess|gent)|break|c(a(se|tch)|lass|on(st|tinue))\ |d(e(bugger|fault|lete)|iv|o(|main))\ |e(lse|num|quiv|x(port|te(nds|rn)))|f(alse|inally|or|unction)\ |h(eader|ttp)|i(f|mport|n(|valid)|svalid)|lib|meta|n(ame|ew|ull)\ |p(ath|rivate|ublic)|return|s(izeof|truct|uper|witch)\ |t(h(is|row)|r(ue|y)|ypeof)|use(|r)|v(ar|oid)|with)\b/ { keyword_face (true); language_print ($0); keyword_face (false); } /* Built-in libraries. (build-re '(Lang Float String URL WmlBrowser Dialogs)) */ /\b(Dialogs|Float|Lang|String|URL|WmlBrowser)(\.)\ ([a-zA-Z_][a-zA-Z_0-9]*)\b/ { builtin_face (true); language_print ($1); builtin_face (false); language_print($2); builtin_face (true); language_print ($3); builtin_face (false); } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/ksh.st0000644000175000017500000000352211132443251013563 00000000000000/** * Name: ksh * Description: Korn shell programming language. * Author: Jean-Marc Calvez */ state ksh extends HighlightEntry { /(\${*#[a-zA-Z0-9_]*})/ { language_print ($0); } /* Comments. */ /#/ { comment_face (true); language_print ($0); call (eat_one_line); comment_face (false); } /* String constants. */ /\"/ { string_face (true); language_print ($0); call (c_string); string_face (false); } /* Ignore escaped quote marks */ /\\\"/ { language_print ($0); } /\\\'/ { language_print ($0); } /\\\`/ { language_print ($0); } /* Excutable script. */ /^#!/ { reference_face (true); language_print ($0); call (eat_one_line); reference_face (false); } /* Keywords: (build-re '(: alias bg break continue cd command eval exec exit export fc fg getopts hash jobs kill let login newgrp print pwd read readonly return set shift stop suspend test times trap type typeset ulimit umask unalias unset wait whence for in do done select case esac if then elif else fi while until function time)) */ /\b(:|alias|b(g|reak)|c(ase|d|o(mmand|ntinue))|do(|ne)\ |e(l(if|se)|sac|val|x(ec|it|port))|f(c|g|i|or|unction)|getopts|hash\ |i(f|n)|jobs|kill|l(et|ogin)|newgrp|p(rint|wd)|re(ad(|only)|turn)\ |s(e(lect|t)|hift|top|uspend)|t(est|hen|ime(|s)|rap|ype(|set))\ |u(limit|mask|n(alias|set|til))|w(ait|h(ence|ile)))\b/ { keyword_face (true); language_print ($0); keyword_face (false); } /* exported aliases (built-in) (build-re '(autoload false functions hash history integer nohup r true type)) */ /\b(autoload|f(alse|unctions)|h(ash|istory)|integer|nohup|r|t(rue|ype))\b/ { builtin_face (true); language_print ($0); builtin_face (false); } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/mail.st0000644000175000017500000000145311606202014013715 00000000000000/** * Name: mail * Description: Mail and news articles. * Author: Originally by Markku Rossi , heavily modified * by Matthew Weigel */ state mail_body extends Highlight { BEGIN { reference_face (false); } /^[ \t]*>/ { comment_face (true); language_print ($0); call (eat_one_line); comment_face (false); } } state mail_header extends Highlight { BEGIN { reference_face (true); } END { comment_face (true); } /[ \t:]/ { language_print ($0); return; } } state mail extends HighlightEntry { /^[ \t]*$/ { /* Move to the mail body. */ call (mail_body); } /^/ { reference_face (true); language_print ($0); call (mail_header); comment_face (true); } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/lang_rtf.st0000644000175000017500000000331711132443251014574 00000000000000/* * Definition for RTF output * Kevin Grover, */ state lang_rtf { BEGIN { sub rtf_color_map() { local i; print ("{\\colortbl;"); for (i = 0; i < length (rgb_values); i = i + 1) print (sprintf ("\\red%d\\green%d\\blue%d;", rgb_values[i][1], rgb_values[i][2], rgb_values[i][3])); print ("}\n"); return; } sub language_color (name) { local idx; idx = color_index (name); if (idx < 0) panic ("unknown color `", name, "'"); return sprintf("\\cf%d", idx + 1); } LANGUAGE_SPECIALS = /[\\{}\n]/; sub language_print (str) { str = regsuball (str, /\\\\/, "\\\\"); str = regsuball (str, /{/, "\\{"); str = regsuball (str, /}/, "\\}"); str = regsuball (str, /\n/, "\\line\n"); print (str); } sub language_symbol (symbol) { return false; } sub header () { local i; if (current_input_file == 1) { print ("{\\rtf\\ansi\\deff0\n"); print ("{\\fonttbl{\\f0\\fswiss Courier New;}}\n"); rtf_color_map(); } } sub trailer () { if (current_input_file == int (num_input_files)) print ("}\n"); } sub color_on (name) { print ("{", name, " "); } sub color_off () { print ("}"); } sub face_on (face) { if (face[boldp] || face[italicp]) { print ("{"); if (face[boldp]) print ("\\b"); if (face[italicp]) print ("\\i"); print (" "); } if (face[fg_color]) color_on (face[fg_color]); } sub face_off (face) { if (face[fg_color]) color_off (); if (face[boldp] || face[italicp]) print ("}"); } return; } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/html.st0000644000175000017500000000422211132443251013740 00000000000000/** * Name: html * Description: Hypertext markup language HTML. * Author: Markku Rossi */ state html_tag extends Highlight { />/ { language_print ($0); return; } /\"/ { keyword_face (false); string_face (true); language_print ($0); call (c_string); string_face (false); keyword_face (true); } } state html_entity extends Highlight { /;/ { language_print ($0); return; } } state html_script_tag extends Highlight { /\"/ { keyword_face (false); string_face (true); language_print ($0); call (c_string); string_face (false); keyword_face (true); } /([lL][aA][nN][gG][uU][aA][gG][eE]=\")([^\"]*)(\")/ { html_script_language = $2; language_print ($1); keyword_face (false); string_face (true); language_print ($2); string_face (false); keyword_face (true); language_print ($3); } />/ { language_print ($0); return; } } state html_skip_script extends Highlight { /* Terminator for nested scripts. */ /<\/[sS][cC][rR][iI][pP][tT]>/ { from_html_terminator = $0; return; } } state html extends HighlightEntry { BEGIN { require_state (javascript); } /* Scripts. */ /<[sS][cC][rR][iI][pP][tT]/ { keyword_face (true); language_print ($0); /* The default script language is JavaScript. */ html_script_language = "JavaScript"; call (html_script_tag); keyword_face (false); if (regmatch(html_script_language, /^javascript.*$/i)) { /* A nested JavaScript block. */ from_html_terminator = ""; call (javascript_internal); keyword_face (true); language_print (from_html_terminator); keyword_face (false); } else { /* An unknown scripting language, skip it. */ from_html_terminator = ""; call (html_skip_script); keyword_face (true); language_print (from_html_terminator); keyword_face (false); } } / */ state m4 extends HighlightEntry { BEGIN { require_state (pascal); } /* Comments. */ /dnl|#/ { comment_face (true); language_print ($0); call (eat_one_line); comment_face (false); } /* String constants. */ /\`/ { string_face (true); language_print ($0); call (pascal_string); string_face (false); } /* Keywords: (build-re '(changequote changecom decr define defn divert divnum dumpdef errprint eval ifdef ifelse include incr index len m4exit m4wrap maketemp popdef pushdef shift sinclude substr syscmd sysval translit traceon traceoff undefine undivert)) */ /\b(change(com|quote)|d(e(cr|f(ine|n))|iv(ert|num)|umpdef)|e(rrprint|val)\ |i(f(def|else)|n(c(lude|r)|dex))|len|m(4(exit|wrap)|aketemp)\ |p(opdef|ushdef)|s(hift|include|ubstr|ys(cmd|val))\ |tra(ceo(ff|n)|nslit)|und(efine|ivert))\b/ { keyword_face (true); language_print ($0); keyword_face (false); } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/elisp.st0000644000175000017500000000364211132443251014115 00000000000000/** * Name: elisp * Description: Emacs LISP. */ state elisp extends HighlightEntry { /* Comments. */ /;/ { comment_face (true); language_print ($0); call (eat_one_line); comment_face (false); } /* String constants. */ /\"/ { string_face (true); language_print ($0); call (c_string); string_face (false); } /* Definitions. */ /(\([ \t]*)(defun)([ \t]+\(?)([!\$%&\*\/:<=>\?~_^a-zA-Z][!\$%&\*\/:<=>\?~_^a-zA-Z0-9.+\-]*)/ { /* Starting garbage. */ language_print ($1); /* Keyword `defun'. */ keyword_face (true); language_print ($2); keyword_face (false); /* Middle garbage. */ language_print ($3); /* Function name. */ function_name_face (true); language_print ($4); function_name_face (false); } /* ':'-names, Emacs highlights these, so do we. */ /([ \t])(:[!\$%&\*\/:<=>\?~_^a-zA-Z0-9.+\-]*)/ { language_print ($1); reference_face (true); language_print ($2); reference_face (false); } /* Keywords taken out of fond-lock.el. Added: and, or, lambda. (build-re '(and or lambda cond if while let let* prog progn progv prog1 prog2 prog* inline catch throw save-restriction save-excursion save-window-excursion save-selected-window save-match-data unwind-protect condition-case track-mouse eval-after-load eval-and-compile eval-when-compile when unless do flet labels return return-from with-output-to-temp-buffer with-timeout)) */ /\b(and|c(atch|ond(|ition-case))|do\ |eval-(a(fter-load|nd-compile)|when-compile)|flet|i(f|nline)\ |l(a(bels|mbda)|et(|*))|or|prog(|*|1|2|n|v)|return(|-from)\ |save-(excursion|match-data|restriction|selected-window|window-excursion)\ |t(hrow|rack-mouse)|un(less|wind-protect)\ |w(h(en|ile)|ith-(output-to-temp-buffer|timeout)))\b/ { keyword_face (true); language_print ($0); keyword_face (false); } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/inf.st0000644000175000017500000000556611132443251013564 00000000000000/** * Name: inf * Description: GUI INF Script language * Author: Markku Rossi */ state inf_string extends Highlight { /\"\"/ { /* A quoted '"' character. */ language_print($0); } /\"/ { /* End of the string. */ language_print($0); return; } } state inf extends HighlightEntry { /* Comments. */ /;/ { comment_face(true); language_print($0); call(eat_one_line); comment_face(false); } /* Section names. */ /^(\[)([^\]]+)(\][ \t]*)/ { language_print($1); function_name_face(true); language_print($2); function_name_face(false); language_print($3); } /* String constants. */ /\"\"\"/ { /* A string starting with a '"' character. */ string_face(true); language_print($0); call(inf_string); string_face(false); } /\"\"/ { /* An empty string. */ string_face(true); language_print($0); string_face(false); } /\"/ { /* Start of a string. */ string_face(true); language_print($0); call(inf_string); string_face(false); } /* Labels. */ /^([a-zA-Z_][a-zA-Z_0-9]*)([ \t]*=[ \t]*\+)/ { reference_face(true); language_print($1); reference_face(false); language_print($2); } /* Goto statements and its target. */ /(goto)([ \t]*)([a-zA-Z_][a-zA-Z_0-9]*)/ { keyword_face(true); language_print($1); keyword_face(false); language_print($2); reference_face(true); language_print($3); reference_face(false); } /* Shell section calls. */ /\bshell\b/i { builtin_face(true); language_print($0); builtin_face(false); } /* The read-syms, install, and detect calls. */ /^([ \t]*)(read-syms|detect|install)([ \t]+)([a-zA-Z_][a-zA-Z_0-9]*)/i { language_print($1); builtin_face(true); language_print($2); builtin_face(false); language_print($3); reference_face(true); language_print($4); reference_face(false); } /* The read-syms, detect, and install in other contexts. */ /^([ \t]*)(read-syms|detect|install)\b/i { language_print($1); builtin_face(true); language_print($2); builtin_face(false); } /* Variable / constant definitions. We catch these here so we won't conflict with any keywords, etc. */ /([a-zA-Z_][a-zA-Z_0-9]*[ \t]*=)/ { language_print($0); } /* Keywords, sort of. (build-re '(return read-syms ifstr ifint ifcontains else else-ifstr else-ifint elseif-contains endif forlistdo endforlistdo goto set set-subst set-add set-sub set-mul set-div set-or set-hextodec set-dectohex exit)) */ /\b(e(lse(|-if(int|str)|if-contains)|nd(forlistdo|if)|xit)|forlistdo|goto\ |if(contains|int|str)|re(ad-syms|turn)\ |set(|-(add|d(ectohex|iv)|hextodec|mul|or|sub(|st))))\b(\(i\))?/i { keyword_face(true); language_print($0); keyword_face(false); } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/tex.st0000644000175000017500000000240311132443251013573 00000000000000/** * Name: tex * Description: TeX/LaTeX command, comment and math highlighting. * Author: Toni Giorgino */ /* Syntactically highlights _every_ TeX command. A more specialized * LaTeX mode might instead operate by keyword, eg. reproducing text * emphasis and boldface, perhaps cluttering the output too much. * Label and reference highlighting is a better candidate for a To Do * list. Please report modifications. TG */ state tex extends HighlightEntry { /* escaped comment mark */ /\\\\%/ { language_print ($0); } /* comment */ /%/ { comment_face (true); language_print ($0); call (eat_one_line); comment_face (false); } /* one non-letter commands */ /\\\\[^[:alpha:]]/ { keyword_face (true); language_print ($0); keyword_face (false); } /* multi letter commands */ /\\\\[[:alpha:]]+/ { keyword_face (true); language_print ($0); keyword_face (false); } /* display math environment */ /\$\$[^$]+\$\$/ { string_face (true); language_print ($0); string_face (false); } /* inline math environment */ /\$[^$]+\$/ { variable_name_face (true); language_print ($0); variable_name_face (false); } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/asm.st0000644000175000017500000000146711132443251013564 00000000000000/** * Name: asm * Description: Assembler listings. * Author: Markku Rossi */ state asm extends HighlightEntry { /* Comments. */ /(;|^[ \t]*;).*/ { comment_face (true); language_print ($0); call (eat_one_line); comment_face (false); } /* Labels are averything at the beginning of the line, ending to ':' */ /^[^\t ]+:/ { function_name_face (true); language_print ($0); function_name_face (false); } /* Asm operands are indented. */ /^([ \t]+)([^ \t]+)/ { language_print ($1); keyword_face (true); language_print ($2); keyword_face (false); } /* And finally, highlight string constants. */ /\"/ { string_face (true); language_print ($0); call (c_string); string_face (false); } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/describe_languages.st0000644000175000017500000000514711132443251016611 00000000000000/* * Describe all known highlight languages. */ state describe_me { / \*$/ { } / \*\\\/.*/ { print ("\n"); /* All done. */ return; } / \* ?(.*)/ { print ($1); } } state describe_languages { /^\/\*\*.*$/ { call (describe_me); } /[^\\\/]+/ { /* NOP */ } /./ { /* NOP */ } } /* * Create a HTML report of all supported highlighting rules. */ sub html_annotate_mailtos (str) { return regsuball (str, /[-_a-zA-Z0-9\\.]+@[-_a-zA-Z0-9\\.]+/, "$0"); } sub html_quote (str) { str = regsuball (str, /\&/, "&"); str = regsuball (str, //, ">"); str = regsuball (str, /\"/, """); return str; } sub describe_me_html_print_pending_name () { if (!language_name_pending) return; print ("

\n

\n
Name:
", html_quote (language_name), "\n"); language_name_pending = 0; } state describe_me_html { / \*$/ { } / \*\\\/.*/ { /* Terminate this state. */ describe_me_html_print_pending_name (); print ("
\n"); return; } / \* ?(.*)/ { row = $1; if (regmatch (row, /Name:(.*)/)) { language_name = $1; language_name_pending = 1; } else if (regmatch (row, /Description:(.*)/)) { /* This starts the new language. */ title = $1; title = regsub (title, /^[ \t]+/, ""); title = regsub (title, /[ \t\\.]+$/, ""); print ("

  • ", html_quote (title), "

    \n"); } else if (regmatch (row, /([a-zA-Z]+:)(.*)/)) { describe_me_html_print_pending_name (); print ("

    ", html_quote ($1), "
    ", html_annotate_mailtos (html_quote ($2))); } else print (html_annotate_mailtos (html_quote (row))); } } current_input_file = 0; state describe_languages_html { BEGIN { if (current_input_file == 0) { title = "Enscript Highlighting Languages And File Formats"; print ("\n", "\n\n", title, "\n", "\n", "\n", "\n", "

    ", title, "

    \n
    \n
      \n"); } current_input_file++; } END { if (current_input_file == length (argv)) print ("\n
    \n
    By ", version, "
    \n\n\n"); } /^\/\*\*.*$/ { call (describe_me_html); } /[^\\\/]+/ { /* NOP */ } /./ { /* NOP */ } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/pascal.st0000644000175000017500000000365711132443251014252 00000000000000/** * Name: pascal * Description: Pascal programming language * Author: Michael Van Canneyt */ state pascal_comment extends Highlight { /(\}|\*\))/ { language_print ($0); return; } } state pascal_string extends Highlight { /[\']/ { language_print ($0); return; } } state pascal extends HighlightEntry { /* comments */ /(\{|\(\*)/ { comment_face (true); language_print ($0); call (pascal_comment); comment_face (false); } /* strings */ /[\']/ { string_face (true); language_print ($0); call (pascal_string); string_face (false); } /* Keywords. (build-re '(and asm array begin case const constructor destructor div do downto else end file for function goto if implementation in inline interface label mod nil not object of or packed procedure program record repeat set shlr string then to type unit until uses var while with xor) t) */ /\b([aA]([nN][dD]|[rR][rR][aA][yY]|[sS][mM])|[bB][eE][gG][iI][nN]\ |[cC]([aA][sS][eE]|[oO][nN][sS][tT](|[rR][uU][cC][tT][oO][rR]))\ |[dD]([eE][sS][tT][rR][uU][cC][tT][oO][rR]|[iI][vV]|[oO](|[wW][nN][tT][oO]))\ |[eE]([lL][sS][eE]|[nN][dD])\ |[fF]([iI][lL][eE]|[oO][rR]|[uU][nN][cC][tT][iI][oO][nN])\ |[gG][oO][tT][oO]\ |[iI]([fF]|[mM][pP][lL][eE][mM][eE][nN][tT][aA][tT][iI][oO][nN]\ |[nN](|[lL][iI][nN][eE]|[tT][eE][rR][fF][aA][cC][eE]))\ |[lL][aA][bB][eE][lL]|[mM][oO][dD]|[nN]([iI][lL]|[oO][tT])\ |[oO]([bB][jJ][eE][cC][tT]|[fF]|[rR])\ |[pP]([aA][cC][kK][eE][dD]\ |[rR][oO]([cC][eE][dD][uU][rR][eE]|[gG][rR][aA][mM]))\ |[rR][eE]([cC][oO][rR][dD]|[pP][eE][aA][tT])\ |[sS]([eE][tT]|[hH][lL][rR]|[tT][rR][iI][nN][gG])\ |[tT]([hH][eE][nN]|[oO]|[yY][pP][eE])\ |[uU]([nN]([iI][tT]|[tT][iI][lL])|[sS][eE][sS])|[vV][aA][rR]\ |[wW]([hH][iI][lL][eE]|[iI][tT][hH])|[xX][oO][rR])\b/ { keyword_face (true); language_print ($0); keyword_face (false); } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/haskell.st0000644000175000017500000000643611132443251014430 00000000000000/** * Name: haskell * Description: Haskell programming language. * * Simple highlighting treating keywords, comments, strings and type * expressions specially. * * Author: Hans-Wolfgang Loidl * Date: 27/2/97 */ state haskell extends HighlightEntry { /* Comments. */ /\{\-/ { comment_face (true); language_print ($0); call (haskell_comment); comment_face (false); } /* One line comments. */ /\-\-/ { comment_face (true); language_print ($0); call (eat_one_line); comment_face (false); } /* Built-in beasts (GHC specific). */ /\b\_/ { keyword_face (true); language_print ($0); call (haskell_builtin); keyword_face (false); } /* Type declarations. */ /::/ { type_face (true); language_print ($0); call (eat_one_line); /* call (haskell_type); */ type_face (false); } /* String constants. */ /\"/ { string_face (true); language_print ($0); call (haskell_string); string_face (false); } /* Pre-processor lines. */ /^#/ { reference_face (true); language_print ($0); call (eat_one_line); /* call (haskell_ppline); */ reference_face (false); } /* Character constants. */ /'.'|'\\.'/ { string_face (true); language_print ($0); string_face (false); } /* Keywords. I took that from haskell.el. The True Way to do it would be to grab it out of the on-line haskell report (actually, The Real True Way would be to write a Haskell program that extracts different kinds of keywords and to partially evaluate it wrt the Haskell report; but that might be a wee overkill). (let ((strings '("case" "class" "data" "default" "deriving" "else" "hiding" "if" "import" "in" "\ infix" "infixl" "infixr" "instance" "interface" "let" "module" "of" "renaming" "\ then" "to" "type" "where" ))) (make-regexp strings) ) ==> \(infix\|then\)\|c\(ase\|lass\)\|d\(ata\|e\(fault\|riving\)\)\|else\|hiding\|i\([fn]\|mport\|n\(fix[lr]\|stance\|terface\)\)\|let\|module\|of\|renaming\|t\(o\|ype\)\|where */ /\b((infix|then)|c(ase|lass)|d(ata|e(fault|riving))|else|hiding|i([fn]|mport|n(fix[lr]|stance|terface))|let|module|of|renaming|t(o|ype)|where)\b/ { keyword_face (true); language_print ($0); keyword_face (false); } } state haskell_comment extends Highlight { /\-\}/ { language_print ($0); return; } } /* HWL: for GHC builtin objects like _parGlobal_ i.e. not std Haskell */ state haskell_builtin extends Highlight { /(\_\b)| / { language_print ($0); return; } } state haskell_type extends Highlight { /* ToDo: Implement type continuation lines: If the line ends in a -> or the next starts with a -> then we are still in a type expression */ /\n/ { language_print ($0); return; } } state haskell_string extends Highlight { /\\\\./ { language_print ($0); } /\"/ { language_print ($0); return; } } state haskell_ppline extends Highlight { /\/\*/ { /* Comment within a pre-processor line. */ reference_face (false); comment_face (true); language_print ($0); call (c_comment); comment_face (false); reference_face (true); } /\n/ { language_print ($0); return; } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/rfc.st0000644000175000017500000000272411132443251013553 00000000000000/** * Name: rfc * Description: RFC and Internet Draft reformatter. * * Some RFCs and Internet Drafts are broken in such a way * that there is no linefeed character separating the * pages. These documents are really pain to print * because you have to know the exact page height. The * `rfc' highlighting state fixes these broken documents * by removing all unnecessary blank lines from the page * breaks and by separating the pages with a formfeed * character. This style also highlights the MUST, MUST * NOT, REQUIRED SHALL, SHALL NOT, SHOULD, SHOULD NOT, * RECOMMENDED, MAY, and OPTIONAL keywords, described by * the RFC 2119. * * Author: Markku Rossi */ state rfc_page_separator_garbage extends Highlight { /^[ \t\f\r]*\n/ { /* Skip all whitespace lines. */ } /./ { /* Print the correct separator line. */ language_print("\f\n"); language_print($0); return; } } state rfc extends HighlightEntry { /* Find the page separators and skip all whitespace lines after that. */ /\[[Pp]age[ \t]+[0-9]+[ \t]*\]\n/ { language_print($0); call(rfc_page_separator_garbage); } /* Highlight the keywords, described by the RFC 2119. (build-re '(MUST NOT REQUIRED SHALL SHOULD RECOMMENDED MAY OPTIONAL)) */ /\b(M(AY|UST)|NOT|OPTIONAL|RE(COMMENDED|QUIRED)|SH(ALL|OULD))\b/ { highlight_face(true); language_print($0); highlight_face(false); } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/diff.st0000644000175000017500000000122111132443251013700 00000000000000/** * Name: diff * Description: normal diffs * Author: buchal@ifh.bau-verm.uni-karlsruhe.de */ state diff extends HighlightEntry { /^[0-9]/ { comment_face (true); language_print ($0); call (eat_one_line); comment_face (false); } /^/ { reference_face (true); language_print ($0); call (eat_one_line); reference_face (false); } /^[^\ ]/ { string_face (true); language_print ($0); call (eat_one_line); string_face (false); } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/vrml.st0000644000175000017500000000642111132443251013757 00000000000000/** * Name: vrml * Description: Virtual Reality Modeling Language (VRML97) * * Typesets UTF-8 encoded VRML files including inline scripts * (JavaScript or VrmlScript) using Encript's JavaScript mode. * * Note: Some VRML browsers allow use of double quotes in * defining string literals inside inlined scripts. Doing so * breaks the logic programmed here. Using single quotes * (i.e. ECMAScript spec-compliant string literals) works fine. * * Author: James Sørlie */ state vrml extends HighlightEntry { BEGIN { require_state (javascript); } /* Comments. */ /#/ { comment_face (true); language_print ($0); call (eat_one_line); comment_face (false); } /* Inline Script Protocols. */ /\"javascript:|\"vrmlscript:/ { reference_face (true); language_print ($0); reference_face (false); from_vrml = 1; call (javascript_internal); } /* String constants. */ /\"/ { string_face (true); language_print ($0); call (c_string); string_face (false); } /* UTF-8 header text. */ /^#VRML V2.0/ { reference_face (true); language_print ($0); call (eat_one_line); reference_face (false); } /* Built-ins nodes: http://www.vrml.org/Specifications/VRML97/part1/nodesRef.html (build-re '(Introduction Anchor Appearance AudioClip Background Billboard Box Collision Color ColorInterpolator Cone Coordinate CoordinateInterpolator Cylinder CylinderSensor DirectionalLight ElevationGrid Extrusion Fog FontStyle Group ImageTexture IndexedFaceSet IndexedLineSet Inline LOD Material MovieTexture NavigationInfo Normal NormalInterpolator OrientationInterpolator PixelTexture PlaneSensor PointLight PointSet PositionInterpolator ProximitySensor ScalarInterpolator Script Shape Sound Sphere SphereSensor SpotLight Switch Text TextureCoordinate TextureTransform TimeSensor TouchSensor Transform Viewpoint VisibilitySensor WorldInfo)) */ /\b(A(nchor|ppearance|udioClip)|B(ackground|illboard|ox)\ |C(o(l(lision|or(|Interpolator))|ne|ordinate(|Interpolator))\ |ylinder(|Sensor))\ |DirectionalLight|E(levationGrid|xtrusion)|Fo(g|ntStyle)|Group\ |I(mageTexture|n(dexed(FaceSet|LineSet)|line|troduction))|LOD\ |M(aterial|ovieTexture)|N(avigationInfo|ormal(|Interpolator))\ |OrientationInterpolator\ |P(ixelTexture|laneSensor|o(int(Light|Set)|sitionInterpolator)\ |roximitySensor)\ |S(c(alarInterpolator|ript)|hape|ound|p(here(|Sensor)|otLight)|witch)\ |T(ext(|ure(Coordinate|Transform))|imeSensor|ouchSensor|ransform)\ |Vi(ewpoint|sibilitySensor)|WorldInfo)\b/ { builtin_face (true); language_print ($0); builtin_face (false); } /* Keywords. http://www.vrml.org/Specifications/VRML97/part1/grammar.html#TableA.1 */ /\b(DEF|EXTERNPROTO|FALSE|IS|NULL|PROTO|ROUTE|T(O|RUE)|USE|\ e(vent(In|Out)|xposedField)|field)\b/ { keyword_face (true); language_print ($0); keyword_face (false); } /* Types. http://www.vrml.org/Specifications/VRML97/part1/grammar.html#Fields */ /\b(MF(Color|Float|Int32|Node|Rotation|String|Time|Vec(2f|3f))|\ SF(Bool|Color|Float|Image|Int32|Node|Rotation|String|Time|Vec(2f|3f)))\b/ { type_face (true); language_print ($0); type_face (false); } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/postscript.st0000644000175000017500000003202511132443251015210 00000000000000/** * Name: postscript * Description: PostScript programming language. * * Author: Dave Hylands (DHylands@creo.com) */ state ps_string extends Highlight { /\\\\./ { language_print ($0); } /[\)]/ { language_print ($0); return; } /[\(]/ { /* Balanced ()'s in a string */ language_print ($0); call (ps_string); } } state ps_encoded_string extends Highlight { /[\>]/ { language_print ($0); return; } } state postscript extends HighlightEntry { /* Comments. */ /%/ { comment_face (true); language_print ($0); call (eat_one_line); comment_face (false); } /* String constants. */ /[\(]/ { string_face (true); language_print ($0); call (ps_string); string_face (false); } /[\<]/ { string_face (true); language_print ($0); call (ps_encoded_string); string_face (false); } /* Keywords. I built the keyword list using the following PostScript program /str 128 string def /outFile \(ps.txt)(w)file def /proc { pop //str cvs outFile exch writestring outFile (\n) writestring } bind def systemdict /proc load forall statusdict /proc load forall errordict /proc load forall I then ran: sort ps.txt | uniq | fmt > ps.key I then went through the list and removed << >> [ ] and obvious Harlequin extensions. Many of the keywords remaining are not documented in the Red Book but are implemented in some Adobe implementations (especially the ones from statusdict). I decided to leave them in. And since I don't have emacs (gasp), I wrote a program which takes the ps.key file and generates the regular expression. This was faster than trying to install emacs and figure out how it works. Also note that PostScript doesn't require whitespace in front of keywords. In particular, text can follow immediately after any of the following characters: > { } ) [ ] / and can be followed immediately by the following: < { } ( [ ] / in addition to white space. Contents of ps.key: $error .error 11x17tray 12x24tray 15x24tray = == =print =scratch =string FontDirectory GlobalFontDirectory ISOLatin1Encoding Run SharedFontDirectory SpecialRun StandardEncoding VMerror a2tray a3tray a4tray a5tray abs add aload anchorsearch and appletalktype arc arcn arct arcto array ashow astore atan authors awidthshow b5tray begin bind bitshift blackoverprint blink broadsheettray buildtime bytesavailable cachestatus ceiling cexec charpath checkpassword checkscreen clear cleardictstack clearinterrupt cleartomark clip clippath closefile closepath closescc colorimage concat concatmatrix configurationerror copy copypage cos count countdictstack countexecstack counttomark cshow currentblackgeneration currentcacheparams currentcmykcolor currentcolor currentcolorrendering currentcolorrenderingintent currentcolorscreen currentcolorspace currentcolortransfer currentdash currentdevparams currentdict currentdlhooks currentfile currentflat currentfont currentglobal currentgray currentgstate currenthalftone currenthalftonephase currenthsbcolor currentinterceptcolorspace currentlinecap currentlinejoin currentlinewidth currentmatrix currentmiterlimit currentobjectformat currentoverprint currentpacking currentpagedevice currentpoint currentrelativeneutrals currentreproductioncriteria currentrgbcolor currentscreen currentseparationcolornames currentseparationorder currentshared currentstrokeadjust currentsystemparams currenttransfer currenttrapintent currentundercolorremoval currentuserparams curveto cvi cvlit cvn cvr cvrs cvs cvx daytime def defaultblackoverprint defaulthandleerror defaultmatrix defaultmirrorprint defaultpagemargin defaultpageparams defaultprocesscolors defaulttimeouts definefont defineresource defineuserobject deletefile devdismount devforall devformat deviceinfo devmount devstatus dict dictfull dictstack dictstackoverflow dictstackunderflow disableinterrupt diskonline diskstatus div dlclearcaches dostartpage dosysstart dtransform dup echo eerom eescratch eexec enableinterrupt end endofjob eoclip eofill eq erasepage errorbeep errordict exch exec execdict execform execstack execstackoverflow execuserobject executeonly executive exit exp exposure false file filekind filelinenumber filename filenameforall fileposition fill filter findcharstrings findcolorrenderingintent findencoding findfont findpgfont findresource flattenpath floor flush flushcache flushfile for forall gcheck ge genericpaper get getinterval getknown getsccconfig gettopfile gettoprealfile globaldict glyphshow grestore grestoreall gsave gstate gt handleerror hardwareiomode identmatrix idiv idlefonts idtransform if ifelse image imagemask index ineofill infill initclip initgraphics initialized initializedisk initmatrix instroke internaldict interrupt interruptenabled inueofill inufill inustroke invalidaccess invalidexit invalidfileaccess invalidfont invalidrestore invertmatrix ioerror ismanualfeed itransform jobname jobsource jobstate jobstring jobtimeout known kshow languagelevel lastmode le ledgertray legaltray length lettertray limitcheck lineto listfilesinestack ln load loadcurrentpagedevice loadsetpagedevice log loop lt makefont makepattern manualfeedtimeout margins mark matchtemplate matrix maxlength medialength mediasize mediawidth mirrorprint mod moveto mul ne neg negativeprint newpath noaccess nocurrentpoint not null nulldevice openscc or packedarray pagecount pagemargin pageparams pagestackorder pagetype pathbbox pathforall pop print printererror printermessage printername printerstatus printerupset printobject processcolors product prompt pstack put putinterval quit ramsize rand rangecheck rcheck rcurveto read readhexstring readline readonly readstring realtime rectclip rectfill rectstroke renamefile repeat resetfile resetprinter resolution resourceforall resourcestatus restore reversepath revision rlineto rmoveto roll rootfont rotate round rrand run save scale scalefont sccbatch sccfiles sccinteractive scheck screenforall search selectfont sendctrld sendpcmd sendprinterstate serialnumber serverdict setaccuratescreens setbbox setblackgeneration setblackoverprint setblink setcachedevice setcachedevice2 setcachelimit setcacheparams setcharwidth setcmykcolor setcolor setcolorrendering setcolorrenderingintent setcolorscreen setcolorspace setcolortransfer setdash setdefaultblackoverprint setdefaultmirrorprint setdefaultpagemargin setdefaultpageparams setdefaultprocesscolors setdefaulttimeouts setdevparams setdlhooks setdostartpage setdosysstart seteescratch setexposure setfileposition setflat setfont setglobal setgray setgstate sethalftone sethalftonephase sethardwareiomode sethsbcolor setidlefonts setinterceptcolorspace setjobtimeout setlinecap setlinejoin setlinewidth setmargins setmatrix setmirrorprint setmiterlimit setnegativeprint setobjectformat setoverprint setpacking setpage setpagedevice setpagemargin setpageparams setpageseen setpagestackorder setpagetype setpassword setpattern setprintername setprocesscolors setrelativeneutrals setreproductioncriteria setresolution setrgbcolor setsccbatch setsccconfig setsccinteractive setscreen setshared setsoftwareiomode setstderr setstdio setstrokeadjust setsystemparams settransfer settrapintent setucacheparams setundercolorremoval setuserdiskpercent setuserparams setvmthreshold shareddict show showpage sin softwareiomode sqrt srand stack stackoverflow stackunderflow start startjob startpage status statuscommand statusdict stop stopped store string stringwidth stroke strokepath sub superstop superstopped switchsetting syntaxerror system systemdict tabloidtray timeout token transform translate true truncate type typecheck uappend ucache ucachestatus ueofill ufill undef undefined undefinedfilename undefinedresource undefinedresult undefinefont undefineresource undefineuserobject unmatchedmark unregistered upath userdict userdiskpercent usertime ustroke ustrokepath validatefont version vmreclaim vmstatus waittimeout wcheck where widthshow write writehexstring writeobject writestring xcheck xor xshow xyshow yshow */ /(\b|[\>\{\}\)\[\]\/])\ (\$error|\.error|1(1x17tray|2x24tray|5x24tray)|=(|=|print|s(cratch|tring))\ |FontDirectory|GlobalFontDirectory|ISOLatin1Encoding|Run|S\ (haredFontDirectory|pecialRun|tandardEncoding)|VMerror|a(2tray|3tray\ |4tray|5tray|bs|dd|load|n(chorsearch|d)|ppletalktype|r(c(|n|t(|o))|ray)|s\ (how|tore)|tan|uthors|widthshow)|b(5tray|egin|i(nd|tshift)|l\ (ackoverprint|ink)|roadsheettray|uildtime|ytesavailable)|c(achestatus|e\ (iling|xec)|h(arpath|eck(password|screen))|l(ear(|dictstack|interrupt\ |tomark)|ip(|path)|ose(file|path|scc))|o(lorimage|n(cat(|matrix)\ |figurationerror)|py(|page)|s|unt(|dictstack|execstack|tomark))|show|ur\ (rent(blackgeneration|c(acheparams|mykcolor|olor(|rendering(|intent)|s\ (creen|pace)|transfer))|d(ash|evparams|ict|lhooks)|f(ile|lat|ont)|g(lobal\ |ray|state)|h(alftone(|phase)|sbcolor)|interceptcolorspace|line(cap|join\ |width)|m(atrix|iterlimit)|o(bjectformat|verprint)|p(a(cking|gedevice)\ |oint)|r(e(lativeneutrals|productioncriteria)|gbcolor)|s(creen|eparation\ (colornames|order)|hared|trokeadjust|ystemparams)|tra(nsfer|pintent)|u\ (ndercolorremoval|serparams))|veto)|v(i|lit|n|r(|s)|s|x))|d(aytime|e(f(\ |ault(blackoverprint|handleerror|m(atrix|irrorprint)|p(age(margin\ |params)|rocesscolors)|timeouts)|ine(font|resource|userobject))|letefile|v\ (dismount|for(all|mat)|iceinfo|mount|status))|i(ct(|full|stack(|overflow\ |underflow))|s(ableinterrupt|k(online|status))|v)|lclearcaches|os(tartpage\ |ysstart)|transform|up)|e(cho|e(rom|scratch|xec)|n(ableinterrupt|d(\ |ofjob))|o(clip|fill)|q|r(asepage|ror(beep|dict))|x(ch|ec(|dict|form|stack\ (|overflow)|u(serobject|t(eonly|ive)))|it|p(|osure)))|f(alse|i(l(e(|kind\ |linenumber|name(|forall)|position)|l|ter)|nd(c(harstrings\ |olorrenderingintent)|encoding|font|pgfont|resource))|l(attenpath|oor\ |ush(|cache|file))|or(|all))|g(check|e(|nericpaper|t(|interval|known\ |sccconfig|top(file|realfile)))|l(obaldict|yphshow)|restore(|all)|s(ave\ |tate)|t)|ha(ndleerror|rdwareiomode)|i(d(entmatrix|iv|lefonts|transform)\ |f(|else)|mage(|mask)|n(dex|eofill|fill|it(clip|graphics|ialized(|isk)\ |matrix)|stroke|ter(naldict|rupt(|enabled))|u(eofill|fill|stroke)|v(alid\ (access|exit|f(ileaccess|ont)|restore)|ertmatrix))|oerror|smanualfeed\ |transform)|job(name|s(ource|t(ate|ring))|timeout)|k(nown|show)|l(a\ (nguagelevel|stmode)|e(|dgertray|galtray|ngth|ttertray)|i(mitcheck|neto\ |stfilesinestack)|n|o(ad(|currentpagedevice|setpagedevice)|g|op)|t)|m(a\ (ke(font|pattern)|nualfeedtimeout|r(gins|k)|t(chtemplate|rix)|xlength)\ |edia(length|size|width)|irrorprint|o(d|veto)|ul)|n(e(|g(|ativeprint)\ |wpath)|o(access|currentpoint|t)|ull(|device))|o(penscc|r)|p(a(ckedarray\ |ge(count|margin|params|stackorder|type)|th(bbox|forall))|op|r(int(|er\ (error|message|name|status|upset)|object)|o(cesscolors|duct|mpt))|stack\ |ut(|interval))|quit|r(a(msize|n(d|gecheck))|c(heck|urveto)|e(a(d(\ |hexstring|line|only|string)|ltime)|ct(clip|fill|stroke)|namefile|peat|s\ (et(file|printer)|o(lution|urce(forall|status))|tore)|v(ersepath|ision))\ |lineto|moveto|o(ll|otfont|tate|und)|rand|un)|s(ave|c(ale(|font)|c(batch\ |files|interactive)|heck|reenforall)|e(arch|lectfont|nd(ctrld|p(cmd\ |rinterstate))|r(ialnumber|verdict)|t(accuratescreens|b(box|l(ack\ (generation|overprint)|ink))|c(ache(device(|2)|limit|params)|harwidth\ |mykcolor|olor(|rendering(|intent)|s(creen|pace)|transfer))|d(ash|e(fault\ (blackoverprint|mirrorprint|p(age(margin|params)|rocesscolors)|timeouts)\ |vparams)|lhooks|os(tartpage|ysstart))|e(escratch|xposure)|f(ileposition\ |lat|ont)|g(lobal|ray|state)|h(a(lftone(|phase)|rdwareiomode)|sbcolor)|i\ (dlefonts|nterceptcolorspace)|jobtimeout|line(cap|join|width)|m(a(rgins\ |trix)|i(rrorprint|terlimit))|negativeprint|o(bjectformat|verprint)|p(a\ (cking|ge(|device|margin|params|s(een|tackorder)|type)|ssword|ttern)|r\ (intername|ocesscolors))|r(e(lativeneutrals|productioncriteria|solution)\ |gbcolor)|s(c(c(batch|config|interactive)|reen)|hared|oftwareiomode|t(d\ (err|io)|rokeadjust)|ystemparams)|tra(nsfer|pintent)|u(cacheparams\ |ndercolorremoval|ser(diskpercent|params))|vmthreshold))|h(areddict|ow(\ |page))|in|oftwareiomode|qrt|rand|t(a(ck(|overflow|underflow)|rt(|job\ |page)|tus(|command|dict))|o(p(|ped)|re)|r(ing(|width)|oke(|path)))|u(b\ |perstop(|ped))|witchsetting|y(ntaxerror|stem(|dict)))|t(abloidtray|imeout\ |oken|r(ans(form|late)|u(e|ncate))|ype(|check))|u(append|cache(|status)\ |eofill|fill|n(def(|ine(d(|filename|res(ource|ult))|font|resource\ |userobject))|matchedmark|registered)|path|s(er(di(ct|skpercent)|time)\ |troke(|path)))|v(alidatefont|ersion|m(reclaim|status))|w(aittimeout|check\ |here|idthshow|rite(|hexstring|object|string))|x(check|or|show|yshow)\ |yshow)\ (\b|[\<\{\}\(\[\]\/])/ { keyword_face (true); language_print ($0); keyword_face (false); } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/sh.st0000644000175000017500000000220011132443251013400 00000000000000/** * Name: sh * Description: Bourne shell programming language. * Author: Juergen Kahrs */ state sh extends HighlightEntry { /* Comments. */ /#/ { comment_face (true); language_print ($0); call (eat_one_line); comment_face (false); } /* String constants. */ /\"/ { string_face (true); language_print ($0); call (c_string); string_face (false); } /* Ignore escaped quote marks */ /\\\"/ { language_print ($0); } /\\\'/ { language_print ($0); } /\\\`/ { language_print ($0); } /* Excutable script. */ /^#!/ { reference_face (true); language_print ($0); call (eat_one_line); reference_face (false); } /* Keywords. */ /\b(CDPATH|HOME|IFS|MAIL((CHECK)?|(PATH)?)|P(ATH|S(1|2))|SH(ACCT|ELL)|\ break|c(ase|d|ontinue)|do(ne)?|e(cho|lse|sac|val|x(ec|it|port))|f(i|or)|\ getopts|hash|i[fn]|limit|newgrp|pwd|re(ad(only)?|turn)|s(et|hift)|\ t(est|hen|imes|rap|ype)|u(limit|mask|n(limit|set))|w(ait|hile))\b/ { keyword_face (true); language_print ($0); keyword_face (false); } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/changelog.st0000644000175000017500000000254211132443251014726 00000000000000/** * Name: changelog * Description: ChangeLog files. * Author: Markku Rossi */ state changelog extends HighlightEntry { /* Date entries. Both new and old formats. */ /^([^ \t]........[0-9: ]*)([^<]+)(<)([A-Za-z0-9_.-]+@[A-Za-z0-9_.-]+)(>)/ { string_face (true); language_print ($1); string_face (false); reference_face (true); language_print ($2); reference_face (false); language_print ($3); variable_name_face (true); language_print ($4); variable_name_face (false); language_print ($5); } /* File descriptions with function names. */ /(^\t\* )([^\(]+)(\()([^\)]+)(\):)/ { language_print ($1); function_name_face (true); language_print ($2); function_name_face (false); language_print ($3); keyword_face (true); language_print ($4); keyword_face (false); language_print ($5); } /* File descriptions without function names. */ /(^\t\* )([^ :]+)(:)/ { language_print ($1); function_name_face (true); language_print ($2); function_name_face (false); language_print ($3); } /* Function name descriptions without file names. */ /(^\t\()([^\)]+)(\):)/ { language_print ($1); keyword_face (true); language_print ($2); keyword_face (false); language_print ($3); } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/sql.st0000644000175000017500000002246211132443251013601 00000000000000/** * Name: sql * Description: Sybase 11 SQL. * Author: Chris Jack */ state sql_comment extends Highlight { /\\\/\*/ { language_print ($0); call (sql_comment); } /\*\\\// { language_print ($0); return; } } state sql_string extends Highlight { /\\\\./ { language_print ($0); } /[\']/ { language_print ($0); return; } } state sql extends HighlightEntry { /* Comments. */ /\/\*/ { comment_face (true); language_print ($0); call (sql_comment); comment_face (false); } /* String constants. */ /\"/ { string_face (true); language_print ($0); call (c_string); string_face (false); } /* Character constants. */ /[\']/ { string_face (true); language_print ($0); call (sql_string); string_face (false); } /* Keywords. */ /\b(\ [Aa][Bb][Ss]|\ [Aa][Cc][Oo][Ss]|\ [Aa][Dd][Dd]|\ [Aa][Ll][Ll]|\ [Aa][Ll][Ll][Oo][Ww]_[Dd][Uu][Pp]_[Rr][Oo][Ww]|\ [Aa][Ll][Tt][Ee][Rr]|\ [Aa][Nn][Dd]|\ [Aa][Nn][Ss][Ii][Nn][Uu][Ll][Ll]|\ [Aa][Nn][Ss][Ii]_[Pp][Ee][Rr][Mm][Ii][Ss][Ss][Ii][Oo][Nn][Ss]|\ [Aa][Nn][Yy]|\ [Aa][Rr][Ii][Tt][Hh]_[Oo][Vv][Ee][Rr][Ff][Ll][Oo][Ww]|\ [Aa][Rr][Ii][Tt][Hh][Aa][Bb][Oo][Rr][Tt]|\ [Aa][Rr][Ii][Tt][Hh][Ii][Gg][Nn][Oo][Rr][Ee]|\ [Aa][Ss]|\ [Aa][Ss][Cc]|\ [Aa][Ss][Cc][Ii][Ii]|\ [Aa][Ss][Ii][Nn]|\ [Aa][Tt]|\ [Aa][Tt][Aa][Nn]|\ [Aa][Tt][Nn]2|\ [Aa][Uu][Tt][Hh][Oo][Rr][Ii][Zz][Aa][Tt][Ii][Oo][Nn]|\ [Aa][Uu][Tt][Oo]|\ [Aa][Vv][Gg]|\ [Bb][Ee][Gg][Ii][Nn]|\ [Bb][Ee][Tt][Ww][Ee][Ee][Nn]|\ [Bb][Ii][Nn][Aa][Rr][Yy]|\ [Bb][Rr][Ee][Aa][Kk]|\ [Bb][Rr][Oo][Ww][Ss][Ee]|\ [Bb][Uu][Ll][Kk]|\ [Bb][Uu][Ll][Kk][Cc][Oo][Pp][Yy]|\ [Bb][Yy]|\ [Cc][Aa][Ss][Cc][Aa][Dd][Ee]|\ [Cc][Ee][Ii][Ll][Ii][Nn][Gg]|\ [Cc][Hh][Aa][Ii][Nn][Ee][Dd]|\ [Cc][Hh][Aa][Rr]|\ [Cc][Hh][Aa][Rr]_[Cc][Oo][Nn][Vv][Ee][Rr][Tt]|\ [Cc][Hh][Aa][Rr]_[Ll][Ee][Nn][Gg][Tt][Hh]|\ [Cc][Hh][Aa][Rr][Aa][Cc][Tt][Ee][Rr]|\ [Cc][Hh][Aa][Rr][Ii][Nn][Dd][Ee][Xx]|\ [Cc][Hh][Ee][Cc][Kk]|\ [Cc][Hh][Ee][Cc][Kk][Pp][Oo][Ii][Nn][Tt]|\ [Cc][Ll][Oo][Ss][Ee]|\ [Cc][Ll][Uu][Ss][Tt][Ee][Rr][Ee][Dd]|\ [Cc][Oo][Ll]_[Ll][Ee][Nn][Gg][Tt][Hh]|\ [Cc][Oo][Ll]_[Nn][Aa][Mm][Ee]|\ [Cc][Oo][Mm][Mm][Ii][Tt]|\ [Cc][Oo][Mm][Pp][Uu][Tt][Ee]|\ [Cc][Oo][Nn][Ff][Ii][Rr][Mm]|\ [Cc][Oo][Nn][Ss][Tt][Rr][Aa][Ii][Nn][Tt]|\ [Cc][Oo][Nn][Tt][Ii][Nn][Uu][Ee]|\ [Cc][Oo][Nn][Tt][Rr][Oo][Ll][Rr][Oo][Ww]|\ [Cc][Oo][Nn][Vv][Ee][Rr][Tt]|\ [Cc][Oo][Ss]|\ [Cc][Oo][Tt]|\ [Cc][Oo][Uu][Nn][Tt]|\ [Cc][Rr][Ee][Aa][Tt][Ee]|\ [Cc][Uu][Rr][Rr][Ee][Nn][Tt]|\ [Cc][Uu][Rr][Ss][Oo][Rr]|\ [Cc][Uu][Rr][Uu][Nn][Rr][Ee][Ss][Ee][Rr][Vv][Ee][Dd][Pp][Gg][Ss]|\ [Dd][Aa][Tt][Aa]_[Pp][Gg][Ss]|\ [Dd][Aa][Tt][Aa][Bb][Aa][Ss][Ee]|\ [Dd][Aa][Tt][Aa][Ll][Ee][Nn][Gg][Tt][Hh]|\ [Dd][Aa][Tt][Ee][Aa][Dd][Dd]|\ [Dd][Aa][Tt][Ee][Dd][Ii][Ff][Ff]|\ [Dd][Aa][Tt][Ee][Ff][Ii][Rr][Ss][Tt]|\ [Dd][Aa][Tt][Ee][Ff][Oo][Rr][Mm][Aa][Tt]|\ [Dd][Aa][Tt][Ee][Nn][Aa][Mm][Ee]|\ [Dd][Aa][Tt][Ee][Pp][Aa][Rr][Tt]|\ [Dd][Aa][Tt][Ee][Tt][Ii][Mm][Ee]|\ [Dd][Bb]_[Ii][Dd]|\ [Dd][Bb]_[Nn][Aa][Mm][Ee]|\ [Dd][Bb][Cc][Cc]|\ [Dd][Ee][Aa][Ll][Ll][Oo][Cc][Aa][Tt][Ee]|\ [Dd][Ee][Cc][Ii][Mm][Aa][Ll]|\ [Dd][Ee][Cc][Ll][Aa][Rr][Ee]|\ [Dd][Ee][Ff][Aa][Uu][Ll][Tt]|\ [Dd][Ee][Ff][Ii][Nn][Ee]|\ [Dd][Ee][Gg][Rr][Ee][Ee][Ss]|\ [Dd][Ee][Ll][Ee][Tt][Ee]|\ [Dd][Ee][Ss][Cc]|\ [Dd][Ii][Ff][Ff][Ee][Rr][Ee][Nn][Cc][Ee]|\ [Dd][Ii][Ss][Kk]|\ [Dd][Ii][Ss][Tt][Ii][Nn][Cc][Tt]|\ [Dd][Oo][Uu][Bb][Ll][Ee]|\ [Dd][Rr][Oo][Pp]|\ [Dd][Uu][Mm][Mm][Yy]|\ [Dd][Uu][Mm][Pp]|\ [Ee][Ll][Ss][Ee]|\ [Ee][Nn][Dd]|\ [Ee][Nn][Dd][Tt][Rr][Aa][Nn]|\ [Ee][Rr][Rr][Ll][Vv][Ll]|\ [Ee][Rr][Rr][Oo][Rr]|\ [Ee][Rr][Rr][Oo][Rr][Dd][Aa][Tt][Aa]|\ [Ee][Rr][Rr][Oo][Rr][Ee][Xx][Ii][Tt]|\ [Ee][Ss][Cc][Aa][Pp][Ee]|\ [Ee][Xx][Cc][Ee][Pp][Tt]|\ [Ee][Xx][Ee][Cc][Uu][Tt][Ee]|\ [Ee][Xx][Ii][Ss][Tt][Ss]|\ [Ee][Xx][Ii][Tt]|\ [Ee][Xx][Pp]|\ [Ff][Ee][Tt][Cc][Hh]|\ [Ff][Ii][Ll][Ll][Ff][Aa][Cc][Tt][Oo][Rr]|\ [Ff][Ii][Pp][Ss][Ff][Ll][Aa][Gg][Gg][Ee][Rr]|\ [Ff][Ll][Oo][Aa][Tt]|\ [Ff][Ll][Oo][Oo][Rr]|\ [Ff][Ll][Uu][Ss][Hh][Mm][Ee][Ss][Ss][Aa][Gg][Ee]|\ [Ff][Oo][Rr]|\ [Ff][Oo][Rr][Ee][Ii][Gg][Nn]|\ [Ff][Rr][Oo][Mm]|\ [Gg][Ee][Tt][Dd][Aa][Tt][Ee]|\ [Gg][Oo][Tt][Oo]|\ [Gg][Rr][Aa][Nn][Tt]|\ [Gg][Rr][Oo][Uu][Pp]|\ [Hh][Aa][Vv][Ii][Nn][Gg]|\ [Hh][Ee][Xx][Tt][Oo][Ii][Nn][Tt]|\ [Hh][Oo][Ll][Dd][Ll][Oo][Cc][Kk]|\ [Hh][Oo][Ss][Tt]_[Nn][Aa][Mm][Ee]|\ [Ii][Dd][Ee][Nn][Tt][Ii][Tt][Yy]|\ [Ii][Dd][Ee][Nn][Tt][Ii][Tt][Yy]_[Ii][Nn][Ss][Ee][Rr][Tt]|\ [Ii][Ff]|\ [Ii][Gg][Nn][Oo][Rr][Ee]_[Dd][Uu][Pp]_[Kk][Ee][Yy]|\ [Ii][Gg][Nn][Oo][Rr][Ee]_[Dd][Uu][Pp]_[Rr][Oo][Ww]|\ [Ii][Mm][Aa][Gg][Ee]|\ [Ii][Nn]|\ [Ii][Nn][Dd][Ee][Xx]|\ [Ii][Nn][Dd][Ee][Xx]_[Cc][Oo][Ll]|\ [Ii][Nn][Ss][Ee][Rr][Tt]|\ [Ii][Nn][Tt]|\ [Ii][Nn][Tt][Ee][Gg][Ee][Rr]|\ [Ii][Nn][Tt][Ee][Rr][Ss][Ee][Cc][Tt]|\ [Ii][Nn][Tt][Oo]|\ [Ii][Nn][Tt][Tt][Oo][Hh][Ee][Xx]|\ [Ii][Oo]|\ [Ii][Ss]|\ [Ii][Ss][Nn][Uu][Ll][Ll]|\ [Ii][Ss][Oo][Ll][Aa][Tt][Ii][Oo][Nn]|\ [Kk][Ee][Yy]|\ [Kk][Ii][Ll][Ll]|\ [Ll][Aa][Nn][Gg][Uu][Aa][Gg][Ee]|\ [Ll][Cc][Tt]_[Aa][Dd][Mm][Ii][Nn]|\ [Ll][Ee][Vv][Ee][Ll]|\ [Ll][Ii][Kk][Ee]|\ [Ll][Ii][Nn][Ee][Nn][Oo]|\ [Ll][Oo][Aa][Dd]|\ [Ll][Oo][Gg]|\ [Ll][Oo][Gg]10|\ [Ll][Oo][Ww][Ee][Rr]|\ [Ll][Rr][Uu]|\ [Ll][Tt][Rr][Ii][Mm]|\ [Mm][Aa][Xx]|\ [Mm][Ii][Nn]|\ [Mm][Ii][Rr][Rr][Oo][Rr]|\ [Mm][Ii][Rr][Rr][Oo][Rr][Ee][Xx][Ii][Tt]|\ [Mm][Oo][Nn][Ee][Yy]|\ [Mm][Rr][Uu]|\ [Nn][Aa][Tt][Ii][Oo][Nn][Aa][Ll]|\ [Nn][Cc][Hh][Aa][Rr]|\ [Nn][Oo]_[Ee][Rr][Rr][Oo][Rr]|\ [Nn][Oo][Cc][Oo][Uu][Nn][Tt]|\ [Nn][Oo][Ee][Xx][Ee][Cc]|\ [Nn][Oo][Hh][Oo][Ll][Dd][Ll][Oo][Cc][Kk]|\ [Nn][Oo][Nn][Cc][Ll][Uu][Ss][Tt][Ee][Rr][Ee][Dd]|\ [Nn][Oo][Tt]|\ [Nn][Uu][Ll][Ll]|\ [Nn][Uu][Mm][Ee][Rr][Ii][Cc]|\ [Nn][Uu][Mm][Ee][Rr][Ii][Cc]_[Tt][Rr][Uu][Nn][Cc][Aa][Tt][Ii][Oo][Nn]|\ [Nn][Vv][Aa][Rr][Cc][Hh][Aa][Rr]|\ [Oo][Bb][Jj][Ee][Cc][Tt]_[Ii][Dd]|\ [Oo][Bb][Jj][Ee][Cc][Tt]_[Nn][Aa][Mm][Ee]|\ [Oo][Ff]|\ [Oo][Ff][Ff]|\ [Oo][Ff][Ff][Ss][Ee][Tt][Ss]|\ [Oo][Nn]|\ [Oo][Nn][Cc][Ee]|\ [Oo][Nn][Ll][Yy]|\ [Oo][Pp][Ee][Nn]|\ [Oo][Pp][Tt][Ii][Oo][Nn]|\ [Oo][Rr]|\ [Oo][Rr][Dd][Ee][Rr]|\ [Oo][Vv][Ee][Rr]|\ [Pp][Aa][Rr][Aa][Mm]|\ [Pp][Aa][Rr][Ss][Ee][Oo][Nn][Ll][Yy]|\ [Pp][Aa][Tt][Ii][Nn][Dd][Ee][Xx]|\ [Pp][Ee][Rr][Mm][Aa][Nn][Ee][Nn][Tt]|\ [Pp][Ii]|\ [Pp][Ll][Aa][Nn]|\ [Pp][Oo][Ww][Ee][Rr]|\ [Pp][Rr][Ee][Cc][Ii][Ss][Ii][Oo][Nn]|\ [Pp][Rr][Ee][Ff][Ee][Tt][Cc][Hh]|\ [Pp][Rr][Ee][Pp][Aa][Rr][Ee]|\ [Pp][Rr][Ii][Mm][Aa][Rr][Yy]|\ [Pp][Rr][Ii][Nn][Tt]|\ [Pp][Rr][Ii][Vv][Ii][Ll][Ee][Gg][Ee][Ss]|\ [Pp][Rr][Oo][Cc]|\ [Pp][Rr][Oo][Cc][Ii][Dd]|\ [Pp][Rr][Oo][Cc]_[Rr][Oo][Ll][Ee]|\ [Pp][Rr][Oo][Cc][Ee][Dd][Uu][Rr][Ee]|\ [Pp][Rr][Oo][Cc][Ee][Ss][Ss][Ee][Xx][Ii][Tt]|\ [Pp][Uu][Bb][Ll][Ii][Cc]|\ [Qq][Uu][Oo][Tt][Ee][Dd]_[Ii][Dd][Ee][Nn][Tt][Ii][Ff][Ii][Ee][Rr]|\ [Rr][Aa][Dd][Ii][Aa][Nn][Ss]|\ [Rr][Aa][Ii][Ss][Ee][Rr][Rr][Oo][Rr]|\ [Rr][Aa][Nn][Dd]|\ [Rr][Ee][Aa][Dd]|\ [Rr][Ee][Aa][Dd][Tt][Ee][Xx][Tt]|\ [Rr][Ee][Aa][Ll]|\ [Rr][Ee][Cc][Oo][Nn][Ff][Ii][Gg][Uu][Rr][Ee]|\ [Rr][Ee][Ff][Ee][Rr][Ee][Nn][Cc][Ee][Ss]|\ [Rr][Ee][Pp][Ll][Aa][Cc][Ee]|\ [Rr][Ee][Pp][Ll][Ii][Cc][Aa][Tt][Ee]|\ [Rr][Ee][Ss][Ee][Rr][Vv][Ee][Dd]_[Pp][Gg][Ss]|\ [Rr][Ee][Ss][Tt][Rr][Ee][Ee]|\ [Rr][Ee][Tt][Uu][Rr][Nn]|\ [Rr][Ee][Vv][Ee][Rr][Ss][Ee]|\ [Rr][Ee][Vv][Oo][Kk][Ee]|\ [Rr][Ii][Gg][Hh][Tt]|\ [Rr][Oo][Ll][Ee]|\ [Rr][Oo][Ll][Ll][Bb][Aa][Cc][Kk]|\ [Rr][Oo][Uu][Nn][Dd]|\ [Rr][Oo][Ww][Cc][Nn][Tt]|\ [Rr][Oo][Ww][Cc][Oo][Uu][Nn][Tt]|\ [Rr][Oo][Ww][Ss]|\ [Rr][Tt][Rr][Ii][Mm]|\ [Rr][Uu][Ll][Ee]|\ [Ss][Aa][Vv][Ee]|\ [Ss][Cc][Hh][Ee][Mm][Aa]|\ [Ss][Ee][Ll][Ee][Cc][Tt]|\ [Ss][Ee][Ll][Ff]_[Rr][Ee][Cc][Uu][Rr][Ss][Ii][Oo][Nn]|\ [Ss][Ee][Tt]|\ [Ss][Ee][Tt][Uu][Ss][Ee][Rr]|\ [Ss][Hh][Aa][Rr][Ee][Dd]|\ [Ss][Hh][Oo][Ww]_[Rr][Oo][Ll][Ee]|\ [Ss][Hh][Oo][Ww][Pp][Ll][Aa][Nn]|\ [Ss][Hh][Uu][Tt][Dd][Oo][Ww][Nn]|\ [Ss][Ii][Gg][Nn]|\ [Ss][Ii][Nn]|\ [Ss][Mm][Aa][Ll][Ll][Dd][Aa][Tt][Ee][Tt][Ii][Mm][Ee]|\ [Ss][Mm][Aa][Ll][Ll][Ii][Nn][Tt]|\ [Ss][Mm][Aa][Ll][Ll][Mm][Oo][Nn][Ee][Yy]|\ [Ss][Oo][Uu][Nn][Dd][Ee][Xx]|\ [Ss][Pp][Aa][Cc][Ee]|\ [Ss][Qq][Rr][Tt]|\ [Ss][Tt][Aa][Tt][Ee][Mm][Ee][Nn][Tt]|\ [Ss][Tt][Aa][Tt][Ii][Ss][Tt][Ii][Cc][Ss]|\ [Ss][Tt][Rr]|\ [Ss][Tt][Rr][Ii][Nn][Gg]_[Rr][Tt][Rr][Uu][Nn][Cc][Aa][Tt][Ii][Oo][Nn]|\ [Ss][Tt][Rr][Ii][Pp][Ee]|\ [Ss][Tt][Uu][Ff][Ff]|\ [Ss][Uu][Bb][Qq][Uu][Ee][Rr][Yy][Cc][Aa][Cc][Hh][Ee]|\ [Ss][Uu][Bb][Ss][Tt][Rr][Ii][Nn][Gg]|\ [Ss][Uu][Mm]|\ [Ss][Uu][Ss][Ee][Rr]_[Ii][Dd]|\ [Ss][Uu][Ss][Ee][Rr]_[Nn][Aa][Mm][Ee]|\ [Ss][Yy][Bb]_[Ii][Dd][Ee][Nn][Tt][Ii][Tt][Yy]|\ [Tt][Aa][Bb][Ll][Ee]|\ [Tt][Aa][Nn]|\ [Tt][Ee][Mm][Pp][Oo][Rr][Aa][Rr][Yy]|\ [Tt][Ee][Rr][Mm][Ii][Nn][Aa][Tt][Ee]|\ [Tt][Ee][Xx][Tt]|\ [Tt][Ee][Xx][Tt][Ss][Ii][Zz][Ee]|\ [Tt][Ii][Mm][Ee]|\ [Tt][Ii][Nn][Yy][Ii][Nn][Tt]|\ [Tt][Oo]|\ [Tt][Rr][Aa][Nn][Ss][Aa][Cc][Tt][Ii][Oo][Nn]|\ [Tt][Rr][Ii][Gg][Gg][Ee][Rr]|\ [Tt][Rr][Uu][Nn][Cc][Aa][Tt][Ee]|\ [Tt][Ss][Ee][Qq][Uu][Aa][Ll]|\ [Uu][Nn][Ii][Oo][Nn]|\ [Uu][Nn][Ii][Qq][Uu][Ee]|\ [Uu][Pp][Dd][Aa][Tt][Ee]|\ [Uu][Pp][Pp][Ee][Rr]|\ [Uu][Ss][Ee]|\ [Uu][Ss][Ee][Dd]_[Pp][Gg][Ss]|\ [Uu][Ss][Ee][Rr]|\ [Uu][Ss][Ee][Rr]_[Ii][Dd]|\ [Uu][Ss][Ee][Rr]_[Nn][Aa][Mm][Ee]|\ [Uu][Ss][Ee][Rr]_[Oo][Pp][Tt][Ii][Oo][Nn]|\ [Uu][Ss][Ii][Nn][Gg]|\ [Vv][Aa][Ll][Ii][Dd]_[Nn][Aa][Mm][Ee]|\ [Vv][Aa][Ll][Ii][Dd]_[Uu][Ss][Ee][Rr]|\ [Vv][Aa][Ll][Uu][Ee][Ss]|\ [Vv][Aa][Rr][Bb][Ii][Nn][Aa][Rr][Yy]|\ [Vv][Aa][Rr][Cc][Hh][Aa][Rr]|\ [Vv][Aa][Rr][Yy][Ii][Nn][Gg]|\ [Vv][Ii][Ee][Ww]|\ [Ww][Aa][Ii][Tt][Ff][Oo][Rr]|\ [Ww][Hh][Ee][Rr][Ee]|\ [Ww][Hh][Ii][Ll][Ee]|\ [Ww][Ii][Tt][Hh]|\ [Ww][Oo][Rr][Kk]|\ [Ww][Rr][Ii][Tt][Ee][Tt][Ee][Xx][Tt]\ )\b/ { keyword_face (true); language_print ($0); keyword_face (false); } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/c_ppline.st0000644000175000017500000001016311132443251014566 00000000000000/* * C preprocessor line handling. This is shared between C, C++, and * Objective-C highlighting rules. */ require_state (c); state c_ppline extends CHighlight { /* Comments within a pre-processor line. */ /\/\*/ { comment_face (true); language_print ($0); call (c_ppline_comment); comment_face (false); } /* Include line. */ /(include)([ \t]+)/ { reference_face (true); language_print ($1); reference_face (false); language_print ($2); call (c_ppline_include); return; } /* Define line. */ /(define)([ \t]+)/ { reference_face (true); language_print ($1); reference_face (false); language_print ($2); call (c_ppline_define); return; } /* Simple directives: (build-re '(undef if ifdef ifndef endif elif else line error pragma)) */ /\b(e(l(if|se)|ndif|rror)|if(|def|ndef)|line|pragma|undef)\b/ { reference_face (true); language_print ($0); reference_face (false); call (c_ppline_tokensequence); return; } /* An unknown pre-processor directive. */ /[a-zA-Z_][^ \t\n]*/ { reference_face (true); language_print ($0); reference_face (false); call (c_ppline_tokensequence); return; } /\\\\\n/ { language_print ($0); } /\n/ { language_print ($0); return; } } state c_ppline_include extends CHighlight { /\"/ { string_face (true); language_print ($0); call (c_string); string_face (false); call (c_ppline_comments_strings_chars); return; } /<[^<>]+>/ { string_face (true); language_print ($0); string_face (false); call (c_ppline_comments_strings_chars); return; } /[a-zA-Z_][a-zA-Z_0-9]*/ { variable_name_face (true); print ($0); variable_name_face (false); call (c_ppline_comments_strings_chars); return; } /\\\\\n/ { language_print ($0); } /\n/ { language_print ($0); return; } } state c_ppline_define extends CHighlight { /([a-zA-Z_][a-zA-Z_0-9]*)(\([^\)]*\))?/ { if (strcmp ($2, "") != 0) { function_name_face (true); language_print ($1); function_name_face (false); language_print ($2); } else { variable_name_face (true); language_print ($1); variable_name_face (false); } call (c_ppline_comments_strings_chars); return; } /\\\\\n/ { language_print ($0); } /\n/ { language_print ($0); return; } } state c_ppline_comments_strings_chars extends CHighlight { /* Comments. */ /\/\*/ { comment_face (true); language_print ($0); call (c_ppline_comment); comment_face (false); } /* String constants. */ /\"/ { string_face (true); language_print ($0); call (c_string); string_face (false); } /* Character constants. */ /'.'|'\\\\.'/ { string_face (true); language_print ($0); string_face (false); } /\\\\\n/ { language_print ($0); } /\n/ { language_print ($0); return; } } state c_ppline_tokensequence extends CHighlight { /* Comments. */ /\/\*/ { comment_face (true); language_print ($0); call (c_ppline_comment); comment_face (false); } /* String constants. */ /\"/ { string_face (true); language_print ($0); call (c_string); string_face (false); } /* Character constants. */ /'.'|'\\\\.'/ { string_face (true); language_print ($0); string_face (false); } /* defined() operators. */ /(defined)(\()([^\)]+)(\))/ { reference_face (true); language_print ($1); reference_face (false); language_print ($2); variable_name_face (true); language_print ($3); variable_name_face (false); language_print ($4); } /* Variable references. */ /\b[a-zA-Z_][a-zA-Z_0-9]*\b/ { variable_name_face (true); language_print ($0); variable_name_face (false); } /\\\\\n/ { language_print ($0); } /\n/ { language_print ($0); return; } } /* Comments within pre-processor directives need escaped newlines. */ state c_ppline_comment extends c_comment { /\\\\\n/ { language_print ($0); } /\n/ { language_print ($0); return; } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/lang_texinfo.st0000644000175000017500000000145511132443251015456 00000000000000 state lang_texinfo { BEGIN { /* Nop since Texinfo doesn't have colors. */ sub map_color (r, g, b) { return ""; } LANGUAGE_SPECIALS = /[{}@]/; sub language_print (str) { str = regsuball (str, /@/, "@@"); str = regsuball (str, /{/, "@{"); str = regsuball (str, /}/, "@}"); print (str); } sub language_symbol (symbol) { return false; } sub header () { print ("@example\n"); } sub trailer () { print ("@end example\n"); } sub face_on (face) { if (face[boldp]) print ("@strong{"); if (face[italicp]) print ("@emph{"); } sub face_off (face) { if (face[italicp]) print ("}"); if (face[boldp]) print ("}"); } return; } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/tcsh.st0000644000175000017500000000672611132443251013750 00000000000000/** * Name: tcsh * Description: TC-Shell script language * Author: Jean-Marc Calvez */ state tcsh extends HighlightEntry { /* Comments. From sh description */ /#/ { comment_face (true); language_print ($0); call (eat_one_line); comment_face (false); } /* String constants. From sh */ /\"/ { string_face (true); language_print ($0); call (c_string); string_face (false); } /* Ignore escaped quote marks */ /\\\"/ { language_print ($0); } /\\\'/ { language_print ($0); } /\\\`/ { language_print ($0); } /* Excutable script. From sh */ /^#!/ { reference_face (true); language_print ($0); call (eat_one_line); reference_face (false); } /* Keywords. : (build-re '(% : @ alias alloc bg bindkey break breaksw builtins bye case case cd chdir complete continue default dirs echo echotc else end endif endsw eval exec exit fg filetest foreach getspath getxvers glob goto hashstat history hup if inlib jobs kill limit log login logout ls-F migrate newgrp nice nohup notify onintr popd printenv pushd rehash repeat rootnode sched set setenv setpath setspath settc setty setxvers shift source stop suspend switch telltc time umask unalias uncomplete unhash universe unlimit unset unsetenv ver wait warp watchlog where which while)) */ /\b(%|:|@|al(ias|loc)|b(g|indkey|reak(|sw)|uiltins|ye)\ |c(ase()|d|hdir|o(mplete|ntinue))|d(efault|irs)\ |e(cho(|tc)|lse|nd(|if|sw)|val|x(ec|it))|f(g|iletest|oreach)\ |g(et(spath|xvers)|lob|oto)|h(ashstat|istory|up)|i(f|nlib)|jobs|kill\ |l(imit|og(|in|out)|s-F)|migrate|n(ewgrp|ice|o(hup|tify))|onintr\ |p(opd|rintenv|ushd)|r(e(hash|peat)|ootnode)\ |s(ched|et(|env|path|spath|t(c|y)|xvers)|hift|ource|top|uspend|witch)\ |t(elltc|ime)|u(mask|n(alias|complete|hash|iverse|limit|set(|env)))\ |ver|w(a(it|rp|tchlog)|h(ere|i(ch|le))))\b/ { keyword_face (true); language_print ($0); keyword_face (false); } /* Special aliases: (build-re '(beepcmd cwdcmd periodic precmd shell)) Predefined variables: (build-re '(addsuffix afsuser ampm argv autocorrect autoexpand autolist autologout backslash_quote cdpath correct cwd dextract dirsfile dirstack dunique echo echo_style edit ellipsis fignore filec gid histchars histdup histfile histlist history home ignoreeof inputmode listjobs listlinks listmax listmaxrows loginsh mail matchbeep nobeep noclobber noglob nokanji nonomatch nostat notify oid owd path printexitvalue prompt prompt2 prompt3 pushdtohome pushdsilent recexact recognize_only_executables rmstar savedirs savehist sched shell shlvl showdots status symlinks tcsh term tperiod tty uid user verbose version visiblebell watch whow wordchars)) */ /\b(a(ddsuffix|fsuser|mpm|rgv|uto(correct|expand|l(ist|ogout)))\ |backslash_quote|c(dpath|orrect|wd)|d(extract|irs(file|tack)|unique)\ |e(cho(|_style)|dit|llipsis)|fi(gnore|lec)|gid\ |h(ist(chars|dup|file|list|ory)|ome)|i(gnoreeof|nputmode)\ |l(ist(jobs|links|max(|rows))|oginsh)|ma(il|tchbeep)\ |no(beep|clobber|glob|kanji|nomatch|stat|tify)|o(id|wd)\ |p(ath|r(intexitvalue|ompt(|2|3))|ushd(silent|tohome))\ |r(ec(exact|ognize_only_executables)|mstar)\ |s(ave(dirs|hist)|ched|h(ell|lvl|owdots)|tatus|ymlinks)\ |t(csh|erm|period|ty)|u(id|ser)|v(er(bose|sion)|isiblebell)\ |w(atch|how|ordchars))\b/ { builtin_face (true); language_print ($0); builtin_face (false); } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/verilog.st0000644000175000017500000000753711132443251014457 00000000000000/** * Name: verilog * Description: Verilog hardware description language * Author: Edward Arthur */ state verilog extends HighlightEntry { /* Verilog takes C++ style comments */ /* Comments. */ /\/\*/ { comment_face (true); language_print ($0); call (c_comment); comment_face (false); } /\/\// { comment_face (true); language_print ($0); call (eat_one_line); comment_face (false); } /* String constants. */ /\"/ { string_face (true); language_print ($0); call (c_string); string_face (false); } /* Macro expansions start with '`' and continue one word. */ /`([a-zA-Z_0-9]+)/ { reference_face (true); language_print ($0); reference_face (false); } /* Keywords. (build-re '(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 $bitstoreal $countdrivers $display $fclose $fdisplay $fmonitor $fopen $fstrobe $fwrite $finish $getpattern $history $incsave $input $itor $key $list $log $monitor $monitoroff $monitoron $nokey $nolog $printtimescale $readmemb $readmemh $realtime $realtobits $reset $reset_count $reset_value $restart $rtoi $save $scale $scope $showscopes $showvariables $showvars $sreadmemb $sreadmemh $stime $stop $strobe $time $timeformat $write $vcdpluson $vcdplusoff $vcdplustraceon $vcdplustraceoff $dumpvars ;; prefix G stands for grave ` Gaccelerate Gautoexpand_vectornets Gcelldefine Gdefault_nettype Gdefine Gelse Gendcelldefine Gendif Gendprotect Gendprotected Gexpand_vectornets Gifdef Ginclude Gnoaccelerate Gnoexpand_vectornets Gnoremove_gatenames Gnoremove_netnames Gnounconnected_drive Gprotect Gprotected Gremove_gatenames Gremove_netnames Gresetall Gtimescale Gunconnected_drive Guselib )) */ /\$(bitstoreal|countdrivers|d(isplay|umpvars)\ |f(close|display|inish|monitor|open|strobe|write)|getpattern|history\ |i(n(csave|put)|tor)|key|l(ist|og)|monitor(|o(ff|n))|no(key|log)\ |printtimescale\ |r(e(a(dmem(b|h)|lt(ime|obits))|s(et(|_(count|value))|tart))|toi)\ |s(ave|c(ale|ope)|how(scopes|var(iables|s))|readmem(b|h)|t(ime|op|robe))\ |time(|format)|vcdplus(o(ff|n)|traceo(ff|n))|write)\b\ |`(a(ccelerate|utoexpand_vectornets)|celldefine|def(ault_nettype|ine)\ |e(lse|nd(celldefine|if|protect(|ed))|xpand_vectornets)|i(fdef|nclude)\ |no(accelerate|expand_vectornets|remove_(gatenames|netnames)\ |unconnected_drive)\ |protect(|ed)|re(move_(gatenames|netnames)|setall)|timescale\ |u(nconnected_drive|selib))\b\ |\b(a(lways|nd|ssign)|b(egin|uf(|if(0|1)))|c(ase(|x|z)|mos)\ |d(e(assign|f(ault|param))|isable)\ |e(dge|lse|nd(|case|function|module|primitive|specify|ta(ble|sk))|vent)\ |f(or(|ce|ever|k)|unction)|highz(0|1)|i(f|n(itial|out|put|teger))|join\ |large|m(acromodule|edium|odule)|n(and|egedge|mos|o(r|t(|if(0|1))))\ |o(r|utput)|p(arameter|mos|osedge|rimitive|ull(0|1|down|up))\ |r(cmos|e(g|lease|peat)|nmos|pmos|tran(|if(0|1)))\ |s(calared|mall|pec(ify|param)|tr(ength|ong(0|1))|upply(0|1))\ |t(a(ble|sk)|ime|r(an(|if(0|1))|i(|0|1|and|or|reg)))|vectored\ |w(a(it|nd)|eak(0|1)|hile|ire|or)|x(nor|or))\b/ { keyword_face (true); language_print ($0); keyword_face (false); } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/style_emacs.st0000644000175000017500000000165311132443251015311 00000000000000 state style_emacs { BEGIN { call(default_faces); if (color) { /* Set colors. */ face_bold[fg_color] = language_color("black"); face_italic[fg_color] = language_color("black"); face_bold_italic[fg_color] = language_color("black"); face_comment[fg_color] = language_color("firebrick"); face_function_name[fg_color] = language_color("blue"); face_variable_name[fg_color] = language_color("dark goldenrod"); face_keyword[fg_color] = language_color("purple"); face_reference[fg_color] = language_color("cadet blue"); face_string[fg_color] = language_color("rosy brown"); face_builtin[fg_color] = language_color("orchid"); face_type[fg_color] = language_color("forest green"); face_highlight[bg_color] = language_color("DarkSeaGreen2"); } else { face_highlight[bg_color] = language_color("LightGrey"); } /* And that's it. */ return; } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/diffs.st0000644000175000017500000000122611132443251014070 00000000000000/** * Name: diffs * Description: side diff * Author: buchal@ifh.bau-verm.uni-karlsruhe.de */ state diffs extends HighlightEntry { /^\t#/ { comment_face (true); language_print ($0); call (eat_one_line); comment_face (false); } /^.*>\t/ { function_name_face (true); language_print ($0); call (eat_one_line); function_name_face (false); } /^.*\|\t/ { reference_face (true); language_print ($0); call (eat_one_line); reference_face (false); } /^.*<$/ { string_face (true); language_print ($0); call (eat_one_line); string_face (false); } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/javascript.st0000644000175000017500000000545011167454254015163 00000000000000/** * Name: javascript * Description: JavaScript language. * Author: Markku Rossi */ from_vrml = 0; state javascript_string extends Highlight { /\\\\./ { language_print ($0); } /[\']/ { language_print ($0); return; } } state javascript_internal extends Highlight { /* Comments. */ /\/\*/ { comment_face (true); language_print ($0); call (c_comment); comment_face (false); } /\/\// { comment_face (true); language_print ($0); call (eat_one_line); comment_face (false); } /* String constants. */ /\"/ { if (from_vrml) { reference_face (true); language_print ($0); reference_face (false); return; } string_face (true); language_print ($0); call (c_string); string_face (false); } /* '' strings. */ /[\']/ { string_face (true); language_print ($0); call (javascript_string); string_face (false); } /* Function definitions. */ /\b(function)([ \t]+)([A-Za-z\$_][A-Za-z\$_0-9]*)([ \t]*\()/ { keyword_face (true); language_print ($1); keyword_face (false); language_print ($2); function_name_face (true); language_print ($3); function_name_face (false); language_print ($4); } /* Keywords. (build-re '( abstract boolean break byte case catch char class const continue default do double else extends false final finally float for function goto if implements import in instanceof int interface long native new null package private protected public return short static super switch synchronized this throw throws transient true try var void while with )) */ /\b(abstract|b(oolean|reak|yte)|c(a(se|tch)|har|lass|on(st|tinue))\ |d(efault|o(|uble))|e(lse|xtends)|f(alse|inal(|ly)|loat|or|unction)\ |goto|i(f|mp(lements|ort)|n(|stanceof|t(|erface)))|long\ |n(ative|ew|ull)|p(ackage|r(ivate|otected)|ublic)|return\ |s(hort|tatic|uper|witch|ynchronized)|t(h(is|row(|s))|r(ansient|ue|y))\ |v(ar|oid)|w(hile|ith))\b/ { keyword_face (true); language_print ($0); keyword_face (false); } /* Built-in objects. (build-re '(Math Date eval parseInt parseFloat)) */ /\b(Date|Math|eval|parse(Float|Int))\b/ { builtin_face (true); language_print ($0); builtin_face (false); } /* Terminator for nested JavaScript programs. */ /<\/[sS][cC][rR][iI][pP][tT]>/ { from_html_terminator = $0; return; } /* Regexes */ /\// { string_face (true); language_print ($0); call (javascript_regex); string_face (false); } } state javascript_regex { /\\\\\\\// { language_print ($0); } /\\\// { language_print ($0); return; } } state javascript extends HighlightEntry { BEGIN { call (javascript_internal); return; } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/idl.st0000644000175000017500000000304511132443251013546 00000000000000/** * Name: idl * Description: IDL (CORBA Interface Definition Language) */ state idl extends HighlightEntry { /* Comments. */ /\/\*/ { comment_face (true); language_print ($0); call (c_comment); comment_face (false); } /\/\// { comment_face (true); language_print ($0); call (eat_one_line); comment_face (false); } /* Character constants. */ /'.'|'\\\\.'/ { string_face (true); language_print ($0); string_face (false); } /* String constants. */ /\"/ { string_face (true); language_print ($0); call (c_string); string_face (false); } /* Pre-processor lines. */ /^#/ { reference_face (true); language_print ($0); call (c_ppline); reference_face (false); } /* Boolean literals */ /\b(TRUE|FALSE)\b/ { string_face (true); language_print ($0); string_face (false); } /* Keywords. (build-re '(any attribute boolean case char const context default double enum exception fixed float in inout interface long module Object octet oneway out native raises readonly sequence short string struct switch typedef unsigned union void wchar wstring)) */ /\b(Object|a(ny|ttribute)|boolean|c(ase|har|on(st|text))|d(efault|ouble)\ |e(num|xception)|f(ixed|loat)|in(|out|terface)|long|module|native\ |o(ctet|neway|ut)|r(aises|eadonly)|s(equence|hort|tr(ing|uct)|witch)\ |typedef|un(ion|signed)|void|w(char|string))\b/ { keyword_face (true); language_print ($0); keyword_face (false); } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/lang_overstrike.st0000644000175000017500000000143011132443251016170 00000000000000 state lang_overstrike { BEGIN { sub map_color (r, g, b) { return ""; } LANGUAGE_SPECIALS = /./; sub language_print (str) { if (italic_flag) print (regsuball (str, /[A-Za-z0-9]/, "_\010$0")); else if (bold_flag) print (regsuball (str, /[^\n]/, "$0\010$0")); else print (str); } sub language_symbol (symbol) { return false; } sub header () { bold_flag = 0; italic_flag = 0; } sub trailer () { } sub face_on (face) { if (face[boldp]) bold_flag = 1; if (face[italicp]) italic_flag = 1; } sub face_off (face) { if (face[boldp]) bold_flag = 0; if (face[italicp]) italic_flag = 0; } return; } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/style_a2ps.st0000644000175000017500000000175011132443251015064 00000000000000 state style_a2ps { BEGIN { call (default_faces); /* Fonts. */ face_type = make_face (italic_font, 0, 1); face_string = make_face ("Times-Roman", 0, 0); if (color) { /* Set colors. */ /* These are incomplete. */ face_bold[fg_color] = language_color ("black"); face_italic[fg_color] = language_color ("black"); face_bold_italic[fg_color] = language_color ("black"); face_comment[fg_color] = language_color ("red"); face_function_name[fg_color] = language_color ("blue"); face_variable_name[fg_color] = language_color ("dark goldenrod"); face_keyword[fg_color] = language_color ("purple"); face_reference[fg_color] = language_color ("cadet blue"); face_string[fg_color] = language_color ("forest green"); face_builtin[fg_color] = language_color ("orchid"); } else { /* Highlighting for b&w / grayscale outputs. */ face_comment[bg_color] = language_color ("gray90"); } return; } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/diffu.st0000644000175000017500000000122311132443251014067 00000000000000/** * Name: diffu * Description: unified diffs * Author: buchal@ifh.bau-verm.uni-karlsruhe.de */ state diffu extends HighlightEntry { /^\@\@/ { comment_face (true); language_print ($0); call (eat_one_line); comment_face (false); } /^-/ { function_name_face (true); language_print ($0); call (eat_one_line); function_name_face (false); } /^+/ { reference_face (true); language_print ($0); call (eat_one_line); reference_face (false); } /^[^\ ]/ { string_face (true); language_print ($0); call (eat_one_line); string_face (false); } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/fortran_pp.st0000644000175000017500000001102711132443251015147 00000000000000/** * Name: fortran_pp * Description: Fortran77 programming language with cpp-statements * Author: Keith Refson * Markku Rossi * Tobias Buchal */ state fortran_string extends Highlight { /[\']/ { language_print ($0); return; } } state fortran_io extends Highlight { /\)/ { language_print ($0); return; } /* IO Keywords. (build-re '(FMT UNIT REC END ERR FILE STATUS ACCESS FORM RECL BLANK IOSTAT EXIST OPENED NUMBER NAME SEQUENTIAL DIRECT FORMATTED UNFORMATTED NEXTREC)) */ /\BbACCESS|BLANK|DIRECT|E(ND|RR|XIST)|F(ILE|MT|ORM(|ATTED))|IOSTAT\ |N(AME|EXTREC|UMBER)|OPENED|REC(|L)|S(EQUENTIAL|TATUS)\ |UN(FORMATTED|IT))\b/ { keyword_face (true); language_print ($0); keyword_face (false); } /* IO Keywords. (build-re '(fmt unit rec end err file status access form recl blank iostat exist opened number name sequential direct formatted unformatted nextrec)) */ /\b(access|blank|direct|e(nd|rr|xist)|f(ile|mt|orm(|atted))|iostat\ |n(ame|extrec|umber)|opened|rec(|l)|s(equential|tatus)\ |un(formatted|it))\b/ { keyword_face (true); language_print ($0); keyword_face (false); } /* Strings in the io statement */ /[\']/ { string_face (true); language_print ($0); call (fortran_string); string_face (false); } } state fortran_pp extends HighlightEntry { /* Comments. */ /(^[cC!\*]|!)/ { comment_face (true); language_print ($0); call (eat_one_line); comment_face (false); } /* String constants. */ /[\']/ { string_face (true); language_print ($0); call (fortran_string); string_face (false); } /* Pre-processor lines. */ /^#/ { reference_face (true); language_print ($0); call (eat_one_line); reference_face (false); } /* Comparators. We have to roll by hand because of the dots - "\b" doesn't delimit here. */ /\.(and|eqv?|g(e|t)|l(e|t)|ne(qv)?|not|or)\./ { keyword_face (true); language_print ($0); keyword_face (false); } /* Comparators. We have to roll by hand because of the dots - "\b" doesn't delimit here. */ /\.(AND|EQV?|G(E|T)|L(E|T)|NE(QV)?|NOT|OR)\./ { keyword_face (true); language_print ($0); keyword_face (false); } /* IO Statement (build-re '(open close read write inquire backspace endfile rewind )) */ /\b(backspace|close|endfile|inquire|open|re(ad|wind)|write)\b/ { keyword_face (true); language_print ($0); keyword_face (false); call (fortran_io); } /* IO Statement (build-re '(OPEN CLOSE READ WRITE INQUIRE BACKSPACE ENDFILE REWIND )) */ /\b(BACKSPACE|CLOSE|ENDFILE|INQUIRE|OPEN|RE(AD|WIND)|WRITE)\b/ { keyword_face (true); language_print ($0); keyword_face (false); call (fortran_io); } /* Keywords. (build-re '( block\ *data call character\\*\[0-9\]+ common complex\\*\[0-9\]+ continue data dimension do double\ *precision else elseif end enddo endfile endif entry equivalence external format function go\ *to if implicit include integer\\*\[0-9\]+ intrinsic logical\\*\[0-9\]+ parameter pause print program real\\*\[0-9\]+ return save stop subroutine then while )) */ /\b(block *data|c(all|haracter(\*[0-9]+)?|o(m(mon|plex(\*[0-9]+)?)|ntinue))\ |d(ata|imension|o(|uble *precision))\ |e(lse(|if)|n(d(|do|file|if)|try)|quivalence|xternal)|f(ormat|unction)\ |go *to|i(f|mplicit|n(clude|t(eger(\*[0-9]+)?|rinsic)))|logical(\*[0-9]+)?\ |p(a(rameter|use)|r(int|ogram))|re(al(\*[0-9]+)?|turn)\ |s(ave|top|ubroutine)|then|while)\b/ { keyword_face (true); language_print ($0); keyword_face (false); } /* Keywords. (build-re '( block\ *data call character\\*\[0-9\]+ COMMON COMPLEX\\*\[0-9\]+ CONTINUE DATA DIMENSION DO DOUBLE\ *PRECISION ELSE ELSEIF END ENDDO ENDFILE ENDIF ENTRY EQUIVALENCE EXTERNAL FORMAT FUNCTION GO\ *TO IF IMPLICIT INCLUDE INTEGER\\*\[0-9\]+ INTRINSIC LOGICAL\\*\[0-9\]+ PARAMETER PAUSE PRINT PROGRAM REAL\\*\[0-9\]+ RETURN SAVE STOP SUBROUTINE THEN WHILE )) */ /\b(BLOCK *DATA|C(ALL|HARACTER(\*[0-9]+)?|O(M(MON|PLEX(\*[0-9]+)?)|NTINUE))\ |D(ATA|IMENSION|O(|UBLE *PRECISION))\ |E(LSE(|IF)|N(D(|DO|FILE|IF)|TRY)|QUIVALENCE|XTERNAL)|F(ORMAT|UNCTION)\ |GO *TO|I(F|MPLICIT|N(CLUDE|T(EGER(\*[0-9]+)?|RINSIC)))|LOGICAL(\*[0-9]+)?\ |P(A(RAMETER|USE)|R(INT|OGRAM))|RE(AL(\*[0-9]+)?|TURN)\ |S(AVE|TOP|UBROUTINE)|THEN|WHILE)\b/ { keyword_face (true); language_print ($0); keyword_face (false); } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/matlab.st0000644000175000017500000001321611132443251014237 00000000000000/** * Name: matlab * Description: Matlab programming language. * Author: Jack Dunn */ m_keyword_re = /\b(break|cl(ear|ose)|e(nd|lse|lseif|rror)|f(or|unction)|if|keyboard|otherwise\ |quit|return|switch|while)\b/; /* Taken fron the Matlab Function Reference, version 5.2 */ m_type_re = /\b(abs|acopy|acos|acosh|acot|acoth|acsc|acsch|addpath|airy|all|and|angle|ans|any\ |arc(cosecant|cosine|cotangent|secant|sine|tangent)|area\ |arename|asech|asin|asinh|atan(|2)|atanh|axes|axis|balance|bar(|3|3h|h)\ |base2dec|bessel(h|i|j|k|y)|beta(|inc|ln)\ |bicgstab|bin2dec|bit(and|cmp|get|max|or|set|shift|xor)|blanks\ |box|brighten|builtin|calendar|cam(dolly|light|lookat|orbit|pan|pos|proj\ |roll|target|up|va|zoom)|capture|case|cat(|ch)|caxis|cd|cdf2rdf\ |cell(|2struct|plot)|cgs|char|chol(|inc|update)|cla(|bel|ss)\ |clc|clf|clock|col(mmd|or(bar|map)|perm)|com(bs|et|et3|pa(n|ss))|computer\ |cond(|eig|est)|conj|con(tour(|3|c|f))|contrast|conv(|2)|convhull|conv\ |copy(file|obj)|corrcoef|cos|cosh|cot|coth|cov|cplxpair|cputime|cross\ |csc|csch|cum(prod|trapz)|cylinder|daspect|date|date(num|str|vec)\ |db(clear|cont|down|mex|quit|stack|status|step|stop|type|up)\ |dd(eadv|eexec|einit|epoke|ereq|eterm|eunadv)|de(al|blank|(c2(base|bin|hex))\ |conv)|default4|del2|delaunay|de(lete|t)|diag|diary|diff|dir|disp\ |dlm(read|writ)|dmperm|double|dragrect|drawnow|dsearch|echo|eig|eigs|ellipj\ |ellipke|eomday|eps|erf(|c|cx)|etime|eval|evalin|exist|exp|expint|expm|eye\ |ezplot|factor|fclose|feather|feof|ferror|feval|fft(|2|n|shift)\ |fget(l|s)|fid|figflag|figure|fileparts|fill|fill3|filter(|2)|find(|obj|str)\ |fix|flip(dim|lr|ud)|floor|flops|fmin(|s)|fopen|format|fplot|fprintf\ |frame(2im|edit)|fread|freqspace|frewind|fscanf|fseek|ftell|full|funm|fwrite\ |fzero|gallery|gamma(|inc|ln)|g(ca|cd|cf|co)|gestalt|get(|field|frame)\ |ginput|global|gmres|gplot|gradient|graymon|grid(|data)|gsvd|gtext|hadamard\ |hankel|hdf|help|hess|hex2(dec|num)|hidden|hilb|hist|hold|home|horzcat\ |hsv2rgb|i|ifft(|2|n|shift)|im2frame|imag|image|imagesc|im(finfo|read|write)\ |ind2sub|Inf|inferiorto|inline|inpolygon|input|int2str|interp(1|2|3|ft|n)\ |intersect|inv|invhilb|ipermute|is(a|cell(|str)|char|empty|equal|field\ |finite|global|handle|hold|ieee|inf|letter|logical|member|nan|numeric\ |object|ppc|prime|real|space|sparse|str|struct|student|unix|vms)\ |j|kron|last(err|warn)|lcm|ldivide|legend(|re)|length|light(|angle|ing)\ |lin2mu|line|linspace|load|log(|10|2|ical)|loglog(|m|space)|lookfor\ |lower|lscov|lu|luinc|magic|mat2str|material|max|mean|median|menu\ |mesh(|c|grid|z)|min|minus|mislocked|mkdir|ml(divide|ock)|mod|more|movie(|in)\ |mpower|mrdivide|mtimes|mu2lin|munlock|NaN|narg(chk|in|out)|nd(grid|ims)\ |newplot|nextpow2|nnls|nnz|nonzeros|norm|normest|not|now|null|num2(cell|str)\ |nzmax|ode(45|file|get|set)|ones|or|orient|orth|pack|pagedlg|pareto|pascal\ |patch|path|pause|pbaspect|pcg|pcode|pcolor|perms|permute|persistent\ |pi|pie(|,3)|pinv|plot(|3|matrix|yy)|plus|pol2cart|polar|poly(|area|der\ |eig|fit|val|valm)|pow2|power|primes|print(|dlg|frame|opt)|prod\ |profile|qmr|qr(|delete|insert)|qtwrite|quad|quad8|quiver(|3)|qz\ |rand(|n|perm)|rank|rat(|s)|rbbox|rcond|rdivide|readsnd|real(|max|min)\ |recordsound|refresh|rem|repmat|reset|reshape|residue|rgb(2hsv|plot)\ |ribbon|rmfield|rmpath|roots|rose|rot90|rotate(|3d)|round|rref(|movie)\ |rsf2csf|save|scatter(|3)|schur|script|sech|semilog(x|y)|set(|diff|feild|xor)\ |shading|shiftdim|sign|sin|sinh|size|slice|sliders|sort|sortrows|sound(|cap)\ |sp(alloc|arse|convert|diags|eak|eye|fun|h2cart|here|inmap|line\ |ones|parms|rand|randn|randsym|rintf|y)|sqrt(|m)|squeeze|sscanf|stairs\ |startup|std|stem(|3)|str(2(cell|num)|cat|cmp|cmpi|ings|just|match|ncmp\ |ncmpi|rep|tok|uct2cell,vcat)|sub(2ind|plot|s(asgn|pace|ref))|sum|superiorto\ |surf(|ace|c|l|norm)|svd(|s)|sym(mmd|rcm)|tan|tanh|tempdir|tempname\ |terminal|text|tic|times|title|toc|toeplitz|trace|transpose|trapz\ |tri(l|mesh|surf|u)|try|tsearch|type|ui(control|getfile|menu|nt8|putfile\ |resume|setcolor|setfont)|uminus|union|unique|unwrap|uplus|upper|varargout\ |vectorize|ver(|sion|tcat)|view|viewmtx|voronoi|wait(bar|for(|buttonpress))\ |warndlg|warning|waterfall|wav(read|write)|weekday|what(|snew)|which|who(|s)\ |wilkinson|wk1(read|write)|writesnd|xlabel|xlgetrange|xlim|xlsetrange|xor\ |ylabel|ylim|zeros|zlabel|zlim|zoom\ )\b/; state m_string extends Highlight { /\\\\./ { language_print ($0); } /[\']/ { language_print ($0); return; } } state matlab extends HighlightEntry { /* Comments. */ /%/ { comment_face (true); language_print ($0); call (eat_one_line); comment_face (false); } /* Continuation. */ /\.\.\./ { keyword_face (true); language_print ($0); keyword_face (false); } /* Matrix start. */ /\[/ { type_face (true); language_print ($0); type_face (false); } /* Matrix end. */ /\]/ { type_face (true); language_print ($0); type_face (false); } m_type_re { type_face (true); language_print ($0); type_face (false); } m_keyword_re { keyword_face (true); language_print($0); keyword_face (false); } /* Transpose. */ /* variable' or )' */ /([a-zA-Z][a-zA-Z_0-9]*|\))([\'])/ { language_print ($1); keyword_face (true); language_print ($2); keyword_face (false); } /* ]' */ /([a-zA-Z][a-zA-Z_0-9]*|])([\'])/ { type_face (true); language_print ($1); type_face (false); keyword_face (true); language_print ($2); keyword_face (false); } /* Strings. */ /* 'any number of characters' */ /[\']/ { string_face (true); language_print ($0); call (m_string); string_face (false); } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/cpp.st0000644000175000017500000000526411132443251013565 00000000000000/** * Name: cpp * Description: C++ programming language. * Author: Markku Rossi */ cpp_type_re = /* Types. (build-re '(auto bool char class complex const double enum extern float friend inline int long private protected public register short signed static struct template typedef union unsigned virtual void volatile)) */ /\b(auto|bool|c(har|lass|o(mplex|nst))|double|e(num|xtern)|f(loat|riend)\ |in(line|t)|long|p(r(ivate|otected)|ublic)|register\ |s(hort|igned|t(atic|ruct))|t(emplate|ypedef)|un(ion|signed)\ |v(irtual|o(id|latile)))\b/; /* * We inherit the C++ state from the C state. This gives us all the * defaults, etc. All we have to do here is to overwrite things that * are not implemented, or are broken. */ state cpp extends c { BEGIN { /* See `c.st' for the comments on this one. */ type_re = cpp_type_re; } /* One line comments. */ /\/\// { comment_face (true); language_print ($0); call (eat_one_line); comment_face (false); } /* Keywords; those missing from C, but not types, goto, or case (build-re '(asm catch delete new operator overload this throw try)) */ /\b(asm|catch|delete|new|o(perator|verload)|t(h(is|row)|ry))\b/ { keyword_face (true); language_print ($0); keyword_face (false); } /* Types. */ cpp_type_re { type_face (true); language_print ($0); type_face (false); } /* Remove false labels. */ /[a-zA-Z0-9_]+::/ { language_print ($0); } /* Labels. Emacs accepts also bare numbers. */ /^([ \t]*)([a-zA-Z0-9_]+)(:)/ { language_print ($1); if (strcmp ($2, "public") == 0 || strcmp ($2, "private") == 0 || strcmp ($2, "protected") == 0) { /* These use the `type' face. */ type_face (true); language_print ($2); type_face (false); } else { reference_face (true); language_print ($2); reference_face (false); } language_print ($3); } /* * Function definitions, but only if you code with the one and only * usable indentation style (GNU). */ /^([a-zA-Z_][a-zA-Z_0-9:~]*)([ \t]*\()/ { function_name_face (true); language_print ($1); function_name_face (false); language_print ($2); } /* Function definitions and prototypes for other (loser) coding styles. */ /^([A-Za-z][a-zA-Z0-9_\&\* ]+)([ \*])([a-zA-Z_][a-zA-Z_0-9:~]*)([ \t]*\()/ { garbage = $1; middle_garbage = $2; function_name = $3; tail_garbage = $4; highlight_types (garbage, cpp_type_re); language_print (middle_garbage); function_name_face (true); language_print (function_name); function_name_face (false); language_print (tail_garbage); } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/outline.st0000644000175000017500000000041511132443251014453 00000000000000/** * Name: outline * Description: Outline text. * Author: Markku Rossi */ state outline extends HighlightEntry { /* Titles. */ /^\*+[ \t]+.+/ { bold(true); language_print($0); bold(false); } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/enscript.st0000644000175000017500000003361711401303415014631 00000000000000/* * States definitions file for GNU Enscript. * Copyright (c) 1997-2003 Markku Rossi. * Author: Markku Rossi * * The latest version of this file can be downloaded from URL: * * http://www.iki.fi/~mtr/genscript/enscript.st */ /* * This file is part of GNU Enscript. * * Enscript is free software: you can redistribute 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. * * Enscript is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Enscript. If not, see . */ /* * $Id: enscript.st,v 1.3 2003/03/05 08:31:31 mtr Exp $ */ /* * Guildelines for writing new highlighting rules for the GNU Enscript. * * - all highlighting states should have a document comment like this: * * /** * * Name: c * * Description: C programming language. * * Author: Author Name * * ... * * It is used by enscript's --help-pretty-print option to print * description about supported highlighting modes. * * - the main entry state (for example, for the C, the state `c') must * be inherited from state `HighlightEntry': * * state c extends HighlightEntry * { * ... * * - all help-states smust be inherited from state `Highlight': * * state c_string extends Highlight * { * ... * * - all printing should be done with the language_print() procedure * instead of the print() primitive. * * - using enscript.el to build regular expressions: * * M-x load-file RET enscript.el RET * * Move in the buffer to the point where the (build-re '()) ends, * that is, after the last closing parenthesis ')'. Then, type: * * C-x C-e * * Magic should happen. * * These rules ensures that enscript's --help-pretty-print option and * the different output languages (HTML, RTF, etc.) work. */ /* This script needs at least this version of the States program. */ prereq ("1.6.2"); /* * Constants, fonts, etc. */ debug = "0"; /* Boolean values. */ true = 1; false = 0; font_spec = "Courier@10"; /* These components are resolved from . */ font = ""; ptsize = ""; /* * Generatel table of contents? This is not supported by all output * languages. */ toc = "0"; /* * The Highlight style. The default style is `emacs' to imitate * Emacs' font lock mode. */ style = "emacs"; /* * Create color outputs? */ color = "1"; /* * Use verbose highlighting rules? */ verbose_highlighting = false; /* * Target language. Possible values are: * - enscript generate enscript special escapes * - html generate HTML * - overstrike generate overstrike (line printers, less) * - texinfo generate Texinfo * - rtf generate Rich Text Format (rtf - MS Word, WordPerfect) * This code can be souched into MS Word or PowerPoint * for a pretty version of the code */ language = "enscript"; /* * How many input files we have. */ num_input_files = "1"; current_input_file = 0; /* * Document title. */ document_title = "Enscript Output"; /* * Global variables for nested highlighting `nested.st'. */ nested_start = "^-+(([ \t]*)([a-zA-Z_0-9]*)([ \t]*))-+$"; nested_start_re = 0; nested_end = "^-+$"; nested_end_re_cached = 0; nested_end_re = 0; nested_default = "passthrough"; /* * Color definitions. */ cindex = 0; rgb_values = list (); sub define_color (name, r, g, b) { rgb_values[cindex] = list (name, r, g, b); cindex = cindex + 1; } sub color_index (name) { local i; for (i = 0; i < length (rgb_values); i = i + 1) if (strcmp (rgb_values[i][0], name) == 0) return i; return -1; } sub language_color (name) { local idx; idx = color_index (name); if (idx < 0) panic ("unknown color `", name, "'"); /* * The map_color() subroutine is language specific and defined in * *_faces() subroutine. */ map_color (rgb_values[idx][1], rgb_values[idx][2], rgb_values[idx][3]); } /* RGB definitions for colors. These are borrowed from X's rgb.txt file. */ define_color ("black", 0, 0, 0); define_color ("gray25", 64, 64, 64); define_color ("gray50", 127, 127, 127); define_color ("gray75", 191, 191, 191); define_color ("gray85", 217, 217, 217); define_color ("gray90", 229, 229, 229); define_color ("gray95", 242, 242, 242); define_color ("blue", 0, 0, 255); define_color ("cadet blue", 95, 158, 160); define_color ("dark goldenrod", 184, 134, 11); define_color ("dark olive green", 85, 107, 47); define_color ("firebrick", 178, 34, 34); define_color ("forest green", 34, 139, 34); define_color ("green", 0, 255, 0); define_color ("orchid", 218, 112, 214); define_color ("purple", 160, 32, 240); define_color ("red", 255, 0, 0); define_color ("rosy brown", 188, 143, 143); define_color ("DarkSeaGreen", 143, 188, 143); define_color ("DarkSeaGreen1", 193, 255, 193); define_color ("DarkSeaGreen2", 180, 238, 180); define_color ("DarkSeaGreen3", 155, 205, 155); define_color ("DarkSeaGreen4", 105, 139, 105); define_color ("Goldenrod", 237, 218, 116); define_color ("Aquamarine", 67, 183, 186); define_color ("SeaGreen2", 100, 233, 134); define_color ("Coral", 247, 101, 65); define_color ("DarkSlateGray1", 154, 254, 255); define_color ("LightGrey", 211, 211, 211); /* * General helpers. */ sub debug (msg) { if (debug_level) print ("DEBUG: ", msg, "\n"); } sub is_prefix (prefix, string) { return strncmp (prefix, string, length (prefix)) == 0; } sub strchr (string, ch) { local len = length (string), i; for (i = 0; i < len; i = i + 1) if (string[i] == ch) return i; return -1; } sub need_version (major, minor, beta) { local r, v, i; regmatch (version, (/([0-9]+)\.([0-9]+)\.([0-9]+)/)); v = list (int ($1), int ($2), int ($3)); r = list (major, minor, beta); for (i = 0; i < 3; i = i + 1) if (v[i] > r[i]) return 1; else if (v[i] < r[i]) return 0; /* Exact match. */ return 1; } /* Highlight types which match expression from string . */ sub highlight_types (data, re) { local match_len; while (regmatch (data, re)) { language_print ($B); type_face (true); language_print ($0); type_face (false); match_len = length ($B, $0); data = substring (data, match_len, length (data)); } language_print (data); } /* * The supported faces. These functions are used in the highlighting * rules to mark different logical elements of the code. The * different faces and their properties (face_*) are defined in the * style definition files. The face_on() and face_off() functions are * defined in the output language definition files. */ sub bold (on) { if (on) face_on (face_bold); else face_off (face_bold); } sub italic (on) { if (on) face_on (face_italic); else face_off (face_italic); } sub bold_italic (on) { if (on) face_on (face_bold_italic); else face_off (face_bold_italic); } sub comment_face (on) { if (on) face_on (face_comment); else face_off (face_comment); } sub function_name_face (on) { if (on) face_on (face_function_name); else face_off (face_function_name); } sub variable_name_face (on) { if (on) face_on (face_variable_name); else face_off (face_variable_name); } sub keyword_face (on) { if (on) face_on (face_keyword); else face_off (face_keyword); } sub reference_face (on) { if (on) face_on (face_reference); else face_off (face_reference); } sub string_face (on) { if (on) face_on (face_string); else face_off (face_string); } sub builtin_face (on) { if (on) face_on (face_builtin); else face_off (face_builtin); } sub type_face (on) { if (on) face_on (face_type); else face_off (face_type); } sub highlight_face (on) { if (on) face_on (face_highlight); else face_off (face_highlight); } /* * Initializations. */ start { /* Set debug level. */ debug_level = int (debug); /* Use colors? */ color = int (color); /* Increment input file count. */ current_input_file = current_input_file + 1; /* Resolve fonts. */ idx = strchr (font_spec, '@'); if (idx < 0) panic ("malformed font spec: `", font_spec, "'"); font = substring (font_spec, 0, idx); ptsize = substring (font_spec, idx + 1, length (font_spec)); debug (concat ("start: ", font, "@", ptsize)); /* Construct bold, italic, etc. fonts for our current body font. */ if (is_prefix ("AvantGarde", font)) { bold_font = "AvantGarde-Demi"; italic_font = "AvantGarde-BookOblique"; bold_italic_font = "AvantGarde-DemiOblique"; } else if (regmatch (font, /^Bookman|Souvenir/)) { bold_font = concat ($0, "-Demi"); italic_font = concat ($0, "-LightItalic"); bold_italic_font = concat ($0, "-DemiItalic"); } else if (regmatch (font, /^Lucida(Sans-)?Typewriter/)) { bold_font = concat ($0, "Bold"); italic_font = concat ($0, "Oblique"); bold_italic_font = concat ($0, "BoldOblique"); } else if (regmatch (font, /^(.*)-Roman$/)) { bold_font = concat ($1, "-Bold"); italic_font = concat ($1, "-Italic"); bold_italic_font = concat ($1, "-BoldItalic"); } else { bold_font = concat (font, "-Bold"); italic_font = concat (font, "-Oblique"); bold_italic_font = concat (font, "-BoldOblique"); } /* Create regular expressions for nested highlighting. */ nested_start_re = regexp (nested_start); nested_end_re_cached = regexp (nested_end); /* Define output faces. */ calln (concat ("lang_", language)); /* Define our highlight style. */ calln (concat ("style_", style)); /* Resolve start state. */ if (check_startrules ()) debug ("startstate from startrules"); if (check_namerules ()) debug ("startstate from namerules"); } namerules { /\.(c|h)$/ c; /\.(c++|C|H|cpp|cc|cxx)$/ cpp; /\.m$/ matlab; /\.(mpl|mp|maple)$/ maple; /\.(scm|scheme)$/ scheme; /\b\.emacs$|\.el$/ elisp; /\.ad(s|b|a)$/ ada; /\.[Ss]$/ asm; /\.st$/ states; /(M|m)akefile.*/ makefile; /\.(MOD|DEF|mi|md)$/ modula_2; /\.tcl$/ tcl; /\.(v|vh)$/ verilog; /\.html?$/ html; /\bChangeLog$/ changelog; /\.(vhd|vhdl)$/ vhdl; /\.(scr|.syn|.synth)$/ synopsys; /\.idl$/ idl; /\.(hs|lhs|gs|lgs)$/ haskell; /\.(pm|pl)$/ perl; /\.(eps|EPS|ps|PS)$/ postscript; /\.py$/ python; /\.pyx$/ pyrex; /\.js$/ javascript; /\.java$/ java; /\.([Pp][Aa][Ss]|[Pp][Pp]|[Pp])$/ pascal; /\.[fF]$/ fortran; /\.f90$/ f90; /\.awk$/ awk; /\.sh$/ sh; /\.vba$/ vba; /\.(cshrc|login|logout|history|csh)$/ csh; /\.tcshrc$/ tcsh; /\.(zshenv|zprofile|zshrc|zlogin|zlogout)$/ zsh; /\.(bash_profile|bashrc|inputrc)$/ bash; /\.m4$/ m4; /\.il$/ skill; /\.wrl$/ vrml; /\b(rfc.*\.txt|draft-.*\.txt)$/ rfc; /\.inf$/i inf; /\.tex$/ tex; /\.wmlscript$/ wmlscript; /\.wmls$/ wmlscript; /^.*$/ passthrough; } startrules { /.\010.\010.\010./ nroff; /-\*- [Cc] -\*-/ c; /-\*- [Cc]\+\+ -\*-/ cpp; /-\*- [Aa][Dd][Aa] -\*-/ ada; /-\*- [Aa][Ss][Mm] -\*-/ asm; /-\*- [Oo][Bb][Jj][Cc] -\*-/ objc; /-\*- [Ss][Cc][Hh][Ee][Mm][Ee] -\*-/ scheme; /-\*- [Ee][Mm][Aa][Cc][Ss] [Ll][Ii][Ss][Pp] -\*-/ elisp; /-\*- [Tt][Cc][Ll] -\*-/ tcl; /-\*- [Vv][Hh][Dd][Ll] -\*-/ vhdl; /-\*- [Hh][Aa][Ss][Kk][Ee][Ll][Ll] -\*-/ haskell; /-\*- [Ii][Dd][Ll] -\*-/ idl; /-\*- [Pp][Ee][Rr][Ll] -\*-/ perl; /^#![ \t]*\/.*\/perl/ perl; /^From:/ mail; /^#![ \t]*(\/usr)?\/bin\/[ngmt]?awk/ awk; /^#![ \t]*(\/usr)?\/bin\/sh/ sh; /^#![ \t]*(\/usr)?\/bin\/csh/ csh; /^#![ \t]*(\/usr)?(\/local)?\/bin\/tcsh/ tcsh; /^#![ \t]*(\/usr)?(\/local)?\/bin\/zsh/ zsh; /^#![ \t]*(\/usr)?(\/local)?\/bin\/bash/ bash; /^#![ \t]*(\/usr)?(\/ccs)?\/bin\/m4/ m4; /^#VRML/ vrml; /^\04?%!/ postscript; } /* * The global super states. */ state Highlight { /* If you want to preserve enscript's escape sequences in the state highlighting, uncomment the following rule. It passes all enscript's escape sequences to the output. /^\0[^{]+{[^}]+}/ { language_print ($0); } */ /* If we are doing nested highlighting (same document can contain multiple highlighting styles), the variable `nested_end_re' specifies the end of the nesting highlight state. */ nested_end_re { language_print($0); return; } /* Skip output language's special characters. */ LANGUAGE_SPECIALS { language_print ($0); } } /* How many nesting HighlightEntry states are currently active. The header and trailer will be printed at the nesting level 0. */ highlight_entry_nesting = 0; state HighlightEntry extends Highlight { BEGIN { if (highlight_entry_nesting++ == 0) header(); } END { if (--highlight_entry_nesting == 0) trailer(); } } /* * Helper subroutines and states. */ state match_balanced_block extends Highlight { match_balanced_block_start { language_print ($0); match_balanced_block_count = match_balanced_block_count + 1; } match_balanced_block_end { match_balanced_block_count = match_balanced_block_count - 1; if (match_balanced_block_count == 0) return $0; language_print ($0); } } sub match_balanced_block (starter, ender) { match_balanced_block_count = 1; match_balanced_block_start = starter; match_balanced_block_end = ender; return call (match_balanced_block); } state eat_one_line { /.*\n/ { language_print ($0); return; } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/makefile.st0000644000175000017500000000300311132443251014545 00000000000000/** * Name: makefile * Description: Make program's definition files. * Author: Markku Rossi */ state sh_eat_to_apostrophe extends Highlight { /\'/ { language_print ($0); return; } } state sh_eat_to_grave extends Highlight { /`/ { language_print ($0); return; } } state makefile extends HighlightEntry { /* Comments. */ /#/ { comment_face (true); language_print ($0); call (eat_one_line); comment_face (false); } /* An escaped double quote, this doesn't start a string constant. */ /\\\"/ { language_print ($0); } /* String constants. */ /\"/ { string_face (true); language_print ($0); call (c_string); string_face (false); } /* Shell apostrophe quote. */ /\'/ { string_face (true); language_print ($0); call (sh_eat_to_apostrophe); string_face (false); } /* Shell grave quote. */ /`/ { string_face (true); language_print ($0); call (sh_eat_to_grave); string_face (false); } /* Variable references. */ /\$\(/ { language_print ($0); reference_face (true); str = match_balanced_block (/\(/, /\)/); reference_face (false); language_print (str); } /\${/ { language_print ($0); reference_face (true); str = match_balanced_block (/{/, /}/); reference_face (false); language_print (str); } /* Targets. */ /^[^ \t\r\n]+:/ { keyword_face (true); language_print ($0); keyword_face (false); } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/c_comment.st0000644000175000017500000000043611132443251014743 00000000000000/* * Read one C-comment. C-styled comments are needed in many * languages. Therefore it is implemented in a separate file to ease * its reusing. */ state c_comment extends Highlight { /\*\\\// { language_print ($0); return; } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/style_ifh.st0000644000175000017500000000152211132443251014762 00000000000000 state style_ifh { BEGIN { call (default_faces); if (color) { /* Set colors. */ face_bold[fg_color] = language_color ("black"); face_italic[fg_color] = language_color ("black"); face_bold_italic[fg_color] = language_color ("black"); face_comment[fg_color] = language_color ("DarkSeaGreen"); face_function_name[fg_color] = language_color ("Coral"); face_variable_name[fg_color] = language_color ("dark goldenrod"); face_keyword[fg_color] = language_color ("SeaGreen2"); face_reference[fg_color] = language_color ("forest green"); face_string[fg_color] = language_color ("Goldenrod"); face_reference[fg_color] = language_color ("Aquamarine"); face_builtin[fg_color] = language_color ("purple"); face_type[fg_color] = language_color ("DarkSlateGray1"); } return; } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/lang_ansi.st0000644000175000017500000000635411132443251014737 00000000000000/* * Definitions for the ANSI color tty outputs. * Author: Bill Petheram * Markku Rossi */ state lang_ansi { BEGIN { /* The current face as an ANSI str. */ ansi_face_str = 0; ansi_face_stack = list(); ansi_face_stack_pos = 0; ansi_color_table = list(); ansi_color_table_size = 0; sub ansi_define_color(ansi, r, g, b) { ansi_color_table[ansi_color_table_size] = list(ansi, r, g, b); ansi_color_table_size = ansi_color_table_size + 1; } ansi_define_color(30, 0, 0, 0); /* black */ ansi_define_color(31, 205, 0, 0); /* red3 */ ansi_define_color(32, 0, 205, 0); /* green3 */ ansi_define_color(33, 205, 205, 0); /* yellow3 */ ansi_define_color(34, 0, 0, 205); /* blue3 */ ansi_define_color(35, 205, 0, 205); /* magenta3 */ ansi_define_color(36, 0, 205, 205); /* cyan3 */ ansi_define_color(37, 229, 229, 229); /* gray90 */ ansi_define_color(90, 77, 77, 77); /* gray30 */ ansi_define_color(91, 255, 0, 0); /* red */ ansi_define_color(92, 0, 255, 0); /* green */ ansi_define_color(93, 255, 255, 0); /* yellow */ ansi_define_color(94, 0, 0, 255); /* blue */ ansi_define_color(95, 255, 0, 255); /* magenta */ ansi_define_color(96, 0, 255, 255); /* cyan */ ansi_define_color(97, 255, 255, 255); /* white */ sub ansi_count_delta(a, b) { local delta = a - b; if (delta < 0) delta = 0 - delta; return delta * delta; } sub ansi_count_color_delta(ansi_color, r, g, b) { local delta = 0; delta += ansi_count_delta(ansi_color[1], r); delta += ansi_count_delta(ansi_color[2], g); delta += ansi_count_delta(ansi_color[3], b); return delta; } sub map_color(r, g, b) { local i, min = 65536, min_color = 0, delta; for (i = 0; i < ansi_color_table_size; i++) { delta = ansi_count_color_delta(ansi_color_table[i], r, g, b); if (delta < min) { min_color = ansi_color_table[i][0]; min = delta; } } if (min > 16384) /* Don't accept too bad matches. */ min_color = 0; return min_color; } LANGUAGE_SPECIALS = /\n/; sub language_print(str) { if (ansi_face_str) str = regsuball(str, /\n/, concat("\033[0m\n", ansi_face_str)); print(str); } sub header() { } sub trailer() { print("\033[0m"); } sub ansi_set_face(face) { local b = "", i = "", fg ="", bg = ""; if (face[boldp]) b = ";1"; if (face[italicp]) i = ";4"; if (face[fg_color]) fg = concat(";", string(face[fg_color])); if (face[bg_color]) bg = concat(";", string(face[bg_color] + 10)); ansi_face_str = concat("\033[0", b, i, fg, bg, "m"); print(ansi_face_str); } sub face_on(face) { ansi_face_stack[ansi_face_stack_pos++] = face; ansi_set_face(face); } sub face_off(face) { if (ansi_face_stack_pos > 0) /* Just to make sure that we don't fail on some broken highlighting rules. */ ansi_face_stack_pos--; if (ansi_face_stack_pos == 0) { print("\033[0m"); ansi_face_str = 0; } else ansi_set_face(ansi_face_stack[ansi_face_stack_pos - 1]); } return; } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/Makefile.in0000644000175000017500000003473011606344074014511 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 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@ # # Automakefile for the highlighting rules. # Copyright (c) 1998-2003 Markku Rossi # # Author: Markku Rossi # # # Enscript is free software: you can redistribute 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. # # Enscript is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # # along with Enscript. If not, see . # VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = states/hl DIST_COMMON = $(dist_hl_DATA) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc2.m4 \ $(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intdiv0.m4 $(top_srcdir)/m4/intl.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/intmax.m4 \ $(top_srcdir)/m4/inttypes-pri.m4 \ $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/lcmessage.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/lock.m4 \ $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/printf-posix.m4 \ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/size_max.m4 \ $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/uintmax_t.m4 \ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/wchar_t.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xsize.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_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 = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(hldir)" DATA = $(dist_hl_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GENCAT = @GENCAT@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GLIBC2 = @GLIBC2@ GLIBC21 = @GLIBC21@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ HAVE_ASPRINTF = @HAVE_ASPRINTF@ HAVE_POSIX_PRINTF = @HAVE_POSIX_PRINTF@ HAVE_SNPRINTF = @HAVE_SNPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WPRINTF = @HAVE_WPRINTF@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLBISON = @INTLBISON@ INTLLIBS = @INTLLIBS@ INTLOBJS = @INTLOBJS@ INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTHREAD = @LIBTHREAD@ LTLIBC = @LTLIBC@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ MAKEINFO = @MAKEINFO@ MEDIA = @MEDIA@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ POSUB = @POSUB@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ PSLEVEL = @PSLEVEL@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SPOOLER = @SPOOLER@ STRIP = @STRIP@ U = @U@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WINDRES = @WINDRES@ WOE32 = @WOE32@ WOE32DLL = @WOE32DLL@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ YACC = @YACC@ YFLAGS = @YFLAGS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ 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@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ misc = enscript.st describe_languages.st default_faces.st styles = style_emacs.st style_emacs_verbose.st style_ifh.st \ style_a2ps.st style_msvc.st languages = lang_ansi.st lang_enscript.st lang_html.st \ lang_overstrike.st lang_rtf.st lang_texinfo.st highlightings = ada.st asm.st awk.st bash.st c.st c_comment.st \ c_ppline.st c_string.st changelog.st cpp.st csh.st delphi.st diff.st \ diffs.st diffu.st elisp.st fortran.st fortran_pp.st f90.st haskell.st html.st \ idl.st inf.st java.st javascript.st ksh.st m4.st mail.st makefile.st \ matlab.st nroff.st objc.st outline.st pascal.st passthrough.st perl.st \ postscript.st python.st pyrex.st rfc.st scheme.st sh.st skill.st \ sql.st states.st synopsys.st tcl.st tcsh.st tex.st vba.st verilog.st \ vhdl.st vrml.st wmlscript.st zsh.st hldir = $(pkgdatadir)/hl dist_hl_DATA = $(misc) $(styles) $(languages) $(highlightings) EXTRA_DIST = ChangeLog.old all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu states/hl/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu states/hl/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 $(am__aclocal_m4_deps): install-dist_hlDATA: $(dist_hl_DATA) @$(NORMAL_INSTALL) test -z "$(hldir)" || $(MKDIR_P) "$(DESTDIR)$(hldir)" @list='$(dist_hl_DATA)'; test -n "$(hldir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(hldir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(hldir)" || exit $$?; \ done uninstall-dist_hlDATA: @$(NORMAL_UNINSTALL) @list='$(dist_hl_DATA)'; test -n "$(hldir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(hldir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(hldir)" && rm -f $$files tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(hldir)"; 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 . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dist_hlDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-dist_hlDATA .MAKE: install-am install-strip .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-dist_hlDATA install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-dist_hlDATA # 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: enscript-1.6.5.90/states/hl/c_string.st0000644000175000017500000000047411132443251014611 00000000000000/* * Read one C-string. C-styled strings are needed in many languages. * Therefore it is implemented in a separate file to ease its reusing. */ state c_string extends Highlight { /\\\\./ { language_print ($0); } /\"/ { language_print ($0); return; } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/nroff.st0000644000175000017500000000171311132443251014110 00000000000000/** * Name: nroff * Description: Manual pages formatted with the nroff program. * Author: Markku Rossi */ state nroff_italic extends Highlight { /_\010(.)/ { language_print ($1); } /([^_])\010.\010.\010./ { bold (true); language_print ($1); call (nroff_bold); bold (false); italic (true); } /.|\n/ { italic (false); language_print ($0); return; } } state nroff_bold extends Highlight { /([^_])\010.\010.\010./ { language_print ($1); } /_\010(.)/ { italic (true); language_print ($1); call (nroff_italic); italic (false); bold (true); } /.|\n/ { bold (false); language_print ($0); return; } } state nroff extends HighlightEntry { /_\010(.)/ { italic (true); language_print ($1); call (nroff_italic); } /([^_])\010.\010.\010./ { bold (true); language_print ($1); call (nroff_bold); } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/java.st0000644000175000017500000000276111132443251013723 00000000000000/** * Name: java * Description: Java programming language. * Author: Paul Fisher */ state java extends HighlightEntry { /* Comments. */ /\/\*/ { comment_face (true); language_print ($0); call (c_comment); comment_face (false); } /\/\// { comment_face (true); language_print ($0); call (eat_one_line); comment_face (false); } /* String constants. */ /\"/ { string_face (true); language_print ($0); call (c_string); string_face (false); } /* Character constants. */ /'.'|'\\\\.'/ { string_face (true); language_print ($0); string_face (false); } /* Keywords. (build-re '(abstract boolean break byte case catch char class const continue default do double else extends false final finally float for goto if implements import instanceof int interface long native new null package private protected public return short static super switch synchronized this throw throws transient true try void volatile while)) */ /\b(abstract|b(oolean|reak|yte)|c(a(se|tch)|har|lass|on(st|tinue))\ |d(efault|o(|uble))|e(lse|xtends)|f(alse|inal(|ly)|loat|or)|goto\ |i(f|mp(lements|ort)|n(stanceof|t(|erface)))|long|n(ative|ew|ull)\ |p(ackage|r(ivate|otected)|ublic)|return\ |s(hort|tatic|uper|witch|ynchronized)|t(h(is|row(|s))|r(ansient|ue|y))\ |vo(id|latile)|while)\b/ { keyword_face (true); language_print ($0); keyword_face (false); } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/awk.st0000644000175000017500000000212411132443251013555 00000000000000/** * Name: awk * Description: AWK programming language. * Author: Juergen Kahrs */ state awk extends HighlightEntry { /* Comments. */ /#/ { comment_face (true); language_print ($0); call (eat_one_line); comment_face (false); } /* String constants. */ /\"/ { string_face (true); language_print ($0); call (c_string); string_face (false); } /* Excutable script. */ /^#!/ { reference_face (true); language_print ($0); call (eat_one_line); reference_face (false); } /* Keywords. */ /\b(ARG(C|V|IND)|BEGIN|CONVFMT|E(N(D|VIRON)|RRNO)\ |F(I(ELDWIDTHS|LENAME)|NR|S)|IGNORECASE|N[FR]|O(FMT|FS|RS)\ |R(LENGTH|S(TART)?|T)|SUBSEP\ |atan2|break|c(lose|o(ntinue|s))|d(elete|o)|e(lse|x(it|p))\ |f(flush|or|unction)|g(((en)?sub)|etline)|i(f|n(dex|t)?)\ |l(ength|og)|match|next(file)?|return|while|print[f]?\ |rand|s(in|ub(str)?|ystem|p(lit|rintf)|qrt|rand|trftime|ystime)\ |to(lower|upper))\b/ { keyword_face (true); language_print ($0); keyword_face (false); } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/perl.st0000644000175000017500000001272111132443251013741 00000000000000/** * Name: perl * Description: Perl programming language. * * Author: Jim Villani, Logistics Management Institute (jvillani@lmi.org) * perl_pod mods by Gregor Purdy (gregor@focusresearch.com) */ state perl_pod extends Highlight { /\\\\./ { language_print ($0); } /^=cut\s*$/ { language_print ($0); return; } } state perl_comment extends Highlight { /\*\\\// { language_print ($0); return; } } state perl_dquot_string extends Highlight { /\\\\./ { language_print ($0); } /\"/ { language_print ($0); return; } } state perl_quot_string extends Highlight { /\\\\./ { language_print ($0); } /[\']/ { language_print ($0); return; } } state perl_bquot_string extends Highlight { /\\\\./ { language_print ($0); } /`/ { language_print ($0); return; } } state perl extends HighlightEntry { /* Comments. */ /#.*$/ { comment_face (true); language_print ($0); comment_face (false); } /* Ignore escaped quote marks */ /\\\"/ { language_print ($0); } /\\\'/ { language_print ($0); } /\\\`/ { language_print ($0); } /* stuff after a -> is a method, * don't bold just because it looks like a keyword */ /->\w+/ { language_print ($0); } /* stuff between a - and a => is a named parameter, * don't bold just because it looks like a keyword */ /-\w+=>/ { language_print ($0); } /* In cgi files, JavaScript might be embedded, so we need to look out * for the JavaScript comments, because they might contain something * we don't like, like a contraction (don't, won't, etc.) * We won't put them in comment face, because they are not perl * comments. */ /\/\// { language_print ($0); call (eat_one_line); } /* String constants. */ /\"/ { string_face (true); language_print ($0); call (perl_dquot_string); string_face (false); } /[\']/ { string_face (true); language_print ($0); call (perl_quot_string); string_face (false); } /* Backquoted command string */ /`/ { string_face (true); language_print ($0); call (perl_bquot_string); string_face (false); } /* Variables */ /[$%@&]+\w+/ { keyword_face (false); language_print ($0); } /* Keywords. From perl distribution's toke.c abs accept alarm and atan2 bind binmode bless caller chdir chmod chomp 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 exists exit exp fcntl fileno flock for foreach fork format 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 if index int ioctl join keys kill last lc lcfirst le length link listen local localtime log lstat lt m map mkdir msgctl msgget msgrcv msgsnd my ne new next no not oct open opendir or ord pack package pipe pop pos print printf prototype push q qq quotemeta qw qx rand read readdir readline readlink readpipe recv redo ref rename require reset return reverse rewinddir rindex rmdir s scalar 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 splice split sprintf sqrt srand stat study sub substr symlink syscall sysopen sysread sysseek system syswrite tell telldir tie tied time times tr truncate uc ucfirst umask undef unless unlink unpack unshift untie until use utime values vec wait waitpid wantarray warn while write x xor y */ /\b(a(bs|ccept|larm|nd|tan2)|b(in(d|mode)|less)|c(aller|h(dir|mod\ |o(mp|p|wn)|r(|oot))|lose(|dir)|mp|o(n(nect|tinue)|s)|rypt)\ |d(bm(close|open)|e(fined|lete)|ie|o|ump)|e(ach|ls(e|if)|nd(gr|host|net|proto\ |pw|serv)ent|of|q|val|x(ec|i(sts|t)|p))|f(cntl|ileno|lock|or(|each|k\ |m(at|line)))|g(e(|t(c|gr(ent|gid|nam)|host(by(addr|name)|ent)|login\ |net(by(addr|name)|ent)|p(eername|grp|pid|riority|roto(by(addr|name|number)\ |ent)|w(ent|nam|uid))|s(erv(by(name|port)|ent)|ock(name|opt))))|lob|mtime\ |oto|rep|t)|hex|i(f|n(t|dex)|octl)|join|k(eys|ill)|l(ast|c(|first)|e(|ngth)\ |i(nk|sten)|o(cal(|time)|g)|stat|t)|m|m(ap|kdir|sg(ctl|get|rcv|snd)|y)\ |n(e(|w|xt)|o(|t))|o(ct|pen(|dir)|r(|d))|p(ack(|age)|ipe|o(p|s)|r(int(|f)\ |ototype)|ush)|q(|q|uotemeta|w|x)|r(and|e(a(d(|dir|lin(e|k)|pipe))|cv\ |do|f|name|quire|set|turn|verse|winddir)|index|mdir)|s(|calar|e(e(k|kdir)\ |lect|m(ctl|get|op)|nd|t((gr|host|net)ent|p(grp|r(iority|otoent)|went)\ |s(ervent|ockopt)))|h(ift|m(ctl|get|read|write)|utdown)|in|leep|o(cke(t|tpair)\ |rt)|p(li(ce|t)|rintf)|qrt|rand|t(at|udy)|u(b|bstr)|y(mlink|s(call|open|read\ |s(eek|tem)|write)))|t(ell(|dir)|i(e|ed|m(e|es))|r(|uncate))|u(c(|first)\ |mask|n(def|l(ess|ink)|pack|shift|ti(e|l))|se|time)|v(alues|ec)|w(a(i(t(|pid))\ |ntarray|rn)|hile|rite)|x(|or)|y)\b/ { keyword_face (true); language_print ($0); keyword_face (false); } /* POD. */ /^=(pod|head1|head2|item|over|back|for|begin|end)\b.*$/ { language_print ($0); call (perl_pod); } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/states.st0000644000175000017500000000357711132443251014313 00000000000000/** * Name: states * Description: States program's definition files. * Author: Markku Rossi */ state states_regexp extends Highlight { /\\\\./ { language_print ($0); } /\// { language_print ($0); return; } } state states extends HighlightEntry { /* Comments. */ /\/\*/ { comment_face (true); language_print ($0); call (c_comment); comment_face (false); } /* String constants. */ /\"/ { string_face (true); language_print ($0); call (c_string); string_face (false); } /* Regular expressions. */ /\\\// { string_face (true); language_print ($0); call (states_regexp); string_face (false); } /* Subroutine definitions. */ /\b(sub)([ \t]+)([$a-zA-Z_][$a-zA-Z_0-9]*)([ \t]*\()/ { keyword_face (true); language_print ($1); keyword_face (false); language_print ($2); function_name_face (true); language_print ($3); function_name_face (false); language_print ($4); } /* Keywords. (build-re '(BEGIN END div else extends for if local namerules return start startrules state sub while)) */ /\b(BEGIN|END|div|e(lse|xtends)|for|if|local|namerules|return\ |s(ta(rt(|rules)|te)|ub)|while)\b/ { keyword_face (true); language_print ($0); keyword_face (false); } /* Build-ins: (build-re '(call calln check_namerules check_startrules concat getenv int length list panic prereq print regmatch regsub regsuball require_state sprintf strcmp string strncmp substring)) */ /\b(c(all(|n)|heck_(namerules|startrules)|oncat)|getenv|int|l(ength|ist)\ |p(anic|r(ereq|int))|re(g(match|sub(|all))|quire_state)\ |s(printf|tr(cmp|ing|ncmp)|ubstring))([ \t]*\()/ { builtin_face (true); language_print ($1); builtin_face (false); language_print (substring ($0, length ($1), length ($0))); } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/scheme.st0000644000175000017500000000343111132443251014241 00000000000000/** * Name: scheme * Description: Scheme programming language. * Author: Markku Rossi */ state scheme extends HighlightEntry { BEGIN { /* * Modify regexp character syntax so that we can distinguish all * scheme symbols. */ extras = list ('!', '$', '%', '&', '*', '/', ':', '<', '=', '>', '?', '~', '^', '.', '+', '-'); for (i = 0; i < length (extras); i = i + 1) regexp_syntax (extras[i], 'w'); } /* Comments. */ /;/ { comment_face (true); language_print ($0); call (eat_one_line); comment_face (false); } /* String constants. */ /\"/ { string_face (true); language_print ($0); call (c_string); string_face (false); } /* Definitions. */ /(\([ \t]*)(define)([ \t]+\(?)([!\$%&\*\/:<=>\?~_^a-zA-Z][!\$%&\*\/:<=>\?~_^a-zA-Z0-9.+\-]*)/ { /* Starting garbage. */ language_print ($1); /* Keyword `define'. */ keyword_face (true); language_print ($2); keyword_face (false); /* Middle garbage. */ language_print ($3); /* Function name. */ function_name_face (true); language_print ($4); function_name_face (false); } /* ':'-names, Emacs highlights these, so do we. */ /([ \t])(:[!\$%&\*\/:<=>\?~_^a-zA-Z0-9.+\-]*)/ { language_print ($1); reference_face (true); language_print ($2); reference_face (false); } /* Keywords. "=>" + "set!" + (build-re '(else define unquote unquote-splicing quote lambda if begin cond and or case let let* letrec do delay quasiquote)) */ /=>|\bset!|\b(and|begin|c(ase|ond)|d(e(fine|lay)|o)|else|if\ |l(ambda|et(|\*|rec))|or|qu(asiquote|ote)|unquote(|-splicing))\b/ { keyword_face (true); language_print ($0); keyword_face (false); } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/c.st0000644000175000017500000001026611132443251013223 00000000000000/** * Name: c * Description: C programming language. * Author: Markku Rossi */ c_type_re = /* Types. (build-re '(auto char const double enum extern float int long register short signed static struct typedef union unsigned void volatile)) */ /\b(auto|c(har|onst)|double|e(num|xtern)|float|int|long|register\ |s(hort|igned|t(atic|ruct))|typedef|un(ion|signed)|vo(id|latile))\b/; /* The super state of all C highlightings. */ state CHighlight extends Highlight { BEGIN { if (verbose_highlighting) verbose_re = /(->|<=|>=|==|!=|\&\&|\|\||!)/; else verbose_re = 0; } verbose_re { match = $0; if (strcmp (match, "->") == 0) str = "rightarrow"; else if (strcmp (match, "<=") == 0) str = "le"; else if (strcmp (match, ">=") == 0) str = "ge"; else if (strcmp (match, "==") == 0) str = "equiv"; else if (strcmp (match, "&&") == 0) str = "land"; else if (strcmp (match, "||") == 0) str = "lor"; else if (strcmp (match, "!") == 0) str = "lnot"; else if (strcmp (match, "!=") == 0) str = "ne"; else str = 0; if (!str || !language_symbol (str)) language_print ($0); } } /* * The highlight entry for C highlightings. It is a bit ugly to * re-implement the BEGIN and END because they must be kept in sync * with the code in the `HighlightEntry'. But, since we don't support * multiple heritance, we have no choice. */ state CHighlightEntry extends CHighlight { BEGIN { if (highlight_entry_nesting++ == 0) header (); } END { if (--highlight_entry_nesting == 0) trailer (); } } state c extends CHighlightEntry { BEGIN { /* * Set the regular expression that is used to highlight types from * the beginning of the on-line function definition. This * variable should be overwritten by each state that extends the * `c' state. */ type_re = c_type_re; } /* Comments. */ /\/\*/ { comment_face (true); language_print ($0); call (c_comment); comment_face (false); } /\/\// { comment_face (true); language_print ($0); call (eat_one_line); comment_face (false); } /* String constants. */ /\"/ { string_face (true); language_print ($0); call (c_string); string_face (false); } /* Pre-processor lines. */ /^#/ { language_print ($0); call (c_ppline); } /* Character constants. */ /'.'|'\\\\.'/ { string_face (true); language_print ($0); string_face (false); } /* Keywords, but not types, goto, or case. (build-re '(break continue default do else for if return sizeof switch while)) */ /\b(break|continue|d(efault|o)|else|for|if|return|s(izeof|witch)|while)\b/ { keyword_face (true); language_print ($0); keyword_face (false); } /* Types. */ c_type_re { type_face (true); language_print ($0); type_face (false); } /* Labels. Emacs accepts also bare numbers. */ /^([ \t]*)([a-zA-Z0-9_]+)(:)/ { language_print ($1); reference_face (true); language_print ($2); reference_face (false); language_print ($3); } /* Goto, case and the target. */ /\<(goto|case)\>([ \t]+)(-?[A-Za-z_0-9]+)?/ { keyword_face (true); language_print ($1); keyword_face (false); language_print ($2); if (length ($3) > 0) { reference_face (true); language_print ($3); reference_face (false); } } /* * Function definitions, but only if you code with the one and only * usable indentation style (GNU). */ /^([a-zA-Z_][a-zA-Z_0-9]*)([ \t]*\()/ { function_name_face (true); language_print ($1); function_name_face (false); language_print ($2); } /* Function definitions and prototypes for other (loser) coding styles. */ /^([A-Za-z][a-zA-Z0-9_\* ]+)([ \*])([a-zA-Z_][a-zA-Z_0-9]*)([ \t]*\()/ { garbage = $1; middle_garbage = $2; function_name = $3; tail_garbage = $4; highlight_types (garbage, type_re); language_print (middle_garbage); function_name_face (true); language_print (function_name); function_name_face (false); language_print (tail_garbage); } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/zsh.st0000644000175000017500000000470111132443251013602 00000000000000/** * Name: zsh * Description: Z-shell programming language. * Author: Jean-Marc Calvez */ state zsh extends HighlightEntry { /* Comments. */ /#/ { comment_face (true); language_print ($0); call (eat_one_line); comment_face (false); } /* String constants. */ /\"/ { string_face (true); language_print ($0); call (c_string); string_face (false); } /* Ignore escaped quote marks */ /\\\"/ { language_print ($0); } /\\\'/ { language_print ($0); } /\\\`/ { language_print ($0); } /* Excutable script. */ /^#!/ { reference_face (true); language_print ($0); call (eat_one_line); reference_face (false); } /* Keywords: (build-re '(: noglob nocorrect exec command if then elif else fi for in do done while until repeat case esac select function time foreach end coproc return alias autoload bg bindkey break builtin bye cd chdir compctl continue declare dirs disable disown echo echotc emulate enabke eval exec exit export false fc fg functions getln getopts hash history integer jobs kill let limit local log logout popd print pushd pushln pwd read readonly rehash return sched set setopt shift source suspend test times trap ttyctl type typeset ulimit umask unalias unfunction unhash unlimit unset unsetopt vared wait whence where which)) */ /\b(:|a(lias|utoload)|b(g|indkey|reak|uiltin|ye)\ |c(ase|d|hdir|o(m(mand|pctl)|ntinue|proc))\ |d(eclare|i(rs|s(able|own))|o(|ne))\ |e(cho(|tc)|l(if|se)|mulate|n(abke|d)|sac|val|x(ec()|it|port))\ |f(alse|c|g|i|or(|each)|unction(|s))|get(ln|opts)|h(ash|istory)\ |i(f|n(|teger))|jobs|kill|l(et|imit|o(cal|g(|out)))|no(correct|glob)\ |p(opd|rint|ush(d|ln)|wd)|re(ad(|only)|hash|peat|turn())\ |s(ched|e(lect|t(|opt))|hift|ource|uspend)\ |t(est|hen|ime(|s)|rap|tyctl|ype(|set))\ |u(limit|mask|n(alias|function|hash|limit|set(|opt)|til))|vared\ |w(ait|h(e(nce|re)|i(ch|le))))\b/ { keyword_face (true); language_print ($0); keyword_face (false); } /* special functions (built-in) (build-re '(chpwd precmd periodic argv status signals cdpath fignore fpath histchars mailpath manpath path psvar prompt watch)) */ /\b(argv|c(dpath|hpwd)|f(ignore|path)|histchars|ma(ilpath|npath)\ |p(ath|eriodic|r(ecmd|ompt)|svar)|s(ignals|tatus)|watch)\b/ { builtin_face (true); language_print ($0); builtin_face (false); } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/f90.st0000644000175000017500000004117511401303365013402 00000000000000/** * Name: f90 * Description: Fortran90 programming language. * Author: David Bowler * * Copyright (C) 2009 Free Software Foundation, Inc. */ /** * Deal with strings enclosed with '...' */ state f90_string_single extends Highlight { /[\']/ { language_print ($0); return; } LANGUAGE_SPECIALS { language_print ($0); } } /** * Deal with strings enclosed with "..." */ state f90_string_double extends Highlight { /[\"]/ { language_print ($0); return; } LANGUAGE_SPECIALS { language_print ($0); } } /** * Deal function/subroutine declarations and subroutine calls: end with ) at end of line or then comment */ state f90_func extends Highlight { /\)[ \t]*$/ { language_print ($0); return; } /(\)[ \t]*)(![a-zA-Z_0-9\,\.\(\)\*\%\: \t]*)/ { language_print ($1); comment_face (true); language_print($2); call (eat_one_line); comment_face (false); return; } LANGUAGE_SPECIALS { language_print ($0); } } /** * Highlight variable declarations */ state f90_new_var_list extends Highlight { /* Catch variable names followed by a comment: 1. Continuation marker present */ /([ \t]*::|[ \t]+)([a-zA-Z_0-9\,\.\(\)\*\%\: \t]+[^\&][ \t]*)(\&[ \t]*)(![a-zA-Z_0-9\,\.\(\)\*\%\: \t]*)/ { language_print ($1); variable_name_face(true); language_print ($2); language_print ($3); variable_name_face(false); comment_face (true); language_print ($4); call (eat_one_line); comment_face (false); } /* Catch variable names followed by a comment: 2. No continuation marker (so return)*/ /([ \t]*::|[ \t]+)([a-zA-Z_0-9\,\.\(\)\*\%\: \t]+[^\&][ \t]*)(![a-zA-Z_0-9\,\.\(\)\*\%\: \t]*)/ { language_print ($1); variable_name_face(true); language_print ($2); variable_name_face(false); comment_face (true); language_print ($3); call (eat_one_line); comment_face (false); return; } /* Is this a specifier ? 1. real(var) ? */ /(\([ \t]*)([a-zA-Z0-9_]+)([ \t]*\))/{ language_print($0); } /* Is this a specifier ? 2. real(kind=var) */ /(\([ \t]*)(len|kind)([a-zA-Z0-9_ =]+)(\))/{ language_print($1); keyword_face(true); language_print($2); keyword_face(false); language_print($3); language_print($4); } /* Is this a specifier ? 3. real(kind=selected_real_kind(6,90)) */ /(\([ \t]*)(len|kind)([ \t]*=[ \t]*)(selected_(int_kind|real_kind))([ \t]*\([ \t]*[0-9\,]+[ \t]*\)[ \t]*)(\))/{ language_print($1); keyword_face(true); language_print($2); keyword_face(false); language_print($3); keyword_face(true); language_print($4); keyword_face(false); language_print($6); language_print($7); } /* Highlight modifiers (build-re '(allocatable Allocatable ALLOCATABLE external External EXTERNAL intent Intent INTENT optional Optional OPTIONAL parameter Parameter PARAMETER pointer Pointer POINTER private Private PRIVATE public Public PUBLIC save SAVE Save target TARGET Target)) */ /(\,[ \t]*)(A(LLOCATABLE|llocatable)|E(XTERNAL|xternal)|I(NTENT|ntent)\ |O(PTIONAL|ptional)\ |P(ARAMETER|OINTER|RIVATE|UBLIC|arameter|ointer|rivate|ublic)\ |S(AVE|ave)|T(ARGET|arget)|allocatable|external|intent|optional\ |p(arameter|ointer|rivate|ublic)|save|target)/ { language_print($1); keyword_face(true); language_print($2); keyword_face(false); } /(\,[ \t]*)(D(IMENSION|imension)|dimension)([ \t]*\([ \:\,\-+*a-zA-Z_0-9]+[ \t]*\))/ { language_print($1); keyword_face(true); language_print($2); keyword_face(false); language_print($4); } /* Highlight variable names up to continuation marker */ /([ \t]*::|[^\,\(][ \t]*)([a-zA-Z_0-9]+[a-zA-Z_0-9\,\.\(\)\*\%\:\+\- \t]+[\&][ \t]*)$/ { language_print ($1); variable_name_face(true); language_print ($2); variable_name_face(false); } /* Highlight variable names up to end of line (no continuation marker: return) */ /([ \t]*::|[^\,\(][ \t]*)([a-zA-Z_0-9]+[a-zA-Z_0-9\,\.\(\)\*\%\:\+\- \t]*[^\&][ \t]*)$/ { language_print ($1); variable_name_face(true); language_print ($2); variable_name_face(false); return; } /* Highlight variable names up to equals sign (return after equals)*/ /([ \t]*::|[^\,\(][ \t]*)([a-zA-Z_0-9]+[a-zA-Z_0-9\,\.\(\)\*\%\:\+\- \t]*[^\&])([ \t]*=)/ { language_print ($1); variable_name_face(true); language_print ($2); variable_name_face(false); language_print ($3); return; } LANGUAGE_SPECIALS { language_print ($0); } } /** * Highlight F90 io statements */ state f90_io extends Highlight { /* Catch comments */ /[!]/ { comment_face (true); language_print ($0); call (eat_one_line); comment_face (false); } /* String constants. */ /[\'][^\)]/ { string_face (true); language_print ($0); call (f90_string_single); string_face (false); } /[\"][^\)]/ { string_face (true); language_print ($0); call (f90_string_double); string_face (false); } /* This terminates an io statement */ /\)[^\'\"]/ { language_print ($0); return; } /* IO Keywords. (build-re '(FMT UNIT REC END ERR FILE STATUS ACCESS FORM RECL BLANK IOSTAT EXIST OPENED NUMBER NAME SEQUENTIAL DIRECT FORMATTED UNFORMATTED NEXTREC)) */ /\b(ACCESS|BLANK|DIRECT|E(ND|RR|XIST)|F(ILE|MT|ORM(|ATTED))|IOSTAT\ |N(AME|EXTREC|UMBER)|OPENED|REC(|L)|S(EQUENTIAL|TATUS)\ |UN(FORMATTED|IT))\b/ { keyword_face (true); language_print ($0); keyword_face (false); } /* IO Keywords. (build-re '(fmt unit rec end err file status access form recl blank iostat exist opened number name sequential direct formatted unformatted nextrec)) */ /\b((a|A)ccess|(b|B)lank|(d|D)irect|(e|E)(nd|rr|xist)|(f|F)(ile|mt|orm(|atted))|(i|I)ostat\ |(n|N)(ame|extrec|umber)|(o|O)pened|(r|R)ec(|l)|(s|S)(equential|tatus)\ |(u|U)n(formatted|it))\b/ { keyword_face (true); language_print ($0); keyword_face (false); } LANGUAGE_SPECIALS { language_print ($0); } } state f90 extends HighlightEntry { BEGIN { header (); } END { trailer (); } /* String constants. */ /[\']/ { string_face (true); language_print ($0); call (f90_string_single); string_face (false); } /[\"]/ { string_face (true); language_print ($0); call (f90_string_double); string_face (false); } /* Labels - whitespace followed by number at start of line */ /^[ \t]*[0-9]+/{ keyword_face(true); language_print ($0); keyword_face(false); } /* Comments. We'll only have free-form, modern f90 statements - ! to end of line*/ /[!]/ { comment_face (true); language_print ($0); call (eat_one_line); comment_face (false); } /* builtins - maths, matrices etc */ /* Builtins. (build-re '(abs achar acos adjustl adjustr aimag aint all allocated anint any asin associated atan atan2 bit_size btest ceiling char cmplx conjg cos cosh count cshift date_and_time dble digits dim dot_product dprod eoshift epsilon exp exponent floor fraction huge iachar iand ibclr ibits ibset ichar ieor index int ior ishft ishftc kind lbound len len_trim lge lgt lle llt log logical log10 matmul max maxexponent maxloc maxval merge min minexponent minloc minval mod modulo mvbits nearest nint not pack precision present product radix random_number random_seed range real repeat reshape rrspacing scale scan selected_int_kind selected_real_kind set_exponent shape sign sin sinh size spacing spread sqrt sum system_clock tan tanh tiny transfer transpose trim ubound unpack verify)) */ /\b((a|A)(bs|c(har|os)|djust(l|r)|i(mag|nt)|ll(|ocated)|n(int|y)|s(in|sociated)\ |tan(|2))\ |(b|B)(it_size|test)|(c|C)(eiling|har|mplx|o(njg|s(|h)|unt)|shift)\ |(d|D)(ate_and_time|ble|i(gits|m)|ot_product|prod)\ |(e|E)(oshift|psilon|xp(|onent))|(f|F)(loor|raction)|(h|H)uge\ |(i|I)(a(char|nd)|b(clr|its|set)|char|eor|n(dex|t)|or|shft(|c))|(k|K)ind\ |(l|L)(bound|en(|_trim)|g(e|t)|l(e|t)|og(|10|ical))\ |(m|M)(a(tmul|x(|exponent|loc|val))|erge|in(|exponent|loc|val)|od(|ulo)\ |vbits)\ |(n|N)(earest|int|ot)|(p|P)(ack|r(e(cision|sent)|oduct))\ |(r|R)(a(dix|n(dom_(number|seed)|ge))|e(al|peat|shape)|rspacing)\ |(s|S)(ca(le|n)|e(lected_(int_kind|real_kind)|t_exponent)|hape\ |i(gn|n(|h)|ze)|p(acing|read)|qrt|um|ystem_clock)\ |(t|T)(an(|h)|iny|r(ans(fer|pose)|im))|(u|U)(bound|npack)|(v|V)erify)\b/ { builtin_face (true); language_print ($0); builtin_face (false); } /* Builtins. (build-re '(ABS ACHAR ACOS ADJUSTL ADJUSTR AIMAG AINT ALL ALLOCATED ANINT ANY ASIN ASSOCIATED ATAN ATAN2 BIT_SIZE BTEST CEILING CHAR CMPLX CONJG COS COSH COUNT CSHIFT DATE_AND_TIME DBLE DIGITS DIM DOT_PRODUCT DPROD EOSHIFT EPSILON EXP EXPONENT FLOOR FRACTION HUGE IACHAR IAND IBCLR IBITS IBSET ICHAR IEOR INDEX INT IOR ISHFT ISHFTC KIND LBOUND LEN LEN_TRIM LGE LGT LLE LLT LOG LOGICAL LOG10 MATMUL MAX MAXEXPONENT MAXLOC MAXVAL MERGE MIN MINEXPONENT MINLOC MINVAL MOD MODULO MVBITS NEAREST NINT NOT PACK PRECISION PRESENT PRODUCT RADIX RANDOM_NUMBER RANDOM_SEED RANGE REAL REPEAT RESHAPE RRSPACING SCALE SCAN SELECTED_INT_KIND SELECTED_REAL_KIND SET_EXPONENT SHAPE SIGN SIN SINH SIZE SPACING SPREAD SQRT SUM SYSTEM_CLOCK TAN TANH TINY TRANSFER TRANSPOSE TRIM UBOUND UNPACK VERIFY)) */ /\b(A(BS|C(HAR|OS)|DJUST(L|R)|I(MAG|NT)|LL(|OCATED)|N(INT|Y)|S(IN|SOCIATED)\ |TAN(|2))\ |B(IT_SIZE|TEST)|C(EILING|HAR|MPLX|O(NJG|S(|H)|UNT)|SHIFT)\ |D(ATE_AND_TIME|BLE|I(GITS|M)|OT_PRODUCT|PROD)\ |E(OSHIFT|PSILON|XP(|ONENT))|F(LOOR|RACTION)|HUGE\ |I(A(CHAR|ND)|B(CLR|ITS|SET)|CHAR|EOR|N(DEX|T)|OR|SHFT(|C))|KIND\ |L(BOUND|EN(|_TRIM)|G(E|T)|L(E|T)|OG(|10|ICAL))\ |M(A(TMUL|X(|EXPONENT|LOC|VAL))|ERGE|IN(|EXPONENT|LOC|VAL)|OD(|ULO)\ |VBITS)\ |N(EAREST|INT|OT)|P(ACK|R(E(CISION|SENT)|ODUCT))\ |R(A(DIX|N(DOM_(NUMBER|SEED)|GE))|E(AL|PEAT|SHAPE)|RSPACING)\ |S(CA(LE|N)|E(LECTED_(INT_KIND|REAL_KIND)|T_EXPONENT)|HAPE\ |I(GN|N(|H)|ZE)|P(ACING|READ)|QRT|UM|YSTEM_CLOCK)\ |T(AN(|H)|INY|R(ANS(FER|POSE)|IM))|U(BOUND|NPACK)|VERIFY)\b/ { builtin_face (true); language_print ($0); builtin_face (false); } LANGUAGE_SPECIALS { language_print ($0); } /* Comparators. We have to roll by hand because of the dots - "\b" doesn't delimit here. */ /\.((a|A)nd|(e|E)qv?|(g|G)(e|t)|(l|L)(e|t)|(n|N)e(qv)?|(n|N)ot|(o|O)r|(t|T)rue|(f|F)alse)\./ { keyword_face (true); language_print ($0); keyword_face (false); } /* Comparators. We have to roll by hand because of the dots - "\b" doesn't delimit here. */ /\.(AND|EQV?|G(E|T)|L(E|T)|NE(QV)?|NOT|OR|TRUE|FALSE)\./ { keyword_face (true); language_print ($0); keyword_face (false); } /* function, subroutine declaration or subroutine call: 1. with arguments*/ /(^[ \t]*((c|C)all|(f|F)unction|(s|S)ubroutine)[ \t]+)([a-zA-Z_0-9]+)([ \t]*\()/ { keyword_face(true); language_print($1); keyword_face(false); function_name_face(true); language_print($6); function_name_face(false); language_print($7); call (f90_func); } /* function, subroutine declaration or subroutine call: 1. without arguments*/ /(^[ \t]*((c|C)all|(f|F)unction|(s|S)ubroutine)[ \t]+)([a-zA-Z_0-9]+[ \t]*)$/ { keyword_face(true); language_print($1); keyword_face(false); function_name_face(true); language_print($6); function_name_face(false); language_print($7); } /* function, subroutine declaration or subroutine call*/ /((CALL|FUNCTION|SUBROUTINE)[ \t]+)([a-zA-Z_0-9]+)([ \t]*\()/ { keyword_face(true); language_print($1); keyword_face(false); function_name_face(true); language_print($3); function_name_face(false); language_print($4); call (f90_func); } /* end function, subroutine declaration or subroutine call*/ /(((e|E)nd)[ \t]*)(((c|C)all|(f|F)unction|(s|S)ubroutine)[ \t]+)([a-zA-Z_0-9]+)/ { keyword_face(true); language_print($1); language_print($4); keyword_face(false); function_name_face(true); language_print($9); function_name_face(false); } /* end function, subroutine declaration or subroutine call*/ /((END)[ \t]*)((CALL|FUNCTION|SUBROUTINE)[ \t]+)([a-zA-Z_0-9]+)/ { keyword_face(true); language_print($1); language_print($3); keyword_face(false); function_name_face(true); language_print($5); function_name_face(false); } /* Module, program, use declaration */ /(((e|E)nd)?[ \t]*)(((m|M)odule|(p|P)rogram|(u|U)se)[ \t]+)([a-zA-Z_0-9]+)/ { keyword_face(true); language_print($1); language_print($4); keyword_face(false); function_name_face(true); language_print($9); function_name_face(false); } /* Module, program, use declaration */ /((END)?[ \t]*)((MODULE|PROGRAM|USE)[ \t]+)([a-zA-Z_0-9]+)/ { debug(concat("Strings: ",$0)); debug(concat($1,"|")); debug(concat($2,"|")); debug(concat($3,"|")); debug(concat($4,"|")); debug(concat($5,"|")); debug(concat($6,"|")); keyword_face(true); language_print($1); language_print($3); keyword_face(false); function_name_face(true); language_print($5); function_name_face(false); } /* Function call */ /* Unfortunately, as F90 uses round brackets for function calls and arrays, this breaks */ /* /(=[ \t]*)([a-zA-Z_0-9]+)([ \t]*\()/{ language_print($1); function_name_face(true); language_print($2); function_name_face(false); language_print($3); }*/ /* Variable declaration */ /^([ \t]*)((i|I)nteger|(r|R)eal|(c|C)omplex|(c|C)haracter|(l|L)ogical|([ \t]*(e|E)nd[ \t]*)?(t|T)ype)/ { type_face(true); language_print($0); type_face(false); call (f90_new_var_list); } /^([ \t]*)(INTEGER|REAL|COMPLEX|CHARACTER|LOGICAL|([ \t]*END[ \t]*)?TYPE)/ { type_face(true); language_print($0); type_face(false); call (f90_new_var_list); } /* none */ /\bnone\b/ { type_face(true); language_print($0); type_face(false); } /* IO Statement (build-re '(open close read write inquire backspace endfile rewind )) */ /\b((b|B)ackspace|(c|C)lose|(e|E)ndfile|(i|I)nquire|(o|O)pen|(r|R)e(ad|wind)|(w|W)rite)\b/ { keyword_face (true); language_print ($0); keyword_face (false); call (f90_io); } /* IO Statement (build-re '(OPEN CLOSE READ WRITE INQUIRE BACKSPACE ENDFILE REWIND )) */ /\b(BACKSPACE|CLOSE|ENDFILE|INQUIRE|OPEN|RE(AD|WIND)|WRITE)\b/ { keyword_face (true); language_print ($0); keyword_face (false); call (f90_io); } /* Keywords */ /* (build-re '(allocate allocatable assign assignment block case common contains continue cycle data deallocate dimension do double else elseif elsewhere end enddo endif entry equivalence exit external forall format goto if implicit include intent interface intrinsic module namelist none nullify only operator optional parameter pause pointer precision print private procedure program public recursive result return save select sequence stop subroutine target then use where while)) */ /\b((a|A)(llocat(able|e)|ssign(|ment))|(b|B)lock\ |(c|C)(ase|o(mmon|nt(ains|inue))|ycle)|(d|D)(ata|eallocate|imension|o(|uble))\ |(e|E)(lse(|if|where)|n(d(|do|if)|try)|quivalence|x(it|ternal))\ |(f|F)or(all|mat)|(g|G)oto|(i|I)(f|mplicit|n(clude|t(e(nt|rface)|rinsic)))\ |(m|M)odule\ |(n|N)(amelist|ullify)|(o|O)(nly|p(erator|tional))\ |(p|P)(a(rameter|use)|ointer|r(ecision|i(nt|vate)|o(cedure|gram))|ublic)\ |(r|R)e(cursive|sult|turn)|(s|S)(ave|e(lect|quence)|top|ubroutine)\ |(t|T)(arget|hen)|(u|U)se|(w|W)h(ere|ile))\b/ { keyword_face (true); language_print ($0); keyword_face (false); } /* (build-re '(ALLOCATE ALLOCATABLE ASSIGN ASSIGNMENT BLOCK CASE COMMON CONTAINS CONTINUE CYCLE DATA DEALLOCATE DIMENSION DO DOUBLE ELSE ELSEIF ELSEWHERE END ENDDO ENDIF ENTRY EQUIVALENCE EXIT EXTERNAL FORALL FORMAT GOTO IF IMPLICIT INCLUDE INTENT INTERFACE INTRINSIC MODULE NAMELIST NULLIFY ONLY OPERATOR OPTIONAL PARAMETER PAUSE POINTER PRECISION PRINT PRIVATE PROCEDURE PROGRAM PUBLIC RECURSIVE RESULT RETURN SAVE SELECT SEQUENCE STOP SUBROUTINE TARGET THEN USE WHERE WHILE)) */ /\b(A(LLOCAT(ABLE|E)|SSIGN(|MENT))|BLOCK\ |C(ASE|O(MMON|NT(AINS|INUE))|YCLE)|D(ATA|EALLOCATE|IMENSION|O(|UBLE))\ |E(LSE(|IF|WHERE)|N(D(|DO|IF)|TRY)|QUIVALENCE|X(IT|TERNAL))\ |FOR(ALL|MAT)|GOTO|I(F|MPLICIT|N(CLUDE|T(E(NT|RFACE)|RINSIC)))\ |MODULE\ |N(AMELIST|ULLIFY)|O(NLY|P(ERATOR|TIONAL))\ |P(A(RAMETER|USE)|OINTER|R(ECISION|I(NT|VATE)|O(CEDURE|GRAM))|UBLIC)\ |RE(CURSIVE|SULT|TURN)|S(AVE|E(LECT|QUENCE)|TOP|UBROUTINE)\ |T(ARGET|HEN)|USE|WH(ERE|ILE))\b/ { keyword_face (true); language_print ($0); keyword_face (false); } LANGUAGE_SPECIALS { language_print ($0); } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/csh.st0000644000175000017500000000405511132443251013555 00000000000000/** * Name: csh * Description: C-Shell script language * Author: Jean-Marc Calvez */ state csh extends HighlightEntry { /* Comments. From sh description */ /#/ { comment_face (true); language_print ($0); call (eat_one_line); comment_face (false); } /* String constants. From sh */ /\"/ { string_face (true); language_print ($0); call (c_string); string_face (false); } /* Ignore escaped quote marks */ /\\\"/ { language_print ($0); } /\\\'/ { language_print ($0); } /\\\`/ { language_print ($0); } /* Excutable script. From sh */ /^#!/ { reference_face (true); language_print ($0); call (eat_one_line); reference_face (false); } /* Keywords. : (build-re '(: alias bg break breaksw case cd chdir continue default dirs echo eval exec exit fg foreach end glob goto hashstat history if then else endif jobs kill limit login logout nice nohup notify onintr popd pushd rehash repeat set setenv shift source stop suspend switch case endsw time umask unalias unhash unlimit unset wait while % @)) */ /\b(%|:|@|alias|b(g|reak(|sw))|c(ase()|d|hdir|ontinue)|d(efault|irs)\ |e(cho|lse|nd(|if|sw)|val|x(ec|it))|f(g|oreach)|g(lob|oto)\ |h(ashstat|istory)|if|jobs|kill|l(imit|og(in|out))|n(ice|o(hup|tify))\ |onintr|p(opd|ushd)|re(hash|peat)\ |s(et(|env)|hift|ource|top|uspend|witch)|t(hen|ime)\ |u(mask|n(alias|hash|limit|set))|w(ait|hile))\b/ { keyword_face (true); language_print ($0); keyword_face (false); } /* Predefined variables: (build-re '(argv cdpath cwd echo fignore filec hardpaths histchars history home ignoreeof mail nobeep noclobber noglob nonomatch notify path prompt savehist shell status verbose)) */ /\b(argv|c(dpath|wd)|echo|fi(gnore|lec)|h(ardpaths|ist(chars|ory)|ome)\ |ignoreeof|mail|no(beep|clobber|glob|nomatch|tify)|p(ath|rompt)\ |s(avehist|hell|tatus)|verbose)\b/ { builtin_face (true); language_print ($0); builtin_face (false); } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/passthrough.st0000644000175000017500000000027611132443251015350 00000000000000/* * Pass all input through handling only output language specific headers * and LANGUAGE_SPECIALS. */ state passthrough extends HighlightEntry { } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/bash.st0000644000175000017500000000550411132443251013715 00000000000000/** * Name: bash * Description: Bourne-Again shell programming language. * Author: Jean-Marc Calvez */ state bash extends HighlightEntry { /* Comments. */ /#/ { comment_face (true); language_print ($0); call (eat_one_line); comment_face (false); } /* String constants. */ /\"/ { string_face (true); language_print ($0); call (c_string); string_face (false); } /* Ignore escaped quote marks */ /\\\"/ { language_print ($0); } /\\\'/ { language_print ($0); } /\\\`/ { language_print ($0); } /* Excutable script. */ /^#!/ { reference_face (true); language_print ($0); call (eat_one_line); reference_face (false); } /* Keywords: (build-re '(! case do done elif else esac fi for function if in select then until while { } time)) */ /\b(!|case|do(|ne)|e(l(if|se)|sac)|f(i|or|unction)|i(f|n)|select\ |t(hen|ime)|until|while|{|})\b/ { keyword_face (true); language_print ($0); keyword_face (false); } /* shell built-in commands (build-re '(: source alias bg bind break builtin cd command continue declare typeset dirs disown echo enable eval exec exit export fc fg getopts hash help history jobs kill let local logout popd pushd pwd read readonly return set shift shopt suspend test times trap type ulimit umask unalias unset wait)) */ /\b(:|alias|b(g|ind|reak|uiltin)|c(d|o(mmand|ntinue))\ |d(eclare|i(rs|sown))|e(cho|nable|val|x(ec|it|port))|f(c|g)|getopts\ |h(ash|elp|istory)|jobs|kill|l(et|o(cal|gout))|p(opd|ushd|wd)\ |re(ad(|only)|turn)|s(et|h(ift|opt)|ource|uspend)\ |t(est|imes|rap|ype(|set))|u(limit|mask|n(alias|set))|wait)\b/ { builtin_face (true); language_print ($0); builtin_face (false); } /* shell variables (built-in) (build-re '(PPID PWD OLDPWD REPLY UID EUID BASH BASH_VERSION BASH_VERSINFO SHLVL RANDOM SECONDS LINENO HISTCMD DIRSTACK PIPESTATUS OPTARG OPTIND HOSTNAME HOSTTYPE OSTYPE MACHTYPE SHELLOPTS IFS PATH HOME CDPATH ENV MAIL MAILCHECK MAILPATH PS1 PS2 PS3 PS4 TIMEFORMAT HISTSIZE HISTFILE HISTFILESIZE OPTERR LANG LC_ALL LC_COLLATE LC_MESSAGES PROMPT_COMMAND IGNOREEOF TMOUT FCEDIT FIGNORE GLOBIGNORE INPUTRC HISTCONTROL HISTIGNORE histchars HOSTFILE auto_resume)) */ /\b(BASH(|_VERSI(NFO|ON))|CDPATH|DIRSTACK|E(NV|UID)|F(CEDIT|IGNORE)\ |GLOBIGNORE\ |H(IST(C(MD|ONTROL)|FILE(|SIZE)|IGNORE|SIZE)|O(ME|ST(FILE|NAME|TYPE)))\ |I(FS|GNOREEOF|NPUTRC)|L(ANG|C_(ALL|COLLATE|MESSAGES)|INENO)\ |MA(CHTYPE|IL(|CHECK|PATH))|O(LDPWD|PT(ARG|ERR|IND)|STYPE)\ |P(ATH|IPESTATUS|PID|ROMPT_COMMAND|S(1|2|3|4)|WD)|R(ANDOM|EPLY)\ |S(ECONDS|H(ELLOPTS|LVL))|T(IMEFORMAT|MOUT)|UID|auto_resume|histchars)\b/ { variable_name_face (true); language_print ($0); variable_name_face (false); } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/lang_enscript.st0000644000175000017500000000352611132443251015632 00000000000000 state lang_enscript { BEGIN { /* RGB -> PostScript color mapper function. */ sub map_color (r, g, b) { return sprintf ("%f %f %f", r div 255.0, g div 255.0, b div 255.0); } /* No language special characters. */ LANGUAGE_SPECIALS = 0; sub language_print (str) { print (str); } sub symbol (sym) { print ("\0font{Symbol", ptsize, ":ps}", sym, "\0font{default}"); } sub language_symbol (sym) { local result = true; if (strcmp (sym, "rightarrow") == 0) symbol ("\0256"); else if (strcmp (sym, "le") == 0) symbol ("\0243"); else if (strcmp (sym, "ge") == 0) symbol ("\0263"); else if (strcmp (sym, "ne") == 0) symbol ("\0271"); else if (strcmp (sym, "equiv") == 0) symbol ("\0272"); else if (strcmp (sym, "land") == 0) symbol ("\0331"); else if (strcmp (sym, "lor") == 0) symbol ("\0332"); else if (strcmp (sym, "lnot") == 0) symbol ("\0330"); else result = false; return result; } sub header () { /* Nothing here. */ } sub trailer () { /* Nothing here. */ } sub font (name) { print ("\0font{", name, "@", ptsize, "}"); } sub color (name) { print ("\0color{", name, "}"); } sub bgcolor (name) { print ("\0bgcolor{", name, "}"); } sub face_on (face) { font (face[fontname]); if (face[fg_color] || face[bg_color]) { if (face[fg_color]) color (face[fg_color]); if (face[bg_color]) bgcolor (face[bg_color]); } } sub face_off (face) { print ("\0font{default}"); if (face[fg_color] || face[bg_color]) { if (face[fg_color]) print ("\0color{default}"); if (face[bg_color]) { print ("\0bgcolor{default}"); } } } return; } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/vba.st0000644000175000017500000000477211132443251013556 00000000000000/** * Name: vba * Description: Visual Basic (for Applications) * Author: Kevin Grover */ /* To Do * - ?Get parser to work for X.X.X.X and not hilight separate Xs * - ?recognize type declaration characters ($,%,@, etc.. on variables) * - ?Look for line numbers/labels (for Goto's) /^\s*[0-9A-Za-z]+:/ */ state vba extends HighlightEntry { /* Comments. */ /[\']|^\s*Rem/ { comment_face (true); language_print ($0); call (eat_one_line); comment_face (false); } /* String constants. */ /\".*\"/ { string_face (true); language_print ($0); string_face (false); } /* Keywords. From: Excel for Windows 95 Power Programming with VGA 2nd Ed, John Walkenbach, pg 160 (build-re '( 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 DefDbl DefInt DefLng DefObj DefSng DefStr DefVar Dim Dir Do Double Each Else ElsIf 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 Optional 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)) */ /\b(A(bs|n(d|y)|s)|B(oolean|y(Ref|Val))\ |C(Bool|Cur|D(ate|bl|ecl)|Int|Lng|S(ng|tr)|V(Date|Err|ar)|a(ll|se)|ircle\ |lose|onst|ur(Dirrase|rency))\ |D(ate|e(bug|clare|f(Bool|Cur|D(ate|bl)|Int|Lng|Obj|S(ng|tr)|Var))\ |i(m|r)|o(|uble))\ |E(ach|ls(If|e)|mpty|nd(|If)|qv|r(ase|ror)|xit)\ |F(alse|ix|or(|mat)|reeFile|unction)|G(et|lobal|o(Sub|To))\ |I(f|mp|n(|put(|B)|str(|B)|t(|eger))|s)\ |L(Bound|Set|e(n(|B)|t)|i(ke|ne)|o(ad|c(al|k)|ng|op))|M(e|id(|B)|od)\ |N(ame|e(w|xt)|ot(|hing)|ull)|O(bject|n|p(en|tion(|al))|r)\ |P(Set|oint|r(eserve|i(nt|vate)|operty)|u(blic|t))\ |R(Set|e(Dim|m|sume|turn))\ |S(cale|e(ek|lect|t)|gn|hared|ingle|pc|t(atic|op|r(Comp|ing))|ub)\ |T(O|ab|hen|rue|ype(|Of))|U(Bound|n(lo(ad|ck)|til))|Variant\ |W(end|hile|i(dth|th)|rite)|Xor)\b/ { keyword_face (true); language_print ($0); keyword_face (false); } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/vhdl.st0000644000175000017500000000561411132443251013737 00000000000000/** * Name: vhdl * Description: VHSIC Hardware Description Language (VHDL) * Highlights keywords, comments and special vhdl * constructs. Please send comments or suggestions. * * Author: Brian Silveira (brian@nortel.ca) * */ state vhdl extends HighlightEntry { /* Comments. */ /--/ { comment_face (true); language_print ($0); call (eat_one_line); comment_face (false); } /* String constants. */ /\"/ { string_face (true); language_print ($0); call (c_string); string_face (false); } /* Keywords. (build-re '(abs access after alias all and architecture array assert attribute begin begin block body body buffer bus case component configuration configuration constant disconnect downto else elsif end entity exit file for function function generate generic guarded if in inout 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 reverse select severity signal subtype then to transport type units until use variable wait when while with with xor) t) */ /\b([aA]([bB][sS]|[cC][cC][eE][sS][sS]|[fF][tT][eE][rR]\ |[lL]([iI][aA][sS]|[lL])|[nN][dD]\ |[rR]([cC][hH][iI][tT][eE][cC][tT][uU][rR][eE]|[rR][aA][yY])\ |[sS][sS][eE][rR][tT]|[tT][tT][rR][iI][bB][uU][tT][eE])\ |[bB]([eE][gG][iI][nN]()|[lL][oO][cC][kK]|[oO][dD][yY]()\ |[uU]([fF][fF][eE][rR]|[sS]))\ |[cC]([aA][sS][eE]\ |[oO]([mM][pP][oO][nN][eE][nN][tT]\ |[nN]([fF][iI][gG][uU][rR][aA][tT][iI][oO][nN]()|[sS][tT][aA][nN][tT])))\ |[dD]([iI][sS][cC][oO][nN][nN][eE][cC][tT]|[oO][wW][nN][tT][oO])\ |[eE]([lL][sS]([eE]|[iI][fF])|[nN]([dD]|[tT][iI][tT][yY])|[xX][iI][tT])\ |[fF]([iI][lL][eE]|[oO][rR]|[uU][nN][cC][tT][iI][oO][nN]())\ |[gG]([eE][nN][eE][rR]([aA][tT][eE]|[iI][cC])|[uU][aA][rR][dD][eE][dD])\ |[iI]([fF]|[nN](|[oO][uU][tT])|[sS])\ |[lL]([aA][bB][eE][lL]|[iI]([bB][rR][aA][rR][yY]|[nN][kK][aA][gG][eE])\ |[oO][oO][pP])\ |[mM]([aA][pP]|[oO][dD])\ |[nN]([aA][nN][dD]|[eE]([wW]|[xX][tT])|[oO]([rR]|[tT])|[uU][lL][lL])\ |[oO]([fF]|[nN]|[pP][eE][nN]|[rR]|[tT][hH][eE][rR][sS]|[uU][tT])\ |[pP]([aA][cC][kK][aA][gG][eE]|[oO][rR][tT]\ |[rR][oO][cC][eE]([dD][uU][rR][eE]|[sS][sS]))\ |[rR]([aA][nN][gG][eE]\ |[eE]([cC][oO][rR][dD]|[gG][iI][sS][tT][eE][rR]|[mM]|[pP][oO][rR][tT]\ |[tT][uU][rR][nN]|[vV][eE][rR][sS][eE]))\ |[sS]([eE]([lL][eE][cC][tT]|[vV][eE][rR][iI][tT][yY])|[iI][gG][nN][aA][lL]\ |[uU][bB][tT][yY][pP][eE])\ |[tT]([hH][eE][nN]|[oO]|[rR][aA][nN][sS][pP][oO][rR][tT]|[yY][pP][eE])\ |[uU]([nN]([iI][tT][sS]|[tT][iI][lL])|[sS][eE])\ |[vV][aA][rR][iI][aA][bB][lL][eE]\ |[wW]([aA][iI][tT]|[hH]([eE][nN]|[iI][lL][eE])|[iI][tT][hH]())\ |[xX][oO][rR])\b/ { keyword_face (true); language_print ($0); keyword_face (false); } /<=|=>/ { reference_face (true); language_print ($0); reference_face(false); } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/style_msvc.st0000644000175000017500000000226511132443251015171 00000000000000/* MS Visual C -styled style */ state style_msvc { BEGIN { /* This is really boring style. */ call (default_faces); face_bold = make_face (bold_font, 1, 0); face_italic = make_face (italic_font, 0, 1); face_bold_italic = make_face (bold_italic_font, 1, 1); face_function_name = make_face (font, 0, 0); face_variable_name = make_face (font, 0, 0); face_string = make_face (font, 0, 0); face_builtin = make_face (font, 0, 0); /* These are the only faces which are highlighted. */ if (color) { face_comment = make_face (font, 0, 0); face_comment[fg_color] = language_color("forest green"); face_keyword = make_face (font, 0, 0); face_keyword[fg_color] = language_color("blue"); face_type = make_face (font, 0, 0); face_type[fg_color] = language_color("blue"); face_reference = make_face (font, 0, 0); face_reference[fg_color] = language_color("blue"); } else { face_comment = make_face (italic_font, 1, 0); face_keyword = make_face (bold_font, 1, 0); face_type = make_face (bold_font, 1, 0); face_reference = make_face (bold_font, 1, 0); } return; } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/python.st0000644000175000017500000000323211132443251014315 00000000000000/** * Name: python * Description: Python programming language. * Author: Andy Eskilsson */ state python_string extends Highlight { /\\\\./ { language_print ($0); } python_string_end { language_print ($0); return; } } state python extends HighlightEntry { /* Comments. */ /#/ { comment_face (true); language_print ($0); call (eat_one_line); comment_face (false); } /* Python strings */ /(\"\"\"|[\'][\'][\'])/ { python_string_end = regexp($0); string_face (true); language_print ($0); call (python_string); string_face (false); } /(\"|[\'])/ { python_string_end = regexp( $0 ); string_face (true); language_print ($0); call (python_string); string_face (false); } /* Function */ /([ \t]*)(def)([ \t]+)([^(]*)/ { /* indentation */ language_print ($1); /* def */ keyword_face (true); language_print ($2); keyword_face (false); /* middle */ language_print ($3); /* Function name. */ function_name_face (true); language_print ($4); function_name_face (false); } /* Keywords (build-re '(and assert break class continue def del elif else else: except except: exec finally for from global if import in is lambda not or pass print raise return try try: while yield)) */ /\b(a(nd|ssert)|break|c(lass|ontinue)|de(f|l)\ |e(l(if|se(|:))|x(cept(|:)|ec))|f(inally|or|rom)|global|i(f|mport|n|s)\ |lambda|not|or|p(ass|rint)|r(aise|eturn)|try(|:)|while|yield)\b/ { keyword_face (true); language_print ($0); keyword_face (false); } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/fortran.st0000644000175000017500000001114511132443251014451 00000000000000/** * Name: fortran * Description: Fortran77 programming language. * Author: Keith Refson * Markku Rossi * edited by Joachim Kaiser : * - relational/logical operators and io specifiers (named added) with * changed from keyword_face to builtin_face * - type statement keywords changed from keyword_face to type_face * - 'print' moved from keywords to io statements * - distinguish between 'real' type statement and 'real' type conversion * function * - 'endfile', 'enddo' and 'while' removed from keyword list (not * defined in FORTRAN 77), 'assign' added, 'else if' and 'end if' with * optional blank before 'if' * - comments only as complete lines starting with [cC\*] (FORTRAN 77) * - case-insensitive regexp with the `i' option at the end of the regexp */ state fortran_string extends Highlight { /[\']/ { language_print ($0); debug ("Finishing fortran_string state."); return; } } state fortran_io extends Highlight { /\(/ { language_print ($0); parentheses_level++; debug (concat("Parenthesis_level = ",string(parentheses_level))); } /\)/ { language_print ($0); parentheses_level--; debug (concat("Parenthesis_level = ",string(parentheses_level))); if (parentheses_level == 0) { debug ("Finishing fortran_io state."); return; } } /* IO Specifiers. (build-re '(FMT UNIT REC END ERR FILE STATUS ACCESS FORM RECL BLANK IOSTAT EXIST OPENED NUMBER NAME NAMED SEQUENTIAL DIRECT FORMATTED UNFORMATTED NEXTREC)) */ /\b(ACCESS|BLANK|DIRECT|E(ND|RR|XIST)|F(ILE|MT|ORM(|ATTED))|IOSTAT\ |N(AMED?|EXTREC|UMBER)|OPENED|REC(|L)|S(EQUENTIAL|TATUS)\ |UN(FORMATTED|IT))\b/i { debug (concat("This is an io specifier: ",$0)); builtin_face (true); language_print ($0); builtin_face (false); } /* String within io statement */ /[\']/ { debug ("String in io statement found."); string_face (true); language_print ($0); call (fortran_string); string_face (false); } } state fortran extends HighlightEntry { BEGIN { parentheses_level = 0; debug ("Starting fortran state."); } END { debug ("Finishing fortran state."); } /* Comments. */ /^[cC\*]/ { debug ("Comment line found."); comment_face (true); language_print ($0); call (eat_one_line); comment_face (false); } /* String constants. */ /[\']/ { debug ("String constant found."); string_face (true); language_print ($0); call (fortran_string); string_face (false); } /* Relational/logical operators. We have to roll by hand because of the dots - "\b" doesn't delimit here. */ /\.(AND|EQV?|G(E|T)|L(E|T)|NE(QV)?|NOT|OR)\./i { debug (concat("This is an rel/log operator: ",$0)); builtin_face (true); language_print ($0); builtin_face (false); } /* IO Statement (build-re '(OPEN CLOSE READ PRINT WRITE INQUIRE BACKSPACE ENDFILE REWIND )) */ /\b(BACKSPACE|CLOSE|ENDFILE|INQUIRE|OPEN|PRINT|RE(AD|WIND)|WRITE)(\(?)/i { debug (concat("This is an io statement: ",$1)); keyword_face (true); language_print ($1); keyword_face (false); if (strcmp ($3, "") != 0) { language_print ($3); parentheses_level=1; call (fortran_io); } } /* Type statements. */ /\b((CHARACTER|COMPLEX|INTEGER|LOGICAL|REAL)(\*([0-9]+|\())?\ |(DOUBLE *PRECISION))( *\(?[a-zA-Z0-9]+)/i { debug (concat("This is a type statement: ",$2,$5)); type_face (true); language_print ($2); language_print ($5); type_face (false); language_print ($3); next_word = $6; if (regmatch (next_word, / *FUNCTION/i)) { debug ("... for a function"); keyword_face (true); language_print (next_word); keyword_face (false); } else { language_print (next_word); } } /* Keywords other than type and io statements. (build-re '(ASSIGN BLOCK_sDATA CALL COMMON CONTINUE DATA DIMENSION DO ELSE ELSE_sIF END END_sIF ENTRY EQUIVALENCE EXTERNAL FORMAT FUNCTION GO_sTO IF IMPLICIT INCLUDE INTRINSIC PARAMETER PAUSE PROGRAM RETURN SAVE STOP SUBROUTINE THEN )) */ /\b(ASSIGN|BLOCK \*DATA|C(ALL|O(MMON|NTINUE))|D(ATA|IMENSION|O)\ |E(LSE(| \*IF)|N(D(| \*IF)|TRY)|QUIVALENCE|XTERNAL)|F(ORMAT|UNCTION)\ |GO \*TO|I(F|MPLICIT|N(CLUDE|TRINSIC))|P(A(RAMETER|USE)|ROGRAM)|RETURN\ |S(AVE|TOP|UBROUTINE)|THEN)\b/i { debug (concat("Other keyword found: ",$0)); keyword_face (true); language_print ($0); keyword_face (false); } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/hl/style_emacs_verbose.st0000644000175000017500000000023111132443251017025 00000000000000 state style_emacs_verbose { BEGIN { call (style_emacs); verbose_highlighting = true; return; } } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/lex.c0000644000175000017500000016110211606344233012764 00000000000000 #line 3 "lex.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 35 #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 defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, * if you want the limit (max/min) macros for int types. */ #ifndef __STDC_LIMIT_MACROS #define __STDC_LIMIT_MACROS 1 #endif #include typedef int8_t flex_int8_t; typedef uint8_t flex_uint8_t; typedef int16_t flex_int16_t; typedef uint16_t flex_uint16_t; typedef int32_t flex_int32_t; typedef uint32_t flex_uint32_t; #else typedef signed char flex_int8_t; typedef short int flex_int16_t; typedef int flex_int32_t; typedef unsigned char flex_uint8_t; typedef unsigned short int flex_uint16_t; typedef unsigned int flex_uint32_t; /* Limits of integral types. */ #ifndef INT8_MIN #define INT8_MIN (-128) #endif #ifndef INT16_MIN #define INT16_MIN (-32767-1) #endif #ifndef INT32_MIN #define INT32_MIN (-2147483647-1) #endif #ifndef INT8_MAX #define INT8_MAX (127) #endif #ifndef INT16_MAX #define INT16_MAX (32767) #endif #ifndef INT32_MAX #define INT32_MAX (2147483647) #endif #ifndef UINT8_MAX #define UINT8_MAX (255U) #endif #ifndef UINT16_MAX #define UINT16_MAX (65535U) #endif #ifndef UINT32_MAX #define UINT32_MAX (4294967295U) #endif #endif /* ! C99 */ #endif /* ! FLEXINT_H */ #ifdef __cplusplus /* The "const" storage-class-modifier is valid. */ #define YY_USE_CONST #else /* ! __cplusplus */ /* C99 requires __STDC__ to be defined as 1. */ #if defined (__STDC__) #define YY_USE_CONST #endif /* defined (__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 #ifdef __ia64__ /* On IA-64, the buffer size is 16k, not 8k. * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. * Ditto for the __ia64__ case accordingly. */ #define YY_BUF_SIZE 32768 #else #define YY_BUF_SIZE 16384 #endif /* __ia64__ */ #endif /* The state buf must be large enough to hold one state per character in the main buffer. */ #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) #ifndef YY_TYPEDEF_YY_BUFFER_STATE #define YY_TYPEDEF_YY_BUFFER_STATE typedef struct yy_buffer_state *YY_BUFFER_STATE; #endif 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) ) #ifndef YY_TYPEDEF_YY_SIZE_T #define YY_TYPEDEF_YY_SIZE_T typedef size_t 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 39 #define YY_END_OF_BUFFER 40 /* 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[114] = { 0, 0, 0, 40, 38, 2, 3, 38, 4, 38, 38, 38, 38, 38, 38, 38, 7, 36, 38, 38, 38, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 38, 24, 37, 27, 0, 0, 33, 29, 0, 36, 31, 30, 32, 35, 1, 35, 25, 23, 26, 37, 37, 37, 37, 37, 37, 37, 14, 37, 37, 37, 37, 37, 37, 28, 5, 0, 35, 37, 9, 10, 37, 37, 13, 37, 37, 37, 37, 21, 37, 6, 37, 34, 11, 37, 37, 37, 37, 37, 37, 37, 8, 37, 15, 37, 37, 18, 20, 22, 37, 37, 17, 37, 12, 37, 37, 37, 37, 16, 37, 19, 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, 4, 5, 1, 6, 1, 7, 8, 1, 1, 9, 10, 1, 11, 12, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 1, 1, 15, 16, 17, 1, 1, 18, 19, 18, 20, 21, 18, 22, 18, 23, 18, 18, 18, 18, 24, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 1, 25, 1, 1, 18, 1, 26, 27, 28, 29, 30, 31, 18, 32, 33, 18, 18, 34, 35, 36, 37, 18, 18, 38, 39, 40, 41, 42, 43, 44, 18, 18, 1, 45, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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[46] = { 0, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1 } ; static yyconst flex_int16_t yy_base[118] = { 0, 0, 0, 137, 138, 138, 138, 120, 138, 0, 128, 109, 117, 36, 42, 118, 122, 35, 114, 113, 112, 0, 106, 102, 92, 17, 87, 92, 85, 95, 90, 19, 87, 73, 138, 138, 138, 109, 0, 138, 138, 102, 43, 138, 138, 138, 101, 138, 100, 138, 138, 138, 0, 91, 92, 69, 71, 69, 70, 0, 79, 71, 65, 78, 76, 69, 138, 138, 93, 86, 76, 0, 82, 67, 66, 0, 69, 64, 52, 24, 0, 58, 138, 67, 138, 0, 54, 55, 50, 49, 46, 55, 54, 0, 54, 0, 41, 45, 42, 0, 0, 40, 44, 0, 36, 0, 46, 41, 35, 42, 0, 27, 0, 138, 64, 67, 60, 70 } ; static yyconst flex_int16_t yy_def[118] = { 0, 113, 1, 113, 113, 113, 113, 113, 113, 114, 113, 115, 113, 113, 113, 113, 113, 113, 113, 113, 113, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 113, 113, 113, 113, 113, 117, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 113, 113, 113, 113, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 113, 116, 113, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 0, 113, 113, 113, 113 } ; static yyconst flex_int16_t yy_nxt[184] = { 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 21, 23, 21, 21, 21, 4, 21, 21, 21, 24, 25, 26, 21, 27, 28, 21, 29, 21, 30, 31, 21, 21, 21, 32, 21, 33, 40, 48, 41, 42, 42, 56, 43, 44, 41, 48, 42, 42, 45, 63, 64, 57, 90, 52, 91, 35, 112, 35, 37, 37, 37, 68, 111, 68, 110, 109, 108, 107, 106, 105, 104, 103, 102, 101, 100, 99, 98, 97, 96, 95, 94, 93, 92, 89, 88, 87, 86, 85, 84, 83, 69, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 46, 46, 67, 66, 65, 62, 61, 60, 59, 58, 55, 54, 53, 51, 50, 49, 47, 46, 39, 38, 36, 34, 113, 3, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113 } ; static yyconst flex_int16_t yy_chk[184] = { 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, 13, 17, 13, 17, 13, 25, 13, 14, 14, 42, 14, 42, 14, 31, 31, 25, 79, 116, 79, 114, 111, 114, 115, 115, 115, 117, 109, 117, 108, 107, 106, 104, 102, 101, 98, 97, 96, 94, 92, 91, 90, 89, 88, 87, 86, 83, 81, 78, 77, 76, 74, 73, 72, 70, 69, 68, 65, 64, 63, 62, 61, 60, 58, 57, 56, 55, 54, 53, 48, 46, 41, 37, 33, 32, 30, 29, 28, 27, 26, 24, 23, 22, 20, 19, 18, 16, 15, 12, 11, 10, 7, 3, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113 } ; 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 "lex.l" #line 2 "lex.l" /* * Lexer for states. * Copyright (c) 1997-1998 Markku Rossi. * * Author: Markku Rossi */ /* * This file is part of GNU Enscript. * * Enscript is free software: you can redistribute 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. * * Enscript is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Enscript. If not, see . */ /* * $Id: lex.l,v 1.1.1.1 2003/03/05 07:25:52 mtr Exp $ */ #include "defs.h" #include "gram.h" static void eat_comment (); static char *read_string ___P ((unsigned int *len_return)); static void read_regexp ___P ((Node *node)); #line 571 "lex.c" #define INITIAL 0 #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 ); /* Accessor methods to globals. These are made visible to non-reentrant scanners for convenience. */ int yylex_destroy (void ); int yyget_debug (void ); void yyset_debug (int debug_flag ); YY_EXTRA_TYPE yyget_extra (void ); void yyset_extra (YY_EXTRA_TYPE user_defined ); FILE *yyget_in (void ); void yyset_in (FILE * in_str ); FILE *yyget_out (void ); void yyset_out (FILE * out_str ); int yyget_leng (void ); char *yyget_text (void ); int yyget_lineno (void ); void yyset_lineno (int line_number ); /* Macros after this point can all be overridden by user definitions in * section 1. */ #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus extern "C" int yywrap (void ); #else extern int yywrap (void ); #endif #endif 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 #ifdef __ia64__ /* On IA-64, the buffer size is 16k, not 8k */ #define YY_READ_BUF_SIZE 16384 #else #define YY_READ_BUF_SIZE 8192 #endif /* __ia64__ */ #endif /* Copy whatever the last rule matched to the standard output. */ #ifndef ECHO /* This used to be an fputs(), but since the string might contain NUL's, * we now use fwrite(). */ #define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0) #endif /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, * is returned in "result". */ #ifndef YY_INPUT #define YY_INPUT(buf,result,max_size) \ if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ { \ int c = '*'; \ 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 \ 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 "lex.l" #line 761 "lex.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_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 >= 114 ) 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] != 138 ); 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: YY_RULE_SETUP #line 44 "lex.l" { eat_comment (); } YY_BREAK case 2: YY_RULE_SETUP #line 45 "lex.l" { ; } YY_BREAK case 3: /* rule 3 can match eol */ YY_RULE_SETUP #line 46 "lex.l" { linenum++; } YY_BREAK case 4: YY_RULE_SETUP #line 48 "lex.l" { yylval.node = node_alloc (nSTRING); yylval.node->u.str.data = read_string (&yylval.node->u.str.len); return tSTRING; } YY_BREAK case 5: /* rule 5 can match eol */ YY_RULE_SETUP #line 54 "lex.l" { yylval.node = node_alloc (nINTEGER); yylval.node->u.integer = yytext[1]; return tINTEGER; } YY_BREAK case 6: YY_RULE_SETUP #line 59 "lex.l" { yylval.node = node_alloc (nINTEGER); switch (yytext[2]) { case 'n': yylval.node->u.integer = '\n'; break; case 't': yylval.node->u.integer = '\t'; break; case 'v': yylval.node->u.integer = '\v'; break; case 'b': yylval.node->u.integer = '\b'; break; case 'r': yylval.node->u.integer = '\r'; break; case 'f': yylval.node->u.integer = '\f'; break; case 'a': yylval.node->u.integer = '\a'; break; default: yylval.node->u.integer = yytext[2]; break; } return tINTEGER; } YY_BREAK case 7: YY_RULE_SETUP #line 98 "lex.l" { yylval.node = node_alloc (nREGEXP); read_regexp (yylval.node); return tREGEXP; } YY_BREAK case 8: YY_RULE_SETUP #line 103 "lex.l" { return tBEGIN; } YY_BREAK case 9: YY_RULE_SETUP #line 104 "lex.l" { return tEND; } YY_BREAK case 10: YY_RULE_SETUP #line 105 "lex.l" { return tDIV; } YY_BREAK case 11: YY_RULE_SETUP #line 106 "lex.l" { return tELSE; } YY_BREAK case 12: YY_RULE_SETUP #line 107 "lex.l" { return tEXTENDS; } YY_BREAK case 13: YY_RULE_SETUP #line 108 "lex.l" { return tFOR; } YY_BREAK case 14: YY_RULE_SETUP #line 109 "lex.l" { return tIF; } YY_BREAK case 15: YY_RULE_SETUP #line 110 "lex.l" { return tLOCAL; } YY_BREAK case 16: YY_RULE_SETUP #line 111 "lex.l" { return tNAMERULES; } YY_BREAK case 17: YY_RULE_SETUP #line 112 "lex.l" { return tRETURN; } YY_BREAK case 18: YY_RULE_SETUP #line 113 "lex.l" { return tSTART; } YY_BREAK case 19: YY_RULE_SETUP #line 114 "lex.l" { return tSTARTRULES; } YY_BREAK case 20: YY_RULE_SETUP #line 115 "lex.l" { return tSTATE; } YY_BREAK case 21: YY_RULE_SETUP #line 116 "lex.l" { return tSUB; } YY_BREAK case 22: YY_RULE_SETUP #line 117 "lex.l" { return tWHILE; } YY_BREAK case 23: YY_RULE_SETUP #line 119 "lex.l" { return tEQ; } YY_BREAK case 24: YY_RULE_SETUP #line 120 "lex.l" { return tNE; } YY_BREAK case 25: YY_RULE_SETUP #line 121 "lex.l" { return tLE; } YY_BREAK case 26: YY_RULE_SETUP #line 122 "lex.l" { return tGE; } YY_BREAK case 27: YY_RULE_SETUP #line 123 "lex.l" { return tAND; } YY_BREAK case 28: YY_RULE_SETUP #line 124 "lex.l" { return tOR; } YY_BREAK case 29: YY_RULE_SETUP #line 125 "lex.l" { return tPLUSPLUS; } YY_BREAK case 30: YY_RULE_SETUP #line 126 "lex.l" { return tMINUSMINUS; } YY_BREAK case 31: YY_RULE_SETUP #line 127 "lex.l" { return tADDASSIGN; } YY_BREAK case 32: YY_RULE_SETUP #line 128 "lex.l" { return tSUBASSIGN; } YY_BREAK case 33: YY_RULE_SETUP #line 129 "lex.l" { return tMULASSIGN; } YY_BREAK case 34: YY_RULE_SETUP #line 130 "lex.l" { return tDIVASSIGN; } YY_BREAK case 35: YY_RULE_SETUP #line 132 "lex.l" { yylval.node = node_alloc (nREAL); yylval.node->u.real = atof (yytext); return tREAL; } YY_BREAK case 36: YY_RULE_SETUP #line 136 "lex.l" { yylval.node = node_alloc (nINTEGER); yylval.node->u.integer = atoi (yytext); return tINTEGER; } YY_BREAK case 37: YY_RULE_SETUP #line 140 "lex.l" { yylval.node = node_alloc (nSYMBOL); yylval.node->u.sym = xstrdup (yytext); return tSYMBOL; } YY_BREAK case 38: YY_RULE_SETUP #line 145 "lex.l" { return yytext[0]; } YY_BREAK case 39: YY_RULE_SETUP #line 147 "lex.l" ECHO; YY_BREAK #line 1097 "lex.c" case YY_STATE_EOF(INITIAL): 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; if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); } (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 >= 114 ) 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 >= 114 ) 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 == 113); 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); 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*) ); if ( ! (yy_buffer_stack) ) YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); (yy_buffer_stack_max) = num_to_alloc; (yy_buffer_stack_top) = 0; return; } if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ /* Increase the buffer to prepare for a possible push. */ 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*) ); if ( ! (yy_buffer_stack) ) YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); /* zero only the new slots.*/ memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); (yy_buffer_stack_max) = num_to_alloc; } } /** Setup the input buffer state to scan directly from a user-specified character buffer. * @param base the character buffer * @param size the size in bytes of the character buffer * * @return the newly allocated buffer state object. */ YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) { YY_BUFFER_STATE b; if ( size < 2 || base[size-2] != YY_END_OF_BUFFER_CHAR || base[size-1] != YY_END_OF_BUFFER_CHAR ) /* They forgot to leave room for the EOB's. */ return 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 yybytes the byte buffer to scan * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes. * * @return the newly allocated buffer state object. */ YY_BUFFER_STATE yy_scan_bytes (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 147 "lex.l" static void eat_comment () { int c; while ((c = input ()) != EOF) { if (c == '\n') linenum++; else if (c == '*') { c = input (); if (c == '/') /* All done. */ return; if (c == EOF) { yyerror (_("error: EOF in comment")); break; } unput (c); } } yyerror (_("error: EOF in comment")); } int yywrap () { return 1; } static char * read_string (len_return) unsigned int *len_return; { char *buf = NULL; char *buf2; int buflen = 0; int bufpos = 0; int ch; int done = 0; while (!done) { ch = input (); if (ch == '\n') linenum++; switch (ch) { case EOF: unexpected_eof: yyerror (_("error: EOF in string constant")); done = 1; break; case '"': done = 1; break; case '\\': ch = input (); switch (ch) { case 'n': ch = '\n'; break; case 't': ch = '\t'; break; case 'v': ch = '\v'; break; case 'b': ch = '\b'; break; case 'r': ch = '\r'; break; case 'f': ch = '\f'; break; case 'a': ch = '\a'; break; case EOF: goto unexpected_eof; break; default: if (ch == '0') { int i; int val = 0; for (i = 0; i < 3; i++) { ch = input (); if ('0' <= ch && ch <= '7') val = val * 8 + ch - '0'; else { unput (ch); break; } } ch = val; } break; } /* FALLTHROUGH */ default: if (bufpos >= buflen) { buflen += 1024; buf = (char *) xrealloc (buf, buflen); } buf[bufpos++] = ch; break; } } buf2 = (char *) xmalloc (bufpos + 1); memcpy (buf2, buf, bufpos); buf2[bufpos] = '\0'; xfree (buf); *len_return = bufpos; return buf2; } static void read_regexp (node) Node *node; { char *buf = NULL; char *buf2; int buflen = 0; int bufpos = 0; int ch; int done = 0; while (!done) { ch = input (); switch (ch) { case EOF: unexpected_eof: yyerror (_("error: EOF in regular expression")); done = 1; break; case '/': done = 1; break; case '\\': ch = input (); switch (ch) { case '\n': /* Line break. */ linenum++; continue; break; case 'n': ch = '\n'; break; case 'r': ch = '\r'; break; case 'f': ch = '\f'; break; case 't': ch = '\t'; break; case '/': case '\\': /* Quote these. */ break; case EOF: goto unexpected_eof; break; default: if (ch == '0') { int i; int val = 0; for (i = 0; i < 3; i++) { ch = input (); if ('0' <= ch && ch <= '7') val = val * 8 + ch - '0'; else { unput (ch); break; } } ch = val; } else { /* Pass it through. */ unput (ch); ch = '\\'; } break; } /* FALLTHROUGH */ default: if (bufpos >= buflen) { buflen += 1024; buf = (char *) xrealloc (buf, buflen); } buf[bufpos++] = ch; break; } } /* Possible options. */ done = 0; while (!done) { ch = input (); switch (ch) { case 'i': /* Case-insensitive regular expression. */ node->u.re.flags |= fRE_CASE_INSENSITIVE; break; default: /* Unknown option => this belongs to the next token. */ unput (ch); done = 1; break; } } buf2 = (char *) xmalloc (bufpos + 1); memcpy (buf2, buf, bufpos); buf2[bufpos] = '\0'; xfree (buf); node->u.re.data = buf2; node->u.re.len = bufpos; } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/gram.y0000644000175000017500000001443611133214772013156 00000000000000%{ /* -*- c -*- * Grammar for states. * Copyright (c) 1997-1998 Markku Rossi. * * Author: Markku Rossi */ /* * This file is part of GNU Enscript. * * Enscript is free software: you can redistribute 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. * * Enscript is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Enscript. If not, see . */ /* * $Id: gram.y,v 1.1.1.1 2003/03/05 07:25:52 mtr Exp $ */ #include "defs.h" %} %union { List *lst; Node *node; Cons *cons; Stmt *stmt; Expr *expr; } %token tSYMBOL tREGEXP tSTRING tINTEGER tREAL %token tSUB tSTATE tSTART tSTARTRULES tNAMERULES tBEGIN tEND tRETURN tIF tELSE %token tLOCAL tWHILE tFOR tEXTENDS %right '=' tADDASSIGN tSUBASSIGN tMULASSIGN tDIVASSIGN %right '?' ':' %left tOR %left tAND %left tEQ tNE %left '<' '>' tGE tLE %left '+' '-' %left '*' tDIV %right '!' tPLUSPLUS tMINUSMINUS %left '[' ']' %type regexp_sym_list symbol_list rest_symbol_list staterules %type stmt_list expr_list rest_expr_list locals locals_rest %type stmt %type expr cond_expr %type staterule local_def %% file : /* empty */ | file toplevel ; toplevel : tSTART '{' stmt_list '}' { start_stmts = $3; } | tSTARTRULES '{' regexp_sym_list '}' { startrules = $3; } | tNAMERULES '{' regexp_sym_list '}' { namerules = $3; } | tSTATE tSYMBOL '{' staterules '}' { define_state ($2, NULL, $4); } | tSTATE tSYMBOL tEXTENDS tSYMBOL '{' staterules '}' { define_state ($2, $4, $6); } | stmt { list_append (global_stmts, $1); } ; regexp_sym_list : /* empty */ { $$ = list (); } | regexp_sym_list tREGEXP tSYMBOL ';' { list_append ($1, cons ($2, $3)); } ; staterules : /* empty */ { $$ = list (); } | staterules staterule { list_append ($1, $2); } staterule : tBEGIN '{' stmt_list '}' { $$ = cons (RULE_BEGIN, $3); } | tEND '{' stmt_list '}' { $$ = cons (RULE_END, $3); } | tREGEXP '{' stmt_list '}' { $$ = cons ($1, $3); } | tSYMBOL '{' stmt_list '}' { $$ = cons ($1, $3); } ; symbol_list : /* empty */ { $$ = list (); } | rest_symbol_list { $$ = $1; } ; rest_symbol_list : tSYMBOL { $$ = list (); list_append ($$, $1); } | rest_symbol_list ',' tSYMBOL { list_append ($1, $3); } ; locals : /* empty */ { $$ = list (); } | tLOCAL locals_rest ';' { $$ = $2; } ; locals_rest : local_def { $$ = list (); list_append ($$, $1); } | locals_rest ',' local_def { list_append ($1, $3); } ; local_def : tSYMBOL { $$ = cons ($1, NULL); } | tSYMBOL '=' expr { $$ = cons ($1, $3); } ; stmt_list : /* empty */ { $$ = list (); } | stmt_list stmt { list_append ($1, $2); } ; stmt : tRETURN ';' { $$ = mk_stmt (sRETURN, NULL, NULL, NULL, NULL); } | tRETURN expr ';' { $$ = mk_stmt (sRETURN, $2, NULL, NULL, NULL); } | tSUB tSYMBOL '(' symbol_list ')' '{' locals stmt_list '}' { $$ = mk_stmt (sDEFSUB, $2, cons (cons ($4, $7), $8), NULL, NULL); } | '{' stmt_list '}' { $$ = mk_stmt (sBLOCK, $2, NULL, NULL, NULL); } | tIF '(' expr ')' stmt { $$ = mk_stmt (sIF, $3, $5, NULL, NULL); } | tIF '(' expr ')' stmt tELSE stmt { $$ = mk_stmt (sIF, $3, $5, $7, NULL); } | tWHILE '(' expr ')' stmt { $$ = mk_stmt (sWHILE, $3, $5, NULL, NULL); } | tFOR '(' cond_expr ';' expr ';' cond_expr ')' stmt { $$ = mk_stmt (sFOR, $3, $5, $7, $9); } | expr ';' { $$ = mk_stmt (sEXPR, $1, NULL, NULL, NULL); } ; expr : tSTRING { $$ = mk_expr (eSTRING, $1, NULL, NULL); } | tREGEXP { $$ = mk_expr (eREGEXP, $1, NULL, NULL); } | tINTEGER { $$ = mk_expr (eINTEGER, $1, NULL, NULL); } | tREAL { $$ = mk_expr (eREAL, $1, NULL, NULL); } | tSYMBOL { $$ = mk_expr (eSYMBOL, $1, NULL, NULL); } | '!' expr { $$ = mk_expr (eNOT, $2, NULL, NULL); } | expr tAND expr { $$ = mk_expr (eAND, $1, $3, NULL); } | expr tOR expr { $$ = mk_expr (eOR, $1, $3, NULL); } | tSYMBOL '(' expr_list ')' { $$ = mk_expr (eFCALL, $1, $3, NULL); } | tSYMBOL '=' expr { $$ = mk_expr (eASSIGN, $1, $3, NULL); } | tSYMBOL tADDASSIGN expr { $$ = mk_expr (eADDASSIGN, $1, $3, NULL); } | tSYMBOL tSUBASSIGN expr { $$ = mk_expr (eSUBASSIGN, $1, $3, NULL); } | tSYMBOL tMULASSIGN expr { $$ = mk_expr (eMULASSIGN, $1, $3, NULL); } | tSYMBOL tDIVASSIGN expr { $$ = mk_expr (eDIVASSIGN, $1, $3, NULL); } | tSYMBOL tPLUSPLUS { $$ = mk_expr (ePOSTFIXADD, $1, NULL, NULL); } | tSYMBOL tMINUSMINUS { $$ = mk_expr (ePOSTFIXSUB, $1, NULL, NULL); } | tPLUSPLUS tSYMBOL { $$ = mk_expr (ePREFIXADD, $2, NULL, NULL); } | tMINUSMINUS tSYMBOL { $$ = mk_expr (ePREFIXSUB, $2, NULL, NULL); } | expr '[' expr ']' '=' expr { $$ = mk_expr (eARRAYASSIGN, $1, $3, $6); } | '(' expr ')' { $$ = $2; } | expr '[' expr ']' { $$ = mk_expr (eARRAYREF, $1, $3, NULL); } | expr '?' expr ':' expr { $$ = mk_expr (eQUESTCOLON, $1, $3, $5); } | expr '*' expr { $$ = mk_expr (eMULT, $1, $3, NULL); } | expr tDIV expr { $$ = mk_expr (eDIV, $1, $3, NULL); } | expr '+' expr { $$ = mk_expr (ePLUS, $1, $3, NULL); } | expr '-' expr { $$ = mk_expr (eMINUS, $1, $3, NULL); } | expr '<' expr { $$ = mk_expr (eLT, $1, $3, NULL); } | expr '>' expr { $$ = mk_expr (eGT, $1, $3, NULL); } | expr tEQ expr { $$ = mk_expr (eEQ, $1, $3, NULL); } | expr tNE expr { $$ = mk_expr (eNE, $1, $3, NULL); } | expr tGE expr { $$ = mk_expr (eGE, $1, $3, NULL); } | expr tLE expr { $$ = mk_expr (eLE, $1, $3, NULL); } ; cond_expr : /* empty */ { $$ = NULL; } | expr { $$ = $1; } ; expr_list : /* empty */ { $$ = list (); } | rest_expr_list { $$ = $1; } ; rest_expr_list: expr { $$ = list (); list_append ($$, $1); } | rest_expr_list ',' expr { list_append ($1, $3); } ; %% void yyerror (msg) char *msg; { fprintf (stderr, "%s:%d: %s\n", yyin_name, linenum, msg); } enscript-1.6.5.90/states/prims.c0000644000175000017500000006402211133214772013330 00000000000000/* * Primitive procedures for states. * Copyright (c) 1997-1999 Markku Rossi. * * Author: Markku Rossi */ /* * This file is part of GNU Enscript. * * Enscript is free software: you can redistribute 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. * * Enscript is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Enscript. If not, see . */ #include "defs.h" /* * Types and definitions. */ #define DEFUN(prim) \ static Node * \ prim (prim_name, args, env, filename, linenum) \ char *prim_name; \ List *args; \ Environment *env; \ char *filename; \ unsigned int linenum; #define NEED_ARG() \ do { \ if (arg == NULL) \ { \ fprintf (stderr, _("%s:%d: %s: too few arguments\n"), \ filename, linenum, prim_name); \ exit (1); \ } \ } while (0) #define LAST_ARG() \ do { \ if (arg != NULL) \ { \ fprintf (stderr, _("%s:%d: %s: too many arguments\n"), \ filename, linenum, prim_name); \ exit (1); \ } \ } while (0) #define MATCH_ARG(type) \ match_arg (prim_name, type, &arg, env, filename, linenum) #define APPEND(data, len) \ do { \ if (result_len < result_pos + (len)) \ { \ result_len += (len) + 1024; \ result = xrealloc (result, result_len); \ } \ memcpy (result + result_pos, (data), (len)); \ result_pos += (len); \ } while (0) #define FMTSPECIAL(ch) \ (('0' <= (ch) && (ch) <= '9') || (ch) == '.' || (ch) == '-') /* * Some forward protypes. */ static Node *prim_print ___P ((char *prim_name, List *args, Environment *env, char *filename, unsigned int linenum)); /* * Static functions. */ static Node * match_arg (prim_name, type, argp, env, filename, linenum) char *prim_name; NodeType type; ListItem **argp; Environment *env; char *filename; unsigned int linenum; { ListItem *arg = *argp; Node *n; NEED_ARG (); n = eval_expr ((Expr *) arg->data, env); if (type != nVOID && n->type != type) { fprintf (stderr, _("%s:%d: %s: illegal argument type\n"), filename, linenum, prim_name); exit (1); } *argp = arg->next; return n; } /* Primitives. */ DEFUN (prim_call) { ListItem *arg = args->head; Expr *e; char *cp; e = (Expr *) arg->data; if (e->type != eSYMBOL) { fprintf (stderr, _("%s:%d: %s: illegal argument type\n"), filename, linenum, prim_name); exit (1); } cp = e->u.node->u.sym; arg = arg->next; LAST_ARG (); return execute_state (cp); } DEFUN (prim_calln) { ListItem *arg = args->head; Node *n; char *cp; n = MATCH_ARG (nSTRING); LAST_ARG (); cp = xmalloc (n->u.str.len + 1); memcpy (cp, n->u.str.data, n->u.str.len); cp[n->u.str.len] = '\0'; node_free (n); n = execute_state (cp); xfree (cp); return n; } DEFUN (prim_check_namerules) { ListItem *arg = args->head; ListItem *i; Cons *c; Node *n; LAST_ARG (); if (start_state) goto return_false; for (i = namerules->head; i; i = i->next) { c = (Cons *) i->data; n = (Node *) c->car; if (re_search (REGEXP (n), current_fname, strlen (current_fname), 0, strlen (current_fname), NULL) >= 0) { /* This is it. */ n = (Node *) c->cdr; start_state = n->u.sym; n = node_alloc (nINTEGER); n->u.integer = 1; return n; } } return_false: n = node_alloc (nINTEGER); n->u.integer = 0; return n; } DEFUN (prim_check_startrules) { ListItem *arg = args->head; ListItem *i; Cons *c; Node *n; LAST_ARG (); if (start_state) goto return_false; for (i = startrules->head; i; i = i->next) { c = (Cons *) i->data; n = (Node *) c->car; if (re_search (REGEXP (n), inbuf, data_in_buffer, 0, data_in_buffer, NULL) >= 0) { /* This is it. */ n = (Node *) c->cdr; start_state = n->u.sym; n = node_alloc (nINTEGER); n->u.integer = 1; return n; } } return_false: n = node_alloc (nINTEGER); n->u.integer = 0; return n; } DEFUN (prim_concat) { ListItem *arg = args->head; Node *n; int len = 0; char *data = NULL; NEED_ARG (); for (; arg; arg = arg->next) { n = eval_expr ((Expr *) arg->data, env); if (n->type != nSTRING) { fprintf (stderr, _("%s:%d: %s: illegal argument type\n"), filename, linenum, prim_name); exit (1); } if (n->u.str.len > 0) { data = (char *) xrealloc (data, len + n->u.str.len); memcpy (data + len, n->u.str.data, n->u.str.len); len += n->u.str.len; } node_free (n); } n = node_alloc (nSTRING); n->u.str.data = data; n->u.str.len = len; return n; } DEFUN (prim_float) { ListItem *arg = args->head; Node *n, *r; char buf[512]; n = MATCH_ARG (nVOID); LAST_ARG (); r = node_alloc (nREAL); switch (n->type) { case nVOID: case nREGEXP: case nSYMBOL: r->u.real = 0.0; break; case nARRAY: r->u.real = (double) n->u.array.len; break; case nSTRING: if (n->u.str.len > sizeof (buf) - 1) r->u.real = 0.0; else { memcpy (buf, n->u.str.data, n->u.str.len); buf[n->u.str.len] = '\0'; r->u.real = atof (buf); } break; case nINTEGER: r->u.real = (double) n->u.integer; break; case nREAL: r->u.real = n->u.real; break; } node_free (n); return r; } DEFUN (prim_getenv) { ListItem *arg = args->head; Node *var, *n; char *key; char *cp; var = MATCH_ARG (nSTRING); LAST_ARG (); key = (char *) xcalloc (1, var->u.str.len + 1); memcpy (key, var->u.str.data, var->u.str.len); cp = getenv (key); node_free (var); xfree (key); n = node_alloc (nSTRING); if (cp == NULL) { n->u.str.data = (char *) xmalloc (1); n->u.str.len = 0; } else { n->u.str.data = xstrdup (cp); n->u.str.len = strlen (cp); } return n; } DEFUN (prim_int) { ListItem *arg = args->head; Node *n, *r; char buf[512]; n = MATCH_ARG (nVOID); LAST_ARG (); r = node_alloc (nINTEGER); switch (n->type) { case nVOID: case nREGEXP: case nSYMBOL: r->u.integer = 0; break; case nARRAY: r->u.integer = n->u.array.len; break; case nSTRING: if (n->u.str.len > sizeof (buf) - 1) r->u.integer = 0; else { memcpy (buf, n->u.str.data, n->u.str.len); buf[n->u.str.len] = '\0'; r->u.integer = atoi (buf); } break; case nINTEGER: r->u.integer = n->u.integer; break; case nREAL: r->u.integer = (int) n->u.real; break; } node_free (n); return r; } DEFUN (prim_length) { ListItem *arg = args->head; Node *n; int result = 0; NEED_ARG (); for (; arg; arg = arg->next) { n = eval_expr ((Expr *) arg->data, env); switch (n->type) { case nSTRING: result += n->u.str.len; break; case nARRAY: result += n->u.array.len; break; default: fprintf (stderr, _("%s:%d: %s: illegal argument type\n"), filename, linenum, prim_name); exit (1); break; } node_free (n); } n = node_alloc (nINTEGER); n->u.integer = result; return n; } DEFUN (prim_list) { ListItem *arg = args->head; unsigned int len; Node *n; /* Count list length. */ for (len = 0; arg; len++, arg = arg->next) ; arg = args->head; /* Create list node. */ n = node_alloc (nARRAY); n->u.array.array = (Node **) xcalloc (len + 1, sizeof (Node *)); n->u.array.allocated = len + 1; n->u.array.len = len; /* Fill it up. */ for (len = 0; arg; len++, arg = arg->next) n->u.array.array[len] = eval_expr ((Expr *) arg->data, env); return n; } DEFUN (prim_panic) { fprintf (stderr, _("%s: panic: "), program); ofp = stderr; prim_print (prim_name, args, env, filename, linenum); fprintf (stderr, "\n"); exit (1); /* NOTREACHED */ return nvoid; } DEFUN (prim_prereq) { ListItem *arg = args->head; Node *s; int over[3]; int rver[3]; char *cp; int i; s = MATCH_ARG (nSTRING); LAST_ARG (); /* Our version. */ sscanf (VERSION, "%d.%d.%d", &over[0], &over[1], &over[2]); /* Required version. */ cp = (char *) xcalloc (1, s->u.str.len + 1); memcpy (cp, s->u.str.data, s->u.str.len); if (sscanf (cp, "%d.%d.%d", &rver[0], &rver[1], &rver[2]) != 3) { fprintf (stderr, _("%s:%d: %s: malformed version string `%s'\n"), filename, linenum, prim_name, cp); exit (1); } /* Check version. */ for (i = 0; i < 3; i++) { if (over[i] > rver[i]) /* Ok, our version is bigger. */ break; if (over[i] < rver[i]) { /* Fail, our version is too small. */ fprintf (stderr, _("%s: FATAL ERROR: States version %s or higher is required for this script\n"), program, cp); exit (1); } } /* Our version is higher or equal to the required one. */ xfree (cp); return nvoid; } static void print_node (n) Node *n; { unsigned int i; switch (n->type) { case nVOID: break; case nSTRING: fwrite (n->u.str.data, n->u.str.len, 1, ofp); break; case nREGEXP: fputc ('/', ofp); fwrite (n->u.re.data, n->u.re.len, 1, ofp); fputc ('/', ofp); break; case nINTEGER: fprintf (ofp, "%d", n->u.integer); break; case nREAL: fprintf (ofp, "%f", n->u.real); break; case nSYMBOL: fprintf (ofp, "%s", n->u.sym); break; case nARRAY: for (i = 0; i < n->u.array.len; i++) { print_node (n->u.array.array[i]); if (i + 1 < n->u.array.len) fprintf (ofp, " "); } } } DEFUN (prim_print) { ListItem *arg = args->head; Node *n; NEED_ARG (); for (; arg; arg = arg->next) { n = eval_expr ((Expr *) arg->data, env); print_node (n); node_free (n); } return nvoid; } DEFUN (prim_range) { ListItem *arg = args->head; Node *from, *start, *end, *n; int i; NEED_ARG (); from = eval_expr ((Expr *) arg->data, env); arg = arg->next; start = MATCH_ARG (nINTEGER); end = MATCH_ARG (nINTEGER); LAST_ARG (); if (start->u.integer > end->u.integer) { fprintf (stderr, _("%s:%d: %s: start offset is bigger than end offset\n"), filename, linenum, prim_name); exit (1); } if (from->type == nSTRING) { if (end->u.integer > from->u.str.len) { fprintf (stderr, _("%s:%d: %s: offset out of range\n"), filename, linenum, prim_name); exit (1); } n = node_alloc (nSTRING); n->u.str.len = end->u.integer - start->u.integer; /* +1 to avoid zero allocation */ n->u.str.data = (char *) xmalloc (n->u.str.len + 1); memcpy (n->u.str.data, from->u.str.data + start->u.integer, n->u.str.len); } else if (from->type == nARRAY) { if (end->u.integer > from->u.array.len) { fprintf (stderr, _("%s:%d: %s: offset out of range\n"), filename, linenum, prim_name); exit (1); } n = node_alloc (nARRAY); n->u.array.len = end->u.integer - start->u.integer; /* +1 to avoid zero allocation */ n->u.array.allocated = n->u.array.len + 1; n->u.array.array = (Node **) xcalloc (n->u.array.allocated, sizeof (Node *)); for (i = 0; i < n->u.array.len; i++) n->u.array.array[i] = node_copy (from->u.array.array[i + start->u.integer]); } else { fprintf (stderr, _("%s:%d: %s: illegal argument\n"), filename, linenum, prim_name); exit (1); } node_free (from); node_free (start); node_free (end); return n; } DEFUN (prim_regexp) { ListItem *arg = args->head; Node *str, *n; str = MATCH_ARG (nSTRING); LAST_ARG (); /* Create a new REGEXP node. */ n = node_alloc (nREGEXP); n->u.re.data = xmalloc (str->u.str.len + 1); n->u.re.len = str->u.str.len; memcpy (n->u.re.data, str->u.str.data, str->u.str.len); n->u.re.data[str->u.str.len] = '\0'; return n; } DEFUN (prim_regexp_syntax) { ListItem *arg = args->head; Node *ch, *st; char syntax; ch = MATCH_ARG (nINTEGER); st = MATCH_ARG (nINTEGER); LAST_ARG (); syntax = (char) st->u.integer; if (syntax != 'w' && syntax != ' ') { fprintf (stderr, _("%s:%d: %s: illegal regexp character syntax: %c\n"), filename, linenum, prim_name, syntax); exit (1); } re_set_character_syntax ((unsigned char) ch->u.integer, syntax); return nvoid; } DEFUN (prim_regmatch) { ListItem *arg = args->head; Node *str, *re, *n; static struct re_registers matches = {0, NULL, NULL}; static Node *current_match_node = NULL; int i; str = MATCH_ARG (nSTRING); re = MATCH_ARG (nREGEXP); LAST_ARG (); /* Search for match. */ i = re_search (REGEXP (re), str->u.str.data, str->u.str.len, 0, str->u.str.len, &matches); if (i < 0) { current_match = NULL; node_free (str); } else { node_free (current_match_node); current_match_node = str; current_match = &matches; current_match_buf = str->u.str.data; } node_free (re); n = node_alloc (nINTEGER); n->u.integer = (i >= 0); return n; } /* * Common regular expression substituter for regsub and regsuball. */ Node * do_regsubsts (str, re, subst, allp) Node *str; Node *re; Node *subst; int allp; { int i, pos, j; static struct re_registers matches = {0, NULL, NULL}; static char *result = NULL; static unsigned int result_len = 0; unsigned int result_pos = 0; int num_matches = 0; int do_expansions_in_substs = 0; /* Do we have to do expansions in the substitution string. */ for (i = 0; i < subst->u.str.len; i++) if (subst->u.str.data[i] == '$') { do_expansions_in_substs = 1; break; } pos = 0; while (1) { /* Search for match. */ i = re_search (REGEXP (re), str->u.str.data, str->u.str.len, pos, str->u.str.len - pos, &matches); if (i < 0) goto out; num_matches++; /* Everything before match. */ APPEND (str->u.str.data + pos, matches.start[0] - pos); /* Append match. */ if (!do_expansions_in_substs) APPEND (subst->u.str.data, subst->u.str.len); else { /* Must process substitution string. */ for (i = 0; i < subst->u.str.len; i++) if (subst->u.str.data[i] == '$' && i + 1 < subst->u.str.len) { i++; switch (subst->u.str.data[i]) { case '$': APPEND ("$", 1); break; case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': j = subst->u.str.data[i] - '0'; if (matches.start[j] >= 0) APPEND (str->u.str.data + matches.start[j], matches.end[j] - matches.start[j]); break; default: /* Illegal substitution, just pass it through. */ APPEND ("$", 1); APPEND (subst->u.str.data + i, 1); break; } } else APPEND (subst->u.str.data + i, 1); } /* Update pos. */ pos = matches.end[0]; if (!allp) break; } out: if (num_matches == 0) { /* No matches, just return our original string. */ node_free (re); node_free (subst); return str; } APPEND (str->u.str.data + pos, str->u.str.len - pos); /* Create result node. */ node_free (str); node_free (re); node_free (subst); str = node_alloc (nSTRING); str->u.str.len = result_pos; str->u.str.data = xmalloc (result_pos); memcpy (str->u.str.data, result, result_pos); return str; } DEFUN (prim_regsub) { ListItem *arg = args->head; Node *str, *re, *subst; str = MATCH_ARG (nSTRING); re = MATCH_ARG (nREGEXP); subst = MATCH_ARG (nSTRING); LAST_ARG (); return do_regsubsts (str, re, subst, 0); } DEFUN (prim_regsuball) { ListItem *arg = args->head; Node *str, *re, *subst; str = MATCH_ARG (nSTRING); re = MATCH_ARG (nREGEXP); subst = MATCH_ARG (nSTRING); LAST_ARG (); return do_regsubsts (str, re, subst, 1); } DEFUN (prim_require_state) { ListItem *arg = args->head; Expr *e; char *cp; State *state; e = (Expr *) arg->data; if (e->type != eSYMBOL) { fprintf (stderr, _("%s:%d: %s: illegal argument type\n"), filename, linenum, prim_name); exit (1); } cp = e->u.node->u.sym; arg = arg->next; LAST_ARG (); state = lookup_state (cp); if (state == NULL) { fprintf (stderr, _("%s:%d: %s: couldn't define state `%s'\n"), filename, linenum, prim_name, cp); exit (1); } return nvoid; } DEFUN (prim_split) { ListItem *arg = args->head; Node *re, *str, *n, *n2; int pos, i; re = MATCH_ARG (nREGEXP); str = MATCH_ARG (nSTRING); LAST_ARG (); /* Create a new array node. */ n = node_alloc (nARRAY); n->u.array.allocated = 100; n->u.array.array = (Node **) xcalloc (n->u.array.allocated, sizeof (Node *)); for (pos = 0; pos < str->u.str.len;) { i = re_search (REGEXP (re), str->u.str.data, str->u.str.len, pos, str->u.str.len - pos, &re->u.re.matches); if (i < 0) /* No more matches. */ break; /* Append the string before the first match. */ n2 = node_alloc (nSTRING); n2->u.str.len = i - pos; n2->u.str.data = (char *) xmalloc (n2->u.str.len + 1); memcpy (n2->u.str.data, str->u.str.data + pos, n2->u.str.len); pos = re->u.re.matches.end[0]; /* * Check that at least one item fits after us (no need to check * when appending the last item). */ if (n->u.array.len + 1 >= n->u.array.allocated) { n->u.array.allocated += 100; n->u.array.array = (Node **) xrealloc (n->u.array.array, n->u.array.allocated * sizeof (Node *)); } n->u.array.array[n->u.array.len++] = n2; } /* Append all the remaining data. */ n2 = node_alloc (nSTRING); n2->u.str.len = str->u.str.len - pos; n2->u.str.data = (char *) xmalloc (n2->u.str.len + 1); memcpy (n2->u.str.data, str->u.str.data + pos, n2->u.str.len); n->u.array.array[n->u.array.len++] = n2; return n; } DEFUN (prim_sprintf) { ListItem *arg = args->head; Node *fmt, *n; char buf[512]; char ifmt[256]; char ifmtopts[256]; char *result = NULL; unsigned int result_pos = 0; unsigned int result_len = 0; int i, j; int argument_count = 0; char *cp; fmt = MATCH_ARG (nSTRING); cp = fmt->u.str.data; /* Process format string and match arguments. */ for (i = 0; i < fmt->u.str.len; i++) { if (cp[i] == '%' && (i + 1 >= fmt->u.str.len || cp[i + 1] == '%')) { i++; APPEND (cp + i, 1); } else if (cp[i] == '%') { argument_count++; if (arg == NULL) { fprintf (stderr, _("%s: primitive `%s': too few arguments for format\n"), program, prim_name); exit (1); } n = eval_expr ((Expr *) arg->data, env); arg = arg->next; for (i++, j = 0; i < fmt->u.str.len && FMTSPECIAL (cp[i]); i++, j++) ifmtopts[j] = cp[i]; ifmtopts[j] = '\0'; if (i >= fmt->u.str.len) { APPEND ("%", 1); APPEND (ifmtopts, j); continue; } /* Field type. */ switch (cp[i]) { case 'x': case 'X': case 'd': if (n->type != nINTEGER) { no_match: fprintf (stderr, _("%s:%d: %s: argument %d doesn't match format\n"), filename, linenum, prim_name, argument_count); exit (1); } sprintf (ifmt, "%%%s%c", ifmtopts, cp[i]); sprintf (buf, ifmt, n->u.integer); APPEND (buf, strlen (buf)); break; case 'c': if (n->type != nINTEGER) goto no_match; sprintf (ifmt, "%%%s%c", ifmtopts, cp[i]); sprintf (buf, ifmt, n->u.integer); APPEND (buf, strlen (buf)); break; case 'f': case 'g': case 'e': case 'E': if (n->type != nREAL) goto no_match; sprintf (ifmt, "%%%s%c", ifmtopts, cp[i]); sprintf (buf, ifmt, n->u.real); APPEND (buf, strlen (buf)); break; case 's': if (n->type != nSTRING) goto no_match; if (ifmtopts[0] != '\0') { fprintf (stderr, _("%s:%d: %s: no extra options can be specified for %%s\n"), filename, linenum, prim_name); exit (1); } APPEND (n->u.str.data, n->u.str.len); break; default: fprintf (stderr, _("%s:%d: %s: illegal type specifier `%c'\n"), filename, linenum, prim_name, cp[i]); exit (1); break; } } else APPEND (cp + i, 1); } node_free (fmt); n = node_alloc (nSTRING); n->u.str.len = result_pos; n->u.str.data = result; return n; } DEFUN (prim_strcmp) { ListItem *arg = args->head; Node *s1, *s2; Node *n; int i, result; char *cp1, *cp2; s1 = MATCH_ARG (nSTRING); s2 = MATCH_ARG (nSTRING); LAST_ARG (); cp1 = s1->u.str.data; cp2 = s2->u.str.data; for (i = 0; i < s1->u.str.len && i < s2->u.str.len; i++) { if (cp1[i] < cp2[i]) { result = -1; goto out; } if (cp1[i] > cp2[i]) { result = 1; goto out; } } /* Strings are so far equal, check lengths. */ if (s1->u.str.len < s2->u.str.len) result = -1; else if (s1->u.str.len > s2->u.str.len) result = 1; else result = 0; out: node_free (s1); node_free (s2); n = node_alloc (nINTEGER); n->u.integer = result; return n; } DEFUN (prim_string) { ListItem *arg = args->head; Node *n, *r; char buf[512]; n = MATCH_ARG (nVOID); LAST_ARG (); r = node_alloc (nSTRING); switch (n->type) { case nVOID: case nREGEXP: case nARRAY: r->u.str.data = (char *) xcalloc (1, 1); r->u.str.len = 0; break; case nSYMBOL: r->u.str.len = strlen (n->u.sym); r->u.str.data = (char *) xmalloc (r->u.str.len); memcpy (r->u.str.data, n->u.sym, r->u.str.len); break; case nSTRING: r->u.str.len = n->u.str.len; r->u.str.data = (char *) xmalloc (n->u.str.len); memcpy (r->u.str.data, n->u.str.data, n->u.str.len); break; case nINTEGER: sprintf (buf, "%d", n->u.integer); r->u.str.len = strlen (buf); r->u.str.data = (char *) xmalloc (r->u.str.len); memcpy (r->u.str.data, buf, r->u.str.len); break; case nREAL: sprintf (buf, "%f", n->u.real); r->u.str.len = strlen (buf); r->u.str.data = (char *) xmalloc (r->u.str.len); memcpy (r->u.str.data, buf, r->u.str.len); break; } node_free (n); return r; } DEFUN (prim_strncmp) { ListItem *arg = args->head; Node *s1, *s2, *len; Node *n; int i, result; char *cp1, *cp2; s1 = MATCH_ARG (nSTRING); s2 = MATCH_ARG (nSTRING); len = MATCH_ARG (nINTEGER); LAST_ARG (); cp1 = s1->u.str.data; cp2 = s2->u.str.data; for (i = 0; i < s1->u.str.len && i < s2->u.str.len && i < len->u.integer; i++) { if (cp1[i] < cp2[i]) { result = -1; goto out; } if (cp1[i] > cp2[i]) { result = 1; goto out; } } /* Check the limit length. */ if (i >= len->u.integer) { result = 0; goto out; } /* One or both strings were shorter than limit, check lengths. */ if (s1->u.str.len < s2->u.str.len) result = -1; else if (s1->u.str.len > s2->u.str.len) result = 1; else result = 0; out: node_free (s1); node_free (s2); node_free (len); n = node_alloc (nINTEGER); n->u.integer = result; return n; } DEFUN (prim_substring) { ListItem *arg = args->head; Node *str, *start, *end, *n; str = MATCH_ARG (nSTRING); start = MATCH_ARG (nINTEGER); end = MATCH_ARG (nINTEGER); LAST_ARG (); if (start->u.integer > end->u.integer) { fprintf (stderr, _("%s:%d: %s: start offset is bigger than end offset\n"), filename, linenum, prim_name); exit (1); } if (end->u.integer > str->u.str.len) { fprintf (stderr, _("%s:%d: %s: offset out of range\n"), filename, linenum, prim_name); exit (1); } n = node_alloc (nSTRING); n->u.str.len = end->u.integer - start->u.integer; /* +1 to avoid zero allocation */ n->u.str.data = (char *) xmalloc (n->u.str.len + 1); memcpy (n->u.str.data, str->u.str.data + start->u.integer, n->u.str.len); node_free (str); node_free (start); node_free (end); return n; } DEFUN (prim_system) { ListItem *arg = args->head; Node *str, *n; char *cmd; int result; str = MATCH_ARG (nSTRING); LAST_ARG (); cmd = (char *) xcalloc (1, str->u.str.len + 1); memcpy (cmd, str->u.str.data, str->u.str.len); result = system (cmd); xfree (cmd); n = node_alloc (nINTEGER); n->u.integer = result; return n; } /* * Global functions. */ static struct { char *name; Primitive prim; } prims[] = { {"call", prim_call}, {"calln", prim_calln}, {"check_namerules", prim_check_namerules}, {"check_startrules", prim_check_startrules}, {"concat", prim_concat}, {"float", prim_float}, {"getenv", prim_getenv}, {"int", prim_int}, {"length", prim_length}, {"list", prim_list}, {"panic", prim_panic}, {"prereq", prim_prereq}, {"print", prim_print}, {"range", prim_range}, {"regexp", prim_regexp}, {"regexp_syntax", prim_regexp_syntax}, {"regmatch", prim_regmatch}, {"regsub", prim_regsub}, {"regsuball", prim_regsuball}, {"require_state", prim_require_state}, {"split", prim_split}, {"sprintf", prim_sprintf}, {"strcmp", prim_strcmp}, {"string", prim_string}, {"strncmp", prim_strncmp}, {"substring", prim_substring}, {"system", prim_system}, {NULL, NULL}, }; void init_primitives () { void *old; int i; for (i = 0; prims[i].name; i++) if (!strhash_put (ns_prims, prims[i].name, strlen (prims[i].name), (void *) prims[i].prim, &old)) { fprintf (stderr, _("%s: out of memory\n"), program); exit (1); } } enscript-1.6.5.90/states/lex.l0000644000175000017500000001707011133214772013000 00000000000000%{ /* * Lexer for states. * Copyright (c) 1997-1998 Markku Rossi. * * Author: Markku Rossi */ /* * This file is part of GNU Enscript. * * Enscript is free software: you can redistribute 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. * * Enscript is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Enscript. If not, see . */ /* * $Id: lex.l,v 1.1.1.1 2003/03/05 07:25:52 mtr Exp $ */ #include "defs.h" #include "gram.h" static void eat_comment (); static char *read_string ___P ((unsigned int *len_return)); static void read_regexp ___P ((Node *node)); %} real [+-]?[0-9]+\.[0-9]*|[+-]?\.[0-9]+ integer [+-]?[0-9]+ symbol [a-zA-Z_][a-zA-Z_0-9]*|\$. %% "/*" { eat_comment (); } [ \t\r\f] { ; } \n { linenum++; } \" { yylval.node = node_alloc (nSTRING); yylval.node->u.str.data = read_string (&yylval.node->u.str.len); return tSTRING; } '[^\\]' { yylval.node = node_alloc (nINTEGER); yylval.node->u.integer = yytext[1]; return tINTEGER; } '\\.' { yylval.node = node_alloc (nINTEGER); switch (yytext[2]) { case 'n': yylval.node->u.integer = '\n'; break; case 't': yylval.node->u.integer = '\t'; break; case 'v': yylval.node->u.integer = '\v'; break; case 'b': yylval.node->u.integer = '\b'; break; case 'r': yylval.node->u.integer = '\r'; break; case 'f': yylval.node->u.integer = '\f'; break; case 'a': yylval.node->u.integer = '\a'; break; default: yylval.node->u.integer = yytext[2]; break; } return tINTEGER; } \/ { yylval.node = node_alloc (nREGEXP); read_regexp (yylval.node); return tREGEXP; } "BEGIN" { return tBEGIN; } "END" { return tEND; } "div" { return tDIV; } "else" { return tELSE; } "extends" { return tEXTENDS; } "for" { return tFOR; } "if" { return tIF; } "local" { return tLOCAL; } "namerules" { return tNAMERULES; } "return" { return tRETURN; } "start" { return tSTART; } "startrules" { return tSTARTRULES; } "state" { return tSTATE; } "sub" { return tSUB; } "while" { return tWHILE; } "==" { return tEQ; } "!=" { return tNE; } "<=" { return tLE; } ">=" { return tGE; } "&&" { return tAND; } "||" { return tOR; } "++" { return tPLUSPLUS; } "--" { return tMINUSMINUS; } "+=" { return tADDASSIGN; } "-=" { return tSUBASSIGN; } "*=" { return tMULASSIGN; } "div=" { return tDIVASSIGN; } {real} { yylval.node = node_alloc (nREAL); yylval.node->u.real = atof (yytext); return tREAL; } {integer} { yylval.node = node_alloc (nINTEGER); yylval.node->u.integer = atoi (yytext); return tINTEGER; } {symbol} { yylval.node = node_alloc (nSYMBOL); yylval.node->u.sym = xstrdup (yytext); return tSYMBOL; } . { return yytext[0]; } %% static void eat_comment () { int c; while ((c = input ()) != EOF) { if (c == '\n') linenum++; else if (c == '*') { c = input (); if (c == '/') /* All done. */ return; if (c == EOF) { yyerror (_("error: EOF in comment")); break; } unput (c); } } yyerror (_("error: EOF in comment")); } int yywrap () { return 1; } static char * read_string (len_return) unsigned int *len_return; { char *buf = NULL; char *buf2; int buflen = 0; int bufpos = 0; int ch; int done = 0; while (!done) { ch = input (); if (ch == '\n') linenum++; switch (ch) { case EOF: unexpected_eof: yyerror (_("error: EOF in string constant")); done = 1; break; case '"': done = 1; break; case '\\': ch = input (); switch (ch) { case 'n': ch = '\n'; break; case 't': ch = '\t'; break; case 'v': ch = '\v'; break; case 'b': ch = '\b'; break; case 'r': ch = '\r'; break; case 'f': ch = '\f'; break; case 'a': ch = '\a'; break; case EOF: goto unexpected_eof; break; default: if (ch == '0') { int i; int val = 0; for (i = 0; i < 3; i++) { ch = input (); if ('0' <= ch && ch <= '7') val = val * 8 + ch - '0'; else { unput (ch); break; } } ch = val; } break; } /* FALLTHROUGH */ default: if (bufpos >= buflen) { buflen += 1024; buf = (char *) xrealloc (buf, buflen); } buf[bufpos++] = ch; break; } } buf2 = (char *) xmalloc (bufpos + 1); memcpy (buf2, buf, bufpos); buf2[bufpos] = '\0'; xfree (buf); *len_return = bufpos; return buf2; } static void read_regexp (node) Node *node; { char *buf = NULL; char *buf2; int buflen = 0; int bufpos = 0; int ch; int done = 0; while (!done) { ch = input (); switch (ch) { case EOF: unexpected_eof: yyerror (_("error: EOF in regular expression")); done = 1; break; case '/': done = 1; break; case '\\': ch = input (); switch (ch) { case '\n': /* Line break. */ linenum++; continue; break; case 'n': ch = '\n'; break; case 'r': ch = '\r'; break; case 'f': ch = '\f'; break; case 't': ch = '\t'; break; case '/': case '\\': /* Quote these. */ break; case EOF: goto unexpected_eof; break; default: if (ch == '0') { int i; int val = 0; for (i = 0; i < 3; i++) { ch = input (); if ('0' <= ch && ch <= '7') val = val * 8 + ch - '0'; else { unput (ch); break; } } ch = val; } else { /* Pass it through. */ unput (ch); ch = '\\'; } break; } /* FALLTHROUGH */ default: if (bufpos >= buflen) { buflen += 1024; buf = (char *) xrealloc (buf, buflen); } buf[bufpos++] = ch; break; } } /* Possible options. */ done = 0; while (!done) { ch = input (); switch (ch) { case 'i': /* Case-insensitive regular expression. */ node->u.re.flags |= fRE_CASE_INSENSITIVE; break; default: /* Unknown option => this belongs to the next token. */ unput (ch); done = 1; break; } } buf2 = (char *) xmalloc (bufpos + 1); memcpy (buf2, buf, bufpos); buf2[bufpos] = '\0'; xfree (buf); node->u.re.data = buf2; node->u.re.len = bufpos; } /* Local variables: mode: c End: */ enscript-1.6.5.90/states/gram.h0000644000175000017500000000656111606344233013136 00000000000000 /* A Bison parser, made by GNU Bison 2.4.1. */ /* 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 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* As a special exception, 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 { tSYMBOL = 258, tREGEXP = 259, tSTRING = 260, tINTEGER = 261, tREAL = 262, tSUB = 263, tSTATE = 264, tSTART = 265, tSTARTRULES = 266, tNAMERULES = 267, tBEGIN = 268, tEND = 269, tRETURN = 270, tIF = 271, tELSE = 272, tLOCAL = 273, tWHILE = 274, tFOR = 275, tEXTENDS = 276, tDIVASSIGN = 277, tMULASSIGN = 278, tSUBASSIGN = 279, tADDASSIGN = 280, tOR = 281, tAND = 282, tNE = 283, tEQ = 284, tLE = 285, tGE = 286, tDIV = 287, tMINUSMINUS = 288, tPLUSPLUS = 289 }; #endif /* Tokens. */ #define tSYMBOL 258 #define tREGEXP 259 #define tSTRING 260 #define tINTEGER 261 #define tREAL 262 #define tSUB 263 #define tSTATE 264 #define tSTART 265 #define tSTARTRULES 266 #define tNAMERULES 267 #define tBEGIN 268 #define tEND 269 #define tRETURN 270 #define tIF 271 #define tELSE 272 #define tLOCAL 273 #define tWHILE 274 #define tFOR 275 #define tEXTENDS 276 #define tDIVASSIGN 277 #define tMULASSIGN 278 #define tSUBASSIGN 279 #define tADDASSIGN 280 #define tOR 281 #define tAND 282 #define tNE 283 #define tEQ 284 #define tLE 285 #define tGE 286 #define tDIV 287 #define tMINUSMINUS 288 #define tPLUSPLUS 289 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE { /* Line 1676 of yacc.c */ #line 34 "gram.y" List *lst; Node *node; Cons *cons; Stmt *stmt; Expr *expr; /* Line 1676 of yacc.c */ #line 130 "gram.h" } YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 #endif extern YYSTYPE yylval; enscript-1.6.5.90/states/enscript.el0000644000175000017500000001136311133214772014203 00000000000000;; ;; Emacs help commands for enscript. ;; Copyright (c) 1997 Markku Rossi. ;; Author: Markku Rossi ;; ;; ;; This file is part of GNU Enscript. ;; ;; Enscript is free software: you can redistribute 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. ;; ;; Enscript is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; ;; You should have received a copy of the GNU General Public License ;; along with Enscript. If not, see . ;; ;/* Keywords: ; (build-re '(auto break case char const continue default do double else ; enum extern float for goto if int long register return ; short signed sizeof static struct switch typedef union ; unsigned void volatile while)) ;*/ (defun fetch-first-chars (lst) "Fetch the initial character of list LST of strings." (let ((result '()) (str "")) (mapcar (lambda (str) (let ((ch (string-to-char str))) (if (not (member ch result)) (setq result (cons ch result))))) lst) (sort result (function <)))) (defun fetch-with-prefix (prefix lst) "Fetch the list items from list LST with start with PREFIX. The fetched items are modified so that the prefix is removed from strings." (let ((result '()) (prefix-len (length prefix))) (mapcar (lambda (str) (if (and (>= (length str) prefix-len) (string= prefix (substring str 0 prefix-len))) (setq result (cons (substring str prefix-len) result)))) lst) result)) (defun build-tree (lst) "Build a regular expressions tree from list LST of words to match." (mapcar (lambda (prefix) (if (= prefix 0) "" (setq prefix (char-to-string prefix)) (let ((result (fetch-with-prefix prefix lst))) (if (= (length result) 1) (concat prefix (car result)) (let ((rest (build-tree result))) (if (and (= (length rest) 1) (listp (car rest))) (cons (concat prefix (car (car rest))) (cdr (car rest))) (cons prefix rest))))))) (fetch-first-chars lst))) (defun join (list glue result) (if (stringp list) list (if (= (length list) 1) (concat result (car list)) (join (cdr list) glue (concat result (car list) glue))))) (defun join-column (list glue result column pos) (if (and (> (+ pos (length (car list)) (length glue)) column) (> pos 0)) (let ((len (length result)) (gluelen (length glue))) (join-column list glue (concat (substring result 0 (- len gluelen)) "\\\n" glue) column 0)) (if (= (length list) 1) (concat result (car list)) (join-column (cdr list) glue (concat result (car list) glue) column (+ pos (length (car list)) (length glue)))))) (defun join-tree (tree case-insensitive) "Join regular expression tree TREE to a string. Argument CASE-INSENSITIVE specifies whatever the generated expression matches its words case insensitively or not." (join-column (mapcar (lambda (item) (if (stringp item) (if case-insensitive (make-case-insensitive-regexp item) item) (concat (if case-insensitive (make-case-insensitive-regexp (car item)) (car item)) "(" (join (join-tree (cdr item) case-insensitive) "|" "") ")"))) tree) "|" "" 70 0)) (defun make-case-insensitive-regexp (string) (let ((result "")) (while (not (string= string "")) (let* ((ch (string-to-char string)) (uch (upcase ch))) (if (= ch uch) (progn (setq string (substring string 1)) (setq result (concat result (char-to-string ch)))) (setq string (substring string 1)) (setq result (concat result "[" (char-to-string ch) (char-to-string uch) "]"))))) result)) (defun build-re (words &optional case-insensitive) "Build an optimized regular expression from list WORDS which can contain symbols and strings. Optional second argument CASE-INSENSITIVE specifies whatever the created regular expression should match its keywords case insensitively or not. The default is case sensitive matching. If the function is enclosed in C-comments, it inserts the generated regular expression after the closing \"*/\" sequence, otherwise it returns regular expression as a string." (save-excursion (let ((re (concat "/\\b(" (join-tree (build-tree (mapcar (lambda (item) (if (stringp item) item (symbol-name item))) words)) case-insensitive) ")\\b/ {"))) (if (search-forward "*/" nil t) (progn (open-line 2) (next-line 1) (insert " " re)) re)))) enscript-1.6.5.90/states/utils.c0000644000175000017500000006734011606140166013344 00000000000000/* * General helper utilities. * Copyright (c) 1997-1999 Markku Rossi. * * Author: Markku Rossi */ /* * This file is part of GNU Enscript. * * Enscript is free software: you can redistribute 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. * * Enscript is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Enscript. If not, see . */ #include "defs.h" /* * Static variables. */ static RE_TRANSLATE_TYPE case_insensitive_translate = NULL; /* * Global functions. */ /* Generic linked list. */ List * list () { return (List *) xcalloc (1, sizeof (List)); } void list_prepend (list, data) List *list; void *data; { ListItem *item; item = (ListItem *) xmalloc (sizeof (*item)); item->data = data; item->next = list->head; list->head = item; if (list->tail == NULL) list->tail = item; } void list_append (list, data) List *list; void *data; { ListItem *item; item = (ListItem *) xcalloc (1, sizeof (*item)); item->data = data; if (list->tail) list->tail->next = item; else list->head = item; list->tail = item; } /* * Node manipulators. */ Node * node_alloc (type) NodeType type; { Node *n; n = (Node *) xcalloc (1, sizeof (*n)); n->type = type; n->refcount = 1; n->linenum = linenum; n->filename = yyin_name; if (type == nREGEXP) n->u.re.compiled.fastmap = xmalloc (256); return n; } Node * node_copy (n) Node *n; { Node *n2; int i; n2 = node_alloc (n->type); n2->linenum = n->linenum; n2->filename = n->filename; switch (n->type) { case nVOID: /* All done. */ break; case nSTRING: n2->u.str.len = n->u.str.len; /* +1 to avoid zero allocation. */ n2->u.str.data = (char *) xmalloc (n2->u.str.len + 1); memcpy (n2->u.str.data, n->u.str.data, n->u.str.len); break; case nREGEXP: n2->u.re.data = xstrdup (n->u.re.data); n2->u.re.len = n->u.re.len; break; case nINTEGER: n2->u.integer = n->u.integer; break; case nREAL: n2->u.real = n->u.real; break; case nSYMBOL: n2->u.sym = xstrdup (n->u.sym); break; case nARRAY: n2->u.array.len = n->u.array.len; n2->u.array.allocated = n2->u.array.len + 1; n2->u.array.array = (Node **) xcalloc (n2->u.array.allocated, sizeof (Node *)); for (i = 0; i < n->u.array.len; i++) n2->u.array.array[i] = node_copy (n->u.array.array[i]); break; } return n2; } void node_reference (node) Node *node; { node->refcount++; } void node_free (node) Node *node; { unsigned int i; if (node == NULL) return; if (--node->refcount > 0) return; /* This was the last reference, free the node. */ switch (node->type) { case nVOID: /* There is only nVOID node, do not free it. */ return; break; case nSTRING: xfree (node->u.str.data); break; case nREGEXP: free (node->u.re.data); xfree (node->u.re.compiled.fastmap); break; case nINTEGER: case nREAL: case nSYMBOL: /* Nothing here. */ break; case nARRAY: for (i = 0; i < node->u.array.len; i++) node_free (node->u.array.array[i]); xfree (node->u.array.array); break; } xfree (node); } void enter_system_variable (name, value) char *name; char *value; { Node *n, *old_val; n = node_alloc (nSTRING); n->u.str.len = strlen (value); n->u.str.data = xstrdup (value); if (!strhash_put (ns_vars, name, strlen (name), n, (void **) &old_val)) { fprintf (stderr, _("%s: out of memory\n"), program); exit (1); } node_free (old_val); } void compile_regexp (re) Node *re; { const char *msg; if (case_insensitive_translate == NULL) { int i; case_insensitive_translate = xmalloc (256); for (i = 0; i < 256; i++) if (isupper (i)) case_insensitive_translate[i] = tolower (i); else case_insensitive_translate[i] = i; } if (re->u.re.flags & fRE_CASE_INSENSITIVE) re->u.re.compiled.translate = case_insensitive_translate; msg = re_compile_pattern (re->u.re.data, re->u.re.len, &re->u.re.compiled); if (msg) { fprintf (stderr, _("%s:%d: couldn't compile regular expression \"%s\": %s\n"), re->filename, re->linenum, re->u.re.data, msg); exit (1); } re_compile_fastmap (&re->u.re.compiled); } /* * Grammar constructors. */ Stmt * mk_stmt (type, arg1, arg2, arg3, arg4) StmtType type; void *arg1; void *arg2; void *arg3; void *arg4; { Stmt *stmt; stmt = (Stmt *) xcalloc (1, sizeof (*stmt)); stmt->type = type; stmt->linenum = linenum; stmt->filename = yyin_name; switch (type) { case sEXPR: case sRETURN: stmt->u.expr = arg1; break; case sDEFSUB: stmt->u.defsub.name = arg1; stmt->u.defsub.closure = arg2; break; case sBLOCK: stmt->u.block = arg1; /* Statement list. */ break; case sIF: stmt->u.stmt_if.expr = arg1; stmt->u.stmt_if.then_stmt = arg2; stmt->u.stmt_if.else_stmt = arg3; break; case sWHILE: stmt->u.stmt_while.expr = arg1; stmt->u.stmt_while.body = arg2; break; case sFOR: stmt->u.stmt_for.init = arg1; stmt->u.stmt_for.cond = arg2; stmt->u.stmt_for.incr = arg3; stmt->u.stmt_for.body = arg4; break; } return stmt; } Expr * mk_expr (type, arg1, arg2, arg3) ExprType type; void *arg1; void *arg2; void *arg3; { Expr *expr; expr = (Expr *) xcalloc (1, sizeof (*expr)); expr->type = type; expr->linenum = linenum; expr->filename = yyin_name; switch (type) { case eSTRING: case eREGEXP: case eINTEGER: case eREAL: case eSYMBOL: expr->u.node = arg1; break; case eNOT: expr->u.not = arg1; break; case eFCALL: expr->u.fcall.name = arg1; expr->u.fcall.args = arg2; break; case eASSIGN: case eADDASSIGN: case eSUBASSIGN: case eMULASSIGN: case eDIVASSIGN: expr->u.assign.sym = arg1; expr->u.assign.expr = arg2; break; case ePOSTFIXADD: case ePOSTFIXSUB: case ePREFIXADD: case ePREFIXSUB: expr->u.node = arg1; break; case eARRAYASSIGN: expr->u.arrayassign.expr1 = arg1; expr->u.arrayassign.expr2 = arg2; expr->u.arrayassign.expr3 = arg3; break; case eARRAYREF: expr->u.arrayref.expr1 = arg1; expr->u.arrayref.expr2 = arg2; break; case eQUESTCOLON: expr->u.questcolon.cond = arg1; expr->u.questcolon.expr1 = arg2; expr->u.questcolon.expr2 = arg3; break; case eMULT: case eDIV: case ePLUS: case eMINUS: case eLT: case eGT: case eEQ: case eNE: case eGE: case eLE: case eAND: case eOR: expr->u.op.left = arg1; expr->u.op.right = arg2; break; } return expr; } Cons * cons (car, cdr) void *car; void *cdr; { Cons *c; c = (Cons *) xmalloc (sizeof (*c)); c->car = car; c->cdr = cdr; return c; } void define_state (sym, super, rules) Node *sym; Node *super; List *rules; { void *old_state; char msg[512]; State *state; state = (State *) xcalloc (1, sizeof (*state)); state->name = xstrdup (sym->u.sym); state->rules = rules; if (super) state->super_name = xstrdup (super->u.sym); if (!strhash_put (ns_states, sym->u.sym, strlen (sym->u.sym), state, &old_state)) { fprintf (stderr, _("%s: ouf of memory"), program); exit (1); } if (old_state) { sprintf (msg, _("warning: redefining state `%s'"), sym->u.sym); yyerror (msg); /* Yes, we leak memory here. */ } } /* * Expression evaluation. */ static void define_sub (sym, args_body, filename, linenum) Node *sym; Cons *args_body; char *filename; unsigned int linenum; { void *old_data; if (!strhash_put (ns_subs, sym->u.sym, strlen (sym->u.sym), args_body, &old_data)) { fprintf (stderr, _("%s: ouf of memory"), program); exit (1); } if (old_data && warning_level >= WARN_ALL) fprintf (stderr, _("%s:%d: warning: redefining subroutine `%s'\n"), filename, linenum, sym->u.sym); } extern unsigned int current_linenum; static Node * lookup_var (env, ns, sym, filename, linenum) Environment *env; StringHashPtr ns; Node *sym; char *filename; unsigned int linenum; { Node *n; Environment *e; /* Special variables. */ if (sym->u.sym[0] == '$' && sym->u.sym[1] && sym->u.sym[2] == '\0') { /* Regexp sub expression reference. */ if (sym->u.sym[1] >= '0' && sym->u.sym[1] <= '9') { int i; int len; /* Matched text. */ i = sym->u.sym[1] - '0'; n = node_alloc (nSTRING); if (current_match == NULL || current_match->start[i] < 0 || current_match_buf == NULL) { n->u.str.data = (char *) xmalloc (1); n->u.str.len = 0; } else { len = current_match->end[i] - current_match->start[i]; n->u.str.data = (char *) xmalloc (len + 1); memcpy (n->u.str.data, current_match_buf + current_match->start[i], len); n->u.str.len = len; } /* Must set the refcount to 0 so that the user will free it it when it is not needed anymore. We will never touch this node after this pointer. */ n->refcount = 0; return n; } /* Everything before the matched expression. */ if (sym->u.sym[1] == '`' || sym->u.sym[1] == 'B') { n = node_alloc (nSTRING); if (current_match == NULL || current_match->start[0] < 0 || current_match_buf == NULL) { n->u.str.data = (char *) xmalloc (1); n->u.str.len = 0; } else { n->u.str.len = current_match->start[0]; n->u.str.data = (char *) xmalloc (n->u.str.len + 1); memcpy (n->u.str.data, current_match_buf, n->u.str.len); } /* Set the refcount to 0. See above. */ n->refcount = 0; return n; } /* Current input line number. */ if (sym->u.sym[1] == '.') { n = node_alloc (nINTEGER); n->u.integer = current_linenum; /* Set the refcount to 0. See above. */ n->refcount = 0; return n; } } /* Local variables. */ for (e = env; e; e = e->next) if (strcmp (e->name, sym->u.sym) == 0) return e->val; /* Global variables. */ if (strhash_get (ns, sym->u.sym, strlen (sym->u.sym), (void **) &n)) return n; /* Undefined variable. */ fprintf (stderr, _("%s:%d: error: undefined variable `%s'\n"), filename, linenum, sym->u.sym); exit (1); /* NOTREACHED */ return NULL; } static void set_var (env, ns, sym, val, filename, linenum) Environment *env; StringHashPtr ns; Node *sym; Node *val; char *filename; unsigned int linenum; { Node *n; Environment *e; /* Local variables. */ for (e = env; e; e = e->next) if (strcmp (e->name, sym->u.sym) == 0) { node_free (e->val); e->val = val; return; } /* Global variables. */ if (strhash_put (ns, sym->u.sym, strlen (sym->u.sym), val, (void **) &n)) { node_free (n); return; } /* Couldn't set value for variable. */ fprintf (stderr, _("%s:%d: error: couldn't set variable `%s'\n"), filename, linenum, sym->u.sym); exit (1); /* NOTREACHED */ } static Node * calculate_binary (l, r, type, filename, linenum) Node *l; Node *r; ExprType type; char *filename; unsigned int linenum; { Node *n = NULL; switch (type) { case eMULT: case eDIV: case ePLUS: case eMINUS: case eLT: case eGT: case eEQ: case eNE: case eGE: case eLE: if (l->type == r->type && l->type == nINTEGER) { n = node_alloc (nINTEGER); switch (type) { case eMULT: n->u.integer = (l->u.integer * r->u.integer); break; case eDIV: n->u.integer = (l->u.integer / r->u.integer); break; case ePLUS: n->u.integer = (l->u.integer + r->u.integer); break; case eMINUS: n->u.integer = (l->u.integer - r->u.integer); break; case eLT: n->u.integer = (l->u.integer < r->u.integer); break; case eGT: n->u.integer = (l->u.integer > r->u.integer); break; case eEQ: n->u.integer = (l->u.integer == r->u.integer); break; case eNE: n->u.integer = (l->u.integer != r->u.integer); break; case eGE: n->u.integer = (l->u.integer >= r->u.integer); break; case eLE: n->u.integer = (l->u.integer <= r->u.integer); break; default: /* NOTREACHED */ break; } } else if ((l->type == nINTEGER || l->type == nREAL) && (r->type == nINTEGER || r->type == nREAL)) { double dl, dr; if (l->type == nINTEGER) dl = (double) l->u.integer; else dl = l->u.real; if (r->type == nINTEGER) dr = (double) r->u.integer; else dr = r->u.real; n = node_alloc (nREAL); switch (type) { case eMULT: n->u.real = (dl * dr); break; case eDIV: n->u.real = (dl / dr); break; case ePLUS: n->u.real = (dl + dr); break; case eMINUS: n->u.real = (dl - dr); break; case eLT: n->type = nINTEGER; n->u.integer = (dl < dr); break; case eGT: n->type = nINTEGER; n->u.integer = (dl > dr); break; case eEQ: n->type = nINTEGER; n->u.integer = (dl == dr); break; case eNE: n->type = nINTEGER; n->u.integer = (dl != dr); break; case eGE: n->type = nINTEGER; n->u.integer = (dl >= dr); break; case eLE: n->type = nINTEGER; n->u.integer = (dl <= dr); break; default: /* NOTREACHED */ break; } } else { fprintf (stderr, _("%s:%d: error: expression between illegal types\n"), filename, linenum); exit (1); } break; default: /* This is definitely a bug. */ abort (); break; } return n; } Node * eval_expr (expr, env) Expr *expr; Environment *env; { Node *n = nvoid; Node *n2; Node *l, *r; Cons *c; Primitive prim; int return_seen; Environment *ei, *ei2; int i; Node sn; if (expr == NULL) return nvoid; switch (expr->type) { case eSTRING: case eREGEXP: case eINTEGER: case eREAL: node_reference (expr->u.node); return expr->u.node; break; case eSYMBOL: n = lookup_var (env, ns_vars, expr->u.node, expr->filename, expr->linenum); node_reference (n); return n; break; case eNOT: n = eval_expr (expr->u.not, env); i = !IS_TRUE (n); node_free (n); n = node_alloc (nINTEGER); n->u.integer = i; return n; break; case eFCALL: n = expr->u.fcall.name; /* User-defined subroutine? */ if (strhash_get (ns_subs, n->u.sym, strlen (n->u.sym), (void **) &c)) { Environment *nenv = NULL; ListItem *i, *e; List *stmts; List *lst; Cons *args_locals; /* Found it, now bind arguments. */ args_locals = (Cons *) c->car; stmts = (List *) c->cdr; lst = (List *) args_locals->car; for (i = lst->head, e = expr->u.fcall.args->head; i && e; i = i->next, e = e->next) { Node *sym; sym = (Node *) i->data; n = eval_expr ((Expr *) e->data, env); ei = (Environment *) xcalloc (1, sizeof (*ei)); ei->name = sym->u.sym; ei->val = n; ei->next = nenv; nenv = ei; } /* Check that we had correct amount of arguments. */ if (i) { fprintf (stderr, _("%s:%d: error: too few arguments for subroutine\n"), expr->filename, expr->linenum); exit (1); } if (e) { fprintf (stderr, _("%s:%d: error: too many arguments for subroutine\n"), expr->filename, expr->linenum); exit (1); } /* Enter local variables. */ lst = (List *) args_locals->cdr; for (i = lst->head; i; i = i->next) { Cons *c; Node *sym; Expr *init; c = (Cons *) i->data; sym = (Node *) c->car; init = (Expr *) c->cdr; ei = (Environment *) xcalloc (1, sizeof (*ei)); ei->name = sym->u.sym; if (init) ei->val = eval_expr (init, nenv); else ei->val = nvoid; ei->next = nenv; nenv = ei; } /* Eval statement list. */ return_seen = 0; n = eval_statement_list ((List *) c->cdr, nenv, &return_seen); /* Cleanup env. */ for (ei = nenv; ei; ei = ei2) { ei2 = ei->next; node_free (ei->val); xfree (ei); } return n; } /* Primitives. */ else if (strhash_get (ns_prims, n->u.sym, strlen (n->u.sym), (void **) &prim)) { n = (*prim) (n->u.sym, expr->u.fcall.args, env, expr->filename, expr->linenum); return n; } else { fprintf (stderr, _("%s:%d: error: undefined procedure `%s'\n"), expr->filename, expr->linenum, n->u.sym); exit (1); } break; case eASSIGN: n = eval_expr (expr->u.assign.expr, env); set_var (env, ns_vars, expr->u.assign.sym, n, expr->filename, expr->linenum); node_reference (n); return n; break; case eADDASSIGN: case eSUBASSIGN: case eMULASSIGN: case eDIVASSIGN: n = eval_expr (expr->u.assign.expr, env); n2 = lookup_var (env, ns_vars, expr->u.assign.sym, expr->filename, expr->linenum); switch (expr->type) { case eADDASSIGN: n2 = calculate_binary (n2, n, ePLUS, expr->filename, expr->linenum); break; case eSUBASSIGN: n2 = calculate_binary (n2, n, eMINUS, expr->filename, expr->linenum); break; case eMULASSIGN: n2 = calculate_binary (n2, n, eMULT, expr->filename, expr->linenum); break; case eDIVASSIGN: n2 = calculate_binary (n2, n, eDIV, expr->filename, expr->linenum); break; default: /* NOTREACHED */ abort (); break; } set_var (env, ns_vars, expr->u.assign.sym, n2, expr->filename, expr->linenum); node_free (n); node_reference (n2); return n2; break; case ePOSTFIXADD: case ePOSTFIXSUB: sn.type = nINTEGER; sn.u.integer = 1; n2 = lookup_var (env, ns_vars, expr->u.node, expr->filename, expr->linenum); node_reference (n2); n = calculate_binary (n2, &sn, expr->type == ePOSTFIXADD ? ePLUS : eMINUS, expr->filename, expr->linenum); set_var (env, ns_vars, expr->u.node, n, expr->filename, expr->linenum); return n2; break; case ePREFIXADD: case ePREFIXSUB: sn.type = nINTEGER; sn.u.integer = 1; n = lookup_var (env, ns_vars, expr->u.node, expr->filename, expr->linenum); n = calculate_binary (n, &sn, expr->type == ePREFIXADD ? ePLUS : eMINUS, expr->filename, expr->linenum); set_var (env, ns_vars, expr->u.node, n, expr->filename, expr->linenum); node_reference (n); return n; break; case eARRAYASSIGN: n = eval_expr (expr->u.arrayassign.expr1, env); if (n->type != nARRAY && n->type != nSTRING) { fprintf (stderr, _("%s:%d: error: illegal lvalue for assignment\n"), expr->filename, expr->linenum); exit (1); } n2 = eval_expr (expr->u.arrayassign.expr2, env); if (n2->type != nINTEGER) { fprintf (stderr, _("%s:%d: error: array reference index is not integer\n"), expr->filename, expr->linenum); exit (1); } if (n2->u.integer < 0) { fprintf (stderr, _("%s:%d: error: negative array reference index\n"), expr->filename, expr->linenum); exit (1); } /* Do the assignment. */ if (n->type == nARRAY) { if (n2->u.integer >= n->u.array.len) { if (n2->u.integer >= n->u.array.allocated) { /* Allocate more space. */ n->u.array.allocated = n2->u.integer + 100; n->u.array.array = (Node **) xrealloc (n->u.array.array, n->u.array.allocated * sizeof (Node *)); } /* Fill the possible gap. */ for (i = n->u.array.len; i <= n2->u.integer; i++) n->u.array.array[i] = nvoid; /* Updated expanded array length. */ n->u.array.len = n2->u.integer + 1; } node_free (n->u.array.array[n2->u.integer]); l = eval_expr (expr->u.arrayassign.expr3, env); /* +1 for the return value. */ node_reference (l); n->u.array.array[n2->u.integer] = l; } else { if (n2->u.integer >= n->u.str.len) { i = n->u.str.len; n->u.str.len = n2->u.integer + 1; n->u.str.data = (char *) xrealloc (n->u.str.data, n->u.str.len); /* Init the expanded string with ' ' character. */ for (; i < n->u.str.len; i++) n->u.str.data[i] = ' '; } l = eval_expr (expr->u.arrayassign.expr3, env); if (l->type != nINTEGER) { fprintf (stderr, _("%s:%d: error: illegal rvalue for string assignment\n"), expr->filename, expr->linenum); exit (1); } n->u.str.data[n2->u.integer] = l->u.integer; } node_free (n); node_free (n2); return l; break; case eARRAYREF: n = eval_expr (expr->u.arrayref.expr1, env); if (n->type != nARRAY && n->type != nSTRING) { fprintf (stderr, _("%s:%d: error: illegal type for array reference\n"), expr->filename, expr->linenum); exit (1); } n2 = eval_expr (expr->u.arrayref.expr2, env); if (n2->type != nINTEGER) { fprintf (stderr, _("%s:%d: error: array reference index is not integer\n"), expr->filename, expr->linenum); exit (1); } if (n2->u.integer < 0 || (n->type == nARRAY && n2->u.integer >= n->u.array.len) || (n->type == nSTRING && n2->u.integer >= n->u.str.len)) { fprintf (stderr, _("%s:%d: error: array reference index out of range\n"), expr->filename, expr->linenum); exit (1); } /* Do the reference. */ if (n->type == nARRAY) { l = n->u.array.array[n2->u.integer]; node_reference (l); } else { l = node_alloc (nINTEGER); l->u.integer = (int) ((unsigned char *) n->u.str.data)[n2->u.integer]; } node_free (n); node_free (n2); return l; break; case eQUESTCOLON: n = eval_expr (expr->u.questcolon.cond, env); i = IS_TRUE (n); node_free (n); if (i) n = eval_expr (expr->u.questcolon.expr1, env); else n = eval_expr (expr->u.questcolon.expr2, env); return n; break; case eAND: n = eval_expr (expr->u.op.left, env); if (!IS_TRUE (n)) return n; node_free (n); return eval_expr (expr->u.op.right, env); break; case eOR: n = eval_expr (expr->u.op.left, env); if (IS_TRUE (n)) return n; node_free (n); return eval_expr (expr->u.op.right, env); break; /* Arithmetics. */ case eMULT: case eDIV: case ePLUS: case eMINUS: case eLT: case eGT: case eEQ: case eNE: case eGE: case eLE: /* Eval sub-expressions. */ l = eval_expr (expr->u.op.left, env); r = eval_expr (expr->u.op.right, env); n = calculate_binary (l, r, expr->type, expr->filename, expr->linenum); node_free (l); node_free (r); return n; break; } /* NOTREACHED */ return n; } Node * eval_statement (stmt, env, return_seen) Stmt *stmt; Environment *env; int *return_seen; { Node *n = nvoid; Node *n2; int i; switch (stmt->type) { case sRETURN: n = eval_expr (stmt->u.expr, env); *return_seen = 1; break; case sDEFSUB: define_sub (stmt->u.defsub.name, stmt->u.defsub.closure, stmt->filename, stmt->linenum); break; case sBLOCK: n = eval_statement_list (stmt->u.block, env, return_seen); break; case sIF: n = eval_expr (stmt->u.stmt_if.expr, env); i = IS_TRUE (n); node_free (n); if (i) /* Then branch. */ n = eval_statement (stmt->u.stmt_if.then_stmt, env, return_seen); else { /* Optional else branch. */ if (stmt->u.stmt_if.else_stmt) n = eval_statement (stmt->u.stmt_if.else_stmt, env, return_seen); else n = nvoid; } break; case sWHILE: while (1) { n2 = eval_expr (stmt->u.stmt_while.expr, env); i = IS_TRUE (n2); node_free (n2); if (!i) break; node_free (n); /* Eval body. */ n = eval_statement (stmt->u.stmt_while.body, env, return_seen); if (*return_seen) break; } break; case sFOR: /* Init. */ if (stmt->u.stmt_for.init) { n2 = eval_expr (stmt->u.stmt_for.init, env); node_free (n2); } /* Body. */ while (1) { n2 = eval_expr (stmt->u.stmt_for.cond, env); i = IS_TRUE (n2); node_free (n2); if (!i) break; node_free (n); /* Eval body. */ n = eval_statement (stmt->u.stmt_for.body, env, return_seen); if (*return_seen) break; /* Increment. */ if (stmt->u.stmt_for.incr) { n2 = eval_expr (stmt->u.stmt_for.incr, env); node_free (n2); } } break; case sEXPR: n = eval_expr (stmt->u.expr, env); break; } return n; } Node * eval_statement_list (lst, env, return_seen) List *lst; Environment *env; int *return_seen; { ListItem *i; Stmt *stmt; Node *n = nvoid; if (lst == NULL) return nvoid; for (i = lst->head; i; i = i->next) { node_free (n); stmt = (Stmt *) i->data; n = eval_statement (stmt, env, return_seen); if (*return_seen) return n; } return n; } void load_states_file (name) char *name; { Node *n; int return_seen = 0; yyin_name = xstrdup (name); linenum = 1; yyin = fopen (yyin_name, "r"); if (yyin == NULL) { fprintf (stderr, _("%s: couldn't open definition file `%s': %s\n"), program, yyin_name, strerror (errno)); exit (1); } yyparse (); fclose (yyin); /* Evaluate all top-level statements. */ n = eval_statement_list (global_stmts, NULL, &return_seen); node_free (n); /* Reset the global statements to an empty list. */ global_stmts = list (); } int autoload_file (name) char *name; { char *start; unsigned int len; char *cp; char *buf = NULL; unsigned int buflen = 1024; unsigned int name_len; struct stat stat_st; int result = 0; name_len = strlen (name); buf = xmalloc (buflen); for (start = path; start; start = cp) { cp = strchr (start, PATH_SEPARATOR); if (cp) { len = cp - start; cp++; } else len = strlen (start); if (len + 1 + name_len + 3 + 1 >= buflen) { buflen = len + 1 + name_len + 3 + 1 + 1024; buf = xrealloc (buf, buflen); } sprintf (buf, "%.*s/%s.st", len, start, name); if (stat (buf, &stat_st) == 0) { if (verbose) fprintf (stderr, _("%s: autoloading `%s' from `%s'\n"), program, name, buf); load_states_file (buf); result = 1; break; } } xfree (buf); return result; } State * lookup_state (name) char *name; { State *state; int retry_count = 0; while (1) { if (strhash_get (ns_states, name, strlen (name), (void **) &state)) return state; if (retry_count > 0) break; /* Try to autoload the state. */ autoload_file (name); retry_count++; } /* No luck. */ return NULL; } enscript-1.6.5.90/states/main.c0000644000175000017500000002240411606140413013113 00000000000000/* * The main for states. * Copyright (c) 1997-2000 Markku Rossi. * * Author: Markku Rossi */ /* * This file is part of GNU Enscript. * * Enscript is free software: you can redistribute 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. * * Enscript is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Enscript. If not, see . */ #include "defs.h" #include "getopt.h" /* * Types and definitions. */ #define STDIN_NAME "(stdin)" /* * Global variables. */ char *program; /* Namespaces. */ StringHashPtr ns_prims = NULL; StringHashPtr ns_vars = NULL; StringHashPtr ns_subs = NULL; StringHashPtr ns_states = NULL; /* * Global expressions which are evaluated after config file has been * parsed. */ List *global_stmts = NULL; /* Statements from the start{} block. */ List *start_stmts = NULL; /* Start and name rules. */ List *startrules = NULL; List *namerules = NULL; Node *nvoid = NULL; FILE *ifp = NULL; char *inbuf = NULL; unsigned int data_in_buffer; unsigned int bufpos; int eof_seen; char *current_fname; unsigned int current_linenum; struct re_registers *current_match = NULL; char *current_match_buf = NULL; /* Options. */ /* * -D VAR=VAL, --define=VAR=VAL * * Define variable VAR to have value VAL. */ VariableDef *vardefs = NULL; VariableDef *vardefs_tail = NULL; /* * -f NAME, --file=NAME * * Read state definitions from file NAME. The default is "states.st" in * the current working directory. */ char *defs_file = "states.st"; unsigned int linenum = 1; char *yyin_name; /* * -o FILE, --output=FILE * * Save output to file FILE, the default is stdout. */ FILE *ofp = NULL; /* * -p PATH, --path=PATH * * Set the load path to PATH. */ char *path = NULL; /* * -s NAME, --state=NAME * * Start from state NAME. As a default, start date is resolved during * the program startup by using start, namerules and startrules rules. */ char *start_state_arg = NULL; char *start_state; /* * -v, --verbose * * Increase the program verbosity. */ unsigned int verbose = 0; /* * -V, --version * * Print the program version number. */ /* * -W LEVEL, --warning=LEVEL * * Set the warning level to LEVEL. */ WarningLevel warning_level = WARN_LIGHT; /* * Static variables. */ static struct option long_options[] = { {"define", required_argument, 0, 'D'}, {"file", required_argument, 0, 'f'}, {"help", no_argument, 0, 'h'}, {"output", required_argument, 0, 'o'}, {"path", required_argument, 0, 'p'}, {"state", required_argument, 0, 's'}, {"verbose", no_argument, 0, 'v'}, {"version", no_argument, 0, 'V'}, {"warning", required_argument, 0, 'W'}, {NULL, 0, 0, 0}, }; /* Version string. */ char version[256]; /* * Prototypes for static functions. */ static void usage ___P ((void)); /* * Global functions. */ int main (argc, argv) int argc; char *argv[]; { int c; VariableDef *vardef; /* Set defaults for options. */ ofp = stdout; /* Get program's name. */ program = strrchr (argv[0], '/'); if (program == NULL) program = argv[0]; else program++; /* Make getopt_long() to use our modified program name. */ argv[0] = program; /* Format version string. */ sprintf (version, _("states for %s"), PACKAGE_STRING); /* Internationalization. */ #if HAVE_SETLOCALE #if HAVE_LC_MESSAGES setlocale (LC_MESSAGES, ""); #endif #endif #if ENABLE_NLS bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); #endif /* Init namespaces. */ ns_prims = strhash_init (); ns_vars = strhash_init (); ns_subs = strhash_init (); ns_states = strhash_init (); global_stmts = list (); start_stmts = list (); startrules = list (); namerules = list (); nvoid = node_alloc (nVOID); inbuf = (char *) xmalloc (INBUFSIZE); init_primitives (); re_set_syntax (RE_SYNTAX_GNU_AWK | RE_INTERVALS); /* Enter some system variables. */ enter_system_variable ("program", program); enter_system_variable ("version", version); /* Parse arguments. */ while (1) { int option_index = 0; c = getopt_long (argc, argv, "D:f:ho:p:s:vVW:", long_options, &option_index); if (c == -1) break; switch (c) { case 'D': /* define variable */ vardef = (VariableDef *) xcalloc (1, sizeof (*vardef)); vardef->sym = (char *) xmalloc (strlen (optarg) + 1); strcpy (vardef->sym, optarg); vardef->val = strchr (vardef->sym, '='); if (vardef->val == NULL) { fprintf (stderr, _("%s: malformed variable definition \"%s\"\n"), program, vardef->sym); exit (1); } *vardef->val = '\0'; vardef->val++; if (vardefs) vardefs_tail->next = vardef; else vardefs = vardef; vardefs_tail = vardef; break; case 'f': /* definitions file */ defs_file = optarg; break; case 'h': /* help */ usage (); exit (0); break; case 'o': /* output file */ ofp = fopen (optarg, "w"); if (ofp == NULL) { fprintf (stderr, _("%s: couldn't create output file \"%s\": %s\n"), program, optarg, strerror (errno)); exit (1); } break; case 'p': /* path */ path = optarg; break; case 's': /* start state */ start_state_arg = optarg; break; case 'v': /* verbose */ verbose++; break; case 'V': /* version */ printf ("%s\n", version); exit (0); break; case 'W': /* warning level */ if (strcmp (optarg, "light") == 0) warning_level = WARN_LIGHT; else if (strcmp (optarg, "all") == 0) warning_level = WARN_ALL; else { fprintf (stderr, _("%s: unknown warning level `%s'\n"), program, optarg); exit (1); } break; case '?': /* Errors found during getopt_long(). */ fprintf (stderr, _("Try `%s --help' for more information.\n"), program); exit (1); break; default: printf ("Hey! main() didn't handle option \"%c\" (%d)", c, c); if (optarg) printf (" with arg %s", optarg); printf ("\n"); abort (); break; } } /* Pass all remaining arguments to States through `argv' array. */ { Node *v, *n; int i; v = node_alloc (nARRAY); v->u.array.allocated = argc - optind + 1; v->u.array.len = argc - optind; v->u.array.array = (Node **) xcalloc (v->u.array.allocated, sizeof (Node *)); for (i = optind; i < argc; i++) { char *data; n = node_alloc (nSTRING); if (strcmp (argv[i], "-") == 0) data = STDIN_NAME; else data = argv[i]; n->u.str.len = strlen (data); n->u.str.data = xstrdup (data); v->u.array.array[i - optind] = n; } if (!strhash_put (ns_vars, "argv", 4, v, (void **) &n)) { fprintf (stderr, _("%s: out of memory\n"), program); exit (1); } node_free (n); } /* Set some defaults if the user didn't give them. */ if (path == NULL) { char *cp; cp = strrchr (defs_file, '/'); if (cp) { path = xmalloc (cp - defs_file + 3); sprintf (path, ".%c%.*s", PATH_SEPARATOR, cp - defs_file, defs_file); } else path = "."; } /* Parse config file. */ load_states_file (defs_file); /* Define variables given at the command line. */ for (vardef = vardefs; vardef; vardef = vardef->next) { Node *val; Node *old_val; val = node_alloc (nSTRING); val->u.str.len = strlen (vardef->val); val->u.str.data = xstrdup (vardef->val); if (!strhash_put (ns_vars, vardef->sym, strlen (vardef->sym), val, (void **) &old_val)) { fprintf (stderr, _("%s: out of memory\n"), program); exit (1); } node_free (old_val); } /* Process files. */ if (optind == argc) { ifp = stdin; process_file (STDIN_NAME); } else for (; optind < argc; optind++) { if (strcmp (argv[optind], "-") == 0) { ifp = stdin; process_file (STDIN_NAME); } else { ifp = fopen (argv[optind], "r"); if (ifp == NULL) { fprintf (stderr, _("%s: couldn't open input file `%s': %s\n"), program, argv[optind], strerror (errno)); exit (1); } process_file (argv[optind]); fclose (ifp); } } /* Close output file. */ if (ofp != stdout) fclose (ofp); return 0; } /* * Static functions. */ static void usage () { printf (_("\ Usage: %s [OPTION]... [FILE]...\n\ Mandatory arguments to long options are mandatory for short options too.\n"), program); printf (_("\ -D, --define=VAR=VAL define variable VAR to have value VAL\n\ -f, --file=NAME read state definitions from file NAME\n\ -h, --help print this help and exit\n\ -o, --output=NAME save output to file NAME\n\ -p, --path=PATH set the load path to PATH\n\ -s, --state=NAME start from state NAME\n\ -v, --verbose increase the program verbosity\n\ -V, --version print version number\n\ -W, --warning=LEVEL set the warning level to LEVEL\n")); } enscript-1.6.5.90/states/TODO0000644000175000017500000000036611132443251012516 00000000000000 TODO States * manual needs massive updating * Add document for the system() primitive. * Fix / to be a divide operand. We can do it with a little extra syntactical knowledge - we have in in gram.y. * Add test for state heritance. enscript-1.6.5.90/states/gram.c0000644000175000017500000021176211606344233013132 00000000000000 /* A Bison parser, made by GNU Bison 2.4.1. */ /* 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 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* As a special exception, 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.4.1" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" /* Pure parsers. */ #define YYPURE 0 /* Push parsers. */ #define YYPUSH 0 /* Pull parsers. */ #define YYPULL 1 /* Using locations. */ #define YYLSP_NEEDED 0 /* Copy the first part of user declarations. */ /* Line 189 of yacc.c */ #line 1 "gram.y" /* -*- c -*- * Grammar for states. * Copyright (c) 1997-1998 Markku Rossi. * * Author: Markku Rossi */ /* * This file is part of GNU Enscript. * * Enscript is free software: you can redistribute 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. * * Enscript is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Enscript. If not, see . */ /* * $Id: gram.y,v 1.1.1.1 2003/03/05 07:25:52 mtr Exp $ */ #include "defs.h" /* Line 189 of yacc.c */ #line 106 "gram.c" /* Enabling traces. */ #ifndef YYDEBUG # define YYDEBUG 0 #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 /* Tokens. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE /* Put the tokens into the symbol table, so that GDB and other debuggers know about them. */ enum yytokentype { tSYMBOL = 258, tREGEXP = 259, tSTRING = 260, tINTEGER = 261, tREAL = 262, tSUB = 263, tSTATE = 264, tSTART = 265, tSTARTRULES = 266, tNAMERULES = 267, tBEGIN = 268, tEND = 269, tRETURN = 270, tIF = 271, tELSE = 272, tLOCAL = 273, tWHILE = 274, tFOR = 275, tEXTENDS = 276, tDIVASSIGN = 277, tMULASSIGN = 278, tSUBASSIGN = 279, tADDASSIGN = 280, tOR = 281, tAND = 282, tNE = 283, tEQ = 284, tLE = 285, tGE = 286, tDIV = 287, tMINUSMINUS = 288, tPLUSPLUS = 289 }; #endif /* Tokens. */ #define tSYMBOL 258 #define tREGEXP 259 #define tSTRING 260 #define tINTEGER 261 #define tREAL 262 #define tSUB 263 #define tSTATE 264 #define tSTART 265 #define tSTARTRULES 266 #define tNAMERULES 267 #define tBEGIN 268 #define tEND 269 #define tRETURN 270 #define tIF 271 #define tELSE 272 #define tLOCAL 273 #define tWHILE 274 #define tFOR 275 #define tEXTENDS 276 #define tDIVASSIGN 277 #define tMULASSIGN 278 #define tSUBASSIGN 279 #define tADDASSIGN 280 #define tOR 281 #define tAND 282 #define tNE 283 #define tEQ 284 #define tLE 285 #define tGE 286 #define tDIV 287 #define tMINUSMINUS 288 #define tPLUSPLUS 289 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE { /* Line 214 of yacc.c */ #line 34 "gram.y" List *lst; Node *node; Cons *cons; Stmt *stmt; Expr *expr; /* Line 214 of yacc.c */ #line 220 "gram.c" } YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 #endif /* Copy the second part of user declarations. */ /* Line 264 of yacc.c */ #line 232 "gram.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 yyi) #else static int YYID (yyi) int yyi; #endif { return yyi; } #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_alloc; YYSTYPE yyvs_alloc; }; /* 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_alloc, Stack) \ do \ { \ YYSIZE_T yynewbytes; \ YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ Stack = &yyptr->Stack_alloc; \ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ yyptr += yynewbytes / sizeof (*yyptr); \ } \ while (YYID (0)) #endif /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ #define YYLAST 571 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 52 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 17 /* YYNRULES -- Number of rules. */ #define YYNRULES 76 /* YYNRULES -- Number of states. */ #define YYNSTATES 167 /* 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, 41, 2, 2, 2, 2, 2, 2, 50, 51, 39, 37, 49, 38, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 28, 48, 33, 22, 34, 27, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 44, 2, 45, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 46, 2, 47, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 23, 24, 25, 26, 29, 30, 31, 32, 35, 36, 40, 42, 43 }; #if YYDEBUG /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in YYRHS. */ static const yytype_uint16 yyprhs[] = { 0, 0, 3, 4, 7, 12, 17, 22, 28, 36, 38, 39, 44, 45, 48, 53, 58, 63, 68, 69, 71, 73, 77, 78, 82, 84, 88, 90, 94, 95, 98, 101, 105, 115, 119, 125, 133, 139, 149, 152, 154, 156, 158, 160, 162, 165, 169, 173, 178, 182, 186, 190, 194, 198, 201, 204, 207, 210, 217, 221, 226, 232, 236, 240, 244, 248, 252, 256, 260, 264, 268, 272, 273, 275, 276, 278, 280 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int8 yyrhs[] = { 53, 0, -1, -1, 53, 54, -1, 10, 46, 63, 47, -1, 11, 46, 55, 47, -1, 12, 46, 55, 47, -1, 9, 3, 46, 56, 47, -1, 9, 3, 21, 3, 46, 56, 47, -1, 64, -1, -1, 55, 4, 3, 48, -1, -1, 56, 57, -1, 13, 46, 63, 47, -1, 14, 46, 63, 47, -1, 4, 46, 63, 47, -1, 3, 46, 63, 47, -1, -1, 59, -1, 3, -1, 59, 49, 3, -1, -1, 18, 61, 48, -1, 62, -1, 61, 49, 62, -1, 3, -1, 3, 22, 65, -1, -1, 63, 64, -1, 15, 48, -1, 15, 65, 48, -1, 8, 3, 50, 58, 51, 46, 60, 63, 47, -1, 46, 63, 47, -1, 16, 50, 65, 51, 64, -1, 16, 50, 65, 51, 64, 17, 64, -1, 19, 50, 65, 51, 64, -1, 20, 50, 66, 48, 65, 48, 66, 51, 64, -1, 65, 48, -1, 5, -1, 4, -1, 6, -1, 7, -1, 3, -1, 41, 65, -1, 65, 30, 65, -1, 65, 29, 65, -1, 3, 50, 67, 51, -1, 3, 22, 65, -1, 3, 26, 65, -1, 3, 25, 65, -1, 3, 24, 65, -1, 3, 23, 65, -1, 3, 43, -1, 3, 42, -1, 43, 3, -1, 42, 3, -1, 65, 44, 65, 45, 22, 65, -1, 50, 65, 51, -1, 65, 44, 65, 45, -1, 65, 27, 65, 28, 65, -1, 65, 39, 65, -1, 65, 40, 65, -1, 65, 37, 65, -1, 65, 38, 65, -1, 65, 33, 65, -1, 65, 34, 65, -1, 65, 32, 65, -1, 65, 31, 65, -1, 65, 36, 65, -1, 65, 35, 65, -1, -1, 65, -1, -1, 68, -1, 65, -1, 68, 49, 65, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint8 yyrline[] = { 0, 65, 65, 66, 69, 70, 72, 74, 76, 78, 81, 82, 86, 87, 89, 90, 91, 92, 95, 96, 99, 100, 103, 104, 107, 108, 111, 112, 115, 116, 119, 121, 123, 128, 130, 132, 135, 137, 140, 144, 146, 148, 150, 152, 154, 156, 157, 158, 160, 162, 164, 166, 168, 170, 172, 174, 176, 178, 180, 181, 183, 185, 186, 187, 188, 190, 191, 192, 193, 194, 195, 198, 199, 202, 203, 206, 207 }; #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", "tSYMBOL", "tREGEXP", "tSTRING", "tINTEGER", "tREAL", "tSUB", "tSTATE", "tSTART", "tSTARTRULES", "tNAMERULES", "tBEGIN", "tEND", "tRETURN", "tIF", "tELSE", "tLOCAL", "tWHILE", "tFOR", "tEXTENDS", "'='", "tDIVASSIGN", "tMULASSIGN", "tSUBASSIGN", "tADDASSIGN", "'?'", "':'", "tOR", "tAND", "tNE", "tEQ", "'<'", "'>'", "tLE", "tGE", "'+'", "'-'", "'*'", "tDIV", "'!'", "tMINUSMINUS", "tPLUSPLUS", "'['", "']'", "'{'", "'}'", "';'", "','", "'('", "')'", "$accept", "file", "toplevel", "regexp_sym_list", "staterules", "staterule", "symbol_list", "rest_symbol_list", "locals", "locals_rest", "local_def", "stmt_list", "stmt", "expr", "cond_expr", "expr_list", "rest_expr_list", 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, 61, 277, 278, 279, 280, 63, 58, 281, 282, 283, 284, 60, 62, 285, 286, 43, 45, 42, 287, 33, 288, 289, 91, 93, 123, 125, 59, 44, 40, 41 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { 0, 52, 53, 53, 54, 54, 54, 54, 54, 54, 55, 55, 56, 56, 57, 57, 57, 57, 58, 58, 59, 59, 60, 60, 61, 61, 62, 62, 63, 63, 64, 64, 64, 64, 64, 64, 64, 64, 64, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 66, 66, 67, 67, 68, 68 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ static const yytype_uint8 yyr2[] = { 0, 2, 0, 2, 4, 4, 4, 5, 7, 1, 0, 4, 0, 2, 4, 4, 4, 4, 0, 1, 1, 3, 0, 3, 1, 3, 1, 3, 0, 2, 2, 3, 9, 3, 5, 7, 5, 9, 2, 1, 1, 1, 1, 1, 2, 3, 3, 4, 3, 3, 3, 3, 3, 2, 2, 2, 2, 6, 3, 4, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 1, 0, 1, 1, 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[] = { 2, 0, 1, 43, 40, 39, 41, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 3, 9, 0, 0, 0, 0, 0, 0, 54, 53, 73, 0, 0, 28, 10, 10, 30, 0, 0, 0, 71, 44, 56, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 48, 52, 51, 50, 49, 75, 0, 74, 18, 0, 12, 0, 0, 0, 31, 0, 0, 72, 0, 33, 29, 58, 0, 46, 45, 68, 67, 65, 66, 70, 69, 63, 64, 61, 62, 0, 47, 0, 20, 0, 19, 0, 0, 4, 0, 5, 6, 0, 0, 0, 0, 59, 76, 0, 0, 12, 0, 0, 0, 0, 7, 13, 0, 34, 36, 0, 60, 0, 22, 21, 0, 28, 28, 28, 28, 11, 0, 71, 57, 0, 28, 8, 0, 0, 0, 0, 35, 0, 26, 0, 24, 0, 17, 16, 14, 15, 0, 0, 23, 0, 32, 37, 27, 25 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { -1, 1, 22, 75, 105, 124, 102, 103, 143, 152, 153, 46, 83, 24, 81, 69, 70 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ #define YYPACT_NINF -41 static const yytype_int16 yypact[] = { -41, 71, -41, 300, -41, -41, -41, -41, 1, 9, -40, -28, -27, 18, -24, -18, -17, 296, 28, 31, -41, 296, -41, -41, 391, 296, 296, 296, 296, 296, -41, -41, 296, -15, -19, -41, -41, -41, -41, 411, 296, 296, 296, 12, -41, -41, 126, 322, 296, 296, 296, 296, 296, 296, 296, 296, 296, 296, 296, 296, 296, 296, -41, 486, 486, 486, 486, 486, 486, 6, 20, 64, 67, -41, 146, 3, 4, -41, 345, 368, 486, 10, -41, -41, -41, 470, 501, 515, 527, 527, 55, 55, 55, 55, 45, 45, 12, 12, 451, -41, 296, -41, 21, 24, 60, 49, -41, 94, -41, -41, 290, 290, 296, 296, 85, 486, 62, 112, -41, 70, 73, 74, 76, -41, -41, 75, 107, -41, 431, 486, 296, 108, -41, 51, -41, -41, -41, -41, -41, 290, 296, 486, 122, -41, -41, 175, 194, 223, 242, -41, 84, 105, -38, -41, 271, -41, -41, -41, -41, 290, 296, -41, 122, -41, -41, 486, -41 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int8 yypgoto[] = { -41, -41, -41, 99, 19, -41, -41, -41, -41, -41, -23, -32, -1, -12, 0, -41, -41 }; /* 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[] = { 23, 39, 72, 74, 33, 43, 35, 107, 107, 47, 161, 162, 34, 63, 64, 65, 66, 67, 36, 37, 68, 3, 4, 5, 6, 7, 40, 73, 78, 79, 80, 44, 41, 42, 45, 71, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 108, 109, 119, 120, 119, 120, 61, 99, 112, 17, 18, 19, 121, 122, 121, 122, 38, 101, 21, 100, 104, 2, 116, 117, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 59, 60, 13, 14, 115, 61, 15, 16, 57, 58, 59, 60, 123, 125, 144, 61, 128, 129, 145, 146, 147, 148, 118, 130, 131, 126, 127, 154, 17, 18, 19, 132, 134, 20, 141, 135, 136, 21, 137, 138, 139, 151, 142, 160, 80, 3, 4, 5, 6, 7, 8, 159, 76, 133, 149, 166, 150, 13, 14, 0, 0, 15, 16, 0, 165, 3, 4, 5, 6, 7, 8, 0, 0, 0, 164, 0, 0, 13, 14, 0, 0, 15, 16, 17, 18, 19, 0, 0, 20, 82, 0, 0, 21, 0, 3, 4, 5, 6, 7, 8, 0, 0, 0, 17, 18, 19, 13, 14, 20, 106, 15, 16, 21, 3, 4, 5, 6, 7, 8, 0, 0, 0, 0, 0, 0, 13, 14, 0, 0, 15, 16, 0, 17, 18, 19, 0, 0, 20, 155, 0, 0, 21, 3, 4, 5, 6, 7, 8, 0, 0, 0, 17, 18, 19, 13, 14, 20, 156, 15, 16, 21, 3, 4, 5, 6, 7, 8, 0, 0, 0, 0, 0, 0, 13, 14, 0, 0, 15, 16, 0, 17, 18, 19, 0, 0, 20, 157, 0, 0, 21, 3, 4, 5, 6, 7, 8, 0, 0, 0, 17, 18, 19, 13, 14, 20, 158, 15, 16, 21, 3, 4, 5, 6, 7, 8, 3, 4, 5, 6, 7, 0, 13, 14, 0, 0, 15, 16, 0, 17, 18, 19, 0, 0, 20, 163, 0, 0, 21, 25, 26, 27, 28, 29, 0, 0, 0, 0, 17, 18, 19, 0, 0, 20, 17, 18, 19, 21, 0, 30, 31, 0, 0, 21, 0, 0, 48, 32, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 0, 0, 0, 61, 0, 0, 0, 0, 0, 48, 84, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 0, 0, 0, 61, 0, 0, 0, 0, 0, 48, 110, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 0, 0, 0, 61, 0, 0, 0, 0, 0, 48, 111, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 0, 0, 0, 61, 0, 0, 48, 62, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 0, 0, 0, 61, 0, 0, 48, 77, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 0, 0, 0, 61, 0, 0, 48, 140, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 0, 0, 0, 61, 114, 48, 113, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 0, 0, 48, 61, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 0, 0, 0, 61, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 0, 0, 0, 61, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 0, 0, 0, 61, 53, 54, 55, 56, 57, 58, 59, 60, 0, 0, 0, 61 }; static const yytype_int16 yycheck[] = { 1, 13, 21, 35, 3, 17, 46, 4, 4, 21, 48, 49, 3, 25, 26, 27, 28, 29, 46, 46, 32, 3, 4, 5, 6, 7, 50, 46, 40, 41, 42, 3, 50, 50, 3, 50, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 47, 47, 3, 4, 3, 4, 44, 51, 48, 41, 42, 43, 13, 14, 13, 14, 48, 3, 50, 49, 3, 0, 51, 49, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 39, 40, 15, 16, 100, 44, 19, 20, 37, 38, 39, 40, 47, 3, 47, 44, 112, 113, 134, 135, 136, 137, 46, 22, 46, 110, 111, 143, 41, 42, 43, 3, 46, 46, 130, 46, 46, 50, 46, 48, 17, 3, 18, 22, 140, 3, 4, 5, 6, 7, 8, 51, 37, 118, 139, 162, 140, 15, 16, -1, -1, 19, 20, -1, 160, 3, 4, 5, 6, 7, 8, -1, -1, -1, 159, -1, -1, 15, 16, -1, -1, 19, 20, 41, 42, 43, -1, -1, 46, 47, -1, -1, 50, -1, 3, 4, 5, 6, 7, 8, -1, -1, -1, 41, 42, 43, 15, 16, 46, 47, 19, 20, 50, 3, 4, 5, 6, 7, 8, -1, -1, -1, -1, -1, -1, 15, 16, -1, -1, 19, 20, -1, 41, 42, 43, -1, -1, 46, 47, -1, -1, 50, 3, 4, 5, 6, 7, 8, -1, -1, -1, 41, 42, 43, 15, 16, 46, 47, 19, 20, 50, 3, 4, 5, 6, 7, 8, -1, -1, -1, -1, -1, -1, 15, 16, -1, -1, 19, 20, -1, 41, 42, 43, -1, -1, 46, 47, -1, -1, 50, 3, 4, 5, 6, 7, 8, -1, -1, -1, 41, 42, 43, 15, 16, 46, 47, 19, 20, 50, 3, 4, 5, 6, 7, 8, 3, 4, 5, 6, 7, -1, 15, 16, -1, -1, 19, 20, -1, 41, 42, 43, -1, -1, 46, 47, -1, -1, 50, 22, 23, 24, 25, 26, -1, -1, -1, -1, 41, 42, 43, -1, -1, 46, 41, 42, 43, 50, -1, 42, 43, -1, -1, 50, -1, -1, 27, 50, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, -1, -1, -1, 44, -1, -1, -1, -1, -1, 27, 51, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, -1, -1, -1, 44, -1, -1, -1, -1, -1, 27, 51, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, -1, -1, -1, 44, -1, -1, -1, -1, -1, 27, 51, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, -1, -1, -1, 44, -1, -1, 27, 48, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, -1, -1, -1, 44, -1, -1, 27, 48, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, -1, -1, -1, 44, -1, -1, 27, 48, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, -1, -1, -1, 44, 45, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, -1, -1, 27, 44, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, -1, -1, -1, 44, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, -1, -1, -1, 44, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, -1, -1, -1, 44, 33, 34, 35, 36, 37, 38, 39, 40, -1, -1, -1, 44 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { 0, 53, 0, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 15, 16, 19, 20, 41, 42, 43, 46, 50, 54, 64, 65, 22, 23, 24, 25, 26, 42, 43, 50, 3, 3, 46, 46, 46, 48, 65, 50, 50, 50, 65, 3, 3, 63, 65, 27, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 44, 48, 65, 65, 65, 65, 65, 65, 67, 68, 50, 21, 46, 63, 55, 55, 48, 65, 65, 65, 66, 47, 64, 51, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 51, 49, 3, 58, 59, 3, 56, 47, 4, 47, 47, 51, 51, 48, 28, 45, 65, 51, 49, 46, 3, 4, 13, 14, 47, 57, 3, 64, 64, 65, 65, 22, 46, 3, 56, 46, 46, 46, 46, 48, 17, 48, 65, 18, 60, 47, 63, 63, 63, 63, 64, 66, 3, 61, 62, 63, 47, 47, 47, 47, 51, 22, 48, 49, 47, 64, 65, 62 }; #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 *yybottom, yytype_int16 *yytop) #else static void yy_stack_print (yybottom, yytop) yytype_int16 *yybottom; yytype_int16 *yytop; #endif { YYFPRINTF (stderr, "Stack now"); for (; yybottom <= yytop; yybottom++) { int yybot = *yybottom; YYFPRINTF (stderr, " %d", yybot); } YYFPRINTF (stderr, "\n"); } # define YY_STACK_PRINT(Bottom, Top) \ do { \ if (yydebug) \ yy_stack_print ((Bottom), (Top)); \ } while (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++) { YYFPRINTF (stderr, " $%d = ", yyi + 1); yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], &(yyvsp[(yyi + 1) - (yynrhs)]) ); YYFPRINTF (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 lookahead symbol. */ int yychar; /* The semantic value of the lookahead symbol. */ YYSTYPE yylval; /* Number of syntax errors so far. */ int yynerrs; /*-------------------------. | yyparse or yypush_parse. | `-------------------------*/ #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; /* Number of tokens to shift before error messages enabled. */ int yyerrstatus; /* The stacks and their tools: `yyss': related to states. `yyvs': related to semantic values. Refer to the stacks thru separate pointers, to allow yyoverflow to reallocate them elsewhere. */ /* The state stack. */ yytype_int16 yyssa[YYINITDEPTH]; yytype_int16 *yyss; yytype_int16 *yyssp; /* The semantic value stack. */ YYSTYPE yyvsa[YYINITDEPTH]; YYSTYPE *yyvs; YYSTYPE *yyvsp; YYSIZE_T yystacksize; int yyn; int yyresult; /* Lookahead token as an internal (translated) token number. */ int yytoken; /* The variables used to return semantic value and location from the action routines. */ YYSTYPE yyval; #if YYERROR_VERBOSE /* Buffer for error messages, and its allocated size. */ char yymsgbuf[128]; char *yymsg = yymsgbuf; YYSIZE_T yymsg_alloc = sizeof yymsgbuf; #endif #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) /* The number of symbols on the RHS of the reduced rule. Keep to zero when no symbol should be popped. */ int yylen = 0; yytoken = 0; yyss = yyssa; yyvs = yyvsa; yystacksize = YYINITDEPTH; 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_alloc, yyss); YYSTACK_RELOCATE (yyvs_alloc, 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)); if (yystate == YYFINAL) YYACCEPT; goto yybackup; /*-----------. | yybackup. | `-----------*/ yybackup: /* Do appropriate processing given the current state. Read a lookahead token if we need one and don't already have one. */ /* First try to decide what to do without reference to lookahead token. */ yyn = yypact[yystate]; if (yyn == YYPACT_NINF) goto yydefault; /* Not known => get a lookahead token if don't already have one. */ /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead 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; } /* Count tokens shifted since error; after three, turn off error status. */ if (yyerrstatus) yyerrstatus--; /* Shift the lookahead token. */ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); /* Discard the shifted token. */ 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 4: /* Line 1455 of yacc.c */ #line 69 "gram.y" { start_stmts = (yyvsp[(3) - (4)].lst); } break; case 5: /* Line 1455 of yacc.c */ #line 71 "gram.y" { startrules = (yyvsp[(3) - (4)].lst); } break; case 6: /* Line 1455 of yacc.c */ #line 73 "gram.y" { namerules = (yyvsp[(3) - (4)].lst); } break; case 7: /* Line 1455 of yacc.c */ #line 75 "gram.y" { define_state ((yyvsp[(2) - (5)].node), NULL, (yyvsp[(4) - (5)].lst)); } break; case 8: /* Line 1455 of yacc.c */ #line 77 "gram.y" { define_state ((yyvsp[(2) - (7)].node), (yyvsp[(4) - (7)].node), (yyvsp[(6) - (7)].lst)); } break; case 9: /* Line 1455 of yacc.c */ #line 78 "gram.y" { list_append (global_stmts, (yyvsp[(1) - (1)].stmt)); } break; case 10: /* Line 1455 of yacc.c */ #line 81 "gram.y" { (yyval.lst) = list (); } break; case 11: /* Line 1455 of yacc.c */ #line 83 "gram.y" { list_append ((yyvsp[(1) - (4)].lst), cons ((yyvsp[(2) - (4)].node), (yyvsp[(3) - (4)].node))); } break; case 12: /* Line 1455 of yacc.c */ #line 86 "gram.y" { (yyval.lst) = list (); } break; case 13: /* Line 1455 of yacc.c */ #line 87 "gram.y" { list_append ((yyvsp[(1) - (2)].lst), (yyvsp[(2) - (2)].cons)); } break; case 14: /* Line 1455 of yacc.c */ #line 89 "gram.y" { (yyval.cons) = cons (RULE_BEGIN, (yyvsp[(3) - (4)].lst)); } break; case 15: /* Line 1455 of yacc.c */ #line 90 "gram.y" { (yyval.cons) = cons (RULE_END, (yyvsp[(3) - (4)].lst)); } break; case 16: /* Line 1455 of yacc.c */ #line 91 "gram.y" { (yyval.cons) = cons ((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].lst)); } break; case 17: /* Line 1455 of yacc.c */ #line 92 "gram.y" { (yyval.cons) = cons ((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].lst)); } break; case 18: /* Line 1455 of yacc.c */ #line 95 "gram.y" { (yyval.lst) = list (); } break; case 19: /* Line 1455 of yacc.c */ #line 96 "gram.y" { (yyval.lst) = (yyvsp[(1) - (1)].lst); } break; case 20: /* Line 1455 of yacc.c */ #line 99 "gram.y" { (yyval.lst) = list (); list_append ((yyval.lst), (yyvsp[(1) - (1)].node)); } break; case 21: /* Line 1455 of yacc.c */ #line 100 "gram.y" { list_append ((yyvsp[(1) - (3)].lst), (yyvsp[(3) - (3)].node)); } break; case 22: /* Line 1455 of yacc.c */ #line 103 "gram.y" { (yyval.lst) = list (); } break; case 23: /* Line 1455 of yacc.c */ #line 104 "gram.y" { (yyval.lst) = (yyvsp[(2) - (3)].lst); } break; case 24: /* Line 1455 of yacc.c */ #line 107 "gram.y" { (yyval.lst) = list (); list_append ((yyval.lst), (yyvsp[(1) - (1)].cons)); } break; case 25: /* Line 1455 of yacc.c */ #line 108 "gram.y" { list_append ((yyvsp[(1) - (3)].lst), (yyvsp[(3) - (3)].cons)); } break; case 26: /* Line 1455 of yacc.c */ #line 111 "gram.y" { (yyval.cons) = cons ((yyvsp[(1) - (1)].node), NULL); } break; case 27: /* Line 1455 of yacc.c */ #line 112 "gram.y" { (yyval.cons) = cons ((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].expr)); } break; case 28: /* Line 1455 of yacc.c */ #line 115 "gram.y" { (yyval.lst) = list (); } break; case 29: /* Line 1455 of yacc.c */ #line 116 "gram.y" { list_append ((yyvsp[(1) - (2)].lst), (yyvsp[(2) - (2)].stmt)); } break; case 30: /* Line 1455 of yacc.c */ #line 119 "gram.y" { (yyval.stmt) = mk_stmt (sRETURN, NULL, NULL, NULL, NULL); } break; case 31: /* Line 1455 of yacc.c */ #line 121 "gram.y" { (yyval.stmt) = mk_stmt (sRETURN, (yyvsp[(2) - (3)].expr), NULL, NULL, NULL); } break; case 32: /* Line 1455 of yacc.c */ #line 124 "gram.y" { (yyval.stmt) = mk_stmt (sDEFSUB, (yyvsp[(2) - (9)].node), cons (cons ((yyvsp[(4) - (9)].lst), (yyvsp[(7) - (9)].lst)), (yyvsp[(8) - (9)].lst)), NULL, NULL); } break; case 33: /* Line 1455 of yacc.c */ #line 128 "gram.y" { (yyval.stmt) = mk_stmt (sBLOCK, (yyvsp[(2) - (3)].lst), NULL, NULL, NULL); } break; case 34: /* Line 1455 of yacc.c */ #line 130 "gram.y" { (yyval.stmt) = mk_stmt (sIF, (yyvsp[(3) - (5)].expr), (yyvsp[(5) - (5)].stmt), NULL, NULL); } break; case 35: /* Line 1455 of yacc.c */ #line 133 "gram.y" { (yyval.stmt) = mk_stmt (sIF, (yyvsp[(3) - (7)].expr), (yyvsp[(5) - (7)].stmt), (yyvsp[(7) - (7)].stmt), NULL); } break; case 36: /* Line 1455 of yacc.c */ #line 135 "gram.y" { (yyval.stmt) = mk_stmt (sWHILE, (yyvsp[(3) - (5)].expr), (yyvsp[(5) - (5)].stmt), NULL, NULL); } break; case 37: /* Line 1455 of yacc.c */ #line 138 "gram.y" { (yyval.stmt) = mk_stmt (sFOR, (yyvsp[(3) - (9)].expr), (yyvsp[(5) - (9)].expr), (yyvsp[(7) - (9)].expr), (yyvsp[(9) - (9)].stmt)); } break; case 38: /* Line 1455 of yacc.c */ #line 140 "gram.y" { (yyval.stmt) = mk_stmt (sEXPR, (yyvsp[(1) - (2)].expr), NULL, NULL, NULL); } break; case 39: /* Line 1455 of yacc.c */ #line 144 "gram.y" { (yyval.expr) = mk_expr (eSTRING, (yyvsp[(1) - (1)].node), NULL, NULL); } break; case 40: /* Line 1455 of yacc.c */ #line 146 "gram.y" { (yyval.expr) = mk_expr (eREGEXP, (yyvsp[(1) - (1)].node), NULL, NULL); } break; case 41: /* Line 1455 of yacc.c */ #line 148 "gram.y" { (yyval.expr) = mk_expr (eINTEGER, (yyvsp[(1) - (1)].node), NULL, NULL); } break; case 42: /* Line 1455 of yacc.c */ #line 150 "gram.y" { (yyval.expr) = mk_expr (eREAL, (yyvsp[(1) - (1)].node), NULL, NULL); } break; case 43: /* Line 1455 of yacc.c */ #line 152 "gram.y" { (yyval.expr) = mk_expr (eSYMBOL, (yyvsp[(1) - (1)].node), NULL, NULL); } break; case 44: /* Line 1455 of yacc.c */ #line 154 "gram.y" { (yyval.expr) = mk_expr (eNOT, (yyvsp[(2) - (2)].expr), NULL, NULL); } break; case 45: /* Line 1455 of yacc.c */ #line 156 "gram.y" { (yyval.expr) = mk_expr (eAND, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr), NULL); } break; case 46: /* Line 1455 of yacc.c */ #line 157 "gram.y" { (yyval.expr) = mk_expr (eOR, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr), NULL); } break; case 47: /* Line 1455 of yacc.c */ #line 158 "gram.y" { (yyval.expr) = mk_expr (eFCALL, (yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].lst), NULL); } break; case 48: /* Line 1455 of yacc.c */ #line 160 "gram.y" { (yyval.expr) = mk_expr (eASSIGN, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].expr), NULL); } break; case 49: /* Line 1455 of yacc.c */ #line 162 "gram.y" { (yyval.expr) = mk_expr (eADDASSIGN, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].expr), NULL); } break; case 50: /* Line 1455 of yacc.c */ #line 164 "gram.y" { (yyval.expr) = mk_expr (eSUBASSIGN, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].expr), NULL); } break; case 51: /* Line 1455 of yacc.c */ #line 166 "gram.y" { (yyval.expr) = mk_expr (eMULASSIGN, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].expr), NULL); } break; case 52: /* Line 1455 of yacc.c */ #line 168 "gram.y" { (yyval.expr) = mk_expr (eDIVASSIGN, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].expr), NULL); } break; case 53: /* Line 1455 of yacc.c */ #line 170 "gram.y" { (yyval.expr) = mk_expr (ePOSTFIXADD, (yyvsp[(1) - (2)].node), NULL, NULL); } break; case 54: /* Line 1455 of yacc.c */ #line 172 "gram.y" { (yyval.expr) = mk_expr (ePOSTFIXSUB, (yyvsp[(1) - (2)].node), NULL, NULL); } break; case 55: /* Line 1455 of yacc.c */ #line 174 "gram.y" { (yyval.expr) = mk_expr (ePREFIXADD, (yyvsp[(2) - (2)].node), NULL, NULL); } break; case 56: /* Line 1455 of yacc.c */ #line 176 "gram.y" { (yyval.expr) = mk_expr (ePREFIXSUB, (yyvsp[(2) - (2)].node), NULL, NULL); } break; case 57: /* Line 1455 of yacc.c */ #line 178 "gram.y" { (yyval.expr) = mk_expr (eARRAYASSIGN, (yyvsp[(1) - (6)].expr), (yyvsp[(3) - (6)].expr), (yyvsp[(6) - (6)].expr)); } break; case 58: /* Line 1455 of yacc.c */ #line 180 "gram.y" { (yyval.expr) = (yyvsp[(2) - (3)].expr); } break; case 59: /* Line 1455 of yacc.c */ #line 181 "gram.y" { (yyval.expr) = mk_expr (eARRAYREF, (yyvsp[(1) - (4)].expr), (yyvsp[(3) - (4)].expr), NULL); } break; case 60: /* Line 1455 of yacc.c */ #line 183 "gram.y" { (yyval.expr) = mk_expr (eQUESTCOLON, (yyvsp[(1) - (5)].expr), (yyvsp[(3) - (5)].expr), (yyvsp[(5) - (5)].expr)); } break; case 61: /* Line 1455 of yacc.c */ #line 185 "gram.y" { (yyval.expr) = mk_expr (eMULT, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr), NULL); } break; case 62: /* Line 1455 of yacc.c */ #line 186 "gram.y" { (yyval.expr) = mk_expr (eDIV, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr), NULL); } break; case 63: /* Line 1455 of yacc.c */ #line 187 "gram.y" { (yyval.expr) = mk_expr (ePLUS, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr), NULL); } break; case 64: /* Line 1455 of yacc.c */ #line 188 "gram.y" { (yyval.expr) = mk_expr (eMINUS, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr), NULL); } break; case 65: /* Line 1455 of yacc.c */ #line 190 "gram.y" { (yyval.expr) = mk_expr (eLT, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr), NULL); } break; case 66: /* Line 1455 of yacc.c */ #line 191 "gram.y" { (yyval.expr) = mk_expr (eGT, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr), NULL); } break; case 67: /* Line 1455 of yacc.c */ #line 192 "gram.y" { (yyval.expr) = mk_expr (eEQ, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr), NULL); } break; case 68: /* Line 1455 of yacc.c */ #line 193 "gram.y" { (yyval.expr) = mk_expr (eNE, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr), NULL); } break; case 69: /* Line 1455 of yacc.c */ #line 194 "gram.y" { (yyval.expr) = mk_expr (eGE, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr), NULL); } break; case 70: /* Line 1455 of yacc.c */ #line 195 "gram.y" { (yyval.expr) = mk_expr (eLE, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr), NULL); } break; case 71: /* Line 1455 of yacc.c */ #line 198 "gram.y" { (yyval.expr) = NULL; } break; case 72: /* Line 1455 of yacc.c */ #line 199 "gram.y" { (yyval.expr) = (yyvsp[(1) - (1)].expr); } break; case 73: /* Line 1455 of yacc.c */ #line 202 "gram.y" { (yyval.lst) = list (); } break; case 74: /* Line 1455 of yacc.c */ #line 203 "gram.y" { (yyval.lst) = (yyvsp[(1) - (1)].lst); } break; case 75: /* Line 1455 of yacc.c */ #line 206 "gram.y" { (yyval.lst) = list (); list_append ((yyval.lst), (yyvsp[(1) - (1)].expr)); } break; case 76: /* Line 1455 of yacc.c */ #line 207 "gram.y" { list_append ((yyvsp[(1) - (3)].lst), (yyvsp[(3) - (3)].expr)); } break; /* Line 1455 of yacc.c */ #line 2188 "gram.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 lookahead token after an error, discard it. */ if (yychar <= YYEOF) { /* Return failure if at end of input. */ if (yychar == YYEOF) YYABORT; } else { yydestruct ("Error: discarding", yytoken, &yylval); yychar = YYEMPTY; } } /* Else will try to reuse lookahead token after shifting the error token. */ goto yyerrlab1; /*---------------------------------------------------. | yyerrorlab -- error raised explicitly by YYERROR. | `---------------------------------------------------*/ yyerrorlab: /* Pacify compilers 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); } *++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; #if !defined(yyoverflow) || YYERROR_VERBOSE /*-------------------------------------------------. | yyexhaustedlab -- memory exhaustion comes here. | `-------------------------------------------------*/ yyexhaustedlab: yyerror (YY_("memory exhausted")); yyresult = 2; /* Fall through. */ #endif yyreturn: if (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 1675 of yacc.c */ #line 210 "gram.y" void yyerror (msg) char *msg; { fprintf (stderr, "%s:%d: %s\n", yyin_name, linenum, msg); } enscript-1.6.5.90/states/Makefile.in0000644000175000017500000006455011606344074014111 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 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 states. # Copyright (c) 1997-2003 Markku Rossi # # Author: Markku Rossi # # # This file is part of GNU Enscript. # # Enscript is free software: you can redistribute 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. # # Enscript is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Enscript. If not, see . # VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ bin_PROGRAMS = states$(EXEEXT) subdir = states DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in TODO gram.c gram.h lex.c ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc2.m4 \ $(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intdiv0.m4 $(top_srcdir)/m4/intl.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/intmax.m4 \ $(top_srcdir)/m4/inttypes-pri.m4 \ $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/lcmessage.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/lock.m4 \ $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/printf-posix.m4 \ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/size_max.m4 \ $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/uintmax_t.m4 \ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/wchar_t.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xsize.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)" PROGRAMS = $(bin_PROGRAMS) am_states_OBJECTS = main.$(OBJEXT) utils.$(OBJEXT) prims.$(OBJEXT) \ process.$(OBJEXT) gram.$(OBJEXT) lex.$(OBJEXT) states_OBJECTS = $(am_states_OBJECTS) states_LDADD = $(LDADD) am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' SCRIPTS = $(bin_SCRIPTS) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ LEXCOMPILE = $(LEX) $(LFLAGS) $(AM_LFLAGS) YLWRAP = $(top_srcdir)/ylwrap YACCCOMPILE = $(YACC) $(YFLAGS) $(AM_YFLAGS) SOURCES = $(states_SOURCES) DIST_SOURCES = $(states_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive HEADERS = $(noinst_HEADERS) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GENCAT = @GENCAT@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GLIBC2 = @GLIBC2@ GLIBC21 = @GLIBC21@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ HAVE_ASPRINTF = @HAVE_ASPRINTF@ HAVE_POSIX_PRINTF = @HAVE_POSIX_PRINTF@ HAVE_SNPRINTF = @HAVE_SNPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WPRINTF = @HAVE_WPRINTF@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLBISON = @INTLBISON@ INTLLIBS = @INTLLIBS@ INTLOBJS = @INTLOBJS@ INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTHREAD = @LIBTHREAD@ LTLIBC = @LTLIBC@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ MAKEINFO = @MAKEINFO@ MEDIA = @MEDIA@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ POSUB = @POSUB@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ PSLEVEL = @PSLEVEL@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SPOOLER = @SPOOLER@ STRIP = @STRIP@ U = @U@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WINDRES = @WINDRES@ WOE32 = @WOE32@ WOE32DLL = @WOE32DLL@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ YACC = @YACC@ YFLAGS = @YFLAGS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = $(datadir)/locale 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@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = hl tests AUTOMAKE_OPTIONS = states_SOURCES = main.c utils.c prims.c process.c gram.y lex.l states_SOURCES_windelta = \ -gram.y \ +gram.c \ -lex.l \ +lex.c LDADD = ../afmlib/libafm.a @LIBINTL@ ../compat/libcompat.a @LEXLIB@ states_DEPENDENCIES = ../compat/libcompat.a noinst_HEADERS = defs.h gram.h EXTRA_DIST = ChangeLog.old TODO over.in enscript.el bin_SCRIPTS = over CLEANFILES = $(bin_SCRIPTS) AM_YFLAGS = -d INCLUDES = -I$(srcdir)/../compat -I$(srcdir)/../afmlib \ -I$(srcdir)/../intl -I../intl -DLOCALEDIR=\"$(localedir)\" INCLUDES_windelta = \ +-I../w32 \ --DLOCALEDIR=\"$(localedir)\" all: all-recursive .SUFFIXES: .SUFFIXES: .c .l .o .obj .y $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu states/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu states/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 $(am__aclocal_m4_deps): install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p; \ then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) gram.h: gram.c @if test ! -f $@; then \ rm -f gram.c; \ $(MAKE) $(AM_MAKEFLAGS) gram.c; \ else :; fi states$(EXEEXT): $(states_OBJECTS) $(states_DEPENDENCIES) @rm -f states$(EXEEXT) $(LINK) $(states_OBJECTS) $(states_LDADD) $(LIBS) install-binSCRIPTS: $(bin_SCRIPTS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n' \ -e 'h;s|.*|.|' \ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) { files[d] = files[d] " " $$1; \ if (++n[d] == $(am__install_max)) { \ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ else { print "f", d "/" $$4, $$1 } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binSCRIPTS: @$(NORMAL_UNINSTALL) @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 's,.*/,,;$(transform)'`; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gram.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lex.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prims.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/process.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/utils.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @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@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @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) '$<'` .l.c: $(am__skiplex) $(SHELL) $(YLWRAP) $< $(LEX_OUTPUT_ROOT).c $@ -- $(LEXCOMPILE) .y.c: $(am__skipyacc) $(SHELL) $(YLWRAP) $< y.tab.c $@ y.tab.h $*.h y.output $*.output -- $(YACCCOMPILE) # 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): @fail= 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; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= 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; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__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; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ 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; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) 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; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" 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)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(PROGRAMS) $(SCRIPTS) $(HEADERS) 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: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -rm -f gram.c -rm -f gram.h -rm -f lex.c clean: clean-recursive clean-am: clean-binPROGRAMS clean-generic mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-binPROGRAMS install-binSCRIPTS install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-binSCRIPTS .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-binPROGRAMS \ clean-generic ctags ctags-recursive distclean \ distclean-compile distclean-generic distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-binPROGRAMS install-binSCRIPTS install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am uninstall-binPROGRAMS \ uninstall-binSCRIPTS over: $(srcdir)/over.in sed 's%@LIBRARYDIR@%$(datadir)/enscript%g' \ $(srcdir)/over.in > over # 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: enscript-1.6.5.90/states/process.c0000644000175000017500000001631611133214772013657 00000000000000/* * Process input according to the specified rules. * Copyright (c) 1997-1999 Markku Rossi. * * Author: Markku Rossi */ /* * This file is part of GNU Enscript. * * Enscript is free software: you can redistribute 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. * * Enscript is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Enscript. If not, see . */ #include "defs.h" /* * Prototypes for static functions. */ /* * Evaluate the begin rules of state . The begin rules are * evaluated from parent to child. */ static Node *eval_begin_rules ___P ((State *state, int *return_seen)); /* * Evaluate the end rules of state . The end rules are * evaluated from child to parent. */ static Node *eval_end_rules ___P ((State *state, int *found_return)); /* * Global functions. */ void process_file (fname) char *fname; { Node *result; int return_seen = 0; start_state = NULL; current_fname = fname; current_linenum = 1; /* Init buffer variables. */ data_in_buffer = 0; bufpos = 0; eof_seen = 0; /* Enter build-in variables. */ enter_system_variable ("filename", fname); /* Read in the first block of data. */ data_in_buffer = fread (inbuf, 1, INBUFSIZE, ifp); if (data_in_buffer < INBUFSIZE) eof_seen = 1; if (start_state_arg) start_state = start_state_arg; /* Execute start block. */ result = eval_statement_list (start_stmts, NULL, &return_seen); node_free (result); if (start_state == NULL) { /* No start state found, copy our input to output. */ while (data_in_buffer) { fwrite (inbuf, 1, data_in_buffer, ofp); data_in_buffer = fread (inbuf, 1, INBUFSIZE, ifp); } } else { result = execute_state (start_state); node_free (result); } } Node * execute_state (name) char *name; { State *state; State *s; int to_read, got; ListItem *rule, *first_rule; unsigned int first_idx; unsigned int match_len; Node *result = nvoid; Cons *r; Node *exp; int return_seen = 0; int idx; /* Lookup state. */ state = lookup_state (name); if (state == NULL) { fprintf (stderr, _("%s: undefined state `%s'\n"), program, name); exit (1); } /* Begin rules. */ result = eval_begin_rules (state, &return_seen); if (return_seen) goto out; /* Execute this state. */ while (1) { int eol; /* Do we have enough data? */ if (bufpos >= data_in_buffer) { if (eof_seen) /* All done. */ break; /* Read more data. */ data_in_buffer = fread (inbuf, 1, INBUFSIZE, ifp); if (data_in_buffer < INBUFSIZE) eof_seen = 1; bufpos = 0; continue; } /* Check line number. */ if (bufpos > 0 && inbuf[bufpos - 1] == '\n') current_linenum++; /* Find the end of the input line. */ for (eol = bufpos; eol < data_in_buffer && inbuf[eol] != '\n'; eol++) ; if (eol < data_in_buffer && inbuf[eol] == '\n') eol++; if (eol >= data_in_buffer && !eof_seen && bufpos > 0) { /* Must read more data to the buffer. */ memmove (inbuf, inbuf + bufpos, eol - bufpos); data_in_buffer = eol - bufpos; bufpos = 0; to_read = INBUFSIZE - data_in_buffer; got = fread (inbuf + data_in_buffer, 1, to_read, ifp); if (got < to_read) eof_seen = 1; data_in_buffer += got; continue; } /* Evaluate state expressions. */ first_idx = eol; match_len = 0; first_rule = NULL; current_match = NULL; for (s = state; s; s = s->super) { for (rule = s->rules->head; rule; rule = rule->next) { int err; r = (Cons *) rule->data; exp = (Node *) r->car; if (exp == RULE_BEGIN || exp == RULE_END) continue; if (exp->type == nSYMBOL) { Node *n; /* Lookup this variable by hand from global variables. */ if (!strhash_get (ns_vars, exp->u.sym, strlen (exp->u.sym), (void **) &n)) { fprintf (stderr, _("%s: error: undefined variable `%s'\n"), program, exp->u.sym); exit (1); } if (n->type != nREGEXP) /* Skip this rule */ continue; exp = n; } err = re_search (REGEXP (exp), inbuf, eol, bufpos, eol - bufpos, &exp->u.re.matches); if (err < 0) /* No mach. */ continue; idx = exp->u.re.matches.start[0]; if (idx >= 0 && (idx < first_idx || (idx == first_idx && (exp->u.re.matches.end[0] - exp->u.re.matches.start[0] > match_len)))) { first_idx = idx; first_rule = rule; match_len = (exp->u.re.matches.end[0] - exp->u.re.matches.start[0]); current_match = &exp->u.re.matches; current_match_buf = inbuf; } } } /* Print all data before the first rule. */ fwrite (inbuf + bufpos, 1, first_idx - bufpos, ofp); if (first_rule) { /* Execute statements. */ bufpos = current_match->end[0]; node_free (result); result = eval_statement_list ((List *) ((Cons *) first_rule->data)->cdr, NULL, &return_seen); if (return_seen) goto out; } else bufpos = first_idx; } out: /* End rules. */ { int found = 0; Node *result2; result2 = eval_end_rules (state, &found); if (found) { node_free (result); result = result2; } } return result; } /* * Static functions. */ static Node * eval_begin_rules (state, return_seen) State *state; int *return_seen; { Node *result = nvoid; Cons *r; ListItem *rule; /* The begin rules are evaluated from the parent to child. */ /* Autoload the super if needed. */ if (state->super_name && state->super == NULL) { state->super = lookup_state (state->super_name); if (state->super == NULL) { fprintf (stderr, _("%s: undefined super state `%s'\n"), program, state->super_name); exit (1); } } if (state->super) { result = eval_begin_rules (state->super, return_seen); if (*return_seen) return result; } /* Eval our begin rule. */ for (rule = state->rules->head; rule; rule = rule->next) { r = (Cons *) rule->data; if (r->car == RULE_BEGIN) { node_free (result); result = eval_statement_list ((List *) r->cdr, NULL, return_seen); if (*return_seen) break; } } return result; } static Node * eval_end_rules (state, found_return) State *state; int *found_return; { ListItem *rule; Cons *r; Node *result = nvoid; int return_seen; /* The end rules are evaluated from child to parent. */ for (; state; state = state->super) for (rule = state->rules->head; rule; rule = rule->next) { r = (Cons *) rule->data; if (r->car == RULE_END) { *found_return = 1; node_free (result); result = eval_statement_list ((List *) r->cdr, NULL, &return_seen); } } return result; } enscript-1.6.5.90/states/over.in0000644000175000017500000000014311401303365013322 00000000000000#!/bin/sh librarydir=@LIBRARYDIR@ enscript -E -p- --quiet --language=overstrike "$@" 2>&1 | less enscript-1.6.5.90/88595.txt0000644000175000017500000001537011132443251011767 00000000000000 IS0-8859-5 (ISO Cyrillic) character set octal hex PostScript HTML entity character ---------------------------------------------------------------------- 000 0x00 non-printable \000 001 0x01 non-printable \001 002 0x02 non-printable \002 003 0x03 non-printable \003 004 0x04 non-printable \004 005 0x05 non-printable \005 006 0x06 non-printable \006 007 0x07 non-printable \007 010 0x08 non-printable \010 011 0x09 non-printable \011 012 0x0a non-printable \012 013 0x0b non-printable \013 014 0x0c non-printable \014 015 0x0d non-printable \015 016 0x0e non-printable \016 017 0x0f non-printable \017 020 0x10 non-printable \020 021 0x11 non-printable \021 022 0x12 non-printable \022 023 0x13 non-printable \023 024 0x14 non-printable \024 025 0x15 non-printable \025 026 0x16 non-printable \026 027 0x17 non-printable \027 030 0x18 non-printable \030 031 0x19 non-printable \031 032 0x1a non-printable \032 033 0x1b non-printable \033 034 0x1c non-printable \034 035 0x1d non-printable \035 036 0x1e non-printable \036 037 0x1f non-printable \037 040 0x20 /space 041 0x21 /exclam ! 042 0x22 /quotedbl " " 043 0x23 /numbersign # 044 0x24 /dollar $ 045 0x25 /percent % 046 0x26 /ampersand & & 047 0x27 /quoteright ' 050 0x28 /parenleft ( 051 0x29 /parenright ) 052 0x2a /asterisk * 053 0x2b /plus + 054 0x2c /comma , 055 0x2d /minus - 056 0x2e /period . 057 0x2f /slash / 060 0x30 /zero 0 061 0x31 /one 1 062 0x32 /two 2 063 0x33 /three 3 064 0x34 /four 4 065 0x35 /five 5 066 0x36 /six 6 067 0x37 /seven 7 070 0x38 /eight 8 071 0x39 /nine 9 072 0x3a /colon : 073 0x3b /semicolon ; 074 0x3c /less < < 075 0x3d /equal = 076 0x3e /greater > > 077 0x3f /question ? 0100 0x40 /at @ 0101 0x41 /A A 0102 0x42 /B B 0103 0x43 /C C 0104 0x44 /D D 0105 0x45 /E E 0106 0x46 /F F 0107 0x47 /G G 0110 0x48 /H H 0111 0x49 /I I 0112 0x4a /J J 0113 0x4b /K K 0114 0x4c /L L 0115 0x4d /M M 0116 0x4e /N N 0117 0x4f /O O 0120 0x50 /P P 0121 0x51 /Q Q 0122 0x52 /R R 0123 0x53 /S S 0124 0x54 /T T 0125 0x55 /U U 0126 0x56 /V V 0127 0x57 /W W 0130 0x58 /X X 0131 0x59 /Y Y 0132 0x5a /Z Z 0133 0x5b /bracketleft [ 0134 0x5c /backslash \ 0135 0x5d /bracketright ] 0136 0x5e /asciicircum ^ 0137 0x5f /underscore _ 0140 0x60 /quoteleft ` 0141 0x61 /a a 0142 0x62 /b b 0143 0x63 /c c 0144 0x64 /d d 0145 0x65 /e e 0146 0x66 /f f 0147 0x67 /g g 0150 0x68 /h h 0151 0x69 /i i 0152 0x6a /j j 0153 0x6b /k k 0154 0x6c /l l 0155 0x6d /m m 0156 0x6e /n n 0157 0x6f /o o 0160 0x70 /p p 0161 0x71 /q q 0162 0x72 /r r 0163 0x73 /s s 0164 0x74 /t t 0165 0x75 /u u 0166 0x76 /v v 0167 0x77 /w w 0170 0x78 /x x 0171 0x79 /y y 0172 0x7a /z z 0173 0x7b /braceleft { 0174 0x7c /bar | 0175 0x7d /braceright } 0176 0x7e /tilde ~ 0177 0x7f non-printable \177 0200 0x80 non-printable \200 0201 0x81 non-printable \201 0202 0x82 non-printable \202 0203 0x83 non-printable \203 0204 0x84 non-printable \204 0205 0x85 non-printable \205 0206 0x86 non-printable \206 0207 0x87 non-printable \207 0210 0x88 non-printable \210 0211 0x89 non-printable \211 0212 0x8a non-printable \212 0213 0x8b non-printable \213 0214 0x8c non-printable \214 0215 0x8d non-printable \215 0216 0x8e non-printable \216 0217 0x8f non-printable \217 0220 0x90 non-printable \220 0221 0x91 non-printable \221 0222 0x92 non-printable \222 0223 0x93 non-printable \223 0224 0x94 non-printable \224 0225 0x95 non-printable \225 0226 0x96 non-printable \226 0227 0x97 non-printable \227 0230 0x98 non-printable \230 0231 0x99 non-printable \231 0232 0x9a non-printable \232 0233 0x9b non-printable \233 0234 0x9c non-printable \234 0235 0x9d non-printable \235 0236 0x9e non-printable \236 0237 0x9f non-printable \237 0240 0xa0 /space   0241 0xa1 /afii10023 ¡ 0242 0xa2 /afii10051 ¢ 0243 0xa3 /afii10052 £ 0244 0xa4 /afii10053 ¤ 0245 0xa5 /afii10054 ¥ 0246 0xa6 /afii10055 ¦ 0247 0xa7 /afii10056 § 0250 0xa8 /afii10057 ¨ 0251 0xa9 /afii10058 © 0252 0xaa /afii10059 ª 0253 0xab /afii10060 « 0254 0xac /afii10061 ¬ 0255 0xad /hyphen ­ 0256 0xae /afii10062 ® 0257 0xaf /afii10145 ¯ 0260 0xb0 /afii10017 ° 0261 0xb1 /afii10018 ± 0262 0xb2 /afii10019 ² 0263 0xb3 /afii10020 ³ 0264 0xb4 /afii10021 ´ 0265 0xb5 /afii10022 µ 0266 0xb6 /afii10024 ¶ 0267 0xb7 /afii10025 · 0270 0xb8 /afii10026 ¸ 0271 0xb9 /afii10027 ¹ 0272 0xba /afii10028 º 0273 0xbb /afii10029 » 0274 0xbc /afii10030 ¼ 0275 0xbd /afii10031 ½ 0276 0xbe /afii10032 ¾ 0277 0xbf /afii10033 ¿ 0300 0xc0 /afii10034 À À 0301 0xc1 /afii10035 Á Á 0302 0xc2 /afii10036   0303 0xc3 /afii10037 à à 0304 0xc4 /afii10038 Ä Ä 0305 0xc5 /afii10039 Å Å 0306 0xc6 /afii10040 Æ Æ 0307 0xc7 /afii10041 Ç Ç 0310 0xc8 /afii10042 È È 0311 0xc9 /afii10043 É É 0312 0xca /afii10044 Ê Ê 0313 0xcb /afii10045 Ë Ë 0314 0xcc /afii10046 Ì Ì 0315 0xcd /afii10047 Í Í 0316 0xce /afii10048 Î Î 0317 0xcf /afii10049 Ï Ï 0320 0xd0 /afii10065 Ð Ð 0321 0xd1 /afii10066 Ñ Ñ 0322 0xd2 /afii10067 Ò Ò 0323 0xd3 /afii10068 Ó Ó 0324 0xd4 /afii10069 Ô Ô 0325 0xd5 /afii10070 Õ Õ 0326 0xd6 /afii10072 Ö Ö 0327 0xd7 /afii10073 × 0330 0xd8 /afii10074 Ø Ø 0331 0xd9 /afii10075 Ù Ù 0332 0xda /afii10076 Ú Ú 0333 0xdb /afii10077 Û Û 0334 0xdc /afii10078 Ü Ü 0335 0xdd /afii10079 Ý Ý 0336 0xde /afii10080 Þ Þ 0337 0xdf /afii10081 ß ß 0340 0xe0 /afii10082 à à 0341 0xe1 /afii10083 á á 0342 0xe2 /afii10084 â â 0343 0xe3 /afii10085 ã ã 0344 0xe4 /afii10086 ä ä 0345 0xe5 /afii10087 å å 0346 0xe6 /afii10088 æ æ 0347 0xe7 /afii10089 ç ç 0350 0xe8 /afii10090 è è 0351 0xe9 /afii10091 é é 0352 0xea /afii10092 ê ê 0353 0xeb /afii10093 ë ë 0354 0xec /afii10094 ì ì 0355 0xed /afii10095 í í 0356 0xee /afii10096 î î 0357 0xef /afii10097 ï ï 0360 0xf0 /afii61352 ð ð 0361 0xf1 /afii10071 ñ ñ 0362 0xf2 /afii10099 ò ò 0363 0xf3 /afii10100 ó ó 0364 0xf4 /afii10101 ô ô 0365 0xf5 /afii10102 õ õ 0366 0xf6 /afii10103 ö ö 0367 0xf7 /afii10104 ÷ 0370 0xf8 /afii10105 ø ø 0371 0xf9 /afii10106 ù ù 0372 0xfa /afii10107 ú ú 0373 0xfb /afii10108 û û 0374 0xfc /afii10109 ü ü 0375 0xfd /yacute ý ý 0376 0xfe /afii10110 þ þ 0377 0xff /afii10193 ÿ ÿ enscript-1.6.5.90/config.h.in0000644000175000017500000003132011606344072012547 00000000000000/* config.h.in. Generated from configure.ac by autoheader. */ /* 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 /* Define to 1 if translation of program messages to the user's native language is requested. */ #undef ENABLE_NLS /* 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 `argz_count' function. */ #undef HAVE_ARGZ_COUNT /* Define to 1 if you have the header file. */ #undef HAVE_ARGZ_H /* Define to 1 if you have the `argz_next' function. */ #undef HAVE_ARGZ_NEXT /* Define to 1 if you have the `argz_stringify' function. */ #undef HAVE_ARGZ_STRINGIFY /* Define to 1 if you have the `asprintf' function. */ #undef HAVE_ASPRINTF /* Define to 1 if the compiler understands __builtin_expect. */ #undef HAVE_BUILTIN_EXPECT /* Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the CoreFoundation framework. */ #undef HAVE_CFLOCALECOPYCURRENT /* Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in the CoreFoundation framework. */ #undef HAVE_CFPREFERENCESCOPYAPPVALUE /* Define if the GNU dcgettext() function is already present or preinstalled. */ #undef HAVE_DCGETTEXT /* Define to 1 if you have the declaration of `feof_unlocked', and to 0 if you don't. */ #undef HAVE_DECL_FEOF_UNLOCKED /* Define to 1 if you have the declaration of `fgets_unlocked', and to 0 if you don't. */ #undef HAVE_DECL_FGETS_UNLOCKED /* Define to 1 if you have the declaration of `getc_unlocked', and to 0 if you don't. */ #undef HAVE_DECL_GETC_UNLOCKED /* Define to 1 if you have the declaration of `_snprintf', and to 0 if you don't. */ #undef HAVE_DECL__SNPRINTF /* Define to 1 if you have the declaration of `_snwprintf', and to 0 if you don't. */ #undef HAVE_DECL__SNWPRINTF /* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */ #undef HAVE_DOPRNT /* Define to 1 if you have the `fwprintf' function. */ #undef HAVE_FWPRINTF /* Define to 1 if you have the `getcwd' function. */ #undef HAVE_GETCWD /* Define to 1 if you have the `getegid' function. */ #undef HAVE_GETEGID /* Define to 1 if you have the `geteuid' function. */ #undef HAVE_GETEUID /* Define to 1 if you have the `getgid' function. */ #undef HAVE_GETGID /* Define to 1 if you have the `getpagesize' function. */ #undef HAVE_GETPAGESIZE /* 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 and it works. */ #undef HAVE_ICONV /* Define if you have the 'intmax_t' type in or . */ #undef HAVE_INTMAX_T /* 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 if you have and nl_langinfo(CODESET). */ #undef HAVE_LANGINFO_CODESET /* Define if your file defines LC_MESSAGES. */ #undef HAVE_LC_MESSAGES /* Define to 1 if you have the `socket' library (-lsocket). */ #undef HAVE_LIBSOCKET /* Define to 1 if you have the `sun' library (-lsun). */ #undef HAVE_LIBSUN /* Define to 1 if you have the header file. */ #undef HAVE_LIMITS_H /* Define to 1 if the system has the type `long long int'. */ #undef HAVE_LONG_LONG_INT /* Define to 1 if you have the header file. */ #undef HAVE_MATH_H /* Define to 1 if you have the `memcpy' function. */ #undef HAVE_MEMCPY /* Define to 1 if you have the `memmove' function. */ #undef HAVE_MEMMOVE /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* Define to 1 if you have the `mempcpy' function. */ #undef HAVE_MEMPCPY /* Define to 1 if you have a working `mmap' system call. */ #undef HAVE_MMAP /* Define to 1 if you have the `munmap' function. */ #undef HAVE_MUNMAP /* Define if you have and it defines the NL_LOCALE_NAME macro if _GNU_SOURCE is defined. */ #undef HAVE_NL_LOCALE_NAME /* Define if your printf() function supports format strings with positions. */ #undef HAVE_POSIX_PRINTF /* Define if the defines PTHREAD_MUTEX_RECURSIVE. */ #undef HAVE_PTHREAD_MUTEX_RECURSIVE /* Define if the POSIX multithreading library has read/write locks. */ #undef HAVE_PTHREAD_RWLOCK /* Define to 1 if you have the `putenv' function. */ #undef HAVE_PUTENV /* Define to 1 if you have the header file. */ #undef HAVE_PWD_H /* Define to 1 if you have the `setenv' function. */ #undef HAVE_SETENV /* Define to 1 if you have the `setlocale' function. */ #undef HAVE_SETLOCALE /* Define to 1 if you have the `snprintf' function. */ #undef HAVE_SNPRINTF /* Define to 1 if you have the header file. */ #undef HAVE_STDARG_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 `strcasecmp' function. */ #undef HAVE_STRCASECMP /* Define to 1 if you have the `strchr' function. */ #undef HAVE_STRCHR /* Define to 1 if you have the `strdup' function. */ #undef HAVE_STRDUP /* Define to 1 if you have the `strerror' function. */ #undef HAVE_STRERROR /* 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 `strtoul' function. */ #undef HAVE_STRTOUL /* Define to 1 if you have the header file. */ #undef HAVE_SYS_PARAM_H /* 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_TYPES_H /* Define to 1 if you have the `tsearch' function. */ #undef HAVE_TSEARCH /* Define if you have the 'uintmax_t' type in or . */ #undef HAVE_UINTMAX_T /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Define to 1 if the system has the type `unsigned long long int'. */ #undef HAVE_UNSIGNED_LONG_LONG_INT /* Define to 1 or 0, depending whether the compiler supports simple visibility declarations. */ #undef HAVE_VISIBILITY /* Define to 1 if you have the `vprintf' function. */ #undef HAVE_VPRINTF /* Define if you have the 'wchar_t' type. */ #undef HAVE_WCHAR_T /* Define to 1 if you have the `wcslen' function. */ #undef HAVE_WCSLEN /* Define if you have the 'wint_t' type. */ #undef HAVE_WINT_T /* Define to 1 if you have the `__fsetlocking' function. */ #undef HAVE___FSETLOCKING /* Define as const if the declaration of iconv() needs const. */ #undef ICONV_CONST /* Define if integer division by zero raises signal SIGFPE. */ #undef INTDIV0_RAISES_SIGFPE /* 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 home page for this package. */ #undef PACKAGE_URL /* Define to the version of this package. */ #undef PACKAGE_VERSION /* Character used to separate path components. */ #undef PATH_SEPARATOR /* Character used to separate path components, as string. */ #undef PATH_SEPARATOR_STR /* Define if exists and defines unusable PRI* macros. */ #undef PRI_MACROS_BROKEN /* Define to 1 if the C compiler supports function prototypes. */ #undef PROTOTYPES /* Define if the pthread_in_use() detection is hard. */ #undef PTHREAD_IN_USE_DETECTION_HARD /* Define as the maximum value of type 'size_t', if the system doesn't define it. */ #undef SIZE_MAX /* 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 you have the ANSI C header files. */ #undef STDC_HEADERS /* Define if the POSIX multithreading library can be used. */ #undef USE_POSIX_THREADS /* Define if references to the POSIX multithreading library should be made weak. */ #undef USE_POSIX_THREADS_WEAK /* Define if the GNU Pth multithreading library can be used. */ #undef USE_PTH_THREADS /* Define if references to the GNU Pth multithreading library should be made weak. */ #undef USE_PTH_THREADS_WEAK /* Define if the old Solaris multithreading library can be used. */ #undef USE_SOLARIS_THREADS /* Define if references to the old Solaris multithreading library should be made weak. */ #undef USE_SOLARIS_THREADS_WEAK /* Enable extensions on AIX 3, Interix. */ #ifndef _ALL_SOURCE # undef _ALL_SOURCE #endif /* Enable GNU extensions on systems that have them. */ #ifndef _GNU_SOURCE # undef _GNU_SOURCE #endif /* Enable threading extensions on Solaris. */ #ifndef _POSIX_PTHREAD_SEMANTICS # undef _POSIX_PTHREAD_SEMANTICS #endif /* Enable extensions on HP NonStop. */ #ifndef _TANDEM_SOURCE # undef _TANDEM_SOURCE #endif /* Enable general extensions on Solaris. */ #ifndef __EXTENSIONS__ # undef __EXTENSIONS__ #endif /* Define if the Win32 multithreading API can be used. */ #undef USE_WIN32_THREADS /* 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 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 like PROTOTYPES; this can be used by system headers. */ #undef __PROTOTYPES /* Define to empty if `const' does not conform to ANSI C. */ #undef const /* 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 as the type of the result of subtracting two pointers, if the system doesn't define it. */ #undef ptrdiff_t /* Define to `unsigned int' if does not define. */ #undef size_t /* Define to unsigned long or unsigned long long if and don't define. */ #undef uintmax_t #define __libc_lock_t gl_lock_t #define __libc_lock_define gl_lock_define #define __libc_lock_define_initialized gl_lock_define_initialized #define __libc_lock_init gl_lock_init #define __libc_lock_lock gl_lock_lock #define __libc_lock_unlock gl_lock_unlock #define __libc_lock_recursive_t gl_recursive_lock_t #define __libc_lock_define_recursive gl_recursive_lock_define #define __libc_lock_define_initialized_recursive gl_recursive_lock_define_initialized #define __libc_lock_init_recursive gl_recursive_lock_init #define __libc_lock_lock_recursive gl_recursive_lock_lock #define __libc_lock_unlock_recursive gl_recursive_lock_unlock #define glthread_in_use libintl_thread_in_use #define glthread_lock_init libintl_lock_init #define glthread_lock_lock libintl_lock_lock #define glthread_lock_unlock libintl_lock_unlock #define glthread_lock_destroy libintl_lock_destroy #define glthread_rwlock_init libintl_rwlock_init #define glthread_rwlock_rdlock libintl_rwlock_rdlock #define glthread_rwlock_wrlock libintl_rwlock_wrlock #define glthread_rwlock_unlock libintl_rwlock_unlock #define glthread_rwlock_destroy libintl_rwlock_destroy #define glthread_recursive_lock_init libintl_recursive_lock_init #define glthread_recursive_lock_lock libintl_recursive_lock_lock #define glthread_recursive_lock_unlock libintl_recursive_lock_unlock #define glthread_recursive_lock_destroy libintl_recursive_lock_destroy #define glthread_once libintl_once #define glthread_once_call libintl_once_call #define glthread_once_singlethreaded libintl_once_singlethreaded enscript-1.6.5.90/intl/0000755000175000017500000000000011606344226011554 500000000000000enscript-1.6.5.90/intl/hash-string.c0000644000175000017500000000315111606344057014071 00000000000000/* Implements a string hashing function. Copyright (C) 1995, 1997, 1998, 2000, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H # include #endif /* Specification. */ #include "hash-string.h" /* Defines the so called `hashpjw' function by P.J. Weinberger [see Aho/Sethi/Ullman, COMPILERS: Principles, Techniques and Tools, 1986, 1987 Bell Telephone Laboratories, Inc.] */ unsigned long int __hash_string (const char *str_param) { unsigned long int hval, g; const char *str = str_param; /* Compute the hash value for the given string. */ hval = 0; while (*str != '\0') { hval <<= 4; hval += (unsigned char) *str++; g = hval & ((unsigned long int) 0xf << (HASHWORDBITS - 4)); if (g != 0) { hval ^= g >> (HASHWORDBITS - 8); hval ^= g; } } return hval; } enscript-1.6.5.90/intl/log.c0000644000175000017500000000623111606344060012417 00000000000000/* Log file output. Copyright (C) 2003, 2005 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 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 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* Written by Bruno Haible . */ #ifdef HAVE_CONFIG_H # include #endif #include #include #include /* Handle multi-threaded applications. */ #ifdef _LIBC # include #else # include "lock.h" #endif /* Print an ASCII string with quotes and escape sequences where needed. */ static void print_escaped (FILE *stream, const char *str) { putc ('"', stream); for (; *str != '\0'; str++) if (*str == '\n') { fputs ("\\n\"", stream); if (str[1] == '\0') return; fputs ("\n\"", stream); } else { if (*str == '"' || *str == '\\') putc ('\\', stream); putc (*str, stream); } putc ('"', stream); } static char *last_logfilename = NULL; static FILE *last_logfile = NULL; __libc_lock_define_initialized (static, lock) static inline void _nl_log_untranslated_locked (const char *logfilename, const char *domainname, const char *msgid1, const char *msgid2, int plural) { FILE *logfile; /* Can we reuse the last opened logfile? */ if (last_logfilename == NULL || strcmp (logfilename, last_logfilename) != 0) { /* Close the last used logfile. */ if (last_logfilename != NULL) { if (last_logfile != NULL) { fclose (last_logfile); last_logfile = NULL; } free (last_logfilename); last_logfilename = NULL; } /* Open the logfile. */ last_logfilename = (char *) malloc (strlen (logfilename) + 1); if (last_logfilename == NULL) return; strcpy (last_logfilename, logfilename); last_logfile = fopen (logfilename, "a"); if (last_logfile == NULL) return; } logfile = last_logfile; fprintf (logfile, "domain "); print_escaped (logfile, domainname); fprintf (logfile, "\nmsgid "); print_escaped (logfile, msgid1); if (plural) { fprintf (logfile, "\nmsgid_plural "); print_escaped (logfile, msgid2); fprintf (logfile, "\nmsgstr[0] \"\"\n"); } else fprintf (logfile, "\nmsgstr \"\"\n"); putc ('\n', logfile); } /* Add to the log file an entry denoting a failed translation. */ void _nl_log_untranslated (const char *logfilename, const char *domainname, const char *msgid1, const char *msgid2, int plural) { __libc_lock_lock (lock); _nl_log_untranslated_locked (logfilename, domainname, msgid1, msgid2, plural); __libc_lock_unlock (lock); } enscript-1.6.5.90/intl/langprefs.c0000644000175000017500000000737511606344060013631 00000000000000/* Determine the user's language preferences. Copyright (C) 2004-2006 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 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 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* Written by Bruno Haible . */ #ifdef HAVE_CONFIG_H # include #endif #include #if HAVE_CFPREFERENCESCOPYAPPVALUE # include # include # include # include # include extern void _nl_locale_name_canonicalize (char *name); #endif /* Determine the user's language preferences, as a colon separated list of locale names in XPG syntax language[_territory][.codeset][@modifier] The result must not be freed; it is statically allocated. The LANGUAGE environment variable does not need to be considered; it is already taken into account by the caller. */ const char * _nl_language_preferences_default (void) { #if HAVE_CFPREFERENCESCOPYAPPVALUE /* MacOS X 10.2 or newer */ { /* Cache the preferences list, since CoreFoundation calls are expensive. */ static const char *cached_languages; static int cache_initialized; if (!cache_initialized) { CFTypeRef preferences = CFPreferencesCopyAppValue (CFSTR ("AppleLanguages"), kCFPreferencesCurrentApplication); if (preferences != NULL && CFGetTypeID (preferences) == CFArrayGetTypeID ()) { CFArrayRef prefArray = (CFArrayRef)preferences; int n = CFArrayGetCount (prefArray); char buf[256]; size_t size = 0; int i; for (i = 0; i < n; i++) { CFTypeRef element = CFArrayGetValueAtIndex (prefArray, i); if (element != NULL && CFGetTypeID (element) == CFStringGetTypeID () && CFStringGetCString ((CFStringRef)element, buf, sizeof (buf), kCFStringEncodingASCII)) { _nl_locale_name_canonicalize (buf); size += strlen (buf) + 1; /* Most GNU programs use msgids in English and don't ship an en.mo message catalog. Therefore when we see "en" in the preferences list, arrange for gettext() to return the msgid, and ignore all further elements of the preferences list. */ if (strcmp (buf, "en") == 0) break; } else break; } if (size > 0) { char *languages = (char *) malloc (size); if (languages != NULL) { char *p = languages; for (i = 0; i < n; i++) { CFTypeRef element = CFArrayGetValueAtIndex (prefArray, i); if (element != NULL && CFGetTypeID (element) == CFStringGetTypeID () && CFStringGetCString ((CFStringRef)element, buf, sizeof (buf), kCFStringEncodingASCII)) { _nl_locale_name_canonicalize (buf); strcpy (p, buf); p += strlen (buf); *p++ = ':'; if (strcmp (buf, "en") == 0) break; } else break; } *--p = '\0'; cached_languages = languages; } } } cache_initialized = 1; } if (cached_languages != NULL) return cached_languages; } #endif return NULL; } enscript-1.6.5.90/intl/VERSION0000644000175000017500000000004611606344056012545 00000000000000GNU gettext library from gettext-0.17 enscript-1.6.5.90/intl/config.charset0000755000175000017500000004702611606344056014331 00000000000000#! /bin/sh # Output a system dependent table of character encoding aliases. # # Copyright (C) 2000-2004, 2006 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 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 # 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, # USA. # # The table consists of lines of the form # ALIAS CANONICAL # # ALIAS is the (system dependent) result of "nl_langinfo (CODESET)". # ALIAS is compared in a case sensitive way. # # CANONICAL is the GNU canonical name for this character encoding. # It must be an encoding supported by libiconv. Support by GNU libc is # also desirable. CANONICAL is case insensitive. Usually an upper case # MIME charset name is preferred. # The current list of GNU canonical charset names is as follows. # # name MIME? used by which systems # ASCII, ANSI_X3.4-1968 glibc solaris freebsd netbsd darwin # ISO-8859-1 Y glibc aix hpux irix osf solaris freebsd netbsd darwin # ISO-8859-2 Y glibc aix hpux irix osf solaris freebsd netbsd darwin # ISO-8859-3 Y glibc solaris # ISO-8859-4 Y osf solaris freebsd netbsd darwin # ISO-8859-5 Y glibc aix hpux irix osf solaris freebsd netbsd darwin # ISO-8859-6 Y glibc aix hpux solaris # ISO-8859-7 Y glibc aix hpux irix osf solaris netbsd darwin # ISO-8859-8 Y glibc aix hpux osf solaris # ISO-8859-9 Y glibc aix hpux irix osf solaris darwin # ISO-8859-13 glibc netbsd darwin # ISO-8859-14 glibc # ISO-8859-15 glibc aix osf solaris freebsd darwin # KOI8-R Y glibc solaris freebsd netbsd darwin # KOI8-U Y glibc freebsd netbsd darwin # KOI8-T glibc # CP437 dos # CP775 dos # CP850 aix osf dos # CP852 dos # CP855 dos # CP856 aix # CP857 dos # CP861 dos # CP862 dos # CP864 dos # CP865 dos # CP866 freebsd netbsd darwin dos # CP869 dos # CP874 woe32 dos # CP922 aix # CP932 aix woe32 dos # CP943 aix # CP949 osf woe32 dos # CP950 woe32 dos # CP1046 aix # CP1124 aix # CP1125 dos # CP1129 aix # CP1250 woe32 # CP1251 glibc solaris netbsd darwin woe32 # CP1252 aix woe32 # CP1253 woe32 # CP1254 woe32 # CP1255 glibc woe32 # CP1256 woe32 # CP1257 woe32 # GB2312 Y glibc aix hpux irix solaris freebsd netbsd darwin # EUC-JP Y glibc aix hpux irix osf solaris freebsd netbsd darwin # EUC-KR Y glibc aix hpux irix osf solaris freebsd netbsd darwin # EUC-TW glibc aix hpux irix osf solaris netbsd # BIG5 Y glibc aix hpux osf solaris freebsd netbsd darwin # BIG5-HKSCS glibc solaris # GBK glibc aix osf solaris woe32 dos # GB18030 glibc solaris netbsd # SHIFT_JIS Y hpux osf solaris freebsd netbsd darwin # JOHAB glibc solaris woe32 # TIS-620 glibc aix hpux osf solaris # VISCII Y glibc # TCVN5712-1 glibc # GEORGIAN-PS glibc # HP-ROMAN8 hpux # HP-ARABIC8 hpux # HP-GREEK8 hpux # HP-HEBREW8 hpux # HP-TURKISH8 hpux # HP-KANA8 hpux # DEC-KANJI osf # DEC-HANYU osf # UTF-8 Y glibc aix hpux osf solaris netbsd darwin # # Note: Names which are not marked as being a MIME name should not be used in # Internet protocols for information interchange (mail, news, etc.). # # Note: ASCII and ANSI_X3.4-1968 are synonymous canonical names. Applications # must understand both names and treat them as equivalent. # # The first argument passed to this file is the canonical host specification, # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM host="$1" os=`echo "$host" | sed -e 's/^[^-]*-[^-]*-\(.*\)$/\1/'` echo "# This file contains a table of character encoding aliases," echo "# suitable for operating system '${os}'." echo "# It was automatically generated from config.charset." # List of references, updated during installation: echo "# Packages using this file: " case "$os" in linux-gnulibc1*) # Linux libc5 doesn't have nl_langinfo(CODESET); therefore # localcharset.c falls back to using the full locale name # from the environment variables. echo "C ASCII" echo "POSIX ASCII" for l in af af_ZA ca ca_ES da da_DK de de_AT de_BE de_CH de_DE de_LU \ en en_AU en_BW en_CA en_DK en_GB en_IE en_NZ en_US en_ZA \ en_ZW es es_AR es_BO es_CL es_CO es_DO es_EC es_ES es_GT \ es_HN es_MX es_PA es_PE es_PY es_SV es_US es_UY es_VE et \ et_EE eu eu_ES fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR \ fr_LU ga ga_IE gl gl_ES id id_ID in in_ID is is_IS it it_CH \ it_IT kl kl_GL nl nl_BE nl_NL no no_NO pt pt_BR pt_PT sv \ sv_FI sv_SE; do echo "$l ISO-8859-1" echo "$l.iso-8859-1 ISO-8859-1" echo "$l.iso-8859-15 ISO-8859-15" echo "$l.iso-8859-15@euro ISO-8859-15" echo "$l@euro ISO-8859-15" echo "$l.cp-437 CP437" echo "$l.cp-850 CP850" echo "$l.cp-1252 CP1252" echo "$l.cp-1252@euro CP1252" #echo "$l.atari-st ATARI-ST" # not a commonly used encoding echo "$l.utf-8 UTF-8" echo "$l.utf-8@euro UTF-8" done for l in cs cs_CZ hr hr_HR hu hu_HU pl pl_PL ro ro_RO sk sk_SK sl \ sl_SI sr sr_CS sr_YU; do echo "$l ISO-8859-2" echo "$l.iso-8859-2 ISO-8859-2" echo "$l.cp-852 CP852" echo "$l.cp-1250 CP1250" echo "$l.utf-8 UTF-8" done for l in mk mk_MK ru ru_RU; do echo "$l ISO-8859-5" echo "$l.iso-8859-5 ISO-8859-5" echo "$l.koi8-r KOI8-R" echo "$l.cp-866 CP866" echo "$l.cp-1251 CP1251" echo "$l.utf-8 UTF-8" done for l in ar ar_SA; do echo "$l ISO-8859-6" echo "$l.iso-8859-6 ISO-8859-6" echo "$l.cp-864 CP864" #echo "$l.cp-868 CP868" # not a commonly used encoding echo "$l.cp-1256 CP1256" echo "$l.utf-8 UTF-8" done for l in el el_GR gr gr_GR; do echo "$l ISO-8859-7" echo "$l.iso-8859-7 ISO-8859-7" echo "$l.cp-869 CP869" echo "$l.cp-1253 CP1253" echo "$l.cp-1253@euro CP1253" echo "$l.utf-8 UTF-8" echo "$l.utf-8@euro UTF-8" done for l in he he_IL iw iw_IL; do echo "$l ISO-8859-8" echo "$l.iso-8859-8 ISO-8859-8" echo "$l.cp-862 CP862" echo "$l.cp-1255 CP1255" echo "$l.utf-8 UTF-8" done for l in tr tr_TR; do echo "$l ISO-8859-9" echo "$l.iso-8859-9 ISO-8859-9" echo "$l.cp-857 CP857" echo "$l.cp-1254 CP1254" echo "$l.utf-8 UTF-8" done for l in lt lt_LT lv lv_LV; do #echo "$l BALTIC" # not a commonly used encoding, wrong encoding name echo "$l ISO-8859-13" done for l in ru_UA uk uk_UA; do echo "$l KOI8-U" done for l in zh zh_CN; do #echo "$l GB_2312-80" # not a commonly used encoding, wrong encoding name echo "$l GB2312" done for l in ja ja_JP ja_JP.EUC; do echo "$l EUC-JP" done for l in ko ko_KR; do echo "$l EUC-KR" done for l in th th_TH; do echo "$l TIS-620" done for l in fa fa_IR; do #echo "$l ISIRI-3342" # a broken encoding echo "$l.utf-8 UTF-8" done ;; linux* | *-gnu*) # With glibc-2.1 or newer, we don't need any canonicalization, # because glibc has iconv and both glibc and libiconv support all # GNU canonical names directly. Therefore, the Makefile does not # need to install the alias file at all. # The following applies only to glibc-2.0.x and older libcs. echo "ISO_646.IRV:1983 ASCII" ;; aix*) echo "ISO8859-1 ISO-8859-1" echo "ISO8859-2 ISO-8859-2" echo "ISO8859-5 ISO-8859-5" echo "ISO8859-6 ISO-8859-6" echo "ISO8859-7 ISO-8859-7" echo "ISO8859-8 ISO-8859-8" echo "ISO8859-9 ISO-8859-9" echo "ISO8859-15 ISO-8859-15" echo "IBM-850 CP850" echo "IBM-856 CP856" echo "IBM-921 ISO-8859-13" echo "IBM-922 CP922" echo "IBM-932 CP932" echo "IBM-943 CP943" echo "IBM-1046 CP1046" echo "IBM-1124 CP1124" echo "IBM-1129 CP1129" echo "IBM-1252 CP1252" echo "IBM-eucCN GB2312" echo "IBM-eucJP EUC-JP" echo "IBM-eucKR EUC-KR" echo "IBM-eucTW EUC-TW" echo "big5 BIG5" echo "GBK GBK" echo "TIS-620 TIS-620" echo "UTF-8 UTF-8" ;; hpux*) echo "iso88591 ISO-8859-1" echo "iso88592 ISO-8859-2" echo "iso88595 ISO-8859-5" echo "iso88596 ISO-8859-6" echo "iso88597 ISO-8859-7" echo "iso88598 ISO-8859-8" echo "iso88599 ISO-8859-9" echo "iso885915 ISO-8859-15" echo "roman8 HP-ROMAN8" echo "arabic8 HP-ARABIC8" echo "greek8 HP-GREEK8" echo "hebrew8 HP-HEBREW8" echo "turkish8 HP-TURKISH8" echo "kana8 HP-KANA8" echo "tis620 TIS-620" echo "big5 BIG5" echo "eucJP EUC-JP" echo "eucKR EUC-KR" echo "eucTW EUC-TW" echo "hp15CN GB2312" #echo "ccdc ?" # what is this? echo "SJIS SHIFT_JIS" echo "utf8 UTF-8" ;; irix*) echo "ISO8859-1 ISO-8859-1" echo "ISO8859-2 ISO-8859-2" echo "ISO8859-5 ISO-8859-5" echo "ISO8859-7 ISO-8859-7" echo "ISO8859-9 ISO-8859-9" echo "eucCN GB2312" echo "eucJP EUC-JP" echo "eucKR EUC-KR" echo "eucTW EUC-TW" ;; osf*) echo "ISO8859-1 ISO-8859-1" echo "ISO8859-2 ISO-8859-2" echo "ISO8859-4 ISO-8859-4" echo "ISO8859-5 ISO-8859-5" echo "ISO8859-7 ISO-8859-7" echo "ISO8859-8 ISO-8859-8" echo "ISO8859-9 ISO-8859-9" echo "ISO8859-15 ISO-8859-15" echo "cp850 CP850" echo "big5 BIG5" echo "dechanyu DEC-HANYU" echo "dechanzi GB2312" echo "deckanji DEC-KANJI" echo "deckorean EUC-KR" echo "eucJP EUC-JP" echo "eucKR EUC-KR" echo "eucTW EUC-TW" echo "GBK GBK" echo "KSC5601 CP949" echo "sdeckanji EUC-JP" echo "SJIS SHIFT_JIS" echo "TACTIS TIS-620" echo "UTF-8 UTF-8" ;; solaris*) echo "646 ASCII" echo "ISO8859-1 ISO-8859-1" echo "ISO8859-2 ISO-8859-2" echo "ISO8859-3 ISO-8859-3" echo "ISO8859-4 ISO-8859-4" echo "ISO8859-5 ISO-8859-5" echo "ISO8859-6 ISO-8859-6" echo "ISO8859-7 ISO-8859-7" echo "ISO8859-8 ISO-8859-8" echo "ISO8859-9 ISO-8859-9" echo "ISO8859-15 ISO-8859-15" echo "koi8-r KOI8-R" echo "ansi-1251 CP1251" echo "BIG5 BIG5" echo "Big5-HKSCS BIG5-HKSCS" echo "gb2312 GB2312" echo "GBK GBK" echo "GB18030 GB18030" echo "cns11643 EUC-TW" echo "5601 EUC-KR" echo "ko_KR.johap92 JOHAB" echo "eucJP EUC-JP" echo "PCK SHIFT_JIS" echo "TIS620.2533 TIS-620" #echo "sun_eu_greek ?" # what is this? echo "UTF-8 UTF-8" ;; freebsd* | os2*) # FreeBSD 4.2 doesn't have nl_langinfo(CODESET); therefore # localcharset.c falls back to using the full locale name # from the environment variables. # Likewise for OS/2. OS/2 has XFree86 just like FreeBSD. Just # reuse FreeBSD's locale data for OS/2. echo "C ASCII" echo "US-ASCII ASCII" for l in la_LN lt_LN; do echo "$l.ASCII ASCII" done for l in da_DK de_AT de_CH de_DE en_AU en_CA en_GB en_US es_ES \ fi_FI fr_BE fr_CA fr_CH fr_FR is_IS it_CH it_IT la_LN \ lt_LN nl_BE nl_NL no_NO pt_PT sv_SE; do echo "$l.ISO_8859-1 ISO-8859-1" echo "$l.DIS_8859-15 ISO-8859-15" done for l in cs_CZ hr_HR hu_HU la_LN lt_LN pl_PL sl_SI; do echo "$l.ISO_8859-2 ISO-8859-2" done for l in la_LN lt_LT; do echo "$l.ISO_8859-4 ISO-8859-4" done for l in ru_RU ru_SU; do echo "$l.KOI8-R KOI8-R" echo "$l.ISO_8859-5 ISO-8859-5" echo "$l.CP866 CP866" done echo "uk_UA.KOI8-U KOI8-U" echo "zh_TW.BIG5 BIG5" echo "zh_TW.Big5 BIG5" echo "zh_CN.EUC GB2312" echo "ja_JP.EUC EUC-JP" echo "ja_JP.SJIS SHIFT_JIS" echo "ja_JP.Shift_JIS SHIFT_JIS" echo "ko_KR.EUC EUC-KR" ;; netbsd*) echo "646 ASCII" echo "ISO8859-1 ISO-8859-1" echo "ISO8859-2 ISO-8859-2" echo "ISO8859-4 ISO-8859-4" echo "ISO8859-5 ISO-8859-5" echo "ISO8859-7 ISO-8859-7" echo "ISO8859-13 ISO-8859-13" echo "ISO8859-15 ISO-8859-15" echo "eucCN GB2312" echo "eucJP EUC-JP" echo "eucKR EUC-KR" echo "eucTW EUC-TW" echo "BIG5 BIG5" echo "SJIS SHIFT_JIS" ;; darwin[56]*) # Darwin 6.8 doesn't have nl_langinfo(CODESET); therefore # localcharset.c falls back to using the full locale name # from the environment variables. echo "C ASCII" for l in en_AU en_CA en_GB en_US la_LN; do echo "$l.US-ASCII ASCII" done for l in da_DK de_AT de_CH de_DE en_AU en_CA en_GB en_US es_ES \ fi_FI fr_BE fr_CA fr_CH fr_FR is_IS it_CH it_IT nl_BE \ nl_NL no_NO pt_PT sv_SE; do echo "$l ISO-8859-1" echo "$l.ISO8859-1 ISO-8859-1" echo "$l.ISO8859-15 ISO-8859-15" done for l in la_LN; do echo "$l.ISO8859-1 ISO-8859-1" echo "$l.ISO8859-15 ISO-8859-15" done for l in cs_CZ hr_HR hu_HU la_LN pl_PL sl_SI; do echo "$l.ISO8859-2 ISO-8859-2" done for l in la_LN lt_LT; do echo "$l.ISO8859-4 ISO-8859-4" done for l in ru_RU; do echo "$l.KOI8-R KOI8-R" echo "$l.ISO8859-5 ISO-8859-5" echo "$l.CP866 CP866" done for l in bg_BG; do echo "$l.CP1251 CP1251" done echo "uk_UA.KOI8-U KOI8-U" echo "zh_TW.BIG5 BIG5" echo "zh_TW.Big5 BIG5" echo "zh_CN.EUC GB2312" echo "ja_JP.EUC EUC-JP" echo "ja_JP.SJIS SHIFT_JIS" echo "ko_KR.EUC EUC-KR" ;; darwin*) # Darwin 7.5 has nl_langinfo(CODESET), but it is useless: # - It returns the empty string when LANG is set to a locale of the # form ll_CC, although ll_CC/LC_CTYPE is a symlink to an UTF-8 # LC_CTYPE file. # - The environment variables LANG, LC_CTYPE, LC_ALL are not set by # the system; nl_langinfo(CODESET) returns "US-ASCII" in this case. # - The documentation says: # "... all code that calls BSD system routines should ensure # that the const *char parameters of these routines are in UTF-8 # encoding. All BSD system functions expect their string # parameters to be in UTF-8 encoding and nothing else." # It also says # "An additional caveat is that string parameters for files, # paths, and other file-system entities must be in canonical # UTF-8. In a canonical UTF-8 Unicode string, all decomposable # characters are decomposed ..." # but this is not true: You can pass non-decomposed UTF-8 strings # to file system functions, and it is the OS which will convert # them to decomposed UTF-8 before accessing the file system. # - The Apple Terminal application displays UTF-8 by default. # - However, other applications are free to use different encodings: # - xterm uses ISO-8859-1 by default. # - TextEdit uses MacRoman by default. # We prefer UTF-8 over decomposed UTF-8-MAC because one should # minimize the use of decomposed Unicode. Unfortunately, through the # Darwin file system, decomposed UTF-8 strings are leaked into user # space nevertheless. echo "* UTF-8" ;; beos*) # BeOS has a single locale, and it has UTF-8 encoding. echo "* UTF-8" ;; msdosdjgpp*) # DJGPP 2.03 doesn't have nl_langinfo(CODESET); therefore # localcharset.c falls back to using the full locale name # from the environment variables. echo "#" echo "# The encodings given here may not all be correct." echo "# If you find that the encoding given for your language and" echo "# country is not the one your DOS machine actually uses, just" echo "# correct it in this file, and send a mail to" echo "# Juan Manuel Guerrero " echo "# and Bruno Haible ." echo "#" echo "C ASCII" # ISO-8859-1 languages echo "ca CP850" echo "ca_ES CP850" echo "da CP865" # not CP850 ?? echo "da_DK CP865" # not CP850 ?? echo "de CP850" echo "de_AT CP850" echo "de_CH CP850" echo "de_DE CP850" echo "en CP850" echo "en_AU CP850" # not CP437 ?? echo "en_CA CP850" echo "en_GB CP850" echo "en_NZ CP437" echo "en_US CP437" echo "en_ZA CP850" # not CP437 ?? echo "es CP850" echo "es_AR CP850" echo "es_BO CP850" echo "es_CL CP850" echo "es_CO CP850" echo "es_CR CP850" echo "es_CU CP850" echo "es_DO CP850" echo "es_EC CP850" echo "es_ES CP850" echo "es_GT CP850" echo "es_HN CP850" echo "es_MX CP850" echo "es_NI CP850" echo "es_PA CP850" echo "es_PY CP850" echo "es_PE CP850" echo "es_SV CP850" echo "es_UY CP850" echo "es_VE CP850" echo "et CP850" echo "et_EE CP850" echo "eu CP850" echo "eu_ES CP850" echo "fi CP850" echo "fi_FI CP850" echo "fr CP850" echo "fr_BE CP850" echo "fr_CA CP850" echo "fr_CH CP850" echo "fr_FR CP850" echo "ga CP850" echo "ga_IE CP850" echo "gd CP850" echo "gd_GB CP850" echo "gl CP850" echo "gl_ES CP850" echo "id CP850" # not CP437 ?? echo "id_ID CP850" # not CP437 ?? echo "is CP861" # not CP850 ?? echo "is_IS CP861" # not CP850 ?? echo "it CP850" echo "it_CH CP850" echo "it_IT CP850" echo "lt CP775" echo "lt_LT CP775" echo "lv CP775" echo "lv_LV CP775" echo "nb CP865" # not CP850 ?? echo "nb_NO CP865" # not CP850 ?? echo "nl CP850" echo "nl_BE CP850" echo "nl_NL CP850" echo "nn CP865" # not CP850 ?? echo "nn_NO CP865" # not CP850 ?? echo "no CP865" # not CP850 ?? echo "no_NO CP865" # not CP850 ?? echo "pt CP850" echo "pt_BR CP850" echo "pt_PT CP850" echo "sv CP850" echo "sv_SE CP850" # ISO-8859-2 languages echo "cs CP852" echo "cs_CZ CP852" echo "hr CP852" echo "hr_HR CP852" echo "hu CP852" echo "hu_HU CP852" echo "pl CP852" echo "pl_PL CP852" echo "ro CP852" echo "ro_RO CP852" echo "sk CP852" echo "sk_SK CP852" echo "sl CP852" echo "sl_SI CP852" echo "sq CP852" echo "sq_AL CP852" echo "sr CP852" # CP852 or CP866 or CP855 ?? echo "sr_CS CP852" # CP852 or CP866 or CP855 ?? echo "sr_YU CP852" # CP852 or CP866 or CP855 ?? # ISO-8859-3 languages echo "mt CP850" echo "mt_MT CP850" # ISO-8859-5 languages echo "be CP866" echo "be_BE CP866" echo "bg CP866" # not CP855 ?? echo "bg_BG CP866" # not CP855 ?? echo "mk CP866" # not CP855 ?? echo "mk_MK CP866" # not CP855 ?? echo "ru CP866" echo "ru_RU CP866" echo "uk CP1125" echo "uk_UA CP1125" # ISO-8859-6 languages echo "ar CP864" echo "ar_AE CP864" echo "ar_DZ CP864" echo "ar_EG CP864" echo "ar_IQ CP864" echo "ar_IR CP864" echo "ar_JO CP864" echo "ar_KW CP864" echo "ar_MA CP864" echo "ar_OM CP864" echo "ar_QA CP864" echo "ar_SA CP864" echo "ar_SY CP864" # ISO-8859-7 languages echo "el CP869" echo "el_GR CP869" # ISO-8859-8 languages echo "he CP862" echo "he_IL CP862" # ISO-8859-9 languages echo "tr CP857" echo "tr_TR CP857" # Japanese echo "ja CP932" echo "ja_JP CP932" # Chinese echo "zh_CN GBK" echo "zh_TW CP950" # not CP938 ?? # Korean echo "kr CP949" # not CP934 ?? echo "kr_KR CP949" # not CP934 ?? # Thai echo "th CP874" echo "th_TH CP874" # Other echo "eo CP850" echo "eo_EO CP850" ;; esac enscript-1.6.5.90/intl/plural-exp.h0000644000175000017500000001013111606344061013727 00000000000000/* Expression parsing and evaluation for plural form selection. Copyright (C) 2000-2003, 2005-2007 Free Software Foundation, Inc. Written by Ulrich Drepper , 2000. 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 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 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef _PLURAL_EXP_H #define _PLURAL_EXP_H #ifndef internal_function # define internal_function #endif #ifndef attribute_hidden # define attribute_hidden #endif #ifdef __cplusplus extern "C" { #endif enum expression_operator { /* Without arguments: */ var, /* The variable "n". */ num, /* Decimal number. */ /* Unary operators: */ lnot, /* Logical NOT. */ /* Binary operators: */ mult, /* Multiplication. */ divide, /* Division. */ module, /* Modulo operation. */ plus, /* Addition. */ minus, /* Subtraction. */ less_than, /* Comparison. */ greater_than, /* Comparison. */ less_or_equal, /* Comparison. */ greater_or_equal, /* Comparison. */ equal, /* Comparison for equality. */ not_equal, /* Comparison for inequality. */ land, /* Logical AND. */ lor, /* Logical OR. */ /* Ternary operators: */ qmop /* Question mark operator. */ }; /* This is the representation of the expressions to determine the plural form. */ struct expression { int nargs; /* Number of arguments. */ enum expression_operator operation; union { unsigned long int num; /* Number value for `num'. */ struct expression *args[3]; /* Up to three arguments. */ } val; }; /* This is the data structure to pass information to the parser and get the result in a thread-safe way. */ struct parse_args { const char *cp; struct expression *res; }; /* Names for the libintl functions are a problem. This source code is used 1. in the GNU C Library library, 2. in the GNU libintl library, 3. in the GNU gettext tools. The function names in each situation must be different, to allow for binary incompatible changes in 'struct expression'. Furthermore, 1. in the GNU C Library library, the names have a __ prefix, 2.+3. in the GNU libintl library and in the GNU gettext tools, the names must follow ANSI C and not start with __. So we have to distinguish the three cases. */ #ifdef _LIBC # define FREE_EXPRESSION __gettext_free_exp # define PLURAL_PARSE __gettextparse # define GERMANIC_PLURAL __gettext_germanic_plural # define EXTRACT_PLURAL_EXPRESSION __gettext_extract_plural #elif defined (IN_LIBINTL) # define FREE_EXPRESSION libintl_gettext_free_exp # define PLURAL_PARSE libintl_gettextparse # define GERMANIC_PLURAL libintl_gettext_germanic_plural # define EXTRACT_PLURAL_EXPRESSION libintl_gettext_extract_plural #else # define FREE_EXPRESSION free_plural_expression # define PLURAL_PARSE parse_plural_expression # define GERMANIC_PLURAL germanic_plural # define EXTRACT_PLURAL_EXPRESSION extract_plural_expression #endif extern void FREE_EXPRESSION (struct expression *exp) internal_function; extern int PLURAL_PARSE (void *arg); extern struct expression GERMANIC_PLURAL attribute_hidden; extern void EXTRACT_PLURAL_EXPRESSION (const char *nullentry, const struct expression **pluralp, unsigned long int *npluralsp) internal_function; #if !defined (_LIBC) && !defined (IN_LIBINTL) && !defined (IN_LIBGLOCALE) extern unsigned long int plural_eval (const struct expression *pexp, unsigned long int n); #endif #ifdef __cplusplus } #endif #endif /* _PLURAL_EXP_H */ enscript-1.6.5.90/intl/os2compat.h0000644000175000017500000000302611606344061013552 00000000000000/* OS/2 compatibility defines. This file is intended to be included from config.h Copyright (C) 2001-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 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 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* When included from os2compat.h we need all the original definitions */ #ifndef OS2_AWARE #undef LIBDIR #define LIBDIR _nlos2_libdir extern char *_nlos2_libdir; #undef LOCALEDIR #define LOCALEDIR _nlos2_localedir extern char *_nlos2_localedir; #undef LOCALE_ALIAS_PATH #define LOCALE_ALIAS_PATH _nlos2_localealiaspath extern char *_nlos2_localealiaspath; #endif #undef HAVE_STRCASECMP #define HAVE_STRCASECMP 1 #define strcasecmp stricmp #define strncasecmp strnicmp /* We have our own getenv() which works even if library is compiled as DLL */ #define getenv _nl_getenv /* Older versions of gettext used -1 as the value of LC_MESSAGES */ #define LC_MESSAGES_COMPAT (-1) enscript-1.6.5.90/intl/loadmsgcat.c0000644000175000017500000010270011606344060013752 00000000000000/* Load needed message catalogs. Copyright (C) 1995-1999, 2000-2007 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 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 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* Tell glibc's to provide a prototype for mempcpy(). This must come before because may include , and once has been included, it's too late. */ #ifndef _GNU_SOURCE # define _GNU_SOURCE 1 #endif #ifdef HAVE_CONFIG_H # include #endif #include #include #include #include #include #ifdef __GNUC__ # undef alloca # define alloca __builtin_alloca # define HAVE_ALLOCA 1 #else # ifdef _MSC_VER # include # define alloca _alloca # else # if defined HAVE_ALLOCA_H || defined _LIBC # include # else # ifdef _AIX #pragma alloca # else # ifndef alloca char *alloca (); # endif # endif # endif # endif #endif #include #include #if defined HAVE_UNISTD_H || defined _LIBC # include #endif #ifdef _LIBC # include # include #endif #if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \ || (defined _LIBC && defined _POSIX_MAPPED_FILES) # include # undef HAVE_MMAP # define HAVE_MMAP 1 #else # undef HAVE_MMAP #endif #if defined HAVE_STDINT_H_WITH_UINTMAX || defined _LIBC # include #endif #if defined HAVE_INTTYPES_H || defined _LIBC # include #endif #include "gmo.h" #include "gettextP.h" #include "hash-string.h" #include "plural-exp.h" #ifdef _LIBC # include "../locale/localeinfo.h" # include #endif /* Handle multi-threaded applications. */ #ifdef _LIBC # include #else # include "lock.h" #endif /* Provide fallback values for macros that ought to be defined in . Note that our fallback values need not be literal strings, because we don't use them with preprocessor string concatenation. */ #if !defined PRId8 || PRI_MACROS_BROKEN # undef PRId8 # define PRId8 "d" #endif #if !defined PRIi8 || PRI_MACROS_BROKEN # undef PRIi8 # define PRIi8 "i" #endif #if !defined PRIo8 || PRI_MACROS_BROKEN # undef PRIo8 # define PRIo8 "o" #endif #if !defined PRIu8 || PRI_MACROS_BROKEN # undef PRIu8 # define PRIu8 "u" #endif #if !defined PRIx8 || PRI_MACROS_BROKEN # undef PRIx8 # define PRIx8 "x" #endif #if !defined PRIX8 || PRI_MACROS_BROKEN # undef PRIX8 # define PRIX8 "X" #endif #if !defined PRId16 || PRI_MACROS_BROKEN # undef PRId16 # define PRId16 "d" #endif #if !defined PRIi16 || PRI_MACROS_BROKEN # undef PRIi16 # define PRIi16 "i" #endif #if !defined PRIo16 || PRI_MACROS_BROKEN # undef PRIo16 # define PRIo16 "o" #endif #if !defined PRIu16 || PRI_MACROS_BROKEN # undef PRIu16 # define PRIu16 "u" #endif #if !defined PRIx16 || PRI_MACROS_BROKEN # undef PRIx16 # define PRIx16 "x" #endif #if !defined PRIX16 || PRI_MACROS_BROKEN # undef PRIX16 # define PRIX16 "X" #endif #if !defined PRId32 || PRI_MACROS_BROKEN # undef PRId32 # define PRId32 "d" #endif #if !defined PRIi32 || PRI_MACROS_BROKEN # undef PRIi32 # define PRIi32 "i" #endif #if !defined PRIo32 || PRI_MACROS_BROKEN # undef PRIo32 # define PRIo32 "o" #endif #if !defined PRIu32 || PRI_MACROS_BROKEN # undef PRIu32 # define PRIu32 "u" #endif #if !defined PRIx32 || PRI_MACROS_BROKEN # undef PRIx32 # define PRIx32 "x" #endif #if !defined PRIX32 || PRI_MACROS_BROKEN # undef PRIX32 # define PRIX32 "X" #endif #if !defined PRId64 || PRI_MACROS_BROKEN # undef PRId64 # define PRId64 (sizeof (long) == 8 ? "ld" : "lld") #endif #if !defined PRIi64 || PRI_MACROS_BROKEN # undef PRIi64 # define PRIi64 (sizeof (long) == 8 ? "li" : "lli") #endif #if !defined PRIo64 || PRI_MACROS_BROKEN # undef PRIo64 # define PRIo64 (sizeof (long) == 8 ? "lo" : "llo") #endif #if !defined PRIu64 || PRI_MACROS_BROKEN # undef PRIu64 # define PRIu64 (sizeof (long) == 8 ? "lu" : "llu") #endif #if !defined PRIx64 || PRI_MACROS_BROKEN # undef PRIx64 # define PRIx64 (sizeof (long) == 8 ? "lx" : "llx") #endif #if !defined PRIX64 || PRI_MACROS_BROKEN # undef PRIX64 # define PRIX64 (sizeof (long) == 8 ? "lX" : "llX") #endif #if !defined PRIdLEAST8 || PRI_MACROS_BROKEN # undef PRIdLEAST8 # define PRIdLEAST8 "d" #endif #if !defined PRIiLEAST8 || PRI_MACROS_BROKEN # undef PRIiLEAST8 # define PRIiLEAST8 "i" #endif #if !defined PRIoLEAST8 || PRI_MACROS_BROKEN # undef PRIoLEAST8 # define PRIoLEAST8 "o" #endif #if !defined PRIuLEAST8 || PRI_MACROS_BROKEN # undef PRIuLEAST8 # define PRIuLEAST8 "u" #endif #if !defined PRIxLEAST8 || PRI_MACROS_BROKEN # undef PRIxLEAST8 # define PRIxLEAST8 "x" #endif #if !defined PRIXLEAST8 || PRI_MACROS_BROKEN # undef PRIXLEAST8 # define PRIXLEAST8 "X" #endif #if !defined PRIdLEAST16 || PRI_MACROS_BROKEN # undef PRIdLEAST16 # define PRIdLEAST16 "d" #endif #if !defined PRIiLEAST16 || PRI_MACROS_BROKEN # undef PRIiLEAST16 # define PRIiLEAST16 "i" #endif #if !defined PRIoLEAST16 || PRI_MACROS_BROKEN # undef PRIoLEAST16 # define PRIoLEAST16 "o" #endif #if !defined PRIuLEAST16 || PRI_MACROS_BROKEN # undef PRIuLEAST16 # define PRIuLEAST16 "u" #endif #if !defined PRIxLEAST16 || PRI_MACROS_BROKEN # undef PRIxLEAST16 # define PRIxLEAST16 "x" #endif #if !defined PRIXLEAST16 || PRI_MACROS_BROKEN # undef PRIXLEAST16 # define PRIXLEAST16 "X" #endif #if !defined PRIdLEAST32 || PRI_MACROS_BROKEN # undef PRIdLEAST32 # define PRIdLEAST32 "d" #endif #if !defined PRIiLEAST32 || PRI_MACROS_BROKEN # undef PRIiLEAST32 # define PRIiLEAST32 "i" #endif #if !defined PRIoLEAST32 || PRI_MACROS_BROKEN # undef PRIoLEAST32 # define PRIoLEAST32 "o" #endif #if !defined PRIuLEAST32 || PRI_MACROS_BROKEN # undef PRIuLEAST32 # define PRIuLEAST32 "u" #endif #if !defined PRIxLEAST32 || PRI_MACROS_BROKEN # undef PRIxLEAST32 # define PRIxLEAST32 "x" #endif #if !defined PRIXLEAST32 || PRI_MACROS_BROKEN # undef PRIXLEAST32 # define PRIXLEAST32 "X" #endif #if !defined PRIdLEAST64 || PRI_MACROS_BROKEN # undef PRIdLEAST64 # define PRIdLEAST64 PRId64 #endif #if !defined PRIiLEAST64 || PRI_MACROS_BROKEN # undef PRIiLEAST64 # define PRIiLEAST64 PRIi64 #endif #if !defined PRIoLEAST64 || PRI_MACROS_BROKEN # undef PRIoLEAST64 # define PRIoLEAST64 PRIo64 #endif #if !defined PRIuLEAST64 || PRI_MACROS_BROKEN # undef PRIuLEAST64 # define PRIuLEAST64 PRIu64 #endif #if !defined PRIxLEAST64 || PRI_MACROS_BROKEN # undef PRIxLEAST64 # define PRIxLEAST64 PRIx64 #endif #if !defined PRIXLEAST64 || PRI_MACROS_BROKEN # undef PRIXLEAST64 # define PRIXLEAST64 PRIX64 #endif #if !defined PRIdFAST8 || PRI_MACROS_BROKEN # undef PRIdFAST8 # define PRIdFAST8 "d" #endif #if !defined PRIiFAST8 || PRI_MACROS_BROKEN # undef PRIiFAST8 # define PRIiFAST8 "i" #endif #if !defined PRIoFAST8 || PRI_MACROS_BROKEN # undef PRIoFAST8 # define PRIoFAST8 "o" #endif #if !defined PRIuFAST8 || PRI_MACROS_BROKEN # undef PRIuFAST8 # define PRIuFAST8 "u" #endif #if !defined PRIxFAST8 || PRI_MACROS_BROKEN # undef PRIxFAST8 # define PRIxFAST8 "x" #endif #if !defined PRIXFAST8 || PRI_MACROS_BROKEN # undef PRIXFAST8 # define PRIXFAST8 "X" #endif #if !defined PRIdFAST16 || PRI_MACROS_BROKEN # undef PRIdFAST16 # define PRIdFAST16 "d" #endif #if !defined PRIiFAST16 || PRI_MACROS_BROKEN # undef PRIiFAST16 # define PRIiFAST16 "i" #endif #if !defined PRIoFAST16 || PRI_MACROS_BROKEN # undef PRIoFAST16 # define PRIoFAST16 "o" #endif #if !defined PRIuFAST16 || PRI_MACROS_BROKEN # undef PRIuFAST16 # define PRIuFAST16 "u" #endif #if !defined PRIxFAST16 || PRI_MACROS_BROKEN # undef PRIxFAST16 # define PRIxFAST16 "x" #endif #if !defined PRIXFAST16 || PRI_MACROS_BROKEN # undef PRIXFAST16 # define PRIXFAST16 "X" #endif #if !defined PRIdFAST32 || PRI_MACROS_BROKEN # undef PRIdFAST32 # define PRIdFAST32 "d" #endif #if !defined PRIiFAST32 || PRI_MACROS_BROKEN # undef PRIiFAST32 # define PRIiFAST32 "i" #endif #if !defined PRIoFAST32 || PRI_MACROS_BROKEN # undef PRIoFAST32 # define PRIoFAST32 "o" #endif #if !defined PRIuFAST32 || PRI_MACROS_BROKEN # undef PRIuFAST32 # define PRIuFAST32 "u" #endif #if !defined PRIxFAST32 || PRI_MACROS_BROKEN # undef PRIxFAST32 # define PRIxFAST32 "x" #endif #if !defined PRIXFAST32 || PRI_MACROS_BROKEN # undef PRIXFAST32 # define PRIXFAST32 "X" #endif #if !defined PRIdFAST64 || PRI_MACROS_BROKEN # undef PRIdFAST64 # define PRIdFAST64 PRId64 #endif #if !defined PRIiFAST64 || PRI_MACROS_BROKEN # undef PRIiFAST64 # define PRIiFAST64 PRIi64 #endif #if !defined PRIoFAST64 || PRI_MACROS_BROKEN # undef PRIoFAST64 # define PRIoFAST64 PRIo64 #endif #if !defined PRIuFAST64 || PRI_MACROS_BROKEN # undef PRIuFAST64 # define PRIuFAST64 PRIu64 #endif #if !defined PRIxFAST64 || PRI_MACROS_BROKEN # undef PRIxFAST64 # define PRIxFAST64 PRIx64 #endif #if !defined PRIXFAST64 || PRI_MACROS_BROKEN # undef PRIXFAST64 # define PRIXFAST64 PRIX64 #endif #if !defined PRIdMAX || PRI_MACROS_BROKEN # undef PRIdMAX # define PRIdMAX (sizeof (uintmax_t) == sizeof (long) ? "ld" : "lld") #endif #if !defined PRIiMAX || PRI_MACROS_BROKEN # undef PRIiMAX # define PRIiMAX (sizeof (uintmax_t) == sizeof (long) ? "li" : "lli") #endif #if !defined PRIoMAX || PRI_MACROS_BROKEN # undef PRIoMAX # define PRIoMAX (sizeof (uintmax_t) == sizeof (long) ? "lo" : "llo") #endif #if !defined PRIuMAX || PRI_MACROS_BROKEN # undef PRIuMAX # define PRIuMAX (sizeof (uintmax_t) == sizeof (long) ? "lu" : "llu") #endif #if !defined PRIxMAX || PRI_MACROS_BROKEN # undef PRIxMAX # define PRIxMAX (sizeof (uintmax_t) == sizeof (long) ? "lx" : "llx") #endif #if !defined PRIXMAX || PRI_MACROS_BROKEN # undef PRIXMAX # define PRIXMAX (sizeof (uintmax_t) == sizeof (long) ? "lX" : "llX") #endif #if !defined PRIdPTR || PRI_MACROS_BROKEN # undef PRIdPTR # define PRIdPTR \ (sizeof (void *) == sizeof (long) ? "ld" : \ sizeof (void *) == sizeof (int) ? "d" : \ "lld") #endif #if !defined PRIiPTR || PRI_MACROS_BROKEN # undef PRIiPTR # define PRIiPTR \ (sizeof (void *) == sizeof (long) ? "li" : \ sizeof (void *) == sizeof (int) ? "i" : \ "lli") #endif #if !defined PRIoPTR || PRI_MACROS_BROKEN # undef PRIoPTR # define PRIoPTR \ (sizeof (void *) == sizeof (long) ? "lo" : \ sizeof (void *) == sizeof (int) ? "o" : \ "llo") #endif #if !defined PRIuPTR || PRI_MACROS_BROKEN # undef PRIuPTR # define PRIuPTR \ (sizeof (void *) == sizeof (long) ? "lu" : \ sizeof (void *) == sizeof (int) ? "u" : \ "llu") #endif #if !defined PRIxPTR || PRI_MACROS_BROKEN # undef PRIxPTR # define PRIxPTR \ (sizeof (void *) == sizeof (long) ? "lx" : \ sizeof (void *) == sizeof (int) ? "x" : \ "llx") #endif #if !defined PRIXPTR || PRI_MACROS_BROKEN # undef PRIXPTR # define PRIXPTR \ (sizeof (void *) == sizeof (long) ? "lX" : \ sizeof (void *) == sizeof (int) ? "X" : \ "llX") #endif /* @@ end of prolog @@ */ #ifdef _LIBC /* Rename the non ISO C functions. This is required by the standard because some ISO C functions will require linking with this object file and the name space must not be polluted. */ # define open(name, flags) open_not_cancel_2 (name, flags) # define close(fd) close_not_cancel_no_status (fd) # define read(fd, buf, n) read_not_cancel (fd, buf, n) # define mmap(addr, len, prot, flags, fd, offset) \ __mmap (addr, len, prot, flags, fd, offset) # define munmap(addr, len) __munmap (addr, len) #endif /* For those losing systems which don't have `alloca' we have to add some additional code emulating it. */ #ifdef HAVE_ALLOCA # define freea(p) /* nothing */ #else # define alloca(n) malloc (n) # define freea(p) free (p) #endif /* For systems that distinguish between text and binary I/O. O_BINARY is usually declared in . */ #if !defined O_BINARY && defined _O_BINARY /* For MSC-compatible compilers. */ # define O_BINARY _O_BINARY # define O_TEXT _O_TEXT #endif #ifdef __BEOS__ /* BeOS 5 has O_BINARY and O_TEXT, but they have no effect. */ # undef O_BINARY # undef O_TEXT #endif /* On reasonable systems, binary I/O is the default. */ #ifndef O_BINARY # define O_BINARY 0 #endif /* We need a sign, whether a new catalog was loaded, which can be associated with all translations. This is important if the translations are cached by one of GCC's features. */ int _nl_msg_cat_cntr; /* Expand a system dependent string segment. Return NULL if unsupported. */ static const char * get_sysdep_segment_value (const char *name) { /* Test for an ISO C 99 section 7.8.1 format string directive. Syntax: P R I { d | i | o | u | x | X } { { | LEAST | FAST } { 8 | 16 | 32 | 64 } | MAX | PTR } */ /* We don't use a table of 14 times 6 'const char *' strings here, because data relocations cost startup time. */ if (name[0] == 'P' && name[1] == 'R' && name[2] == 'I') { if (name[3] == 'd' || name[3] == 'i' || name[3] == 'o' || name[3] == 'u' || name[3] == 'x' || name[3] == 'X') { if (name[4] == '8' && name[5] == '\0') { if (name[3] == 'd') return PRId8; if (name[3] == 'i') return PRIi8; if (name[3] == 'o') return PRIo8; if (name[3] == 'u') return PRIu8; if (name[3] == 'x') return PRIx8; if (name[3] == 'X') return PRIX8; abort (); } if (name[4] == '1' && name[5] == '6' && name[6] == '\0') { if (name[3] == 'd') return PRId16; if (name[3] == 'i') return PRIi16; if (name[3] == 'o') return PRIo16; if (name[3] == 'u') return PRIu16; if (name[3] == 'x') return PRIx16; if (name[3] == 'X') return PRIX16; abort (); } if (name[4] == '3' && name[5] == '2' && name[6] == '\0') { if (name[3] == 'd') return PRId32; if (name[3] == 'i') return PRIi32; if (name[3] == 'o') return PRIo32; if (name[3] == 'u') return PRIu32; if (name[3] == 'x') return PRIx32; if (name[3] == 'X') return PRIX32; abort (); } if (name[4] == '6' && name[5] == '4' && name[6] == '\0') { if (name[3] == 'd') return PRId64; if (name[3] == 'i') return PRIi64; if (name[3] == 'o') return PRIo64; if (name[3] == 'u') return PRIu64; if (name[3] == 'x') return PRIx64; if (name[3] == 'X') return PRIX64; abort (); } if (name[4] == 'L' && name[5] == 'E' && name[6] == 'A' && name[7] == 'S' && name[8] == 'T') { if (name[9] == '8' && name[10] == '\0') { if (name[3] == 'd') return PRIdLEAST8; if (name[3] == 'i') return PRIiLEAST8; if (name[3] == 'o') return PRIoLEAST8; if (name[3] == 'u') return PRIuLEAST8; if (name[3] == 'x') return PRIxLEAST8; if (name[3] == 'X') return PRIXLEAST8; abort (); } if (name[9] == '1' && name[10] == '6' && name[11] == '\0') { if (name[3] == 'd') return PRIdLEAST16; if (name[3] == 'i') return PRIiLEAST16; if (name[3] == 'o') return PRIoLEAST16; if (name[3] == 'u') return PRIuLEAST16; if (name[3] == 'x') return PRIxLEAST16; if (name[3] == 'X') return PRIXLEAST16; abort (); } if (name[9] == '3' && name[10] == '2' && name[11] == '\0') { if (name[3] == 'd') return PRIdLEAST32; if (name[3] == 'i') return PRIiLEAST32; if (name[3] == 'o') return PRIoLEAST32; if (name[3] == 'u') return PRIuLEAST32; if (name[3] == 'x') return PRIxLEAST32; if (name[3] == 'X') return PRIXLEAST32; abort (); } if (name[9] == '6' && name[10] == '4' && name[11] == '\0') { if (name[3] == 'd') return PRIdLEAST64; if (name[3] == 'i') return PRIiLEAST64; if (name[3] == 'o') return PRIoLEAST64; if (name[3] == 'u') return PRIuLEAST64; if (name[3] == 'x') return PRIxLEAST64; if (name[3] == 'X') return PRIXLEAST64; abort (); } } if (name[4] == 'F' && name[5] == 'A' && name[6] == 'S' && name[7] == 'T') { if (name[8] == '8' && name[9] == '\0') { if (name[3] == 'd') return PRIdFAST8; if (name[3] == 'i') return PRIiFAST8; if (name[3] == 'o') return PRIoFAST8; if (name[3] == 'u') return PRIuFAST8; if (name[3] == 'x') return PRIxFAST8; if (name[3] == 'X') return PRIXFAST8; abort (); } if (name[8] == '1' && name[9] == '6' && name[10] == '\0') { if (name[3] == 'd') return PRIdFAST16; if (name[3] == 'i') return PRIiFAST16; if (name[3] == 'o') return PRIoFAST16; if (name[3] == 'u') return PRIuFAST16; if (name[3] == 'x') return PRIxFAST16; if (name[3] == 'X') return PRIXFAST16; abort (); } if (name[8] == '3' && name[9] == '2' && name[10] == '\0') { if (name[3] == 'd') return PRIdFAST32; if (name[3] == 'i') return PRIiFAST32; if (name[3] == 'o') return PRIoFAST32; if (name[3] == 'u') return PRIuFAST32; if (name[3] == 'x') return PRIxFAST32; if (name[3] == 'X') return PRIXFAST32; abort (); } if (name[8] == '6' && name[9] == '4' && name[10] == '\0') { if (name[3] == 'd') return PRIdFAST64; if (name[3] == 'i') return PRIiFAST64; if (name[3] == 'o') return PRIoFAST64; if (name[3] == 'u') return PRIuFAST64; if (name[3] == 'x') return PRIxFAST64; if (name[3] == 'X') return PRIXFAST64; abort (); } } if (name[4] == 'M' && name[5] == 'A' && name[6] == 'X' && name[7] == '\0') { if (name[3] == 'd') return PRIdMAX; if (name[3] == 'i') return PRIiMAX; if (name[3] == 'o') return PRIoMAX; if (name[3] == 'u') return PRIuMAX; if (name[3] == 'x') return PRIxMAX; if (name[3] == 'X') return PRIXMAX; abort (); } if (name[4] == 'P' && name[5] == 'T' && name[6] == 'R' && name[7] == '\0') { if (name[3] == 'd') return PRIdPTR; if (name[3] == 'i') return PRIiPTR; if (name[3] == 'o') return PRIoPTR; if (name[3] == 'u') return PRIuPTR; if (name[3] == 'x') return PRIxPTR; if (name[3] == 'X') return PRIXPTR; abort (); } } } /* Test for a glibc specific printf() format directive flag. */ if (name[0] == 'I' && name[1] == '\0') { #if defined _LIBC || __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2) /* The 'I' flag, in numeric format directives, replaces ASCII digits with the 'outdigits' defined in the LC_CTYPE locale facet. This is used for Farsi (Persian) and maybe Arabic. */ return "I"; #else return ""; #endif } /* Other system dependent strings are not valid. */ return NULL; } /* Load the message catalogs specified by FILENAME. If it is no valid message catalog do nothing. */ void internal_function _nl_load_domain (struct loaded_l10nfile *domain_file, struct binding *domainbinding) { __libc_lock_define_initialized_recursive (static, lock) int fd = -1; size_t size; #ifdef _LIBC struct stat64 st; #else struct stat st; #endif struct mo_file_header *data = (struct mo_file_header *) -1; int use_mmap = 0; struct loaded_domain *domain; int revision; const char *nullentry; size_t nullentrylen; __libc_lock_lock_recursive (lock); if (domain_file->decided != 0) { /* There are two possibilities: + this is the same thread calling again during this initialization via _nl_find_msg. We have initialized everything this call needs. + this is another thread which tried to initialize this object. Not necessary anymore since if the lock is available this is finished. */ goto done; } domain_file->decided = -1; domain_file->data = NULL; /* Note that it would be useless to store domainbinding in domain_file because domainbinding might be == NULL now but != NULL later (after a call to bind_textdomain_codeset). */ /* If the record does not represent a valid locale the FILENAME might be NULL. This can happen when according to the given specification the locale file name is different for XPG and CEN syntax. */ if (domain_file->filename == NULL) goto out; /* Try to open the addressed file. */ fd = open (domain_file->filename, O_RDONLY | O_BINARY); if (fd == -1) goto out; /* We must know about the size of the file. */ if ( #ifdef _LIBC __builtin_expect (fstat64 (fd, &st) != 0, 0) #else __builtin_expect (fstat (fd, &st) != 0, 0) #endif || __builtin_expect ((size = (size_t) st.st_size) != st.st_size, 0) || __builtin_expect (size < sizeof (struct mo_file_header), 0)) /* Something went wrong. */ goto out; #ifdef HAVE_MMAP /* Now we are ready to load the file. If mmap() is available we try this first. If not available or it failed we try to load it. */ data = (struct mo_file_header *) mmap (NULL, size, PROT_READ, MAP_PRIVATE, fd, 0); if (__builtin_expect (data != (struct mo_file_header *) -1, 1)) { /* mmap() call was successful. */ close (fd); fd = -1; use_mmap = 1; } #endif /* If the data is not yet available (i.e. mmap'ed) we try to load it manually. */ if (data == (struct mo_file_header *) -1) { size_t to_read; char *read_ptr; data = (struct mo_file_header *) malloc (size); if (data == NULL) goto out; to_read = size; read_ptr = (char *) data; do { long int nb = (long int) read (fd, read_ptr, to_read); if (nb <= 0) { #ifdef EINTR if (nb == -1 && errno == EINTR) continue; #endif goto out; } read_ptr += nb; to_read -= nb; } while (to_read > 0); close (fd); fd = -1; } /* Using the magic number we can test whether it really is a message catalog file. */ if (__builtin_expect (data->magic != _MAGIC && data->magic != _MAGIC_SWAPPED, 0)) { /* The magic number is wrong: not a message catalog file. */ #ifdef HAVE_MMAP if (use_mmap) munmap ((caddr_t) data, size); else #endif free (data); goto out; } domain = (struct loaded_domain *) malloc (sizeof (struct loaded_domain)); if (domain == NULL) goto out; domain_file->data = domain; domain->data = (char *) data; domain->use_mmap = use_mmap; domain->mmap_size = size; domain->must_swap = data->magic != _MAGIC; domain->malloced = NULL; /* Fill in the information about the available tables. */ revision = W (domain->must_swap, data->revision); /* We support only the major revisions 0 and 1. */ switch (revision >> 16) { case 0: case 1: domain->nstrings = W (domain->must_swap, data->nstrings); domain->orig_tab = (const struct string_desc *) ((char *) data + W (domain->must_swap, data->orig_tab_offset)); domain->trans_tab = (const struct string_desc *) ((char *) data + W (domain->must_swap, data->trans_tab_offset)); domain->hash_size = W (domain->must_swap, data->hash_tab_size); domain->hash_tab = (domain->hash_size > 2 ? (const nls_uint32 *) ((char *) data + W (domain->must_swap, data->hash_tab_offset)) : NULL); domain->must_swap_hash_tab = domain->must_swap; /* Now dispatch on the minor revision. */ switch (revision & 0xffff) { case 0: domain->n_sysdep_strings = 0; domain->orig_sysdep_tab = NULL; domain->trans_sysdep_tab = NULL; break; case 1: default: { nls_uint32 n_sysdep_strings; if (domain->hash_tab == NULL) /* This is invalid. These minor revisions need a hash table. */ goto invalid; n_sysdep_strings = W (domain->must_swap, data->n_sysdep_strings); if (n_sysdep_strings > 0) { nls_uint32 n_sysdep_segments; const struct sysdep_segment *sysdep_segments; const char **sysdep_segment_values; const nls_uint32 *orig_sysdep_tab; const nls_uint32 *trans_sysdep_tab; nls_uint32 n_inmem_sysdep_strings; size_t memneed; char *mem; struct sysdep_string_desc *inmem_orig_sysdep_tab; struct sysdep_string_desc *inmem_trans_sysdep_tab; nls_uint32 *inmem_hash_tab; unsigned int i, j; /* Get the values of the system dependent segments. */ n_sysdep_segments = W (domain->must_swap, data->n_sysdep_segments); sysdep_segments = (const struct sysdep_segment *) ((char *) data + W (domain->must_swap, data->sysdep_segments_offset)); sysdep_segment_values = (const char **) alloca (n_sysdep_segments * sizeof (const char *)); for (i = 0; i < n_sysdep_segments; i++) { const char *name = (char *) data + W (domain->must_swap, sysdep_segments[i].offset); nls_uint32 namelen = W (domain->must_swap, sysdep_segments[i].length); if (!(namelen > 0 && name[namelen - 1] == '\0')) { freea (sysdep_segment_values); goto invalid; } sysdep_segment_values[i] = get_sysdep_segment_value (name); } orig_sysdep_tab = (const nls_uint32 *) ((char *) data + W (domain->must_swap, data->orig_sysdep_tab_offset)); trans_sysdep_tab = (const nls_uint32 *) ((char *) data + W (domain->must_swap, data->trans_sysdep_tab_offset)); /* Compute the amount of additional memory needed for the system dependent strings and the augmented hash table. At the same time, also drop string pairs which refer to an undefined system dependent segment. */ n_inmem_sysdep_strings = 0; memneed = domain->hash_size * sizeof (nls_uint32); for (i = 0; i < n_sysdep_strings; i++) { int valid = 1; size_t needs[2]; for (j = 0; j < 2; j++) { const struct sysdep_string *sysdep_string = (const struct sysdep_string *) ((char *) data + W (domain->must_swap, j == 0 ? orig_sysdep_tab[i] : trans_sysdep_tab[i])); size_t need = 0; const struct segment_pair *p = sysdep_string->segments; if (W (domain->must_swap, p->sysdepref) != SEGMENTS_END) for (p = sysdep_string->segments;; p++) { nls_uint32 sysdepref; need += W (domain->must_swap, p->segsize); sysdepref = W (domain->must_swap, p->sysdepref); if (sysdepref == SEGMENTS_END) break; if (sysdepref >= n_sysdep_segments) { /* Invalid. */ freea (sysdep_segment_values); goto invalid; } if (sysdep_segment_values[sysdepref] == NULL) { /* This particular string pair is invalid. */ valid = 0; break; } need += strlen (sysdep_segment_values[sysdepref]); } needs[j] = need; if (!valid) break; } if (valid) { n_inmem_sysdep_strings++; memneed += needs[0] + needs[1]; } } memneed += 2 * n_inmem_sysdep_strings * sizeof (struct sysdep_string_desc); if (n_inmem_sysdep_strings > 0) { unsigned int k; /* Allocate additional memory. */ mem = (char *) malloc (memneed); if (mem == NULL) goto invalid; domain->malloced = mem; inmem_orig_sysdep_tab = (struct sysdep_string_desc *) mem; mem += n_inmem_sysdep_strings * sizeof (struct sysdep_string_desc); inmem_trans_sysdep_tab = (struct sysdep_string_desc *) mem; mem += n_inmem_sysdep_strings * sizeof (struct sysdep_string_desc); inmem_hash_tab = (nls_uint32 *) mem; mem += domain->hash_size * sizeof (nls_uint32); /* Compute the system dependent strings. */ k = 0; for (i = 0; i < n_sysdep_strings; i++) { int valid = 1; for (j = 0; j < 2; j++) { const struct sysdep_string *sysdep_string = (const struct sysdep_string *) ((char *) data + W (domain->must_swap, j == 0 ? orig_sysdep_tab[i] : trans_sysdep_tab[i])); const struct segment_pair *p = sysdep_string->segments; if (W (domain->must_swap, p->sysdepref) != SEGMENTS_END) for (p = sysdep_string->segments;; p++) { nls_uint32 sysdepref; sysdepref = W (domain->must_swap, p->sysdepref); if (sysdepref == SEGMENTS_END) break; if (sysdep_segment_values[sysdepref] == NULL) { /* This particular string pair is invalid. */ valid = 0; break; } } if (!valid) break; } if (valid) { for (j = 0; j < 2; j++) { const struct sysdep_string *sysdep_string = (const struct sysdep_string *) ((char *) data + W (domain->must_swap, j == 0 ? orig_sysdep_tab[i] : trans_sysdep_tab[i])); const char *static_segments = (char *) data + W (domain->must_swap, sysdep_string->offset); const struct segment_pair *p = sysdep_string->segments; /* Concatenate the segments, and fill inmem_orig_sysdep_tab[k] (for j == 0) and inmem_trans_sysdep_tab[k] (for j == 1). */ struct sysdep_string_desc *inmem_tab_entry = (j == 0 ? inmem_orig_sysdep_tab : inmem_trans_sysdep_tab) + k; if (W (domain->must_swap, p->sysdepref) == SEGMENTS_END) { /* Only one static segment. */ inmem_tab_entry->length = W (domain->must_swap, p->segsize); inmem_tab_entry->pointer = static_segments; } else { inmem_tab_entry->pointer = mem; for (p = sysdep_string->segments;; p++) { nls_uint32 segsize = W (domain->must_swap, p->segsize); nls_uint32 sysdepref = W (domain->must_swap, p->sysdepref); size_t n; if (segsize > 0) { memcpy (mem, static_segments, segsize); mem += segsize; static_segments += segsize; } if (sysdepref == SEGMENTS_END) break; n = strlen (sysdep_segment_values[sysdepref]); memcpy (mem, sysdep_segment_values[sysdepref], n); mem += n; } inmem_tab_entry->length = mem - inmem_tab_entry->pointer; } } k++; } } if (k != n_inmem_sysdep_strings) abort (); /* Compute the augmented hash table. */ for (i = 0; i < domain->hash_size; i++) inmem_hash_tab[i] = W (domain->must_swap_hash_tab, domain->hash_tab[i]); for (i = 0; i < n_inmem_sysdep_strings; i++) { const char *msgid = inmem_orig_sysdep_tab[i].pointer; nls_uint32 hash_val = __hash_string (msgid); nls_uint32 idx = hash_val % domain->hash_size; nls_uint32 incr = 1 + (hash_val % (domain->hash_size - 2)); for (;;) { if (inmem_hash_tab[idx] == 0) { /* Hash table entry is empty. Use it. */ inmem_hash_tab[idx] = 1 + domain->nstrings + i; break; } if (idx >= domain->hash_size - incr) idx -= domain->hash_size - incr; else idx += incr; } } domain->n_sysdep_strings = n_inmem_sysdep_strings; domain->orig_sysdep_tab = inmem_orig_sysdep_tab; domain->trans_sysdep_tab = inmem_trans_sysdep_tab; domain->hash_tab = inmem_hash_tab; domain->must_swap_hash_tab = 0; } else { domain->n_sysdep_strings = 0; domain->orig_sysdep_tab = NULL; domain->trans_sysdep_tab = NULL; } freea (sysdep_segment_values); } else { domain->n_sysdep_strings = 0; domain->orig_sysdep_tab = NULL; domain->trans_sysdep_tab = NULL; } } break; } break; default: /* This is an invalid revision. */ invalid: /* This is an invalid .mo file. */ if (domain->malloced) free (domain->malloced); #ifdef HAVE_MMAP if (use_mmap) munmap ((caddr_t) data, size); else #endif free (data); free (domain); domain_file->data = NULL; goto out; } /* No caches of converted translations so far. */ domain->conversions = NULL; domain->nconversions = 0; gl_rwlock_init (domain->conversions_lock); /* Get the header entry and look for a plural specification. */ #ifdef IN_LIBGLOCALE nullentry = _nl_find_msg (domain_file, domainbinding, NULL, "", &nullentrylen); #else nullentry = _nl_find_msg (domain_file, domainbinding, "", 0, &nullentrylen); #endif EXTRACT_PLURAL_EXPRESSION (nullentry, &domain->plural, &domain->nplurals); out: if (fd != -1) close (fd); domain_file->decided = 1; done: __libc_lock_unlock_recursive (lock); } #ifdef _LIBC void internal_function __libc_freeres_fn_section _nl_unload_domain (struct loaded_domain *domain) { size_t i; if (domain->plural != &__gettext_germanic_plural) __gettext_free_exp ((struct expression *) domain->plural); for (i = 0; i < domain->nconversions; i++) { struct converted_domain *convd = &domain->conversions[i]; free (convd->encoding); if (convd->conv_tab != NULL && convd->conv_tab != (char **) -1) free (convd->conv_tab); if (convd->conv != (__gconv_t) -1) __gconv_close (convd->conv); } if (domain->conversions != NULL) free (domain->conversions); __libc_rwlock_fini (domain->conversions_lock); if (domain->malloced) free (domain->malloced); # ifdef _POSIX_MAPPED_FILES if (domain->use_mmap) munmap ((caddr_t) domain->data, domain->mmap_size); else # endif /* _POSIX_MAPPED_FILES */ free ((void *) domain->data); free (domain); } #endif enscript-1.6.5.90/intl/gettext.c0000644000175000017500000000355411606344057013335 00000000000000/* Implementation of gettext(3) function. Copyright (C) 1995, 1997, 2000-2003 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 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 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H # include #endif #ifdef _LIBC # define __need_NULL # include #else # include /* Just for NULL. */ #endif #include "gettextP.h" #ifdef _LIBC # include #else # include "libgnuintl.h" #endif /* @@ end of prolog @@ */ /* Names for the libintl functions are a problem. They must not clash with existing names and they should follow ANSI C. But this source code is also used in GNU C Library where the names have a __ prefix. So we have to make a difference here. */ #ifdef _LIBC # define GETTEXT __gettext # define DCGETTEXT INTUSE(__dcgettext) #else # define GETTEXT libintl_gettext # define DCGETTEXT libintl_dcgettext #endif /* Look up MSGID in the current default message catalog for the current LC_MESSAGES locale. If not found, returns MSGID itself (the default text). */ char * GETTEXT (const char *msgid) { return DCGETTEXT (NULL, msgid, LC_MESSAGES); } #ifdef _LIBC /* Alias for function name in GNU C Library. */ weak_alias (__gettext, gettext); #endif enscript-1.6.5.90/intl/lock.h0000644000175000017500000012735611606344060012607 00000000000000/* Locking in multithreaded situations. Copyright (C) 2005-2007 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 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 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* Written by Bruno Haible , 2005. Based on GCC's gthr-posix.h, gthr-posix95.h, gthr-solaris.h, gthr-win32.h. */ /* This file contains locking primitives for use with a given thread library. It does not contain primitives for creating threads or for other synchronization primitives. Normal (non-recursive) locks: Type: gl_lock_t Declaration: gl_lock_define(extern, name) Initializer: gl_lock_define_initialized(, name) Initialization: gl_lock_init (name); Taking the lock: gl_lock_lock (name); Releasing the lock: gl_lock_unlock (name); De-initialization: gl_lock_destroy (name); Read-Write (non-recursive) locks: Type: gl_rwlock_t Declaration: gl_rwlock_define(extern, name) Initializer: gl_rwlock_define_initialized(, name) Initialization: gl_rwlock_init (name); Taking the lock: gl_rwlock_rdlock (name); gl_rwlock_wrlock (name); Releasing the lock: gl_rwlock_unlock (name); De-initialization: gl_rwlock_destroy (name); Recursive locks: Type: gl_recursive_lock_t Declaration: gl_recursive_lock_define(extern, name) Initializer: gl_recursive_lock_define_initialized(, name) Initialization: gl_recursive_lock_init (name); Taking the lock: gl_recursive_lock_lock (name); Releasing the lock: gl_recursive_lock_unlock (name); De-initialization: gl_recursive_lock_destroy (name); Once-only execution: Type: gl_once_t Initializer: gl_once_define(extern, name) Execution: gl_once (name, initfunction); */ #ifndef _LOCK_H #define _LOCK_H /* ========================================================================= */ #if USE_POSIX_THREADS /* Use the POSIX threads library. */ # include # include # ifdef __cplusplus extern "C" { # endif # if PTHREAD_IN_USE_DETECTION_HARD /* The pthread_in_use() detection needs to be done at runtime. */ # define pthread_in_use() \ glthread_in_use () extern int glthread_in_use (void); # endif # if USE_POSIX_THREADS_WEAK /* Use weak references to the POSIX threads library. */ /* Weak references avoid dragging in external libraries if the other parts of the program don't use them. Here we use them, because we don't want every program that uses libintl to depend on libpthread. This assumes that libpthread would not be loaded after libintl; i.e. if libintl is loaded first, by an executable that does not depend on libpthread, and then a module is dynamically loaded that depends on libpthread, libintl will not be multithread-safe. */ /* The way to test at runtime whether libpthread is present is to test whether a function pointer's value, such as &pthread_mutex_init, is non-NULL. However, some versions of GCC have a bug through which, in PIC mode, &foo != NULL always evaluates to true if there is a direct call to foo(...) in the same function. To avoid this, we test the address of a function in libpthread that we don't use. */ # pragma weak pthread_mutex_init # pragma weak pthread_mutex_lock # pragma weak pthread_mutex_unlock # pragma weak pthread_mutex_destroy # pragma weak pthread_rwlock_init # pragma weak pthread_rwlock_rdlock # pragma weak pthread_rwlock_wrlock # pragma weak pthread_rwlock_unlock # pragma weak pthread_rwlock_destroy # pragma weak pthread_once # pragma weak pthread_cond_init # pragma weak pthread_cond_wait # pragma weak pthread_cond_signal # pragma weak pthread_cond_broadcast # pragma weak pthread_cond_destroy # pragma weak pthread_mutexattr_init # pragma weak pthread_mutexattr_settype # pragma weak pthread_mutexattr_destroy # ifndef pthread_self # pragma weak pthread_self # endif # if !PTHREAD_IN_USE_DETECTION_HARD # pragma weak pthread_cancel # define pthread_in_use() (pthread_cancel != NULL) # endif # else # if !PTHREAD_IN_USE_DETECTION_HARD # define pthread_in_use() 1 # endif # endif /* -------------------------- gl_lock_t datatype -------------------------- */ typedef pthread_mutex_t gl_lock_t; # define gl_lock_define(STORAGECLASS, NAME) \ STORAGECLASS pthread_mutex_t NAME; # define gl_lock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS pthread_mutex_t NAME = gl_lock_initializer; # define gl_lock_initializer \ PTHREAD_MUTEX_INITIALIZER # define gl_lock_init(NAME) \ do \ { \ if (pthread_in_use () && pthread_mutex_init (&NAME, NULL) != 0) \ abort (); \ } \ while (0) # define gl_lock_lock(NAME) \ do \ { \ if (pthread_in_use () && pthread_mutex_lock (&NAME) != 0) \ abort (); \ } \ while (0) # define gl_lock_unlock(NAME) \ do \ { \ if (pthread_in_use () && pthread_mutex_unlock (&NAME) != 0) \ abort (); \ } \ while (0) # define gl_lock_destroy(NAME) \ do \ { \ if (pthread_in_use () && pthread_mutex_destroy (&NAME) != 0) \ abort (); \ } \ while (0) /* ------------------------- gl_rwlock_t datatype ------------------------- */ # if HAVE_PTHREAD_RWLOCK # ifdef PTHREAD_RWLOCK_INITIALIZER typedef pthread_rwlock_t gl_rwlock_t; # define gl_rwlock_define(STORAGECLASS, NAME) \ STORAGECLASS pthread_rwlock_t NAME; # define gl_rwlock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS pthread_rwlock_t NAME = gl_rwlock_initializer; # define gl_rwlock_initializer \ PTHREAD_RWLOCK_INITIALIZER # define gl_rwlock_init(NAME) \ do \ { \ if (pthread_in_use () && pthread_rwlock_init (&NAME, NULL) != 0) \ abort (); \ } \ while (0) # define gl_rwlock_rdlock(NAME) \ do \ { \ if (pthread_in_use () && pthread_rwlock_rdlock (&NAME) != 0) \ abort (); \ } \ while (0) # define gl_rwlock_wrlock(NAME) \ do \ { \ if (pthread_in_use () && pthread_rwlock_wrlock (&NAME) != 0) \ abort (); \ } \ while (0) # define gl_rwlock_unlock(NAME) \ do \ { \ if (pthread_in_use () && pthread_rwlock_unlock (&NAME) != 0) \ abort (); \ } \ while (0) # define gl_rwlock_destroy(NAME) \ do \ { \ if (pthread_in_use () && pthread_rwlock_destroy (&NAME) != 0) \ abort (); \ } \ while (0) # else typedef struct { int initialized; pthread_mutex_t guard; /* protects the initialization */ pthread_rwlock_t rwlock; /* read-write lock */ } gl_rwlock_t; # define gl_rwlock_define(STORAGECLASS, NAME) \ STORAGECLASS gl_rwlock_t NAME; # define gl_rwlock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS gl_rwlock_t NAME = gl_rwlock_initializer; # define gl_rwlock_initializer \ { 0, PTHREAD_MUTEX_INITIALIZER } # define gl_rwlock_init(NAME) \ do \ { \ if (pthread_in_use ()) \ glthread_rwlock_init (&NAME); \ } \ while (0) # define gl_rwlock_rdlock(NAME) \ do \ { \ if (pthread_in_use ()) \ glthread_rwlock_rdlock (&NAME); \ } \ while (0) # define gl_rwlock_wrlock(NAME) \ do \ { \ if (pthread_in_use ()) \ glthread_rwlock_wrlock (&NAME); \ } \ while (0) # define gl_rwlock_unlock(NAME) \ do \ { \ if (pthread_in_use ()) \ glthread_rwlock_unlock (&NAME); \ } \ while (0) # define gl_rwlock_destroy(NAME) \ do \ { \ if (pthread_in_use ()) \ glthread_rwlock_destroy (&NAME); \ } \ while (0) extern void glthread_rwlock_init (gl_rwlock_t *lock); extern void glthread_rwlock_rdlock (gl_rwlock_t *lock); extern void glthread_rwlock_wrlock (gl_rwlock_t *lock); extern void glthread_rwlock_unlock (gl_rwlock_t *lock); extern void glthread_rwlock_destroy (gl_rwlock_t *lock); # endif # else typedef struct { pthread_mutex_t lock; /* protects the remaining fields */ pthread_cond_t waiting_readers; /* waiting readers */ pthread_cond_t waiting_writers; /* waiting writers */ unsigned int waiting_writers_count; /* number of waiting writers */ int runcount; /* number of readers running, or -1 when a writer runs */ } gl_rwlock_t; # define gl_rwlock_define(STORAGECLASS, NAME) \ STORAGECLASS gl_rwlock_t NAME; # define gl_rwlock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS gl_rwlock_t NAME = gl_rwlock_initializer; # define gl_rwlock_initializer \ { PTHREAD_MUTEX_INITIALIZER, PTHREAD_COND_INITIALIZER, PTHREAD_COND_INITIALIZER, 0, 0 } # define gl_rwlock_init(NAME) \ do \ { \ if (pthread_in_use ()) \ glthread_rwlock_init (&NAME); \ } \ while (0) # define gl_rwlock_rdlock(NAME) \ do \ { \ if (pthread_in_use ()) \ glthread_rwlock_rdlock (&NAME); \ } \ while (0) # define gl_rwlock_wrlock(NAME) \ do \ { \ if (pthread_in_use ()) \ glthread_rwlock_wrlock (&NAME); \ } \ while (0) # define gl_rwlock_unlock(NAME) \ do \ { \ if (pthread_in_use ()) \ glthread_rwlock_unlock (&NAME); \ } \ while (0) # define gl_rwlock_destroy(NAME) \ do \ { \ if (pthread_in_use ()) \ glthread_rwlock_destroy (&NAME); \ } \ while (0) extern void glthread_rwlock_init (gl_rwlock_t *lock); extern void glthread_rwlock_rdlock (gl_rwlock_t *lock); extern void glthread_rwlock_wrlock (gl_rwlock_t *lock); extern void glthread_rwlock_unlock (gl_rwlock_t *lock); extern void glthread_rwlock_destroy (gl_rwlock_t *lock); # endif /* --------------------- gl_recursive_lock_t datatype --------------------- */ # if HAVE_PTHREAD_MUTEX_RECURSIVE # if defined PTHREAD_RECURSIVE_MUTEX_INITIALIZER || defined PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP typedef pthread_mutex_t gl_recursive_lock_t; # define gl_recursive_lock_define(STORAGECLASS, NAME) \ STORAGECLASS pthread_mutex_t NAME; # define gl_recursive_lock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS pthread_mutex_t NAME = gl_recursive_lock_initializer; # ifdef PTHREAD_RECURSIVE_MUTEX_INITIALIZER # define gl_recursive_lock_initializer \ PTHREAD_RECURSIVE_MUTEX_INITIALIZER # else # define gl_recursive_lock_initializer \ PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP # endif # define gl_recursive_lock_init(NAME) \ do \ { \ if (pthread_in_use () && pthread_mutex_init (&NAME, NULL) != 0) \ abort (); \ } \ while (0) # define gl_recursive_lock_lock(NAME) \ do \ { \ if (pthread_in_use () && pthread_mutex_lock (&NAME) != 0) \ abort (); \ } \ while (0) # define gl_recursive_lock_unlock(NAME) \ do \ { \ if (pthread_in_use () && pthread_mutex_unlock (&NAME) != 0) \ abort (); \ } \ while (0) # define gl_recursive_lock_destroy(NAME) \ do \ { \ if (pthread_in_use () && pthread_mutex_destroy (&NAME) != 0) \ abort (); \ } \ while (0) # else typedef struct { pthread_mutex_t recmutex; /* recursive mutex */ pthread_mutex_t guard; /* protects the initialization */ int initialized; } gl_recursive_lock_t; # define gl_recursive_lock_define(STORAGECLASS, NAME) \ STORAGECLASS gl_recursive_lock_t NAME; # define gl_recursive_lock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS gl_recursive_lock_t NAME = gl_recursive_lock_initializer; # define gl_recursive_lock_initializer \ { PTHREAD_MUTEX_INITIALIZER, PTHREAD_MUTEX_INITIALIZER, 0 } # define gl_recursive_lock_init(NAME) \ do \ { \ if (pthread_in_use ()) \ glthread_recursive_lock_init (&NAME); \ } \ while (0) # define gl_recursive_lock_lock(NAME) \ do \ { \ if (pthread_in_use ()) \ glthread_recursive_lock_lock (&NAME); \ } \ while (0) # define gl_recursive_lock_unlock(NAME) \ do \ { \ if (pthread_in_use ()) \ glthread_recursive_lock_unlock (&NAME); \ } \ while (0) # define gl_recursive_lock_destroy(NAME) \ do \ { \ if (pthread_in_use ()) \ glthread_recursive_lock_destroy (&NAME); \ } \ while (0) extern void glthread_recursive_lock_init (gl_recursive_lock_t *lock); extern void glthread_recursive_lock_lock (gl_recursive_lock_t *lock); extern void glthread_recursive_lock_unlock (gl_recursive_lock_t *lock); extern void glthread_recursive_lock_destroy (gl_recursive_lock_t *lock); # endif # else /* Old versions of POSIX threads on Solaris did not have recursive locks. We have to implement them ourselves. */ typedef struct { pthread_mutex_t mutex; pthread_t owner; unsigned long depth; } gl_recursive_lock_t; # define gl_recursive_lock_define(STORAGECLASS, NAME) \ STORAGECLASS gl_recursive_lock_t NAME; # define gl_recursive_lock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS gl_recursive_lock_t NAME = gl_recursive_lock_initializer; # define gl_recursive_lock_initializer \ { PTHREAD_MUTEX_INITIALIZER, (pthread_t) 0, 0 } # define gl_recursive_lock_init(NAME) \ do \ { \ if (pthread_in_use ()) \ glthread_recursive_lock_init (&NAME); \ } \ while (0) # define gl_recursive_lock_lock(NAME) \ do \ { \ if (pthread_in_use ()) \ glthread_recursive_lock_lock (&NAME); \ } \ while (0) # define gl_recursive_lock_unlock(NAME) \ do \ { \ if (pthread_in_use ()) \ glthread_recursive_lock_unlock (&NAME); \ } \ while (0) # define gl_recursive_lock_destroy(NAME) \ do \ { \ if (pthread_in_use ()) \ glthread_recursive_lock_destroy (&NAME); \ } \ while (0) extern void glthread_recursive_lock_init (gl_recursive_lock_t *lock); extern void glthread_recursive_lock_lock (gl_recursive_lock_t *lock); extern void glthread_recursive_lock_unlock (gl_recursive_lock_t *lock); extern void glthread_recursive_lock_destroy (gl_recursive_lock_t *lock); # endif /* -------------------------- gl_once_t datatype -------------------------- */ typedef pthread_once_t gl_once_t; # define gl_once_define(STORAGECLASS, NAME) \ STORAGECLASS pthread_once_t NAME = PTHREAD_ONCE_INIT; # define gl_once(NAME, INITFUNCTION) \ do \ { \ if (pthread_in_use ()) \ { \ if (pthread_once (&NAME, INITFUNCTION) != 0) \ abort (); \ } \ else \ { \ if (glthread_once_singlethreaded (&NAME)) \ INITFUNCTION (); \ } \ } \ while (0) extern int glthread_once_singlethreaded (pthread_once_t *once_control); # ifdef __cplusplus } # endif #endif /* ========================================================================= */ #if USE_PTH_THREADS /* Use the GNU Pth threads library. */ # include # include # ifdef __cplusplus extern "C" { # endif # if USE_PTH_THREADS_WEAK /* Use weak references to the GNU Pth threads library. */ # pragma weak pth_mutex_init # pragma weak pth_mutex_acquire # pragma weak pth_mutex_release # pragma weak pth_rwlock_init # pragma weak pth_rwlock_acquire # pragma weak pth_rwlock_release # pragma weak pth_once # pragma weak pth_cancel # define pth_in_use() (pth_cancel != NULL) # else # define pth_in_use() 1 # endif /* -------------------------- gl_lock_t datatype -------------------------- */ typedef pth_mutex_t gl_lock_t; # define gl_lock_define(STORAGECLASS, NAME) \ STORAGECLASS pth_mutex_t NAME; # define gl_lock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS pth_mutex_t NAME = gl_lock_initializer; # define gl_lock_initializer \ PTH_MUTEX_INIT # define gl_lock_init(NAME) \ do \ { \ if (pth_in_use() && !pth_mutex_init (&NAME)) \ abort (); \ } \ while (0) # define gl_lock_lock(NAME) \ do \ { \ if (pth_in_use() && !pth_mutex_acquire (&NAME, 0, NULL)) \ abort (); \ } \ while (0) # define gl_lock_unlock(NAME) \ do \ { \ if (pth_in_use() && !pth_mutex_release (&NAME)) \ abort (); \ } \ while (0) # define gl_lock_destroy(NAME) \ (void)(&NAME) /* ------------------------- gl_rwlock_t datatype ------------------------- */ typedef pth_rwlock_t gl_rwlock_t; # define gl_rwlock_define(STORAGECLASS, NAME) \ STORAGECLASS pth_rwlock_t NAME; # define gl_rwlock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS pth_rwlock_t NAME = gl_rwlock_initializer; # define gl_rwlock_initializer \ PTH_RWLOCK_INIT # define gl_rwlock_init(NAME) \ do \ { \ if (pth_in_use() && !pth_rwlock_init (&NAME)) \ abort (); \ } \ while (0) # define gl_rwlock_rdlock(NAME) \ do \ { \ if (pth_in_use() \ && !pth_rwlock_acquire (&NAME, PTH_RWLOCK_RD, 0, NULL)) \ abort (); \ } \ while (0) # define gl_rwlock_wrlock(NAME) \ do \ { \ if (pth_in_use() \ && !pth_rwlock_acquire (&NAME, PTH_RWLOCK_RW, 0, NULL)) \ abort (); \ } \ while (0) # define gl_rwlock_unlock(NAME) \ do \ { \ if (pth_in_use() && !pth_rwlock_release (&NAME)) \ abort (); \ } \ while (0) # define gl_rwlock_destroy(NAME) \ (void)(&NAME) /* --------------------- gl_recursive_lock_t datatype --------------------- */ /* In Pth, mutexes are recursive by default. */ typedef pth_mutex_t gl_recursive_lock_t; # define gl_recursive_lock_define(STORAGECLASS, NAME) \ STORAGECLASS pth_mutex_t NAME; # define gl_recursive_lock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS pth_mutex_t NAME = gl_recursive_lock_initializer; # define gl_recursive_lock_initializer \ PTH_MUTEX_INIT # define gl_recursive_lock_init(NAME) \ do \ { \ if (pth_in_use() && !pth_mutex_init (&NAME)) \ abort (); \ } \ while (0) # define gl_recursive_lock_lock(NAME) \ do \ { \ if (pth_in_use() && !pth_mutex_acquire (&NAME, 0, NULL)) \ abort (); \ } \ while (0) # define gl_recursive_lock_unlock(NAME) \ do \ { \ if (pth_in_use() && !pth_mutex_release (&NAME)) \ abort (); \ } \ while (0) # define gl_recursive_lock_destroy(NAME) \ (void)(&NAME) /* -------------------------- gl_once_t datatype -------------------------- */ typedef pth_once_t gl_once_t; # define gl_once_define(STORAGECLASS, NAME) \ STORAGECLASS pth_once_t NAME = PTH_ONCE_INIT; # define gl_once(NAME, INITFUNCTION) \ do \ { \ if (pth_in_use ()) \ { \ void (*gl_once_temp) (void) = INITFUNCTION; \ if (!pth_once (&NAME, glthread_once_call, &gl_once_temp)) \ abort (); \ } \ else \ { \ if (glthread_once_singlethreaded (&NAME)) \ INITFUNCTION (); \ } \ } \ while (0) extern void glthread_once_call (void *arg); extern int glthread_once_singlethreaded (pth_once_t *once_control); # ifdef __cplusplus } # endif #endif /* ========================================================================= */ #if USE_SOLARIS_THREADS /* Use the old Solaris threads library. */ # include # include # include # ifdef __cplusplus extern "C" { # endif # if USE_SOLARIS_THREADS_WEAK /* Use weak references to the old Solaris threads library. */ # pragma weak mutex_init # pragma weak mutex_lock # pragma weak mutex_unlock # pragma weak mutex_destroy # pragma weak rwlock_init # pragma weak rw_rdlock # pragma weak rw_wrlock # pragma weak rw_unlock # pragma weak rwlock_destroy # pragma weak thr_self # pragma weak thr_suspend # define thread_in_use() (thr_suspend != NULL) # else # define thread_in_use() 1 # endif /* -------------------------- gl_lock_t datatype -------------------------- */ typedef mutex_t gl_lock_t; # define gl_lock_define(STORAGECLASS, NAME) \ STORAGECLASS mutex_t NAME; # define gl_lock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS mutex_t NAME = gl_lock_initializer; # define gl_lock_initializer \ DEFAULTMUTEX # define gl_lock_init(NAME) \ do \ { \ if (thread_in_use () && mutex_init (&NAME, USYNC_THREAD, NULL) != 0) \ abort (); \ } \ while (0) # define gl_lock_lock(NAME) \ do \ { \ if (thread_in_use () && mutex_lock (&NAME) != 0) \ abort (); \ } \ while (0) # define gl_lock_unlock(NAME) \ do \ { \ if (thread_in_use () && mutex_unlock (&NAME) != 0) \ abort (); \ } \ while (0) # define gl_lock_destroy(NAME) \ do \ { \ if (thread_in_use () && mutex_destroy (&NAME) != 0) \ abort (); \ } \ while (0) /* ------------------------- gl_rwlock_t datatype ------------------------- */ typedef rwlock_t gl_rwlock_t; # define gl_rwlock_define(STORAGECLASS, NAME) \ STORAGECLASS rwlock_t NAME; # define gl_rwlock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS rwlock_t NAME = gl_rwlock_initializer; # define gl_rwlock_initializer \ DEFAULTRWLOCK # define gl_rwlock_init(NAME) \ do \ { \ if (thread_in_use () && rwlock_init (&NAME, USYNC_THREAD, NULL) != 0) \ abort (); \ } \ while (0) # define gl_rwlock_rdlock(NAME) \ do \ { \ if (thread_in_use () && rw_rdlock (&NAME) != 0) \ abort (); \ } \ while (0) # define gl_rwlock_wrlock(NAME) \ do \ { \ if (thread_in_use () && rw_wrlock (&NAME) != 0) \ abort (); \ } \ while (0) # define gl_rwlock_unlock(NAME) \ do \ { \ if (thread_in_use () && rw_unlock (&NAME) != 0) \ abort (); \ } \ while (0) # define gl_rwlock_destroy(NAME) \ do \ { \ if (thread_in_use () && rwlock_destroy (&NAME) != 0) \ abort (); \ } \ while (0) /* --------------------- gl_recursive_lock_t datatype --------------------- */ /* Old Solaris threads did not have recursive locks. We have to implement them ourselves. */ typedef struct { mutex_t mutex; thread_t owner; unsigned long depth; } gl_recursive_lock_t; # define gl_recursive_lock_define(STORAGECLASS, NAME) \ STORAGECLASS gl_recursive_lock_t NAME; # define gl_recursive_lock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS gl_recursive_lock_t NAME = gl_recursive_lock_initializer; # define gl_recursive_lock_initializer \ { DEFAULTMUTEX, (thread_t) 0, 0 } # define gl_recursive_lock_init(NAME) \ do \ { \ if (thread_in_use ()) \ glthread_recursive_lock_init (&NAME); \ } \ while (0) # define gl_recursive_lock_lock(NAME) \ do \ { \ if (thread_in_use ()) \ glthread_recursive_lock_lock (&NAME); \ } \ while (0) # define gl_recursive_lock_unlock(NAME) \ do \ { \ if (thread_in_use ()) \ glthread_recursive_lock_unlock (&NAME); \ } \ while (0) # define gl_recursive_lock_destroy(NAME) \ do \ { \ if (thread_in_use ()) \ glthread_recursive_lock_destroy (&NAME); \ } \ while (0) extern void glthread_recursive_lock_init (gl_recursive_lock_t *lock); extern void glthread_recursive_lock_lock (gl_recursive_lock_t *lock); extern void glthread_recursive_lock_unlock (gl_recursive_lock_t *lock); extern void glthread_recursive_lock_destroy (gl_recursive_lock_t *lock); /* -------------------------- gl_once_t datatype -------------------------- */ typedef struct { volatile int inited; mutex_t mutex; } gl_once_t; # define gl_once_define(STORAGECLASS, NAME) \ STORAGECLASS gl_once_t NAME = { 0, DEFAULTMUTEX }; # define gl_once(NAME, INITFUNCTION) \ do \ { \ if (thread_in_use ()) \ { \ glthread_once (&NAME, INITFUNCTION); \ } \ else \ { \ if (glthread_once_singlethreaded (&NAME)) \ INITFUNCTION (); \ } \ } \ while (0) extern void glthread_once (gl_once_t *once_control, void (*initfunction) (void)); extern int glthread_once_singlethreaded (gl_once_t *once_control); # ifdef __cplusplus } # endif #endif /* ========================================================================= */ #if USE_WIN32_THREADS # include # ifdef __cplusplus extern "C" { # endif /* We can use CRITICAL_SECTION directly, rather than the Win32 Event, Mutex, Semaphore types, because - we need only to synchronize inside a single process (address space), not inter-process locking, - we don't need to support trylock operations. (TryEnterCriticalSection does not work on Windows 95/98/ME. Packages that need trylock usually define their own mutex type.) */ /* There is no way to statically initialize a CRITICAL_SECTION. It needs to be done lazily, once only. For this we need spinlocks. */ typedef struct { volatile int done; volatile long started; } gl_spinlock_t; /* -------------------------- gl_lock_t datatype -------------------------- */ typedef struct { gl_spinlock_t guard; /* protects the initialization */ CRITICAL_SECTION lock; } gl_lock_t; # define gl_lock_define(STORAGECLASS, NAME) \ STORAGECLASS gl_lock_t NAME; # define gl_lock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS gl_lock_t NAME = gl_lock_initializer; # define gl_lock_initializer \ { { 0, -1 } } # define gl_lock_init(NAME) \ glthread_lock_init (&NAME) # define gl_lock_lock(NAME) \ glthread_lock_lock (&NAME) # define gl_lock_unlock(NAME) \ glthread_lock_unlock (&NAME) # define gl_lock_destroy(NAME) \ glthread_lock_destroy (&NAME) extern void glthread_lock_init (gl_lock_t *lock); extern void glthread_lock_lock (gl_lock_t *lock); extern void glthread_lock_unlock (gl_lock_t *lock); extern void glthread_lock_destroy (gl_lock_t *lock); /* ------------------------- gl_rwlock_t datatype ------------------------- */ /* It is impossible to implement read-write locks using plain locks, without introducing an extra thread dedicated to managing read-write locks. Therefore here we need to use the low-level Event type. */ typedef struct { HANDLE *array; /* array of waiting threads, each represented by an event */ unsigned int count; /* number of waiting threads */ unsigned int alloc; /* length of allocated array */ unsigned int offset; /* index of first waiting thread in array */ } gl_waitqueue_t; typedef struct { gl_spinlock_t guard; /* protects the initialization */ CRITICAL_SECTION lock; /* protects the remaining fields */ gl_waitqueue_t waiting_readers; /* waiting readers */ gl_waitqueue_t waiting_writers; /* waiting writers */ int runcount; /* number of readers running, or -1 when a writer runs */ } gl_rwlock_t; # define gl_rwlock_define(STORAGECLASS, NAME) \ STORAGECLASS gl_rwlock_t NAME; # define gl_rwlock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS gl_rwlock_t NAME = gl_rwlock_initializer; # define gl_rwlock_initializer \ { { 0, -1 } } # define gl_rwlock_init(NAME) \ glthread_rwlock_init (&NAME) # define gl_rwlock_rdlock(NAME) \ glthread_rwlock_rdlock (&NAME) # define gl_rwlock_wrlock(NAME) \ glthread_rwlock_wrlock (&NAME) # define gl_rwlock_unlock(NAME) \ glthread_rwlock_unlock (&NAME) # define gl_rwlock_destroy(NAME) \ glthread_rwlock_destroy (&NAME) extern void glthread_rwlock_init (gl_rwlock_t *lock); extern void glthread_rwlock_rdlock (gl_rwlock_t *lock); extern void glthread_rwlock_wrlock (gl_rwlock_t *lock); extern void glthread_rwlock_unlock (gl_rwlock_t *lock); extern void glthread_rwlock_destroy (gl_rwlock_t *lock); /* --------------------- gl_recursive_lock_t datatype --------------------- */ /* The Win32 documentation says that CRITICAL_SECTION already implements a recursive lock. But we need not rely on it: It's easy to implement a recursive lock without this assumption. */ typedef struct { gl_spinlock_t guard; /* protects the initialization */ DWORD owner; unsigned long depth; CRITICAL_SECTION lock; } gl_recursive_lock_t; # define gl_recursive_lock_define(STORAGECLASS, NAME) \ STORAGECLASS gl_recursive_lock_t NAME; # define gl_recursive_lock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS gl_recursive_lock_t NAME = gl_recursive_lock_initializer; # define gl_recursive_lock_initializer \ { { 0, -1 }, 0, 0 } # define gl_recursive_lock_init(NAME) \ glthread_recursive_lock_init (&NAME) # define gl_recursive_lock_lock(NAME) \ glthread_recursive_lock_lock (&NAME) # define gl_recursive_lock_unlock(NAME) \ glthread_recursive_lock_unlock (&NAME) # define gl_recursive_lock_destroy(NAME) \ glthread_recursive_lock_destroy (&NAME) extern void glthread_recursive_lock_init (gl_recursive_lock_t *lock); extern void glthread_recursive_lock_lock (gl_recursive_lock_t *lock); extern void glthread_recursive_lock_unlock (gl_recursive_lock_t *lock); extern void glthread_recursive_lock_destroy (gl_recursive_lock_t *lock); /* -------------------------- gl_once_t datatype -------------------------- */ typedef struct { volatile int inited; volatile long started; CRITICAL_SECTION lock; } gl_once_t; # define gl_once_define(STORAGECLASS, NAME) \ STORAGECLASS gl_once_t NAME = { -1, -1 }; # define gl_once(NAME, INITFUNCTION) \ glthread_once (&NAME, INITFUNCTION) extern void glthread_once (gl_once_t *once_control, void (*initfunction) (void)); # ifdef __cplusplus } # endif #endif /* ========================================================================= */ #if !(USE_POSIX_THREADS || USE_PTH_THREADS || USE_SOLARIS_THREADS || USE_WIN32_THREADS) /* Provide dummy implementation if threads are not supported. */ /* -------------------------- gl_lock_t datatype -------------------------- */ typedef int gl_lock_t; # define gl_lock_define(STORAGECLASS, NAME) # define gl_lock_define_initialized(STORAGECLASS, NAME) # define gl_lock_init(NAME) # define gl_lock_lock(NAME) # define gl_lock_unlock(NAME) /* ------------------------- gl_rwlock_t datatype ------------------------- */ typedef int gl_rwlock_t; # define gl_rwlock_define(STORAGECLASS, NAME) # define gl_rwlock_define_initialized(STORAGECLASS, NAME) # define gl_rwlock_init(NAME) # define gl_rwlock_rdlock(NAME) # define gl_rwlock_wrlock(NAME) # define gl_rwlock_unlock(NAME) /* --------------------- gl_recursive_lock_t datatype --------------------- */ typedef int gl_recursive_lock_t; # define gl_recursive_lock_define(STORAGECLASS, NAME) # define gl_recursive_lock_define_initialized(STORAGECLASS, NAME) # define gl_recursive_lock_init(NAME) # define gl_recursive_lock_lock(NAME) # define gl_recursive_lock_unlock(NAME) /* -------------------------- gl_once_t datatype -------------------------- */ typedef int gl_once_t; # define gl_once_define(STORAGECLASS, NAME) \ STORAGECLASS gl_once_t NAME = 0; # define gl_once(NAME, INITFUNCTION) \ do \ { \ if (NAME == 0) \ { \ NAME = ~ 0; \ INITFUNCTION (); \ } \ } \ while (0) #endif /* ========================================================================= */ #endif /* _LOCK_H */ enscript-1.6.5.90/intl/vasnwprintf.h0000644000175000017500000000330611606344062014226 00000000000000/* vswprintf with automatic memory allocation. Copyright (C) 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 Library 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 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef _VASNWPRINTF_H #define _VASNWPRINTF_H /* Get va_list. */ #include /* Get wchar_t, size_t. */ #include #ifdef __cplusplus extern "C" { #endif /* Write formatted output to a string dynamically allocated with malloc(). You can pass a preallocated buffer for the result in RESULTBUF and its size in *LENGTHP; otherwise you pass RESULTBUF = NULL. If successful, return the address of the string (this may be = RESULTBUF if no dynamic memory allocation was necessary) and set *LENGTHP to the number of resulting bytes, excluding the trailing NUL. Upon error, set errno and return NULL. */ extern wchar_t * asnwprintf (wchar_t *resultbuf, size_t *lengthp, const wchar_t *format, ...); extern wchar_t * vasnwprintf (wchar_t *resultbuf, size_t *lengthp, const wchar_t *format, va_list args); #ifdef __cplusplus } #endif #endif /* _VASNWPRINTF_H */ enscript-1.6.5.90/intl/finddomain.c0000644000175000017500000001367311606344057013764 00000000000000/* Handle list of needed message catalogs Copyright (C) 1995-1999, 2000-2001, 2003-2007 Free Software Foundation, Inc. Written by Ulrich Drepper , 1995. 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 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 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H # include #endif #include #include #include #include #if defined HAVE_UNISTD_H || defined _LIBC # include #endif #include "gettextP.h" #ifdef _LIBC # include #else # include "libgnuintl.h" #endif /* Handle multi-threaded applications. */ #ifdef _LIBC # include # define gl_rwlock_define_initialized __libc_rwlock_define_initialized # define gl_rwlock_rdlock __libc_rwlock_rdlock # define gl_rwlock_wrlock __libc_rwlock_wrlock # define gl_rwlock_unlock __libc_rwlock_unlock #else # include "lock.h" #endif /* @@ end of prolog @@ */ /* List of already loaded domains. */ static struct loaded_l10nfile *_nl_loaded_domains; /* Return a data structure describing the message catalog described by the DOMAINNAME and CATEGORY parameters with respect to the currently established bindings. */ struct loaded_l10nfile * internal_function _nl_find_domain (const char *dirname, char *locale, const char *domainname, struct binding *domainbinding) { struct loaded_l10nfile *retval; const char *language; const char *modifier; const char *territory; const char *codeset; const char *normalized_codeset; const char *alias_value; int mask; /* LOCALE can consist of up to four recognized parts for the XPG syntax: language[_territory][.codeset][@modifier] Beside the first part all of them are allowed to be missing. If the full specified locale is not found, the less specific one are looked for. The various parts will be stripped off according to the following order: (1) codeset (2) normalized codeset (3) territory (4) modifier */ /* We need to protect modifying the _NL_LOADED_DOMAINS data. */ gl_rwlock_define_initialized (static, lock); gl_rwlock_rdlock (lock); /* If we have already tested for this locale entry there has to be one data set in the list of loaded domains. */ retval = _nl_make_l10nflist (&_nl_loaded_domains, dirname, strlen (dirname) + 1, 0, locale, NULL, NULL, NULL, NULL, domainname, 0); gl_rwlock_unlock (lock); if (retval != NULL) { /* We know something about this locale. */ int cnt; if (retval->decided <= 0) _nl_load_domain (retval, domainbinding); if (retval->data != NULL) return retval; for (cnt = 0; retval->successor[cnt] != NULL; ++cnt) { if (retval->successor[cnt]->decided <= 0) _nl_load_domain (retval->successor[cnt], domainbinding); if (retval->successor[cnt]->data != NULL) break; } return retval; /* NOTREACHED */ } /* See whether the locale value is an alias. If yes its value *overwrites* the alias name. No test for the original value is done. */ alias_value = _nl_expand_alias (locale); if (alias_value != NULL) { #if defined _LIBC || defined HAVE_STRDUP locale = strdup (alias_value); if (locale == NULL) return NULL; #else size_t len = strlen (alias_value) + 1; locale = (char *) malloc (len); if (locale == NULL) return NULL; memcpy (locale, alias_value, len); #endif } /* Now we determine the single parts of the locale name. First look for the language. Termination symbols are `_', '.', and `@'. */ mask = _nl_explode_name (locale, &language, &modifier, &territory, &codeset, &normalized_codeset); if (mask == -1) /* This means we are out of core. */ return NULL; /* We need to protect modifying the _NL_LOADED_DOMAINS data. */ gl_rwlock_wrlock (lock); /* Create all possible locale entries which might be interested in generalization. */ retval = _nl_make_l10nflist (&_nl_loaded_domains, dirname, strlen (dirname) + 1, mask, language, territory, codeset, normalized_codeset, modifier, domainname, 1); gl_rwlock_unlock (lock); if (retval == NULL) /* This means we are out of core. */ goto out; if (retval->decided <= 0) _nl_load_domain (retval, domainbinding); if (retval->data == NULL) { int cnt; for (cnt = 0; retval->successor[cnt] != NULL; ++cnt) { if (retval->successor[cnt]->decided <= 0) _nl_load_domain (retval->successor[cnt], domainbinding); if (retval->successor[cnt]->data != NULL) break; } } /* The room for an alias was dynamically allocated. Free it now. */ if (alias_value != NULL) free (locale); out: /* The space for normalized_codeset is dynamically allocated. Free it. */ if (mask & XPG_NORM_CODESET) free ((void *) normalized_codeset); return retval; } #ifdef _LIBC /* This is called from iconv/gconv_db.c's free_mem, as locales must be freed before freeing gconv steps arrays. */ void __libc_freeres_fn_section _nl_finddomain_subfreeres () { struct loaded_l10nfile *runp = _nl_loaded_domains; while (runp != NULL) { struct loaded_l10nfile *here = runp; if (runp->data != NULL) _nl_unload_domain ((struct loaded_domain *) runp->data); runp = runp->next; free ((char *) here->filename); free (here); } } #endif enscript-1.6.5.90/intl/localealias.c0000644000175000017500000002454611606344060014120 00000000000000/* Handle aliases for locale names. Copyright (C) 1995-1999, 2000-2001, 2003, 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 Library 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 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* Tell glibc's to provide a prototype for mempcpy(). This must come before because may include , and once has been included, it's too late. */ #ifndef _GNU_SOURCE # define _GNU_SOURCE 1 #endif #ifdef HAVE_CONFIG_H # include #endif #include #include #if defined _LIBC || defined HAVE___FSETLOCKING # include #endif #include #ifdef __GNUC__ # undef alloca # define alloca __builtin_alloca # define HAVE_ALLOCA 1 #else # ifdef _MSC_VER # include # define alloca _alloca # else # if defined HAVE_ALLOCA_H || defined _LIBC # include # else # ifdef _AIX #pragma alloca # else # ifndef alloca char *alloca (); # endif # endif # endif # endif #endif #include #include #include "gettextP.h" #if ENABLE_RELOCATABLE # include "relocatable.h" #else # define relocate(pathname) (pathname) #endif /* @@ end of prolog @@ */ #ifdef _LIBC /* Rename the non ANSI C functions. This is required by the standard because some ANSI C functions will require linking with this object file and the name space must not be polluted. */ # define strcasecmp __strcasecmp # ifndef mempcpy # define mempcpy __mempcpy # endif # define HAVE_MEMPCPY 1 # define HAVE___FSETLOCKING 1 #endif /* Handle multi-threaded applications. */ #ifdef _LIBC # include #else # include "lock.h" #endif #ifndef internal_function # define internal_function #endif /* Some optimizations for glibc. */ #ifdef _LIBC # define FEOF(fp) feof_unlocked (fp) # define FGETS(buf, n, fp) fgets_unlocked (buf, n, fp) #else # define FEOF(fp) feof (fp) # define FGETS(buf, n, fp) fgets (buf, n, fp) #endif /* For those losing systems which don't have `alloca' we have to add some additional code emulating it. */ #ifdef HAVE_ALLOCA # define freea(p) /* nothing */ #else # define alloca(n) malloc (n) # define freea(p) free (p) #endif #if defined _LIBC_REENTRANT || HAVE_DECL_FGETS_UNLOCKED # undef fgets # define fgets(buf, len, s) fgets_unlocked (buf, len, s) #endif #if defined _LIBC_REENTRANT || HAVE_DECL_FEOF_UNLOCKED # undef feof # define feof(s) feof_unlocked (s) #endif __libc_lock_define_initialized (static, lock) struct alias_map { const char *alias; const char *value; }; #ifndef _LIBC # define libc_freeres_ptr(decl) decl #endif libc_freeres_ptr (static char *string_space); static size_t string_space_act; static size_t string_space_max; libc_freeres_ptr (static struct alias_map *map); static size_t nmap; static size_t maxmap; /* Prototypes for local functions. */ static size_t read_alias_file (const char *fname, int fname_len) internal_function; static int extend_alias_table (void); static int alias_compare (const struct alias_map *map1, const struct alias_map *map2); const char * _nl_expand_alias (const char *name) { static const char *locale_alias_path; struct alias_map *retval; const char *result = NULL; size_t added; __libc_lock_lock (lock); if (locale_alias_path == NULL) locale_alias_path = LOCALE_ALIAS_PATH; do { struct alias_map item; item.alias = name; if (nmap > 0) retval = (struct alias_map *) bsearch (&item, map, nmap, sizeof (struct alias_map), (int (*) (const void *, const void *) ) alias_compare); else retval = NULL; /* We really found an alias. Return the value. */ if (retval != NULL) { result = retval->value; break; } /* Perhaps we can find another alias file. */ added = 0; while (added == 0 && locale_alias_path[0] != '\0') { const char *start; while (locale_alias_path[0] == PATH_SEPARATOR) ++locale_alias_path; start = locale_alias_path; while (locale_alias_path[0] != '\0' && locale_alias_path[0] != PATH_SEPARATOR) ++locale_alias_path; if (start < locale_alias_path) added = read_alias_file (start, locale_alias_path - start); } } while (added != 0); __libc_lock_unlock (lock); return result; } static size_t internal_function read_alias_file (const char *fname, int fname_len) { FILE *fp; char *full_fname; size_t added; static const char aliasfile[] = "/locale.alias"; full_fname = (char *) alloca (fname_len + sizeof aliasfile); #ifdef HAVE_MEMPCPY mempcpy (mempcpy (full_fname, fname, fname_len), aliasfile, sizeof aliasfile); #else memcpy (full_fname, fname, fname_len); memcpy (&full_fname[fname_len], aliasfile, sizeof aliasfile); #endif #ifdef _LIBC /* Note the file is opened with cancellation in the I/O functions disabled. */ fp = fopen (relocate (full_fname), "rc"); #else fp = fopen (relocate (full_fname), "r"); #endif freea (full_fname); if (fp == NULL) return 0; #ifdef HAVE___FSETLOCKING /* No threads present. */ __fsetlocking (fp, FSETLOCKING_BYCALLER); #endif added = 0; while (!FEOF (fp)) { /* It is a reasonable approach to use a fix buffer here because a) we are only interested in the first two fields b) these fields must be usable as file names and so must not be that long We avoid a multi-kilobyte buffer here since this would use up stack space which we might not have if the program ran out of memory. */ char buf[400]; char *alias; char *value; char *cp; int complete_line; if (FGETS (buf, sizeof buf, fp) == NULL) /* EOF reached. */ break; /* Determine whether the line is complete. */ complete_line = strchr (buf, '\n') != NULL; cp = buf; /* Ignore leading white space. */ while (isspace ((unsigned char) cp[0])) ++cp; /* A leading '#' signals a comment line. */ if (cp[0] != '\0' && cp[0] != '#') { alias = cp++; while (cp[0] != '\0' && !isspace ((unsigned char) cp[0])) ++cp; /* Terminate alias name. */ if (cp[0] != '\0') *cp++ = '\0'; /* Now look for the beginning of the value. */ while (isspace ((unsigned char) cp[0])) ++cp; if (cp[0] != '\0') { value = cp++; while (cp[0] != '\0' && !isspace ((unsigned char) cp[0])) ++cp; /* Terminate value. */ if (cp[0] == '\n') { /* This has to be done to make the following test for the end of line possible. We are looking for the terminating '\n' which do not overwrite here. */ *cp++ = '\0'; *cp = '\n'; } else if (cp[0] != '\0') *cp++ = '\0'; #ifdef IN_LIBGLOCALE /* glibc's locale.alias contains entries for ja_JP and ko_KR that make it impossible to use a Japanese or Korean UTF-8 locale under the name "ja_JP" or "ko_KR". Ignore these entries. */ if (strchr (alias, '_') == NULL) #endif { size_t alias_len; size_t value_len; if (nmap >= maxmap) if (__builtin_expect (extend_alias_table (), 0)) goto out; alias_len = strlen (alias) + 1; value_len = strlen (value) + 1; if (string_space_act + alias_len + value_len > string_space_max) { /* Increase size of memory pool. */ size_t new_size = (string_space_max + (alias_len + value_len > 1024 ? alias_len + value_len : 1024)); char *new_pool = (char *) realloc (string_space, new_size); if (new_pool == NULL) goto out; if (__builtin_expect (string_space != new_pool, 0)) { size_t i; for (i = 0; i < nmap; i++) { map[i].alias += new_pool - string_space; map[i].value += new_pool - string_space; } } string_space = new_pool; string_space_max = new_size; } map[nmap].alias = (const char *) memcpy (&string_space[string_space_act], alias, alias_len); string_space_act += alias_len; map[nmap].value = (const char *) memcpy (&string_space[string_space_act], value, value_len); string_space_act += value_len; ++nmap; ++added; } } } /* Possibly not the whole line fits into the buffer. Ignore the rest of the line. */ if (! complete_line) do if (FGETS (buf, sizeof buf, fp) == NULL) /* Make sure the inner loop will be left. The outer loop will exit at the `feof' test. */ break; while (strchr (buf, '\n') == NULL); } out: /* Should we test for ferror()? I think we have to silently ignore errors. --drepper */ fclose (fp); if (added > 0) qsort (map, nmap, sizeof (struct alias_map), (int (*) (const void *, const void *)) alias_compare); return added; } static int extend_alias_table () { size_t new_size; struct alias_map *new_map; new_size = maxmap == 0 ? 100 : 2 * maxmap; new_map = (struct alias_map *) realloc (map, (new_size * sizeof (struct alias_map))); if (new_map == NULL) /* Simply don't extend: we don't have any more core. */ return -1; map = new_map; maxmap = new_size; return 0; } static int alias_compare (const struct alias_map *map1, const struct alias_map *map2) { #if defined _LIBC || defined HAVE_STRCASECMP return strcasecmp (map1->alias, map2->alias); #else const unsigned char *p1 = (const unsigned char *) map1->alias; const unsigned char *p2 = (const unsigned char *) map2->alias; unsigned char c1, c2; if (p1 == p2) return 0; do { /* I know this seems to be odd but the tolower() function in some systems libc cannot handle nonalpha characters. */ c1 = isupper (*p1) ? tolower (*p1) : *p1; c2 = isupper (*p2) ? tolower (*p2) : *p2; if (c1 == '\0') break; ++p1; ++p2; } while (c1 == c2); return c1 - c2; #endif } enscript-1.6.5.90/intl/gmo.h0000644000175000017500000001151211606344057012431 00000000000000/* Description of GNU message catalog format: general file layout. Copyright (C) 1995, 1997, 2000-2002, 2004, 2006 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 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 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef _GETTEXT_H #define _GETTEXT_H 1 #include /* @@ end of prolog @@ */ /* The magic number of the GNU message catalog format. */ #define _MAGIC 0x950412de #define _MAGIC_SWAPPED 0xde120495 /* Revision number of the currently used .mo (binary) file format. */ #define MO_REVISION_NUMBER 0 #define MO_REVISION_NUMBER_WITH_SYSDEP_I 1 /* The following contortions are an attempt to use the C preprocessor to determine an unsigned integral type that is 32 bits wide. An alternative approach is to use autoconf's AC_CHECK_SIZEOF macro, but as of version autoconf-2.13, the AC_CHECK_SIZEOF macro doesn't work when cross-compiling. */ #if __STDC__ # define UINT_MAX_32_BITS 4294967295U #else # define UINT_MAX_32_BITS 0xFFFFFFFF #endif /* If UINT_MAX isn't defined, assume it's a 32-bit type. This should be valid for all systems GNU cares about because that doesn't include 16-bit systems, and only modern systems (that certainly have ) have 64+-bit integral types. */ #ifndef UINT_MAX # define UINT_MAX UINT_MAX_32_BITS #endif #if UINT_MAX == UINT_MAX_32_BITS typedef unsigned nls_uint32; #else # if USHRT_MAX == UINT_MAX_32_BITS typedef unsigned short nls_uint32; # else # if ULONG_MAX == UINT_MAX_32_BITS typedef unsigned long nls_uint32; # else /* The following line is intended to throw an error. Using #error is not portable enough. */ "Cannot determine unsigned 32-bit data type." # endif # endif #endif /* Header for binary .mo file format. */ struct mo_file_header { /* The magic number. */ nls_uint32 magic; /* The revision number of the file format. */ nls_uint32 revision; /* The following are only used in .mo files with major revision 0 or 1. */ /* The number of strings pairs. */ nls_uint32 nstrings; /* Offset of table with start offsets of original strings. */ nls_uint32 orig_tab_offset; /* Offset of table with start offsets of translated strings. */ nls_uint32 trans_tab_offset; /* Size of hash table. */ nls_uint32 hash_tab_size; /* Offset of first hash table entry. */ nls_uint32 hash_tab_offset; /* The following are only used in .mo files with minor revision >= 1. */ /* The number of system dependent segments. */ nls_uint32 n_sysdep_segments; /* Offset of table describing system dependent segments. */ nls_uint32 sysdep_segments_offset; /* The number of system dependent strings pairs. */ nls_uint32 n_sysdep_strings; /* Offset of table with start offsets of original sysdep strings. */ nls_uint32 orig_sysdep_tab_offset; /* Offset of table with start offsets of translated sysdep strings. */ nls_uint32 trans_sysdep_tab_offset; }; /* Descriptor for static string contained in the binary .mo file. */ struct string_desc { /* Length of addressed string, not including the trailing NUL. */ nls_uint32 length; /* Offset of string in file. */ nls_uint32 offset; }; /* The following are only used in .mo files with minor revision >= 1. */ /* Descriptor for system dependent string segment. */ struct sysdep_segment { /* Length of addressed string, including the trailing NUL. */ nls_uint32 length; /* Offset of string in file. */ nls_uint32 offset; }; /* Pair of a static and a system dependent segment, in struct sysdep_string. */ struct segment_pair { /* Size of static segment. */ nls_uint32 segsize; /* Reference to system dependent string segment, or ~0 at the end. */ nls_uint32 sysdepref; }; /* Descriptor for system dependent string. */ struct sysdep_string { /* Offset of static string segments in file. */ nls_uint32 offset; /* Alternating sequence of static and system dependent segments. The last segment is a static segment, including the trailing NUL. */ struct segment_pair segments[1]; }; /* Marker for the end of the segments[] array. This has the value 0xFFFFFFFF, regardless whether 'int' is 16 bit, 32 bit, or 64 bit. */ #define SEGMENTS_END ((nls_uint32) ~0) /* @@ begin of epilog @@ */ #endif /* gettext.h */ enscript-1.6.5.90/intl/wprintf-parse.h0000644000175000017500000000426311606344062014451 00000000000000/* Parse printf format string. Copyright (C) 1999, 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 Library 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 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef _WPRINTF_PARSE_H #define _WPRINTF_PARSE_H #include "printf-args.h" /* Flags */ #define FLAG_GROUP 1 /* ' flag */ #define FLAG_LEFT 2 /* - flag */ #define FLAG_SHOWSIGN 4 /* + flag */ #define FLAG_SPACE 8 /* space flag */ #define FLAG_ALT 16 /* # flag */ #define FLAG_ZERO 32 /* arg_index value indicating that no argument is consumed. */ #define ARG_NONE (~(size_t)0) /* A parsed directive. */ typedef struct { const wchar_t* dir_start; const wchar_t* dir_end; int flags; const wchar_t* width_start; const wchar_t* width_end; size_t width_arg_index; const wchar_t* precision_start; const wchar_t* precision_end; size_t precision_arg_index; wchar_t conversion; /* d i o u x X f e E g G c s p n U % but not C S */ size_t arg_index; } wchar_t_directive; /* A parsed format string. */ typedef struct { size_t count; wchar_t_directive *dir; size_t max_width_length; size_t max_precision_length; } wchar_t_directives; /* Parses the format string. Fills in the number N of directives, and fills in directives[0], ..., directives[N-1], and sets directives[N].dir_start to the end of the format string. Also fills in the arg_type fields of the arguments and the needed count of arguments. */ #ifdef STATIC STATIC #else extern #endif int wprintf_parse (const wchar_t *format, wchar_t_directives *d, arguments *a); #endif /* _WPRINTF_PARSE_H */ enscript-1.6.5.90/intl/printf-args.c0000644000175000017500000001336311606344061014077 00000000000000/* Decomposed printf argument list. Copyright (C) 1999, 2002-2003, 2005-2007 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 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 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* This file can be parametrized with the following macros: ENABLE_UNISTDIO Set to 1 to enable the unistdio extensions. PRINTF_FETCHARGS Name of the function to be defined. STATIC Set to 'static' to declare the function static. */ #ifndef PRINTF_FETCHARGS # include #endif /* Specification. */ #ifndef PRINTF_FETCHARGS # include "printf-args.h" #endif #ifdef STATIC STATIC #endif int PRINTF_FETCHARGS (va_list args, arguments *a) { size_t i; argument *ap; for (i = 0, ap = &a->arg[0]; i < a->count; i++, ap++) switch (ap->type) { case TYPE_SCHAR: ap->a.a_schar = va_arg (args, /*signed char*/ int); break; case TYPE_UCHAR: ap->a.a_uchar = va_arg (args, /*unsigned char*/ int); break; case TYPE_SHORT: ap->a.a_short = va_arg (args, /*short*/ int); break; case TYPE_USHORT: ap->a.a_ushort = va_arg (args, /*unsigned short*/ int); break; case TYPE_INT: ap->a.a_int = va_arg (args, int); break; case TYPE_UINT: ap->a.a_uint = va_arg (args, unsigned int); break; case TYPE_LONGINT: ap->a.a_longint = va_arg (args, long int); break; case TYPE_ULONGINT: ap->a.a_ulongint = va_arg (args, unsigned long int); break; #if HAVE_LONG_LONG_INT case TYPE_LONGLONGINT: ap->a.a_longlongint = va_arg (args, long long int); break; case TYPE_ULONGLONGINT: ap->a.a_ulonglongint = va_arg (args, unsigned long long int); break; #endif case TYPE_DOUBLE: ap->a.a_double = va_arg (args, double); break; case TYPE_LONGDOUBLE: ap->a.a_longdouble = va_arg (args, long double); break; case TYPE_CHAR: ap->a.a_char = va_arg (args, int); break; #if HAVE_WINT_T case TYPE_WIDE_CHAR: /* Although ISO C 99 7.24.1.(2) says that wint_t is "unchanged by default argument promotions", this is not the case in mingw32, where wint_t is 'unsigned short'. */ ap->a.a_wide_char = (sizeof (wint_t) < sizeof (int) ? va_arg (args, int) : va_arg (args, wint_t)); break; #endif case TYPE_STRING: ap->a.a_string = va_arg (args, const char *); /* A null pointer is an invalid argument for "%s", but in practice it occurs quite frequently in printf statements that produce debug output. Use a fallback in this case. */ if (ap->a.a_string == NULL) ap->a.a_string = "(NULL)"; break; #if HAVE_WCHAR_T case TYPE_WIDE_STRING: ap->a.a_wide_string = va_arg (args, const wchar_t *); /* A null pointer is an invalid argument for "%ls", but in practice it occurs quite frequently in printf statements that produce debug output. Use a fallback in this case. */ if (ap->a.a_wide_string == NULL) { static const wchar_t wide_null_string[] = { (wchar_t)'(', (wchar_t)'N', (wchar_t)'U', (wchar_t)'L', (wchar_t)'L', (wchar_t)')', (wchar_t)0 }; ap->a.a_wide_string = wide_null_string; } break; #endif case TYPE_POINTER: ap->a.a_pointer = va_arg (args, void *); break; case TYPE_COUNT_SCHAR_POINTER: ap->a.a_count_schar_pointer = va_arg (args, signed char *); break; case TYPE_COUNT_SHORT_POINTER: ap->a.a_count_short_pointer = va_arg (args, short *); break; case TYPE_COUNT_INT_POINTER: ap->a.a_count_int_pointer = va_arg (args, int *); break; case TYPE_COUNT_LONGINT_POINTER: ap->a.a_count_longint_pointer = va_arg (args, long int *); break; #if HAVE_LONG_LONG_INT case TYPE_COUNT_LONGLONGINT_POINTER: ap->a.a_count_longlongint_pointer = va_arg (args, long long int *); break; #endif #if ENABLE_UNISTDIO /* The unistdio extensions. */ case TYPE_U8_STRING: ap->a.a_u8_string = va_arg (args, const uint8_t *); /* A null pointer is an invalid argument for "%U", but in practice it occurs quite frequently in printf statements that produce debug output. Use a fallback in this case. */ if (ap->a.a_u8_string == NULL) { static const uint8_t u8_null_string[] = { '(', 'N', 'U', 'L', 'L', ')', 0 }; ap->a.a_u8_string = u8_null_string; } break; case TYPE_U16_STRING: ap->a.a_u16_string = va_arg (args, const uint16_t *); /* A null pointer is an invalid argument for "%lU", but in practice it occurs quite frequently in printf statements that produce debug output. Use a fallback in this case. */ if (ap->a.a_u16_string == NULL) { static const uint16_t u16_null_string[] = { '(', 'N', 'U', 'L', 'L', ')', 0 }; ap->a.a_u16_string = u16_null_string; } break; case TYPE_U32_STRING: ap->a.a_u32_string = va_arg (args, const uint32_t *); /* A null pointer is an invalid argument for "%llU", but in practice it occurs quite frequently in printf statements that produce debug output. Use a fallback in this case. */ if (ap->a.a_u32_string == NULL) { static const uint32_t u32_null_string[] = { '(', 'N', 'U', 'L', 'L', ')', 0 }; ap->a.a_u32_string = u32_null_string; } break; #endif default: /* Unknown type. */ return -1; } return 0; } enscript-1.6.5.90/intl/export.h0000644000175000017500000000023511606344057013170 00000000000000 #if @HAVE_VISIBILITY@ && BUILDING_LIBINTL #define LIBINTL_DLL_EXPORTED __attribute__((__visibility__("default"))) #else #define LIBINTL_DLL_EXPORTED #endif enscript-1.6.5.90/intl/plural.y0000644000175000017500000001657611606344061013201 00000000000000%{ /* Expression parsing for plural form selection. Copyright (C) 2000-2001, 2003, 2005-2006 Free Software Foundation, Inc. Written by Ulrich Drepper , 2000. 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 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 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* For bison < 2.0, the bison generated parser uses alloca. AIX 3 forces us to put this declaration at the beginning of the file. The declaration in bison's skeleton file comes too late. This must come before because may include arbitrary system headers. This can go away once the AM_INTL_SUBDIR macro requires bison >= 2.0. */ #if defined _AIX && !defined __GNUC__ #pragma alloca #endif #ifdef HAVE_CONFIG_H # include #endif #include #include #include #include "plural-exp.h" /* The main function generated by the parser is called __gettextparse, but we want it to be called PLURAL_PARSE. */ #ifndef _LIBC # define __gettextparse PLURAL_PARSE #endif #define YYLEX_PARAM &((struct parse_args *) arg)->cp #define YYPARSE_PARAM arg %} %pure_parser %expect 7 %union { unsigned long int num; enum expression_operator op; struct expression *exp; } %{ /* Prototypes for local functions. */ static int yylex (YYSTYPE *lval, const char **pexp); static void yyerror (const char *str); /* Allocation of expressions. */ static struct expression * new_exp (int nargs, enum expression_operator op, struct expression * const *args) { int i; struct expression *newp; /* If any of the argument could not be malloc'ed, just return NULL. */ for (i = nargs - 1; i >= 0; i--) if (args[i] == NULL) goto fail; /* Allocate a new expression. */ newp = (struct expression *) malloc (sizeof (*newp)); if (newp != NULL) { newp->nargs = nargs; newp->operation = op; for (i = nargs - 1; i >= 0; i--) newp->val.args[i] = args[i]; return newp; } fail: for (i = nargs - 1; i >= 0; i--) FREE_EXPRESSION (args[i]); return NULL; } static inline struct expression * new_exp_0 (enum expression_operator op) { return new_exp (0, op, NULL); } static inline struct expression * new_exp_1 (enum expression_operator op, struct expression *right) { struct expression *args[1]; args[0] = right; return new_exp (1, op, args); } static struct expression * new_exp_2 (enum expression_operator op, struct expression *left, struct expression *right) { struct expression *args[2]; args[0] = left; args[1] = right; return new_exp (2, op, args); } static inline struct expression * new_exp_3 (enum expression_operator op, struct expression *bexp, struct expression *tbranch, struct expression *fbranch) { struct expression *args[3]; args[0] = bexp; args[1] = tbranch; args[2] = fbranch; return new_exp (3, op, args); } %} /* This declares that all operators have the same associativity and the precedence order as in C. See [Harbison, Steele: C, A Reference Manual]. There is no unary minus and no bitwise operators. Operators with the same syntactic behaviour have been merged into a single token, to save space in the array generated by bison. */ %right '?' /* ? */ %left '|' /* || */ %left '&' /* && */ %left EQUOP2 /* == != */ %left CMPOP2 /* < > <= >= */ %left ADDOP2 /* + - */ %left MULOP2 /* * / % */ %right '!' /* ! */ %token EQUOP2 CMPOP2 ADDOP2 MULOP2 %token NUMBER %type exp %% start: exp { if ($1 == NULL) YYABORT; ((struct parse_args *) arg)->res = $1; } ; exp: exp '?' exp ':' exp { $$ = new_exp_3 (qmop, $1, $3, $5); } | exp '|' exp { $$ = new_exp_2 (lor, $1, $3); } | exp '&' exp { $$ = new_exp_2 (land, $1, $3); } | exp EQUOP2 exp { $$ = new_exp_2 ($2, $1, $3); } | exp CMPOP2 exp { $$ = new_exp_2 ($2, $1, $3); } | exp ADDOP2 exp { $$ = new_exp_2 ($2, $1, $3); } | exp MULOP2 exp { $$ = new_exp_2 ($2, $1, $3); } | '!' exp { $$ = new_exp_1 (lnot, $2); } | 'n' { $$ = new_exp_0 (var); } | NUMBER { if (($$ = new_exp_0 (num)) != NULL) $$->val.num = $1; } | '(' exp ')' { $$ = $2; } ; %% void internal_function FREE_EXPRESSION (struct expression *exp) { if (exp == NULL) return; /* Handle the recursive case. */ switch (exp->nargs) { case 3: FREE_EXPRESSION (exp->val.args[2]); /* FALLTHROUGH */ case 2: FREE_EXPRESSION (exp->val.args[1]); /* FALLTHROUGH */ case 1: FREE_EXPRESSION (exp->val.args[0]); /* FALLTHROUGH */ default: break; } free (exp); } static int yylex (YYSTYPE *lval, const char **pexp) { const char *exp = *pexp; int result; while (1) { if (exp[0] == '\0') { *pexp = exp; return YYEOF; } if (exp[0] != ' ' && exp[0] != '\t') break; ++exp; } result = *exp++; switch (result) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': { unsigned long int n = result - '0'; while (exp[0] >= '0' && exp[0] <= '9') { n *= 10; n += exp[0] - '0'; ++exp; } lval->num = n; result = NUMBER; } break; case '=': if (exp[0] == '=') { ++exp; lval->op = equal; result = EQUOP2; } else result = YYERRCODE; break; case '!': if (exp[0] == '=') { ++exp; lval->op = not_equal; result = EQUOP2; } break; case '&': case '|': if (exp[0] == result) ++exp; else result = YYERRCODE; break; case '<': if (exp[0] == '=') { ++exp; lval->op = less_or_equal; } else lval->op = less_than; result = CMPOP2; break; case '>': if (exp[0] == '=') { ++exp; lval->op = greater_or_equal; } else lval->op = greater_than; result = CMPOP2; break; case '*': lval->op = mult; result = MULOP2; break; case '/': lval->op = divide; result = MULOP2; break; case '%': lval->op = module; result = MULOP2; break; case '+': lval->op = plus; result = ADDOP2; break; case '-': lval->op = minus; result = ADDOP2; break; case 'n': case '?': case ':': case '(': case ')': /* Nothing, just return the character. */ break; case ';': case '\n': case '\0': /* Be safe and let the user call this function again. */ --exp; result = YYEOF; break; default: result = YYERRCODE; #if YYDEBUG != 0 --exp; #endif break; } *pexp = exp; return result; } static void yyerror (const char *str) { /* Do nothing. We don't print error messages here. */ } enscript-1.6.5.90/intl/dcngettext.c0000644000175000017500000000347411606344057014023 00000000000000/* Implementation of the dcngettext(3) function. Copyright (C) 1995-1999, 2000-2003 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 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 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H # include #endif #include "gettextP.h" #ifdef _LIBC # include #else # include "libgnuintl.h" #endif /* @@ end of prolog @@ */ /* Names for the libintl functions are a problem. They must not clash with existing names and they should follow ANSI C. But this source code is also used in GNU C Library where the names have a __ prefix. So we have to make a difference here. */ #ifdef _LIBC # define DCNGETTEXT __dcngettext # define DCIGETTEXT __dcigettext #else # define DCNGETTEXT libintl_dcngettext # define DCIGETTEXT libintl_dcigettext #endif /* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY locale. */ char * DCNGETTEXT (const char *domainname, const char *msgid1, const char *msgid2, unsigned long int n, int category) { return DCIGETTEXT (domainname, msgid1, msgid2, 1, n, category); } #ifdef _LIBC /* Alias for function name in GNU C Library. */ weak_alias (__dcngettext, dcngettext); #endif enscript-1.6.5.90/intl/os2compat.c0000644000175000017500000000550711606344061013553 00000000000000/* OS/2 compatibility functions. Copyright (C) 2001-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 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 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #define OS2_AWARE #ifdef HAVE_CONFIG_H #include #endif #include #include #include /* A version of getenv() that works from DLLs */ extern unsigned long DosScanEnv (const unsigned char *pszName, unsigned char **ppszValue); char * _nl_getenv (const char *name) { unsigned char *value; if (DosScanEnv (name, &value)) return NULL; else return value; } /* A fixed size buffer. */ char libintl_nl_default_dirname[MAXPATHLEN+1]; char *_nlos2_libdir = NULL; char *_nlos2_localealiaspath = NULL; char *_nlos2_localedir = NULL; static __attribute__((constructor)) void nlos2_initialize () { char *root = getenv ("UNIXROOT"); char *gnulocaledir = getenv ("GNULOCALEDIR"); _nlos2_libdir = gnulocaledir; if (!_nlos2_libdir) { if (root) { size_t sl = strlen (root); _nlos2_libdir = (char *) malloc (sl + strlen (LIBDIR) + 1); memcpy (_nlos2_libdir, root, sl); memcpy (_nlos2_libdir + sl, LIBDIR, strlen (LIBDIR) + 1); } else _nlos2_libdir = LIBDIR; } _nlos2_localealiaspath = gnulocaledir; if (!_nlos2_localealiaspath) { if (root) { size_t sl = strlen (root); _nlos2_localealiaspath = (char *) malloc (sl + strlen (LOCALE_ALIAS_PATH) + 1); memcpy (_nlos2_localealiaspath, root, sl); memcpy (_nlos2_localealiaspath + sl, LOCALE_ALIAS_PATH, strlen (LOCALE_ALIAS_PATH) + 1); } else _nlos2_localealiaspath = LOCALE_ALIAS_PATH; } _nlos2_localedir = gnulocaledir; if (!_nlos2_localedir) { if (root) { size_t sl = strlen (root); _nlos2_localedir = (char *) malloc (sl + strlen (LOCALEDIR) + 1); memcpy (_nlos2_localedir, root, sl); memcpy (_nlos2_localedir + sl, LOCALEDIR, strlen (LOCALEDIR) + 1); } else _nlos2_localedir = LOCALEDIR; } if (strlen (_nlos2_localedir) <= MAXPATHLEN) strcpy (libintl_nl_default_dirname, _nlos2_localedir); } enscript-1.6.5.90/intl/vasnprintf.c0000644000175000017500000035070311606344062014040 00000000000000/* vsprintf with automatic memory allocation. Copyright (C) 1999, 2002-2007 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 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 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* This file can be parametrized with the following macros: VASNPRINTF The name of the function being defined. FCHAR_T The element type of the format string. DCHAR_T The element type of the destination (result) string. FCHAR_T_ONLY_ASCII Set to 1 to enable verification that all characters in the format string are ASCII. MUST be set if FCHAR_T and DCHAR_T are not the same type. DIRECTIVE Structure denoting a format directive. Depends on FCHAR_T. DIRECTIVES Structure denoting the set of format directives of a format string. Depends on FCHAR_T. PRINTF_PARSE Function that parses a format string. Depends on FCHAR_T. DCHAR_CPY memcpy like function for DCHAR_T[] arrays. DCHAR_SET memset like function for DCHAR_T[] arrays. DCHAR_MBSNLEN mbsnlen like function for DCHAR_T[] arrays. SNPRINTF The system's snprintf (or similar) function. This may be either snprintf or swprintf. TCHAR_T The element type of the argument and result string of the said SNPRINTF function. This may be either char or wchar_t. The code exploits that sizeof (TCHAR_T) | sizeof (DCHAR_T) and alignof (TCHAR_T) <= alignof (DCHAR_T). DCHAR_IS_TCHAR Set to 1 if DCHAR_T and TCHAR_T are the same type. DCHAR_CONV_FROM_ENCODING A function to convert from char[] to DCHAR[]. DCHAR_IS_UINT8_T Set to 1 if DCHAR_T is uint8_t. DCHAR_IS_UINT16_T Set to 1 if DCHAR_T is uint16_t. DCHAR_IS_UINT32_T Set to 1 if DCHAR_T is uint32_t. */ /* Tell glibc's to provide a prototype for snprintf(). This must come before because may include , and once has been included, it's too late. */ #ifndef _GNU_SOURCE # define _GNU_SOURCE 1 #endif #ifndef VASNPRINTF # include #endif #ifndef IN_LIBINTL # include #endif /* Specification. */ #ifndef VASNPRINTF # if WIDE_CHAR_VERSION # include "vasnwprintf.h" # else # include "vasnprintf.h" # endif #endif #include /* localeconv() */ #include /* snprintf(), sprintf() */ #include /* abort(), malloc(), realloc(), free() */ #include /* memcpy(), strlen() */ #include /* errno */ #include /* CHAR_BIT */ #include /* DBL_MAX_EXP, LDBL_MAX_EXP */ #if HAVE_NL_LANGINFO # include #endif #ifndef VASNPRINTF # if WIDE_CHAR_VERSION # include "wprintf-parse.h" # else # include "printf-parse.h" # endif #endif /* Checked size_t computations. */ #include "xsize.h" #if (NEED_PRINTF_DOUBLE || NEED_PRINTF_LONG_DOUBLE) && !defined IN_LIBINTL # include # include "float+.h" #endif #if (NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE) && !defined IN_LIBINTL # include # include "isnan.h" #endif #if (NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE) && !defined IN_LIBINTL # include # include "isnanl-nolibm.h" # include "fpucw.h" #endif #if (NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_DOUBLE) && !defined IN_LIBINTL # include # include "isnan.h" # include "printf-frexp.h" #endif #if (NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_LONG_DOUBLE) && !defined IN_LIBINTL # include # include "isnanl-nolibm.h" # include "printf-frexpl.h" # include "fpucw.h" #endif /* Some systems, like OSF/1 4.0 and Woe32, don't have EOVERFLOW. */ #ifndef EOVERFLOW # define EOVERFLOW E2BIG #endif #if HAVE_WCHAR_T # if HAVE_WCSLEN # define local_wcslen wcslen # else /* Solaris 2.5.1 has wcslen() in a separate library libw.so. To avoid a dependency towards this library, here is a local substitute. Define this substitute only once, even if this file is included twice in the same compilation unit. */ # ifndef local_wcslen_defined # define local_wcslen_defined 1 static size_t local_wcslen (const wchar_t *s) { const wchar_t *ptr; for (ptr = s; *ptr != (wchar_t) 0; ptr++) ; return ptr - s; } # endif # endif #endif /* Default parameters. */ #ifndef VASNPRINTF # if WIDE_CHAR_VERSION # define VASNPRINTF vasnwprintf # define FCHAR_T wchar_t # define DCHAR_T wchar_t # define TCHAR_T wchar_t # define DCHAR_IS_TCHAR 1 # define DIRECTIVE wchar_t_directive # define DIRECTIVES wchar_t_directives # define PRINTF_PARSE wprintf_parse # define DCHAR_CPY wmemcpy # else # define VASNPRINTF vasnprintf # define FCHAR_T char # define DCHAR_T char # define TCHAR_T char # define DCHAR_IS_TCHAR 1 # define DIRECTIVE char_directive # define DIRECTIVES char_directives # define PRINTF_PARSE printf_parse # define DCHAR_CPY memcpy # endif #endif #if WIDE_CHAR_VERSION /* TCHAR_T is wchar_t. */ # define USE_SNPRINTF 1 # if HAVE_DECL__SNWPRINTF /* On Windows, the function swprintf() has a different signature than on Unix; we use the _snwprintf() function instead. */ # define SNPRINTF _snwprintf # else /* Unix. */ # define SNPRINTF swprintf # endif #else /* TCHAR_T is char. */ # /* Use snprintf if it exists under the name 'snprintf' or '_snprintf'. But don't use it on BeOS, since BeOS snprintf produces no output if the size argument is >= 0x3000000. */ # if (HAVE_DECL__SNPRINTF || HAVE_SNPRINTF) && !defined __BEOS__ # define USE_SNPRINTF 1 # else # define USE_SNPRINTF 0 # endif # if HAVE_DECL__SNPRINTF /* Windows. */ # define SNPRINTF _snprintf # else /* Unix. */ # define SNPRINTF snprintf /* Here we need to call the native snprintf, not rpl_snprintf. */ # undef snprintf # endif #endif /* Here we need to call the native sprintf, not rpl_sprintf. */ #undef sprintf #if (NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE) && !defined IN_LIBINTL /* Determine the decimal-point character according to the current locale. */ # ifndef decimal_point_char_defined # define decimal_point_char_defined 1 static char decimal_point_char () { const char *point; /* Determine it in a multithread-safe way. We know nl_langinfo is multithread-safe on glibc systems, but is not required to be multithread- safe by POSIX. sprintf(), however, is multithread-safe. localeconv() is rarely multithread-safe. */ # if HAVE_NL_LANGINFO && __GLIBC__ point = nl_langinfo (RADIXCHAR); # elif 1 char pointbuf[5]; sprintf (pointbuf, "%#.0f", 1.0); point = &pointbuf[1]; # else point = localeconv () -> decimal_point; # endif /* The decimal point is always a single byte: either '.' or ','. */ return (point[0] != '\0' ? point[0] : '.'); } # endif #endif #if NEED_PRINTF_INFINITE_DOUBLE && !NEED_PRINTF_DOUBLE && !defined IN_LIBINTL /* Equivalent to !isfinite(x) || x == 0, but does not require libm. */ static int is_infinite_or_zero (double x) { return isnan (x) || x + x == x; } #endif #if NEED_PRINTF_INFINITE_LONG_DOUBLE && !NEED_PRINTF_LONG_DOUBLE && !defined IN_LIBINTL /* Equivalent to !isfinite(x), but does not require libm. */ static int is_infinitel (long double x) { return isnanl (x) || (x + x == x && x != 0.0L); } #endif #if (NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_DOUBLE) && !defined IN_LIBINTL /* Converting 'long double' to decimal without rare rounding bugs requires real bignums. We use the naming conventions of GNU gmp, but vastly simpler (and slower) algorithms. */ typedef unsigned int mp_limb_t; # define GMP_LIMB_BITS 32 typedef int mp_limb_verify[2 * (sizeof (mp_limb_t) * CHAR_BIT == GMP_LIMB_BITS) - 1]; typedef unsigned long long mp_twolimb_t; # define GMP_TWOLIMB_BITS 64 typedef int mp_twolimb_verify[2 * (sizeof (mp_twolimb_t) * CHAR_BIT == GMP_TWOLIMB_BITS) - 1]; /* Representation of a bignum >= 0. */ typedef struct { size_t nlimbs; mp_limb_t *limbs; /* Bits in little-endian order, allocated with malloc(). */ } mpn_t; /* Compute the product of two bignums >= 0. Return the allocated memory in case of success, NULL in case of memory allocation failure. */ static void * multiply (mpn_t src1, mpn_t src2, mpn_t *dest) { const mp_limb_t *p1; const mp_limb_t *p2; size_t len1; size_t len2; if (src1.nlimbs <= src2.nlimbs) { len1 = src1.nlimbs; p1 = src1.limbs; len2 = src2.nlimbs; p2 = src2.limbs; } else { len1 = src2.nlimbs; p1 = src2.limbs; len2 = src1.nlimbs; p2 = src1.limbs; } /* Now 0 <= len1 <= len2. */ if (len1 == 0) { /* src1 or src2 is zero. */ dest->nlimbs = 0; dest->limbs = (mp_limb_t *) malloc (1); } else { /* Here 1 <= len1 <= len2. */ size_t dlen; mp_limb_t *dp; size_t k, i, j; dlen = len1 + len2; dp = (mp_limb_t *) malloc (dlen * sizeof (mp_limb_t)); if (dp == NULL) return NULL; for (k = len2; k > 0; ) dp[--k] = 0; for (i = 0; i < len1; i++) { mp_limb_t digit1 = p1[i]; mp_twolimb_t carry = 0; for (j = 0; j < len2; j++) { mp_limb_t digit2 = p2[j]; carry += (mp_twolimb_t) digit1 * (mp_twolimb_t) digit2; carry += dp[i + j]; dp[i + j] = (mp_limb_t) carry; carry = carry >> GMP_LIMB_BITS; } dp[i + len2] = (mp_limb_t) carry; } /* Normalise. */ while (dlen > 0 && dp[dlen - 1] == 0) dlen--; dest->nlimbs = dlen; dest->limbs = dp; } return dest->limbs; } /* Compute the quotient of a bignum a >= 0 and a bignum b > 0. a is written as a = q * b + r with 0 <= r < b. q is the quotient, r the remainder. Finally, round-to-even is performed: If r > b/2 or if r = b/2 and q is odd, q is incremented. Return the allocated memory in case of success, NULL in case of memory allocation failure. */ static void * divide (mpn_t a, mpn_t b, mpn_t *q) { /* Algorithm: First normalise a and b: a=[a[m-1],...,a[0]], b=[b[n-1],...,b[0]] with m>=0 and n>0 (in base beta = 2^GMP_LIMB_BITS). If m=n=1, perform a single-precision division: r:=0, j:=m, while j>0 do {Here (q[m-1]*beta^(m-1)+...+q[j]*beta^j) * b[0] + r*beta^j = = a[m-1]*beta^(m-1)+...+a[j]*beta^j und 0<=r=n>1, perform a multiple-precision division: We have a/b < beta^(m-n+1). s:=intDsize-1-(hightest bit in b[n-1]), 0<=s=beta/2. For j=m-n,...,0: {Here 0 <= r < b*beta^(j+1).} Compute q* : q* := floor((r[j+n]*beta+r[j+n-1])/b[n-1]). In case of overflow (q* >= beta) set q* := beta-1. Compute c2 := ((r[j+n]*beta+r[j+n-1]) - q* * b[n-1])*beta + r[j+n-2] and c3 := b[n-2] * q*. {We have 0 <= c2 < 2*beta^2, even 0 <= c2 < beta^2 if no overflow occurred. Furthermore 0 <= c3 < beta^2. If there was overflow and r[j+n]*beta+r[j+n-1] - q* * b[n-1] >= beta, i.e. c2 >= beta^2, the next test can be skipped.} While c3 > c2, {Here 0 <= c2 < c3 < beta^2} Put q* := q* - 1, c2 := c2 + b[n-1]*beta, c3 := c3 - b[n-2]. If q* > 0: Put r := r - b * q* * beta^j. In detail: [r[n+j],...,r[j]] := [r[n+j],...,r[j]] - q* * [b[n-1],...,b[0]]. hence: u:=0, for i:=0 to n-1 do u := u + q* * b[i], r[j+i]:=r[j+i]-(u mod beta) (+ beta, if carry), u:=u div beta (+ 1, if carry in subtraction) r[n+j]:=r[n+j]-u. {Since always u = (q* * [b[i-1],...,b[0]] div beta^i) + 1 < q* + 1 <= beta, the carry u does not overflow.} If a negative carry occurs, put q* := q* - 1 and [r[n+j],...,r[j]] := [r[n+j],...,r[j]] + [0,b[n-1],...,b[0]]. Set q[j] := q*. Normalise [q[m-n],..,q[0]]; this yields the quotient q. Shift [r[n-1],...,r[0]] right by s bits and normalise; this yields the rest r. The room for q[j] can be allocated at the memory location of r[n+j]. Finally, round-to-even: Shift r left by 1 bit. If r > b or if r = b and q[0] is odd, q := q+1. */ const mp_limb_t *a_ptr = a.limbs; size_t a_len = a.nlimbs; const mp_limb_t *b_ptr = b.limbs; size_t b_len = b.nlimbs; mp_limb_t *roomptr; mp_limb_t *tmp_roomptr = NULL; mp_limb_t *q_ptr; size_t q_len; mp_limb_t *r_ptr; size_t r_len; /* Allocate room for a_len+2 digits. (Need a_len+1 digits for the real division and 1 more digit for the final rounding of q.) */ roomptr = (mp_limb_t *) malloc ((a_len + 2) * sizeof (mp_limb_t)); if (roomptr == NULL) return NULL; /* Normalise a. */ while (a_len > 0 && a_ptr[a_len - 1] == 0) a_len--; /* Normalise b. */ for (;;) { if (b_len == 0) /* Division by zero. */ abort (); if (b_ptr[b_len - 1] == 0) b_len--; else break; } /* Here m = a_len >= 0 and n = b_len > 0. */ if (a_len < b_len) { /* m beta^(m-2) <= a/b < beta^m */ r_ptr = roomptr; q_ptr = roomptr + 1; { mp_limb_t den = b_ptr[0]; mp_limb_t remainder = 0; const mp_limb_t *sourceptr = a_ptr + a_len; mp_limb_t *destptr = q_ptr + a_len; size_t count; for (count = a_len; count > 0; count--) { mp_twolimb_t num = ((mp_twolimb_t) remainder << GMP_LIMB_BITS) | *--sourceptr; *--destptr = num / den; remainder = num % den; } /* Normalise and store r. */ if (remainder > 0) { r_ptr[0] = remainder; r_len = 1; } else r_len = 0; /* Normalise q. */ q_len = a_len; if (q_ptr[q_len - 1] == 0) q_len--; } } else { /* n>1: multiple precision division. beta^(m-1) <= a < beta^m, beta^(n-1) <= b < beta^n ==> beta^(m-n-1) <= a/b < beta^(m-n+1). */ /* Determine s. */ size_t s; { mp_limb_t msd = b_ptr[b_len - 1]; /* = b[n-1], > 0 */ s = 31; if (msd >= 0x10000) { msd = msd >> 16; s -= 16; } if (msd >= 0x100) { msd = msd >> 8; s -= 8; } if (msd >= 0x10) { msd = msd >> 4; s -= 4; } if (msd >= 0x4) { msd = msd >> 2; s -= 2; } if (msd >= 0x2) { msd = msd >> 1; s -= 1; } } /* 0 <= s < GMP_LIMB_BITS. Copy b, shifting it left by s bits. */ if (s > 0) { tmp_roomptr = (mp_limb_t *) malloc (b_len * sizeof (mp_limb_t)); if (tmp_roomptr == NULL) { free (roomptr); return NULL; } { const mp_limb_t *sourceptr = b_ptr; mp_limb_t *destptr = tmp_roomptr; mp_twolimb_t accu = 0; size_t count; for (count = b_len; count > 0; count--) { accu += (mp_twolimb_t) *sourceptr++ << s; *destptr++ = (mp_limb_t) accu; accu = accu >> GMP_LIMB_BITS; } /* accu must be zero, since that was how s was determined. */ if (accu != 0) abort (); } b_ptr = tmp_roomptr; } /* Copy a, shifting it left by s bits, yields r. Memory layout: At the beginning: r = roomptr[0..a_len], at the end: r = roomptr[0..b_len-1], q = roomptr[b_len..a_len] */ r_ptr = roomptr; if (s == 0) { memcpy (r_ptr, a_ptr, a_len * sizeof (mp_limb_t)); r_ptr[a_len] = 0; } else { const mp_limb_t *sourceptr = a_ptr; mp_limb_t *destptr = r_ptr; mp_twolimb_t accu = 0; size_t count; for (count = a_len; count > 0; count--) { accu += (mp_twolimb_t) *sourceptr++ << s; *destptr++ = (mp_limb_t) accu; accu = accu >> GMP_LIMB_BITS; } *destptr++ = (mp_limb_t) accu; } q_ptr = roomptr + b_len; q_len = a_len - b_len + 1; /* q will have m-n+1 limbs */ { size_t j = a_len - b_len; /* m-n */ mp_limb_t b_msd = b_ptr[b_len - 1]; /* b[n-1] */ mp_limb_t b_2msd = b_ptr[b_len - 2]; /* b[n-2] */ mp_twolimb_t b_msdd = /* b[n-1]*beta+b[n-2] */ ((mp_twolimb_t) b_msd << GMP_LIMB_BITS) | b_2msd; /* Division loop, traversed m-n+1 times. j counts down, b is unchanged, beta/2 <= b[n-1] < beta. */ for (;;) { mp_limb_t q_star; mp_limb_t c1; if (r_ptr[j + b_len] < b_msd) /* r[j+n] < b[n-1] ? */ { /* Divide r[j+n]*beta+r[j+n-1] by b[n-1], no overflow. */ mp_twolimb_t num = ((mp_twolimb_t) r_ptr[j + b_len] << GMP_LIMB_BITS) | r_ptr[j + b_len - 1]; q_star = num / b_msd; c1 = num % b_msd; } else { /* Overflow, hence r[j+n]*beta+r[j+n-1] >= beta*b[n-1]. */ q_star = (mp_limb_t)~(mp_limb_t)0; /* q* = beta-1 */ /* Test whether r[j+n]*beta+r[j+n-1] - (beta-1)*b[n-1] >= beta <==> r[j+n]*beta+r[j+n-1] + b[n-1] >= beta*b[n-1]+beta <==> b[n-1] < floor((r[j+n]*beta+r[j+n-1]+b[n-1])/beta) {<= beta !}. If yes, jump directly to the subtraction loop. (Otherwise, r[j+n]*beta+r[j+n-1] - (beta-1)*b[n-1] < beta <==> floor((r[j+n]*beta+r[j+n-1]+b[n-1])/beta) = b[n-1] ) */ if (r_ptr[j + b_len] > b_msd || (c1 = r_ptr[j + b_len - 1] + b_msd) < b_msd) /* r[j+n] >= b[n-1]+1 or r[j+n] = b[n-1] and the addition r[j+n-1]+b[n-1] gives a carry. */ goto subtract; } /* q_star = q*, c1 = (r[j+n]*beta+r[j+n-1]) - q* * b[n-1] (>=0, 0, decrease it by b[n-1]*beta+b[n-2]. Because of b[n-1]*beta+b[n-2] >= beta^2/2 this can happen only twice. */ if (c3 > c2) { q_star = q_star - 1; /* q* := q* - 1 */ if (c3 - c2 > b_msdd) q_star = q_star - 1; /* q* := q* - 1 */ } } if (q_star > 0) subtract: { /* Subtract r := r - b * q* * beta^j. */ mp_limb_t cr; { const mp_limb_t *sourceptr = b_ptr; mp_limb_t *destptr = r_ptr + j; mp_twolimb_t carry = 0; size_t count; for (count = b_len; count > 0; count--) { /* Here 0 <= carry <= q*. */ carry = carry + (mp_twolimb_t) q_star * (mp_twolimb_t) *sourceptr++ + (mp_limb_t) ~(*destptr); /* Here 0 <= carry <= beta*q* + beta-1. */ *destptr++ = ~(mp_limb_t) carry; carry = carry >> GMP_LIMB_BITS; /* <= q* */ } cr = (mp_limb_t) carry; } /* Subtract cr from r_ptr[j + b_len], then forget about r_ptr[j + b_len]. */ if (cr > r_ptr[j + b_len]) { /* Subtraction gave a carry. */ q_star = q_star - 1; /* q* := q* - 1 */ /* Add b back. */ { const mp_limb_t *sourceptr = b_ptr; mp_limb_t *destptr = r_ptr + j; mp_limb_t carry = 0; size_t count; for (count = b_len; count > 0; count--) { mp_limb_t source1 = *sourceptr++; mp_limb_t source2 = *destptr; *destptr++ = source1 + source2 + carry; carry = (carry ? source1 >= (mp_limb_t) ~source2 : source1 > (mp_limb_t) ~source2); } } /* Forget about the carry and about r[j+n]. */ } } /* q* is determined. Store it as q[j]. */ q_ptr[j] = q_star; if (j == 0) break; j--; } } r_len = b_len; /* Normalise q. */ if (q_ptr[q_len - 1] == 0) q_len--; # if 0 /* Not needed here, since we need r only to compare it with b/2, and b is shifted left by s bits. */ /* Shift r right by s bits. */ if (s > 0) { mp_limb_t ptr = r_ptr + r_len; mp_twolimb_t accu = 0; size_t count; for (count = r_len; count > 0; count--) { accu = (mp_twolimb_t) (mp_limb_t) accu << GMP_LIMB_BITS; accu += (mp_twolimb_t) *--ptr << (GMP_LIMB_BITS - s); *ptr = (mp_limb_t) (accu >> GMP_LIMB_BITS); } } # endif /* Normalise r. */ while (r_len > 0 && r_ptr[r_len - 1] == 0) r_len--; } /* Compare r << 1 with b. */ if (r_len > b_len) goto increment_q; { size_t i; for (i = b_len;;) { mp_limb_t r_i = (i <= r_len && i > 0 ? r_ptr[i - 1] >> (GMP_LIMB_BITS - 1) : 0) | (i < r_len ? r_ptr[i] << 1 : 0); mp_limb_t b_i = (i < b_len ? b_ptr[i] : 0); if (r_i > b_i) goto increment_q; if (r_i < b_i) goto keep_q; if (i == 0) break; i--; } } if (q_len > 0 && ((q_ptr[0] & 1) != 0)) /* q is odd. */ increment_q: { size_t i; for (i = 0; i < q_len; i++) if (++(q_ptr[i]) != 0) goto keep_q; q_ptr[q_len++] = 1; } keep_q: if (tmp_roomptr != NULL) free (tmp_roomptr); q->limbs = q_ptr; q->nlimbs = q_len; return roomptr; } /* Convert a bignum a >= 0, multiplied with 10^extra_zeroes, to decimal representation. Destroys the contents of a. Return the allocated memory - containing the decimal digits in low-to-high order, terminated with a NUL character - in case of success, NULL in case of memory allocation failure. */ static char * convert_to_decimal (mpn_t a, size_t extra_zeroes) { mp_limb_t *a_ptr = a.limbs; size_t a_len = a.nlimbs; /* 0.03345 is slightly larger than log(2)/(9*log(10)). */ size_t c_len = 9 * ((size_t)(a_len * (GMP_LIMB_BITS * 0.03345f)) + 1); char *c_ptr = (char *) malloc (xsum (c_len, extra_zeroes)); if (c_ptr != NULL) { char *d_ptr = c_ptr; for (; extra_zeroes > 0; extra_zeroes--) *d_ptr++ = '0'; while (a_len > 0) { /* Divide a by 10^9, in-place. */ mp_limb_t remainder = 0; mp_limb_t *ptr = a_ptr + a_len; size_t count; for (count = a_len; count > 0; count--) { mp_twolimb_t num = ((mp_twolimb_t) remainder << GMP_LIMB_BITS) | *--ptr; *ptr = num / 1000000000; remainder = num % 1000000000; } /* Store the remainder as 9 decimal digits. */ for (count = 9; count > 0; count--) { *d_ptr++ = '0' + (remainder % 10); remainder = remainder / 10; } /* Normalize a. */ if (a_ptr[a_len - 1] == 0) a_len--; } /* Remove leading zeroes. */ while (d_ptr > c_ptr && d_ptr[-1] == '0') d_ptr--; /* But keep at least one zero. */ if (d_ptr == c_ptr) *d_ptr++ = '0'; /* Terminate the string. */ *d_ptr = '\0'; } return c_ptr; } # if NEED_PRINTF_LONG_DOUBLE /* Assuming x is finite and >= 0: write x as x = 2^e * m, where m is a bignum. Return the allocated memory in case of success, NULL in case of memory allocation failure. */ static void * decode_long_double (long double x, int *ep, mpn_t *mp) { mpn_t m; int exp; long double y; size_t i; /* Allocate memory for result. */ m.nlimbs = (LDBL_MANT_BIT + GMP_LIMB_BITS - 1) / GMP_LIMB_BITS; m.limbs = (mp_limb_t *) malloc (m.nlimbs * sizeof (mp_limb_t)); if (m.limbs == NULL) return NULL; /* Split into exponential part and mantissa. */ y = frexpl (x, &exp); if (!(y >= 0.0L && y < 1.0L)) abort (); /* x = 2^exp * y = 2^(exp - LDBL_MANT_BIT) * (y * LDBL_MANT_BIT), and the latter is an integer. */ /* Convert the mantissa (y * LDBL_MANT_BIT) to a sequence of limbs. I'm not sure whether it's safe to cast a 'long double' value between 2^31 and 2^32 to 'unsigned int', therefore play safe and cast only 'long double' values between 0 and 2^16 (to 'unsigned int' or 'int', doesn't matter). */ # if (LDBL_MANT_BIT % GMP_LIMB_BITS) != 0 # if (LDBL_MANT_BIT % GMP_LIMB_BITS) > GMP_LIMB_BITS / 2 { mp_limb_t hi, lo; y *= (mp_limb_t) 1 << (LDBL_MANT_BIT % (GMP_LIMB_BITS / 2)); hi = (int) y; y -= hi; if (!(y >= 0.0L && y < 1.0L)) abort (); y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2); lo = (int) y; y -= lo; if (!(y >= 0.0L && y < 1.0L)) abort (); m.limbs[LDBL_MANT_BIT / GMP_LIMB_BITS] = (hi << (GMP_LIMB_BITS / 2)) | lo; } # else { mp_limb_t d; y *= (mp_limb_t) 1 << (LDBL_MANT_BIT % GMP_LIMB_BITS); d = (int) y; y -= d; if (!(y >= 0.0L && y < 1.0L)) abort (); m.limbs[LDBL_MANT_BIT / GMP_LIMB_BITS] = d; } # endif # endif for (i = LDBL_MANT_BIT / GMP_LIMB_BITS; i > 0; ) { mp_limb_t hi, lo; y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2); hi = (int) y; y -= hi; if (!(y >= 0.0L && y < 1.0L)) abort (); y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2); lo = (int) y; y -= lo; if (!(y >= 0.0L && y < 1.0L)) abort (); m.limbs[--i] = (hi << (GMP_LIMB_BITS / 2)) | lo; } if (!(y == 0.0L)) abort (); /* Normalise. */ while (m.nlimbs > 0 && m.limbs[m.nlimbs - 1] == 0) m.nlimbs--; *mp = m; *ep = exp - LDBL_MANT_BIT; return m.limbs; } # endif # if NEED_PRINTF_DOUBLE /* Assuming x is finite and >= 0: write x as x = 2^e * m, where m is a bignum. Return the allocated memory in case of success, NULL in case of memory allocation failure. */ static void * decode_double (double x, int *ep, mpn_t *mp) { mpn_t m; int exp; double y; size_t i; /* Allocate memory for result. */ m.nlimbs = (DBL_MANT_BIT + GMP_LIMB_BITS - 1) / GMP_LIMB_BITS; m.limbs = (mp_limb_t *) malloc (m.nlimbs * sizeof (mp_limb_t)); if (m.limbs == NULL) return NULL; /* Split into exponential part and mantissa. */ y = frexp (x, &exp); if (!(y >= 0.0 && y < 1.0)) abort (); /* x = 2^exp * y = 2^(exp - DBL_MANT_BIT) * (y * DBL_MANT_BIT), and the latter is an integer. */ /* Convert the mantissa (y * DBL_MANT_BIT) to a sequence of limbs. I'm not sure whether it's safe to cast a 'double' value between 2^31 and 2^32 to 'unsigned int', therefore play safe and cast only 'double' values between 0 and 2^16 (to 'unsigned int' or 'int', doesn't matter). */ # if (DBL_MANT_BIT % GMP_LIMB_BITS) != 0 # if (DBL_MANT_BIT % GMP_LIMB_BITS) > GMP_LIMB_BITS / 2 { mp_limb_t hi, lo; y *= (mp_limb_t) 1 << (DBL_MANT_BIT % (GMP_LIMB_BITS / 2)); hi = (int) y; y -= hi; if (!(y >= 0.0 && y < 1.0)) abort (); y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2); lo = (int) y; y -= lo; if (!(y >= 0.0 && y < 1.0)) abort (); m.limbs[DBL_MANT_BIT / GMP_LIMB_BITS] = (hi << (GMP_LIMB_BITS / 2)) | lo; } # else { mp_limb_t d; y *= (mp_limb_t) 1 << (DBL_MANT_BIT % GMP_LIMB_BITS); d = (int) y; y -= d; if (!(y >= 0.0 && y < 1.0)) abort (); m.limbs[DBL_MANT_BIT / GMP_LIMB_BITS] = d; } # endif # endif for (i = DBL_MANT_BIT / GMP_LIMB_BITS; i > 0; ) { mp_limb_t hi, lo; y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2); hi = (int) y; y -= hi; if (!(y >= 0.0 && y < 1.0)) abort (); y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2); lo = (int) y; y -= lo; if (!(y >= 0.0 && y < 1.0)) abort (); m.limbs[--i] = (hi << (GMP_LIMB_BITS / 2)) | lo; } if (!(y == 0.0)) abort (); /* Normalise. */ while (m.nlimbs > 0 && m.limbs[m.nlimbs - 1] == 0) m.nlimbs--; *mp = m; *ep = exp - DBL_MANT_BIT; return m.limbs; } # endif /* Assuming x = 2^e * m is finite and >= 0, and n is an integer: Returns the decimal representation of round (x * 10^n). Return the allocated memory - containing the decimal digits in low-to-high order, terminated with a NUL character - in case of success, NULL in case of memory allocation failure. */ static char * scale10_round_decimal_decoded (int e, mpn_t m, void *memory, int n) { int s; size_t extra_zeroes; unsigned int abs_n; unsigned int abs_s; mp_limb_t *pow5_ptr; size_t pow5_len; unsigned int s_limbs; unsigned int s_bits; mpn_t pow5; mpn_t z; void *z_memory; char *digits; if (memory == NULL) return NULL; /* x = 2^e * m, hence y = round (2^e * 10^n * m) = round (2^(e+n) * 5^n * m) = round (2^s * 5^n * m). */ s = e + n; extra_zeroes = 0; /* Factor out a common power of 10 if possible. */ if (s > 0 && n > 0) { extra_zeroes = (s < n ? s : n); s -= extra_zeroes; n -= extra_zeroes; } /* Here y = round (2^s * 5^n * m) * 10^extra_zeroes. Before converting to decimal, we need to compute z = round (2^s * 5^n * m). */ /* Compute 5^|n|, possibly shifted by |s| bits if n and s have the same sign. 2.322 is slightly larger than log(5)/log(2). */ abs_n = (n >= 0 ? n : -n); abs_s = (s >= 0 ? s : -s); pow5_ptr = (mp_limb_t *) malloc (((int)(abs_n * (2.322f / GMP_LIMB_BITS)) + 1 + abs_s / GMP_LIMB_BITS + 1) * sizeof (mp_limb_t)); if (pow5_ptr == NULL) { free (memory); return NULL; } /* Initialize with 1. */ pow5_ptr[0] = 1; pow5_len = 1; /* Multiply with 5^|n|. */ if (abs_n > 0) { static mp_limb_t const small_pow5[13 + 1] = { 1, 5, 25, 125, 625, 3125, 15625, 78125, 390625, 1953125, 9765625, 48828125, 244140625, 1220703125 }; unsigned int n13; for (n13 = 0; n13 <= abs_n; n13 += 13) { mp_limb_t digit1 = small_pow5[n13 + 13 <= abs_n ? 13 : abs_n - n13]; size_t j; mp_twolimb_t carry = 0; for (j = 0; j < pow5_len; j++) { mp_limb_t digit2 = pow5_ptr[j]; carry += (mp_twolimb_t) digit1 * (mp_twolimb_t) digit2; pow5_ptr[j] = (mp_limb_t) carry; carry = carry >> GMP_LIMB_BITS; } if (carry > 0) pow5_ptr[pow5_len++] = (mp_limb_t) carry; } } s_limbs = abs_s / GMP_LIMB_BITS; s_bits = abs_s % GMP_LIMB_BITS; if (n >= 0 ? s >= 0 : s <= 0) { /* Multiply with 2^|s|. */ if (s_bits > 0) { mp_limb_t *ptr = pow5_ptr; mp_twolimb_t accu = 0; size_t count; for (count = pow5_len; count > 0; count--) { accu += (mp_twolimb_t) *ptr << s_bits; *ptr++ = (mp_limb_t) accu; accu = accu >> GMP_LIMB_BITS; } if (accu > 0) { *ptr = (mp_limb_t) accu; pow5_len++; } } if (s_limbs > 0) { size_t count; for (count = pow5_len; count > 0;) { count--; pow5_ptr[s_limbs + count] = pow5_ptr[count]; } for (count = s_limbs; count > 0;) { count--; pow5_ptr[count] = 0; } pow5_len += s_limbs; } pow5.limbs = pow5_ptr; pow5.nlimbs = pow5_len; if (n >= 0) { /* Multiply m with pow5. No division needed. */ z_memory = multiply (m, pow5, &z); } else { /* Divide m by pow5 and round. */ z_memory = divide (m, pow5, &z); } } else { pow5.limbs = pow5_ptr; pow5.nlimbs = pow5_len; if (n >= 0) { /* n >= 0, s < 0. Multiply m with pow5, then divide by 2^|s|. */ mpn_t numerator; mpn_t denominator; void *tmp_memory; tmp_memory = multiply (m, pow5, &numerator); if (tmp_memory == NULL) { free (pow5_ptr); free (memory); return NULL; } /* Construct 2^|s|. */ { mp_limb_t *ptr = pow5_ptr + pow5_len; size_t i; for (i = 0; i < s_limbs; i++) ptr[i] = 0; ptr[s_limbs] = (mp_limb_t) 1 << s_bits; denominator.limbs = ptr; denominator.nlimbs = s_limbs + 1; } z_memory = divide (numerator, denominator, &z); free (tmp_memory); } else { /* n < 0, s > 0. Multiply m with 2^s, then divide by pow5. */ mpn_t numerator; mp_limb_t *num_ptr; num_ptr = (mp_limb_t *) malloc ((m.nlimbs + s_limbs + 1) * sizeof (mp_limb_t)); if (num_ptr == NULL) { free (pow5_ptr); free (memory); return NULL; } { mp_limb_t *destptr = num_ptr; { size_t i; for (i = 0; i < s_limbs; i++) *destptr++ = 0; } if (s_bits > 0) { const mp_limb_t *sourceptr = m.limbs; mp_twolimb_t accu = 0; size_t count; for (count = m.nlimbs; count > 0; count--) { accu += (mp_twolimb_t) *sourceptr++ << s_bits; *destptr++ = (mp_limb_t) accu; accu = accu >> GMP_LIMB_BITS; } if (accu > 0) *destptr++ = (mp_limb_t) accu; } else { const mp_limb_t *sourceptr = m.limbs; size_t count; for (count = m.nlimbs; count > 0; count--) *destptr++ = *sourceptr++; } numerator.limbs = num_ptr; numerator.nlimbs = destptr - num_ptr; } z_memory = divide (numerator, pow5, &z); free (num_ptr); } } free (pow5_ptr); free (memory); /* Here y = round (x * 10^n) = z * 10^extra_zeroes. */ if (z_memory == NULL) return NULL; digits = convert_to_decimal (z, extra_zeroes); free (z_memory); return digits; } # if NEED_PRINTF_LONG_DOUBLE /* Assuming x is finite and >= 0, and n is an integer: Returns the decimal representation of round (x * 10^n). Return the allocated memory - containing the decimal digits in low-to-high order, terminated with a NUL character - in case of success, NULL in case of memory allocation failure. */ static char * scale10_round_decimal_long_double (long double x, int n) { int e; mpn_t m; void *memory = decode_long_double (x, &e, &m); return scale10_round_decimal_decoded (e, m, memory, n); } # endif # if NEED_PRINTF_DOUBLE /* Assuming x is finite and >= 0, and n is an integer: Returns the decimal representation of round (x * 10^n). Return the allocated memory - containing the decimal digits in low-to-high order, terminated with a NUL character - in case of success, NULL in case of memory allocation failure. */ static char * scale10_round_decimal_double (double x, int n) { int e; mpn_t m; void *memory = decode_double (x, &e, &m); return scale10_round_decimal_decoded (e, m, memory, n); } # endif # if NEED_PRINTF_LONG_DOUBLE /* Assuming x is finite and > 0: Return an approximation for n with 10^n <= x < 10^(n+1). The approximation is usually the right n, but may be off by 1 sometimes. */ static int floorlog10l (long double x) { int exp; long double y; double z; double l; /* Split into exponential part and mantissa. */ y = frexpl (x, &exp); if (!(y >= 0.0L && y < 1.0L)) abort (); if (y == 0.0L) return INT_MIN; if (y < 0.5L) { while (y < (1.0L / (1 << (GMP_LIMB_BITS / 2)) / (1 << (GMP_LIMB_BITS / 2)))) { y *= 1.0L * (1 << (GMP_LIMB_BITS / 2)) * (1 << (GMP_LIMB_BITS / 2)); exp -= GMP_LIMB_BITS; } if (y < (1.0L / (1 << 16))) { y *= 1.0L * (1 << 16); exp -= 16; } if (y < (1.0L / (1 << 8))) { y *= 1.0L * (1 << 8); exp -= 8; } if (y < (1.0L / (1 << 4))) { y *= 1.0L * (1 << 4); exp -= 4; } if (y < (1.0L / (1 << 2))) { y *= 1.0L * (1 << 2); exp -= 2; } if (y < (1.0L / (1 << 1))) { y *= 1.0L * (1 << 1); exp -= 1; } } if (!(y >= 0.5L && y < 1.0L)) abort (); /* Compute an approximation for l = log2(x) = exp + log2(y). */ l = exp; z = y; if (z < 0.70710678118654752444) { z *= 1.4142135623730950488; l -= 0.5; } if (z < 0.8408964152537145431) { z *= 1.1892071150027210667; l -= 0.25; } if (z < 0.91700404320467123175) { z *= 1.0905077326652576592; l -= 0.125; } if (z < 0.9576032806985736469) { z *= 1.0442737824274138403; l -= 0.0625; } /* Now 0.95 <= z <= 1.01. */ z = 1 - z; /* log(1-z) = - z - z^2/2 - z^3/3 - z^4/4 - ... Four terms are enough to get an approximation with error < 10^-7. */ l -= z * (1.0 + z * (0.5 + z * ((1.0 / 3) + z * 0.25))); /* Finally multiply with log(2)/log(10), yields an approximation for log10(x). */ l *= 0.30102999566398119523; /* Round down to the next integer. */ return (int) l + (l < 0 ? -1 : 0); } # endif # if NEED_PRINTF_DOUBLE /* Assuming x is finite and > 0: Return an approximation for n with 10^n <= x < 10^(n+1). The approximation is usually the right n, but may be off by 1 sometimes. */ static int floorlog10 (double x) { int exp; double y; double z; double l; /* Split into exponential part and mantissa. */ y = frexp (x, &exp); if (!(y >= 0.0 && y < 1.0)) abort (); if (y == 0.0) return INT_MIN; if (y < 0.5) { while (y < (1.0 / (1 << (GMP_LIMB_BITS / 2)) / (1 << (GMP_LIMB_BITS / 2)))) { y *= 1.0 * (1 << (GMP_LIMB_BITS / 2)) * (1 << (GMP_LIMB_BITS / 2)); exp -= GMP_LIMB_BITS; } if (y < (1.0 / (1 << 16))) { y *= 1.0 * (1 << 16); exp -= 16; } if (y < (1.0 / (1 << 8))) { y *= 1.0 * (1 << 8); exp -= 8; } if (y < (1.0 / (1 << 4))) { y *= 1.0 * (1 << 4); exp -= 4; } if (y < (1.0 / (1 << 2))) { y *= 1.0 * (1 << 2); exp -= 2; } if (y < (1.0 / (1 << 1))) { y *= 1.0 * (1 << 1); exp -= 1; } } if (!(y >= 0.5 && y < 1.0)) abort (); /* Compute an approximation for l = log2(x) = exp + log2(y). */ l = exp; z = y; if (z < 0.70710678118654752444) { z *= 1.4142135623730950488; l -= 0.5; } if (z < 0.8408964152537145431) { z *= 1.1892071150027210667; l -= 0.25; } if (z < 0.91700404320467123175) { z *= 1.0905077326652576592; l -= 0.125; } if (z < 0.9576032806985736469) { z *= 1.0442737824274138403; l -= 0.0625; } /* Now 0.95 <= z <= 1.01. */ z = 1 - z; /* log(1-z) = - z - z^2/2 - z^3/3 - z^4/4 - ... Four terms are enough to get an approximation with error < 10^-7. */ l -= z * (1.0 + z * (0.5 + z * ((1.0 / 3) + z * 0.25))); /* Finally multiply with log(2)/log(10), yields an approximation for log10(x). */ l *= 0.30102999566398119523; /* Round down to the next integer. */ return (int) l + (l < 0 ? -1 : 0); } # endif #endif DCHAR_T * VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, const FCHAR_T *format, va_list args) { DIRECTIVES d; arguments a; if (PRINTF_PARSE (format, &d, &a) < 0) /* errno is already set. */ return NULL; #define CLEANUP() \ free (d.dir); \ if (a.arg) \ free (a.arg); if (PRINTF_FETCHARGS (args, &a) < 0) { CLEANUP (); errno = EINVAL; return NULL; } { size_t buf_neededlength; TCHAR_T *buf; TCHAR_T *buf_malloced; const FCHAR_T *cp; size_t i; DIRECTIVE *dp; /* Output string accumulator. */ DCHAR_T *result; size_t allocated; size_t length; /* Allocate a small buffer that will hold a directive passed to sprintf or snprintf. */ buf_neededlength = xsum4 (7, d.max_width_length, d.max_precision_length, 6); #if HAVE_ALLOCA if (buf_neededlength < 4000 / sizeof (TCHAR_T)) { buf = (TCHAR_T *) alloca (buf_neededlength * sizeof (TCHAR_T)); buf_malloced = NULL; } else #endif { size_t buf_memsize = xtimes (buf_neededlength, sizeof (TCHAR_T)); if (size_overflow_p (buf_memsize)) goto out_of_memory_1; buf = (TCHAR_T *) malloc (buf_memsize); if (buf == NULL) goto out_of_memory_1; buf_malloced = buf; } if (resultbuf != NULL) { result = resultbuf; allocated = *lengthp; } else { result = NULL; allocated = 0; } length = 0; /* Invariants: result is either == resultbuf or == NULL or malloc-allocated. If length > 0, then result != NULL. */ /* Ensures that allocated >= needed. Aborts through a jump to out_of_memory if needed is SIZE_MAX or otherwise too big. */ #define ENSURE_ALLOCATION(needed) \ if ((needed) > allocated) \ { \ size_t memory_size; \ DCHAR_T *memory; \ \ allocated = (allocated > 0 ? xtimes (allocated, 2) : 12); \ if ((needed) > allocated) \ allocated = (needed); \ memory_size = xtimes (allocated, sizeof (DCHAR_T)); \ if (size_overflow_p (memory_size)) \ goto out_of_memory; \ if (result == resultbuf || result == NULL) \ memory = (DCHAR_T *) malloc (memory_size); \ else \ memory = (DCHAR_T *) realloc (result, memory_size); \ if (memory == NULL) \ goto out_of_memory; \ if (result == resultbuf && length > 0) \ DCHAR_CPY (memory, result, length); \ result = memory; \ } for (cp = format, i = 0, dp = &d.dir[0]; ; cp = dp->dir_end, i++, dp++) { if (cp != dp->dir_start) { size_t n = dp->dir_start - cp; size_t augmented_length = xsum (length, n); ENSURE_ALLOCATION (augmented_length); /* This copies a piece of FCHAR_T[] into a DCHAR_T[]. Here we need that the format string contains only ASCII characters if FCHAR_T and DCHAR_T are not the same type. */ if (sizeof (FCHAR_T) == sizeof (DCHAR_T)) { DCHAR_CPY (result + length, (const DCHAR_T *) cp, n); length = augmented_length; } else { do result[length++] = (unsigned char) *cp++; while (--n > 0); } } if (i == d.count) break; /* Execute a single directive. */ if (dp->conversion == '%') { size_t augmented_length; if (!(dp->arg_index == ARG_NONE)) abort (); augmented_length = xsum (length, 1); ENSURE_ALLOCATION (augmented_length); result[length] = '%'; length = augmented_length; } else { if (!(dp->arg_index != ARG_NONE)) abort (); if (dp->conversion == 'n') { switch (a.arg[dp->arg_index].type) { case TYPE_COUNT_SCHAR_POINTER: *a.arg[dp->arg_index].a.a_count_schar_pointer = length; break; case TYPE_COUNT_SHORT_POINTER: *a.arg[dp->arg_index].a.a_count_short_pointer = length; break; case TYPE_COUNT_INT_POINTER: *a.arg[dp->arg_index].a.a_count_int_pointer = length; break; case TYPE_COUNT_LONGINT_POINTER: *a.arg[dp->arg_index].a.a_count_longint_pointer = length; break; #if HAVE_LONG_LONG_INT case TYPE_COUNT_LONGLONGINT_POINTER: *a.arg[dp->arg_index].a.a_count_longlongint_pointer = length; break; #endif default: abort (); } } #if ENABLE_UNISTDIO /* The unistdio extensions. */ else if (dp->conversion == 'U') { arg_type type = a.arg[dp->arg_index].type; int flags = dp->flags; int has_width; size_t width; int has_precision; size_t precision; has_width = 0; width = 0; if (dp->width_start != dp->width_end) { if (dp->width_arg_index != ARG_NONE) { int arg; if (!(a.arg[dp->width_arg_index].type == TYPE_INT)) abort (); arg = a.arg[dp->width_arg_index].a.a_int; if (arg < 0) { /* "A negative field width is taken as a '-' flag followed by a positive field width." */ flags |= FLAG_LEFT; width = (unsigned int) (-arg); } else width = arg; } else { const FCHAR_T *digitp = dp->width_start; do width = xsum (xtimes (width, 10), *digitp++ - '0'); while (digitp != dp->width_end); } has_width = 1; } has_precision = 0; precision = 0; if (dp->precision_start != dp->precision_end) { if (dp->precision_arg_index != ARG_NONE) { int arg; if (!(a.arg[dp->precision_arg_index].type == TYPE_INT)) abort (); arg = a.arg[dp->precision_arg_index].a.a_int; /* "A negative precision is taken as if the precision were omitted." */ if (arg >= 0) { precision = arg; has_precision = 1; } } else { const FCHAR_T *digitp = dp->precision_start + 1; precision = 0; while (digitp != dp->precision_end) precision = xsum (xtimes (precision, 10), *digitp++ - '0'); has_precision = 1; } } switch (type) { case TYPE_U8_STRING: { const uint8_t *arg = a.arg[dp->arg_index].a.a_u8_string; const uint8_t *arg_end; size_t characters; if (has_precision) { /* Use only PRECISION characters, from the left. */ arg_end = arg; characters = 0; for (; precision > 0; precision--) { int count = u8_strmblen (arg_end); if (count == 0) break; if (count < 0) { if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = EILSEQ; return NULL; } arg_end += count; characters++; } } else if (has_width) { /* Use the entire string, and count the number of characters. */ arg_end = arg; characters = 0; for (;;) { int count = u8_strmblen (arg_end); if (count == 0) break; if (count < 0) { if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = EILSEQ; return NULL; } arg_end += count; characters++; } } else { /* Use the entire string. */ arg_end = arg + u8_strlen (arg); /* The number of characters doesn't matter. */ characters = 0; } if (has_width && width > characters && !(dp->flags & FLAG_LEFT)) { size_t n = width - characters; ENSURE_ALLOCATION (xsum (length, n)); DCHAR_SET (result + length, ' ', n); length += n; } # if DCHAR_IS_UINT8_T { size_t n = arg_end - arg; ENSURE_ALLOCATION (xsum (length, n)); DCHAR_CPY (result + length, arg, n); length += n; } # else { /* Convert. */ DCHAR_T *converted = result + length; size_t converted_len = allocated - length; # if DCHAR_IS_TCHAR /* Convert from UTF-8 to locale encoding. */ if (u8_conv_to_encoding (locale_charset (), iconveh_question_mark, arg, arg_end - arg, NULL, &converted, &converted_len) < 0) # else /* Convert from UTF-8 to UTF-16/UTF-32. */ converted = U8_TO_DCHAR (arg, arg_end - arg, converted, &converted_len); if (converted == NULL) # endif { int saved_errno = errno; if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = saved_errno; return NULL; } if (converted != result + length) { ENSURE_ALLOCATION (xsum (length, converted_len)); DCHAR_CPY (result + length, converted, converted_len); free (converted); } length += converted_len; } # endif if (has_width && width > characters && (dp->flags & FLAG_LEFT)) { size_t n = width - characters; ENSURE_ALLOCATION (xsum (length, n)); DCHAR_SET (result + length, ' ', n); length += n; } } break; case TYPE_U16_STRING: { const uint16_t *arg = a.arg[dp->arg_index].a.a_u16_string; const uint16_t *arg_end; size_t characters; if (has_precision) { /* Use only PRECISION characters, from the left. */ arg_end = arg; characters = 0; for (; precision > 0; precision--) { int count = u16_strmblen (arg_end); if (count == 0) break; if (count < 0) { if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = EILSEQ; return NULL; } arg_end += count; characters++; } } else if (has_width) { /* Use the entire string, and count the number of characters. */ arg_end = arg; characters = 0; for (;;) { int count = u16_strmblen (arg_end); if (count == 0) break; if (count < 0) { if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = EILSEQ; return NULL; } arg_end += count; characters++; } } else { /* Use the entire string. */ arg_end = arg + u16_strlen (arg); /* The number of characters doesn't matter. */ characters = 0; } if (has_width && width > characters && !(dp->flags & FLAG_LEFT)) { size_t n = width - characters; ENSURE_ALLOCATION (xsum (length, n)); DCHAR_SET (result + length, ' ', n); length += n; } # if DCHAR_IS_UINT16_T { size_t n = arg_end - arg; ENSURE_ALLOCATION (xsum (length, n)); DCHAR_CPY (result + length, arg, n); length += n; } # else { /* Convert. */ DCHAR_T *converted = result + length; size_t converted_len = allocated - length; # if DCHAR_IS_TCHAR /* Convert from UTF-16 to locale encoding. */ if (u16_conv_to_encoding (locale_charset (), iconveh_question_mark, arg, arg_end - arg, NULL, &converted, &converted_len) < 0) # else /* Convert from UTF-16 to UTF-8/UTF-32. */ converted = U16_TO_DCHAR (arg, arg_end - arg, converted, &converted_len); if (converted == NULL) # endif { int saved_errno = errno; if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = saved_errno; return NULL; } if (converted != result + length) { ENSURE_ALLOCATION (xsum (length, converted_len)); DCHAR_CPY (result + length, converted, converted_len); free (converted); } length += converted_len; } # endif if (has_width && width > characters && (dp->flags & FLAG_LEFT)) { size_t n = width - characters; ENSURE_ALLOCATION (xsum (length, n)); DCHAR_SET (result + length, ' ', n); length += n; } } break; case TYPE_U32_STRING: { const uint32_t *arg = a.arg[dp->arg_index].a.a_u32_string; const uint32_t *arg_end; size_t characters; if (has_precision) { /* Use only PRECISION characters, from the left. */ arg_end = arg; characters = 0; for (; precision > 0; precision--) { int count = u32_strmblen (arg_end); if (count == 0) break; if (count < 0) { if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = EILSEQ; return NULL; } arg_end += count; characters++; } } else if (has_width) { /* Use the entire string, and count the number of characters. */ arg_end = arg; characters = 0; for (;;) { int count = u32_strmblen (arg_end); if (count == 0) break; if (count < 0) { if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = EILSEQ; return NULL; } arg_end += count; characters++; } } else { /* Use the entire string. */ arg_end = arg + u32_strlen (arg); /* The number of characters doesn't matter. */ characters = 0; } if (has_width && width > characters && !(dp->flags & FLAG_LEFT)) { size_t n = width - characters; ENSURE_ALLOCATION (xsum (length, n)); DCHAR_SET (result + length, ' ', n); length += n; } # if DCHAR_IS_UINT32_T { size_t n = arg_end - arg; ENSURE_ALLOCATION (xsum (length, n)); DCHAR_CPY (result + length, arg, n); length += n; } # else { /* Convert. */ DCHAR_T *converted = result + length; size_t converted_len = allocated - length; # if DCHAR_IS_TCHAR /* Convert from UTF-32 to locale encoding. */ if (u32_conv_to_encoding (locale_charset (), iconveh_question_mark, arg, arg_end - arg, NULL, &converted, &converted_len) < 0) # else /* Convert from UTF-32 to UTF-8/UTF-16. */ converted = U32_TO_DCHAR (arg, arg_end - arg, converted, &converted_len); if (converted == NULL) # endif { int saved_errno = errno; if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = saved_errno; return NULL; } if (converted != result + length) { ENSURE_ALLOCATION (xsum (length, converted_len)); DCHAR_CPY (result + length, converted, converted_len); free (converted); } length += converted_len; } # endif if (has_width && width > characters && (dp->flags & FLAG_LEFT)) { size_t n = width - characters; ENSURE_ALLOCATION (xsum (length, n)); DCHAR_SET (result + length, ' ', n); length += n; } } break; default: abort (); } } #endif #if (NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_DOUBLE) && !defined IN_LIBINTL else if ((dp->conversion == 'a' || dp->conversion == 'A') # if !(NEED_PRINTF_DIRECTIVE_A || (NEED_PRINTF_LONG_DOUBLE && NEED_PRINTF_DOUBLE)) && (0 # if NEED_PRINTF_DOUBLE || a.arg[dp->arg_index].type == TYPE_DOUBLE # endif # if NEED_PRINTF_LONG_DOUBLE || a.arg[dp->arg_index].type == TYPE_LONGDOUBLE # endif ) # endif ) { arg_type type = a.arg[dp->arg_index].type; int flags = dp->flags; int has_width; size_t width; int has_precision; size_t precision; size_t tmp_length; DCHAR_T tmpbuf[700]; DCHAR_T *tmp; DCHAR_T *pad_ptr; DCHAR_T *p; has_width = 0; width = 0; if (dp->width_start != dp->width_end) { if (dp->width_arg_index != ARG_NONE) { int arg; if (!(a.arg[dp->width_arg_index].type == TYPE_INT)) abort (); arg = a.arg[dp->width_arg_index].a.a_int; if (arg < 0) { /* "A negative field width is taken as a '-' flag followed by a positive field width." */ flags |= FLAG_LEFT; width = (unsigned int) (-arg); } else width = arg; } else { const FCHAR_T *digitp = dp->width_start; do width = xsum (xtimes (width, 10), *digitp++ - '0'); while (digitp != dp->width_end); } has_width = 1; } has_precision = 0; precision = 0; if (dp->precision_start != dp->precision_end) { if (dp->precision_arg_index != ARG_NONE) { int arg; if (!(a.arg[dp->precision_arg_index].type == TYPE_INT)) abort (); arg = a.arg[dp->precision_arg_index].a.a_int; /* "A negative precision is taken as if the precision were omitted." */ if (arg >= 0) { precision = arg; has_precision = 1; } } else { const FCHAR_T *digitp = dp->precision_start + 1; precision = 0; while (digitp != dp->precision_end) precision = xsum (xtimes (precision, 10), *digitp++ - '0'); has_precision = 1; } } /* Allocate a temporary buffer of sufficient size. */ if (type == TYPE_LONGDOUBLE) tmp_length = (unsigned int) ((LDBL_DIG + 1) * 0.831 /* decimal -> hexadecimal */ ) + 1; /* turn floor into ceil */ else tmp_length = (unsigned int) ((DBL_DIG + 1) * 0.831 /* decimal -> hexadecimal */ ) + 1; /* turn floor into ceil */ if (tmp_length < precision) tmp_length = precision; /* Account for sign, decimal point etc. */ tmp_length = xsum (tmp_length, 12); if (tmp_length < width) tmp_length = width; tmp_length = xsum (tmp_length, 1); /* account for trailing NUL */ if (tmp_length <= sizeof (tmpbuf) / sizeof (DCHAR_T)) tmp = tmpbuf; else { size_t tmp_memsize = xtimes (tmp_length, sizeof (DCHAR_T)); if (size_overflow_p (tmp_memsize)) /* Overflow, would lead to out of memory. */ goto out_of_memory; tmp = (DCHAR_T *) malloc (tmp_memsize); if (tmp == NULL) /* Out of memory. */ goto out_of_memory; } pad_ptr = NULL; p = tmp; if (type == TYPE_LONGDOUBLE) { # if NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_LONG_DOUBLE long double arg = a.arg[dp->arg_index].a.a_longdouble; if (isnanl (arg)) { if (dp->conversion == 'A') { *p++ = 'N'; *p++ = 'A'; *p++ = 'N'; } else { *p++ = 'n'; *p++ = 'a'; *p++ = 'n'; } } else { int sign = 0; DECL_LONG_DOUBLE_ROUNDING BEGIN_LONG_DOUBLE_ROUNDING (); if (signbit (arg)) /* arg < 0.0L or negative zero */ { sign = -1; arg = -arg; } if (sign < 0) *p++ = '-'; else if (flags & FLAG_SHOWSIGN) *p++ = '+'; else if (flags & FLAG_SPACE) *p++ = ' '; if (arg > 0.0L && arg + arg == arg) { if (dp->conversion == 'A') { *p++ = 'I'; *p++ = 'N'; *p++ = 'F'; } else { *p++ = 'i'; *p++ = 'n'; *p++ = 'f'; } } else { int exponent; long double mantissa; if (arg > 0.0L) mantissa = printf_frexpl (arg, &exponent); else { exponent = 0; mantissa = 0.0L; } if (has_precision && precision < (unsigned int) ((LDBL_DIG + 1) * 0.831) + 1) { /* Round the mantissa. */ long double tail = mantissa; size_t q; for (q = precision; ; q--) { int digit = (int) tail; tail -= digit; if (q == 0) { if (digit & 1 ? tail >= 0.5L : tail > 0.5L) tail = 1 - tail; else tail = - tail; break; } tail *= 16.0L; } if (tail != 0.0L) for (q = precision; q > 0; q--) tail *= 0.0625L; mantissa += tail; } *p++ = '0'; *p++ = dp->conversion - 'A' + 'X'; pad_ptr = p; { int digit; digit = (int) mantissa; mantissa -= digit; *p++ = '0' + digit; if ((flags & FLAG_ALT) || mantissa > 0.0L || precision > 0) { *p++ = decimal_point_char (); /* This loop terminates because we assume that FLT_RADIX is a power of 2. */ while (mantissa > 0.0L) { mantissa *= 16.0L; digit = (int) mantissa; mantissa -= digit; *p++ = digit + (digit < 10 ? '0' : dp->conversion - 10); if (precision > 0) precision--; } while (precision > 0) { *p++ = '0'; precision--; } } } *p++ = dp->conversion - 'A' + 'P'; # if WIDE_CHAR_VERSION { static const wchar_t decimal_format[] = { '%', '+', 'd', '\0' }; SNPRINTF (p, 6 + 1, decimal_format, exponent); } while (*p != '\0') p++; # else if (sizeof (DCHAR_T) == 1) { sprintf ((char *) p, "%+d", exponent); while (*p != '\0') p++; } else { char expbuf[6 + 1]; const char *ep; sprintf (expbuf, "%+d", exponent); for (ep = expbuf; (*p = *ep) != '\0'; ep++) p++; } # endif } END_LONG_DOUBLE_ROUNDING (); } # else abort (); # endif } else { # if NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_DOUBLE double arg = a.arg[dp->arg_index].a.a_double; if (isnan (arg)) { if (dp->conversion == 'A') { *p++ = 'N'; *p++ = 'A'; *p++ = 'N'; } else { *p++ = 'n'; *p++ = 'a'; *p++ = 'n'; } } else { int sign = 0; if (signbit (arg)) /* arg < 0.0 or negative zero */ { sign = -1; arg = -arg; } if (sign < 0) *p++ = '-'; else if (flags & FLAG_SHOWSIGN) *p++ = '+'; else if (flags & FLAG_SPACE) *p++ = ' '; if (arg > 0.0 && arg + arg == arg) { if (dp->conversion == 'A') { *p++ = 'I'; *p++ = 'N'; *p++ = 'F'; } else { *p++ = 'i'; *p++ = 'n'; *p++ = 'f'; } } else { int exponent; double mantissa; if (arg > 0.0) mantissa = printf_frexp (arg, &exponent); else { exponent = 0; mantissa = 0.0; } if (has_precision && precision < (unsigned int) ((DBL_DIG + 1) * 0.831) + 1) { /* Round the mantissa. */ double tail = mantissa; size_t q; for (q = precision; ; q--) { int digit = (int) tail; tail -= digit; if (q == 0) { if (digit & 1 ? tail >= 0.5 : tail > 0.5) tail = 1 - tail; else tail = - tail; break; } tail *= 16.0; } if (tail != 0.0) for (q = precision; q > 0; q--) tail *= 0.0625; mantissa += tail; } *p++ = '0'; *p++ = dp->conversion - 'A' + 'X'; pad_ptr = p; { int digit; digit = (int) mantissa; mantissa -= digit; *p++ = '0' + digit; if ((flags & FLAG_ALT) || mantissa > 0.0 || precision > 0) { *p++ = decimal_point_char (); /* This loop terminates because we assume that FLT_RADIX is a power of 2. */ while (mantissa > 0.0) { mantissa *= 16.0; digit = (int) mantissa; mantissa -= digit; *p++ = digit + (digit < 10 ? '0' : dp->conversion - 10); if (precision > 0) precision--; } while (precision > 0) { *p++ = '0'; precision--; } } } *p++ = dp->conversion - 'A' + 'P'; # if WIDE_CHAR_VERSION { static const wchar_t decimal_format[] = { '%', '+', 'd', '\0' }; SNPRINTF (p, 6 + 1, decimal_format, exponent); } while (*p != '\0') p++; # else if (sizeof (DCHAR_T) == 1) { sprintf ((char *) p, "%+d", exponent); while (*p != '\0') p++; } else { char expbuf[6 + 1]; const char *ep; sprintf (expbuf, "%+d", exponent); for (ep = expbuf; (*p = *ep) != '\0'; ep++) p++; } # endif } } # else abort (); # endif } /* The generated string now extends from tmp to p, with the zero padding insertion point being at pad_ptr. */ if (has_width && p - tmp < width) { size_t pad = width - (p - tmp); DCHAR_T *end = p + pad; if (flags & FLAG_LEFT) { /* Pad with spaces on the right. */ for (; pad > 0; pad--) *p++ = ' '; } else if ((flags & FLAG_ZERO) && pad_ptr != NULL) { /* Pad with zeroes. */ DCHAR_T *q = end; while (p > pad_ptr) *--q = *--p; for (; pad > 0; pad--) *p++ = '0'; } else { /* Pad with spaces on the left. */ DCHAR_T *q = end; while (p > tmp) *--q = *--p; for (; pad > 0; pad--) *p++ = ' '; } p = end; } { size_t count = p - tmp; if (count >= tmp_length) /* tmp_length was incorrectly calculated - fix the code above! */ abort (); /* Make room for the result. */ if (count >= allocated - length) { size_t n = xsum (length, count); ENSURE_ALLOCATION (n); } /* Append the result. */ memcpy (result + length, tmp, count * sizeof (DCHAR_T)); if (tmp != tmpbuf) free (tmp); length += count; } } #endif #if (NEED_PRINTF_INFINITE_DOUBLE || NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE || NEED_PRINTF_LONG_DOUBLE) && !defined IN_LIBINTL else if ((dp->conversion == 'f' || dp->conversion == 'F' || dp->conversion == 'e' || dp->conversion == 'E' || dp->conversion == 'g' || dp->conversion == 'G' || dp->conversion == 'a' || dp->conversion == 'A') && (0 # if NEED_PRINTF_DOUBLE || a.arg[dp->arg_index].type == TYPE_DOUBLE # elif NEED_PRINTF_INFINITE_DOUBLE || (a.arg[dp->arg_index].type == TYPE_DOUBLE /* The systems (mingw) which produce wrong output for Inf, -Inf, and NaN also do so for -0.0. Therefore we treat this case here as well. */ && is_infinite_or_zero (a.arg[dp->arg_index].a.a_double)) # endif # if NEED_PRINTF_LONG_DOUBLE || a.arg[dp->arg_index].type == TYPE_LONGDOUBLE # elif NEED_PRINTF_INFINITE_LONG_DOUBLE || (a.arg[dp->arg_index].type == TYPE_LONGDOUBLE /* Some systems produce wrong output for Inf, -Inf, and NaN. */ && is_infinitel (a.arg[dp->arg_index].a.a_longdouble)) # endif )) { # if (NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE) && (NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE) arg_type type = a.arg[dp->arg_index].type; # endif int flags = dp->flags; int has_width; size_t width; int has_precision; size_t precision; size_t tmp_length; DCHAR_T tmpbuf[700]; DCHAR_T *tmp; DCHAR_T *pad_ptr; DCHAR_T *p; has_width = 0; width = 0; if (dp->width_start != dp->width_end) { if (dp->width_arg_index != ARG_NONE) { int arg; if (!(a.arg[dp->width_arg_index].type == TYPE_INT)) abort (); arg = a.arg[dp->width_arg_index].a.a_int; if (arg < 0) { /* "A negative field width is taken as a '-' flag followed by a positive field width." */ flags |= FLAG_LEFT; width = (unsigned int) (-arg); } else width = arg; } else { const FCHAR_T *digitp = dp->width_start; do width = xsum (xtimes (width, 10), *digitp++ - '0'); while (digitp != dp->width_end); } has_width = 1; } has_precision = 0; precision = 0; if (dp->precision_start != dp->precision_end) { if (dp->precision_arg_index != ARG_NONE) { int arg; if (!(a.arg[dp->precision_arg_index].type == TYPE_INT)) abort (); arg = a.arg[dp->precision_arg_index].a.a_int; /* "A negative precision is taken as if the precision were omitted." */ if (arg >= 0) { precision = arg; has_precision = 1; } } else { const FCHAR_T *digitp = dp->precision_start + 1; precision = 0; while (digitp != dp->precision_end) precision = xsum (xtimes (precision, 10), *digitp++ - '0'); has_precision = 1; } } /* POSIX specifies the default precision to be 6 for %f, %F, %e, %E, but not for %g, %G. Implementations appear to use the same default precision also for %g, %G. */ if (!has_precision) precision = 6; /* Allocate a temporary buffer of sufficient size. */ # if NEED_PRINTF_DOUBLE && NEED_PRINTF_LONG_DOUBLE tmp_length = (type == TYPE_LONGDOUBLE ? LDBL_DIG + 1 : DBL_DIG + 1); # elif NEED_PRINTF_INFINITE_DOUBLE && NEED_PRINTF_LONG_DOUBLE tmp_length = (type == TYPE_LONGDOUBLE ? LDBL_DIG + 1 : 0); # elif NEED_PRINTF_LONG_DOUBLE tmp_length = LDBL_DIG + 1; # elif NEED_PRINTF_DOUBLE tmp_length = DBL_DIG + 1; # else tmp_length = 0; # endif if (tmp_length < precision) tmp_length = precision; # if NEED_PRINTF_LONG_DOUBLE # if NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE if (type == TYPE_LONGDOUBLE) # endif if (dp->conversion == 'f' || dp->conversion == 'F') { long double arg = a.arg[dp->arg_index].a.a_longdouble; if (!(isnanl (arg) || arg + arg == arg)) { /* arg is finite and nonzero. */ int exponent = floorlog10l (arg < 0 ? -arg : arg); if (exponent >= 0 && tmp_length < exponent + precision) tmp_length = exponent + precision; } } # endif # if NEED_PRINTF_DOUBLE # if NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE if (type == TYPE_DOUBLE) # endif if (dp->conversion == 'f' || dp->conversion == 'F') { double arg = a.arg[dp->arg_index].a.a_double; if (!(isnan (arg) || arg + arg == arg)) { /* arg is finite and nonzero. */ int exponent = floorlog10 (arg < 0 ? -arg : arg); if (exponent >= 0 && tmp_length < exponent + precision) tmp_length = exponent + precision; } } # endif /* Account for sign, decimal point etc. */ tmp_length = xsum (tmp_length, 12); if (tmp_length < width) tmp_length = width; tmp_length = xsum (tmp_length, 1); /* account for trailing NUL */ if (tmp_length <= sizeof (tmpbuf) / sizeof (DCHAR_T)) tmp = tmpbuf; else { size_t tmp_memsize = xtimes (tmp_length, sizeof (DCHAR_T)); if (size_overflow_p (tmp_memsize)) /* Overflow, would lead to out of memory. */ goto out_of_memory; tmp = (DCHAR_T *) malloc (tmp_memsize); if (tmp == NULL) /* Out of memory. */ goto out_of_memory; } pad_ptr = NULL; p = tmp; # if NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE # if NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE if (type == TYPE_LONGDOUBLE) # endif { long double arg = a.arg[dp->arg_index].a.a_longdouble; if (isnanl (arg)) { if (dp->conversion >= 'A' && dp->conversion <= 'Z') { *p++ = 'N'; *p++ = 'A'; *p++ = 'N'; } else { *p++ = 'n'; *p++ = 'a'; *p++ = 'n'; } } else { int sign = 0; DECL_LONG_DOUBLE_ROUNDING BEGIN_LONG_DOUBLE_ROUNDING (); if (signbit (arg)) /* arg < 0.0L or negative zero */ { sign = -1; arg = -arg; } if (sign < 0) *p++ = '-'; else if (flags & FLAG_SHOWSIGN) *p++ = '+'; else if (flags & FLAG_SPACE) *p++ = ' '; if (arg > 0.0L && arg + arg == arg) { if (dp->conversion >= 'A' && dp->conversion <= 'Z') { *p++ = 'I'; *p++ = 'N'; *p++ = 'F'; } else { *p++ = 'i'; *p++ = 'n'; *p++ = 'f'; } } else { # if NEED_PRINTF_LONG_DOUBLE pad_ptr = p; if (dp->conversion == 'f' || dp->conversion == 'F') { char *digits; size_t ndigits; digits = scale10_round_decimal_long_double (arg, precision); if (digits == NULL) { END_LONG_DOUBLE_ROUNDING (); goto out_of_memory; } ndigits = strlen (digits); if (ndigits > precision) do { --ndigits; *p++ = digits[ndigits]; } while (ndigits > precision); else *p++ = '0'; /* Here ndigits <= precision. */ if ((flags & FLAG_ALT) || precision > 0) { *p++ = decimal_point_char (); for (; precision > ndigits; precision--) *p++ = '0'; while (ndigits > 0) { --ndigits; *p++ = digits[ndigits]; } } free (digits); } else if (dp->conversion == 'e' || dp->conversion == 'E') { int exponent; if (arg == 0.0L) { exponent = 0; *p++ = '0'; if ((flags & FLAG_ALT) || precision > 0) { *p++ = decimal_point_char (); for (; precision > 0; precision--) *p++ = '0'; } } else { /* arg > 0.0L. */ int adjusted; char *digits; size_t ndigits; exponent = floorlog10l (arg); adjusted = 0; for (;;) { digits = scale10_round_decimal_long_double (arg, (int)precision - exponent); if (digits == NULL) { END_LONG_DOUBLE_ROUNDING (); goto out_of_memory; } ndigits = strlen (digits); if (ndigits == precision + 1) break; if (ndigits < precision || ndigits > precision + 2) /* The exponent was not guessed precisely enough. */ abort (); if (adjusted) /* None of two values of exponent is the right one. Prevent an endless loop. */ abort (); free (digits); if (ndigits == precision) exponent -= 1; else exponent += 1; adjusted = 1; } /* Here ndigits = precision+1. */ *p++ = digits[--ndigits]; if ((flags & FLAG_ALT) || precision > 0) { *p++ = decimal_point_char (); while (ndigits > 0) { --ndigits; *p++ = digits[ndigits]; } } free (digits); } *p++ = dp->conversion; /* 'e' or 'E' */ # if WIDE_CHAR_VERSION { static const wchar_t decimal_format[] = { '%', '+', '.', '2', 'd', '\0' }; SNPRINTF (p, 6 + 1, decimal_format, exponent); } while (*p != '\0') p++; # else if (sizeof (DCHAR_T) == 1) { sprintf ((char *) p, "%+.2d", exponent); while (*p != '\0') p++; } else { char expbuf[6 + 1]; const char *ep; sprintf (expbuf, "%+.2d", exponent); for (ep = expbuf; (*p = *ep) != '\0'; ep++) p++; } # endif } else if (dp->conversion == 'g' || dp->conversion == 'G') { if (precision == 0) precision = 1; /* precision >= 1. */ if (arg == 0.0L) /* The exponent is 0, >= -4, < precision. Use fixed-point notation. */ { size_t ndigits = precision; /* Number of trailing zeroes that have to be dropped. */ size_t nzeroes = (flags & FLAG_ALT ? 0 : precision - 1); --ndigits; *p++ = '0'; if ((flags & FLAG_ALT) || ndigits > nzeroes) { *p++ = decimal_point_char (); while (ndigits > nzeroes) { --ndigits; *p++ = '0'; } } } else { /* arg > 0.0L. */ int exponent; int adjusted; char *digits; size_t ndigits; size_t nzeroes; exponent = floorlog10l (arg); adjusted = 0; for (;;) { digits = scale10_round_decimal_long_double (arg, (int)(precision - 1) - exponent); if (digits == NULL) { END_LONG_DOUBLE_ROUNDING (); goto out_of_memory; } ndigits = strlen (digits); if (ndigits == precision) break; if (ndigits < precision - 1 || ndigits > precision + 1) /* The exponent was not guessed precisely enough. */ abort (); if (adjusted) /* None of two values of exponent is the right one. Prevent an endless loop. */ abort (); free (digits); if (ndigits < precision) exponent -= 1; else exponent += 1; adjusted = 1; } /* Here ndigits = precision. */ /* Determine the number of trailing zeroes that have to be dropped. */ nzeroes = 0; if ((flags & FLAG_ALT) == 0) while (nzeroes < ndigits && digits[nzeroes] == '0') nzeroes++; /* The exponent is now determined. */ if (exponent >= -4 && exponent < (long)precision) { /* Fixed-point notation: max(exponent,0)+1 digits, then the decimal point, then the remaining digits without trailing zeroes. */ if (exponent >= 0) { size_t count = exponent + 1; /* Note: count <= precision = ndigits. */ for (; count > 0; count--) *p++ = digits[--ndigits]; if ((flags & FLAG_ALT) || ndigits > nzeroes) { *p++ = decimal_point_char (); while (ndigits > nzeroes) { --ndigits; *p++ = digits[ndigits]; } } } else { size_t count = -exponent - 1; *p++ = '0'; *p++ = decimal_point_char (); for (; count > 0; count--) *p++ = '0'; while (ndigits > nzeroes) { --ndigits; *p++ = digits[ndigits]; } } } else { /* Exponential notation. */ *p++ = digits[--ndigits]; if ((flags & FLAG_ALT) || ndigits > nzeroes) { *p++ = decimal_point_char (); while (ndigits > nzeroes) { --ndigits; *p++ = digits[ndigits]; } } *p++ = dp->conversion - 'G' + 'E'; /* 'e' or 'E' */ # if WIDE_CHAR_VERSION { static const wchar_t decimal_format[] = { '%', '+', '.', '2', 'd', '\0' }; SNPRINTF (p, 6 + 1, decimal_format, exponent); } while (*p != '\0') p++; # else if (sizeof (DCHAR_T) == 1) { sprintf ((char *) p, "%+.2d", exponent); while (*p != '\0') p++; } else { char expbuf[6 + 1]; const char *ep; sprintf (expbuf, "%+.2d", exponent); for (ep = expbuf; (*p = *ep) != '\0'; ep++) p++; } # endif } free (digits); } } else abort (); # else /* arg is finite. */ abort (); # endif } END_LONG_DOUBLE_ROUNDING (); } } # if NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE else # endif # endif # if NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE { double arg = a.arg[dp->arg_index].a.a_double; if (isnan (arg)) { if (dp->conversion >= 'A' && dp->conversion <= 'Z') { *p++ = 'N'; *p++ = 'A'; *p++ = 'N'; } else { *p++ = 'n'; *p++ = 'a'; *p++ = 'n'; } } else { int sign = 0; if (signbit (arg)) /* arg < 0.0 or negative zero */ { sign = -1; arg = -arg; } if (sign < 0) *p++ = '-'; else if (flags & FLAG_SHOWSIGN) *p++ = '+'; else if (flags & FLAG_SPACE) *p++ = ' '; if (arg > 0.0 && arg + arg == arg) { if (dp->conversion >= 'A' && dp->conversion <= 'Z') { *p++ = 'I'; *p++ = 'N'; *p++ = 'F'; } else { *p++ = 'i'; *p++ = 'n'; *p++ = 'f'; } } else { # if NEED_PRINTF_DOUBLE pad_ptr = p; if (dp->conversion == 'f' || dp->conversion == 'F') { char *digits; size_t ndigits; digits = scale10_round_decimal_double (arg, precision); if (digits == NULL) goto out_of_memory; ndigits = strlen (digits); if (ndigits > precision) do { --ndigits; *p++ = digits[ndigits]; } while (ndigits > precision); else *p++ = '0'; /* Here ndigits <= precision. */ if ((flags & FLAG_ALT) || precision > 0) { *p++ = decimal_point_char (); for (; precision > ndigits; precision--) *p++ = '0'; while (ndigits > 0) { --ndigits; *p++ = digits[ndigits]; } } free (digits); } else if (dp->conversion == 'e' || dp->conversion == 'E') { int exponent; if (arg == 0.0) { exponent = 0; *p++ = '0'; if ((flags & FLAG_ALT) || precision > 0) { *p++ = decimal_point_char (); for (; precision > 0; precision--) *p++ = '0'; } } else { /* arg > 0.0. */ int adjusted; char *digits; size_t ndigits; exponent = floorlog10 (arg); adjusted = 0; for (;;) { digits = scale10_round_decimal_double (arg, (int)precision - exponent); if (digits == NULL) goto out_of_memory; ndigits = strlen (digits); if (ndigits == precision + 1) break; if (ndigits < precision || ndigits > precision + 2) /* The exponent was not guessed precisely enough. */ abort (); if (adjusted) /* None of two values of exponent is the right one. Prevent an endless loop. */ abort (); free (digits); if (ndigits == precision) exponent -= 1; else exponent += 1; adjusted = 1; } /* Here ndigits = precision+1. */ *p++ = digits[--ndigits]; if ((flags & FLAG_ALT) || precision > 0) { *p++ = decimal_point_char (); while (ndigits > 0) { --ndigits; *p++ = digits[ndigits]; } } free (digits); } *p++ = dp->conversion; /* 'e' or 'E' */ # if WIDE_CHAR_VERSION { static const wchar_t decimal_format[] = /* Produce the same number of exponent digits as the native printf implementation. */ # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ { '%', '+', '.', '3', 'd', '\0' }; # else { '%', '+', '.', '2', 'd', '\0' }; # endif SNPRINTF (p, 6 + 1, decimal_format, exponent); } while (*p != '\0') p++; # else { static const char decimal_format[] = /* Produce the same number of exponent digits as the native printf implementation. */ # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ "%+.3d"; # else "%+.2d"; # endif if (sizeof (DCHAR_T) == 1) { sprintf ((char *) p, decimal_format, exponent); while (*p != '\0') p++; } else { char expbuf[6 + 1]; const char *ep; sprintf (expbuf, decimal_format, exponent); for (ep = expbuf; (*p = *ep) != '\0'; ep++) p++; } } # endif } else if (dp->conversion == 'g' || dp->conversion == 'G') { if (precision == 0) precision = 1; /* precision >= 1. */ if (arg == 0.0) /* The exponent is 0, >= -4, < precision. Use fixed-point notation. */ { size_t ndigits = precision; /* Number of trailing zeroes that have to be dropped. */ size_t nzeroes = (flags & FLAG_ALT ? 0 : precision - 1); --ndigits; *p++ = '0'; if ((flags & FLAG_ALT) || ndigits > nzeroes) { *p++ = decimal_point_char (); while (ndigits > nzeroes) { --ndigits; *p++ = '0'; } } } else { /* arg > 0.0. */ int exponent; int adjusted; char *digits; size_t ndigits; size_t nzeroes; exponent = floorlog10 (arg); adjusted = 0; for (;;) { digits = scale10_round_decimal_double (arg, (int)(precision - 1) - exponent); if (digits == NULL) goto out_of_memory; ndigits = strlen (digits); if (ndigits == precision) break; if (ndigits < precision - 1 || ndigits > precision + 1) /* The exponent was not guessed precisely enough. */ abort (); if (adjusted) /* None of two values of exponent is the right one. Prevent an endless loop. */ abort (); free (digits); if (ndigits < precision) exponent -= 1; else exponent += 1; adjusted = 1; } /* Here ndigits = precision. */ /* Determine the number of trailing zeroes that have to be dropped. */ nzeroes = 0; if ((flags & FLAG_ALT) == 0) while (nzeroes < ndigits && digits[nzeroes] == '0') nzeroes++; /* The exponent is now determined. */ if (exponent >= -4 && exponent < (long)precision) { /* Fixed-point notation: max(exponent,0)+1 digits, then the decimal point, then the remaining digits without trailing zeroes. */ if (exponent >= 0) { size_t count = exponent + 1; /* Note: count <= precision = ndigits. */ for (; count > 0; count--) *p++ = digits[--ndigits]; if ((flags & FLAG_ALT) || ndigits > nzeroes) { *p++ = decimal_point_char (); while (ndigits > nzeroes) { --ndigits; *p++ = digits[ndigits]; } } } else { size_t count = -exponent - 1; *p++ = '0'; *p++ = decimal_point_char (); for (; count > 0; count--) *p++ = '0'; while (ndigits > nzeroes) { --ndigits; *p++ = digits[ndigits]; } } } else { /* Exponential notation. */ *p++ = digits[--ndigits]; if ((flags & FLAG_ALT) || ndigits > nzeroes) { *p++ = decimal_point_char (); while (ndigits > nzeroes) { --ndigits; *p++ = digits[ndigits]; } } *p++ = dp->conversion - 'G' + 'E'; /* 'e' or 'E' */ # if WIDE_CHAR_VERSION { static const wchar_t decimal_format[] = /* Produce the same number of exponent digits as the native printf implementation. */ # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ { '%', '+', '.', '3', 'd', '\0' }; # else { '%', '+', '.', '2', 'd', '\0' }; # endif SNPRINTF (p, 6 + 1, decimal_format, exponent); } while (*p != '\0') p++; # else { static const char decimal_format[] = /* Produce the same number of exponent digits as the native printf implementation. */ # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ "%+.3d"; # else "%+.2d"; # endif if (sizeof (DCHAR_T) == 1) { sprintf ((char *) p, decimal_format, exponent); while (*p != '\0') p++; } else { char expbuf[6 + 1]; const char *ep; sprintf (expbuf, decimal_format, exponent); for (ep = expbuf; (*p = *ep) != '\0'; ep++) p++; } } # endif } free (digits); } } else abort (); # else /* arg is finite. */ if (!(arg == 0.0)) abort (); pad_ptr = p; if (dp->conversion == 'f' || dp->conversion == 'F') { *p++ = '0'; if ((flags & FLAG_ALT) || precision > 0) { *p++ = decimal_point_char (); for (; precision > 0; precision--) *p++ = '0'; } } else if (dp->conversion == 'e' || dp->conversion == 'E') { *p++ = '0'; if ((flags & FLAG_ALT) || precision > 0) { *p++ = decimal_point_char (); for (; precision > 0; precision--) *p++ = '0'; } *p++ = dp->conversion; /* 'e' or 'E' */ *p++ = '+'; /* Produce the same number of exponent digits as the native printf implementation. */ # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ *p++ = '0'; # endif *p++ = '0'; *p++ = '0'; } else if (dp->conversion == 'g' || dp->conversion == 'G') { *p++ = '0'; if (flags & FLAG_ALT) { size_t ndigits = (precision > 0 ? precision - 1 : 0); *p++ = decimal_point_char (); for (; ndigits > 0; --ndigits) *p++ = '0'; } } else abort (); # endif } } } # endif /* The generated string now extends from tmp to p, with the zero padding insertion point being at pad_ptr. */ if (has_width && p - tmp < width) { size_t pad = width - (p - tmp); DCHAR_T *end = p + pad; if (flags & FLAG_LEFT) { /* Pad with spaces on the right. */ for (; pad > 0; pad--) *p++ = ' '; } else if ((flags & FLAG_ZERO) && pad_ptr != NULL) { /* Pad with zeroes. */ DCHAR_T *q = end; while (p > pad_ptr) *--q = *--p; for (; pad > 0; pad--) *p++ = '0'; } else { /* Pad with spaces on the left. */ DCHAR_T *q = end; while (p > tmp) *--q = *--p; for (; pad > 0; pad--) *p++ = ' '; } p = end; } { size_t count = p - tmp; if (count >= tmp_length) /* tmp_length was incorrectly calculated - fix the code above! */ abort (); /* Make room for the result. */ if (count >= allocated - length) { size_t n = xsum (length, count); ENSURE_ALLOCATION (n); } /* Append the result. */ memcpy (result + length, tmp, count * sizeof (DCHAR_T)); if (tmp != tmpbuf) free (tmp); length += count; } } #endif else { arg_type type = a.arg[dp->arg_index].type; int flags = dp->flags; #if !USE_SNPRINTF || !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION int has_width; size_t width; #endif #if !USE_SNPRINTF || NEED_PRINTF_UNBOUNDED_PRECISION int has_precision; size_t precision; #endif #if NEED_PRINTF_UNBOUNDED_PRECISION int prec_ourselves; #else # define prec_ourselves 0 #endif #if !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION int pad_ourselves; #else # define pad_ourselves 0 #endif TCHAR_T *fbp; unsigned int prefix_count; int prefixes[2]; #if !USE_SNPRINTF size_t tmp_length; TCHAR_T tmpbuf[700]; TCHAR_T *tmp; #endif #if !USE_SNPRINTF || !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION has_width = 0; width = 0; if (dp->width_start != dp->width_end) { if (dp->width_arg_index != ARG_NONE) { int arg; if (!(a.arg[dp->width_arg_index].type == TYPE_INT)) abort (); arg = a.arg[dp->width_arg_index].a.a_int; if (arg < 0) { /* "A negative field width is taken as a '-' flag followed by a positive field width." */ flags |= FLAG_LEFT; width = (unsigned int) (-arg); } else width = arg; } else { const FCHAR_T *digitp = dp->width_start; do width = xsum (xtimes (width, 10), *digitp++ - '0'); while (digitp != dp->width_end); } has_width = 1; } #endif #if !USE_SNPRINTF || NEED_PRINTF_UNBOUNDED_PRECISION has_precision = 0; precision = 6; if (dp->precision_start != dp->precision_end) { if (dp->precision_arg_index != ARG_NONE) { int arg; if (!(a.arg[dp->precision_arg_index].type == TYPE_INT)) abort (); arg = a.arg[dp->precision_arg_index].a.a_int; /* "A negative precision is taken as if the precision were omitted." */ if (arg >= 0) { precision = arg; has_precision = 1; } } else { const FCHAR_T *digitp = dp->precision_start + 1; precision = 0; while (digitp != dp->precision_end) precision = xsum (xtimes (precision, 10), *digitp++ - '0'); has_precision = 1; } } #endif #if !USE_SNPRINTF /* Allocate a temporary buffer of sufficient size for calling sprintf. */ { switch (dp->conversion) { case 'd': case 'i': case 'u': # if HAVE_LONG_LONG_INT if (type == TYPE_LONGLONGINT || type == TYPE_ULONGLONGINT) tmp_length = (unsigned int) (sizeof (unsigned long long) * CHAR_BIT * 0.30103 /* binary -> decimal */ ) + 1; /* turn floor into ceil */ else # endif if (type == TYPE_LONGINT || type == TYPE_ULONGINT) tmp_length = (unsigned int) (sizeof (unsigned long) * CHAR_BIT * 0.30103 /* binary -> decimal */ ) + 1; /* turn floor into ceil */ else tmp_length = (unsigned int) (sizeof (unsigned int) * CHAR_BIT * 0.30103 /* binary -> decimal */ ) + 1; /* turn floor into ceil */ if (tmp_length < precision) tmp_length = precision; /* Multiply by 2, as an estimate for FLAG_GROUP. */ tmp_length = xsum (tmp_length, tmp_length); /* Add 1, to account for a leading sign. */ tmp_length = xsum (tmp_length, 1); break; case 'o': # if HAVE_LONG_LONG_INT if (type == TYPE_LONGLONGINT || type == TYPE_ULONGLONGINT) tmp_length = (unsigned int) (sizeof (unsigned long long) * CHAR_BIT * 0.333334 /* binary -> octal */ ) + 1; /* turn floor into ceil */ else # endif if (type == TYPE_LONGINT || type == TYPE_ULONGINT) tmp_length = (unsigned int) (sizeof (unsigned long) * CHAR_BIT * 0.333334 /* binary -> octal */ ) + 1; /* turn floor into ceil */ else tmp_length = (unsigned int) (sizeof (unsigned int) * CHAR_BIT * 0.333334 /* binary -> octal */ ) + 1; /* turn floor into ceil */ if (tmp_length < precision) tmp_length = precision; /* Add 1, to account for a leading sign. */ tmp_length = xsum (tmp_length, 1); break; case 'x': case 'X': # if HAVE_LONG_LONG_INT if (type == TYPE_LONGLONGINT || type == TYPE_ULONGLONGINT) tmp_length = (unsigned int) (sizeof (unsigned long long) * CHAR_BIT * 0.25 /* binary -> hexadecimal */ ) + 1; /* turn floor into ceil */ else # endif if (type == TYPE_LONGINT || type == TYPE_ULONGINT) tmp_length = (unsigned int) (sizeof (unsigned long) * CHAR_BIT * 0.25 /* binary -> hexadecimal */ ) + 1; /* turn floor into ceil */ else tmp_length = (unsigned int) (sizeof (unsigned int) * CHAR_BIT * 0.25 /* binary -> hexadecimal */ ) + 1; /* turn floor into ceil */ if (tmp_length < precision) tmp_length = precision; /* Add 2, to account for a leading sign or alternate form. */ tmp_length = xsum (tmp_length, 2); break; case 'f': case 'F': if (type == TYPE_LONGDOUBLE) tmp_length = (unsigned int) (LDBL_MAX_EXP * 0.30103 /* binary -> decimal */ * 2 /* estimate for FLAG_GROUP */ ) + 1 /* turn floor into ceil */ + 10; /* sign, decimal point etc. */ else tmp_length = (unsigned int) (DBL_MAX_EXP * 0.30103 /* binary -> decimal */ * 2 /* estimate for FLAG_GROUP */ ) + 1 /* turn floor into ceil */ + 10; /* sign, decimal point etc. */ tmp_length = xsum (tmp_length, precision); break; case 'e': case 'E': case 'g': case 'G': tmp_length = 12; /* sign, decimal point, exponent etc. */ tmp_length = xsum (tmp_length, precision); break; case 'a': case 'A': if (type == TYPE_LONGDOUBLE) tmp_length = (unsigned int) (LDBL_DIG * 0.831 /* decimal -> hexadecimal */ ) + 1; /* turn floor into ceil */ else tmp_length = (unsigned int) (DBL_DIG * 0.831 /* decimal -> hexadecimal */ ) + 1; /* turn floor into ceil */ if (tmp_length < precision) tmp_length = precision; /* Account for sign, decimal point etc. */ tmp_length = xsum (tmp_length, 12); break; case 'c': # if HAVE_WINT_T && !WIDE_CHAR_VERSION if (type == TYPE_WIDE_CHAR) tmp_length = MB_CUR_MAX; else # endif tmp_length = 1; break; case 's': # if HAVE_WCHAR_T if (type == TYPE_WIDE_STRING) { tmp_length = local_wcslen (a.arg[dp->arg_index].a.a_wide_string); # if !WIDE_CHAR_VERSION tmp_length = xtimes (tmp_length, MB_CUR_MAX); # endif } else # endif tmp_length = strlen (a.arg[dp->arg_index].a.a_string); break; case 'p': tmp_length = (unsigned int) (sizeof (void *) * CHAR_BIT * 0.25 /* binary -> hexadecimal */ ) + 1 /* turn floor into ceil */ + 2; /* account for leading 0x */ break; default: abort (); } # if ENABLE_UNISTDIO /* Padding considers the number of characters, therefore the number of elements after padding may be > max (tmp_length, width) but is certainly <= tmp_length + width. */ tmp_length = xsum (tmp_length, width); # else /* Padding considers the number of elements, says POSIX. */ if (tmp_length < width) tmp_length = width; # endif tmp_length = xsum (tmp_length, 1); /* account for trailing NUL */ } if (tmp_length <= sizeof (tmpbuf) / sizeof (TCHAR_T)) tmp = tmpbuf; else { size_t tmp_memsize = xtimes (tmp_length, sizeof (TCHAR_T)); if (size_overflow_p (tmp_memsize)) /* Overflow, would lead to out of memory. */ goto out_of_memory; tmp = (TCHAR_T *) malloc (tmp_memsize); if (tmp == NULL) /* Out of memory. */ goto out_of_memory; } #endif /* Decide whether to handle the precision ourselves. */ #if NEED_PRINTF_UNBOUNDED_PRECISION switch (dp->conversion) { case 'd': case 'i': case 'u': case 'o': case 'x': case 'X': case 'p': prec_ourselves = has_precision && (precision > 0); break; default: prec_ourselves = 0; break; } #endif /* Decide whether to perform the padding ourselves. */ #if !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION switch (dp->conversion) { # if !DCHAR_IS_TCHAR || ENABLE_UNISTDIO /* If we need conversion from TCHAR_T[] to DCHAR_T[], we need to perform the padding after this conversion. Functions with unistdio extensions perform the padding based on character count rather than element count. */ case 'c': case 's': # endif # if NEED_PRINTF_FLAG_ZERO case 'f': case 'F': case 'e': case 'E': case 'g': case 'G': case 'a': case 'A': # endif pad_ourselves = 1; break; default: pad_ourselves = prec_ourselves; break; } #endif /* Construct the format string for calling snprintf or sprintf. */ fbp = buf; *fbp++ = '%'; #if NEED_PRINTF_FLAG_GROUPING /* The underlying implementation doesn't support the ' flag. Produce no grouping characters in this case; this is acceptable because the grouping is locale dependent. */ #else if (flags & FLAG_GROUP) *fbp++ = '\''; #endif if (flags & FLAG_LEFT) *fbp++ = '-'; if (flags & FLAG_SHOWSIGN) *fbp++ = '+'; if (flags & FLAG_SPACE) *fbp++ = ' '; if (flags & FLAG_ALT) *fbp++ = '#'; if (!pad_ourselves) { if (flags & FLAG_ZERO) *fbp++ = '0'; if (dp->width_start != dp->width_end) { size_t n = dp->width_end - dp->width_start; /* The width specification is known to consist only of standard ASCII characters. */ if (sizeof (FCHAR_T) == sizeof (TCHAR_T)) { memcpy (fbp, dp->width_start, n * sizeof (TCHAR_T)); fbp += n; } else { const FCHAR_T *mp = dp->width_start; do *fbp++ = (unsigned char) *mp++; while (--n > 0); } } } if (!prec_ourselves) { if (dp->precision_start != dp->precision_end) { size_t n = dp->precision_end - dp->precision_start; /* The precision specification is known to consist only of standard ASCII characters. */ if (sizeof (FCHAR_T) == sizeof (TCHAR_T)) { memcpy (fbp, dp->precision_start, n * sizeof (TCHAR_T)); fbp += n; } else { const FCHAR_T *mp = dp->precision_start; do *fbp++ = (unsigned char) *mp++; while (--n > 0); } } } switch (type) { #if HAVE_LONG_LONG_INT case TYPE_LONGLONGINT: case TYPE_ULONGLONGINT: # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ *fbp++ = 'I'; *fbp++ = '6'; *fbp++ = '4'; break; # else *fbp++ = 'l'; /*FALLTHROUGH*/ # endif #endif case TYPE_LONGINT: case TYPE_ULONGINT: #if HAVE_WINT_T case TYPE_WIDE_CHAR: #endif #if HAVE_WCHAR_T case TYPE_WIDE_STRING: #endif *fbp++ = 'l'; break; case TYPE_LONGDOUBLE: *fbp++ = 'L'; break; default: break; } #if NEED_PRINTF_DIRECTIVE_F if (dp->conversion == 'F') *fbp = 'f'; else #endif *fbp = dp->conversion; #if USE_SNPRINTF # if !(__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3)) fbp[1] = '%'; fbp[2] = 'n'; fbp[3] = '\0'; # else /* On glibc2 systems from glibc >= 2.3 - probably also older ones - we know that snprintf's returns value conforms to ISO C 99: the gl_SNPRINTF_DIRECTIVE_N test passes. Therefore we can avoid using %n in this situation. On glibc2 systems from 2004-10-18 or newer, the use of %n in format strings in writable memory may crash the program (if compiled with _FORTIFY_SOURCE=2), so we should avoid it in this situation. */ fbp[1] = '\0'; # endif #else fbp[1] = '\0'; #endif /* Construct the arguments for calling snprintf or sprintf. */ prefix_count = 0; if (!pad_ourselves && dp->width_arg_index != ARG_NONE) { if (!(a.arg[dp->width_arg_index].type == TYPE_INT)) abort (); prefixes[prefix_count++] = a.arg[dp->width_arg_index].a.a_int; } if (dp->precision_arg_index != ARG_NONE) { if (!(a.arg[dp->precision_arg_index].type == TYPE_INT)) abort (); prefixes[prefix_count++] = a.arg[dp->precision_arg_index].a.a_int; } #if USE_SNPRINTF /* The SNPRINTF result is appended after result[0..length]. The latter is an array of DCHAR_T; SNPRINTF appends an array of TCHAR_T to it. This is possible because sizeof (TCHAR_T) divides sizeof (DCHAR_T) and alignof (TCHAR_T) <= alignof (DCHAR_T). */ # define TCHARS_PER_DCHAR (sizeof (DCHAR_T) / sizeof (TCHAR_T)) /* Prepare checking whether snprintf returns the count via %n. */ ENSURE_ALLOCATION (xsum (length, 1)); *(TCHAR_T *) (result + length) = '\0'; #endif for (;;) { int count = -1; #if USE_SNPRINTF int retcount = 0; size_t maxlen = allocated - length; /* SNPRINTF can fail if its second argument is > INT_MAX. */ if (maxlen > INT_MAX / TCHARS_PER_DCHAR) maxlen = INT_MAX / TCHARS_PER_DCHAR; maxlen = maxlen * TCHARS_PER_DCHAR; # define SNPRINTF_BUF(arg) \ switch (prefix_count) \ { \ case 0: \ retcount = SNPRINTF ((TCHAR_T *) (result + length), \ maxlen, buf, \ arg, &count); \ break; \ case 1: \ retcount = SNPRINTF ((TCHAR_T *) (result + length), \ maxlen, buf, \ prefixes[0], arg, &count); \ break; \ case 2: \ retcount = SNPRINTF ((TCHAR_T *) (result + length), \ maxlen, buf, \ prefixes[0], prefixes[1], arg, \ &count); \ break; \ default: \ abort (); \ } #else # define SNPRINTF_BUF(arg) \ switch (prefix_count) \ { \ case 0: \ count = sprintf (tmp, buf, arg); \ break; \ case 1: \ count = sprintf (tmp, buf, prefixes[0], arg); \ break; \ case 2: \ count = sprintf (tmp, buf, prefixes[0], prefixes[1],\ arg); \ break; \ default: \ abort (); \ } #endif switch (type) { case TYPE_SCHAR: { int arg = a.arg[dp->arg_index].a.a_schar; SNPRINTF_BUF (arg); } break; case TYPE_UCHAR: { unsigned int arg = a.arg[dp->arg_index].a.a_uchar; SNPRINTF_BUF (arg); } break; case TYPE_SHORT: { int arg = a.arg[dp->arg_index].a.a_short; SNPRINTF_BUF (arg); } break; case TYPE_USHORT: { unsigned int arg = a.arg[dp->arg_index].a.a_ushort; SNPRINTF_BUF (arg); } break; case TYPE_INT: { int arg = a.arg[dp->arg_index].a.a_int; SNPRINTF_BUF (arg); } break; case TYPE_UINT: { unsigned int arg = a.arg[dp->arg_index].a.a_uint; SNPRINTF_BUF (arg); } break; case TYPE_LONGINT: { long int arg = a.arg[dp->arg_index].a.a_longint; SNPRINTF_BUF (arg); } break; case TYPE_ULONGINT: { unsigned long int arg = a.arg[dp->arg_index].a.a_ulongint; SNPRINTF_BUF (arg); } break; #if HAVE_LONG_LONG_INT case TYPE_LONGLONGINT: { long long int arg = a.arg[dp->arg_index].a.a_longlongint; SNPRINTF_BUF (arg); } break; case TYPE_ULONGLONGINT: { unsigned long long int arg = a.arg[dp->arg_index].a.a_ulonglongint; SNPRINTF_BUF (arg); } break; #endif case TYPE_DOUBLE: { double arg = a.arg[dp->arg_index].a.a_double; SNPRINTF_BUF (arg); } break; case TYPE_LONGDOUBLE: { long double arg = a.arg[dp->arg_index].a.a_longdouble; SNPRINTF_BUF (arg); } break; case TYPE_CHAR: { int arg = a.arg[dp->arg_index].a.a_char; SNPRINTF_BUF (arg); } break; #if HAVE_WINT_T case TYPE_WIDE_CHAR: { wint_t arg = a.arg[dp->arg_index].a.a_wide_char; SNPRINTF_BUF (arg); } break; #endif case TYPE_STRING: { const char *arg = a.arg[dp->arg_index].a.a_string; SNPRINTF_BUF (arg); } break; #if HAVE_WCHAR_T case TYPE_WIDE_STRING: { const wchar_t *arg = a.arg[dp->arg_index].a.a_wide_string; SNPRINTF_BUF (arg); } break; #endif case TYPE_POINTER: { void *arg = a.arg[dp->arg_index].a.a_pointer; SNPRINTF_BUF (arg); } break; default: abort (); } #if USE_SNPRINTF /* Portability: Not all implementations of snprintf() are ISO C 99 compliant. Determine the number of bytes that snprintf() has produced or would have produced. */ if (count >= 0) { /* Verify that snprintf() has NUL-terminated its result. */ if (count < maxlen && ((TCHAR_T *) (result + length)) [count] != '\0') abort (); /* Portability hack. */ if (retcount > count) count = retcount; } else { /* snprintf() doesn't understand the '%n' directive. */ if (fbp[1] != '\0') { /* Don't use the '%n' directive; instead, look at the snprintf() return value. */ fbp[1] = '\0'; continue; } else { /* Look at the snprintf() return value. */ if (retcount < 0) { /* HP-UX 10.20 snprintf() is doubly deficient: It doesn't understand the '%n' directive, *and* it returns -1 (rather than the length that would have been required) when the buffer is too small. */ size_t bigger_need = xsum (xtimes (allocated, 2), 12); ENSURE_ALLOCATION (bigger_need); continue; } else count = retcount; } } #endif /* Attempt to handle failure. */ if (count < 0) { if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = EINVAL; return NULL; } #if USE_SNPRINTF /* Handle overflow of the allocated buffer. If such an overflow occurs, a C99 compliant snprintf() returns a count >= maxlen. However, a non-compliant snprintf() function returns only count = maxlen - 1. To cover both cases, test whether count >= maxlen - 1. */ if ((unsigned int) count + 1 >= maxlen) { /* If maxlen already has attained its allowed maximum, allocating more memory will not increase maxlen. Instead of looping, bail out. */ if (maxlen == INT_MAX / TCHARS_PER_DCHAR) goto overflow; else { /* Need at least count * sizeof (TCHAR_T) bytes. But allocate proportionally, to avoid looping eternally if snprintf() reports a too small count. */ size_t n = xmax (xsum (length, (count + TCHARS_PER_DCHAR - 1) / TCHARS_PER_DCHAR), xtimes (allocated, 2)); ENSURE_ALLOCATION (n); continue; } } #endif #if NEED_PRINTF_UNBOUNDED_PRECISION if (prec_ourselves) { /* Handle the precision. */ TCHAR_T *prec_ptr = # if USE_SNPRINTF (TCHAR_T *) (result + length); # else tmp; # endif size_t prefix_count; size_t move; prefix_count = 0; /* Put the additional zeroes after the sign. */ if (count >= 1 && (*prec_ptr == '-' || *prec_ptr == '+' || *prec_ptr == ' ')) prefix_count = 1; /* Put the additional zeroes after the 0x prefix if (flags & FLAG_ALT) || (dp->conversion == 'p'). */ else if (count >= 2 && prec_ptr[0] == '0' && (prec_ptr[1] == 'x' || prec_ptr[1] == 'X')) prefix_count = 2; move = count - prefix_count; if (precision > move) { /* Insert zeroes. */ size_t insert = precision - move; TCHAR_T *prec_end; # if USE_SNPRINTF size_t n = xsum (length, (count + insert + TCHARS_PER_DCHAR - 1) / TCHARS_PER_DCHAR); length += (count + TCHARS_PER_DCHAR - 1) / TCHARS_PER_DCHAR; ENSURE_ALLOCATION (n); length -= (count + TCHARS_PER_DCHAR - 1) / TCHARS_PER_DCHAR; prec_ptr = (TCHAR_T *) (result + length); # endif prec_end = prec_ptr + count; prec_ptr += prefix_count; while (prec_end > prec_ptr) { prec_end--; prec_end[insert] = prec_end[0]; } prec_end += insert; do *--prec_end = '0'; while (prec_end > prec_ptr); count += insert; } } #endif #if !DCHAR_IS_TCHAR # if !USE_SNPRINTF if (count >= tmp_length) /* tmp_length was incorrectly calculated - fix the code above! */ abort (); # endif /* Convert from TCHAR_T[] to DCHAR_T[]. */ if (dp->conversion == 'c' || dp->conversion == 's') { /* type = TYPE_CHAR or TYPE_WIDE_CHAR or TYPE_STRING TYPE_WIDE_STRING. The result string is not certainly ASCII. */ const TCHAR_T *tmpsrc; DCHAR_T *tmpdst; size_t tmpdst_len; /* This code assumes that TCHAR_T is 'char'. */ typedef int TCHAR_T_verify [2 * (sizeof (TCHAR_T) == 1) - 1]; # if USE_SNPRINTF tmpsrc = (TCHAR_T *) (result + length); # else tmpsrc = tmp; # endif tmpdst = NULL; tmpdst_len = 0; if (DCHAR_CONV_FROM_ENCODING (locale_charset (), iconveh_question_mark, tmpsrc, count, NULL, &tmpdst, &tmpdst_len) < 0) { int saved_errno = errno; if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = saved_errno; return NULL; } ENSURE_ALLOCATION (xsum (length, tmpdst_len)); DCHAR_CPY (result + length, tmpdst, tmpdst_len); free (tmpdst); count = tmpdst_len; } else { /* The result string is ASCII. Simple 1:1 conversion. */ # if USE_SNPRINTF /* If sizeof (DCHAR_T) == sizeof (TCHAR_T), it's a no-op conversion, in-place on the array starting at (result + length). */ if (sizeof (DCHAR_T) != sizeof (TCHAR_T)) # endif { const TCHAR_T *tmpsrc; DCHAR_T *tmpdst; size_t n; # if USE_SNPRINTF if (result == resultbuf) { tmpsrc = (TCHAR_T *) (result + length); /* ENSURE_ALLOCATION will not move tmpsrc (because it's part of resultbuf). */ ENSURE_ALLOCATION (xsum (length, count)); } else { /* ENSURE_ALLOCATION will move the array (because it uses realloc(). */ ENSURE_ALLOCATION (xsum (length, count)); tmpsrc = (TCHAR_T *) (result + length); } # else tmpsrc = tmp; ENSURE_ALLOCATION (xsum (length, count)); # endif tmpdst = result + length; /* Copy backwards, because of overlapping. */ tmpsrc += count; tmpdst += count; for (n = count; n > 0; n--) *--tmpdst = (unsigned char) *--tmpsrc; } } #endif #if DCHAR_IS_TCHAR && !USE_SNPRINTF /* Make room for the result. */ if (count > allocated - length) { /* Need at least count elements. But allocate proportionally. */ size_t n = xmax (xsum (length, count), xtimes (allocated, 2)); ENSURE_ALLOCATION (n); } #endif /* Here count <= allocated - length. */ /* Perform padding. */ #if !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION if (pad_ourselves && has_width) { size_t w; # if ENABLE_UNISTDIO /* Outside POSIX, it's preferrable to compare the width against the number of _characters_ of the converted value. */ w = DCHAR_MBSNLEN (result + length, count); # else /* The width is compared against the number of _bytes_ of the converted value, says POSIX. */ w = count; # endif if (w < width) { size_t pad = width - w; # if USE_SNPRINTF /* Make room for the result. */ if (xsum (count, pad) > allocated - length) { /* Need at least count + pad elements. But allocate proportionally. */ size_t n = xmax (xsum3 (length, count, pad), xtimes (allocated, 2)); length += count; ENSURE_ALLOCATION (n); length -= count; } /* Here count + pad <= allocated - length. */ # endif { # if !DCHAR_IS_TCHAR || USE_SNPRINTF DCHAR_T * const rp = result + length; # else DCHAR_T * const rp = tmp; # endif DCHAR_T *p = rp + count; DCHAR_T *end = p + pad; # if NEED_PRINTF_FLAG_ZERO DCHAR_T *pad_ptr; # if !DCHAR_IS_TCHAR if (dp->conversion == 'c' || dp->conversion == 's') /* No zero-padding for string directives. */ pad_ptr = NULL; else # endif { pad_ptr = (*rp == '-' ? rp + 1 : rp); /* No zero-padding of "inf" and "nan". */ if ((*pad_ptr >= 'A' && *pad_ptr <= 'Z') || (*pad_ptr >= 'a' && *pad_ptr <= 'z')) pad_ptr = NULL; } # endif /* The generated string now extends from rp to p, with the zero padding insertion point being at pad_ptr. */ count = count + pad; /* = end - rp */ if (flags & FLAG_LEFT) { /* Pad with spaces on the right. */ for (; pad > 0; pad--) *p++ = ' '; } # if NEED_PRINTF_FLAG_ZERO else if ((flags & FLAG_ZERO) && pad_ptr != NULL) { /* Pad with zeroes. */ DCHAR_T *q = end; while (p > pad_ptr) *--q = *--p; for (; pad > 0; pad--) *p++ = '0'; } # endif else { /* Pad with spaces on the left. */ DCHAR_T *q = end; while (p > rp) *--q = *--p; for (; pad > 0; pad--) *p++ = ' '; } } } } #endif #if DCHAR_IS_TCHAR && !USE_SNPRINTF if (count >= tmp_length) /* tmp_length was incorrectly calculated - fix the code above! */ abort (); #endif /* Here still count <= allocated - length. */ #if !DCHAR_IS_TCHAR || USE_SNPRINTF /* The snprintf() result did fit. */ #else /* Append the sprintf() result. */ memcpy (result + length, tmp, count * sizeof (DCHAR_T)); #endif #if !USE_SNPRINTF if (tmp != tmpbuf) free (tmp); #endif #if NEED_PRINTF_DIRECTIVE_F if (dp->conversion == 'F') { /* Convert the %f result to upper case for %F. */ DCHAR_T *rp = result + length; size_t rc; for (rc = count; rc > 0; rc--, rp++) if (*rp >= 'a' && *rp <= 'z') *rp = *rp - 'a' + 'A'; } #endif length += count; break; } } } } /* Add the final NUL. */ ENSURE_ALLOCATION (xsum (length, 1)); result[length] = '\0'; if (result != resultbuf && length + 1 < allocated) { /* Shrink the allocated memory if possible. */ DCHAR_T *memory; memory = (DCHAR_T *) realloc (result, (length + 1) * sizeof (DCHAR_T)); if (memory != NULL) result = memory; } if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); *lengthp = length; /* Note that we can produce a big string of a length > INT_MAX. POSIX says that snprintf() fails with errno = EOVERFLOW in this case, but that's only because snprintf() returns an 'int'. This function does not have this limitation. */ return result; overflow: if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); CLEANUP (); errno = EOVERFLOW; return NULL; out_of_memory: if (!(result == resultbuf || result == NULL)) free (result); if (buf_malloced != NULL) free (buf_malloced); out_of_memory_1: CLEANUP (); errno = ENOMEM; return NULL; } } #undef TCHARS_PER_DCHAR #undef SNPRINTF #undef USE_SNPRINTF #undef DCHAR_CPY #undef PRINTF_PARSE #undef DIRECTIVES #undef DIRECTIVE #undef DCHAR_IS_TCHAR #undef TCHAR_T #undef DCHAR_T #undef FCHAR_T #undef VASNPRINTF enscript-1.6.5.90/intl/printf.c0000644000175000017500000002217311606344061013144 00000000000000/* Formatted output to strings, using POSIX/XSI format strings with positions. Copyright (C) 2003, 2006-2007 Free Software Foundation, Inc. Written by Bruno Haible , 2003. 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 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 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H # include #endif #ifdef __GNUC__ # define alloca __builtin_alloca # define HAVE_ALLOCA 1 #else # ifdef _MSC_VER # include # define alloca _alloca # else # if defined HAVE_ALLOCA_H || defined _LIBC # include # else # ifdef _AIX #pragma alloca # else # ifndef alloca char *alloca (); # endif # endif # endif # endif #endif #include #if !HAVE_POSIX_PRINTF #include #include #include #include /* Some systems, like OSF/1 4.0 and Woe32, don't have EOVERFLOW. */ #ifndef EOVERFLOW # define EOVERFLOW E2BIG #endif /* When building a DLL, we must export some functions. Note that because the functions are only defined for binary backward compatibility, we don't need to use __declspec(dllimport) in any case. */ #if defined _MSC_VER && BUILDING_DLL # define DLL_EXPORTED __declspec(dllexport) #else # define DLL_EXPORTED #endif #define STATIC static /* This needs to be consistent with libgnuintl.h.in. */ #if defined __NetBSD__ || defined __BEOS__ || defined __CYGWIN__ || defined __MINGW32__ /* Don't break __attribute__((format(printf,M,N))). This redefinition is only possible because the libc in NetBSD, Cygwin, mingw does not have a function __printf__. */ # define libintl_printf __printf__ #endif /* Define auxiliary functions declared in "printf-args.h". */ #include "printf-args.c" /* Define auxiliary functions declared in "printf-parse.h". */ #include "printf-parse.c" /* Define functions declared in "vasnprintf.h". */ #define vasnprintf libintl_vasnprintf #include "vasnprintf.c" #if 0 /* not needed */ #define asnprintf libintl_asnprintf #include "asnprintf.c" #endif DLL_EXPORTED int libintl_vfprintf (FILE *stream, const char *format, va_list args) { if (strchr (format, '$') == NULL) return vfprintf (stream, format, args); else { size_t length; char *result = libintl_vasnprintf (NULL, &length, format, args); int retval = -1; if (result != NULL) { size_t written = fwrite (result, 1, length, stream); free (result); if (written == length) { if (length > INT_MAX) errno = EOVERFLOW; else retval = length; } } return retval; } } DLL_EXPORTED int libintl_fprintf (FILE *stream, const char *format, ...) { va_list args; int retval; va_start (args, format); retval = libintl_vfprintf (stream, format, args); va_end (args); return retval; } DLL_EXPORTED int libintl_vprintf (const char *format, va_list args) { return libintl_vfprintf (stdout, format, args); } DLL_EXPORTED int libintl_printf (const char *format, ...) { va_list args; int retval; va_start (args, format); retval = libintl_vprintf (format, args); va_end (args); return retval; } DLL_EXPORTED int libintl_vsprintf (char *resultbuf, const char *format, va_list args) { if (strchr (format, '$') == NULL) return vsprintf (resultbuf, format, args); else { size_t length = (size_t) ~0 / (4 * sizeof (char)); char *result = libintl_vasnprintf (resultbuf, &length, format, args); if (result != resultbuf) { free (result); return -1; } if (length > INT_MAX) { errno = EOVERFLOW; return -1; } else return length; } } DLL_EXPORTED int libintl_sprintf (char *resultbuf, const char *format, ...) { va_list args; int retval; va_start (args, format); retval = libintl_vsprintf (resultbuf, format, args); va_end (args); return retval; } #if HAVE_SNPRINTF # if HAVE_DECL__SNPRINTF /* Windows. */ # define system_vsnprintf _vsnprintf # else /* Unix. */ # define system_vsnprintf vsnprintf # endif DLL_EXPORTED int libintl_vsnprintf (char *resultbuf, size_t length, const char *format, va_list args) { if (strchr (format, '$') == NULL) return system_vsnprintf (resultbuf, length, format, args); else { size_t maxlength = length; char *result = libintl_vasnprintf (resultbuf, &length, format, args); if (result != resultbuf) { if (maxlength > 0) { size_t pruned_length = (length < maxlength ? length : maxlength - 1); memcpy (resultbuf, result, pruned_length); resultbuf[pruned_length] = '\0'; } free (result); } if (length > INT_MAX) { errno = EOVERFLOW; return -1; } else return length; } } DLL_EXPORTED int libintl_snprintf (char *resultbuf, size_t length, const char *format, ...) { va_list args; int retval; va_start (args, format); retval = libintl_vsnprintf (resultbuf, length, format, args); va_end (args); return retval; } #endif #if HAVE_ASPRINTF DLL_EXPORTED int libintl_vasprintf (char **resultp, const char *format, va_list args) { size_t length; char *result = libintl_vasnprintf (NULL, &length, format, args); if (result == NULL) return -1; if (length > INT_MAX) { free (result); errno = EOVERFLOW; return -1; } *resultp = result; return length; } DLL_EXPORTED int libintl_asprintf (char **resultp, const char *format, ...) { va_list args; int retval; va_start (args, format); retval = libintl_vasprintf (resultp, format, args); va_end (args); return retval; } #endif #if HAVE_FWPRINTF #include #define WIDE_CHAR_VERSION 1 #include "wprintf-parse.h" /* Define auxiliary functions declared in "wprintf-parse.h". */ #define CHAR_T wchar_t #define DIRECTIVE wchar_t_directive #define DIRECTIVES wchar_t_directives #define PRINTF_PARSE wprintf_parse #include "printf-parse.c" /* Define functions declared in "vasnprintf.h". */ #define vasnwprintf libintl_vasnwprintf #include "vasnprintf.c" #if 0 /* not needed */ #define asnwprintf libintl_asnwprintf #include "asnprintf.c" #endif # if HAVE_DECL__SNWPRINTF /* Windows. */ # define system_vswprintf _vsnwprintf # else /* Unix. */ # define system_vswprintf vswprintf # endif DLL_EXPORTED int libintl_vfwprintf (FILE *stream, const wchar_t *format, va_list args) { if (wcschr (format, '$') == NULL) return vfwprintf (stream, format, args); else { size_t length; wchar_t *result = libintl_vasnwprintf (NULL, &length, format, args); int retval = -1; if (result != NULL) { size_t i; for (i = 0; i < length; i++) if (fputwc (result[i], stream) == WEOF) break; free (result); if (i == length) { if (length > INT_MAX) errno = EOVERFLOW; else retval = length; } } return retval; } } DLL_EXPORTED int libintl_fwprintf (FILE *stream, const wchar_t *format, ...) { va_list args; int retval; va_start (args, format); retval = libintl_vfwprintf (stream, format, args); va_end (args); return retval; } DLL_EXPORTED int libintl_vwprintf (const wchar_t *format, va_list args) { return libintl_vfwprintf (stdout, format, args); } DLL_EXPORTED int libintl_wprintf (const wchar_t *format, ...) { va_list args; int retval; va_start (args, format); retval = libintl_vwprintf (format, args); va_end (args); return retval; } DLL_EXPORTED int libintl_vswprintf (wchar_t *resultbuf, size_t length, const wchar_t *format, va_list args) { if (wcschr (format, '$') == NULL) return system_vswprintf (resultbuf, length, format, args); else { size_t maxlength = length; wchar_t *result = libintl_vasnwprintf (resultbuf, &length, format, args); if (result != resultbuf) { if (maxlength > 0) { size_t pruned_length = (length < maxlength ? length : maxlength - 1); memcpy (resultbuf, result, pruned_length * sizeof (wchar_t)); resultbuf[pruned_length] = 0; } free (result); /* Unlike vsnprintf, which has to return the number of character that would have been produced if the resultbuf had been sufficiently large, the vswprintf function has to return a negative value if the resultbuf was not sufficiently large. */ if (length >= maxlength) return -1; } if (length > INT_MAX) { errno = EOVERFLOW; return -1; } else return length; } } DLL_EXPORTED int libintl_swprintf (wchar_t *resultbuf, size_t length, const wchar_t *format, ...) { va_list args; int retval; va_start (args, format); retval = libintl_vswprintf (resultbuf, length, format, args); va_end (args); return retval; } #endif #endif enscript-1.6.5.90/intl/localcharset.h0000644000175000017500000000256311606344060014313 00000000000000/* Determine a canonical name for the current locale's character encoding. Copyright (C) 2000-2003 Free Software Foundation, Inc. This file is part of the GNU CHARSET Library. 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 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 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef _LOCALCHARSET_H #define _LOCALCHARSET_H #ifdef __cplusplus extern "C" { #endif /* Determine the current locale's character encoding, and canonicalize it into one of the canonical names listed in config.charset. The result must not be freed; it is statically allocated. If the canonical name cannot be determined, the result is a non-canonical name. */ extern const char * locale_charset (void); #ifdef __cplusplus } #endif #endif /* _LOCALCHARSET_H */ enscript-1.6.5.90/intl/loadinfo.h0000644000175000017500000001211311606344060013432 00000000000000/* Copyright (C) 1996-1999, 2000-2003, 2005-2006 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1996. 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 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 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef _LOADINFO_H #define _LOADINFO_H 1 /* Declarations of locale dependent catalog lookup functions. Implemented in localealias.c Possibly replace a locale name by another. explodename.c Split a locale name into its various fields. l10nflist.c Generate a list of filenames of possible message catalogs. finddomain.c Find and open the relevant message catalogs. The main function _nl_find_domain() in finddomain.c is declared in gettextP.h. */ #ifndef internal_function # define internal_function #endif #ifndef LIBINTL_DLL_EXPORTED # define LIBINTL_DLL_EXPORTED #endif /* Tell the compiler when a conditional or integer expression is almost always true or almost always false. */ #ifndef HAVE_BUILTIN_EXPECT # define __builtin_expect(expr, val) (expr) #endif /* Separator in PATH like lists of pathnames. */ #if ((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__) || defined __EMX__ || defined __DJGPP__ /* Win32, OS/2, DOS */ # define PATH_SEPARATOR ';' #else /* Unix */ # define PATH_SEPARATOR ':' #endif /* Encoding of locale name parts. */ #define XPG_NORM_CODESET 1 #define XPG_CODESET 2 #define XPG_TERRITORY 4 #define XPG_MODIFIER 8 struct loaded_l10nfile { const char *filename; int decided; const void *data; struct loaded_l10nfile *next; struct loaded_l10nfile *successor[1]; }; /* Normalize codeset name. There is no standard for the codeset names. Normalization allows the user to use any of the common names. The return value is dynamically allocated and has to be freed by the caller. */ extern const char *_nl_normalize_codeset (const char *codeset, size_t name_len); /* Lookup a locale dependent file. *L10NFILE_LIST denotes a pool of lookup results of locale dependent files of the same kind, sorted in decreasing order of ->filename. DIRLIST and DIRLIST_LEN are an argz list of directories in which to look, containing at least one directory (i.e. DIRLIST_LEN > 0). MASK, LANGUAGE, TERRITORY, CODESET, NORMALIZED_CODESET, MODIFIER are the pieces of the locale name, as produced by _nl_explode_name(). FILENAME is the filename suffix. The return value is the lookup result, either found in *L10NFILE_LIST, or - if DO_ALLOCATE is nonzero - freshly allocated, or possibly NULL. If the return value is non-NULL, it is added to *L10NFILE_LIST, and its ->next field denotes the chaining inside *L10NFILE_LIST, and furthermore its ->successor[] field contains a list of other lookup results from which this lookup result inherits. */ extern struct loaded_l10nfile * _nl_make_l10nflist (struct loaded_l10nfile **l10nfile_list, const char *dirlist, size_t dirlist_len, int mask, const char *language, const char *territory, const char *codeset, const char *normalized_codeset, const char *modifier, const char *filename, int do_allocate); /* Lookup the real locale name for a locale alias NAME, or NULL if NAME is not a locale alias (but possibly a real locale name). The return value is statically allocated and must not be freed. */ /* Part of the libintl ABI only for the sake of the gettext.m4 macro. */ extern LIBINTL_DLL_EXPORTED const char *_nl_expand_alias (const char *name); /* Split a locale name NAME into its pieces: language, modifier, territory, codeset. NAME gets destructively modified: NUL bytes are inserted here and there. *LANGUAGE gets assigned NAME. Each of *MODIFIER, *TERRITORY, *CODESET gets assigned either a pointer into the old NAME string, or NULL. *NORMALIZED_CODESET gets assigned the expanded *CODESET, if it is different from *CODESET; this one is dynamically allocated and has to be freed by the caller. The return value is a bitmask, where each bit corresponds to one filled-in value: XPG_MODIFIER for *MODIFIER, XPG_TERRITORY for *TERRITORY, XPG_CODESET for *CODESET, XPG_NORM_CODESET for *NORMALIZED_CODESET. */ extern int _nl_explode_name (char *name, const char **language, const char **modifier, const char **territory, const char **codeset, const char **normalized_codeset); #endif /* loadinfo.h */ enscript-1.6.5.90/intl/libgnuintl.h.in0000644000175000017500000003415311606344060014423 00000000000000/* Message catalogs for internationalization. Copyright (C) 1995-1997, 2000-2007 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 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 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef _LIBINTL_H #define _LIBINTL_H 1 #include /* The LC_MESSAGES locale category is the category used by the functions gettext() and dgettext(). It is specified in POSIX, but not in ANSI C. On systems that don't define it, use an arbitrary value instead. On Solaris, defines __LOCALE_H (or _LOCALE_H in Solaris 2.5) then includes (i.e. this file!) and then only defines LC_MESSAGES. To avoid a redefinition warning, don't define LC_MESSAGES in this case. */ #if !defined LC_MESSAGES && !(defined __LOCALE_H || (defined _LOCALE_H && defined __sun)) # define LC_MESSAGES 1729 #endif /* We define an additional symbol to signal that we use the GNU implementation of gettext. */ #define __USE_GNU_GETTEXT 1 /* Provide information about the supported file formats. Returns the maximum minor revision number supported for a given major revision. */ #define __GNU_GETTEXT_SUPPORTED_REVISION(major) \ ((major) == 0 || (major) == 1 ? 1 : -1) /* Resolve a platform specific conflict on DJGPP. GNU gettext takes precedence over _conio_gettext. */ #ifdef __DJGPP__ # undef gettext #endif #ifdef __cplusplus extern "C" { #endif /* Version number: (major<<16) + (minor<<8) + subminor */ #define LIBINTL_VERSION 0x001100 extern int libintl_version; /* We redirect the functions to those prefixed with "libintl_". This is necessary, because some systems define gettext/textdomain/... in the C library (namely, Solaris 2.4 and newer, and GNU libc 2.0 and newer). If we used the unprefixed names, there would be cases where the definition in the C library would override the one in the libintl.so shared library. Recall that on ELF systems, the symbols are looked up in the following order: 1. in the executable, 2. in the shared libraries specified on the link command line, in order, 3. in the dependencies of the shared libraries specified on the link command line, 4. in the dlopen()ed shared libraries, in the order in which they were dlopen()ed. The definition in the C library would override the one in libintl.so if either * -lc is given on the link command line and -lintl isn't, or * -lc is given on the link command line before -lintl, or * libintl.so is a dependency of a dlopen()ed shared library but not linked to the executable at link time. Since Solaris gettext() behaves differently than GNU gettext(), this would be unacceptable. The redirection happens by default through macros in C, so that &gettext is independent of the compilation unit, but through inline functions in C++, in order not to interfere with the name mangling of class fields or class methods called 'gettext'. */ /* The user can define _INTL_REDIRECT_INLINE or _INTL_REDIRECT_MACROS. If he doesn't, we choose the method. A third possible method is _INTL_REDIRECT_ASM, supported only by GCC. */ #if !(defined _INTL_REDIRECT_INLINE || defined _INTL_REDIRECT_MACROS) # if __GNUC__ >= 2 && !(__APPLE_CC__ > 1) && !defined __MINGW32__ && !(__GNUC__ == 2 && defined _AIX) && (defined __STDC__ || defined __cplusplus) # define _INTL_REDIRECT_ASM # else # ifdef __cplusplus # define _INTL_REDIRECT_INLINE # else # define _INTL_REDIRECT_MACROS # endif # endif #endif /* Auxiliary macros. */ #ifdef _INTL_REDIRECT_ASM # define _INTL_ASM(cname) __asm__ (_INTL_ASMNAME (__USER_LABEL_PREFIX__, #cname)) # define _INTL_ASMNAME(prefix,cnamestring) _INTL_STRINGIFY (prefix) cnamestring # define _INTL_STRINGIFY(prefix) #prefix #else # define _INTL_ASM(cname) #endif /* _INTL_MAY_RETURN_STRING_ARG(n) declares that the given function may return its n-th argument literally. This enables GCC to warn for example about printf (gettext ("foo %y")). */ #if __GNUC__ >= 3 && !(__APPLE_CC__ > 1 && defined __cplusplus) # define _INTL_MAY_RETURN_STRING_ARG(n) __attribute__ ((__format_arg__ (n))) #else # define _INTL_MAY_RETURN_STRING_ARG(n) #endif /* Look up MSGID in the current default message catalog for the current LC_MESSAGES locale. If not found, returns MSGID itself (the default text). */ #ifdef _INTL_REDIRECT_INLINE extern char *libintl_gettext (const char *__msgid) _INTL_MAY_RETURN_STRING_ARG (1); static inline char *gettext (const char *__msgid) { return libintl_gettext (__msgid); } #else #ifdef _INTL_REDIRECT_MACROS # define gettext libintl_gettext #endif extern char *gettext (const char *__msgid) _INTL_ASM (libintl_gettext) _INTL_MAY_RETURN_STRING_ARG (1); #endif /* Look up MSGID in the DOMAINNAME message catalog for the current LC_MESSAGES locale. */ #ifdef _INTL_REDIRECT_INLINE extern char *libintl_dgettext (const char *__domainname, const char *__msgid) _INTL_MAY_RETURN_STRING_ARG (2); static inline char *dgettext (const char *__domainname, const char *__msgid) { return libintl_dgettext (__domainname, __msgid); } #else #ifdef _INTL_REDIRECT_MACROS # define dgettext libintl_dgettext #endif extern char *dgettext (const char *__domainname, const char *__msgid) _INTL_ASM (libintl_dgettext) _INTL_MAY_RETURN_STRING_ARG (2); #endif /* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY locale. */ #ifdef _INTL_REDIRECT_INLINE extern char *libintl_dcgettext (const char *__domainname, const char *__msgid, int __category) _INTL_MAY_RETURN_STRING_ARG (2); static inline char *dcgettext (const char *__domainname, const char *__msgid, int __category) { return libintl_dcgettext (__domainname, __msgid, __category); } #else #ifdef _INTL_REDIRECT_MACROS # define dcgettext libintl_dcgettext #endif extern char *dcgettext (const char *__domainname, const char *__msgid, int __category) _INTL_ASM (libintl_dcgettext) _INTL_MAY_RETURN_STRING_ARG (2); #endif /* Similar to `gettext' but select the plural form corresponding to the number N. */ #ifdef _INTL_REDIRECT_INLINE extern char *libintl_ngettext (const char *__msgid1, const char *__msgid2, unsigned long int __n) _INTL_MAY_RETURN_STRING_ARG (1) _INTL_MAY_RETURN_STRING_ARG (2); static inline char *ngettext (const char *__msgid1, const char *__msgid2, unsigned long int __n) { return libintl_ngettext (__msgid1, __msgid2, __n); } #else #ifdef _INTL_REDIRECT_MACROS # define ngettext libintl_ngettext #endif extern char *ngettext (const char *__msgid1, const char *__msgid2, unsigned long int __n) _INTL_ASM (libintl_ngettext) _INTL_MAY_RETURN_STRING_ARG (1) _INTL_MAY_RETURN_STRING_ARG (2); #endif /* Similar to `dgettext' but select the plural form corresponding to the number N. */ #ifdef _INTL_REDIRECT_INLINE extern char *libintl_dngettext (const char *__domainname, const char *__msgid1, const char *__msgid2, unsigned long int __n) _INTL_MAY_RETURN_STRING_ARG (2) _INTL_MAY_RETURN_STRING_ARG (3); static inline char *dngettext (const char *__domainname, const char *__msgid1, const char *__msgid2, unsigned long int __n) { return libintl_dngettext (__domainname, __msgid1, __msgid2, __n); } #else #ifdef _INTL_REDIRECT_MACROS # define dngettext libintl_dngettext #endif extern char *dngettext (const char *__domainname, const char *__msgid1, const char *__msgid2, unsigned long int __n) _INTL_ASM (libintl_dngettext) _INTL_MAY_RETURN_STRING_ARG (2) _INTL_MAY_RETURN_STRING_ARG (3); #endif /* Similar to `dcgettext' but select the plural form corresponding to the number N. */ #ifdef _INTL_REDIRECT_INLINE extern char *libintl_dcngettext (const char *__domainname, const char *__msgid1, const char *__msgid2, unsigned long int __n, int __category) _INTL_MAY_RETURN_STRING_ARG (2) _INTL_MAY_RETURN_STRING_ARG (3); static inline char *dcngettext (const char *__domainname, const char *__msgid1, const char *__msgid2, unsigned long int __n, int __category) { return libintl_dcngettext (__domainname, __msgid1, __msgid2, __n, __category); } #else #ifdef _INTL_REDIRECT_MACROS # define dcngettext libintl_dcngettext #endif extern char *dcngettext (const char *__domainname, const char *__msgid1, const char *__msgid2, unsigned long int __n, int __category) _INTL_ASM (libintl_dcngettext) _INTL_MAY_RETURN_STRING_ARG (2) _INTL_MAY_RETURN_STRING_ARG (3); #endif #ifndef IN_LIBGLOCALE /* Set the current default message catalog to DOMAINNAME. If DOMAINNAME is null, return the current default. If DOMAINNAME is "", reset to the default of "messages". */ #ifdef _INTL_REDIRECT_INLINE extern char *libintl_textdomain (const char *__domainname); static inline char *textdomain (const char *__domainname) { return libintl_textdomain (__domainname); } #else #ifdef _INTL_REDIRECT_MACROS # define textdomain libintl_textdomain #endif extern char *textdomain (const char *__domainname) _INTL_ASM (libintl_textdomain); #endif /* Specify that the DOMAINNAME message catalog will be found in DIRNAME rather than in the system locale data base. */ #ifdef _INTL_REDIRECT_INLINE extern char *libintl_bindtextdomain (const char *__domainname, const char *__dirname); static inline char *bindtextdomain (const char *__domainname, const char *__dirname) { return libintl_bindtextdomain (__domainname, __dirname); } #else #ifdef _INTL_REDIRECT_MACROS # define bindtextdomain libintl_bindtextdomain #endif extern char *bindtextdomain (const char *__domainname, const char *__dirname) _INTL_ASM (libintl_bindtextdomain); #endif /* Specify the character encoding in which the messages from the DOMAINNAME message catalog will be returned. */ #ifdef _INTL_REDIRECT_INLINE extern char *libintl_bind_textdomain_codeset (const char *__domainname, const char *__codeset); static inline char *bind_textdomain_codeset (const char *__domainname, const char *__codeset) { return libintl_bind_textdomain_codeset (__domainname, __codeset); } #else #ifdef _INTL_REDIRECT_MACROS # define bind_textdomain_codeset libintl_bind_textdomain_codeset #endif extern char *bind_textdomain_codeset (const char *__domainname, const char *__codeset) _INTL_ASM (libintl_bind_textdomain_codeset); #endif #endif /* IN_LIBGLOCALE */ /* Support for format strings with positions in *printf(), following the POSIX/XSI specification. Note: These replacements for the *printf() functions are visible only in source files that #include or #include "gettext.h". Packages that use *printf() in source files that don't refer to _() or gettext() but for which the format string could be the return value of _() or gettext() need to add this #include. Oh well. */ #if !@HAVE_POSIX_PRINTF@ #include #include /* Get va_list. */ #if __STDC__ || defined __cplusplus || defined _MSC_VER # include #else # include #endif #undef fprintf #define fprintf libintl_fprintf extern int fprintf (FILE *, const char *, ...); #undef vfprintf #define vfprintf libintl_vfprintf extern int vfprintf (FILE *, const char *, va_list); #undef printf #if defined __NetBSD__ || defined __BEOS__ || defined __CYGWIN__ || defined __MINGW32__ /* Don't break __attribute__((format(printf,M,N))). This redefinition is only possible because the libc in NetBSD, Cygwin, mingw does not have a function __printf__. */ # define libintl_printf __printf__ #endif #define printf libintl_printf extern int printf (const char *, ...); #undef vprintf #define vprintf libintl_vprintf extern int vprintf (const char *, va_list); #undef sprintf #define sprintf libintl_sprintf extern int sprintf (char *, const char *, ...); #undef vsprintf #define vsprintf libintl_vsprintf extern int vsprintf (char *, const char *, va_list); #if @HAVE_SNPRINTF@ #undef snprintf #define snprintf libintl_snprintf extern int snprintf (char *, size_t, const char *, ...); #undef vsnprintf #define vsnprintf libintl_vsnprintf extern int vsnprintf (char *, size_t, const char *, va_list); #endif #if @HAVE_ASPRINTF@ #undef asprintf #define asprintf libintl_asprintf extern int asprintf (char **, const char *, ...); #undef vasprintf #define vasprintf libintl_vasprintf extern int vasprintf (char **, const char *, va_list); #endif #if @HAVE_WPRINTF@ #undef fwprintf #define fwprintf libintl_fwprintf extern int fwprintf (FILE *, const wchar_t *, ...); #undef vfwprintf #define vfwprintf libintl_vfwprintf extern int vfwprintf (FILE *, const wchar_t *, va_list); #undef wprintf #define wprintf libintl_wprintf extern int wprintf (const wchar_t *, ...); #undef vwprintf #define vwprintf libintl_vwprintf extern int vwprintf (const wchar_t *, va_list); #undef swprintf #define swprintf libintl_swprintf extern int swprintf (wchar_t *, size_t, const wchar_t *, ...); #undef vswprintf #define vswprintf libintl_vswprintf extern int vswprintf (wchar_t *, size_t, const wchar_t *, va_list); #endif #endif /* Support for relocatable packages. */ /* Sets the original and the current installation prefix of the package. Relocation simply replaces a pathname starting with the original prefix by the corresponding pathname with the current prefix instead. Both prefixes should be directory names without trailing slash (i.e. use "" instead of "/"). */ #define libintl_set_relocation_prefix libintl_set_relocation_prefix extern void libintl_set_relocation_prefix (const char *orig_prefix, const char *curr_prefix); #ifdef __cplusplus } #endif #endif /* libintl.h */ enscript-1.6.5.90/intl/osdep.c0000644000175000017500000000174111606344061012752 00000000000000/* OS dependent parts of libintl. Copyright (C) 2001-2002, 2006 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 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 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #if defined __CYGWIN__ # include "intl-exports.c" #elif defined __EMX__ # include "os2compat.c" #else /* Avoid AIX compiler warning. */ typedef int dummy; #endif enscript-1.6.5.90/intl/intl-exports.c0000644000175000017500000000273311606344060014311 00000000000000/* List of exported symbols of libintl on Cygwin. Copyright (C) 2006 Free Software Foundation, Inc. Written by Bruno Haible , 2006. 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 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 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* IMP(x) is a symbol that contains the address of x. */ #define IMP(x) _imp__##x /* Ensure that the variable x is exported from the library, and that a pseudo-variable IMP(x) is available. */ #define VARIABLE(x) \ /* Export x without redefining x. This code was found by compiling a \ snippet: \ extern __declspec(dllexport) int x; int x = 42; */ \ asm (".section .drectve\n"); \ asm (".ascii \" -export:" #x ",data\"\n"); \ asm (".data\n"); \ /* Allocate a pseudo-variable IMP(x). */ \ extern int x; \ void * IMP(x) = &x; VARIABLE(libintl_version) enscript-1.6.5.90/intl/localename.c0000644000175000017500000012457111606344060013746 00000000000000/* Determine name of the currently selected locale. Copyright (C) 1995-1999, 2000-2007 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 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 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* Written by Ulrich Drepper , 1995. */ /* Win32 code written by Tor Lillqvist . */ /* MacOS X code written by Bruno Haible . */ #include /* Specification. */ #ifdef IN_LIBINTL # include "gettextP.h" #else # include "localename.h" #endif #include #include #if HAVE_CFLOCALECOPYCURRENT || HAVE_CFPREFERENCESCOPYAPPVALUE # include # include # if HAVE_CFLOCALECOPYCURRENT # include # elif HAVE_CFPREFERENCESCOPYAPPVALUE # include # endif #endif #if defined _WIN32 || defined __WIN32__ # define WIN32_NATIVE #endif #ifdef WIN32_NATIVE # define WIN32_LEAN_AND_MEAN # include /* List of language codes, sorted by value: 0x01 LANG_ARABIC 0x02 LANG_BULGARIAN 0x03 LANG_CATALAN 0x04 LANG_CHINESE 0x05 LANG_CZECH 0x06 LANG_DANISH 0x07 LANG_GERMAN 0x08 LANG_GREEK 0x09 LANG_ENGLISH 0x0a LANG_SPANISH 0x0b LANG_FINNISH 0x0c LANG_FRENCH 0x0d LANG_HEBREW 0x0e LANG_HUNGARIAN 0x0f LANG_ICELANDIC 0x10 LANG_ITALIAN 0x11 LANG_JAPANESE 0x12 LANG_KOREAN 0x13 LANG_DUTCH 0x14 LANG_NORWEGIAN 0x15 LANG_POLISH 0x16 LANG_PORTUGUESE 0x17 LANG_RHAETO_ROMANCE 0x18 LANG_ROMANIAN 0x19 LANG_RUSSIAN 0x1a LANG_CROATIAN == LANG_SERBIAN 0x1b LANG_SLOVAK 0x1c LANG_ALBANIAN 0x1d LANG_SWEDISH 0x1e LANG_THAI 0x1f LANG_TURKISH 0x20 LANG_URDU 0x21 LANG_INDONESIAN 0x22 LANG_UKRAINIAN 0x23 LANG_BELARUSIAN 0x24 LANG_SLOVENIAN 0x25 LANG_ESTONIAN 0x26 LANG_LATVIAN 0x27 LANG_LITHUANIAN 0x28 LANG_TAJIK 0x29 LANG_FARSI 0x2a LANG_VIETNAMESE 0x2b LANG_ARMENIAN 0x2c LANG_AZERI 0x2d LANG_BASQUE 0x2e LANG_SORBIAN 0x2f LANG_MACEDONIAN 0x30 LANG_SUTU 0x31 LANG_TSONGA 0x32 LANG_TSWANA 0x33 LANG_VENDA 0x34 LANG_XHOSA 0x35 LANG_ZULU 0x36 LANG_AFRIKAANS 0x37 LANG_GEORGIAN 0x38 LANG_FAEROESE 0x39 LANG_HINDI 0x3a LANG_MALTESE 0x3b LANG_SAAMI 0x3c LANG_GAELIC 0x3d LANG_YIDDISH 0x3e LANG_MALAY 0x3f LANG_KAZAK 0x40 LANG_KYRGYZ 0x41 LANG_SWAHILI 0x42 LANG_TURKMEN 0x43 LANG_UZBEK 0x44 LANG_TATAR 0x45 LANG_BENGALI 0x46 LANG_PUNJABI 0x47 LANG_GUJARATI 0x48 LANG_ORIYA 0x49 LANG_TAMIL 0x4a LANG_TELUGU 0x4b LANG_KANNADA 0x4c LANG_MALAYALAM 0x4d LANG_ASSAMESE 0x4e LANG_MARATHI 0x4f LANG_SANSKRIT 0x50 LANG_MONGOLIAN 0x51 LANG_TIBETAN 0x52 LANG_WELSH 0x53 LANG_CAMBODIAN 0x54 LANG_LAO 0x55 LANG_BURMESE 0x56 LANG_GALICIAN 0x57 LANG_KONKANI 0x58 LANG_MANIPURI 0x59 LANG_SINDHI 0x5a LANG_SYRIAC 0x5b LANG_SINHALESE 0x5c LANG_CHEROKEE 0x5d LANG_INUKTITUT 0x5e LANG_AMHARIC 0x5f LANG_TAMAZIGHT 0x60 LANG_KASHMIRI 0x61 LANG_NEPALI 0x62 LANG_FRISIAN 0x63 LANG_PASHTO 0x64 LANG_TAGALOG 0x65 LANG_DIVEHI 0x66 LANG_EDO 0x67 LANG_FULFULDE 0x68 LANG_HAUSA 0x69 LANG_IBIBIO 0x6a LANG_YORUBA 0x70 LANG_IGBO 0x71 LANG_KANURI 0x72 LANG_OROMO 0x73 LANG_TIGRINYA 0x74 LANG_GUARANI 0x75 LANG_HAWAIIAN 0x76 LANG_LATIN 0x77 LANG_SOMALI 0x78 LANG_YI 0x79 LANG_PAPIAMENTU */ /* Mingw headers don't have latest language and sublanguage codes. */ # ifndef LANG_AFRIKAANS # define LANG_AFRIKAANS 0x36 # endif # ifndef LANG_ALBANIAN # define LANG_ALBANIAN 0x1c # endif # ifndef LANG_AMHARIC # define LANG_AMHARIC 0x5e # endif # ifndef LANG_ARABIC # define LANG_ARABIC 0x01 # endif # ifndef LANG_ARMENIAN # define LANG_ARMENIAN 0x2b # endif # ifndef LANG_ASSAMESE # define LANG_ASSAMESE 0x4d # endif # ifndef LANG_AZERI # define LANG_AZERI 0x2c # endif # ifndef LANG_BASQUE # define LANG_BASQUE 0x2d # endif # ifndef LANG_BELARUSIAN # define LANG_BELARUSIAN 0x23 # endif # ifndef LANG_BENGALI # define LANG_BENGALI 0x45 # endif # ifndef LANG_BURMESE # define LANG_BURMESE 0x55 # endif # ifndef LANG_CAMBODIAN # define LANG_CAMBODIAN 0x53 # endif # ifndef LANG_CATALAN # define LANG_CATALAN 0x03 # endif # ifndef LANG_CHEROKEE # define LANG_CHEROKEE 0x5c # endif # ifndef LANG_DIVEHI # define LANG_DIVEHI 0x65 # endif # ifndef LANG_EDO # define LANG_EDO 0x66 # endif # ifndef LANG_ESTONIAN # define LANG_ESTONIAN 0x25 # endif # ifndef LANG_FAEROESE # define LANG_FAEROESE 0x38 # endif # ifndef LANG_FARSI # define LANG_FARSI 0x29 # endif # ifndef LANG_FRISIAN # define LANG_FRISIAN 0x62 # endif # ifndef LANG_FULFULDE # define LANG_FULFULDE 0x67 # endif # ifndef LANG_GAELIC # define LANG_GAELIC 0x3c # endif # ifndef LANG_GALICIAN # define LANG_GALICIAN 0x56 # endif # ifndef LANG_GEORGIAN # define LANG_GEORGIAN 0x37 # endif # ifndef LANG_GUARANI # define LANG_GUARANI 0x74 # endif # ifndef LANG_GUJARATI # define LANG_GUJARATI 0x47 # endif # ifndef LANG_HAUSA # define LANG_HAUSA 0x68 # endif # ifndef LANG_HAWAIIAN # define LANG_HAWAIIAN 0x75 # endif # ifndef LANG_HEBREW # define LANG_HEBREW 0x0d # endif # ifndef LANG_HINDI # define LANG_HINDI 0x39 # endif # ifndef LANG_IBIBIO # define LANG_IBIBIO 0x69 # endif # ifndef LANG_IGBO # define LANG_IGBO 0x70 # endif # ifndef LANG_INDONESIAN # define LANG_INDONESIAN 0x21 # endif # ifndef LANG_INUKTITUT # define LANG_INUKTITUT 0x5d # endif # ifndef LANG_KANNADA # define LANG_KANNADA 0x4b # endif # ifndef LANG_KANURI # define LANG_KANURI 0x71 # endif # ifndef LANG_KASHMIRI # define LANG_KASHMIRI 0x60 # endif # ifndef LANG_KAZAK # define LANG_KAZAK 0x3f # endif # ifndef LANG_KONKANI # define LANG_KONKANI 0x57 # endif # ifndef LANG_KYRGYZ # define LANG_KYRGYZ 0x40 # endif # ifndef LANG_LAO # define LANG_LAO 0x54 # endif # ifndef LANG_LATIN # define LANG_LATIN 0x76 # endif # ifndef LANG_LATVIAN # define LANG_LATVIAN 0x26 # endif # ifndef LANG_LITHUANIAN # define LANG_LITHUANIAN 0x27 # endif # ifndef LANG_MACEDONIAN # define LANG_MACEDONIAN 0x2f # endif # ifndef LANG_MALAY # define LANG_MALAY 0x3e # endif # ifndef LANG_MALAYALAM # define LANG_MALAYALAM 0x4c # endif # ifndef LANG_MALTESE # define LANG_MALTESE 0x3a # endif # ifndef LANG_MANIPURI # define LANG_MANIPURI 0x58 # endif # ifndef LANG_MARATHI # define LANG_MARATHI 0x4e # endif # ifndef LANG_MONGOLIAN # define LANG_MONGOLIAN 0x50 # endif # ifndef LANG_NEPALI # define LANG_NEPALI 0x61 # endif # ifndef LANG_ORIYA # define LANG_ORIYA 0x48 # endif # ifndef LANG_OROMO # define LANG_OROMO 0x72 # endif # ifndef LANG_PAPIAMENTU # define LANG_PAPIAMENTU 0x79 # endif # ifndef LANG_PASHTO # define LANG_PASHTO 0x63 # endif # ifndef LANG_PUNJABI # define LANG_PUNJABI 0x46 # endif # ifndef LANG_RHAETO_ROMANCE # define LANG_RHAETO_ROMANCE 0x17 # endif # ifndef LANG_SAAMI # define LANG_SAAMI 0x3b # endif # ifndef LANG_SANSKRIT # define LANG_SANSKRIT 0x4f # endif # ifndef LANG_SERBIAN # define LANG_SERBIAN 0x1a # endif # ifndef LANG_SINDHI # define LANG_SINDHI 0x59 # endif # ifndef LANG_SINHALESE # define LANG_SINHALESE 0x5b # endif # ifndef LANG_SLOVAK # define LANG_SLOVAK 0x1b # endif # ifndef LANG_SOMALI # define LANG_SOMALI 0x77 # endif # ifndef LANG_SORBIAN # define LANG_SORBIAN 0x2e # endif # ifndef LANG_SUTU # define LANG_SUTU 0x30 # endif # ifndef LANG_SWAHILI # define LANG_SWAHILI 0x41 # endif # ifndef LANG_SYRIAC # define LANG_SYRIAC 0x5a # endif # ifndef LANG_TAGALOG # define LANG_TAGALOG 0x64 # endif # ifndef LANG_TAJIK # define LANG_TAJIK 0x28 # endif # ifndef LANG_TAMAZIGHT # define LANG_TAMAZIGHT 0x5f # endif # ifndef LANG_TAMIL # define LANG_TAMIL 0x49 # endif # ifndef LANG_TATAR # define LANG_TATAR 0x44 # endif # ifndef LANG_TELUGU # define LANG_TELUGU 0x4a # endif # ifndef LANG_THAI # define LANG_THAI 0x1e # endif # ifndef LANG_TIBETAN # define LANG_TIBETAN 0x51 # endif # ifndef LANG_TIGRINYA # define LANG_TIGRINYA 0x73 # endif # ifndef LANG_TSONGA # define LANG_TSONGA 0x31 # endif # ifndef LANG_TSWANA # define LANG_TSWANA 0x32 # endif # ifndef LANG_TURKMEN # define LANG_TURKMEN 0x42 # endif # ifndef LANG_UKRAINIAN # define LANG_UKRAINIAN 0x22 # endif # ifndef LANG_URDU # define LANG_URDU 0x20 # endif # ifndef LANG_UZBEK # define LANG_UZBEK 0x43 # endif # ifndef LANG_VENDA # define LANG_VENDA 0x33 # endif # ifndef LANG_VIETNAMESE # define LANG_VIETNAMESE 0x2a # endif # ifndef LANG_WELSH # define LANG_WELSH 0x52 # endif # ifndef LANG_XHOSA # define LANG_XHOSA 0x34 # endif # ifndef LANG_YI # define LANG_YI 0x78 # endif # ifndef LANG_YIDDISH # define LANG_YIDDISH 0x3d # endif # ifndef LANG_YORUBA # define LANG_YORUBA 0x6a # endif # ifndef LANG_ZULU # define LANG_ZULU 0x35 # endif # ifndef SUBLANG_ARABIC_SAUDI_ARABIA # define SUBLANG_ARABIC_SAUDI_ARABIA 0x01 # endif # ifndef SUBLANG_ARABIC_IRAQ # define SUBLANG_ARABIC_IRAQ 0x02 # endif # ifndef SUBLANG_ARABIC_EGYPT # define SUBLANG_ARABIC_EGYPT 0x03 # endif # ifndef SUBLANG_ARABIC_LIBYA # define SUBLANG_ARABIC_LIBYA 0x04 # endif # ifndef SUBLANG_ARABIC_ALGERIA # define SUBLANG_ARABIC_ALGERIA 0x05 # endif # ifndef SUBLANG_ARABIC_MOROCCO # define SUBLANG_ARABIC_MOROCCO 0x06 # endif # ifndef SUBLANG_ARABIC_TUNISIA # define SUBLANG_ARABIC_TUNISIA 0x07 # endif # ifndef SUBLANG_ARABIC_OMAN # define SUBLANG_ARABIC_OMAN 0x08 # endif # ifndef SUBLANG_ARABIC_YEMEN # define SUBLANG_ARABIC_YEMEN 0x09 # endif # ifndef SUBLANG_ARABIC_SYRIA # define SUBLANG_ARABIC_SYRIA 0x0a # endif # ifndef SUBLANG_ARABIC_JORDAN # define SUBLANG_ARABIC_JORDAN 0x0b # endif # ifndef SUBLANG_ARABIC_LEBANON # define SUBLANG_ARABIC_LEBANON 0x0c # endif # ifndef SUBLANG_ARABIC_KUWAIT # define SUBLANG_ARABIC_KUWAIT 0x0d # endif # ifndef SUBLANG_ARABIC_UAE # define SUBLANG_ARABIC_UAE 0x0e # endif # ifndef SUBLANG_ARABIC_BAHRAIN # define SUBLANG_ARABIC_BAHRAIN 0x0f # endif # ifndef SUBLANG_ARABIC_QATAR # define SUBLANG_ARABIC_QATAR 0x10 # endif # ifndef SUBLANG_AZERI_LATIN # define SUBLANG_AZERI_LATIN 0x01 # endif # ifndef SUBLANG_AZERI_CYRILLIC # define SUBLANG_AZERI_CYRILLIC 0x02 # endif # ifndef SUBLANG_BENGALI_INDIA # define SUBLANG_BENGALI_INDIA 0x01 # endif # ifndef SUBLANG_BENGALI_BANGLADESH # define SUBLANG_BENGALI_BANGLADESH 0x02 # endif # ifndef SUBLANG_CHINESE_MACAU # define SUBLANG_CHINESE_MACAU 0x05 # endif # ifndef SUBLANG_ENGLISH_SOUTH_AFRICA # define SUBLANG_ENGLISH_SOUTH_AFRICA 0x07 # endif # ifndef SUBLANG_ENGLISH_JAMAICA # define SUBLANG_ENGLISH_JAMAICA 0x08 # endif # ifndef SUBLANG_ENGLISH_CARIBBEAN # define SUBLANG_ENGLISH_CARIBBEAN 0x09 # endif # ifndef SUBLANG_ENGLISH_BELIZE # define SUBLANG_ENGLISH_BELIZE 0x0a # endif # ifndef SUBLANG_ENGLISH_TRINIDAD # define SUBLANG_ENGLISH_TRINIDAD 0x0b # endif # ifndef SUBLANG_ENGLISH_ZIMBABWE # define SUBLANG_ENGLISH_ZIMBABWE 0x0c # endif # ifndef SUBLANG_ENGLISH_PHILIPPINES # define SUBLANG_ENGLISH_PHILIPPINES 0x0d # endif # ifndef SUBLANG_ENGLISH_INDONESIA # define SUBLANG_ENGLISH_INDONESIA 0x0e # endif # ifndef SUBLANG_ENGLISH_HONGKONG # define SUBLANG_ENGLISH_HONGKONG 0x0f # endif # ifndef SUBLANG_ENGLISH_INDIA # define SUBLANG_ENGLISH_INDIA 0x10 # endif # ifndef SUBLANG_ENGLISH_MALAYSIA # define SUBLANG_ENGLISH_MALAYSIA 0x11 # endif # ifndef SUBLANG_ENGLISH_SINGAPORE # define SUBLANG_ENGLISH_SINGAPORE 0x12 # endif # ifndef SUBLANG_FRENCH_LUXEMBOURG # define SUBLANG_FRENCH_LUXEMBOURG 0x05 # endif # ifndef SUBLANG_FRENCH_MONACO # define SUBLANG_FRENCH_MONACO 0x06 # endif # ifndef SUBLANG_FRENCH_WESTINDIES # define SUBLANG_FRENCH_WESTINDIES 0x07 # endif # ifndef SUBLANG_FRENCH_REUNION # define SUBLANG_FRENCH_REUNION 0x08 # endif # ifndef SUBLANG_FRENCH_CONGO # define SUBLANG_FRENCH_CONGO 0x09 # endif # ifndef SUBLANG_FRENCH_SENEGAL # define SUBLANG_FRENCH_SENEGAL 0x0a # endif # ifndef SUBLANG_FRENCH_CAMEROON # define SUBLANG_FRENCH_CAMEROON 0x0b # endif # ifndef SUBLANG_FRENCH_COTEDIVOIRE # define SUBLANG_FRENCH_COTEDIVOIRE 0x0c # endif # ifndef SUBLANG_FRENCH_MALI # define SUBLANG_FRENCH_MALI 0x0d # endif # ifndef SUBLANG_FRENCH_MOROCCO # define SUBLANG_FRENCH_MOROCCO 0x0e # endif # ifndef SUBLANG_FRENCH_HAITI # define SUBLANG_FRENCH_HAITI 0x0f # endif # ifndef SUBLANG_GERMAN_LUXEMBOURG # define SUBLANG_GERMAN_LUXEMBOURG 0x04 # endif # ifndef SUBLANG_GERMAN_LIECHTENSTEIN # define SUBLANG_GERMAN_LIECHTENSTEIN 0x05 # endif # ifndef SUBLANG_KASHMIRI_INDIA # define SUBLANG_KASHMIRI_INDIA 0x02 # endif # ifndef SUBLANG_MALAY_MALAYSIA # define SUBLANG_MALAY_MALAYSIA 0x01 # endif # ifndef SUBLANG_MALAY_BRUNEI_DARUSSALAM # define SUBLANG_MALAY_BRUNEI_DARUSSALAM 0x02 # endif # ifndef SUBLANG_NEPALI_INDIA # define SUBLANG_NEPALI_INDIA 0x02 # endif # ifndef SUBLANG_PUNJABI_INDIA # define SUBLANG_PUNJABI_INDIA 0x01 # endif # ifndef SUBLANG_PUNJABI_PAKISTAN # define SUBLANG_PUNJABI_PAKISTAN 0x02 # endif # ifndef SUBLANG_ROMANIAN_ROMANIA # define SUBLANG_ROMANIAN_ROMANIA 0x01 # endif # ifndef SUBLANG_ROMANIAN_MOLDOVA # define SUBLANG_ROMANIAN_MOLDOVA 0x02 # endif # ifndef SUBLANG_SERBIAN_LATIN # define SUBLANG_SERBIAN_LATIN 0x02 # endif # ifndef SUBLANG_SERBIAN_CYRILLIC # define SUBLANG_SERBIAN_CYRILLIC 0x03 # endif # ifndef SUBLANG_SINDHI_PAKISTAN # define SUBLANG_SINDHI_PAKISTAN 0x01 # endif # ifndef SUBLANG_SINDHI_AFGHANISTAN # define SUBLANG_SINDHI_AFGHANISTAN 0x02 # endif # ifndef SUBLANG_SPANISH_GUATEMALA # define SUBLANG_SPANISH_GUATEMALA 0x04 # endif # ifndef SUBLANG_SPANISH_COSTA_RICA # define SUBLANG_SPANISH_COSTA_RICA 0x05 # endif # ifndef SUBLANG_SPANISH_PANAMA # define SUBLANG_SPANISH_PANAMA 0x06 # endif # ifndef SUBLANG_SPANISH_DOMINICAN_REPUBLIC # define SUBLANG_SPANISH_DOMINICAN_REPUBLIC 0x07 # endif # ifndef SUBLANG_SPANISH_VENEZUELA # define SUBLANG_SPANISH_VENEZUELA 0x08 # endif # ifndef SUBLANG_SPANISH_COLOMBIA # define SUBLANG_SPANISH_COLOMBIA 0x09 # endif # ifndef SUBLANG_SPANISH_PERU # define SUBLANG_SPANISH_PERU 0x0a # endif # ifndef SUBLANG_SPANISH_ARGENTINA # define SUBLANG_SPANISH_ARGENTINA 0x0b # endif # ifndef SUBLANG_SPANISH_ECUADOR # define SUBLANG_SPANISH_ECUADOR 0x0c # endif # ifndef SUBLANG_SPANISH_CHILE # define SUBLANG_SPANISH_CHILE 0x0d # endif # ifndef SUBLANG_SPANISH_URUGUAY # define SUBLANG_SPANISH_URUGUAY 0x0e # endif # ifndef SUBLANG_SPANISH_PARAGUAY # define SUBLANG_SPANISH_PARAGUAY 0x0f # endif # ifndef SUBLANG_SPANISH_BOLIVIA # define SUBLANG_SPANISH_BOLIVIA 0x10 # endif # ifndef SUBLANG_SPANISH_EL_SALVADOR # define SUBLANG_SPANISH_EL_SALVADOR 0x11 # endif # ifndef SUBLANG_SPANISH_HONDURAS # define SUBLANG_SPANISH_HONDURAS 0x12 # endif # ifndef SUBLANG_SPANISH_NICARAGUA # define SUBLANG_SPANISH_NICARAGUA 0x13 # endif # ifndef SUBLANG_SPANISH_PUERTO_RICO # define SUBLANG_SPANISH_PUERTO_RICO 0x14 # endif # ifndef SUBLANG_SWEDISH_FINLAND # define SUBLANG_SWEDISH_FINLAND 0x02 # endif # ifndef SUBLANG_TAMAZIGHT_ARABIC # define SUBLANG_TAMAZIGHT_ARABIC 0x01 # endif # ifndef SUBLANG_TAMAZIGHT_ALGERIA_LATIN # define SUBLANG_TAMAZIGHT_ALGERIA_LATIN 0x02 # endif # ifndef SUBLANG_TIGRINYA_ETHIOPIA # define SUBLANG_TIGRINYA_ETHIOPIA 0x01 # endif # ifndef SUBLANG_TIGRINYA_ERITREA # define SUBLANG_TIGRINYA_ERITREA 0x02 # endif # ifndef SUBLANG_URDU_PAKISTAN # define SUBLANG_URDU_PAKISTAN 0x01 # endif # ifndef SUBLANG_URDU_INDIA # define SUBLANG_URDU_INDIA 0x02 # endif # ifndef SUBLANG_UZBEK_LATIN # define SUBLANG_UZBEK_LATIN 0x01 # endif # ifndef SUBLANG_UZBEK_CYRILLIC # define SUBLANG_UZBEK_CYRILLIC 0x02 # endif #endif # if HAVE_CFLOCALECOPYCURRENT || HAVE_CFPREFERENCESCOPYAPPVALUE /* MacOS X 10.2 or newer */ /* Canonicalize a MacOS X locale name to a Unix locale name. NAME is a sufficiently large buffer. On input, it contains the MacOS X locale name. On output, it contains the Unix locale name. */ # if !defined IN_LIBINTL static # endif void gl_locale_name_canonicalize (char *name) { /* This conversion is based on a posting by Deborah GoldSmith on 2005-03-08, http://lists.apple.com/archives/carbon-dev/2005/Mar/msg00293.html */ /* Convert legacy (NeXTstep inherited) English names to Unix (ISO 639 and ISO 3166) names. Prior to MacOS X 10.3, there is no API for doing this. Therefore we do it ourselves, using a table based on the results of the MacOS X 10.3.8 function CFLocaleCreateCanonicalLocaleIdentifierFromString(). */ typedef struct { const char legacy[21+1]; const char unixy[5+1]; } legacy_entry; static const legacy_entry legacy_table[] = { { "Afrikaans", "af" }, { "Albanian", "sq" }, { "Amharic", "am" }, { "Arabic", "ar" }, { "Armenian", "hy" }, { "Assamese", "as" }, { "Aymara", "ay" }, { "Azerbaijani", "az" }, { "Basque", "eu" }, { "Belarusian", "be" }, { "Belorussian", "be" }, { "Bengali", "bn" }, { "Brazilian Portugese", "pt_BR" }, { "Brazilian Portuguese", "pt_BR" }, { "Breton", "br" }, { "Bulgarian", "bg" }, { "Burmese", "my" }, { "Byelorussian", "be" }, { "Catalan", "ca" }, { "Chewa", "ny" }, { "Chichewa", "ny" }, { "Chinese", "zh" }, { "Chinese, Simplified", "zh_CN" }, { "Chinese, Traditional", "zh_TW" }, { "Chinese, Tradtional", "zh_TW" }, { "Croatian", "hr" }, { "Czech", "cs" }, { "Danish", "da" }, { "Dutch", "nl" }, { "Dzongkha", "dz" }, { "English", "en" }, { "Esperanto", "eo" }, { "Estonian", "et" }, { "Faroese", "fo" }, { "Farsi", "fa" }, { "Finnish", "fi" }, { "Flemish", "nl_BE" }, { "French", "fr" }, { "Galician", "gl" }, { "Gallegan", "gl" }, { "Georgian", "ka" }, { "German", "de" }, { "Greek", "el" }, { "Greenlandic", "kl" }, { "Guarani", "gn" }, { "Gujarati", "gu" }, { "Hawaiian", "haw" }, /* Yes, "haw", not "cpe". */ { "Hebrew", "he" }, { "Hindi", "hi" }, { "Hungarian", "hu" }, { "Icelandic", "is" }, { "Indonesian", "id" }, { "Inuktitut", "iu" }, { "Irish", "ga" }, { "Italian", "it" }, { "Japanese", "ja" }, { "Javanese", "jv" }, { "Kalaallisut", "kl" }, { "Kannada", "kn" }, { "Kashmiri", "ks" }, { "Kazakh", "kk" }, { "Khmer", "km" }, { "Kinyarwanda", "rw" }, { "Kirghiz", "ky" }, { "Korean", "ko" }, { "Kurdish", "ku" }, { "Latin", "la" }, { "Latvian", "lv" }, { "Lithuanian", "lt" }, { "Macedonian", "mk" }, { "Malagasy", "mg" }, { "Malay", "ms" }, { "Malayalam", "ml" }, { "Maltese", "mt" }, { "Manx", "gv" }, { "Marathi", "mr" }, { "Moldavian", "mo" }, { "Mongolian", "mn" }, { "Nepali", "ne" }, { "Norwegian", "nb" }, /* Yes, "nb", not the obsolete "no". */ { "Nyanja", "ny" }, { "Nynorsk", "nn" }, { "Oriya", "or" }, { "Oromo", "om" }, { "Panjabi", "pa" }, { "Pashto", "ps" }, { "Persian", "fa" }, { "Polish", "pl" }, { "Portuguese", "pt" }, { "Portuguese, Brazilian", "pt_BR" }, { "Punjabi", "pa" }, { "Pushto", "ps" }, { "Quechua", "qu" }, { "Romanian", "ro" }, { "Ruanda", "rw" }, { "Rundi", "rn" }, { "Russian", "ru" }, { "Sami", "se_NO" }, /* Not just "se". */ { "Sanskrit", "sa" }, { "Scottish", "gd" }, { "Serbian", "sr" }, { "Simplified Chinese", "zh_CN" }, { "Sindhi", "sd" }, { "Sinhalese", "si" }, { "Slovak", "sk" }, { "Slovenian", "sl" }, { "Somali", "so" }, { "Spanish", "es" }, { "Sundanese", "su" }, { "Swahili", "sw" }, { "Swedish", "sv" }, { "Tagalog", "tl" }, { "Tajik", "tg" }, { "Tajiki", "tg" }, { "Tamil", "ta" }, { "Tatar", "tt" }, { "Telugu", "te" }, { "Thai", "th" }, { "Tibetan", "bo" }, { "Tigrinya", "ti" }, { "Tongan", "to" }, { "Traditional Chinese", "zh_TW" }, { "Turkish", "tr" }, { "Turkmen", "tk" }, { "Uighur", "ug" }, { "Ukrainian", "uk" }, { "Urdu", "ur" }, { "Uzbek", "uz" }, { "Vietnamese", "vi" }, { "Welsh", "cy" }, { "Yiddish", "yi" } }; /* Convert new-style locale names with language tags (ISO 639 and ISO 15924) to Unix (ISO 639 and ISO 3166) names. */ typedef struct { const char langtag[7+1]; const char unixy[12+1]; } langtag_entry; static const langtag_entry langtag_table[] = { /* MacOS X has "az-Arab", "az-Cyrl", "az-Latn". The default script for az on Unix is Latin. */ { "az-Latn", "az" }, /* MacOS X has "ga-dots". Does not yet exist on Unix. */ { "ga-dots", "ga" }, /* MacOS X has "kk-Cyrl". Does not yet exist on Unix. */ /* MacOS X has "mn-Cyrl", "mn-Mong". The default script for mn on Unix is Cyrillic. */ { "mn-Cyrl", "mn" }, /* MacOS X has "ms-Arab", "ms-Latn". The default script for ms on Unix is Latin. */ { "ms-Latn", "ms" }, /* MacOS X has "tg-Cyrl". The default script for tg on Unix is Cyrillic. */ { "tg-Cyrl", "tg" }, /* MacOS X has "tk-Cyrl". Does not yet exist on Unix. */ /* MacOS X has "tt-Cyrl". The default script for tt on Unix is Cyrillic. */ { "tt-Cyrl", "tt" }, /* MacOS X has "zh-Hans", "zh-Hant". Country codes are used to distinguish these on Unix. */ { "zh-Hans", "zh_CN" }, { "zh-Hant", "zh_TW" } }; /* Convert script names (ISO 15924) to Unix conventions. See http://www.unicode.org/iso15924/iso15924-codes.html */ typedef struct { const char script[4+1]; const char unixy[9+1]; } script_entry; static const script_entry script_table[] = { { "Arab", "arabic" }, { "Cyrl", "cyrillic" }, { "Mong", "mongolian" } }; /* Step 1: Convert using legacy_table. */ if (name[0] >= 'A' && name[0] <= 'Z') { unsigned int i1, i2; i1 = 0; i2 = sizeof (legacy_table) / sizeof (legacy_entry); while (i2 - i1 > 1) { /* At this point we know that if name occurs in legacy_table, its index must be >= i1 and < i2. */ unsigned int i = (i1 + i2) >> 1; const legacy_entry *p = &legacy_table[i]; if (strcmp (name, p->legacy) < 0) i2 = i; else i1 = i; } if (strcmp (name, legacy_table[i1].legacy) == 0) { strcpy (name, legacy_table[i1].unixy); return; } } /* Step 2: Convert using langtag_table and script_table. */ if (strlen (name) == 7 && name[2] == '-') { unsigned int i1, i2; i1 = 0; i2 = sizeof (langtag_table) / sizeof (langtag_entry); while (i2 - i1 > 1) { /* At this point we know that if name occurs in langtag_table, its index must be >= i1 and < i2. */ unsigned int i = (i1 + i2) >> 1; const langtag_entry *p = &langtag_table[i]; if (strcmp (name, p->langtag) < 0) i2 = i; else i1 = i; } if (strcmp (name, langtag_table[i1].langtag) == 0) { strcpy (name, langtag_table[i1].unixy); return; } i1 = 0; i2 = sizeof (script_table) / sizeof (script_entry); while (i2 - i1 > 1) { /* At this point we know that if (name + 3) occurs in script_table, its index must be >= i1 and < i2. */ unsigned int i = (i1 + i2) >> 1; const script_entry *p = &script_table[i]; if (strcmp (name + 3, p->script) < 0) i2 = i; else i1 = i; } if (strcmp (name + 3, script_table[i1].script) == 0) { name[2] = '@'; strcpy (name + 3, script_table[i1].unixy); return; } } /* Step 3: Convert new-style dash to Unix underscore. */ { char *p; for (p = name; *p != '\0'; p++) if (*p == '-') *p = '_'; } } #endif /* XPG3 defines the result of 'setlocale (category, NULL)' as: "Directs 'setlocale()' to query 'category' and return the current setting of 'local'." However it does not specify the exact format. Neither do SUSV2 and ISO C 99. So we can use this feature only on selected systems (e.g. those using GNU C Library). */ #if defined _LIBC || (defined __GLIBC__ && __GLIBC__ >= 2) # define HAVE_LOCALE_NULL #endif /* Determine the current locale's name, and canonicalize it into XPG syntax language[_territory][.codeset][@modifier] The codeset part in the result is not reliable; the locale_charset() should be used for codeset information instead. The result must not be freed; it is statically allocated. */ const char * gl_locale_name_posix (int category, const char *categoryname) { /* Use the POSIX methods of looking to 'LC_ALL', 'LC_xxx', and 'LANG'. On some systems this can be done by the 'setlocale' function itself. */ #if defined HAVE_SETLOCALE && defined HAVE_LC_MESSAGES && defined HAVE_LOCALE_NULL return setlocale (category, NULL); #else const char *retval; /* Setting of LC_ALL overrides all other. */ retval = getenv ("LC_ALL"); if (retval != NULL && retval[0] != '\0') return retval; /* Next comes the name of the desired category. */ retval = getenv (categoryname); if (retval != NULL && retval[0] != '\0') return retval; /* Last possibility is the LANG environment variable. */ retval = getenv ("LANG"); if (retval != NULL && retval[0] != '\0') return retval; return NULL; #endif } const char * gl_locale_name_default (void) { /* POSIX:2001 says: "All implementations shall define a locale as the default locale, to be invoked when no environment variables are set, or set to the empty string. This default locale can be the POSIX locale or any other implementation-defined locale. Some implementations may provide facilities for local installation administrators to set the default locale, customizing it for each location. POSIX:2001 does not require such a facility. */ #if !(HAVE_CFLOCALECOPYCURRENT || HAVE_CFPREFERENCESCOPYAPPVALUE || defined(WIN32_NATIVE)) /* The system does not have a way of setting the locale, other than the POSIX specified environment variables. We use C as default locale. */ return "C"; #else /* Return an XPG style locale name language[_territory][@modifier]. Don't even bother determining the codeset; it's not useful in this context, because message catalogs are not specific to a single codeset. */ # if HAVE_CFLOCALECOPYCURRENT || HAVE_CFPREFERENCESCOPYAPPVALUE /* MacOS X 10.2 or newer */ { /* Cache the locale name, since CoreFoundation calls are expensive. */ static const char *cached_localename; if (cached_localename == NULL) { char namebuf[256]; # if HAVE_CFLOCALECOPYCURRENT /* MacOS X 10.3 or newer */ CFLocaleRef locale = CFLocaleCopyCurrent (); CFStringRef name = CFLocaleGetIdentifier (locale); if (CFStringGetCString (name, namebuf, sizeof(namebuf), kCFStringEncodingASCII)) { gl_locale_name_canonicalize (namebuf); cached_localename = strdup (namebuf); } CFRelease (locale); # elif HAVE_CFPREFERENCESCOPYAPPVALUE /* MacOS X 10.2 or newer */ CFTypeRef value = CFPreferencesCopyAppValue (CFSTR ("AppleLocale"), kCFPreferencesCurrentApplication); if (value != NULL && CFGetTypeID (value) == CFStringGetTypeID () && CFStringGetCString ((CFStringRef)value, namebuf, sizeof(namebuf), kCFStringEncodingASCII)) { gl_locale_name_canonicalize (namebuf); cached_localename = strdup (namebuf); } # endif if (cached_localename == NULL) cached_localename = "C"; } return cached_localename; } # endif # if defined(WIN32_NATIVE) /* WIN32, not Cygwin */ { LCID lcid; LANGID langid; int primary, sub; /* Use native Win32 API locale ID. */ lcid = GetThreadLocale (); /* Strip off the sorting rules, keep only the language part. */ langid = LANGIDFROMLCID (lcid); /* Split into language and territory part. */ primary = PRIMARYLANGID (langid); sub = SUBLANGID (langid); /* Dispatch on language. See also http://www.unicode.org/unicode/onlinedat/languages.html . For details about languages, see http://www.ethnologue.com/ . */ switch (primary) { case LANG_AFRIKAANS: return "af_ZA"; case LANG_ALBANIAN: return "sq_AL"; case LANG_AMHARIC: return "am_ET"; case LANG_ARABIC: switch (sub) { case SUBLANG_ARABIC_SAUDI_ARABIA: return "ar_SA"; case SUBLANG_ARABIC_IRAQ: return "ar_IQ"; case SUBLANG_ARABIC_EGYPT: return "ar_EG"; case SUBLANG_ARABIC_LIBYA: return "ar_LY"; case SUBLANG_ARABIC_ALGERIA: return "ar_DZ"; case SUBLANG_ARABIC_MOROCCO: return "ar_MA"; case SUBLANG_ARABIC_TUNISIA: return "ar_TN"; case SUBLANG_ARABIC_OMAN: return "ar_OM"; case SUBLANG_ARABIC_YEMEN: return "ar_YE"; case SUBLANG_ARABIC_SYRIA: return "ar_SY"; case SUBLANG_ARABIC_JORDAN: return "ar_JO"; case SUBLANG_ARABIC_LEBANON: return "ar_LB"; case SUBLANG_ARABIC_KUWAIT: return "ar_KW"; case SUBLANG_ARABIC_UAE: return "ar_AE"; case SUBLANG_ARABIC_BAHRAIN: return "ar_BH"; case SUBLANG_ARABIC_QATAR: return "ar_QA"; } return "ar"; case LANG_ARMENIAN: return "hy_AM"; case LANG_ASSAMESE: return "as_IN"; case LANG_AZERI: switch (sub) { /* FIXME: Adjust this when Azerbaijani locales appear on Unix. */ case SUBLANG_AZERI_LATIN: return "az_AZ@latin"; case SUBLANG_AZERI_CYRILLIC: return "az_AZ@cyrillic"; } return "az"; case LANG_BASQUE: switch (sub) { case SUBLANG_DEFAULT: return "eu_ES"; } return "eu"; /* Ambiguous: could be "eu_ES" or "eu_FR". */ case LANG_BELARUSIAN: return "be_BY"; case LANG_BENGALI: switch (sub) { case SUBLANG_BENGALI_INDIA: return "bn_IN"; case SUBLANG_BENGALI_BANGLADESH: return "bn_BD"; } return "bn"; case LANG_BULGARIAN: return "bg_BG"; case LANG_BURMESE: return "my_MM"; case LANG_CAMBODIAN: return "km_KH"; case LANG_CATALAN: return "ca_ES"; case LANG_CHEROKEE: return "chr_US"; case LANG_CHINESE: switch (sub) { case SUBLANG_CHINESE_TRADITIONAL: return "zh_TW"; case SUBLANG_CHINESE_SIMPLIFIED: return "zh_CN"; case SUBLANG_CHINESE_HONGKONG: return "zh_HK"; case SUBLANG_CHINESE_SINGAPORE: return "zh_SG"; case SUBLANG_CHINESE_MACAU: return "zh_MO"; } return "zh"; case LANG_CROATIAN: /* LANG_CROATIAN == LANG_SERBIAN * What used to be called Serbo-Croatian * should really now be two separate * languages because of political reasons. * (Says tml, who knows nothing about Serbian * or Croatian.) * (I can feel those flames coming already.) */ switch (sub) { case SUBLANG_DEFAULT: return "hr_HR"; case SUBLANG_SERBIAN_LATIN: return "sr_CS"; case SUBLANG_SERBIAN_CYRILLIC: return "sr_CS@cyrillic"; } return "hr"; case LANG_CZECH: return "cs_CZ"; case LANG_DANISH: return "da_DK"; case LANG_DIVEHI: return "dv_MV"; case LANG_DUTCH: switch (sub) { case SUBLANG_DUTCH: return "nl_NL"; case SUBLANG_DUTCH_BELGIAN: /* FLEMISH, VLAAMS */ return "nl_BE"; } return "nl"; case LANG_EDO: return "bin_NG"; case LANG_ENGLISH: switch (sub) { /* SUBLANG_ENGLISH_US == SUBLANG_DEFAULT. Heh. I thought * English was the language spoken in England. * Oh well. */ case SUBLANG_ENGLISH_US: return "en_US"; case SUBLANG_ENGLISH_UK: return "en_GB"; case SUBLANG_ENGLISH_AUS: return "en_AU"; case SUBLANG_ENGLISH_CAN: return "en_CA"; case SUBLANG_ENGLISH_NZ: return "en_NZ"; case SUBLANG_ENGLISH_EIRE: return "en_IE"; case SUBLANG_ENGLISH_SOUTH_AFRICA: return "en_ZA"; case SUBLANG_ENGLISH_JAMAICA: return "en_JM"; case SUBLANG_ENGLISH_CARIBBEAN: return "en_GD"; /* Grenada? */ case SUBLANG_ENGLISH_BELIZE: return "en_BZ"; case SUBLANG_ENGLISH_TRINIDAD: return "en_TT"; case SUBLANG_ENGLISH_ZIMBABWE: return "en_ZW"; case SUBLANG_ENGLISH_PHILIPPINES: return "en_PH"; case SUBLANG_ENGLISH_INDONESIA: return "en_ID"; case SUBLANG_ENGLISH_HONGKONG: return "en_HK"; case SUBLANG_ENGLISH_INDIA: return "en_IN"; case SUBLANG_ENGLISH_MALAYSIA: return "en_MY"; case SUBLANG_ENGLISH_SINGAPORE: return "en_SG"; } return "en"; case LANG_ESTONIAN: return "et_EE"; case LANG_FAEROESE: return "fo_FO"; case LANG_FARSI: return "fa_IR"; case LANG_FINNISH: return "fi_FI"; case LANG_FRENCH: switch (sub) { case SUBLANG_FRENCH: return "fr_FR"; case SUBLANG_FRENCH_BELGIAN: /* WALLOON */ return "fr_BE"; case SUBLANG_FRENCH_CANADIAN: return "fr_CA"; case SUBLANG_FRENCH_SWISS: return "fr_CH"; case SUBLANG_FRENCH_LUXEMBOURG: return "fr_LU"; case SUBLANG_FRENCH_MONACO: return "fr_MC"; case SUBLANG_FRENCH_WESTINDIES: return "fr"; /* Caribbean? */ case SUBLANG_FRENCH_REUNION: return "fr_RE"; case SUBLANG_FRENCH_CONGO: return "fr_CG"; case SUBLANG_FRENCH_SENEGAL: return "fr_SN"; case SUBLANG_FRENCH_CAMEROON: return "fr_CM"; case SUBLANG_FRENCH_COTEDIVOIRE: return "fr_CI"; case SUBLANG_FRENCH_MALI: return "fr_ML"; case SUBLANG_FRENCH_MOROCCO: return "fr_MA"; case SUBLANG_FRENCH_HAITI: return "fr_HT"; } return "fr"; case LANG_FRISIAN: return "fy_NL"; case LANG_FULFULDE: /* Spoken in Nigeria, Guinea, Senegal, Mali, Niger, Cameroon, Benin. */ return "ff_NG"; case LANG_GAELIC: switch (sub) { case 0x01: /* SCOTTISH */ return "gd_GB"; case 0x02: /* IRISH */ return "ga_IE"; } return "C"; case LANG_GALICIAN: return "gl_ES"; case LANG_GEORGIAN: return "ka_GE"; case LANG_GERMAN: switch (sub) { case SUBLANG_GERMAN: return "de_DE"; case SUBLANG_GERMAN_SWISS: return "de_CH"; case SUBLANG_GERMAN_AUSTRIAN: return "de_AT"; case SUBLANG_GERMAN_LUXEMBOURG: return "de_LU"; case SUBLANG_GERMAN_LIECHTENSTEIN: return "de_LI"; } return "de"; case LANG_GREEK: return "el_GR"; case LANG_GUARANI: return "gn_PY"; case LANG_GUJARATI: return "gu_IN"; case LANG_HAUSA: return "ha_NG"; case LANG_HAWAIIAN: /* FIXME: Do they mean Hawaiian ("haw_US", 1000 speakers) or Hawaii Creole English ("cpe_US", 600000 speakers)? */ return "cpe_US"; case LANG_HEBREW: return "he_IL"; case LANG_HINDI: return "hi_IN"; case LANG_HUNGARIAN: return "hu_HU"; case LANG_IBIBIO: return "nic_NG"; case LANG_ICELANDIC: return "is_IS"; case LANG_IGBO: return "ig_NG"; case LANG_INDONESIAN: return "id_ID"; case LANG_INUKTITUT: return "iu_CA"; case LANG_ITALIAN: switch (sub) { case SUBLANG_ITALIAN: return "it_IT"; case SUBLANG_ITALIAN_SWISS: return "it_CH"; } return "it"; case LANG_JAPANESE: return "ja_JP"; case LANG_KANNADA: return "kn_IN"; case LANG_KANURI: return "kr_NG"; case LANG_KASHMIRI: switch (sub) { case SUBLANG_DEFAULT: return "ks_PK"; case SUBLANG_KASHMIRI_INDIA: return "ks_IN"; } return "ks"; case LANG_KAZAK: return "kk_KZ"; case LANG_KONKANI: /* FIXME: Adjust this when such locales appear on Unix. */ return "kok_IN"; case LANG_KOREAN: return "ko_KR"; case LANG_KYRGYZ: return "ky_KG"; case LANG_LAO: return "lo_LA"; case LANG_LATIN: return "la_VA"; case LANG_LATVIAN: return "lv_LV"; case LANG_LITHUANIAN: return "lt_LT"; case LANG_MACEDONIAN: return "mk_MK"; case LANG_MALAY: switch (sub) { case SUBLANG_MALAY_MALAYSIA: return "ms_MY"; case SUBLANG_MALAY_BRUNEI_DARUSSALAM: return "ms_BN"; } return "ms"; case LANG_MALAYALAM: return "ml_IN"; case LANG_MALTESE: return "mt_MT"; case LANG_MANIPURI: /* FIXME: Adjust this when such locales appear on Unix. */ return "mni_IN"; case LANG_MARATHI: return "mr_IN"; case LANG_MONGOLIAN: switch (sub) { case SUBLANG_DEFAULT: return "mn_MN"; } return "mn"; /* Ambiguous: could be "mn_CN" or "mn_MN". */ case LANG_NEPALI: switch (sub) { case SUBLANG_DEFAULT: return "ne_NP"; case SUBLANG_NEPALI_INDIA: return "ne_IN"; } return "ne"; case LANG_NORWEGIAN: switch (sub) { case SUBLANG_NORWEGIAN_BOKMAL: return "nb_NO"; case SUBLANG_NORWEGIAN_NYNORSK: return "nn_NO"; } return "no"; case LANG_ORIYA: return "or_IN"; case LANG_OROMO: return "om_ET"; case LANG_PAPIAMENTU: return "pap_AN"; case LANG_PASHTO: return "ps"; /* Ambiguous: could be "ps_PK" or "ps_AF". */ case LANG_POLISH: return "pl_PL"; case LANG_PORTUGUESE: switch (sub) { case SUBLANG_PORTUGUESE: return "pt_PT"; /* Hmm. SUBLANG_PORTUGUESE_BRAZILIAN == SUBLANG_DEFAULT. Same phenomenon as SUBLANG_ENGLISH_US == SUBLANG_DEFAULT. */ case SUBLANG_PORTUGUESE_BRAZILIAN: return "pt_BR"; } return "pt"; case LANG_PUNJABI: switch (sub) { case SUBLANG_PUNJABI_INDIA: return "pa_IN"; /* Gurmukhi script */ case SUBLANG_PUNJABI_PAKISTAN: return "pa_PK"; /* Arabic script */ } return "pa"; case LANG_RHAETO_ROMANCE: return "rm_CH"; case LANG_ROMANIAN: switch (sub) { case SUBLANG_ROMANIAN_ROMANIA: return "ro_RO"; case SUBLANG_ROMANIAN_MOLDOVA: return "ro_MD"; } return "ro"; case LANG_RUSSIAN: switch (sub) { case SUBLANG_DEFAULT: return "ru_RU"; } return "ru"; /* Ambiguous: could be "ru_RU" or "ru_UA" or "ru_MD". */ case LANG_SAAMI: /* actually Northern Sami */ return "se_NO"; case LANG_SANSKRIT: return "sa_IN"; case LANG_SINDHI: switch (sub) { case SUBLANG_SINDHI_PAKISTAN: return "sd_PK"; case SUBLANG_SINDHI_AFGHANISTAN: return "sd_AF"; } return "sd"; case LANG_SINHALESE: return "si_LK"; case LANG_SLOVAK: return "sk_SK"; case LANG_SLOVENIAN: return "sl_SI"; case LANG_SOMALI: return "so_SO"; case LANG_SORBIAN: /* FIXME: Adjust this when such locales appear on Unix. */ return "wen_DE"; case LANG_SPANISH: switch (sub) { case SUBLANG_SPANISH: return "es_ES"; case SUBLANG_SPANISH_MEXICAN: return "es_MX"; case SUBLANG_SPANISH_MODERN: return "es_ES@modern"; /* not seen on Unix */ case SUBLANG_SPANISH_GUATEMALA: return "es_GT"; case SUBLANG_SPANISH_COSTA_RICA: return "es_CR"; case SUBLANG_SPANISH_PANAMA: return "es_PA"; case SUBLANG_SPANISH_DOMINICAN_REPUBLIC: return "es_DO"; case SUBLANG_SPANISH_VENEZUELA: return "es_VE"; case SUBLANG_SPANISH_COLOMBIA: return "es_CO"; case SUBLANG_SPANISH_PERU: return "es_PE"; case SUBLANG_SPANISH_ARGENTINA: return "es_AR"; case SUBLANG_SPANISH_ECUADOR: return "es_EC"; case SUBLANG_SPANISH_CHILE: return "es_CL"; case SUBLANG_SPANISH_URUGUAY: return "es_UY"; case SUBLANG_SPANISH_PARAGUAY: return "es_PY"; case SUBLANG_SPANISH_BOLIVIA: return "es_BO"; case SUBLANG_SPANISH_EL_SALVADOR: return "es_SV"; case SUBLANG_SPANISH_HONDURAS: return "es_HN"; case SUBLANG_SPANISH_NICARAGUA: return "es_NI"; case SUBLANG_SPANISH_PUERTO_RICO: return "es_PR"; } return "es"; case LANG_SUTU: return "bnt_TZ"; /* or "st_LS" or "nso_ZA"? */ case LANG_SWAHILI: return "sw_KE"; case LANG_SWEDISH: switch (sub) { case SUBLANG_DEFAULT: return "sv_SE"; case SUBLANG_SWEDISH_FINLAND: return "sv_FI"; } return "sv"; case LANG_SYRIAC: return "syr_TR"; /* An extinct language. */ case LANG_TAGALOG: return "tl_PH"; case LANG_TAJIK: return "tg_TJ"; case LANG_TAMAZIGHT: switch (sub) { /* FIXME: Adjust this when Tamazight locales appear on Unix. */ case SUBLANG_TAMAZIGHT_ARABIC: return "ber_MA@arabic"; case SUBLANG_TAMAZIGHT_ALGERIA_LATIN: return "ber_DZ@latin"; } return "ber_MA"; case LANG_TAMIL: switch (sub) { case SUBLANG_DEFAULT: return "ta_IN"; } return "ta"; /* Ambiguous: could be "ta_IN" or "ta_LK" or "ta_SG". */ case LANG_TATAR: return "tt_RU"; case LANG_TELUGU: return "te_IN"; case LANG_THAI: return "th_TH"; case LANG_TIBETAN: return "bo_CN"; case LANG_TIGRINYA: switch (sub) { case SUBLANG_TIGRINYA_ETHIOPIA: return "ti_ET"; case SUBLANG_TIGRINYA_ERITREA: return "ti_ER"; } return "ti"; case LANG_TSONGA: return "ts_ZA"; case LANG_TSWANA: return "tn_BW"; case LANG_TURKISH: return "tr_TR"; case LANG_TURKMEN: return "tk_TM"; case LANG_UKRAINIAN: return "uk_UA"; case LANG_URDU: switch (sub) { case SUBLANG_URDU_PAKISTAN: return "ur_PK"; case SUBLANG_URDU_INDIA: return "ur_IN"; } return "ur"; case LANG_UZBEK: switch (sub) { case SUBLANG_UZBEK_LATIN: return "uz_UZ"; case SUBLANG_UZBEK_CYRILLIC: return "uz_UZ@cyrillic"; } return "uz"; case LANG_VENDA: return "ve_ZA"; case LANG_VIETNAMESE: return "vi_VN"; case LANG_WELSH: return "cy_GB"; case LANG_XHOSA: return "xh_ZA"; case LANG_YI: return "sit_CN"; case LANG_YIDDISH: return "yi_IL"; case LANG_YORUBA: return "yo_NG"; case LANG_ZULU: return "zu_ZA"; default: return "C"; } } # endif #endif } const char * gl_locale_name (int category, const char *categoryname) { const char *retval; retval = gl_locale_name_posix (category, categoryname); if (retval != NULL) return retval; return gl_locale_name_default (); } enscript-1.6.5.90/intl/locale.alias0000644000175000017500000000510611606344060013744 00000000000000# Locale name alias data base. # Copyright (C) 1996-2001,2003,2007 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 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 # 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, # USA. # The format of this file is the same as for the corresponding file of # the X Window System, which normally can be found in # /usr/lib/X11/locale/locale.alias # A single line contains two fields: an alias and a substitution value. # All entries are case independent. # Note: This file is obsolete and is kept around for the time being for # backward compatibility. Nobody should rely on the names defined here. # Locales should always be specified by their full name. # Packages using this file: bokmal nb_NO.ISO-8859-1 bokmål nb_NO.ISO-8859-1 catalan ca_ES.ISO-8859-1 croatian hr_HR.ISO-8859-2 czech cs_CZ.ISO-8859-2 danish da_DK.ISO-8859-1 dansk da_DK.ISO-8859-1 deutsch de_DE.ISO-8859-1 dutch nl_NL.ISO-8859-1 eesti et_EE.ISO-8859-1 estonian et_EE.ISO-8859-1 finnish fi_FI.ISO-8859-1 français fr_FR.ISO-8859-1 french fr_FR.ISO-8859-1 galego gl_ES.ISO-8859-1 galician gl_ES.ISO-8859-1 german de_DE.ISO-8859-1 greek el_GR.ISO-8859-7 hebrew he_IL.ISO-8859-8 hrvatski hr_HR.ISO-8859-2 hungarian hu_HU.ISO-8859-2 icelandic is_IS.ISO-8859-1 italian it_IT.ISO-8859-1 japanese ja_JP.eucJP japanese.euc ja_JP.eucJP ja_JP ja_JP.eucJP ja_JP.ujis ja_JP.eucJP japanese.sjis ja_JP.SJIS korean ko_KR.eucKR korean.euc ko_KR.eucKR ko_KR ko_KR.eucKR lithuanian lt_LT.ISO-8859-13 no_NO nb_NO.ISO-8859-1 no_NO.ISO-8859-1 nb_NO.ISO-8859-1 norwegian nb_NO.ISO-8859-1 nynorsk nn_NO.ISO-8859-1 polish pl_PL.ISO-8859-2 portuguese pt_PT.ISO-8859-1 romanian ro_RO.ISO-8859-2 russian ru_RU.ISO-8859-5 slovak sk_SK.ISO-8859-2 slovene sl_SI.ISO-8859-2 slovenian sl_SI.ISO-8859-2 spanish es_ES.ISO-8859-1 swedish sv_SE.ISO-8859-1 thai th_TH.TIS-620 turkish tr_TR.ISO-8859-9 enscript-1.6.5.90/intl/dcigettext.c0000644000175000017500000013334511606344057014017 00000000000000/* Implementation of the internal dcigettext function. Copyright (C) 1995-1999, 2000-2007 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 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 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* Tell glibc's to provide a prototype for mempcpy(). This must come before because may include , and once has been included, it's too late. */ #ifndef _GNU_SOURCE # define _GNU_SOURCE 1 #endif #ifdef HAVE_CONFIG_H # include #endif /* NL_LOCALE_NAME does not work in glibc-2.4. Ignore it. */ #undef HAVE_NL_LOCALE_NAME #include #ifdef __GNUC__ # define alloca __builtin_alloca # define HAVE_ALLOCA 1 #else # ifdef _MSC_VER # include # define alloca _alloca # else # if defined HAVE_ALLOCA_H || defined _LIBC # include # else # ifdef _AIX #pragma alloca # else # ifndef alloca char *alloca (); # endif # endif # endif # endif #endif #include #ifndef errno extern int errno; #endif #ifndef __set_errno # define __set_errno(val) errno = (val) #endif #include #include #include #if defined HAVE_UNISTD_H || defined _LIBC # include #endif #include #ifdef _LIBC /* Guess whether integer division by zero raises signal SIGFPE. Set to 1 only if you know for sure. In case of doubt, set to 0. */ # if defined __alpha__ || defined __arm__ || defined __i386__ \ || defined __m68k__ || defined __s390__ # define INTDIV0_RAISES_SIGFPE 1 # else # define INTDIV0_RAISES_SIGFPE 0 # endif #endif #if !INTDIV0_RAISES_SIGFPE # include #endif #if defined HAVE_SYS_PARAM_H || defined _LIBC # include #endif #if !defined _LIBC # if HAVE_NL_LOCALE_NAME # include # endif # include "localcharset.h" #endif #include "gettextP.h" #include "plural-exp.h" #ifdef _LIBC # include #else # ifdef IN_LIBGLOCALE # include # endif # include "libgnuintl.h" #endif #include "hash-string.h" /* Handle multi-threaded applications. */ #ifdef _LIBC # include # define gl_rwlock_define_initialized __libc_rwlock_define_initialized # define gl_rwlock_rdlock __libc_rwlock_rdlock # define gl_rwlock_wrlock __libc_rwlock_wrlock # define gl_rwlock_unlock __libc_rwlock_unlock #else # include "lock.h" #endif /* Alignment of types. */ #if defined __GNUC__ && __GNUC__ >= 2 # define alignof(TYPE) __alignof__ (TYPE) #else # define alignof(TYPE) \ ((int) &((struct { char dummy1; TYPE dummy2; } *) 0)->dummy2) #endif /* Some compilers, like SunOS4 cc, don't have offsetof in . */ #ifndef offsetof # define offsetof(type,ident) ((size_t)&(((type*)0)->ident)) #endif /* @@ end of prolog @@ */ #ifdef _LIBC /* Rename the non ANSI C functions. This is required by the standard because some ANSI C functions will require linking with this object file and the name space must not be polluted. */ # define getcwd __getcwd # ifndef stpcpy # define stpcpy __stpcpy # endif # define tfind __tfind #else # if !defined HAVE_GETCWD char *getwd (); # define getcwd(buf, max) getwd (buf) # else # if VMS # define getcwd(buf, max) (getcwd) (buf, max, 0) # else char *getcwd (); # endif # endif # ifndef HAVE_STPCPY static char *stpcpy (char *dest, const char *src); # endif # ifndef HAVE_MEMPCPY static void *mempcpy (void *dest, const void *src, size_t n); # endif #endif /* Use a replacement if the system does not provide the `tsearch' function family. */ #if HAVE_TSEARCH || defined _LIBC # include #else # define tsearch libintl_tsearch # define tfind libintl_tfind # define tdelete libintl_tdelete # define twalk libintl_twalk # include "tsearch.h" #endif #ifdef _LIBC # define tsearch __tsearch #endif /* Amount to increase buffer size by in each try. */ #define PATH_INCR 32 /* The following is from pathmax.h. */ /* 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 /* Pathname support. ISSLASH(C) tests whether C is a directory separator character. IS_ABSOLUTE_PATH(P) tests whether P is an absolute path. If it is not, it may be concatenated to a directory pathname. IS_PATH_WITH_DIR(P) tests whether P contains a directory specification. */ #if defined _WIN32 || defined __WIN32__ || defined __CYGWIN__ || defined __EMX__ || defined __DJGPP__ /* Win32, Cygwin, OS/2, DOS */ # define ISSLASH(C) ((C) == '/' || (C) == '\\') # define HAS_DEVICE(P) \ ((((P)[0] >= 'A' && (P)[0] <= 'Z') || ((P)[0] >= 'a' && (P)[0] <= 'z')) \ && (P)[1] == ':') # define IS_ABSOLUTE_PATH(P) (ISSLASH ((P)[0]) || HAS_DEVICE (P)) # define IS_PATH_WITH_DIR(P) \ (strchr (P, '/') != NULL || strchr (P, '\\') != NULL || HAS_DEVICE (P)) #else /* Unix */ # define ISSLASH(C) ((C) == '/') # define IS_ABSOLUTE_PATH(P) ISSLASH ((P)[0]) # define IS_PATH_WITH_DIR(P) (strchr (P, '/') != NULL) #endif /* Whether to support different locales in different threads. */ #if defined _LIBC || HAVE_NL_LOCALE_NAME || (HAVE_STRUCT___LOCALE_STRUCT___NAMES && defined USE_IN_GETTEXT_TESTS) || defined IN_LIBGLOCALE # define HAVE_PER_THREAD_LOCALE #endif /* This is the type used for the search tree where known translations are stored. */ struct known_translation_t { /* Domain in which to search. */ const char *domainname; /* The category. */ int category; #ifdef HAVE_PER_THREAD_LOCALE /* Name of the relevant locale category, or "" for the global locale. */ const char *localename; #endif #ifdef IN_LIBGLOCALE /* The character encoding. */ const char *encoding; #endif /* State of the catalog counter at the point the string was found. */ int counter; /* Catalog where the string was found. */ struct loaded_l10nfile *domain; /* And finally the translation. */ const char *translation; size_t translation_length; /* Pointer to the string in question. */ char msgid[ZERO]; }; gl_rwlock_define_initialized (static, tree_lock) /* Root of the search tree with known translations. */ static void *root; /* Function to compare two entries in the table of known translations. */ static int transcmp (const void *p1, const void *p2) { const struct known_translation_t *s1; const struct known_translation_t *s2; int result; s1 = (const struct known_translation_t *) p1; s2 = (const struct known_translation_t *) p2; result = strcmp (s1->msgid, s2->msgid); if (result == 0) { result = strcmp (s1->domainname, s2->domainname); if (result == 0) { #ifdef HAVE_PER_THREAD_LOCALE result = strcmp (s1->localename, s2->localename); if (result == 0) #endif { #ifdef IN_LIBGLOCALE result = strcmp (s1->encoding, s2->encoding); if (result == 0) #endif /* We compare the category last (though this is the cheapest operation) since it is hopefully always the same (namely LC_MESSAGES). */ result = s1->category - s2->category; } } } return result; } /* Name of the default domain used for gettext(3) prior any call to textdomain(3). The default value for this is "messages". */ const char _nl_default_default_domain[] attribute_hidden = "messages"; #ifndef IN_LIBGLOCALE /* Value used as the default domain for gettext(3). */ const char *_nl_current_default_domain attribute_hidden = _nl_default_default_domain; #endif /* Contains the default location of the message catalogs. */ #if defined __EMX__ extern const char _nl_default_dirname[]; #else # ifdef _LIBC extern const char _nl_default_dirname[]; libc_hidden_proto (_nl_default_dirname) # endif const char _nl_default_dirname[] = LOCALEDIR; # ifdef _LIBC libc_hidden_data_def (_nl_default_dirname) # endif #endif #ifndef IN_LIBGLOCALE /* List with bindings of specific domains created by bindtextdomain() calls. */ struct binding *_nl_domain_bindings; #endif /* Prototypes for local functions. */ static char *plural_lookup (struct loaded_l10nfile *domain, unsigned long int n, const char *translation, size_t translation_len) internal_function; #ifdef IN_LIBGLOCALE static const char *guess_category_value (int category, const char *categoryname, const char *localename) internal_function; #else static const char *guess_category_value (int category, const char *categoryname) internal_function; #endif #ifdef _LIBC # include "../locale/localeinfo.h" # define category_to_name(category) \ _nl_category_names.str + _nl_category_name_idxs[category] #else static const char *category_to_name (int category) internal_function; #endif #if (defined _LIBC || HAVE_ICONV) && !defined IN_LIBGLOCALE static const char *get_output_charset (struct binding *domainbinding) internal_function; #endif /* For those loosing systems which don't have `alloca' we have to add some additional code emulating it. */ #ifdef HAVE_ALLOCA /* Nothing has to be done. */ # define freea(p) /* nothing */ # define ADD_BLOCK(list, address) /* nothing */ # define FREE_BLOCKS(list) /* nothing */ #else struct block_list { void *address; struct block_list *next; }; # define ADD_BLOCK(list, addr) \ do { \ struct block_list *newp = (struct block_list *) malloc (sizeof (*newp)); \ /* If we cannot get a free block we cannot add the new element to \ the list. */ \ if (newp != NULL) { \ newp->address = (addr); \ newp->next = (list); \ (list) = newp; \ } \ } while (0) # define FREE_BLOCKS(list) \ do { \ while (list != NULL) { \ struct block_list *old = list; \ list = list->next; \ free (old->address); \ free (old); \ } \ } while (0) # undef alloca # define alloca(size) (malloc (size)) # define freea(p) free (p) #endif /* have alloca */ #ifdef _LIBC /* List of blocks allocated for translations. */ typedef struct transmem_list { struct transmem_list *next; char data[ZERO]; } transmem_block_t; static struct transmem_list *transmem_list; #else typedef unsigned char transmem_block_t; #endif /* Names for the libintl functions are a problem. They must not clash with existing names and they should follow ANSI C. But this source code is also used in GNU C Library where the names have a __ prefix. So we have to make a difference here. */ #ifdef _LIBC # define DCIGETTEXT __dcigettext #else # define DCIGETTEXT libintl_dcigettext #endif /* Lock variable to protect the global data in the gettext implementation. */ gl_rwlock_define_initialized (, _nl_state_lock attribute_hidden) /* Checking whether the binaries runs SUID must be done and glibc provides easier methods therefore we make a difference here. */ #ifdef _LIBC # define ENABLE_SECURE __libc_enable_secure # define DETERMINE_SECURE #else # ifndef HAVE_GETUID # define getuid() 0 # endif # ifndef HAVE_GETGID # define getgid() 0 # endif # ifndef HAVE_GETEUID # define geteuid() getuid() # endif # ifndef HAVE_GETEGID # define getegid() getgid() # endif static int enable_secure; # define ENABLE_SECURE (enable_secure == 1) # define DETERMINE_SECURE \ if (enable_secure == 0) \ { \ if (getuid () != geteuid () || getgid () != getegid ()) \ enable_secure = 1; \ else \ enable_secure = -1; \ } #endif /* Get the function to evaluate the plural expression. */ #include "eval-plural.h" /* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY locale and, if PLURAL is nonzero, search over string depending on the plural form determined by N. */ #ifdef IN_LIBGLOCALE char * gl_dcigettext (const char *domainname, const char *msgid1, const char *msgid2, int plural, unsigned long int n, int category, const char *localename, const char *encoding) #else char * DCIGETTEXT (const char *domainname, const char *msgid1, const char *msgid2, int plural, unsigned long int n, int category) #endif { #ifndef HAVE_ALLOCA struct block_list *block_list = NULL; #endif struct loaded_l10nfile *domain; struct binding *binding; const char *categoryname; const char *categoryvalue; const char *dirname; char *xdomainname; char *single_locale; char *retval; size_t retlen; int saved_errno; struct known_translation_t *search; struct known_translation_t **foundp = NULL; size_t msgid_len; #if defined HAVE_PER_THREAD_LOCALE && !defined IN_LIBGLOCALE const char *localename; #endif size_t domainname_len; /* If no real MSGID is given return NULL. */ if (msgid1 == NULL) return NULL; #ifdef _LIBC if (category < 0 || category >= __LC_LAST || category == LC_ALL) /* Bogus. */ return (plural == 0 ? (char *) msgid1 /* Use the Germanic plural rule. */ : n == 1 ? (char *) msgid1 : (char *) msgid2); #endif /* Preserve the `errno' value. */ saved_errno = errno; gl_rwlock_rdlock (_nl_state_lock); /* If DOMAINNAME is NULL, we are interested in the default domain. If CATEGORY is not LC_MESSAGES this might not make much sense but the definition left this undefined. */ if (domainname == NULL) domainname = _nl_current_default_domain; /* OS/2 specific: backward compatibility with older libintl versions */ #ifdef LC_MESSAGES_COMPAT if (category == LC_MESSAGES_COMPAT) category = LC_MESSAGES; #endif msgid_len = strlen (msgid1) + 1; /* Try to find the translation among those which we found at some time. */ search = (struct known_translation_t *) alloca (offsetof (struct known_translation_t, msgid) + msgid_len); memcpy (search->msgid, msgid1, msgid_len); search->domainname = domainname; search->category = category; #ifdef HAVE_PER_THREAD_LOCALE # ifndef IN_LIBGLOCALE # ifdef _LIBC localename = __current_locale_name (category); # else # if HAVE_NL_LOCALE_NAME /* NL_LOCALE_NAME is public glibc API introduced in glibc-2.4. */ localename = nl_langinfo (NL_LOCALE_NAME (category)); # else # if HAVE_STRUCT___LOCALE_STRUCT___NAMES && defined USE_IN_GETTEXT_TESTS /* The __names field is not public glibc API and must therefore not be used in code that is installed in public locations. */ { locale_t thread_locale = uselocale (NULL); if (thread_locale != LC_GLOBAL_LOCALE) localename = thread_locale->__names[category]; else localename = ""; } # endif # endif # endif # endif search->localename = localename; # ifdef IN_LIBGLOCALE search->encoding = encoding; # endif /* Since tfind/tsearch manage a balanced tree, concurrent tfind and tsearch calls can be fatal. */ gl_rwlock_rdlock (tree_lock); foundp = (struct known_translation_t **) tfind (search, &root, transcmp); gl_rwlock_unlock (tree_lock); freea (search); if (foundp != NULL && (*foundp)->counter == _nl_msg_cat_cntr) { /* Now deal with plural. */ if (plural) retval = plural_lookup ((*foundp)->domain, n, (*foundp)->translation, (*foundp)->translation_length); else retval = (char *) (*foundp)->translation; gl_rwlock_unlock (_nl_state_lock); __set_errno (saved_errno); return retval; } #endif /* See whether this is a SUID binary or not. */ DETERMINE_SECURE; /* First find matching binding. */ #ifdef IN_LIBGLOCALE /* We can use a trivial binding, since _nl_find_msg will ignore it anyway, and _nl_load_domain and _nl_find_domain just pass it through. */ binding = NULL; dirname = bindtextdomain (domainname, NULL); #else for (binding = _nl_domain_bindings; binding != NULL; binding = binding->next) { int compare = strcmp (domainname, binding->domainname); if (compare == 0) /* We found it! */ break; if (compare < 0) { /* It is not in the list. */ binding = NULL; break; } } if (binding == NULL) dirname = _nl_default_dirname; else { dirname = binding->dirname; #endif if (!IS_ABSOLUTE_PATH (dirname)) { /* We have a relative path. Make it absolute now. */ size_t dirname_len = strlen (dirname) + 1; size_t path_max; char *resolved_dirname; char *ret; path_max = (unsigned int) PATH_MAX; path_max += 2; /* The getcwd docs say to do this. */ for (;;) { resolved_dirname = (char *) alloca (path_max + dirname_len); ADD_BLOCK (block_list, tmp_dirname); __set_errno (0); ret = getcwd (resolved_dirname, path_max); if (ret != NULL || errno != ERANGE) break; path_max += path_max / 2; path_max += PATH_INCR; } if (ret == NULL) /* We cannot get the current working directory. Don't signal an error but simply return the default string. */ goto return_untranslated; stpcpy (stpcpy (strchr (resolved_dirname, '\0'), "/"), dirname); dirname = resolved_dirname; } #ifndef IN_LIBGLOCALE } #endif /* Now determine the symbolic name of CATEGORY and its value. */ categoryname = category_to_name (category); #ifdef IN_LIBGLOCALE categoryvalue = guess_category_value (category, categoryname, localename); #else categoryvalue = guess_category_value (category, categoryname); #endif domainname_len = strlen (domainname); xdomainname = (char *) alloca (strlen (categoryname) + domainname_len + 5); ADD_BLOCK (block_list, xdomainname); stpcpy ((char *) mempcpy (stpcpy (stpcpy (xdomainname, categoryname), "/"), domainname, domainname_len), ".mo"); /* Creating working area. */ single_locale = (char *) alloca (strlen (categoryvalue) + 1); ADD_BLOCK (block_list, single_locale); /* Search for the given string. This is a loop because we perhaps got an ordered list of languages to consider for the translation. */ while (1) { /* Make CATEGORYVALUE point to the next element of the list. */ while (categoryvalue[0] != '\0' && categoryvalue[0] == ':') ++categoryvalue; if (categoryvalue[0] == '\0') { /* The whole contents of CATEGORYVALUE has been searched but no valid entry has been found. We solve this situation by implicitly appending a "C" entry, i.e. no translation will take place. */ single_locale[0] = 'C'; single_locale[1] = '\0'; } else { char *cp = single_locale; while (categoryvalue[0] != '\0' && categoryvalue[0] != ':') *cp++ = *categoryvalue++; *cp = '\0'; /* When this is a SUID binary we must not allow accessing files outside the dedicated directories. */ if (ENABLE_SECURE && IS_PATH_WITH_DIR (single_locale)) /* Ingore this entry. */ continue; } /* If the current locale value is C (or POSIX) we don't load a domain. Return the MSGID. */ if (strcmp (single_locale, "C") == 0 || strcmp (single_locale, "POSIX") == 0) break; /* Find structure describing the message catalog matching the DOMAINNAME and CATEGORY. */ domain = _nl_find_domain (dirname, single_locale, xdomainname, binding); if (domain != NULL) { #if defined IN_LIBGLOCALE retval = _nl_find_msg (domain, binding, encoding, msgid1, &retlen); #else retval = _nl_find_msg (domain, binding, msgid1, 1, &retlen); #endif if (retval == NULL) { int cnt; for (cnt = 0; domain->successor[cnt] != NULL; ++cnt) { #if defined IN_LIBGLOCALE retval = _nl_find_msg (domain->successor[cnt], binding, encoding, msgid1, &retlen); #else retval = _nl_find_msg (domain->successor[cnt], binding, msgid1, 1, &retlen); #endif if (retval != NULL) { domain = domain->successor[cnt]; break; } } } /* Returning -1 means that some resource problem exists (likely memory) and that the strings could not be converted. Return the original strings. */ if (__builtin_expect (retval == (char *) -1, 0)) break; if (retval != NULL) { /* Found the translation of MSGID1 in domain DOMAIN: starting at RETVAL, RETLEN bytes. */ FREE_BLOCKS (block_list); if (foundp == NULL) { /* Create a new entry and add it to the search tree. */ size_t size; struct known_translation_t *newp; size = offsetof (struct known_translation_t, msgid) + msgid_len + domainname_len + 1; #ifdef HAVE_PER_THREAD_LOCALE size += strlen (localename) + 1; #endif newp = (struct known_translation_t *) malloc (size); if (newp != NULL) { char *new_domainname; #ifdef HAVE_PER_THREAD_LOCALE char *new_localename; #endif new_domainname = (char *) mempcpy (newp->msgid, msgid1, msgid_len); memcpy (new_domainname, domainname, domainname_len + 1); #ifdef HAVE_PER_THREAD_LOCALE new_localename = new_domainname + domainname_len + 1; strcpy (new_localename, localename); #endif newp->domainname = new_domainname; newp->category = category; #ifdef HAVE_PER_THREAD_LOCALE newp->localename = new_localename; #endif #ifdef IN_LIBGLOCALE newp->encoding = encoding; #endif newp->counter = _nl_msg_cat_cntr; newp->domain = domain; newp->translation = retval; newp->translation_length = retlen; gl_rwlock_wrlock (tree_lock); /* Insert the entry in the search tree. */ foundp = (struct known_translation_t **) tsearch (newp, &root, transcmp); gl_rwlock_unlock (tree_lock); if (foundp == NULL || __builtin_expect (*foundp != newp, 0)) /* The insert failed. */ free (newp); } } else { /* We can update the existing entry. */ (*foundp)->counter = _nl_msg_cat_cntr; (*foundp)->domain = domain; (*foundp)->translation = retval; (*foundp)->translation_length = retlen; } __set_errno (saved_errno); /* Now deal with plural. */ if (plural) retval = plural_lookup (domain, n, retval, retlen); gl_rwlock_unlock (_nl_state_lock); return retval; } } } return_untranslated: /* Return the untranslated MSGID. */ FREE_BLOCKS (block_list); gl_rwlock_unlock (_nl_state_lock); #ifndef _LIBC if (!ENABLE_SECURE) { extern void _nl_log_untranslated (const char *logfilename, const char *domainname, const char *msgid1, const char *msgid2, int plural); const char *logfilename = getenv ("GETTEXT_LOG_UNTRANSLATED"); if (logfilename != NULL && logfilename[0] != '\0') _nl_log_untranslated (logfilename, domainname, msgid1, msgid2, plural); } #endif __set_errno (saved_errno); return (plural == 0 ? (char *) msgid1 /* Use the Germanic plural rule. */ : n == 1 ? (char *) msgid1 : (char *) msgid2); } /* Look up the translation of msgid within DOMAIN_FILE and DOMAINBINDING. Return it if found. Return NULL if not found or in case of a conversion failure (problem in the particular message catalog). Return (char *) -1 in case of a memory allocation failure during conversion (only if ENCODING != NULL resp. CONVERT == true). */ char * internal_function #ifdef IN_LIBGLOCALE _nl_find_msg (struct loaded_l10nfile *domain_file, struct binding *domainbinding, const char *encoding, const char *msgid, size_t *lengthp) #else _nl_find_msg (struct loaded_l10nfile *domain_file, struct binding *domainbinding, const char *msgid, int convert, size_t *lengthp) #endif { struct loaded_domain *domain; nls_uint32 nstrings; size_t act; char *result; size_t resultlen; if (domain_file->decided <= 0) _nl_load_domain (domain_file, domainbinding); if (domain_file->data == NULL) return NULL; domain = (struct loaded_domain *) domain_file->data; nstrings = domain->nstrings; /* Locate the MSGID and its translation. */ if (domain->hash_tab != NULL) { /* Use the hashing table. */ nls_uint32 len = strlen (msgid); nls_uint32 hash_val = __hash_string (msgid); nls_uint32 idx = hash_val % domain->hash_size; nls_uint32 incr = 1 + (hash_val % (domain->hash_size - 2)); while (1) { nls_uint32 nstr = W (domain->must_swap_hash_tab, domain->hash_tab[idx]); if (nstr == 0) /* Hash table entry is empty. */ return NULL; nstr--; /* Compare msgid with the original string at index nstr. We compare the lengths with >=, not ==, because plural entries are represented by strings with an embedded NUL. */ if (nstr < nstrings ? W (domain->must_swap, domain->orig_tab[nstr].length) >= len && (strcmp (msgid, domain->data + W (domain->must_swap, domain->orig_tab[nstr].offset)) == 0) : domain->orig_sysdep_tab[nstr - nstrings].length > len && (strcmp (msgid, domain->orig_sysdep_tab[nstr - nstrings].pointer) == 0)) { act = nstr; goto found; } if (idx >= domain->hash_size - incr) idx -= domain->hash_size - incr; else idx += incr; } /* NOTREACHED */ } else { /* Try the default method: binary search in the sorted array of messages. */ size_t top, bottom; bottom = 0; top = nstrings; while (bottom < top) { int cmp_val; act = (bottom + top) / 2; cmp_val = strcmp (msgid, (domain->data + W (domain->must_swap, domain->orig_tab[act].offset))); if (cmp_val < 0) top = act; else if (cmp_val > 0) bottom = act + 1; else goto found; } /* No translation was found. */ return NULL; } found: /* The translation was found at index ACT. If we have to convert the string to use a different character set, this is the time. */ if (act < nstrings) { result = (char *) (domain->data + W (domain->must_swap, domain->trans_tab[act].offset)); resultlen = W (domain->must_swap, domain->trans_tab[act].length) + 1; } else { result = (char *) domain->trans_sysdep_tab[act - nstrings].pointer; resultlen = domain->trans_sysdep_tab[act - nstrings].length; } #if defined _LIBC || HAVE_ICONV # ifdef IN_LIBGLOCALE if (encoding != NULL) # else if (convert) # endif { /* We are supposed to do a conversion. */ # ifndef IN_LIBGLOCALE const char *encoding = get_output_charset (domainbinding); # endif size_t nconversions; struct converted_domain *convd; size_t i; /* Protect against reallocation of the table. */ gl_rwlock_rdlock (domain->conversions_lock); /* Search whether a table with converted translations for this encoding has already been allocated. */ nconversions = domain->nconversions; convd = NULL; for (i = nconversions; i > 0; ) { i--; if (strcmp (domain->conversions[i].encoding, encoding) == 0) { convd = &domain->conversions[i]; break; } } gl_rwlock_unlock (domain->conversions_lock); if (convd == NULL) { /* We have to allocate a new conversions table. */ gl_rwlock_wrlock (domain->conversions_lock); /* Maybe in the meantime somebody added the translation. Recheck. */ for (i = nconversions; i > 0; ) { i--; if (strcmp (domain->conversions[i].encoding, encoding) == 0) { convd = &domain->conversions[i]; goto found_convd; } } { /* Allocate a table for the converted translations for this encoding. */ struct converted_domain *new_conversions = (struct converted_domain *) (domain->conversions != NULL ? realloc (domain->conversions, (nconversions + 1) * sizeof (struct converted_domain)) : malloc ((nconversions + 1) * sizeof (struct converted_domain))); if (__builtin_expect (new_conversions == NULL, 0)) { /* Nothing we can do, no more memory. We cannot use the translation because it might be encoded incorrectly. */ unlock_fail: gl_rwlock_unlock (domain->conversions_lock); return (char *) -1; } domain->conversions = new_conversions; /* Copy the 'encoding' string to permanent storage. */ encoding = strdup (encoding); if (__builtin_expect (encoding == NULL, 0)) /* Nothing we can do, no more memory. We cannot use the translation because it might be encoded incorrectly. */ goto unlock_fail; convd = &new_conversions[nconversions]; convd->encoding = encoding; /* Find out about the character set the file is encoded with. This can be found (in textual form) in the entry "". If this entry does not exist or if this does not contain the 'charset=' information, we will assume the charset matches the one the current locale and we don't have to perform any conversion. */ # ifdef _LIBC convd->conv = (__gconv_t) -1; # else # if HAVE_ICONV convd->conv = (iconv_t) -1; # endif # endif { char *nullentry; size_t nullentrylen; /* Get the header entry. This is a recursion, but it doesn't reallocate domain->conversions because we pass encoding = NULL or convert = 0, respectively. */ nullentry = # ifdef IN_LIBGLOCALE _nl_find_msg (domain_file, domainbinding, NULL, "", &nullentrylen); # else _nl_find_msg (domain_file, domainbinding, "", 0, &nullentrylen); # endif if (nullentry != NULL) { const char *charsetstr; charsetstr = strstr (nullentry, "charset="); if (charsetstr != NULL) { size_t len; char *charset; const char *outcharset; charsetstr += strlen ("charset="); len = strcspn (charsetstr, " \t\n"); charset = (char *) alloca (len + 1); # if defined _LIBC || HAVE_MEMPCPY *((char *) mempcpy (charset, charsetstr, len)) = '\0'; # else memcpy (charset, charsetstr, len); charset[len] = '\0'; # endif outcharset = encoding; # ifdef _LIBC /* We always want to use transliteration. */ outcharset = norm_add_slashes (outcharset, "TRANSLIT"); charset = norm_add_slashes (charset, ""); int r = __gconv_open (outcharset, charset, &convd->conv, GCONV_AVOID_NOCONV); if (__builtin_expect (r != __GCONV_OK, 0)) { /* If the output encoding is the same there is nothing to do. Otherwise do not use the translation at all. */ if (__builtin_expect (r != __GCONV_NULCONV, 1)) { gl_rwlock_unlock (domain->conversions_lock); free ((char *) encoding); return NULL; } convd->conv = (__gconv_t) -1; } # else # if HAVE_ICONV /* When using GNU libc >= 2.2 or GNU libiconv >= 1.5, we want to use transliteration. */ # if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2) || __GLIBC__ > 2 \ || _LIBICONV_VERSION >= 0x0105 if (strchr (outcharset, '/') == NULL) { char *tmp; len = strlen (outcharset); tmp = (char *) alloca (len + 10 + 1); memcpy (tmp, outcharset, len); memcpy (tmp + len, "//TRANSLIT", 10 + 1); outcharset = tmp; convd->conv = iconv_open (outcharset, charset); freea (outcharset); } else # endif convd->conv = iconv_open (outcharset, charset); # endif # endif freea (charset); } } } convd->conv_tab = NULL; /* Here domain->conversions is still == new_conversions. */ domain->nconversions++; } found_convd: gl_rwlock_unlock (domain->conversions_lock); } if ( # ifdef _LIBC convd->conv != (__gconv_t) -1 # else # if HAVE_ICONV convd->conv != (iconv_t) -1 # endif # endif ) { /* We are supposed to do a conversion. First allocate an appropriate table with the same structure as the table of translations in the file, where we can put the pointers to the converted strings in. There is a slight complication with plural entries. They are represented by consecutive NUL terminated strings. We handle this case by converting RESULTLEN bytes, including NULs. */ if (convd->conv_tab == NULL && ((convd->conv_tab = (char **) calloc (nstrings + domain->n_sysdep_strings, sizeof (char *))) == NULL)) /* Mark that we didn't succeed allocating a table. */ convd->conv_tab = (char **) -1; if (__builtin_expect (convd->conv_tab == (char **) -1, 0)) /* Nothing we can do, no more memory. We cannot use the translation because it might be encoded incorrectly. */ return (char *) -1; if (convd->conv_tab[act] == NULL) { /* We haven't used this string so far, so it is not translated yet. Do this now. */ /* We use a bit more efficient memory handling. We allocate always larger blocks which get used over time. This is faster than many small allocations. */ __libc_lock_define_initialized (static, lock) # define INITIAL_BLOCK_SIZE 4080 static unsigned char *freemem; static size_t freemem_size; const unsigned char *inbuf; unsigned char *outbuf; int malloc_count; # ifndef _LIBC transmem_block_t *transmem_list = NULL; # endif __libc_lock_lock (lock); inbuf = (const unsigned char *) result; outbuf = freemem + sizeof (size_t); malloc_count = 0; while (1) { transmem_block_t *newmem; # ifdef _LIBC size_t non_reversible; int res; if (freemem_size < sizeof (size_t)) goto resize_freemem; res = __gconv (convd->conv, &inbuf, inbuf + resultlen, &outbuf, outbuf + freemem_size - sizeof (size_t), &non_reversible); if (res == __GCONV_OK || res == __GCONV_EMPTY_INPUT) break; if (res != __GCONV_FULL_OUTPUT) { /* We should not use the translation at all, it is incorrectly encoded. */ __libc_lock_unlock (lock); return NULL; } inbuf = (const unsigned char *) result; # else # if HAVE_ICONV const char *inptr = (const char *) inbuf; size_t inleft = resultlen; char *outptr = (char *) outbuf; size_t outleft; if (freemem_size < sizeof (size_t)) goto resize_freemem; outleft = freemem_size - sizeof (size_t); if (iconv (convd->conv, (ICONV_CONST char **) &inptr, &inleft, &outptr, &outleft) != (size_t) (-1)) { outbuf = (unsigned char *) outptr; break; } if (errno != E2BIG) { __libc_lock_unlock (lock); return NULL; } # endif # endif resize_freemem: /* We must allocate a new buffer or resize the old one. */ if (malloc_count > 0) { ++malloc_count; freemem_size = malloc_count * INITIAL_BLOCK_SIZE; newmem = (transmem_block_t *) realloc (transmem_list, freemem_size); # ifdef _LIBC if (newmem != NULL) transmem_list = transmem_list->next; else { struct transmem_list *old = transmem_list; transmem_list = transmem_list->next; free (old); } # endif } else { malloc_count = 1; freemem_size = INITIAL_BLOCK_SIZE; newmem = (transmem_block_t *) malloc (freemem_size); } if (__builtin_expect (newmem == NULL, 0)) { freemem = NULL; freemem_size = 0; __libc_lock_unlock (lock); return (char *) -1; } # ifdef _LIBC /* Add the block to the list of blocks we have to free at some point. */ newmem->next = transmem_list; transmem_list = newmem; freemem = (unsigned char *) newmem->data; freemem_size -= offsetof (struct transmem_list, data); # else transmem_list = newmem; freemem = newmem; # endif outbuf = freemem + sizeof (size_t); } /* We have now in our buffer a converted string. Put this into the table of conversions. */ *(size_t *) freemem = outbuf - freemem - sizeof (size_t); convd->conv_tab[act] = (char *) freemem; /* Shrink freemem, but keep it aligned. */ freemem_size -= outbuf - freemem; freemem = outbuf; freemem += freemem_size & (alignof (size_t) - 1); freemem_size = freemem_size & ~ (alignof (size_t) - 1); __libc_lock_unlock (lock); } /* Now convd->conv_tab[act] contains the translation of all the plural variants. */ result = convd->conv_tab[act] + sizeof (size_t); resultlen = *(size_t *) convd->conv_tab[act]; } } /* The result string is converted. */ #endif /* _LIBC || HAVE_ICONV */ *lengthp = resultlen; return result; } /* Look up a plural variant. */ static char * internal_function plural_lookup (struct loaded_l10nfile *domain, unsigned long int n, const char *translation, size_t translation_len) { struct loaded_domain *domaindata = (struct loaded_domain *) domain->data; unsigned long int index; const char *p; index = plural_eval (domaindata->plural, n); if (index >= domaindata->nplurals) /* This should never happen. It means the plural expression and the given maximum value do not match. */ index = 0; /* Skip INDEX strings at TRANSLATION. */ p = translation; while (index-- > 0) { #ifdef _LIBC p = __rawmemchr (p, '\0'); #else p = strchr (p, '\0'); #endif /* And skip over the NUL byte. */ p++; if (p >= translation + translation_len) /* This should never happen. It means the plural expression evaluated to a value larger than the number of variants available for MSGID1. */ return (char *) translation; } return (char *) p; } #ifndef _LIBC /* Return string representation of locale CATEGORY. */ static const char * internal_function category_to_name (int category) { const char *retval; switch (category) { #ifdef LC_COLLATE case LC_COLLATE: retval = "LC_COLLATE"; break; #endif #ifdef LC_CTYPE case LC_CTYPE: retval = "LC_CTYPE"; break; #endif #ifdef LC_MONETARY case LC_MONETARY: retval = "LC_MONETARY"; break; #endif #ifdef LC_NUMERIC case LC_NUMERIC: retval = "LC_NUMERIC"; break; #endif #ifdef LC_TIME case LC_TIME: retval = "LC_TIME"; break; #endif #ifdef LC_MESSAGES case LC_MESSAGES: retval = "LC_MESSAGES"; break; #endif #ifdef LC_RESPONSE case LC_RESPONSE: retval = "LC_RESPONSE"; break; #endif #ifdef LC_ALL case LC_ALL: /* This might not make sense but is perhaps better than any other value. */ retval = "LC_ALL"; break; #endif default: /* If you have a better idea for a default value let me know. */ retval = "LC_XXX"; } return retval; } #endif /* Guess value of current locale from value of the environment variables or system-dependent defaults. */ static const char * internal_function #ifdef IN_LIBGLOCALE guess_category_value (int category, const char *categoryname, const char *locale) #else guess_category_value (int category, const char *categoryname) #endif { const char *language; #ifndef IN_LIBGLOCALE const char *locale; # ifndef _LIBC const char *language_default; int locale_defaulted; # endif #endif /* We use the settings in the following order: 1. The value of the environment variable 'LANGUAGE'. This is a GNU extension. Its value can be a colon-separated list of locale names. 2. The value of the environment variable 'LC_ALL', 'LC_xxx', or 'LANG'. More precisely, the first among these that is set to a non-empty value. This is how POSIX specifies it. The value is a single locale name. 3. A system-dependent preference list of languages. Its value can be a colon-separated list of locale names. 4. A system-dependent default locale name. This way: - System-dependent settings can be overridden by environment variables. - If the system provides both a list of languages and a default locale, the former is used. */ #ifndef IN_LIBGLOCALE /* Fetch the locale name, through the POSIX method of looking to `LC_ALL', `LC_xxx', and `LANG'. On some systems this can be done by the `setlocale' function itself. */ # ifdef _LIBC locale = __current_locale_name (category); # else # if HAVE_STRUCT___LOCALE_STRUCT___NAMES && defined USE_IN_GETTEXT_TESTS /* The __names field is not public glibc API and must therefore not be used in code that is installed in public locations. */ locale_t thread_locale = uselocale (NULL); if (thread_locale != LC_GLOBAL_LOCALE) { locale = thread_locale->__names[category]; locale_defaulted = 0; } else # endif { locale = _nl_locale_name_posix (category, categoryname); locale_defaulted = 0; if (locale == NULL) { locale = _nl_locale_name_default (); locale_defaulted = 1; } } # endif #endif /* Ignore LANGUAGE and its system-dependent analogon if the locale is set to "C" because 1. "C" locale usually uses the ASCII encoding, and most international messages use non-ASCII characters. These characters get displayed as question marks (if using glibc's iconv()) or as invalid 8-bit characters (because other iconv()s refuse to convert most non-ASCII characters to ASCII). In any case, the output is ugly. 2. The precise output of some programs in the "C" locale is specified by POSIX and should not depend on environment variables like "LANGUAGE" or system-dependent information. We allow such programs to use gettext(). */ if (strcmp (locale, "C") == 0) return locale; /* The highest priority value is the value of the 'LANGUAGE' environment variable. */ language = getenv ("LANGUAGE"); if (language != NULL && language[0] != '\0') return language; #if !defined IN_LIBGLOCALE && !defined _LIBC /* The next priority value is the locale name, if not defaulted. */ if (locale_defaulted) { /* The next priority value is the default language preferences list. */ language_default = _nl_language_preferences_default (); if (language_default != NULL) return language_default; } /* The least priority value is the locale name, if defaulted. */ #endif return locale; } #if (defined _LIBC || HAVE_ICONV) && !defined IN_LIBGLOCALE /* Returns the output charset. */ static const char * internal_function get_output_charset (struct binding *domainbinding) { /* The output charset should normally be determined by the locale. But sometimes the locale is not used or not correctly set up, so we provide a possibility for the user to override this: the OUTPUT_CHARSET environment variable. Moreover, the value specified through bind_textdomain_codeset overrides both. */ if (domainbinding != NULL && domainbinding->codeset != NULL) return domainbinding->codeset; else { /* For speed reasons, we look at the value of OUTPUT_CHARSET only once. This is a user variable that is not supposed to change during a program run. */ static char *output_charset_cache; static int output_charset_cached; if (!output_charset_cached) { const char *value = getenv ("OUTPUT_CHARSET"); if (value != NULL && value[0] != '\0') { size_t len = strlen (value) + 1; char *value_copy = (char *) malloc (len); if (value_copy != NULL) memcpy (value_copy, value, len); output_charset_cache = value_copy; } output_charset_cached = 1; } if (output_charset_cache != NULL) return output_charset_cache; else { # ifdef _LIBC return _NL_CURRENT (LC_CTYPE, CODESET); # else # if HAVE_ICONV return locale_charset (); # endif # endif } } } #endif /* @@ begin of epilog @@ */ /* We don't want libintl.a to depend on any other library. So we avoid the non-standard function stpcpy. In GNU C Library this function is available, though. Also allow the symbol HAVE_STPCPY to be defined. */ #if !_LIBC && !HAVE_STPCPY static char * stpcpy (char *dest, const char *src) { while ((*dest++ = *src++) != '\0') /* Do nothing. */ ; return dest - 1; } #endif #if !_LIBC && !HAVE_MEMPCPY static void * mempcpy (void *dest, const void *src, size_t n) { return (void *) ((char *) memcpy (dest, src, n) + n); } #endif #if !_LIBC && !HAVE_TSEARCH # include "tsearch.c" #endif #ifdef _LIBC /* If we want to free all resources we have to do some work at program's end. */ libc_freeres_fn (free_mem) { void *old; while (_nl_domain_bindings != NULL) { struct binding *oldp = _nl_domain_bindings; _nl_domain_bindings = _nl_domain_bindings->next; if (oldp->dirname != _nl_default_dirname) /* Yes, this is a pointer comparison. */ free (oldp->dirname); free (oldp->codeset); free (oldp); } if (_nl_current_default_domain != _nl_default_default_domain) /* Yes, again a pointer comparison. */ free ((char *) _nl_current_default_domain); /* Remove the search tree with the known translations. */ __tdestroy (root, free); root = NULL; while (transmem_list != NULL) { old = transmem_list; transmem_list = transmem_list->next; free (old); } } #endif enscript-1.6.5.90/intl/ref-del.sin0000644000175000017500000000203011606344061013515 00000000000000# Remove this package from a list of references stored in a text file. # # Copyright (C) 2000 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 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 # 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, # USA. # # Written by Bruno Haible . # /^# Packages using this file: / { s/# Packages using this file:// s/ @PACKAGE@ / / s/^/# Packages using this file:/ } enscript-1.6.5.90/intl/dgettext.c0000644000175000017500000000337111606344057013476 00000000000000/* Implementation of the dgettext(3) function. Copyright (C) 1995-1997, 2000-2003 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 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 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H # include #endif #include "gettextP.h" #include #ifdef _LIBC # include #else # include "libgnuintl.h" #endif /* @@ end of prolog @@ */ /* Names for the libintl functions are a problem. They must not clash with existing names and they should follow ANSI C. But this source code is also used in GNU C Library where the names have a __ prefix. So we have to make a difference here. */ #ifdef _LIBC # define DGETTEXT __dgettext # define DCGETTEXT INTUSE(__dcgettext) #else # define DGETTEXT libintl_dgettext # define DCGETTEXT libintl_dcgettext #endif /* Look up MSGID in the DOMAINNAME message catalog of the current LC_MESSAGES locale. */ char * DGETTEXT (const char *domainname, const char *msgid) { return DCGETTEXT (domainname, msgid, LC_MESSAGES); } #ifdef _LIBC /* Alias for function name in GNU C Library. */ weak_alias (__dgettext, dgettext); #endif enscript-1.6.5.90/intl/eval-plural.h0000644000175000017500000000534211606344057014077 00000000000000/* Plural expression evaluation. Copyright (C) 2000-2003, 2007 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 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 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef STATIC #define STATIC static #endif /* Evaluate the plural expression and return an index value. */ STATIC unsigned long int internal_function plural_eval (const struct expression *pexp, unsigned long int n) { switch (pexp->nargs) { case 0: switch (pexp->operation) { case var: return n; case num: return pexp->val.num; default: break; } /* NOTREACHED */ break; case 1: { /* pexp->operation must be lnot. */ unsigned long int arg = plural_eval (pexp->val.args[0], n); return ! arg; } case 2: { unsigned long int leftarg = plural_eval (pexp->val.args[0], n); if (pexp->operation == lor) return leftarg || plural_eval (pexp->val.args[1], n); else if (pexp->operation == land) return leftarg && plural_eval (pexp->val.args[1], n); else { unsigned long int rightarg = plural_eval (pexp->val.args[1], n); switch (pexp->operation) { case mult: return leftarg * rightarg; case divide: #if !INTDIV0_RAISES_SIGFPE if (rightarg == 0) raise (SIGFPE); #endif return leftarg / rightarg; case module: #if !INTDIV0_RAISES_SIGFPE if (rightarg == 0) raise (SIGFPE); #endif return leftarg % rightarg; case plus: return leftarg + rightarg; case minus: return leftarg - rightarg; case less_than: return leftarg < rightarg; case greater_than: return leftarg > rightarg; case less_or_equal: return leftarg <= rightarg; case greater_or_equal: return leftarg >= rightarg; case equal: return leftarg == rightarg; case not_equal: return leftarg != rightarg; default: break; } } /* NOTREACHED */ break; } case 3: { /* pexp->operation must be qmop. */ unsigned long int boolarg = plural_eval (pexp->val.args[0], n); return plural_eval (pexp->val.args[boolarg ? 1 : 2], n); } } /* NOTREACHED */ return 0; } enscript-1.6.5.90/intl/dngettext.c0000644000175000017500000000354611606344057013660 00000000000000/* Implementation of the dngettext(3) function. Copyright (C) 1995-1997, 2000-2003 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 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 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H # include #endif #include "gettextP.h" #include #ifdef _LIBC # include #else # include "libgnuintl.h" #endif /* @@ end of prolog @@ */ /* Names for the libintl functions are a problem. They must not clash with existing names and they should follow ANSI C. But this source code is also used in GNU C Library where the names have a __ prefix. So we have to make a difference here. */ #ifdef _LIBC # define DNGETTEXT __dngettext # define DCNGETTEXT __dcngettext #else # define DNGETTEXT libintl_dngettext # define DCNGETTEXT libintl_dcngettext #endif /* Look up MSGID in the DOMAINNAME message catalog of the current LC_MESSAGES locale and skip message according to the plural form. */ char * DNGETTEXT (const char *domainname, const char *msgid1, const char *msgid2, unsigned long int n) { return DCNGETTEXT (domainname, msgid1, msgid2, n, LC_MESSAGES); } #ifdef _LIBC /* Alias for function name in GNU C Library. */ weak_alias (__dngettext, dngettext); #endif enscript-1.6.5.90/intl/vasnprintf.h0000644000175000017500000000544311606344062014043 00000000000000/* vsprintf with automatic memory allocation. Copyright (C) 2002-2004 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 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 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef _VASNPRINTF_H #define _VASNPRINTF_H /* Get va_list. */ #include /* Get size_t. */ #include #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 /* Write formatted output to a string dynamically allocated with malloc(). You can pass a preallocated buffer for the result in RESULTBUF and its size in *LENGTHP; otherwise you pass RESULTBUF = NULL. If successful, return the address of the string (this may be = RESULTBUF if no dynamic memory allocation was necessary) and set *LENGTHP to the number of resulting bytes, excluding the trailing NUL. Upon error, set errno and return NULL. When dynamic memory allocation occurs, the preallocated buffer is left alone (with possibly modified contents). This makes it possible to use a statically allocated or stack-allocated buffer, like this: char buf[100]; size_t len = sizeof (buf); char *output = vasnprintf (buf, &len, format, args); if (output == NULL) ... error handling ...; else { ... use the output string ...; if (output != buf) free (output); } */ extern char * asnprintf (char *resultbuf, size_t *lengthp, const char *format, ...) __attribute__ ((__format__ (__printf__, 3, 4))); extern char * vasnprintf (char *resultbuf, size_t *lengthp, const char *format, va_list args) __attribute__ ((__format__ (__printf__, 3, 0))); #ifdef __cplusplus } #endif #endif /* _VASNPRINTF_H */ enscript-1.6.5.90/intl/ref-add.sin0000644000175000017500000000210511606344061013504 00000000000000# Add this package to a list of references stored in a text file. # # Copyright (C) 2000 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 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 # 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, # USA. # # Written by Bruno Haible . # /^# Packages using this file: / { s/# Packages using this file:// ta :a s/ @PACKAGE@ / @PACKAGE@ / tb s/ $/ @PACKAGE@ / :b s/^/# Packages using this file:/ } enscript-1.6.5.90/intl/libintl.rc0000644000175000017500000000323311606344060013454 00000000000000/* Resources for intl.dll */ #include VS_VERSION_INFO VERSIONINFO FILEVERSION PACKAGE_VERSION_MAJOR,PACKAGE_VERSION_MINOR,PACKAGE_VERSION_SUBMINOR,0 PRODUCTVERSION PACKAGE_VERSION_MAJOR,PACKAGE_VERSION_MINOR,PACKAGE_VERSION_SUBMINOR,0 FILEFLAGSMASK 0x3fL /* VS_FFI_FILEFLAGSMASK */ #ifdef _DEBUG FILEFLAGS 0x1L /* VS_FF_DEBUG */ #else FILEFLAGS 0x0L #endif FILEOS 0x10004L /* VOS_DOS_WINDOWS32 */ FILETYPE 0x2L /* VFT_DLL */ FILESUBTYPE 0x0L /* VFT2_UNKNOWN */ BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "04090000" /* Lang = US English, Charset = ASCII */ BEGIN VALUE "Comments", "This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License. You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA\0" VALUE "CompanyName", "Free Software Foundation\0" VALUE "FileDescription", "LGPLed libintl for Windows NT/2000/XP/Vista and Windows 95/98/ME\0" VALUE "FileVersion", PACKAGE_VERSION_STRING "\0" VALUE "InternalName", "intl.dll\0" VALUE "LegalCopyright", "Copyright (C) 1995-2007\0" VALUE "LegalTrademarks", "\0" VALUE "OriginalFilename", "intl.dll\0" VALUE "ProductName", "libintl: accessing NLS message catalogs\0" VALUE "ProductVersion", PACKAGE_VERSION_STRING "\0" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", 0x0409, 0 /* US English, ASCII */ END END enscript-1.6.5.90/intl/l10nflist.c0000644000175000017500000002557211606344060013463 00000000000000/* Copyright (C) 1995-1999, 2000-2006 Free Software Foundation, Inc. Contributed by Ulrich Drepper , 1995. 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 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 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* Tell glibc's to provide a prototype for stpcpy(). This must come before because may include , and once has been included, it's too late. */ #ifndef _GNU_SOURCE # define _GNU_SOURCE 1 #endif #ifdef HAVE_CONFIG_H # include #endif #include #if defined _LIBC || defined HAVE_ARGZ_H # include #endif #include #include #include #include "loadinfo.h" /* On some strange systems still no definition of NULL is found. Sigh! */ #ifndef NULL # if defined __STDC__ && __STDC__ # define NULL ((void *) 0) # else # define NULL 0 # endif #endif /* @@ end of prolog @@ */ #ifdef _LIBC /* Rename the non ANSI C functions. This is required by the standard because some ANSI C functions will require linking with this object file and the name space must not be polluted. */ # ifndef stpcpy # define stpcpy(dest, src) __stpcpy(dest, src) # endif #else # ifndef HAVE_STPCPY static char *stpcpy (char *dest, const char *src); # endif #endif /* Pathname support. ISSLASH(C) tests whether C is a directory separator character. IS_ABSOLUTE_PATH(P) tests whether P is an absolute path. If it is not, it may be concatenated to a directory pathname. */ #if defined _WIN32 || defined __WIN32__ || defined __CYGWIN__ || defined __EMX__ || defined __DJGPP__ /* Win32, Cygwin, OS/2, DOS */ # define ISSLASH(C) ((C) == '/' || (C) == '\\') # define HAS_DEVICE(P) \ ((((P)[0] >= 'A' && (P)[0] <= 'Z') || ((P)[0] >= 'a' && (P)[0] <= 'z')) \ && (P)[1] == ':') # define IS_ABSOLUTE_PATH(P) (ISSLASH ((P)[0]) || HAS_DEVICE (P)) #else /* Unix */ # define ISSLASH(C) ((C) == '/') # define IS_ABSOLUTE_PATH(P) ISSLASH ((P)[0]) #endif /* Define function which are usually not available. */ #ifdef _LIBC # define __argz_count(argz, len) INTUSE(__argz_count) (argz, len) #elif defined HAVE_ARGZ_COUNT # undef __argz_count # define __argz_count argz_count #else /* Returns the number of strings in ARGZ. */ static size_t argz_count__ (const char *argz, size_t len) { size_t count = 0; while (len > 0) { size_t part_len = strlen (argz); argz += part_len + 1; len -= part_len + 1; count++; } return count; } # undef __argz_count # define __argz_count(argz, len) argz_count__ (argz, len) #endif /* !_LIBC && !HAVE_ARGZ_COUNT */ #ifdef _LIBC # define __argz_stringify(argz, len, sep) \ INTUSE(__argz_stringify) (argz, len, sep) #elif defined HAVE_ARGZ_STRINGIFY # undef __argz_stringify # define __argz_stringify argz_stringify #else /* Make '\0' separated arg vector ARGZ printable by converting all the '\0's except the last into the character SEP. */ static void argz_stringify__ (char *argz, size_t len, int sep) { while (len > 0) { size_t part_len = strlen (argz); argz += part_len; len -= part_len + 1; if (len > 0) *argz++ = sep; } } # undef __argz_stringify # define __argz_stringify(argz, len, sep) argz_stringify__ (argz, len, sep) #endif /* !_LIBC && !HAVE_ARGZ_STRINGIFY */ #ifdef _LIBC #elif defined HAVE_ARGZ_NEXT # undef __argz_next # define __argz_next argz_next #else static char * argz_next__ (char *argz, size_t argz_len, const char *entry) { if (entry) { if (entry < argz + argz_len) entry = strchr (entry, '\0') + 1; return entry >= argz + argz_len ? NULL : (char *) entry; } else if (argz_len > 0) return argz; else return 0; } # undef __argz_next # define __argz_next(argz, len, entry) argz_next__ (argz, len, entry) #endif /* !_LIBC && !HAVE_ARGZ_NEXT */ /* Return number of bits set in X. */ static inline int pop (int x) { /* We assume that no more than 16 bits are used. */ x = ((x & ~0x5555) >> 1) + (x & 0x5555); x = ((x & ~0x3333) >> 2) + (x & 0x3333); x = ((x >> 4) + x) & 0x0f0f; x = ((x >> 8) + x) & 0xff; return x; } struct loaded_l10nfile * _nl_make_l10nflist (struct loaded_l10nfile **l10nfile_list, const char *dirlist, size_t dirlist_len, int mask, const char *language, const char *territory, const char *codeset, const char *normalized_codeset, const char *modifier, const char *filename, int do_allocate) { char *abs_filename; struct loaded_l10nfile **lastp; struct loaded_l10nfile *retval; char *cp; size_t dirlist_count; size_t entries; int cnt; /* If LANGUAGE contains an absolute directory specification, we ignore DIRLIST. */ if (IS_ABSOLUTE_PATH (language)) dirlist_len = 0; /* Allocate room for the full file name. */ abs_filename = (char *) malloc (dirlist_len + strlen (language) + ((mask & XPG_TERRITORY) != 0 ? strlen (territory) + 1 : 0) + ((mask & XPG_CODESET) != 0 ? strlen (codeset) + 1 : 0) + ((mask & XPG_NORM_CODESET) != 0 ? strlen (normalized_codeset) + 1 : 0) + ((mask & XPG_MODIFIER) != 0 ? strlen (modifier) + 1 : 0) + 1 + strlen (filename) + 1); if (abs_filename == NULL) return NULL; /* Construct file name. */ cp = abs_filename; if (dirlist_len > 0) { memcpy (cp, dirlist, dirlist_len); __argz_stringify (cp, dirlist_len, PATH_SEPARATOR); cp += dirlist_len; cp[-1] = '/'; } cp = stpcpy (cp, language); if ((mask & XPG_TERRITORY) != 0) { *cp++ = '_'; cp = stpcpy (cp, territory); } if ((mask & XPG_CODESET) != 0) { *cp++ = '.'; cp = stpcpy (cp, codeset); } if ((mask & XPG_NORM_CODESET) != 0) { *cp++ = '.'; cp = stpcpy (cp, normalized_codeset); } if ((mask & XPG_MODIFIER) != 0) { *cp++ = '@'; cp = stpcpy (cp, modifier); } *cp++ = '/'; stpcpy (cp, filename); /* Look in list of already loaded domains whether it is already available. */ lastp = l10nfile_list; for (retval = *l10nfile_list; retval != NULL; retval = retval->next) if (retval->filename != NULL) { int compare = strcmp (retval->filename, abs_filename); if (compare == 0) /* We found it! */ break; if (compare < 0) { /* It's not in the list. */ retval = NULL; break; } lastp = &retval->next; } if (retval != NULL || do_allocate == 0) { free (abs_filename); return retval; } dirlist_count = (dirlist_len > 0 ? __argz_count (dirlist, dirlist_len) : 1); /* Allocate a new loaded_l10nfile. */ retval = (struct loaded_l10nfile *) malloc (sizeof (*retval) + (((dirlist_count << pop (mask)) + (dirlist_count > 1 ? 1 : 0)) * sizeof (struct loaded_l10nfile *))); if (retval == NULL) { free (abs_filename); return NULL; } retval->filename = abs_filename; /* We set retval->data to NULL here; it is filled in later. Setting retval->decided to 1 here means that retval does not correspond to a real file (dirlist_count > 1) or is not worth looking up (if an unnormalized codeset was specified). */ retval->decided = (dirlist_count > 1 || ((mask & XPG_CODESET) != 0 && (mask & XPG_NORM_CODESET) != 0)); retval->data = NULL; retval->next = *lastp; *lastp = retval; entries = 0; /* Recurse to fill the inheritance list of RETVAL. If the DIRLIST is a real list (i.e. DIRLIST_COUNT > 1), the RETVAL entry does not correspond to a real file; retval->filename contains colons. In this case we loop across all elements of DIRLIST and across all bit patterns dominated by MASK. If the DIRLIST is a single directory or entirely redundant (i.e. DIRLIST_COUNT == 1), we loop across all bit patterns dominated by MASK, excluding MASK itself. In either case, we loop down from MASK to 0. This has the effect that the extra bits in the locale name are dropped in this order: first the modifier, then the territory, then the codeset, then the normalized_codeset. */ for (cnt = dirlist_count > 1 ? mask : mask - 1; cnt >= 0; --cnt) if ((cnt & ~mask) == 0 && !((cnt & XPG_CODESET) != 0 && (cnt & XPG_NORM_CODESET) != 0)) { if (dirlist_count > 1) { /* Iterate over all elements of the DIRLIST. */ char *dir = NULL; while ((dir = __argz_next ((char *) dirlist, dirlist_len, dir)) != NULL) retval->successor[entries++] = _nl_make_l10nflist (l10nfile_list, dir, strlen (dir) + 1, cnt, language, territory, codeset, normalized_codeset, modifier, filename, 1); } else retval->successor[entries++] = _nl_make_l10nflist (l10nfile_list, dirlist, dirlist_len, cnt, language, territory, codeset, normalized_codeset, modifier, filename, 1); } retval->successor[entries] = NULL; return retval; } /* Normalize codeset name. There is no standard for the codeset names. Normalization allows the user to use any of the common names. The return value is dynamically allocated and has to be freed by the caller. */ const char * _nl_normalize_codeset (const char *codeset, size_t name_len) { int len = 0; int only_digit = 1; char *retval; char *wp; size_t cnt; for (cnt = 0; cnt < name_len; ++cnt) if (isalnum ((unsigned char) codeset[cnt])) { ++len; if (isalpha ((unsigned char) codeset[cnt])) only_digit = 0; } retval = (char *) malloc ((only_digit ? 3 : 0) + len + 1); if (retval != NULL) { if (only_digit) wp = stpcpy (retval, "iso"); else wp = retval; for (cnt = 0; cnt < name_len; ++cnt) if (isalpha ((unsigned char) codeset[cnt])) *wp++ = tolower ((unsigned char) codeset[cnt]); else if (isdigit ((unsigned char) codeset[cnt])) *wp++ = codeset[cnt]; *wp = '\0'; } return (const char *) retval; } /* @@ begin of epilog @@ */ /* We don't want libintl.a to depend on any other library. So we avoid the non-standard function stpcpy. In GNU C Library this function is available, though. Also allow the symbol HAVE_STPCPY to be defined. */ #if !_LIBC && !HAVE_STPCPY static char * stpcpy (char *dest, const char *src) { while ((*dest++ = *src++) != '\0') /* Do nothing. */ ; return dest - 1; } #endif enscript-1.6.5.90/intl/xsize.h0000644000175000017500000000672611606344062013020 00000000000000/* xsize.h -- Checked size_t computations. Copyright (C) 2003 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 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 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef _XSIZE_H #define _XSIZE_H /* Get size_t. */ #include /* Get SIZE_MAX. */ #include #if HAVE_STDINT_H # include #endif /* The size of memory objects is often computed through expressions of type size_t. Example: void* p = malloc (header_size + n * element_size). These computations can lead to overflow. When this happens, malloc() returns a piece of memory that is way too small, and the program then crashes while attempting to fill the memory. To avoid this, the functions and macros in this file check for overflow. The convention is that SIZE_MAX represents overflow. malloc (SIZE_MAX) is not guaranteed to fail -- think of a malloc implementation that uses mmap --, it's recommended to use size_overflow_p() or size_in_bounds_p() before invoking malloc(). The example thus becomes: size_t size = xsum (header_size, xtimes (n, element_size)); void *p = (size_in_bounds_p (size) ? malloc (size) : NULL); */ /* Convert an arbitrary value >= 0 to type size_t. */ #define xcast_size_t(N) \ ((N) <= SIZE_MAX ? (size_t) (N) : SIZE_MAX) /* Sum of two sizes, with overflow check. */ static inline size_t #if __GNUC__ >= 3 __attribute__ ((__pure__)) #endif xsum (size_t size1, size_t size2) { size_t sum = size1 + size2; return (sum >= size1 ? sum : SIZE_MAX); } /* Sum of three sizes, with overflow check. */ static inline size_t #if __GNUC__ >= 3 __attribute__ ((__pure__)) #endif xsum3 (size_t size1, size_t size2, size_t size3) { return xsum (xsum (size1, size2), size3); } /* Sum of four sizes, with overflow check. */ static inline size_t #if __GNUC__ >= 3 __attribute__ ((__pure__)) #endif xsum4 (size_t size1, size_t size2, size_t size3, size_t size4) { return xsum (xsum (xsum (size1, size2), size3), size4); } /* Maximum of two sizes, with overflow check. */ static inline size_t #if __GNUC__ >= 3 __attribute__ ((__pure__)) #endif xmax (size_t size1, size_t size2) { /* No explicit check is needed here, because for any n: max (SIZE_MAX, n) == SIZE_MAX and max (n, SIZE_MAX) == SIZE_MAX. */ return (size1 >= size2 ? size1 : size2); } /* Multiplication of a count with an element size, with overflow check. The count must be >= 0 and the element size must be > 0. This is a macro, not an inline function, so that it works correctly even when N is of a wider tupe and N > SIZE_MAX. */ #define xtimes(N, ELSIZE) \ ((N) <= SIZE_MAX / (ELSIZE) ? (size_t) (N) * (ELSIZE) : SIZE_MAX) /* Check for overflow. */ #define size_overflow_p(SIZE) \ ((SIZE) == SIZE_MAX) /* Check against overflow. */ #define size_in_bounds_p(SIZE) \ ((SIZE) != SIZE_MAX) #endif /* _XSIZE_H */ enscript-1.6.5.90/intl/textdomain.c0000644000175000017500000000746611606344062014027 00000000000000/* Implementation of the textdomain(3) function. Copyright (C) 1995-1998, 2000-2003, 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 Library 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 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H # include #endif #include #include #include "gettextP.h" #ifdef _LIBC # include #else # include "libgnuintl.h" #endif /* Handle multi-threaded applications. */ #ifdef _LIBC # include # define gl_rwlock_define __libc_rwlock_define # define gl_rwlock_wrlock __libc_rwlock_wrlock # define gl_rwlock_unlock __libc_rwlock_unlock #else # include "lock.h" #endif /* @@ end of prolog @@ */ /* Names for the libintl functions are a problem. They must not clash with existing names and they should follow ANSI C. But this source code is also used in GNU C Library where the names have a __ prefix. So we have to make a difference here. */ #ifdef _LIBC # define TEXTDOMAIN __textdomain # ifndef strdup # define strdup(str) __strdup (str) # endif #else # define TEXTDOMAIN libintl_textdomain #endif /* Lock variable to protect the global data in the gettext implementation. */ gl_rwlock_define (extern, _nl_state_lock attribute_hidden) /* Set the current default message catalog to DOMAINNAME. If DOMAINNAME is null, return the current default. If DOMAINNAME is "", reset to the default of "messages". */ char * TEXTDOMAIN (const char *domainname) { char *new_domain; char *old_domain; /* A NULL pointer requests the current setting. */ if (domainname == NULL) return (char *) _nl_current_default_domain; gl_rwlock_wrlock (_nl_state_lock); old_domain = (char *) _nl_current_default_domain; /* If domain name is the null string set to default domain "messages". */ if (domainname[0] == '\0' || strcmp (domainname, _nl_default_default_domain) == 0) { _nl_current_default_domain = _nl_default_default_domain; new_domain = (char *) _nl_current_default_domain; } else if (strcmp (domainname, old_domain) == 0) /* This can happen and people will use it to signal that some environment variable changed. */ new_domain = old_domain; else { /* If the following malloc fails `_nl_current_default_domain' will be NULL. This value will be returned and so signals we are out of core. */ #if defined _LIBC || defined HAVE_STRDUP new_domain = strdup (domainname); #else size_t len = strlen (domainname) + 1; new_domain = (char *) malloc (len); if (new_domain != NULL) memcpy (new_domain, domainname, len); #endif if (new_domain != NULL) _nl_current_default_domain = new_domain; } /* We use this possibility to signal a change of the loaded catalogs since this is most likely the case and there is no other easy we to do it. Do it only when the call was successful. */ if (new_domain != NULL) { ++_nl_msg_cat_cntr; if (old_domain != new_domain && old_domain != _nl_default_default_domain) free (old_domain); } gl_rwlock_unlock (_nl_state_lock); return new_domain; } #ifdef _LIBC /* Alias for function name in GNU C Library. */ weak_alias (__textdomain, textdomain); #endif enscript-1.6.5.90/intl/dcgettext.c0000644000175000017500000000342111606344057013635 00000000000000/* Implementation of the dcgettext(3) function. Copyright (C) 1995-1999, 2000-2003 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 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 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H # include #endif #include "gettextP.h" #ifdef _LIBC # include #else # include "libgnuintl.h" #endif /* @@ end of prolog @@ */ /* Names for the libintl functions are a problem. They must not clash with existing names and they should follow ANSI C. But this source code is also used in GNU C Library where the names have a __ prefix. So we have to make a difference here. */ #ifdef _LIBC # define DCGETTEXT __dcgettext # define DCIGETTEXT __dcigettext #else # define DCGETTEXT libintl_dcgettext # define DCIGETTEXT libintl_dcigettext #endif /* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY locale. */ char * DCGETTEXT (const char *domainname, const char *msgid, int category) { return DCIGETTEXT (domainname, msgid, NULL, 0, 0, category); } #ifdef _LIBC /* Alias for function name in GNU C Library. */ INTDEF(__dcgettext) weak_alias (__dcgettext, dcgettext); #endif enscript-1.6.5.90/intl/localcharset.c0000644000175000017500000003031411606344060014301 00000000000000/* Determine a canonical name for the current locale's character encoding. Copyright (C) 2000-2006 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 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 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* Written by Bruno Haible . */ #include /* Specification. */ #include "localcharset.h" #include #include #include #include #if defined _WIN32 || defined __WIN32__ # define WIN32_NATIVE #endif #if defined __EMX__ /* Assume EMX program runs on OS/2, even if compiled under DOS. */ # define OS2 #endif #if !defined WIN32_NATIVE # if HAVE_LANGINFO_CODESET # include # else # if 0 /* see comment below */ # include # endif # endif # ifdef __CYGWIN__ # define WIN32_LEAN_AND_MEAN # include # endif #elif defined WIN32_NATIVE # define WIN32_LEAN_AND_MEAN # include #endif #if defined OS2 # define INCL_DOS # include #endif #if ENABLE_RELOCATABLE # include "relocatable.h" #else # define relocate(pathname) (pathname) #endif /* Get LIBDIR. */ #ifndef LIBDIR # include "configmake.h" #endif #if defined _WIN32 || defined __WIN32__ || defined __CYGWIN__ || defined __EMX__ || defined __DJGPP__ /* Win32, Cygwin, OS/2, DOS */ # define ISSLASH(C) ((C) == '/' || (C) == '\\') #endif #ifndef DIRECTORY_SEPARATOR # define DIRECTORY_SEPARATOR '/' #endif #ifndef ISSLASH # define ISSLASH(C) ((C) == DIRECTORY_SEPARATOR) #endif #if HAVE_DECL_GETC_UNLOCKED # undef getc # define getc getc_unlocked #endif /* The following static variable is declared 'volatile' to avoid a possible multithread problem in the function get_charset_aliases. If we are running in a threaded environment, and if two threads initialize 'charset_aliases' simultaneously, both will produce the same value, and everything will be ok if the two assignments to 'charset_aliases' are atomic. But I don't know what will happen if the two assignments mix. */ #if __STDC__ != 1 # define volatile /* empty */ #endif /* Pointer to the contents of the charset.alias file, if it has already been read, else NULL. Its format is: ALIAS_1 '\0' CANONICAL_1 '\0' ... ALIAS_n '\0' CANONICAL_n '\0' '\0' */ static const char * volatile charset_aliases; /* Return a pointer to the contents of the charset.alias file. */ static const char * get_charset_aliases (void) { const char *cp; cp = charset_aliases; if (cp == NULL) { #if !(defined VMS || defined WIN32_NATIVE || defined __CYGWIN__) FILE *fp; const char *dir; const char *base = "charset.alias"; char *file_name; /* Make it possible to override the charset.alias location. This is necessary for running the testsuite before "make install". */ dir = getenv ("CHARSETALIASDIR"); if (dir == NULL || dir[0] == '\0') dir = relocate (LIBDIR); /* Concatenate dir and base into freshly allocated file_name. */ { size_t dir_len = strlen (dir); size_t base_len = strlen (base); int add_slash = (dir_len > 0 && !ISSLASH (dir[dir_len - 1])); file_name = (char *) malloc (dir_len + add_slash + base_len + 1); if (file_name != NULL) { memcpy (file_name, dir, dir_len); if (add_slash) file_name[dir_len] = DIRECTORY_SEPARATOR; memcpy (file_name + dir_len + add_slash, base, base_len + 1); } } if (file_name == NULL || (fp = fopen (file_name, "r")) == NULL) /* Out of memory or file not found, treat it as empty. */ cp = ""; else { /* Parse the file's contents. */ char *res_ptr = NULL; size_t res_size = 0; for (;;) { int c; char buf1[50+1]; char buf2[50+1]; size_t l1, l2; char *old_res_ptr; c = getc (fp); if (c == EOF) break; if (c == '\n' || c == ' ' || c == '\t') continue; if (c == '#') { /* Skip comment, to end of line. */ do c = getc (fp); while (!(c == EOF || c == '\n')); if (c == EOF) break; continue; } ungetc (c, fp); if (fscanf (fp, "%50s %50s", buf1, buf2) < 2) break; l1 = strlen (buf1); l2 = strlen (buf2); old_res_ptr = res_ptr; if (res_size == 0) { res_size = l1 + 1 + l2 + 1; res_ptr = (char *) malloc (res_size + 1); } else { res_size += l1 + 1 + l2 + 1; res_ptr = (char *) realloc (res_ptr, res_size + 1); } if (res_ptr == NULL) { /* Out of memory. */ res_size = 0; if (old_res_ptr != NULL) free (old_res_ptr); break; } strcpy (res_ptr + res_size - (l2 + 1) - (l1 + 1), buf1); strcpy (res_ptr + res_size - (l2 + 1), buf2); } fclose (fp); if (res_size == 0) cp = ""; else { *(res_ptr + res_size) = '\0'; cp = res_ptr; } } if (file_name != NULL) free (file_name); #else # if defined VMS /* To avoid the troubles of an extra file charset.alias_vms in the sources of many GNU packages, simply inline the aliases here. */ /* The list of encodings is taken from the OpenVMS 7.3-1 documentation "Compaq C Run-Time Library Reference Manual for OpenVMS systems" section 10.7 "Handling Different Character Sets". */ cp = "ISO8859-1" "\0" "ISO-8859-1" "\0" "ISO8859-2" "\0" "ISO-8859-2" "\0" "ISO8859-5" "\0" "ISO-8859-5" "\0" "ISO8859-7" "\0" "ISO-8859-7" "\0" "ISO8859-8" "\0" "ISO-8859-8" "\0" "ISO8859-9" "\0" "ISO-8859-9" "\0" /* Japanese */ "eucJP" "\0" "EUC-JP" "\0" "SJIS" "\0" "SHIFT_JIS" "\0" "DECKANJI" "\0" "DEC-KANJI" "\0" "SDECKANJI" "\0" "EUC-JP" "\0" /* Chinese */ "eucTW" "\0" "EUC-TW" "\0" "DECHANYU" "\0" "DEC-HANYU" "\0" "DECHANZI" "\0" "GB2312" "\0" /* Korean */ "DECKOREAN" "\0" "EUC-KR" "\0"; # endif # if defined WIN32_NATIVE || defined __CYGWIN__ /* To avoid the troubles of installing a separate file in the same directory as the DLL and of retrieving the DLL's directory at runtime, simply inline the aliases here. */ cp = "CP936" "\0" "GBK" "\0" "CP1361" "\0" "JOHAB" "\0" "CP20127" "\0" "ASCII" "\0" "CP20866" "\0" "KOI8-R" "\0" "CP20936" "\0" "GB2312" "\0" "CP21866" "\0" "KOI8-RU" "\0" "CP28591" "\0" "ISO-8859-1" "\0" "CP28592" "\0" "ISO-8859-2" "\0" "CP28593" "\0" "ISO-8859-3" "\0" "CP28594" "\0" "ISO-8859-4" "\0" "CP28595" "\0" "ISO-8859-5" "\0" "CP28596" "\0" "ISO-8859-6" "\0" "CP28597" "\0" "ISO-8859-7" "\0" "CP28598" "\0" "ISO-8859-8" "\0" "CP28599" "\0" "ISO-8859-9" "\0" "CP28605" "\0" "ISO-8859-15" "\0" "CP38598" "\0" "ISO-8859-8" "\0" "CP51932" "\0" "EUC-JP" "\0" "CP51936" "\0" "GB2312" "\0" "CP51949" "\0" "EUC-KR" "\0" "CP51950" "\0" "EUC-TW" "\0" "CP54936" "\0" "GB18030" "\0" "CP65001" "\0" "UTF-8" "\0"; # endif #endif charset_aliases = cp; } return cp; } /* Determine the current locale's character encoding, and canonicalize it into one of the canonical names listed in config.charset. The result must not be freed; it is statically allocated. If the canonical name cannot be determined, the result is a non-canonical name. */ #ifdef STATIC STATIC #endif const char * locale_charset (void) { const char *codeset; const char *aliases; #if !(defined WIN32_NATIVE || defined OS2) # if HAVE_LANGINFO_CODESET /* Most systems support nl_langinfo (CODESET) nowadays. */ codeset = nl_langinfo (CODESET); # ifdef __CYGWIN__ /* Cygwin 2006 does not have locales. nl_langinfo (CODESET) always returns "US-ASCII". As long as this is not fixed, return the suffix of the locale name from the environment variables (if present) or the codepage as a number. */ if (codeset != NULL && strcmp (codeset, "US-ASCII") == 0) { const char *locale; static char buf[2 + 10 + 1]; locale = getenv ("LC_ALL"); if (locale == NULL || locale[0] == '\0') { locale = getenv ("LC_CTYPE"); if (locale == NULL || locale[0] == '\0') locale = getenv ("LANG"); } if (locale != NULL && locale[0] != '\0') { /* If the locale name contains an encoding after the dot, return it. */ const char *dot = strchr (locale, '.'); if (dot != NULL) { const char *modifier; dot++; /* Look for the possible @... trailer and remove it, if any. */ modifier = strchr (dot, '@'); if (modifier == NULL) return dot; if (modifier - dot < sizeof (buf)) { memcpy (buf, dot, modifier - dot); buf [modifier - dot] = '\0'; return buf; } } } /* Woe32 has a function returning the locale's codepage as a number. */ sprintf (buf, "CP%u", GetACP ()); codeset = buf; } # endif # else /* On old systems which lack it, use setlocale or getenv. */ const char *locale = NULL; /* But most old systems don't have a complete set of locales. Some (like SunOS 4 or DJGPP) have only the C locale. Therefore we don't use setlocale here; it would return "C" when it doesn't support the locale name the user has set. */ # if 0 locale = setlocale (LC_CTYPE, NULL); # endif if (locale == NULL || locale[0] == '\0') { locale = getenv ("LC_ALL"); if (locale == NULL || locale[0] == '\0') { locale = getenv ("LC_CTYPE"); if (locale == NULL || locale[0] == '\0') locale = getenv ("LANG"); } } /* On some old systems, one used to set locale = "iso8859_1". On others, you set it to "language_COUNTRY.charset". In any case, we resolve it through the charset.alias file. */ codeset = locale; # endif #elif defined WIN32_NATIVE static char buf[2 + 10 + 1]; /* Woe32 has a function returning the locale's codepage as a number. */ sprintf (buf, "CP%u", GetACP ()); codeset = buf; #elif defined OS2 const char *locale; static char buf[2 + 10 + 1]; ULONG cp[3]; ULONG cplen; /* Allow user to override the codeset, as set in the operating system, with standard language environment variables. */ locale = getenv ("LC_ALL"); if (locale == NULL || locale[0] == '\0') { locale = getenv ("LC_CTYPE"); if (locale == NULL || locale[0] == '\0') locale = getenv ("LANG"); } if (locale != NULL && locale[0] != '\0') { /* If the locale name contains an encoding after the dot, return it. */ const char *dot = strchr (locale, '.'); if (dot != NULL) { const char *modifier; dot++; /* Look for the possible @... trailer and remove it, if any. */ modifier = strchr (dot, '@'); if (modifier == NULL) return dot; if (modifier - dot < sizeof (buf)) { memcpy (buf, dot, modifier - dot); buf [modifier - dot] = '\0'; return buf; } } /* Resolve through the charset.alias file. */ codeset = locale; } else { /* OS/2 has a function returning the locale's codepage as a number. */ if (DosQueryCp (sizeof (cp), cp, &cplen)) codeset = ""; else { sprintf (buf, "CP%u", cp[0]); codeset = buf; } } #endif if (codeset == NULL) /* The canonical name cannot be determined. */ codeset = ""; /* Resolve alias. */ for (aliases = get_charset_aliases (); *aliases != '\0'; aliases += strlen (aliases) + 1, aliases += strlen (aliases) + 1) if (strcmp (codeset, aliases) == 0 || (aliases[0] == '*' && aliases[1] == '\0')) { codeset = aliases + strlen (aliases) + 1; break; } /* Don't return an empty string. GNU libc and GNU libiconv interpret the empty string as denoting "the locale's character encoding", thus GNU libiconv would call this function a second time. */ if (codeset[0] == '\0') codeset = "ASCII"; return codeset; } enscript-1.6.5.90/intl/lock.c0000644000175000017500000005413011606344060012567 00000000000000/* Locking in multithreaded situations. 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 Library 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 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* Written by Bruno Haible , 2005. Based on GCC's gthr-posix.h, gthr-posix95.h, gthr-solaris.h, gthr-win32.h. */ #include #include "lock.h" /* ========================================================================= */ #if USE_POSIX_THREADS /* Use the POSIX threads library. */ # if PTHREAD_IN_USE_DETECTION_HARD /* The function to be executed by a dummy thread. */ static void * dummy_thread_func (void *arg) { return arg; } int glthread_in_use (void) { static int tested; static int result; /* 1: linked with -lpthread, 0: only with libc */ if (!tested) { pthread_t thread; if (pthread_create (&thread, NULL, dummy_thread_func, NULL) != 0) /* Thread creation failed. */ result = 0; else { /* Thread creation works. */ void *retval; if (pthread_join (thread, &retval) != 0) abort (); result = 1; } tested = 1; } return result; } # endif /* -------------------------- gl_lock_t datatype -------------------------- */ /* ------------------------- gl_rwlock_t datatype ------------------------- */ # if HAVE_PTHREAD_RWLOCK # if !defined PTHREAD_RWLOCK_INITIALIZER void glthread_rwlock_init (gl_rwlock_t *lock) { if (pthread_rwlock_init (&lock->rwlock, NULL) != 0) abort (); lock->initialized = 1; } void glthread_rwlock_rdlock (gl_rwlock_t *lock) { if (!lock->initialized) { if (pthread_mutex_lock (&lock->guard) != 0) abort (); if (!lock->initialized) glthread_rwlock_init (lock); if (pthread_mutex_unlock (&lock->guard) != 0) abort (); } if (pthread_rwlock_rdlock (&lock->rwlock) != 0) abort (); } void glthread_rwlock_wrlock (gl_rwlock_t *lock) { if (!lock->initialized) { if (pthread_mutex_lock (&lock->guard) != 0) abort (); if (!lock->initialized) glthread_rwlock_init (lock); if (pthread_mutex_unlock (&lock->guard) != 0) abort (); } if (pthread_rwlock_wrlock (&lock->rwlock) != 0) abort (); } void glthread_rwlock_unlock (gl_rwlock_t *lock) { if (!lock->initialized) abort (); if (pthread_rwlock_unlock (&lock->rwlock) != 0) abort (); } void glthread_rwlock_destroy (gl_rwlock_t *lock) { if (!lock->initialized) abort (); if (pthread_rwlock_destroy (&lock->rwlock) != 0) abort (); lock->initialized = 0; } # endif # else void glthread_rwlock_init (gl_rwlock_t *lock) { if (pthread_mutex_init (&lock->lock, NULL) != 0) abort (); if (pthread_cond_init (&lock->waiting_readers, NULL) != 0) abort (); if (pthread_cond_init (&lock->waiting_writers, NULL) != 0) abort (); lock->waiting_writers_count = 0; lock->runcount = 0; } void glthread_rwlock_rdlock (gl_rwlock_t *lock) { if (pthread_mutex_lock (&lock->lock) != 0) abort (); /* Test whether only readers are currently running, and whether the runcount field will not overflow. */ /* POSIX says: "It is implementation-defined whether the calling thread acquires the lock when a writer does not hold the lock and there are writers blocked on the lock." Let's say, no: give the writers a higher priority. */ while (!(lock->runcount + 1 > 0 && lock->waiting_writers_count == 0)) { /* This thread has to wait for a while. Enqueue it among the waiting_readers. */ if (pthread_cond_wait (&lock->waiting_readers, &lock->lock) != 0) abort (); } lock->runcount++; if (pthread_mutex_unlock (&lock->lock) != 0) abort (); } void glthread_rwlock_wrlock (gl_rwlock_t *lock) { if (pthread_mutex_lock (&lock->lock) != 0) abort (); /* Test whether no readers or writers are currently running. */ while (!(lock->runcount == 0)) { /* This thread has to wait for a while. Enqueue it among the waiting_writers. */ lock->waiting_writers_count++; if (pthread_cond_wait (&lock->waiting_writers, &lock->lock) != 0) abort (); lock->waiting_writers_count--; } lock->runcount--; /* runcount becomes -1 */ if (pthread_mutex_unlock (&lock->lock) != 0) abort (); } void glthread_rwlock_unlock (gl_rwlock_t *lock) { if (pthread_mutex_lock (&lock->lock) != 0) abort (); if (lock->runcount < 0) { /* Drop a writer lock. */ if (!(lock->runcount == -1)) abort (); lock->runcount = 0; } else { /* Drop a reader lock. */ if (!(lock->runcount > 0)) abort (); lock->runcount--; } if (lock->runcount == 0) { /* POSIX recommends that "write locks shall take precedence over read locks", to avoid "writer starvation". */ if (lock->waiting_writers_count > 0) { /* Wake up one of the waiting writers. */ if (pthread_cond_signal (&lock->waiting_writers) != 0) abort (); } else { /* Wake up all waiting readers. */ if (pthread_cond_broadcast (&lock->waiting_readers) != 0) abort (); } } if (pthread_mutex_unlock (&lock->lock) != 0) abort (); } void glthread_rwlock_destroy (gl_rwlock_t *lock) { if (pthread_mutex_destroy (&lock->lock) != 0) abort (); if (pthread_cond_destroy (&lock->waiting_readers) != 0) abort (); if (pthread_cond_destroy (&lock->waiting_writers) != 0) abort (); } # endif /* --------------------- gl_recursive_lock_t datatype --------------------- */ # if HAVE_PTHREAD_MUTEX_RECURSIVE # if !(defined PTHREAD_RECURSIVE_MUTEX_INITIALIZER || defined PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP) void glthread_recursive_lock_init (gl_recursive_lock_t *lock) { pthread_mutexattr_t attributes; if (pthread_mutexattr_init (&attributes) != 0) abort (); if (pthread_mutexattr_settype (&attributes, PTHREAD_MUTEX_RECURSIVE) != 0) abort (); if (pthread_mutex_init (&lock->recmutex, &attributes) != 0) abort (); if (pthread_mutexattr_destroy (&attributes) != 0) abort (); lock->initialized = 1; } void glthread_recursive_lock_lock (gl_recursive_lock_t *lock) { if (!lock->initialized) { if (pthread_mutex_lock (&lock->guard) != 0) abort (); if (!lock->initialized) glthread_recursive_lock_init (lock); if (pthread_mutex_unlock (&lock->guard) != 0) abort (); } if (pthread_mutex_lock (&lock->recmutex) != 0) abort (); } void glthread_recursive_lock_unlock (gl_recursive_lock_t *lock) { if (!lock->initialized) abort (); if (pthread_mutex_unlock (&lock->recmutex) != 0) abort (); } void glthread_recursive_lock_destroy (gl_recursive_lock_t *lock) { if (!lock->initialized) abort (); if (pthread_mutex_destroy (&lock->recmutex) != 0) abort (); lock->initialized = 0; } # endif # else void glthread_recursive_lock_init (gl_recursive_lock_t *lock) { if (pthread_mutex_init (&lock->mutex, NULL) != 0) abort (); lock->owner = (pthread_t) 0; lock->depth = 0; } void glthread_recursive_lock_lock (gl_recursive_lock_t *lock) { pthread_t self = pthread_self (); if (lock->owner != self) { if (pthread_mutex_lock (&lock->mutex) != 0) abort (); lock->owner = self; } if (++(lock->depth) == 0) /* wraparound? */ abort (); } void glthread_recursive_lock_unlock (gl_recursive_lock_t *lock) { if (lock->owner != pthread_self ()) abort (); if (lock->depth == 0) abort (); if (--(lock->depth) == 0) { lock->owner = (pthread_t) 0; if (pthread_mutex_unlock (&lock->mutex) != 0) abort (); } } void glthread_recursive_lock_destroy (gl_recursive_lock_t *lock) { if (lock->owner != (pthread_t) 0) abort (); if (pthread_mutex_destroy (&lock->mutex) != 0) abort (); } # endif /* -------------------------- gl_once_t datatype -------------------------- */ static const pthread_once_t fresh_once = PTHREAD_ONCE_INIT; int glthread_once_singlethreaded (pthread_once_t *once_control) { /* We don't know whether pthread_once_t is an integer type, a floating-point type, a pointer type, or a structure type. */ char *firstbyte = (char *)once_control; if (*firstbyte == *(const char *)&fresh_once) { /* First time use of once_control. Invert the first byte. */ *firstbyte = ~ *(const char *)&fresh_once; return 1; } else return 0; } #endif /* ========================================================================= */ #if USE_PTH_THREADS /* Use the GNU Pth threads library. */ /* -------------------------- gl_lock_t datatype -------------------------- */ /* ------------------------- gl_rwlock_t datatype ------------------------- */ /* --------------------- gl_recursive_lock_t datatype --------------------- */ /* -------------------------- gl_once_t datatype -------------------------- */ void glthread_once_call (void *arg) { void (**gl_once_temp_addr) (void) = (void (**) (void)) arg; void (*initfunction) (void) = *gl_once_temp_addr; initfunction (); } int glthread_once_singlethreaded (pth_once_t *once_control) { /* We know that pth_once_t is an integer type. */ if (*once_control == PTH_ONCE_INIT) { /* First time use of once_control. Invert the marker. */ *once_control = ~ PTH_ONCE_INIT; return 1; } else return 0; } #endif /* ========================================================================= */ #if USE_SOLARIS_THREADS /* Use the old Solaris threads library. */ /* -------------------------- gl_lock_t datatype -------------------------- */ /* ------------------------- gl_rwlock_t datatype ------------------------- */ /* --------------------- gl_recursive_lock_t datatype --------------------- */ void glthread_recursive_lock_init (gl_recursive_lock_t *lock) { if (mutex_init (&lock->mutex, USYNC_THREAD, NULL) != 0) abort (); lock->owner = (thread_t) 0; lock->depth = 0; } void glthread_recursive_lock_lock (gl_recursive_lock_t *lock) { thread_t self = thr_self (); if (lock->owner != self) { if (mutex_lock (&lock->mutex) != 0) abort (); lock->owner = self; } if (++(lock->depth) == 0) /* wraparound? */ abort (); } void glthread_recursive_lock_unlock (gl_recursive_lock_t *lock) { if (lock->owner != thr_self ()) abort (); if (lock->depth == 0) abort (); if (--(lock->depth) == 0) { lock->owner = (thread_t) 0; if (mutex_unlock (&lock->mutex) != 0) abort (); } } void glthread_recursive_lock_destroy (gl_recursive_lock_t *lock) { if (lock->owner != (thread_t) 0) abort (); if (mutex_destroy (&lock->mutex) != 0) abort (); } /* -------------------------- gl_once_t datatype -------------------------- */ void glthread_once (gl_once_t *once_control, void (*initfunction) (void)) { if (!once_control->inited) { /* Use the mutex to guarantee that if another thread is already calling the initfunction, this thread waits until it's finished. */ if (mutex_lock (&once_control->mutex) != 0) abort (); if (!once_control->inited) { once_control->inited = 1; initfunction (); } if (mutex_unlock (&once_control->mutex) != 0) abort (); } } int glthread_once_singlethreaded (gl_once_t *once_control) { /* We know that gl_once_t contains an integer type. */ if (!once_control->inited) { /* First time use of once_control. Invert the marker. */ once_control->inited = ~ 0; return 1; } else return 0; } #endif /* ========================================================================= */ #if USE_WIN32_THREADS /* -------------------------- gl_lock_t datatype -------------------------- */ void glthread_lock_init (gl_lock_t *lock) { InitializeCriticalSection (&lock->lock); lock->guard.done = 1; } void glthread_lock_lock (gl_lock_t *lock) { if (!lock->guard.done) { if (InterlockedIncrement (&lock->guard.started) == 0) /* This thread is the first one to need this lock. Initialize it. */ glthread_lock_init (lock); else /* Yield the CPU while waiting for another thread to finish initializing this lock. */ while (!lock->guard.done) Sleep (0); } EnterCriticalSection (&lock->lock); } void glthread_lock_unlock (gl_lock_t *lock) { if (!lock->guard.done) abort (); LeaveCriticalSection (&lock->lock); } void glthread_lock_destroy (gl_lock_t *lock) { if (!lock->guard.done) abort (); DeleteCriticalSection (&lock->lock); lock->guard.done = 0; } /* ------------------------- gl_rwlock_t datatype ------------------------- */ static inline void gl_waitqueue_init (gl_waitqueue_t *wq) { wq->array = NULL; wq->count = 0; wq->alloc = 0; wq->offset = 0; } /* Enqueues the current thread, represented by an event, in a wait queue. Returns INVALID_HANDLE_VALUE if an allocation failure occurs. */ static HANDLE gl_waitqueue_add (gl_waitqueue_t *wq) { HANDLE event; unsigned int index; if (wq->count == wq->alloc) { unsigned int new_alloc = 2 * wq->alloc + 1; HANDLE *new_array = (HANDLE *) realloc (wq->array, new_alloc * sizeof (HANDLE)); if (new_array == NULL) /* No more memory. */ return INVALID_HANDLE_VALUE; /* Now is a good opportunity to rotate the array so that its contents starts at offset 0. */ if (wq->offset > 0) { unsigned int old_count = wq->count; unsigned int old_alloc = wq->alloc; unsigned int old_offset = wq->offset; unsigned int i; if (old_offset + old_count > old_alloc) { unsigned int limit = old_offset + old_count - old_alloc; for (i = 0; i < limit; i++) new_array[old_alloc + i] = new_array[i]; } for (i = 0; i < old_count; i++) new_array[i] = new_array[old_offset + i]; wq->offset = 0; } wq->array = new_array; wq->alloc = new_alloc; } event = CreateEvent (NULL, TRUE, FALSE, NULL); if (event == INVALID_HANDLE_VALUE) /* No way to allocate an event. */ return INVALID_HANDLE_VALUE; index = wq->offset + wq->count; if (index >= wq->alloc) index -= wq->alloc; wq->array[index] = event; wq->count++; return event; } /* Notifies the first thread from a wait queue and dequeues it. */ static inline void gl_waitqueue_notify_first (gl_waitqueue_t *wq) { SetEvent (wq->array[wq->offset + 0]); wq->offset++; wq->count--; if (wq->count == 0 || wq->offset == wq->alloc) wq->offset = 0; } /* Notifies all threads from a wait queue and dequeues them all. */ static inline void gl_waitqueue_notify_all (gl_waitqueue_t *wq) { unsigned int i; for (i = 0; i < wq->count; i++) { unsigned int index = wq->offset + i; if (index >= wq->alloc) index -= wq->alloc; SetEvent (wq->array[index]); } wq->count = 0; wq->offset = 0; } void glthread_rwlock_init (gl_rwlock_t *lock) { InitializeCriticalSection (&lock->lock); gl_waitqueue_init (&lock->waiting_readers); gl_waitqueue_init (&lock->waiting_writers); lock->runcount = 0; lock->guard.done = 1; } void glthread_rwlock_rdlock (gl_rwlock_t *lock) { if (!lock->guard.done) { if (InterlockedIncrement (&lock->guard.started) == 0) /* This thread is the first one to need this lock. Initialize it. */ glthread_rwlock_init (lock); else /* Yield the CPU while waiting for another thread to finish initializing this lock. */ while (!lock->guard.done) Sleep (0); } EnterCriticalSection (&lock->lock); /* Test whether only readers are currently running, and whether the runcount field will not overflow. */ if (!(lock->runcount + 1 > 0)) { /* This thread has to wait for a while. Enqueue it among the waiting_readers. */ HANDLE event = gl_waitqueue_add (&lock->waiting_readers); if (event != INVALID_HANDLE_VALUE) { DWORD result; LeaveCriticalSection (&lock->lock); /* Wait until another thread signals this event. */ result = WaitForSingleObject (event, INFINITE); if (result == WAIT_FAILED || result == WAIT_TIMEOUT) abort (); CloseHandle (event); /* The thread which signalled the event already did the bookkeeping: removed us from the waiting_readers, incremented lock->runcount. */ if (!(lock->runcount > 0)) abort (); return; } else { /* Allocation failure. Weird. */ do { LeaveCriticalSection (&lock->lock); Sleep (1); EnterCriticalSection (&lock->lock); } while (!(lock->runcount + 1 > 0)); } } lock->runcount++; LeaveCriticalSection (&lock->lock); } void glthread_rwlock_wrlock (gl_rwlock_t *lock) { if (!lock->guard.done) { if (InterlockedIncrement (&lock->guard.started) == 0) /* This thread is the first one to need this lock. Initialize it. */ glthread_rwlock_init (lock); else /* Yield the CPU while waiting for another thread to finish initializing this lock. */ while (!lock->guard.done) Sleep (0); } EnterCriticalSection (&lock->lock); /* Test whether no readers or writers are currently running. */ if (!(lock->runcount == 0)) { /* This thread has to wait for a while. Enqueue it among the waiting_writers. */ HANDLE event = gl_waitqueue_add (&lock->waiting_writers); if (event != INVALID_HANDLE_VALUE) { DWORD result; LeaveCriticalSection (&lock->lock); /* Wait until another thread signals this event. */ result = WaitForSingleObject (event, INFINITE); if (result == WAIT_FAILED || result == WAIT_TIMEOUT) abort (); CloseHandle (event); /* The thread which signalled the event already did the bookkeeping: removed us from the waiting_writers, set lock->runcount = -1. */ if (!(lock->runcount == -1)) abort (); return; } else { /* Allocation failure. Weird. */ do { LeaveCriticalSection (&lock->lock); Sleep (1); EnterCriticalSection (&lock->lock); } while (!(lock->runcount == 0)); } } lock->runcount--; /* runcount becomes -1 */ LeaveCriticalSection (&lock->lock); } void glthread_rwlock_unlock (gl_rwlock_t *lock) { if (!lock->guard.done) abort (); EnterCriticalSection (&lock->lock); if (lock->runcount < 0) { /* Drop a writer lock. */ if (!(lock->runcount == -1)) abort (); lock->runcount = 0; } else { /* Drop a reader lock. */ if (!(lock->runcount > 0)) abort (); lock->runcount--; } if (lock->runcount == 0) { /* POSIX recommends that "write locks shall take precedence over read locks", to avoid "writer starvation". */ if (lock->waiting_writers.count > 0) { /* Wake up one of the waiting writers. */ lock->runcount--; gl_waitqueue_notify_first (&lock->waiting_writers); } else { /* Wake up all waiting readers. */ lock->runcount += lock->waiting_readers.count; gl_waitqueue_notify_all (&lock->waiting_readers); } } LeaveCriticalSection (&lock->lock); } void glthread_rwlock_destroy (gl_rwlock_t *lock) { if (!lock->guard.done) abort (); if (lock->runcount != 0) abort (); DeleteCriticalSection (&lock->lock); if (lock->waiting_readers.array != NULL) free (lock->waiting_readers.array); if (lock->waiting_writers.array != NULL) free (lock->waiting_writers.array); lock->guard.done = 0; } /* --------------------- gl_recursive_lock_t datatype --------------------- */ void glthread_recursive_lock_init (gl_recursive_lock_t *lock) { lock->owner = 0; lock->depth = 0; InitializeCriticalSection (&lock->lock); lock->guard.done = 1; } void glthread_recursive_lock_lock (gl_recursive_lock_t *lock) { if (!lock->guard.done) { if (InterlockedIncrement (&lock->guard.started) == 0) /* This thread is the first one to need this lock. Initialize it. */ glthread_recursive_lock_init (lock); else /* Yield the CPU while waiting for another thread to finish initializing this lock. */ while (!lock->guard.done) Sleep (0); } { DWORD self = GetCurrentThreadId (); if (lock->owner != self) { EnterCriticalSection (&lock->lock); lock->owner = self; } if (++(lock->depth) == 0) /* wraparound? */ abort (); } } void glthread_recursive_lock_unlock (gl_recursive_lock_t *lock) { if (lock->owner != GetCurrentThreadId ()) abort (); if (lock->depth == 0) abort (); if (--(lock->depth) == 0) { lock->owner = 0; LeaveCriticalSection (&lock->lock); } } void glthread_recursive_lock_destroy (gl_recursive_lock_t *lock) { if (lock->owner != 0) abort (); DeleteCriticalSection (&lock->lock); lock->guard.done = 0; } /* -------------------------- gl_once_t datatype -------------------------- */ void glthread_once (gl_once_t *once_control, void (*initfunction) (void)) { if (once_control->inited <= 0) { if (InterlockedIncrement (&once_control->started) == 0) { /* This thread is the first one to come to this once_control. */ InitializeCriticalSection (&once_control->lock); EnterCriticalSection (&once_control->lock); once_control->inited = 0; initfunction (); once_control->inited = 1; LeaveCriticalSection (&once_control->lock); } else { /* Undo last operation. */ InterlockedDecrement (&once_control->started); /* Some other thread has already started the initialization. Yield the CPU while waiting for the other thread to finish initializing and taking the lock. */ while (once_control->inited < 0) Sleep (0); if (once_control->inited <= 0) { /* Take the lock. This blocks until the other thread has finished calling the initfunction. */ EnterCriticalSection (&once_control->lock); LeaveCriticalSection (&once_control->lock); if (!(once_control->inited > 0)) abort (); } } } } #endif /* ========================================================================= */ enscript-1.6.5.90/intl/printf-parse.h0000644000175000017500000000421311606344061014254 00000000000000/* Parse printf format string. Copyright (C) 1999, 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 Library 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 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef _PRINTF_PARSE_H #define _PRINTF_PARSE_H #include "printf-args.h" /* Flags */ #define FLAG_GROUP 1 /* ' flag */ #define FLAG_LEFT 2 /* - flag */ #define FLAG_SHOWSIGN 4 /* + flag */ #define FLAG_SPACE 8 /* space flag */ #define FLAG_ALT 16 /* # flag */ #define FLAG_ZERO 32 /* arg_index value indicating that no argument is consumed. */ #define ARG_NONE (~(size_t)0) /* A parsed directive. */ typedef struct { const char* dir_start; const char* dir_end; int flags; const char* width_start; const char* width_end; size_t width_arg_index; const char* precision_start; const char* precision_end; size_t precision_arg_index; char conversion; /* d i o u x X f e E g G c s p n U % but not C S */ size_t arg_index; } char_directive; /* A parsed format string. */ typedef struct { size_t count; char_directive *dir; size_t max_width_length; size_t max_precision_length; } char_directives; /* Parses the format string. Fills in the number N of directives, and fills in directives[0], ..., directives[N-1], and sets directives[N].dir_start to the end of the format string. Also fills in the arg_type fields of the arguments and the needed count of arguments. */ #ifdef STATIC STATIC #else extern #endif int printf_parse (const char *format, char_directives *d, arguments *a); #endif /* _PRINTF_PARSE_H */ enscript-1.6.5.90/intl/tsearch.h0000644000175000017500000000536611606344062013306 00000000000000/* Binary tree data structure. Copyright (C) 2006 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 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 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef _TSEARCH_H #define _TSEARCH_H #if HAVE_TSEARCH /* Get tseach(), tfind(), tdelete(), twalk() declarations. */ #include #else #ifdef __cplusplus extern "C" { #endif /* See , for details. */ typedef enum { preorder, postorder, endorder, leaf } VISIT; /* Searches an element in the tree *VROOTP that compares equal to KEY. If one is found, it is returned. Otherwise, a new element equal to KEY is inserted in the tree and is returned. */ extern void * tsearch (const void *key, void **vrootp, int (*compar) (const void *, const void *)); /* Searches an element in the tree *VROOTP that compares equal to KEY. If one is found, it is returned. Otherwise, NULL is returned. */ extern void * tfind (const void *key, void *const *vrootp, int (*compar) (const void *, const void *)); /* Searches an element in the tree *VROOTP that compares equal to KEY. If one is found, it is removed from the tree, and its parent node is returned. Otherwise, NULL is returned. */ extern void * tdelete (const void *key, void **vrootp, int (*compar) (const void *, const void *)); /* Perform a depth-first, left-to-right traversal of the tree VROOT. The ACTION function is called: - for non-leaf nodes: 3 times, before the left subtree traversal, after the left subtree traversal but before the right subtree traversal, and after the right subtree traversal, - for leaf nodes: once. The arguments passed to ACTION are: 1. the node; it can be casted to a 'const void * const *', i.e. into a pointer to the key, 2. an indicator which visit of the node this is, 3. the level of the node in the tree (0 for the root). */ extern void twalk (const void *vroot, void (*action) (const void *, VISIT, int)); #ifdef __cplusplus } #endif #endif #endif /* _TSEARCH_H */ enscript-1.6.5.90/intl/relocatable.c0000644000175000017500000003353411606344061014122 00000000000000/* Provide relocatable packages. Copyright (C) 2003-2006 Free Software Foundation, Inc. Written by Bruno Haible , 2003. 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 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 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* Tell glibc's to provide a prototype for getline(). This must come before because may include , and once has been included, it's too late. */ #ifndef _GNU_SOURCE # define _GNU_SOURCE 1 #endif #include /* Specification. */ #include "relocatable.h" #if ENABLE_RELOCATABLE #include #include #include #include #ifdef NO_XMALLOC # define xmalloc malloc #else # include "xalloc.h" #endif #if defined _WIN32 || defined __WIN32__ || defined __CYGWIN__ # define WIN32_LEAN_AND_MEAN # include #endif #if DEPENDS_ON_LIBCHARSET # include #endif #if DEPENDS_ON_LIBICONV && HAVE_ICONV # include #endif #if DEPENDS_ON_LIBINTL && ENABLE_NLS # include #endif /* Faked cheap 'bool'. */ #undef bool #undef false #undef true #define bool int #define false 0 #define true 1 /* Pathname support. ISSLASH(C) tests whether C is a directory separator character. IS_PATH_WITH_DIR(P) tests whether P contains a directory specification. */ #if defined _WIN32 || defined __WIN32__ || defined __CYGWIN__ || defined __EMX__ || defined __DJGPP__ /* Win32, Cygwin, OS/2, DOS */ # define ISSLASH(C) ((C) == '/' || (C) == '\\') # define HAS_DEVICE(P) \ ((((P)[0] >= 'A' && (P)[0] <= 'Z') || ((P)[0] >= 'a' && (P)[0] <= 'z')) \ && (P)[1] == ':') # define IS_PATH_WITH_DIR(P) \ (strchr (P, '/') != NULL || strchr (P, '\\') != NULL || HAS_DEVICE (P)) # define FILE_SYSTEM_PREFIX_LEN(P) (HAS_DEVICE (P) ? 2 : 0) #else /* Unix */ # define ISSLASH(C) ((C) == '/') # define IS_PATH_WITH_DIR(P) (strchr (P, '/') != NULL) # define FILE_SYSTEM_PREFIX_LEN(P) 0 #endif /* Original installation prefix. */ static char *orig_prefix; static size_t orig_prefix_len; /* Current installation prefix. */ static char *curr_prefix; static size_t curr_prefix_len; /* These prefixes do not end in a slash. Anything that will be concatenated to them must start with a slash. */ /* Sets the original and the current installation prefix of this module. Relocation simply replaces a pathname starting with the original prefix by the corresponding pathname with the current prefix instead. Both prefixes should be directory names without trailing slash (i.e. use "" instead of "/"). */ static void set_this_relocation_prefix (const char *orig_prefix_arg, const char *curr_prefix_arg) { if (orig_prefix_arg != NULL && curr_prefix_arg != NULL /* Optimization: if orig_prefix and curr_prefix are equal, the relocation is a nop. */ && strcmp (orig_prefix_arg, curr_prefix_arg) != 0) { /* Duplicate the argument strings. */ char *memory; orig_prefix_len = strlen (orig_prefix_arg); curr_prefix_len = strlen (curr_prefix_arg); memory = (char *) xmalloc (orig_prefix_len + 1 + curr_prefix_len + 1); #ifdef NO_XMALLOC if (memory != NULL) #endif { memcpy (memory, orig_prefix_arg, orig_prefix_len + 1); orig_prefix = memory; memory += orig_prefix_len + 1; memcpy (memory, curr_prefix_arg, curr_prefix_len + 1); curr_prefix = memory; return; } } orig_prefix = NULL; curr_prefix = NULL; /* Don't worry about wasted memory here - this function is usually only called once. */ } /* Sets the original and the current installation prefix of the package. Relocation simply replaces a pathname starting with the original prefix by the corresponding pathname with the current prefix instead. Both prefixes should be directory names without trailing slash (i.e. use "" instead of "/"). */ void set_relocation_prefix (const char *orig_prefix_arg, const char *curr_prefix_arg) { set_this_relocation_prefix (orig_prefix_arg, curr_prefix_arg); /* Now notify all dependent libraries. */ #if DEPENDS_ON_LIBCHARSET libcharset_set_relocation_prefix (orig_prefix_arg, curr_prefix_arg); #endif #if DEPENDS_ON_LIBICONV && HAVE_ICONV && _LIBICONV_VERSION >= 0x0109 libiconv_set_relocation_prefix (orig_prefix_arg, curr_prefix_arg); #endif #if DEPENDS_ON_LIBINTL && ENABLE_NLS && defined libintl_set_relocation_prefix libintl_set_relocation_prefix (orig_prefix_arg, curr_prefix_arg); #endif } #if !defined IN_LIBRARY || (defined PIC && defined INSTALLDIR) /* Convenience function: Computes the current installation prefix, based on the original installation prefix, the original installation directory of a particular file, and the current pathname of this file. Returns NULL upon failure. */ #ifdef IN_LIBRARY #define compute_curr_prefix local_compute_curr_prefix static #endif const char * compute_curr_prefix (const char *orig_installprefix, const char *orig_installdir, const char *curr_pathname) { const char *curr_installdir; const char *rel_installdir; if (curr_pathname == NULL) return NULL; /* Determine the relative installation directory, relative to the prefix. This is simply the difference between orig_installprefix and orig_installdir. */ if (strncmp (orig_installprefix, orig_installdir, strlen (orig_installprefix)) != 0) /* Shouldn't happen - nothing should be installed outside $(prefix). */ return NULL; rel_installdir = orig_installdir + strlen (orig_installprefix); /* Determine the current installation directory. */ { const char *p_base = curr_pathname + FILE_SYSTEM_PREFIX_LEN (curr_pathname); const char *p = curr_pathname + strlen (curr_pathname); char *q; while (p > p_base) { p--; if (ISSLASH (*p)) break; } q = (char *) xmalloc (p - curr_pathname + 1); #ifdef NO_XMALLOC if (q == NULL) return NULL; #endif memcpy (q, curr_pathname, p - curr_pathname); q[p - curr_pathname] = '\0'; curr_installdir = q; } /* Compute the current installation prefix by removing the trailing rel_installdir from it. */ { const char *rp = rel_installdir + strlen (rel_installdir); const char *cp = curr_installdir + strlen (curr_installdir); const char *cp_base = curr_installdir + FILE_SYSTEM_PREFIX_LEN (curr_installdir); while (rp > rel_installdir && cp > cp_base) { bool same = false; const char *rpi = rp; const char *cpi = cp; while (rpi > rel_installdir && cpi > cp_base) { rpi--; cpi--; if (ISSLASH (*rpi) || ISSLASH (*cpi)) { if (ISSLASH (*rpi) && ISSLASH (*cpi)) same = true; break; } /* Do case-insensitive comparison if the filesystem is always or often case-insensitive. It's better to accept the comparison if the difference is only in case, rather than to fail. */ #if defined _WIN32 || defined __WIN32__ || defined __CYGWIN__ || defined __EMX__ || defined __DJGPP__ /* Win32, Cygwin, OS/2, DOS - case insignificant filesystem */ if ((*rpi >= 'a' && *rpi <= 'z' ? *rpi - 'a' + 'A' : *rpi) != (*cpi >= 'a' && *cpi <= 'z' ? *cpi - 'a' + 'A' : *cpi)) break; #else if (*rpi != *cpi) break; #endif } if (!same) break; /* The last pathname component was the same. opi and cpi now point to the slash before it. */ rp = rpi; cp = cpi; } if (rp > rel_installdir) /* Unexpected: The curr_installdir does not end with rel_installdir. */ return NULL; { size_t curr_prefix_len = cp - curr_installdir; char *curr_prefix; curr_prefix = (char *) xmalloc (curr_prefix_len + 1); #ifdef NO_XMALLOC if (curr_prefix == NULL) return NULL; #endif memcpy (curr_prefix, curr_installdir, curr_prefix_len); curr_prefix[curr_prefix_len] = '\0'; return curr_prefix; } } } #endif /* !IN_LIBRARY || PIC */ #if defined PIC && defined INSTALLDIR /* Full pathname of shared library, or NULL. */ static char *shared_library_fullname; #if defined _WIN32 || defined __WIN32__ || defined __CYGWIN__ /* Determine the full pathname of the shared library when it is loaded. */ BOOL WINAPI DllMain (HINSTANCE module_handle, DWORD event, LPVOID reserved) { (void) reserved; if (event == DLL_PROCESS_ATTACH) { /* The DLL is being loaded into an application's address range. */ static char location[MAX_PATH]; if (!GetModuleFileName (module_handle, location, sizeof (location))) /* Shouldn't happen. */ return FALSE; if (!IS_PATH_WITH_DIR (location)) /* Shouldn't happen. */ return FALSE; { #if defined __CYGWIN__ /* On Cygwin, we need to convert paths coming from Win32 system calls to the Unix-like slashified notation. */ static char location_as_posix_path[2 * MAX_PATH]; /* There's no error return defined for cygwin_conv_to_posix_path. See cygwin-api/func-cygwin-conv-to-posix-path.html. Does it overflow the buffer of expected size MAX_PATH or does it truncate the path? I don't know. Let's catch both. */ cygwin_conv_to_posix_path (location, location_as_posix_path); location_as_posix_path[MAX_PATH - 1] = '\0'; if (strlen (location_as_posix_path) >= MAX_PATH - 1) /* A sign of buffer overflow or path truncation. */ return FALSE; shared_library_fullname = strdup (location_as_posix_path); #else shared_library_fullname = strdup (location); #endif } } return TRUE; } #else /* Unix except Cygwin */ static void find_shared_library_fullname () { #if defined __linux__ && __GLIBC__ >= 2 /* Linux has /proc/self/maps. glibc 2 has the getline() function. */ FILE *fp; /* Open the current process' maps file. It describes one VMA per line. */ fp = fopen ("/proc/self/maps", "r"); if (fp) { unsigned long address = (unsigned long) &find_shared_library_fullname; for (;;) { unsigned long start, end; int c; if (fscanf (fp, "%lx-%lx", &start, &end) != 2) break; if (address >= start && address <= end - 1) { /* Found it. Now see if this line contains a filename. */ while (c = getc (fp), c != EOF && c != '\n' && c != '/') continue; if (c == '/') { size_t size; int len; ungetc (c, fp); shared_library_fullname = NULL; size = 0; len = getline (&shared_library_fullname, &size, fp); if (len >= 0) { /* Success: filled shared_library_fullname. */ if (len > 0 && shared_library_fullname[len - 1] == '\n') shared_library_fullname[len - 1] = '\0'; } } break; } while (c = getc (fp), c != EOF && c != '\n') continue; } fclose (fp); } #endif } #endif /* (WIN32 or Cygwin) / (Unix except Cygwin) */ /* Return the full pathname of the current shared library. Return NULL if unknown. Guaranteed to work only on Linux, Cygwin and Woe32. */ static char * get_shared_library_fullname () { #if !(defined _WIN32 || defined __WIN32__ || defined __CYGWIN__) static bool tried_find_shared_library_fullname; if (!tried_find_shared_library_fullname) { find_shared_library_fullname (); tried_find_shared_library_fullname = true; } #endif return shared_library_fullname; } #endif /* PIC */ /* Returns the pathname, relocated according to the current installation directory. */ const char * relocate (const char *pathname) { #if defined PIC && defined INSTALLDIR static int initialized; /* Initialization code for a shared library. */ if (!initialized) { /* At this point, orig_prefix and curr_prefix likely have already been set through the main program's set_program_name_and_installdir function. This is sufficient in the case that the library has initially been installed in the same orig_prefix. But we can do better, to also cover the cases that 1. it has been installed in a different prefix before being moved to orig_prefix and (later) to curr_prefix, 2. unlike the program, it has not moved away from orig_prefix. */ const char *orig_installprefix = INSTALLPREFIX; const char *orig_installdir = INSTALLDIR; const char *curr_prefix_better; curr_prefix_better = compute_curr_prefix (orig_installprefix, orig_installdir, get_shared_library_fullname ()); if (curr_prefix_better == NULL) curr_prefix_better = curr_prefix; set_relocation_prefix (orig_installprefix, curr_prefix_better); initialized = 1; } #endif /* Note: It is not necessary to perform case insensitive comparison here, even for DOS-like filesystems, because the pathname argument was typically created from the same Makefile variable as orig_prefix came from. */ if (orig_prefix != NULL && curr_prefix != NULL && strncmp (pathname, orig_prefix, orig_prefix_len) == 0) { if (pathname[orig_prefix_len] == '\0') /* pathname equals orig_prefix. */ return curr_prefix; if (ISSLASH (pathname[orig_prefix_len])) { /* pathname starts with orig_prefix. */ const char *pathname_tail = &pathname[orig_prefix_len]; char *result = (char *) xmalloc (curr_prefix_len + strlen (pathname_tail) + 1); #ifdef NO_XMALLOC if (result != NULL) #endif { memcpy (result, curr_prefix, curr_prefix_len); strcpy (result + curr_prefix_len, pathname_tail); return result; } } } /* Nothing to relocate. */ return pathname; } #endif enscript-1.6.5.90/intl/printf-parse.c0000644000175000017500000003306011606344061014251 00000000000000/* Formatted output to strings. Copyright (C) 1999-2000, 2002-2003, 2006-2007 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 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 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* This file can be parametrized with the following macros: CHAR_T The element type of the format string. CHAR_T_ONLY_ASCII Set to 1 to enable verification that all characters in the format string are ASCII. DIRECTIVE Structure denoting a format directive. Depends on CHAR_T. DIRECTIVES Structure denoting the set of format directives of a format string. Depends on CHAR_T. PRINTF_PARSE Function that parses a format string. Depends on CHAR_T. STATIC Set to 'static' to declare the function static. ENABLE_UNISTDIO Set to 1 to enable the unistdio extensions. */ #ifndef PRINTF_PARSE # include #endif /* Specification. */ #ifndef PRINTF_PARSE # include "printf-parse.h" #endif /* Default parameters. */ #ifndef PRINTF_PARSE # define PRINTF_PARSE printf_parse # define CHAR_T char # define DIRECTIVE char_directive # define DIRECTIVES char_directives #endif /* Get size_t, NULL. */ #include /* Get intmax_t. */ #if defined IN_LIBINTL || defined IN_LIBASPRINTF # if HAVE_STDINT_H_WITH_UINTMAX # include # endif # if HAVE_INTTYPES_H_WITH_UINTMAX # include # endif #else # include #endif /* malloc(), realloc(), free(). */ #include /* errno. */ #include /* Checked size_t computations. */ #include "xsize.h" #if CHAR_T_ONLY_ASCII /* c_isascii(). */ # include "c-ctype.h" #endif #ifdef STATIC STATIC #endif int PRINTF_PARSE (const CHAR_T *format, DIRECTIVES *d, arguments *a) { const CHAR_T *cp = format; /* pointer into format */ size_t arg_posn = 0; /* number of regular arguments consumed */ size_t d_allocated; /* allocated elements of d->dir */ size_t a_allocated; /* allocated elements of a->arg */ size_t max_width_length = 0; size_t max_precision_length = 0; d->count = 0; d_allocated = 1; d->dir = (DIRECTIVE *) malloc (d_allocated * sizeof (DIRECTIVE)); if (d->dir == NULL) /* Out of memory. */ goto out_of_memory_1; a->count = 0; a_allocated = 0; a->arg = NULL; #define REGISTER_ARG(_index_,_type_) \ { \ size_t n = (_index_); \ if (n >= a_allocated) \ { \ size_t memory_size; \ argument *memory; \ \ a_allocated = xtimes (a_allocated, 2); \ if (a_allocated <= n) \ a_allocated = xsum (n, 1); \ memory_size = xtimes (a_allocated, sizeof (argument)); \ if (size_overflow_p (memory_size)) \ /* Overflow, would lead to out of memory. */ \ goto out_of_memory; \ memory = (argument *) (a->arg \ ? realloc (a->arg, memory_size) \ : malloc (memory_size)); \ if (memory == NULL) \ /* Out of memory. */ \ goto out_of_memory; \ a->arg = memory; \ } \ while (a->count <= n) \ a->arg[a->count++].type = TYPE_NONE; \ if (a->arg[n].type == TYPE_NONE) \ a->arg[n].type = (_type_); \ else if (a->arg[n].type != (_type_)) \ /* Ambiguous type for positional argument. */ \ goto error; \ } while (*cp != '\0') { CHAR_T c = *cp++; if (c == '%') { size_t arg_index = ARG_NONE; DIRECTIVE *dp = &d->dir[d->count]; /* pointer to next directive */ /* Initialize the next directive. */ dp->dir_start = cp - 1; dp->flags = 0; dp->width_start = NULL; dp->width_end = NULL; dp->width_arg_index = ARG_NONE; dp->precision_start = NULL; dp->precision_end = NULL; dp->precision_arg_index = ARG_NONE; dp->arg_index = ARG_NONE; /* Test for positional argument. */ if (*cp >= '0' && *cp <= '9') { const CHAR_T *np; for (np = cp; *np >= '0' && *np <= '9'; np++) ; if (*np == '$') { size_t n = 0; for (np = cp; *np >= '0' && *np <= '9'; np++) n = xsum (xtimes (n, 10), *np - '0'); if (n == 0) /* Positional argument 0. */ goto error; if (size_overflow_p (n)) /* n too large, would lead to out of memory later. */ goto error; arg_index = n - 1; cp = np + 1; } } /* Read the flags. */ for (;;) { if (*cp == '\'') { dp->flags |= FLAG_GROUP; cp++; } else if (*cp == '-') { dp->flags |= FLAG_LEFT; cp++; } else if (*cp == '+') { dp->flags |= FLAG_SHOWSIGN; cp++; } else if (*cp == ' ') { dp->flags |= FLAG_SPACE; cp++; } else if (*cp == '#') { dp->flags |= FLAG_ALT; cp++; } else if (*cp == '0') { dp->flags |= FLAG_ZERO; cp++; } else break; } /* Parse the field width. */ if (*cp == '*') { dp->width_start = cp; cp++; dp->width_end = cp; if (max_width_length < 1) max_width_length = 1; /* Test for positional argument. */ if (*cp >= '0' && *cp <= '9') { const CHAR_T *np; for (np = cp; *np >= '0' && *np <= '9'; np++) ; if (*np == '$') { size_t n = 0; for (np = cp; *np >= '0' && *np <= '9'; np++) n = xsum (xtimes (n, 10), *np - '0'); if (n == 0) /* Positional argument 0. */ goto error; if (size_overflow_p (n)) /* n too large, would lead to out of memory later. */ goto error; dp->width_arg_index = n - 1; cp = np + 1; } } if (dp->width_arg_index == ARG_NONE) { dp->width_arg_index = arg_posn++; if (dp->width_arg_index == ARG_NONE) /* arg_posn wrapped around. */ goto error; } REGISTER_ARG (dp->width_arg_index, TYPE_INT); } else if (*cp >= '0' && *cp <= '9') { size_t width_length; dp->width_start = cp; for (; *cp >= '0' && *cp <= '9'; cp++) ; dp->width_end = cp; width_length = dp->width_end - dp->width_start; if (max_width_length < width_length) max_width_length = width_length; } /* Parse the precision. */ if (*cp == '.') { cp++; if (*cp == '*') { dp->precision_start = cp - 1; cp++; dp->precision_end = cp; if (max_precision_length < 2) max_precision_length = 2; /* Test for positional argument. */ if (*cp >= '0' && *cp <= '9') { const CHAR_T *np; for (np = cp; *np >= '0' && *np <= '9'; np++) ; if (*np == '$') { size_t n = 0; for (np = cp; *np >= '0' && *np <= '9'; np++) n = xsum (xtimes (n, 10), *np - '0'); if (n == 0) /* Positional argument 0. */ goto error; if (size_overflow_p (n)) /* n too large, would lead to out of memory later. */ goto error; dp->precision_arg_index = n - 1; cp = np + 1; } } if (dp->precision_arg_index == ARG_NONE) { dp->precision_arg_index = arg_posn++; if (dp->precision_arg_index == ARG_NONE) /* arg_posn wrapped around. */ goto error; } REGISTER_ARG (dp->precision_arg_index, TYPE_INT); } else { size_t precision_length; dp->precision_start = cp - 1; for (; *cp >= '0' && *cp <= '9'; cp++) ; dp->precision_end = cp; precision_length = dp->precision_end - dp->precision_start; if (max_precision_length < precision_length) max_precision_length = precision_length; } } { arg_type type; /* Parse argument type/size specifiers. */ { int flags = 0; for (;;) { if (*cp == 'h') { flags |= (1 << (flags & 1)); cp++; } else if (*cp == 'L') { flags |= 4; cp++; } else if (*cp == 'l') { flags += 8; cp++; } else if (*cp == 'j') { if (sizeof (intmax_t) > sizeof (long)) { /* intmax_t = long long */ flags += 16; } else if (sizeof (intmax_t) > sizeof (int)) { /* intmax_t = long */ flags += 8; } cp++; } else if (*cp == 'z' || *cp == 'Z') { /* 'z' is standardized in ISO C 99, but glibc uses 'Z' because the warning facility in gcc-2.95.2 understands only 'Z' (see gcc-2.95.2/gcc/c-common.c:1784). */ if (sizeof (size_t) > sizeof (long)) { /* size_t = long long */ flags += 16; } else if (sizeof (size_t) > sizeof (int)) { /* size_t = long */ flags += 8; } cp++; } else if (*cp == 't') { if (sizeof (ptrdiff_t) > sizeof (long)) { /* ptrdiff_t = long long */ flags += 16; } else if (sizeof (ptrdiff_t) > sizeof (int)) { /* ptrdiff_t = long */ flags += 8; } cp++; } else break; } /* Read the conversion character. */ c = *cp++; switch (c) { case 'd': case 'i': #if HAVE_LONG_LONG_INT /* If 'long long' exists and is larger than 'long': */ if (flags >= 16 || (flags & 4)) type = TYPE_LONGLONGINT; else #endif /* If 'long long' exists and is the same as 'long', we parse "lld" into TYPE_LONGINT. */ if (flags >= 8) type = TYPE_LONGINT; else if (flags & 2) type = TYPE_SCHAR; else if (flags & 1) type = TYPE_SHORT; else type = TYPE_INT; break; case 'o': case 'u': case 'x': case 'X': #if HAVE_LONG_LONG_INT /* If 'long long' exists and is larger than 'long': */ if (flags >= 16 || (flags & 4)) type = TYPE_ULONGLONGINT; else #endif /* If 'unsigned long long' exists and is the same as 'unsigned long', we parse "llu" into TYPE_ULONGINT. */ if (flags >= 8) type = TYPE_ULONGINT; else if (flags & 2) type = TYPE_UCHAR; else if (flags & 1) type = TYPE_USHORT; else type = TYPE_UINT; break; case 'f': case 'F': case 'e': case 'E': case 'g': case 'G': case 'a': case 'A': if (flags >= 16 || (flags & 4)) type = TYPE_LONGDOUBLE; else type = TYPE_DOUBLE; break; case 'c': if (flags >= 8) #if HAVE_WINT_T type = TYPE_WIDE_CHAR; #else goto error; #endif else type = TYPE_CHAR; break; #if HAVE_WINT_T case 'C': type = TYPE_WIDE_CHAR; c = 'c'; break; #endif case 's': if (flags >= 8) #if HAVE_WCHAR_T type = TYPE_WIDE_STRING; #else goto error; #endif else type = TYPE_STRING; break; #if HAVE_WCHAR_T case 'S': type = TYPE_WIDE_STRING; c = 's'; break; #endif case 'p': type = TYPE_POINTER; break; case 'n': #if HAVE_LONG_LONG_INT /* If 'long long' exists and is larger than 'long': */ if (flags >= 16 || (flags & 4)) type = TYPE_COUNT_LONGLONGINT_POINTER; else #endif /* If 'long long' exists and is the same as 'long', we parse "lln" into TYPE_COUNT_LONGINT_POINTER. */ if (flags >= 8) type = TYPE_COUNT_LONGINT_POINTER; else if (flags & 2) type = TYPE_COUNT_SCHAR_POINTER; else if (flags & 1) type = TYPE_COUNT_SHORT_POINTER; else type = TYPE_COUNT_INT_POINTER; break; #if ENABLE_UNISTDIO /* The unistdio extensions. */ case 'U': if (flags >= 16) type = TYPE_U32_STRING; else if (flags >= 8) type = TYPE_U16_STRING; else type = TYPE_U8_STRING; break; #endif case '%': type = TYPE_NONE; break; default: /* Unknown conversion character. */ goto error; } } if (type != TYPE_NONE) { dp->arg_index = arg_index; if (dp->arg_index == ARG_NONE) { dp->arg_index = arg_posn++; if (dp->arg_index == ARG_NONE) /* arg_posn wrapped around. */ goto error; } REGISTER_ARG (dp->arg_index, type); } dp->conversion = c; dp->dir_end = cp; } d->count++; if (d->count >= d_allocated) { size_t memory_size; DIRECTIVE *memory; d_allocated = xtimes (d_allocated, 2); memory_size = xtimes (d_allocated, sizeof (DIRECTIVE)); if (size_overflow_p (memory_size)) /* Overflow, would lead to out of memory. */ goto out_of_memory; memory = (DIRECTIVE *) realloc (d->dir, memory_size); if (memory == NULL) /* Out of memory. */ goto out_of_memory; d->dir = memory; } } #if CHAR_T_ONLY_ASCII else if (!c_isascii (c)) { /* Non-ASCII character. Not supported. */ goto error; } #endif } d->dir[d->count].dir_start = cp; d->max_width_length = max_width_length; d->max_precision_length = max_precision_length; return 0; error: if (a->arg) free (a->arg); if (d->dir) free (d->dir); errno = EINVAL; return -1; out_of_memory: if (a->arg) free (a->arg); if (d->dir) free (d->dir); out_of_memory_1: errno = ENOMEM; return -1; } #undef PRINTF_PARSE #undef DIRECTIVES #undef DIRECTIVE #undef CHAR_T_ONLY_ASCII #undef CHAR_T enscript-1.6.5.90/intl/bindtextdom.c0000644000175000017500000002137211606344056014167 00000000000000/* Implementation of the bindtextdomain(3) function Copyright (C) 1995-1998, 2000-2003, 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 Library 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 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H # include #endif #include #include #include #include "gettextP.h" #ifdef _LIBC # include #else # include "libgnuintl.h" #endif /* Handle multi-threaded applications. */ #ifdef _LIBC # include # define gl_rwlock_define __libc_rwlock_define # define gl_rwlock_wrlock __libc_rwlock_wrlock # define gl_rwlock_unlock __libc_rwlock_unlock #else # include "lock.h" #endif /* Some compilers, like SunOS4 cc, don't have offsetof in . */ #ifndef offsetof # define offsetof(type,ident) ((size_t)&(((type*)0)->ident)) #endif /* @@ end of prolog @@ */ /* Lock variable to protect the global data in the gettext implementation. */ gl_rwlock_define (extern, _nl_state_lock attribute_hidden) /* Names for the libintl functions are a problem. They must not clash with existing names and they should follow ANSI C. But this source code is also used in GNU C Library where the names have a __ prefix. So we have to make a difference here. */ #ifdef _LIBC # define BINDTEXTDOMAIN __bindtextdomain # define BIND_TEXTDOMAIN_CODESET __bind_textdomain_codeset # ifndef strdup # define strdup(str) __strdup (str) # endif #else # define BINDTEXTDOMAIN libintl_bindtextdomain # define BIND_TEXTDOMAIN_CODESET libintl_bind_textdomain_codeset #endif /* Specifies the directory name *DIRNAMEP and the output codeset *CODESETP to be used for the DOMAINNAME message catalog. If *DIRNAMEP or *CODESETP is NULL, the corresponding attribute is not modified, only the current value is returned. If DIRNAMEP or CODESETP is NULL, the corresponding attribute is neither modified nor returned. */ static void set_binding_values (const char *domainname, const char **dirnamep, const char **codesetp) { struct binding *binding; int modified; /* Some sanity checks. */ if (domainname == NULL || domainname[0] == '\0') { if (dirnamep) *dirnamep = NULL; if (codesetp) *codesetp = NULL; return; } gl_rwlock_wrlock (_nl_state_lock); modified = 0; for (binding = _nl_domain_bindings; binding != NULL; binding = binding->next) { int compare = strcmp (domainname, binding->domainname); if (compare == 0) /* We found it! */ break; if (compare < 0) { /* It is not in the list. */ binding = NULL; break; } } if (binding != NULL) { if (dirnamep) { const char *dirname = *dirnamep; if (dirname == NULL) /* The current binding has be to returned. */ *dirnamep = binding->dirname; else { /* The domain is already bound. If the new value and the old one are equal we simply do nothing. Otherwise replace the old binding. */ char *result = binding->dirname; if (strcmp (dirname, result) != 0) { if (strcmp (dirname, _nl_default_dirname) == 0) result = (char *) _nl_default_dirname; else { #if defined _LIBC || defined HAVE_STRDUP result = strdup (dirname); #else size_t len = strlen (dirname) + 1; result = (char *) malloc (len); if (__builtin_expect (result != NULL, 1)) memcpy (result, dirname, len); #endif } if (__builtin_expect (result != NULL, 1)) { if (binding->dirname != _nl_default_dirname) free (binding->dirname); binding->dirname = result; modified = 1; } } *dirnamep = result; } } if (codesetp) { const char *codeset = *codesetp; if (codeset == NULL) /* The current binding has be to returned. */ *codesetp = binding->codeset; else { /* The domain is already bound. If the new value and the old one are equal we simply do nothing. Otherwise replace the old binding. */ char *result = binding->codeset; if (result == NULL || strcmp (codeset, result) != 0) { #if defined _LIBC || defined HAVE_STRDUP result = strdup (codeset); #else size_t len = strlen (codeset) + 1; result = (char *) malloc (len); if (__builtin_expect (result != NULL, 1)) memcpy (result, codeset, len); #endif if (__builtin_expect (result != NULL, 1)) { if (binding->codeset != NULL) free (binding->codeset); binding->codeset = result; modified = 1; } } *codesetp = result; } } } else if ((dirnamep == NULL || *dirnamep == NULL) && (codesetp == NULL || *codesetp == NULL)) { /* Simply return the default values. */ if (dirnamep) *dirnamep = _nl_default_dirname; if (codesetp) *codesetp = NULL; } else { /* We have to create a new binding. */ size_t len = strlen (domainname) + 1; struct binding *new_binding = (struct binding *) malloc (offsetof (struct binding, domainname) + len); if (__builtin_expect (new_binding == NULL, 0)) goto failed; memcpy (new_binding->domainname, domainname, len); if (dirnamep) { const char *dirname = *dirnamep; if (dirname == NULL) /* The default value. */ dirname = _nl_default_dirname; else { if (strcmp (dirname, _nl_default_dirname) == 0) dirname = _nl_default_dirname; else { char *result; #if defined _LIBC || defined HAVE_STRDUP result = strdup (dirname); if (__builtin_expect (result == NULL, 0)) goto failed_dirname; #else size_t len = strlen (dirname) + 1; result = (char *) malloc (len); if (__builtin_expect (result == NULL, 0)) goto failed_dirname; memcpy (result, dirname, len); #endif dirname = result; } } *dirnamep = dirname; new_binding->dirname = (char *) dirname; } else /* The default value. */ new_binding->dirname = (char *) _nl_default_dirname; if (codesetp) { const char *codeset = *codesetp; if (codeset != NULL) { char *result; #if defined _LIBC || defined HAVE_STRDUP result = strdup (codeset); if (__builtin_expect (result == NULL, 0)) goto failed_codeset; #else size_t len = strlen (codeset) + 1; result = (char *) malloc (len); if (__builtin_expect (result == NULL, 0)) goto failed_codeset; memcpy (result, codeset, len); #endif codeset = result; } *codesetp = codeset; new_binding->codeset = (char *) codeset; } else new_binding->codeset = NULL; /* Now enqueue it. */ if (_nl_domain_bindings == NULL || strcmp (domainname, _nl_domain_bindings->domainname) < 0) { new_binding->next = _nl_domain_bindings; _nl_domain_bindings = new_binding; } else { binding = _nl_domain_bindings; while (binding->next != NULL && strcmp (domainname, binding->next->domainname) > 0) binding = binding->next; new_binding->next = binding->next; binding->next = new_binding; } modified = 1; /* Here we deal with memory allocation failures. */ if (0) { failed_codeset: if (new_binding->dirname != _nl_default_dirname) free (new_binding->dirname); failed_dirname: free (new_binding); failed: if (dirnamep) *dirnamep = NULL; if (codesetp) *codesetp = NULL; } } /* If we modified any binding, we flush the caches. */ if (modified) ++_nl_msg_cat_cntr; gl_rwlock_unlock (_nl_state_lock); } /* Specify that the DOMAINNAME message catalog will be found in DIRNAME rather than in the system locale data base. */ char * BINDTEXTDOMAIN (const char *domainname, const char *dirname) { set_binding_values (domainname, &dirname, NULL); return (char *) dirname; } /* Specify the character encoding in which the messages from the DOMAINNAME message catalog will be returned. */ char * BIND_TEXTDOMAIN_CODESET (const char *domainname, const char *codeset) { set_binding_values (domainname, NULL, &codeset); return (char *) codeset; } #ifdef _LIBC /* Aliases for function names in GNU C Library. */ weak_alias (__bindtextdomain, bindtextdomain); weak_alias (__bind_textdomain_codeset, bind_textdomain_codeset); #endif enscript-1.6.5.90/intl/printf-args.h0000644000175000017500000000662111606344061014103 00000000000000/* Decomposed printf argument list. Copyright (C) 1999, 2002-2003, 2006-2007 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 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 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef _PRINTF_ARGS_H #define _PRINTF_ARGS_H /* This file can be parametrized with the following macros: ENABLE_UNISTDIO Set to 1 to enable the unistdio extensions. PRINTF_FETCHARGS Name of the function to be declared. STATIC Set to 'static' to declare the function static. */ /* Default parameters. */ #ifndef PRINTF_FETCHARGS # define PRINTF_FETCHARGS printf_fetchargs #endif /* Get size_t. */ #include /* Get wchar_t. */ #if HAVE_WCHAR_T # include #endif /* Get wint_t. */ #if HAVE_WINT_T # include #endif /* Get va_list. */ #include /* Argument types */ typedef enum { TYPE_NONE, TYPE_SCHAR, TYPE_UCHAR, TYPE_SHORT, TYPE_USHORT, TYPE_INT, TYPE_UINT, TYPE_LONGINT, TYPE_ULONGINT, #if HAVE_LONG_LONG_INT TYPE_LONGLONGINT, TYPE_ULONGLONGINT, #endif TYPE_DOUBLE, TYPE_LONGDOUBLE, TYPE_CHAR, #if HAVE_WINT_T TYPE_WIDE_CHAR, #endif TYPE_STRING, #if HAVE_WCHAR_T TYPE_WIDE_STRING, #endif TYPE_POINTER, TYPE_COUNT_SCHAR_POINTER, TYPE_COUNT_SHORT_POINTER, TYPE_COUNT_INT_POINTER, TYPE_COUNT_LONGINT_POINTER #if HAVE_LONG_LONG_INT , TYPE_COUNT_LONGLONGINT_POINTER #endif #if ENABLE_UNISTDIO /* The unistdio extensions. */ , TYPE_U8_STRING , TYPE_U16_STRING , TYPE_U32_STRING #endif } arg_type; /* Polymorphic argument */ typedef struct { arg_type type; union { signed char a_schar; unsigned char a_uchar; short a_short; unsigned short a_ushort; int a_int; unsigned int a_uint; long int a_longint; unsigned long int a_ulongint; #if HAVE_LONG_LONG_INT long long int a_longlongint; unsigned long long int a_ulonglongint; #endif float a_float; double a_double; long double a_longdouble; int a_char; #if HAVE_WINT_T wint_t a_wide_char; #endif const char* a_string; #if HAVE_WCHAR_T const wchar_t* a_wide_string; #endif void* a_pointer; signed char * a_count_schar_pointer; short * a_count_short_pointer; int * a_count_int_pointer; long int * a_count_longint_pointer; #if HAVE_LONG_LONG_INT long long int * a_count_longlongint_pointer; #endif #if ENABLE_UNISTDIO /* The unistdio extensions. */ const uint8_t * a_u8_string; const uint16_t * a_u16_string; const uint32_t * a_u32_string; #endif } a; } argument; typedef struct { size_t count; argument *arg; } arguments; /* Fetch the arguments, putting them into a. */ #ifdef STATIC STATIC #else extern #endif int PRINTF_FETCHARGS (va_list args, arguments *a); #endif /* _PRINTF_ARGS_H */ enscript-1.6.5.90/intl/relocatable.h0000644000175000017500000000543211606344062014124 00000000000000/* Provide relocatable packages. Copyright (C) 2003, 2005 Free Software Foundation, Inc. Written by Bruno Haible , 2003. 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 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 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef _RELOCATABLE_H #define _RELOCATABLE_H #ifdef __cplusplus extern "C" { #endif /* This can be enabled through the configure --enable-relocatable option. */ #if ENABLE_RELOCATABLE /* When building a DLL, we must export some functions. Note that because this is a private .h file, we don't need to use __declspec(dllimport) in any case. */ #if HAVE_VISIBILITY && BUILDING_DLL # define RELOCATABLE_DLL_EXPORTED __attribute__((__visibility__("default"))) #elif defined _MSC_VER && BUILDING_DLL # define RELOCATABLE_DLL_EXPORTED __declspec(dllexport) #else # define RELOCATABLE_DLL_EXPORTED #endif /* Sets the original and the current installation prefix of the package. Relocation simply replaces a pathname starting with the original prefix by the corresponding pathname with the current prefix instead. Both prefixes should be directory names without trailing slash (i.e. use "" instead of "/"). */ extern RELOCATABLE_DLL_EXPORTED void set_relocation_prefix (const char *orig_prefix, const char *curr_prefix); /* Returns the pathname, relocated according to the current installation directory. */ extern const char * relocate (const char *pathname); /* Memory management: relocate() leaks memory, because it has to construct a fresh pathname. If this is a problem because your program calls relocate() frequently, think about caching the result. */ /* Convenience function: Computes the current installation prefix, based on the original installation prefix, the original installation directory of a particular file, and the current pathname of this file. Returns NULL upon failure. */ extern const char * compute_curr_prefix (const char *orig_installprefix, const char *orig_installdir, const char *curr_pathname); #else /* By default, we use the hardwired pathnames. */ #define relocate(pathname) (pathname) #endif #ifdef __cplusplus } #endif #endif /* _RELOCATABLE_H */ enscript-1.6.5.90/intl/Makefile.in0000644000175000017500000005041311606344056013545 00000000000000# Makefile for directory with message catalog handling library of GNU gettext # Copyright (C) 1995-1998, 2000-2007 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 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 # 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, # USA. PACKAGE = @PACKAGE@ VERSION = @VERSION@ SHELL = /bin/sh srcdir = @srcdir@ top_srcdir = @top_srcdir@ top_builddir = .. # The VPATH variables allows builds with $builddir != $srcdir, assuming a # 'make' program that supports VPATH (such as GNU make). This line is removed # by autoconf automatically when "$(srcdir)" = ".". # In this directory, the VPATH handling is particular: # 1. If INTL_LIBTOOL_SUFFIX_PREFIX is 'l' (indicating a build with libtool), # the .c -> .lo rules carefully use $(srcdir), so that VPATH can be omitted. # 2. If PACKAGE = gettext-tools, VPATH _must_ be omitted, because otherwise # 'make' does the wrong thing if GNU gettext was configured with # "./configure --srcdir=`pwd`", namely it gets confused by the .lo and .la # files it finds in srcdir = ../../gettext-runtime/intl. VPATH = $(srcdir) prefix = @prefix@ exec_prefix = @exec_prefix@ transform = @program_transform_name@ libdir = @libdir@ includedir = @includedir@ datarootdir = @datarootdir@ datadir = @datadir@ localedir = $(datadir)/locale gettextsrcdir = $(datadir)/gettext/intl aliaspath = $(localedir) subdir = intl INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ # We use $(mkdir_p). # In automake <= 1.9.x, $(mkdir_p) is defined either as "mkdir -p --" or as # "$(mkinstalldirs)" or as "$(install_sh) -d". For these automake versions, # @install_sh@ does not start with $(SHELL), so we add it. # In automake >= 1.10, @mkdir_p@ is derived from ${MKDIR_P}, which is defined # either as "/path/to/mkdir -p" or ".../install-sh -c -d". For these automake # versions, $(mkinstalldirs) and $(install_sh) are unused. mkinstalldirs = $(SHELL) @install_sh@ -d install_sh = $(SHELL) @install_sh@ MKDIR_P = @MKDIR_P@ mkdir_p = @mkdir_p@ l = @INTL_LIBTOOL_SUFFIX_PREFIX@ AR = ar CC = @CC@ LIBTOOL = @LIBTOOL@ RANLIB = @RANLIB@ YACC = @INTLBISON@ -y -d YFLAGS = --name-prefix=__gettext WINDRES = @WINDRES@ # -DBUILDING_LIBINTL: Change expansion of LIBINTL_DLL_EXPORTED macro. # -DBUILDING_DLL: Change expansion of RELOCATABLE_DLL_EXPORTED macro. DEFS = -DLOCALEDIR=\"$(localedir)\" -DLOCALE_ALIAS_PATH=\"$(aliaspath)\" \ -DLIBDIR=\"$(libdir)\" -DBUILDING_LIBINTL -DBUILDING_DLL -DIN_LIBINTL \ -DENABLE_RELOCATABLE=1 -DIN_LIBRARY -DINSTALLDIR=\"$(libdir)\" -DNO_XMALLOC \ -Dset_relocation_prefix=libintl_set_relocation_prefix \ -Drelocate=libintl_relocate \ -DDEPENDS_ON_LIBICONV=1 @DEFS@ CPPFLAGS = @CPPFLAGS@ CFLAGS = @CFLAGS@ @CFLAG_VISIBILITY@ LDFLAGS = @LDFLAGS@ $(LDFLAGS_@WOE32DLL@) LDFLAGS_yes = -Wl,--export-all-symbols LDFLAGS_no = LIBS = @LIBS@ COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS) HEADERS = \ gmo.h \ gettextP.h \ hash-string.h \ loadinfo.h \ plural-exp.h \ eval-plural.h \ localcharset.h \ lock.h \ relocatable.h \ tsearch.h tsearch.c \ xsize.h \ printf-args.h printf-args.c \ printf-parse.h wprintf-parse.h printf-parse.c \ vasnprintf.h vasnwprintf.h vasnprintf.c \ os2compat.h \ libgnuintl.h.in SOURCES = \ bindtextdom.c \ dcgettext.c \ dgettext.c \ gettext.c \ finddomain.c \ hash-string.c \ loadmsgcat.c \ localealias.c \ textdomain.c \ l10nflist.c \ explodename.c \ dcigettext.c \ dcngettext.c \ dngettext.c \ ngettext.c \ plural.y \ plural-exp.c \ localcharset.c \ lock.c \ relocatable.c \ langprefs.c \ localename.c \ log.c \ printf.c \ version.c \ osdep.c \ os2compat.c \ intl-exports.c \ intl-compat.c OBJECTS = \ bindtextdom.$lo \ dcgettext.$lo \ dgettext.$lo \ gettext.$lo \ finddomain.$lo \ hash-string.$lo \ loadmsgcat.$lo \ localealias.$lo \ textdomain.$lo \ l10nflist.$lo \ explodename.$lo \ dcigettext.$lo \ dcngettext.$lo \ dngettext.$lo \ ngettext.$lo \ plural.$lo \ plural-exp.$lo \ localcharset.$lo \ lock.$lo \ relocatable.$lo \ langprefs.$lo \ localename.$lo \ log.$lo \ printf.$lo \ version.$lo \ osdep.$lo \ intl-compat.$lo OBJECTS_RES_yes = libintl.res OBJECTS_RES_no = DISTFILES.common = Makefile.in \ config.charset locale.alias ref-add.sin ref-del.sin export.h libintl.rc \ $(HEADERS) $(SOURCES) DISTFILES.generated = plural.c DISTFILES.normal = VERSION DISTFILES.gettext = COPYING.LIB-2.0 COPYING.LIB-2.1 libintl.glibc README.woe32 DISTFILES.obsolete = xopen-msg.sed linux-msg.sed po2tbl.sed.in cat-compat.c \ COPYING.LIB-2 gettext.h libgettext.h plural-eval.c libgnuintl.h \ libgnuintl.h_vms Makefile.vms libgnuintl.h.msvc-static \ libgnuintl.h.msvc-shared Makefile.msvc all: all-@USE_INCLUDED_LIBINTL@ all-yes: libintl.$la libintl.h charset.alias ref-add.sed ref-del.sed all-no: all-no-@BUILD_INCLUDED_LIBINTL@ all-no-yes: libgnuintl.$la all-no-no: libintl.a libgnuintl.a: $(OBJECTS) rm -f $@ $(AR) cru $@ $(OBJECTS) $(RANLIB) $@ libintl.la libgnuintl.la: $(OBJECTS) $(OBJECTS_RES_@WOE32@) $(LIBTOOL) --mode=link \ $(CC) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS) $(LDFLAGS) -o $@ \ $(OBJECTS) @LTLIBICONV@ @INTL_MACOSX_LIBS@ $(LIBS) @LTLIBTHREAD@ @LTLIBC@ \ $(OBJECTS_RES_@WOE32@) \ -version-info $(LTV_CURRENT):$(LTV_REVISION):$(LTV_AGE) \ -rpath $(libdir) \ -no-undefined # Libtool's library version information for libintl. # Before making a gettext release, the gettext maintainer must change this # according to the libtool documentation, section "Library interface versions". # Maintainers of other packages that include the intl directory must *not* # change these values. LTV_CURRENT=8 LTV_REVISION=2 LTV_AGE=0 .SUFFIXES: .SUFFIXES: .c .y .o .lo .sin .sed .c.o: $(COMPILE) $< .y.c: $(YACC) $(YFLAGS) --output $@ $< rm -f $*.h bindtextdom.lo: $(srcdir)/bindtextdom.c $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/bindtextdom.c dcgettext.lo: $(srcdir)/dcgettext.c $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/dcgettext.c dgettext.lo: $(srcdir)/dgettext.c $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/dgettext.c gettext.lo: $(srcdir)/gettext.c $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/gettext.c finddomain.lo: $(srcdir)/finddomain.c $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/finddomain.c hash-string.lo: $(srcdir)/hash-string.c $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/hash-string.c loadmsgcat.lo: $(srcdir)/loadmsgcat.c $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/loadmsgcat.c localealias.lo: $(srcdir)/localealias.c $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/localealias.c textdomain.lo: $(srcdir)/textdomain.c $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/textdomain.c l10nflist.lo: $(srcdir)/l10nflist.c $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/l10nflist.c explodename.lo: $(srcdir)/explodename.c $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/explodename.c dcigettext.lo: $(srcdir)/dcigettext.c $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/dcigettext.c dcngettext.lo: $(srcdir)/dcngettext.c $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/dcngettext.c dngettext.lo: $(srcdir)/dngettext.c $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/dngettext.c ngettext.lo: $(srcdir)/ngettext.c $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/ngettext.c plural.lo: $(srcdir)/plural.c $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/plural.c plural-exp.lo: $(srcdir)/plural-exp.c $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/plural-exp.c localcharset.lo: $(srcdir)/localcharset.c $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/localcharset.c lock.lo: $(srcdir)/lock.c $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/lock.c relocatable.lo: $(srcdir)/relocatable.c $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/relocatable.c langprefs.lo: $(srcdir)/langprefs.c $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/langprefs.c localename.lo: $(srcdir)/localename.c $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/localename.c log.lo: $(srcdir)/log.c $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/log.c printf.lo: $(srcdir)/printf.c $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/printf.c version.lo: $(srcdir)/version.c $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/version.c osdep.lo: $(srcdir)/osdep.c $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/osdep.c intl-compat.lo: $(srcdir)/intl-compat.c $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/intl-compat.c # This rule is executed only on Woe32 systems. # The following sed expressions come from the windres-options script. They are # inlined here, so that they can be written in a Makefile without requiring a # temporary file. They must contain literal newlines rather than semicolons, # so that they work with the sed-3.02 that is shipped with MSYS. We can use # GNU bash's $'\n' syntax to obtain such a newline. libintl.res: $(srcdir)/libintl.rc nl=$$'\n'; \ sed_extract_major='/^[0-9]/{'$${nl}'s/^\([0-9]*\).*/\1/p'$${nl}q$${nl}'}'$${nl}'c\'$${nl}0$${nl}q; \ sed_extract_minor='/^[0-9][0-9]*[.][0-9]/{'$${nl}'s/^[0-9]*[.]\([0-9]*\).*/\1/p'$${nl}q$${nl}'}'$${nl}'c\'$${nl}0$${nl}q; \ sed_extract_subminor='/^[0-9][0-9]*[.][0-9][0-9]*[.][0-9]/{'$${nl}'s/^[0-9]*[.][0-9]*[.]\([0-9]*\).*/\1/p'$${nl}q$${nl}'}'$${nl}'c\'$${nl}0$${nl}q; \ $(WINDRES) \ "-DPACKAGE_VERSION_STRING=\\\"$(VERSION)\\\"" \ "-DPACKAGE_VERSION_MAJOR="`echo '$(VERSION)' | sed -n -e "$$sed_extract_major"` \ "-DPACKAGE_VERSION_MINOR="`echo '$(VERSION)' | sed -n -e "$$sed_extract_minor"` \ "-DPACKAGE_VERSION_SUBMINOR="`echo '$(VERSION)' | sed -n -e "$$sed_extract_subminor"` \ -i $(srcdir)/libintl.rc -o libintl.res --output-format=coff ref-add.sed: $(srcdir)/ref-add.sin sed -e '/^#/d' -e 's/@''PACKAGE''@/@PACKAGE@/g' $(srcdir)/ref-add.sin > t-ref-add.sed mv t-ref-add.sed ref-add.sed ref-del.sed: $(srcdir)/ref-del.sin sed -e '/^#/d' -e 's/@''PACKAGE''@/@PACKAGE@/g' $(srcdir)/ref-del.sin > t-ref-del.sed mv t-ref-del.sed ref-del.sed INCLUDES = -I. -I$(srcdir) -I.. libgnuintl.h: $(srcdir)/libgnuintl.h.in sed -e '/IN_LIBGLOCALE/d' \ -e 's,@''HAVE_POSIX_PRINTF''@,@HAVE_POSIX_PRINTF@,g' \ -e 's,@''HAVE_ASPRINTF''@,@HAVE_ASPRINTF@,g' \ -e 's,@''HAVE_SNPRINTF''@,@HAVE_SNPRINTF@,g' \ -e 's,@''HAVE_WPRINTF''@,@HAVE_WPRINTF@,g' \ < $(srcdir)/libgnuintl.h.in \ | if test '@WOE32DLL@' = yes; then \ sed -e 's/extern \([^()]*\);/extern __declspec (dllimport) \1;/'; \ else \ cat; \ fi \ | sed -e 's/extern \([^"]\)/extern LIBINTL_DLL_EXPORTED \1/' \ -e "/#define _LIBINTL_H/r $(srcdir)/export.h" \ | sed -e 's,@''HAVE_VISIBILITY''@,@HAVE_VISIBILITY@,g' \ > libgnuintl.h libintl.h: $(srcdir)/libgnuintl.h.in sed -e '/IN_LIBGLOCALE/d' \ -e 's,@''HAVE_POSIX_PRINTF''@,@HAVE_POSIX_PRINTF@,g' \ -e 's,@''HAVE_ASPRINTF''@,@HAVE_ASPRINTF@,g' \ -e 's,@''HAVE_SNPRINTF''@,@HAVE_SNPRINTF@,g' \ -e 's,@''HAVE_WPRINTF''@,@HAVE_WPRINTF@,g' \ < $(srcdir)/libgnuintl.h.in > libintl.h charset.alias: $(srcdir)/config.charset $(SHELL) $(srcdir)/config.charset '@host@' > t-$@ mv t-$@ $@ check: all # We must not install the libintl.h/libintl.a files if we are on a # system which has the GNU gettext() function in its C library or in a # separate library. # If you want to use the one which comes with this version of the # package, you have to use `configure --with-included-gettext'. install: install-exec install-data install-exec: all if { test "$(PACKAGE)" = "gettext-runtime" || test "$(PACKAGE)" = "gettext-tools"; } \ && test '@USE_INCLUDED_LIBINTL@' = yes; then \ $(mkdir_p) $(DESTDIR)$(libdir) $(DESTDIR)$(includedir); \ $(INSTALL_DATA) libintl.h $(DESTDIR)$(includedir)/libintl.h; \ $(LIBTOOL) --mode=install \ $(INSTALL_DATA) libintl.$la $(DESTDIR)$(libdir)/libintl.$la; \ if test "@RELOCATABLE@" = yes; then \ dependencies=`sed -n -e 's,^dependency_libs=\(.*\),\1,p' < $(DESTDIR)$(libdir)/libintl.la | sed -e "s,^',," -e "s,'\$$,,"`; \ if test -n "$$dependencies"; then \ rm -f $(DESTDIR)$(libdir)/libintl.la; \ fi; \ fi; \ else \ : ; \ fi if test "$(PACKAGE)" = "gettext-tools" \ && test '@USE_INCLUDED_LIBINTL@' = no \ && test @GLIBC2@ != no; then \ $(mkdir_p) $(DESTDIR)$(libdir); \ $(LIBTOOL) --mode=install \ $(INSTALL_DATA) libgnuintl.$la $(DESTDIR)$(libdir)/libgnuintl.$la; \ rm -f $(DESTDIR)$(libdir)/preloadable_libintl.so; \ $(INSTALL_DATA) $(DESTDIR)$(libdir)/libgnuintl.so $(DESTDIR)$(libdir)/preloadable_libintl.so; \ $(LIBTOOL) --mode=uninstall \ rm -f $(DESTDIR)$(libdir)/libgnuintl.$la; \ else \ : ; \ fi if test '@USE_INCLUDED_LIBINTL@' = yes; then \ test @GLIBC21@ != no || $(mkdir_p) $(DESTDIR)$(libdir); \ temp=$(DESTDIR)$(libdir)/t-charset.alias; \ dest=$(DESTDIR)$(libdir)/charset.alias; \ if test -f $(DESTDIR)$(libdir)/charset.alias; then \ orig=$(DESTDIR)$(libdir)/charset.alias; \ sed -f ref-add.sed $$orig > $$temp; \ $(INSTALL_DATA) $$temp $$dest; \ rm -f $$temp; \ else \ if test @GLIBC21@ = no; then \ orig=charset.alias; \ sed -f ref-add.sed $$orig > $$temp; \ $(INSTALL_DATA) $$temp $$dest; \ rm -f $$temp; \ fi; \ fi; \ $(mkdir_p) $(DESTDIR)$(localedir); \ test -f $(DESTDIR)$(localedir)/locale.alias \ && orig=$(DESTDIR)$(localedir)/locale.alias \ || orig=$(srcdir)/locale.alias; \ temp=$(DESTDIR)$(localedir)/t-locale.alias; \ dest=$(DESTDIR)$(localedir)/locale.alias; \ sed -f ref-add.sed $$orig > $$temp; \ $(INSTALL_DATA) $$temp $$dest; \ rm -f $$temp; \ else \ : ; \ fi install-data: all if test "$(PACKAGE)" = "gettext-tools"; then \ $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ $(INSTALL_DATA) VERSION $(DESTDIR)$(gettextsrcdir)/VERSION; \ $(INSTALL_DATA) ChangeLog.inst $(DESTDIR)$(gettextsrcdir)/ChangeLog; \ dists="COPYING.LIB-2.0 COPYING.LIB-2.1 $(DISTFILES.common)"; \ for file in $$dists; do \ $(INSTALL_DATA) $(srcdir)/$$file \ $(DESTDIR)$(gettextsrcdir)/$$file; \ done; \ chmod a+x $(DESTDIR)$(gettextsrcdir)/config.charset; \ dists="$(DISTFILES.generated)"; \ for file in $$dists; do \ if test -f $$file; then dir=.; else dir=$(srcdir); fi; \ $(INSTALL_DATA) $$dir/$$file \ $(DESTDIR)$(gettextsrcdir)/$$file; \ done; \ dists="$(DISTFILES.obsolete)"; \ for file in $$dists; do \ rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ done; \ else \ : ; \ fi install-strip: install install-dvi install-html install-info install-ps install-pdf: installdirs: if { test "$(PACKAGE)" = "gettext-runtime" || test "$(PACKAGE)" = "gettext-tools"; } \ && test '@USE_INCLUDED_LIBINTL@' = yes; then \ $(mkdir_p) $(DESTDIR)$(libdir) $(DESTDIR)$(includedir); \ else \ : ; \ fi if test "$(PACKAGE)" = "gettext-tools" \ && test '@USE_INCLUDED_LIBINTL@' = no \ && test @GLIBC2@ != no; then \ $(mkdir_p) $(DESTDIR)$(libdir); \ else \ : ; \ fi if test '@USE_INCLUDED_LIBINTL@' = yes; then \ test @GLIBC21@ != no || $(mkdir_p) $(DESTDIR)$(libdir); \ $(mkdir_p) $(DESTDIR)$(localedir); \ else \ : ; \ fi if test "$(PACKAGE)" = "gettext-tools"; then \ $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ else \ : ; \ fi # Define this as empty until I found a useful application. installcheck: uninstall: if { test "$(PACKAGE)" = "gettext-runtime" || test "$(PACKAGE)" = "gettext-tools"; } \ && test '@USE_INCLUDED_LIBINTL@' = yes; then \ rm -f $(DESTDIR)$(includedir)/libintl.h; \ $(LIBTOOL) --mode=uninstall \ rm -f $(DESTDIR)$(libdir)/libintl.$la; \ else \ : ; \ fi if test "$(PACKAGE)" = "gettext-tools" \ && test '@USE_INCLUDED_LIBINTL@' = no \ && test @GLIBC2@ != no; then \ rm -f $(DESTDIR)$(libdir)/preloadable_libintl.so; \ else \ : ; \ fi if test '@USE_INCLUDED_LIBINTL@' = yes; then \ if test -f $(DESTDIR)$(libdir)/charset.alias; then \ temp=$(DESTDIR)$(libdir)/t-charset.alias; \ dest=$(DESTDIR)$(libdir)/charset.alias; \ sed -f ref-del.sed $$dest > $$temp; \ if grep '^# Packages using this file: $$' $$temp > /dev/null; then \ rm -f $$dest; \ else \ $(INSTALL_DATA) $$temp $$dest; \ fi; \ rm -f $$temp; \ fi; \ if test -f $(DESTDIR)$(localedir)/locale.alias; then \ temp=$(DESTDIR)$(localedir)/t-locale.alias; \ dest=$(DESTDIR)$(localedir)/locale.alias; \ sed -f ref-del.sed $$dest > $$temp; \ if grep '^# Packages using this file: $$' $$temp > /dev/null; then \ rm -f $$dest; \ else \ $(INSTALL_DATA) $$temp $$dest; \ fi; \ rm -f $$temp; \ fi; \ else \ : ; \ fi if test "$(PACKAGE)" = "gettext-tools"; then \ for file in VERSION ChangeLog COPYING.LIB-2.0 COPYING.LIB-2.1 $(DISTFILES.common) $(DISTFILES.generated); do \ rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ done; \ else \ : ; \ fi info dvi ps pdf html: $(OBJECTS): ../config.h libgnuintl.h bindtextdom.$lo dcgettext.$lo dcigettext.$lo dcngettext.$lo dgettext.$lo dngettext.$lo finddomain.$lo gettext.$lo intl-compat.$lo loadmsgcat.$lo localealias.$lo ngettext.$lo textdomain.$lo: $(srcdir)/gettextP.h $(srcdir)/gmo.h $(srcdir)/loadinfo.h hash-string.$lo dcigettext.$lo loadmsgcat.$lo: $(srcdir)/hash-string.h explodename.$lo l10nflist.$lo: $(srcdir)/loadinfo.h dcigettext.$lo loadmsgcat.$lo plural.$lo plural-exp.$lo: $(srcdir)/plural-exp.h dcigettext.$lo: $(srcdir)/eval-plural.h localcharset.$lo: $(srcdir)/localcharset.h bindtextdom.$lo dcigettext.$lo finddomain.$lo loadmsgcat.$lo localealias.$lo lock.$lo log.$lo: $(srcdir)/lock.h localealias.$lo localcharset.$lo relocatable.$lo: $(srcdir)/relocatable.h printf.$lo: $(srcdir)/printf-args.h $(srcdir)/printf-args.c $(srcdir)/printf-parse.h $(srcdir)/wprintf-parse.h $(srcdir)/xsize.h $(srcdir)/printf-parse.c $(srcdir)/vasnprintf.h $(srcdir)/vasnwprintf.h $(srcdir)/vasnprintf.c # A bison-2.1 generated plural.c includes if ENABLE_NLS. PLURAL_DEPS_yes = libintl.h PLURAL_DEPS_no = plural.$lo: $(PLURAL_DEPS_@USE_INCLUDED_LIBINTL@) tags: TAGS TAGS: $(HEADERS) $(SOURCES) here=`pwd`; cd $(srcdir) && etags -o $$here/TAGS $(HEADERS) $(SOURCES) ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) here=`pwd`; cd $(srcdir) && ctags -o $$here/CTAGS $(HEADERS) $(SOURCES) id: ID ID: $(HEADERS) $(SOURCES) here=`pwd`; cd $(srcdir) && mkid -f$$here/ID $(HEADERS) $(SOURCES) mostlyclean: rm -f *.a *.la *.o *.obj *.lo libintl.res core core.* rm -f libgnuintl.h libintl.h charset.alias ref-add.sed ref-del.sed rm -f -r .libs _libs clean: mostlyclean distclean: clean rm -f Makefile ID TAGS if test "$(PACKAGE)" = "gettext-runtime" || test "$(PACKAGE)" = "gettext-tools"; then \ rm -f ChangeLog.inst $(DISTFILES.normal); \ else \ : ; \ fi maintainer-clean: distclean @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." # GNU gettext needs not contain the file `VERSION' but contains some # other files which should not be distributed in other packages. distdir = ../$(PACKAGE)-$(VERSION)/$(subdir) dist distdir: Makefile if test "$(PACKAGE)" = "gettext-tools"; then \ : ; \ else \ if test "$(PACKAGE)" = "gettext-runtime"; then \ additional="$(DISTFILES.gettext)"; \ else \ additional="$(DISTFILES.normal)"; \ fi; \ $(MAKE) $(DISTFILES.common) $(DISTFILES.generated) $$additional; \ for file in ChangeLog $(DISTFILES.common) $(DISTFILES.generated) $$additional; do \ if test -f $$file; then dir=.; else dir=$(srcdir); fi; \ cp -p $$dir/$$file $(distdir) || test $$file = Makefile.in || exit 1; \ done; \ fi Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && $(SHELL) ./config.status # This would be more efficient, but doesn't work any more with autoconf-2.57, # when AC_CONFIG_FILES([intl/Makefile:somedir/Makefile.in]) is used. # cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ # 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: enscript-1.6.5.90/intl/plural.c0000644000175000017500000014212011606344061013134 00000000000000/* A Bison parser, made by GNU Bison 2.3a. */ /* 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.3a" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" /* Pure parsers. */ #define YYPURE 1 /* Using locations. */ #define YYLSP_NEEDED 0 /* Substitute the variable and function names. */ #define yyparse __gettextparse #define yylex __gettextlex #define yyerror __gettexterror #define yylval __gettextlval #define yychar __gettextchar #define yydebug __gettextdebug #define yynerrs __gettextnerrs /* Copy the first part of user declarations. */ /* Line 164 of yacc.c. */ #line 1 "plural.y" /* Expression parsing for plural form selection. Copyright (C) 2000-2001, 2003, 2005-2006 Free Software Foundation, Inc. Written by Ulrich Drepper , 2000. 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 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 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* For bison < 2.0, the bison generated parser uses alloca. AIX 3 forces us to put this declaration at the beginning of the file. The declaration in bison's skeleton file comes too late. This must come before because may include arbitrary system headers. This can go away once the AM_INTL_SUBDIR macro requires bison >= 2.0. */ #if defined _AIX && !defined __GNUC__ #pragma alloca #endif #ifdef HAVE_CONFIG_H # include #endif #include #include #include #include "plural-exp.h" /* The main function generated by the parser is called __gettextparse, but we want it to be called PLURAL_PARSE. */ #ifndef _LIBC # define __gettextparse PLURAL_PARSE #endif #define YYLEX_PARAM &((struct parse_args *) arg)->cp #define YYPARSE_PARAM arg /* Enabling traces. */ #ifndef YYDEBUG # define YYDEBUG 0 #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 /* Tokens. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE /* Put the tokens into the symbol table, so that GDB and other debuggers know about them. */ enum yytokentype { EQUOP2 = 258, CMPOP2 = 259, ADDOP2 = 260, MULOP2 = 261, NUMBER = 262 }; #endif /* Tokens. */ #define EQUOP2 258 #define CMPOP2 259 #define ADDOP2 260 #define MULOP2 261 #define NUMBER 262 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE {/* Line 191 of yacc.c. */ #line 51 "plural.y" unsigned long int num; enum expression_operator op; struct expression *exp; } /* Line 191 of yacc.c. */ #line 175 "plural.c" YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 #endif /* Copy the second part of user declarations. */ /* Line 221 of yacc.c. */ #line 57 "plural.y" /* Prototypes for local functions. */ static int yylex (YYSTYPE *lval, const char **pexp); static void yyerror (const char *str); /* Allocation of expressions. */ static struct expression * new_exp (int nargs, enum expression_operator op, struct expression * const *args) { int i; struct expression *newp; /* If any of the argument could not be malloc'ed, just return NULL. */ for (i = nargs - 1; i >= 0; i--) if (args[i] == NULL) goto fail; /* Allocate a new expression. */ newp = (struct expression *) malloc (sizeof (*newp)); if (newp != NULL) { newp->nargs = nargs; newp->operation = op; for (i = nargs - 1; i >= 0; i--) newp->val.args[i] = args[i]; return newp; } fail: for (i = nargs - 1; i >= 0; i--) FREE_EXPRESSION (args[i]); return NULL; } static inline struct expression * new_exp_0 (enum expression_operator op) { return new_exp (0, op, NULL); } static inline struct expression * new_exp_1 (enum expression_operator op, struct expression *right) { struct expression *args[1]; args[0] = right; return new_exp (1, op, args); } static struct expression * new_exp_2 (enum expression_operator op, struct expression *left, struct expression *right) { struct expression *args[2]; args[0] = left; args[1] = right; return new_exp (2, op, args); } static inline struct expression * new_exp_3 (enum expression_operator op, struct expression *bexp, struct expression *tbranch, struct expression *fbranch) { struct expression *args[3]; args[0] = bexp; args[1] = tbranch; args[2] = fbranch; return new_exp (3, op, args); } /* Line 221 of yacc.c. */ #line 265 "plural.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 yyi) #else static int YYID (yyi) int yyi; #endif { return yyi; } #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 9 /* YYLAST -- Last index in YYTABLE. */ #define YYLAST 54 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 16 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 3 /* YYNRULES -- Number of rules. */ #define YYNRULES 13 /* YYNRULES -- Number of states. */ #define YYNSTATES 27 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 #define YYMAXUTOK 262 #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, 10, 2, 2, 2, 2, 5, 2, 14, 15, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 12, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 13, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 6, 7, 8, 9, 11 }; #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, 11, 15, 19, 23, 27, 31, 35, 38, 40, 42 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int8 yyrhs[] = { 17, 0, -1, 18, -1, 18, 3, 18, 12, 18, -1, 18, 4, 18, -1, 18, 5, 18, -1, 18, 6, 18, -1, 18, 7, 18, -1, 18, 8, 18, -1, 18, 9, 18, -1, 10, 18, -1, 13, -1, 11, -1, 14, 18, 15, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint8 yyrline[] = { 0, 154, 154, 162, 166, 170, 174, 178, 182, 186, 190, 194, 198, 203 }; #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", "'?'", "'|'", "'&'", "EQUOP2", "CMPOP2", "ADDOP2", "MULOP2", "'!'", "NUMBER", "':'", "'n'", "'('", "')'", "$accept", "start", "exp", 0 }; #endif # ifdef YYPRINT /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to token YYLEX-NUM. */ static const yytype_uint16 yytoknum[] = { 0, 256, 257, 63, 124, 38, 258, 259, 260, 261, 33, 262, 58, 110, 40, 41 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { 0, 16, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ static const yytype_uint8 yyr2[] = { 0, 2, 1, 5, 3, 3, 3, 3, 3, 3, 2, 1, 1, 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, 12, 11, 0, 0, 2, 10, 0, 1, 0, 0, 0, 0, 0, 0, 0, 13, 0, 4, 5, 6, 7, 8, 9, 0, 3 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int8 yydefgoto[] = { -1, 5, 6 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ #define YYPACT_NINF -10 static const yytype_int8 yypact[] = { -9, -9, -10, -10, -9, 8, 36, -10, 13, -10, -9, -9, -9, -9, -9, -9, -9, -10, 26, 41, 45, 18, -2, 14, -10, -9, 36 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int8 yypgoto[] = { -10, -10, -1 }; /* 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[] = { 7, 1, 2, 8, 3, 4, 15, 16, 9, 18, 19, 20, 21, 22, 23, 24, 10, 11, 12, 13, 14, 15, 16, 16, 26, 14, 15, 16, 17, 10, 11, 12, 13, 14, 15, 16, 0, 0, 25, 10, 11, 12, 13, 14, 15, 16, 12, 13, 14, 15, 16, 13, 14, 15, 16 }; static const yytype_int8 yycheck[] = { 1, 10, 11, 4, 13, 14, 8, 9, 0, 10, 11, 12, 13, 14, 15, 16, 3, 4, 5, 6, 7, 8, 9, 9, 25, 7, 8, 9, 15, 3, 4, 5, 6, 7, 8, 9, -1, -1, 12, 3, 4, 5, 6, 7, 8, 9, 5, 6, 7, 8, 9, 6, 7, 8, 9 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { 0, 10, 11, 13, 14, 17, 18, 18, 18, 0, 3, 4, 5, 6, 7, 8, 9, 15, 18, 18, 18, 18, 18, 18, 18, 12, 18 }; #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 (&yylval, YYLEX_PARAM) #else # define YYLEX yylex (&yylval) #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 *yybottom, yytype_int16 *yytop) #else static void yy_stack_print (yybottom, yytop) yytype_int16 *yybottom; yytype_int16 *yytop; #endif { YYFPRINTF (stderr, "Stack now"); for (; yybottom <= yytop; yybottom++) { int yybot = *yybottom; YYFPRINTF (stderr, " %d", yybot); } YYFPRINTF (stderr, "\n"); } # define YY_STACK_PRINT(Bottom, Top) \ do { \ if (yydebug) \ yy_stack_print ((Bottom), (Top)); \ } while (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 */ /*----------. | 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 { /* The lookahead symbol. */ int yychar; /* The semantic value of the lookahead symbol. */ YYSTYPE yylval; /* Number of syntax errors so far. */ int yynerrs; int yystate; int yyn; int yyresult; /* Number of tokens to shift before error messages enabled. */ int yyerrstatus; /* Lookahead 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)); if (yystate == YYFINAL) YYACCEPT; goto yybackup; /*-----------. | yybackup. | `-----------*/ yybackup: /* Do appropriate processing given the current state. Read a lookahead token if we need one and don't already have one. */ /* First try to decide what to do without reference to lookahead token. */ yyn = yypact[yystate]; if (yyn == YYPACT_NINF) goto yydefault; /* Not known => get a lookahead token if don't already have one. */ /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead 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; } /* Count tokens shifted since error; after three, turn off error status. */ if (yyerrstatus) yyerrstatus--; /* Shift the lookahead token. */ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); /* Discard the shifted token. */ 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 1269 of yacc.c. */ #line 155 "plural.y" { if ((yyvsp[(1) - (1)].exp) == NULL) YYABORT; ((struct parse_args *) arg)->res = (yyvsp[(1) - (1)].exp); } break; case 3: /* Line 1269 of yacc.c. */ #line 163 "plural.y" { (yyval.exp) = new_exp_3 (qmop, (yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].exp), (yyvsp[(5) - (5)].exp)); } break; case 4: /* Line 1269 of yacc.c. */ #line 167 "plural.y" { (yyval.exp) = new_exp_2 (lor, (yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].exp)); } break; case 5: /* Line 1269 of yacc.c. */ #line 171 "plural.y" { (yyval.exp) = new_exp_2 (land, (yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].exp)); } break; case 6: /* Line 1269 of yacc.c. */ #line 175 "plural.y" { (yyval.exp) = new_exp_2 ((yyvsp[(2) - (3)].op), (yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].exp)); } break; case 7: /* Line 1269 of yacc.c. */ #line 179 "plural.y" { (yyval.exp) = new_exp_2 ((yyvsp[(2) - (3)].op), (yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].exp)); } break; case 8: /* Line 1269 of yacc.c. */ #line 183 "plural.y" { (yyval.exp) = new_exp_2 ((yyvsp[(2) - (3)].op), (yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].exp)); } break; case 9: /* Line 1269 of yacc.c. */ #line 187 "plural.y" { (yyval.exp) = new_exp_2 ((yyvsp[(2) - (3)].op), (yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].exp)); } break; case 10: /* Line 1269 of yacc.c. */ #line 191 "plural.y" { (yyval.exp) = new_exp_1 (lnot, (yyvsp[(2) - (2)].exp)); } break; case 11: /* Line 1269 of yacc.c. */ #line 195 "plural.y" { (yyval.exp) = new_exp_0 (var); } break; case 12: /* Line 1269 of yacc.c. */ #line 199 "plural.y" { if (((yyval.exp) = new_exp_0 (num)) != NULL) (yyval.exp)->val.num = (yyvsp[(1) - (1)].num); } break; case 13: /* Line 1269 of yacc.c. */ #line 204 "plural.y" { (yyval.exp) = (yyvsp[(2) - (3)].exp); } break; /* Line 1269 of yacc.c. */ #line 1572 "plural.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 lookahead token after an error, discard it. */ if (yychar <= YYEOF) { /* Return failure if at end of input. */ if (yychar == YYEOF) YYABORT; } else { yydestruct ("Error: discarding", yytoken, &yylval); yychar = YYEMPTY; } } /* Else will try to reuse lookahead token after shifting the error token. */ goto yyerrlab1; /*---------------------------------------------------. | yyerrorlab -- error raised explicitly by YYERROR. | `---------------------------------------------------*/ yyerrorlab: /* Pacify compilers 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); } *++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 != 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 1486 of yacc.c. */ #line 209 "plural.y" void internal_function FREE_EXPRESSION (struct expression *exp) { if (exp == NULL) return; /* Handle the recursive case. */ switch (exp->nargs) { case 3: FREE_EXPRESSION (exp->val.args[2]); /* FALLTHROUGH */ case 2: FREE_EXPRESSION (exp->val.args[1]); /* FALLTHROUGH */ case 1: FREE_EXPRESSION (exp->val.args[0]); /* FALLTHROUGH */ default: break; } free (exp); } static int yylex (YYSTYPE *lval, const char **pexp) { const char *exp = *pexp; int result; while (1) { if (exp[0] == '\0') { *pexp = exp; return YYEOF; } if (exp[0] != ' ' && exp[0] != '\t') break; ++exp; } result = *exp++; switch (result) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': { unsigned long int n = result - '0'; while (exp[0] >= '0' && exp[0] <= '9') { n *= 10; n += exp[0] - '0'; ++exp; } lval->num = n; result = NUMBER; } break; case '=': if (exp[0] == '=') { ++exp; lval->op = equal; result = EQUOP2; } else result = YYERRCODE; break; case '!': if (exp[0] == '=') { ++exp; lval->op = not_equal; result = EQUOP2; } break; case '&': case '|': if (exp[0] == result) ++exp; else result = YYERRCODE; break; case '<': if (exp[0] == '=') { ++exp; lval->op = less_or_equal; } else lval->op = less_than; result = CMPOP2; break; case '>': if (exp[0] == '=') { ++exp; lval->op = greater_or_equal; } else lval->op = greater_than; result = CMPOP2; break; case '*': lval->op = mult; result = MULOP2; break; case '/': lval->op = divide; result = MULOP2; break; case '%': lval->op = module; result = MULOP2; break; case '+': lval->op = plus; result = ADDOP2; break; case '-': lval->op = minus; result = ADDOP2; break; case 'n': case '?': case ':': case '(': case ')': /* Nothing, just return the character. */ break; case ';': case '\n': case '\0': /* Be safe and let the user call this function again. */ --exp; result = YYEOF; break; default: result = YYERRCODE; #if YYDEBUG != 0 --exp; #endif break; } *pexp = exp; return result; } static void yyerror (const char *str) { /* Do nothing. We don't print error messages here. */ } enscript-1.6.5.90/intl/plural-exp.c0000644000175000017500000000773211606344061013737 00000000000000/* Expression parsing for plural form selection. Copyright (C) 2000-2001, 2003, 2005-2007 Free Software Foundation, Inc. Written by Ulrich Drepper , 2000. 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 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 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H # include #endif #include #include #include #include "plural-exp.h" #if (defined __GNUC__ && !(__APPLE_CC__ > 1) && !defined __cplusplus) \ || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L) /* These structs are the constant expression for the germanic plural form determination. It represents the expression "n != 1". */ static const struct expression plvar = { .nargs = 0, .operation = var, }; static const struct expression plone = { .nargs = 0, .operation = num, .val = { .num = 1 } }; struct expression GERMANIC_PLURAL = { .nargs = 2, .operation = not_equal, .val = { .args = { [0] = (struct expression *) &plvar, [1] = (struct expression *) &plone } } }; # define INIT_GERMANIC_PLURAL() #else /* For compilers without support for ISO C 99 struct/union initializers: Initialization at run-time. */ static struct expression plvar; static struct expression plone; struct expression GERMANIC_PLURAL; static void init_germanic_plural () { if (plone.val.num == 0) { plvar.nargs = 0; plvar.operation = var; plone.nargs = 0; plone.operation = num; plone.val.num = 1; GERMANIC_PLURAL.nargs = 2; GERMANIC_PLURAL.operation = not_equal; GERMANIC_PLURAL.val.args[0] = &plvar; GERMANIC_PLURAL.val.args[1] = &plone; } } # define INIT_GERMANIC_PLURAL() init_germanic_plural () #endif void internal_function EXTRACT_PLURAL_EXPRESSION (const char *nullentry, const struct expression **pluralp, unsigned long int *npluralsp) { if (nullentry != NULL) { const char *plural; const char *nplurals; plural = strstr (nullentry, "plural="); nplurals = strstr (nullentry, "nplurals="); if (plural == NULL || nplurals == NULL) goto no_plural; else { char *endp; unsigned long int n; struct parse_args args; /* First get the number. */ nplurals += 9; while (*nplurals != '\0' && isspace ((unsigned char) *nplurals)) ++nplurals; if (!(*nplurals >= '0' && *nplurals <= '9')) goto no_plural; #if defined HAVE_STRTOUL || defined _LIBC n = strtoul (nplurals, &endp, 10); #else for (endp = nplurals, n = 0; *endp >= '0' && *endp <= '9'; endp++) n = n * 10 + (*endp - '0'); #endif if (nplurals == endp) goto no_plural; *npluralsp = n; /* Due to the restrictions bison imposes onto the interface of the scanner function we have to put the input string and the result passed up from the parser into the same structure which address is passed down to the parser. */ plural += 7; args.cp = plural; if (PLURAL_PARSE (&args) != 0) goto no_plural; *pluralp = args.res; } } else { /* By default we are using the Germanic form: singular form only for `one', the plural form otherwise. Yes, this is also what English is using since English is a Germanic language. */ no_plural: INIT_GERMANIC_PLURAL (); *pluralp = &GERMANIC_PLURAL; *npluralsp = 2; } } enscript-1.6.5.90/intl/ngettext.c0000644000175000017500000000367411606344060013510 00000000000000/* Implementation of ngettext(3) function. Copyright (C) 1995, 1997, 2000-2003 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 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 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H # include #endif #ifdef _LIBC # define __need_NULL # include #else # include /* Just for NULL. */ #endif #include "gettextP.h" #ifdef _LIBC # include #else # include "libgnuintl.h" #endif #include /* @@ end of prolog @@ */ /* Names for the libintl functions are a problem. They must not clash with existing names and they should follow ANSI C. But this source code is also used in GNU C Library where the names have a __ prefix. So we have to make a difference here. */ #ifdef _LIBC # define NGETTEXT __ngettext # define DCNGETTEXT __dcngettext #else # define NGETTEXT libintl_ngettext # define DCNGETTEXT libintl_dcngettext #endif /* Look up MSGID in the current default message catalog for the current LC_MESSAGES locale. If not found, returns MSGID itself (the default text). */ char * NGETTEXT (const char *msgid1, const char *msgid2, unsigned long int n) { return DCNGETTEXT (NULL, msgid1, msgid2, n, LC_MESSAGES); } #ifdef _LIBC /* Alias for function name in GNU C Library. */ weak_alias (__ngettext, ngettext); #endif enscript-1.6.5.90/intl/explodename.c0000644000175000017500000000654611606344057014156 00000000000000/* Copyright (C) 1995-1998, 2000-2001, 2003, 2005, 2007 Free Software Foundation, Inc. Contributed by Ulrich Drepper , 1995. 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 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 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H # include #endif #include #include #include #include "loadinfo.h" /* On some strange systems still no definition of NULL is found. Sigh! */ #ifndef NULL # if defined __STDC__ && __STDC__ # define NULL ((void *) 0) # else # define NULL 0 # endif #endif /* @@ end of prolog @@ */ /* Split a locale name NAME into a leading language part and all the rest. Return a pointer to the first character after the language, i.e. to the first byte of the rest. */ static char *_nl_find_language (const char *name); static char * _nl_find_language (const char *name) { while (name[0] != '\0' && name[0] != '_' && name[0] != '@' && name[0] != '.') ++name; return (char *) name; } int _nl_explode_name (char *name, const char **language, const char **modifier, const char **territory, const char **codeset, const char **normalized_codeset) { char *cp; int mask; *modifier = NULL; *territory = NULL; *codeset = NULL; *normalized_codeset = NULL; /* Now we determine the single parts of the locale name. First look for the language. Termination symbols are `_', '.', and `@'. */ mask = 0; *language = cp = name; cp = _nl_find_language (*language); if (*language == cp) /* This does not make sense: language has to be specified. Use this entry as it is without exploding. Perhaps it is an alias. */ cp = strchr (*language, '\0'); else { if (cp[0] == '_') { /* Next is the territory. */ cp[0] = '\0'; *territory = ++cp; while (cp[0] != '\0' && cp[0] != '.' && cp[0] != '@') ++cp; mask |= XPG_TERRITORY; } if (cp[0] == '.') { /* Next is the codeset. */ cp[0] = '\0'; *codeset = ++cp; while (cp[0] != '\0' && cp[0] != '@') ++cp; mask |= XPG_CODESET; if (*codeset != cp && (*codeset)[0] != '\0') { *normalized_codeset = _nl_normalize_codeset (*codeset, cp - *codeset); if (*normalized_codeset == NULL) return -1; else if (strcmp (*codeset, *normalized_codeset) == 0) free ((char *) *normalized_codeset); else mask |= XPG_NORM_CODESET; } } } if (cp[0] == '@') { /* Next is the modifier. */ cp[0] = '\0'; *modifier = ++cp; if (cp[0] != '\0') mask |= XPG_MODIFIER; } if (*territory != NULL && (*territory)[0] == '\0') mask &= ~XPG_TERRITORY; if (*codeset != NULL && (*codeset)[0] == '\0') mask &= ~XPG_CODESET; return mask; } enscript-1.6.5.90/intl/intl-compat.c0000644000175000017500000000662411606344057014101 00000000000000/* intl-compat.c - Stub functions to call gettext functions from GNU gettext Library. Copyright (C) 1995, 2000-2003, 2005 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 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 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H # include #endif #include "gettextP.h" /* @@ end of prolog @@ */ /* This file redirects the gettext functions (without prefix) to those defined in the included GNU libintl library (with "libintl_" prefix). It is compiled into libintl in order to make the AM_GNU_GETTEXT test of gettext <= 0.11.2 work with the libintl library >= 0.11.3 which has the redirections primarily in the include file. It is also compiled into libgnuintl so that libgnuintl.so can be used as LD_PRELOADable library on glibc systems, to provide the extra features that the functions in the libc don't have (namely, logging). */ #undef gettext #undef dgettext #undef dcgettext #undef ngettext #undef dngettext #undef dcngettext #undef textdomain #undef bindtextdomain #undef bind_textdomain_codeset /* When building a DLL, we must export some functions. Note that because the functions are only defined for binary backward compatibility, we don't need to use __declspec(dllimport) in any case. */ #if HAVE_VISIBILITY && BUILDING_DLL # define DLL_EXPORTED __attribute__((__visibility__("default"))) #elif defined _MSC_VER && BUILDING_DLL # define DLL_EXPORTED __declspec(dllexport) #else # define DLL_EXPORTED #endif DLL_EXPORTED char * gettext (const char *msgid) { return libintl_gettext (msgid); } DLL_EXPORTED char * dgettext (const char *domainname, const char *msgid) { return libintl_dgettext (domainname, msgid); } DLL_EXPORTED char * dcgettext (const char *domainname, const char *msgid, int category) { return libintl_dcgettext (domainname, msgid, category); } DLL_EXPORTED char * ngettext (const char *msgid1, const char *msgid2, unsigned long int n) { return libintl_ngettext (msgid1, msgid2, n); } DLL_EXPORTED char * dngettext (const char *domainname, const char *msgid1, const char *msgid2, unsigned long int n) { return libintl_dngettext (domainname, msgid1, msgid2, n); } DLL_EXPORTED char * dcngettext (const char *domainname, const char *msgid1, const char *msgid2, unsigned long int n, int category) { return libintl_dcngettext (domainname, msgid1, msgid2, n, category); } DLL_EXPORTED char * textdomain (const char *domainname) { return libintl_textdomain (domainname); } DLL_EXPORTED char * bindtextdomain (const char *domainname, const char *dirname) { return libintl_bindtextdomain (domainname, dirname); } DLL_EXPORTED char * bind_textdomain_codeset (const char *domainname, const char *codeset) { return libintl_bind_textdomain_codeset (domainname, codeset); } enscript-1.6.5.90/intl/version.c0000644000175000017500000000173111606344062013325 00000000000000/* libintl library version. Copyright (C) 2005 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 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 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H # include #endif #include "libgnuintl.h" /* Version number: (major<<16) + (minor<<8) + subminor */ int libintl_version = LIBINTL_VERSION; enscript-1.6.5.90/intl/hash-string.h0000644000175000017500000000256611606344057014107 00000000000000/* Description of GNU message catalog format: string hashing function. Copyright (C) 1995, 1997-1998, 2000-2003, 2005 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 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 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* @@ end of prolog @@ */ /* We assume to have `unsigned long int' value with at least 32 bits. */ #define HASHWORDBITS 32 #ifndef _LIBC # ifdef IN_LIBINTL # define __hash_string libintl_hash_string # else # define __hash_string hash_string # endif #endif /* Defines the so called `hashpjw' function by P.J. Weinberger [see Aho/Sethi/Ullman, COMPILERS: Principles, Techniques and Tools, 1986, 1987 Bell Telephone Laboratories, Inc.] */ extern unsigned long int __hash_string (const char *str_param); enscript-1.6.5.90/intl/tsearch.c0000644000175000017500000004462011606344062013275 00000000000000/* Copyright (C) 1995, 1996, 1997, 2000, 2006 Free Software Foundation, Inc. Contributed by Bernd Schmidt , 1997. 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 Library 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 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* Tree search for red/black trees. The algorithm for adding nodes is taken from one of the many "Algorithms" books by Robert Sedgewick, although the implementation differs. The algorithm for deleting nodes can probably be found in a book named "Introduction to Algorithms" by Cormen/Leiserson/Rivest. At least that's the book that my professor took most algorithms from during the "Data Structures" course... Totally public domain. */ /* Red/black trees are binary trees in which the edges are colored either red or black. They have the following properties: 1. The number of black edges on every path from the root to a leaf is constant. 2. No two red edges are adjacent. Therefore there is an upper bound on the length of every path, it's O(log n) where n is the number of nodes in the tree. No path can be longer than 1+2*P where P is the length of the shortest path in the tree. Useful for the implementation: 3. If one of the children of a node is NULL, then the other one is red (if it exists). In the implementation, not the edges are colored, but the nodes. The color interpreted as the color of the edge leading to this node. The color is meaningless for the root node, but we color the root node black for convenience. All added nodes are red initially. Adding to a red/black tree is rather easy. The right place is searched with a usual binary tree search. Additionally, whenever a node N is reached that has two red successors, the successors are colored black and the node itself colored red. This moves red edges up the tree where they pose less of a problem once we get to really insert the new node. Changing N's color to red may violate rule 2, however, so rotations may become necessary to restore the invariants. Adding a new red leaf may violate the same rule, so afterwards an additional check is run and the tree possibly rotated. Deleting is hairy. There are mainly two nodes involved: the node to be deleted (n1), and another node that is to be unchained from the tree (n2). If n1 has a successor (the node with a smallest key that is larger than n1), then the successor becomes n2 and its contents are copied into n1, otherwise n1 becomes n2. Unchaining a node may violate rule 1: if n2 is black, one subtree is missing one black edge afterwards. The algorithm must try to move this error upwards towards the root, so that the subtree that does not have enough black edges becomes the whole tree. Once that happens, the error has disappeared. It may not be necessary to go all the way up, since it is possible that rotations and recoloring can fix the error before that. Although the deletion algorithm must walk upwards through the tree, we do not store parent pointers in the nodes. Instead, delete allocates a small array of parent pointers and fills it while descending the tree. Since we know that the length of a path is O(log n), where n is the number of nodes, this is likely to use less memory. */ /* Tree rotations look like this: A C / \ / \ B C A G / \ / \ --> / \ D E F G B F / \ D E In this case, A has been rotated left. This preserves the ordering of the binary tree. */ #include /* Specification. */ #ifdef IN_LIBINTL # include "tsearch.h" #else # include #endif #include typedef int (*__compar_fn_t) (const void *, const void *); typedef void (*__action_fn_t) (const void *, VISIT, int); #ifndef weak_alias # define __tsearch tsearch # define __tfind tfind # define __tdelete tdelete # define __twalk twalk #endif #ifndef internal_function /* Inside GNU libc we mark some function in a special way. In other environments simply ignore the marking. */ # define internal_function #endif typedef struct node_t { /* Callers expect this to be the first element in the structure - do not move! */ const void *key; struct node_t *left; struct node_t *right; unsigned int red:1; } *node; typedef const struct node_t *const_node; #undef DEBUGGING #ifdef DEBUGGING /* Routines to check tree invariants. */ #include #define CHECK_TREE(a) check_tree(a) static void check_tree_recurse (node p, int d_sofar, int d_total) { if (p == NULL) { assert (d_sofar == d_total); return; } check_tree_recurse (p->left, d_sofar + (p->left && !p->left->red), d_total); check_tree_recurse (p->right, d_sofar + (p->right && !p->right->red), d_total); if (p->left) assert (!(p->left->red && p->red)); if (p->right) assert (!(p->right->red && p->red)); } static void check_tree (node root) { int cnt = 0; node p; if (root == NULL) return; root->red = 0; for(p = root->left; p; p = p->left) cnt += !p->red; check_tree_recurse (root, 0, cnt); } #else #define CHECK_TREE(a) #endif /* Possibly "split" a node with two red successors, and/or fix up two red edges in a row. ROOTP is a pointer to the lowest node we visited, PARENTP and GPARENTP pointers to its parent/grandparent. P_R and GP_R contain the comparison values that determined which way was taken in the tree to reach ROOTP. MODE is 1 if we need not do the split, but must check for two red edges between GPARENTP and ROOTP. */ static void maybe_split_for_insert (node *rootp, node *parentp, node *gparentp, int p_r, int gp_r, int mode) { node root = *rootp; node *rp, *lp; rp = &(*rootp)->right; lp = &(*rootp)->left; /* See if we have to split this node (both successors red). */ if (mode == 1 || ((*rp) != NULL && (*lp) != NULL && (*rp)->red && (*lp)->red)) { /* This node becomes red, its successors black. */ root->red = 1; if (*rp) (*rp)->red = 0; if (*lp) (*lp)->red = 0; /* If the parent of this node is also red, we have to do rotations. */ if (parentp != NULL && (*parentp)->red) { node gp = *gparentp; node p = *parentp; /* There are two main cases: 1. The edge types (left or right) of the two red edges differ. 2. Both red edges are of the same type. There exist two symmetries of each case, so there is a total of 4 cases. */ if ((p_r > 0) != (gp_r > 0)) { /* Put the child at the top of the tree, with its parent and grandparent as successors. */ p->red = 1; gp->red = 1; root->red = 0; if (p_r < 0) { /* Child is left of parent. */ p->left = *rp; *rp = p; gp->right = *lp; *lp = gp; } else { /* Child is right of parent. */ p->right = *lp; *lp = p; gp->left = *rp; *rp = gp; } *gparentp = root; } else { *gparentp = *parentp; /* Parent becomes the top of the tree, grandparent and child are its successors. */ p->red = 0; gp->red = 1; if (p_r < 0) { /* Left edges. */ gp->left = p->right; p->right = gp; } else { /* Right edges. */ gp->right = p->left; p->left = gp; } } } } } /* Find or insert datum into search tree. KEY is the key to be located, ROOTP is the address of tree root, COMPAR the ordering function. */ void * __tsearch (const void *key, void **vrootp, __compar_fn_t compar) { node q; node *parentp = NULL, *gparentp = NULL; node *rootp = (node *) vrootp; node *nextp; int r = 0, p_r = 0, gp_r = 0; /* No they might not, Mr Compiler. */ if (rootp == NULL) return NULL; /* This saves some additional tests below. */ if (*rootp != NULL) (*rootp)->red = 0; CHECK_TREE (*rootp); nextp = rootp; while (*nextp != NULL) { node root = *rootp; r = (*compar) (key, root->key); if (r == 0) return root; maybe_split_for_insert (rootp, parentp, gparentp, p_r, gp_r, 0); /* If that did any rotations, parentp and gparentp are now garbage. That doesn't matter, because the values they contain are never used again in that case. */ nextp = r < 0 ? &root->left : &root->right; if (*nextp == NULL) break; gparentp = parentp; parentp = rootp; rootp = nextp; gp_r = p_r; p_r = r; } q = (struct node_t *) malloc (sizeof (struct node_t)); if (q != NULL) { *nextp = q; /* link new node to old */ q->key = key; /* initialize new node */ q->red = 1; q->left = q->right = NULL; if (nextp != rootp) /* There may be two red edges in a row now, which we must avoid by rotating the tree. */ maybe_split_for_insert (nextp, rootp, parentp, r, p_r, 1); } return q; } #ifdef weak_alias weak_alias (__tsearch, tsearch) #endif /* Find datum in search tree. KEY is the key to be located, ROOTP is the address of tree root, COMPAR the ordering function. */ void * __tfind (key, vrootp, compar) const void *key; void *const *vrootp; __compar_fn_t compar; { node *rootp = (node *) vrootp; if (rootp == NULL) return NULL; CHECK_TREE (*rootp); while (*rootp != NULL) { node root = *rootp; int r; r = (*compar) (key, root->key); if (r == 0) return root; rootp = r < 0 ? &root->left : &root->right; } return NULL; } #ifdef weak_alias weak_alias (__tfind, tfind) #endif /* Delete node with given key. KEY is the key to be deleted, ROOTP is the address of the root of tree, COMPAR the comparison function. */ void * __tdelete (const void *key, void **vrootp, __compar_fn_t compar) { node p, q, r, retval; int cmp; node *rootp = (node *) vrootp; node root, unchained; /* Stack of nodes so we remember the parents without recursion. It's _very_ unlikely that there are paths longer than 40 nodes. The tree would need to have around 250.000 nodes. */ int stacksize = 100; int sp = 0; node *nodestack[100]; if (rootp == NULL) return NULL; p = *rootp; if (p == NULL) return NULL; CHECK_TREE (p); while ((cmp = (*compar) (key, (*rootp)->key)) != 0) { if (sp == stacksize) abort (); nodestack[sp++] = rootp; p = *rootp; rootp = ((cmp < 0) ? &(*rootp)->left : &(*rootp)->right); if (*rootp == NULL) return NULL; } /* This is bogus if the node to be deleted is the root... this routine really should return an integer with 0 for success, -1 for failure and errno = ESRCH or something. */ retval = p; /* We don't unchain the node we want to delete. Instead, we overwrite it with its successor and unchain the successor. If there is no successor, we really unchain the node to be deleted. */ root = *rootp; r = root->right; q = root->left; if (q == NULL || r == NULL) unchained = root; else { node *parent = rootp, *up = &root->right; for (;;) { if (sp == stacksize) abort (); nodestack[sp++] = parent; parent = up; if ((*up)->left == NULL) break; up = &(*up)->left; } unchained = *up; } /* We know that either the left or right successor of UNCHAINED is NULL. R becomes the other one, it is chained into the parent of UNCHAINED. */ r = unchained->left; if (r == NULL) r = unchained->right; if (sp == 0) *rootp = r; else { q = *nodestack[sp-1]; if (unchained == q->right) q->right = r; else q->left = r; } if (unchained != root) root->key = unchained->key; if (!unchained->red) { /* Now we lost a black edge, which means that the number of black edges on every path is no longer constant. We must balance the tree. */ /* NODESTACK now contains all parents of R. R is likely to be NULL in the first iteration. */ /* NULL nodes are considered black throughout - this is necessary for correctness. */ while (sp > 0 && (r == NULL || !r->red)) { node *pp = nodestack[sp - 1]; p = *pp; /* Two symmetric cases. */ if (r == p->left) { /* Q is R's brother, P is R's parent. The subtree with root R has one black edge less than the subtree with root Q. */ q = p->right; if (q->red) { /* If Q is red, we know that P is black. We rotate P left so that Q becomes the top node in the tree, with P below it. P is colored red, Q is colored black. This action does not change the black edge count for any leaf in the tree, but we will be able to recognize one of the following situations, which all require that Q is black. */ q->red = 0; p->red = 1; /* Left rotate p. */ p->right = q->left; q->left = p; *pp = q; /* Make sure pp is right if the case below tries to use it. */ nodestack[sp++] = pp = &q->left; q = p->right; } /* We know that Q can't be NULL here. We also know that Q is black. */ if ((q->left == NULL || !q->left->red) && (q->right == NULL || !q->right->red)) { /* Q has two black successors. We can simply color Q red. The whole subtree with root P is now missing one black edge. Note that this action can temporarily make the tree invalid (if P is red). But we will exit the loop in that case and set P black, which both makes the tree valid and also makes the black edge count come out right. If P is black, we are at least one step closer to the root and we'll try again the next iteration. */ q->red = 1; r = p; } else { /* Q is black, one of Q's successors is red. We can repair the tree with one operation and will exit the loop afterwards. */ if (q->right == NULL || !q->right->red) { /* The left one is red. We perform the same action as in maybe_split_for_insert where two red edges are adjacent but point in different directions: Q's left successor (let's call it Q2) becomes the top of the subtree we are looking at, its parent (Q) and grandparent (P) become its successors. The former successors of Q2 are placed below P and Q. P becomes black, and Q2 gets the color that P had. This changes the black edge count only for node R and its successors. */ node q2 = q->left; q2->red = p->red; p->right = q2->left; q->left = q2->right; q2->right = q; q2->left = p; *pp = q2; p->red = 0; } else { /* It's the right one. Rotate P left. P becomes black, and Q gets the color that P had. Q's right successor also becomes black. This changes the black edge count only for node R and its successors. */ q->red = p->red; p->red = 0; q->right->red = 0; /* left rotate p */ p->right = q->left; q->left = p; *pp = q; } /* We're done. */ sp = 1; r = NULL; } } else { /* Comments: see above. */ q = p->left; if (q->red) { q->red = 0; p->red = 1; p->left = q->right; q->right = p; *pp = q; nodestack[sp++] = pp = &q->right; q = p->left; } if ((q->right == NULL || !q->right->red) && (q->left == NULL || !q->left->red)) { q->red = 1; r = p; } else { if (q->left == NULL || !q->left->red) { node q2 = q->right; q2->red = p->red; p->left = q2->right; q->right = q2->left; q2->left = q; q2->right = p; *pp = q2; p->red = 0; } else { q->red = p->red; p->red = 0; q->left->red = 0; p->left = q->right; q->right = p; *pp = q; } sp = 1; r = NULL; } } --sp; } if (r != NULL) r->red = 0; } free (unchained); return retval; } #ifdef weak_alias weak_alias (__tdelete, tdelete) #endif /* Walk the nodes of a tree. ROOT is the root of the tree to be walked, ACTION the function to be called at each node. LEVEL is the level of ROOT in the whole tree. */ static void internal_function trecurse (const void *vroot, __action_fn_t action, int level) { const_node root = (const_node) vroot; if (root->left == NULL && root->right == NULL) (*action) (root, leaf, level); else { (*action) (root, preorder, level); if (root->left != NULL) trecurse (root->left, action, level + 1); (*action) (root, postorder, level); if (root->right != NULL) trecurse (root->right, action, level + 1); (*action) (root, endorder, level); } } /* Walk the nodes of a tree. ROOT is the root of the tree to be walked, ACTION the function to be called at each node. */ void __twalk (const void *vroot, __action_fn_t action) { const_node root = (const_node) vroot; CHECK_TREE (root); if (root != NULL && action != NULL) trecurse (root, action, 0); } #ifdef weak_alias weak_alias (__twalk, twalk) #endif #ifdef _LIBC /* The standardized functions miss an important functionality: the tree cannot be removed easily. We provide a function to do this. */ static void internal_function tdestroy_recurse (node root, __free_fn_t freefct) { if (root->left != NULL) tdestroy_recurse (root->left, freefct); if (root->right != NULL) tdestroy_recurse (root->right, freefct); (*freefct) ((void *) root->key); /* Free the node itself. */ free (root); } void __tdestroy (void *vroot, __free_fn_t freefct) { node root = (node) vroot; CHECK_TREE (root); if (root != NULL) tdestroy_recurse (root, freefct); } weak_alias (__tdestroy, tdestroy) #endif /* _LIBC */ enscript-1.6.5.90/intl/gettextP.h0000644000175000017500000002221411606344057013454 00000000000000/* Header describing internals of libintl library. Copyright (C) 1995-1999, 2000-2007 Free Software Foundation, Inc. Written by Ulrich Drepper , 1995. 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 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 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef _GETTEXTP_H #define _GETTEXTP_H #include /* Get size_t. */ #ifdef _LIBC # include "../iconv/gconv_int.h" #else # if HAVE_ICONV # include # endif #endif /* Handle multi-threaded applications. */ #ifdef _LIBC # include # define gl_rwlock_define __libc_rwlock_define #else # include "lock.h" #endif #ifdef _LIBC extern char *__gettext (const char *__msgid); extern char *__dgettext (const char *__domainname, const char *__msgid); extern char *__dcgettext (const char *__domainname, const char *__msgid, int __category); extern char *__ngettext (const char *__msgid1, const char *__msgid2, unsigned long int __n); extern char *__dngettext (const char *__domainname, const char *__msgid1, const char *__msgid2, unsigned long int n); extern char *__dcngettext (const char *__domainname, const char *__msgid1, const char *__msgid2, unsigned long int __n, int __category); extern char *__dcigettext (const char *__domainname, const char *__msgid1, const char *__msgid2, int __plural, unsigned long int __n, int __category); extern char *__textdomain (const char *__domainname); extern char *__bindtextdomain (const char *__domainname, const char *__dirname); extern char *__bind_textdomain_codeset (const char *__domainname, const char *__codeset); extern void _nl_finddomain_subfreeres (void) attribute_hidden; extern void _nl_unload_domain (struct loaded_domain *__domain) internal_function attribute_hidden; #else /* Declare the exported libintl_* functions, in a way that allows us to call them under their real name. */ # undef _INTL_REDIRECT_INLINE # undef _INTL_REDIRECT_MACROS # define _INTL_REDIRECT_MACROS # include "libgnuintl.h" # ifdef IN_LIBGLOCALE extern char *gl_dcigettext (const char *__domainname, const char *__msgid1, const char *__msgid2, int __plural, unsigned long int __n, int __category, const char *__localename, const char *__encoding); # else extern char *libintl_dcigettext (const char *__domainname, const char *__msgid1, const char *__msgid2, int __plural, unsigned long int __n, int __category); # endif #endif #include "loadinfo.h" #include "gmo.h" /* Get nls_uint32. */ /* @@ end of prolog @@ */ #ifndef internal_function # define internal_function #endif #ifndef attribute_hidden # define attribute_hidden #endif /* Tell the compiler when a conditional or integer expression is almost always true or almost always false. */ #ifndef HAVE_BUILTIN_EXPECT # define __builtin_expect(expr, val) (expr) #endif #ifndef W # define W(flag, data) ((flag) ? SWAP (data) : (data)) #endif #ifdef _LIBC # include # define SWAP(i) bswap_32 (i) #else static inline nls_uint32 # ifdef __cplusplus SWAP (nls_uint32 i) # else SWAP (i) nls_uint32 i; # endif { return (i << 24) | ((i & 0xff00) << 8) | ((i >> 8) & 0xff00) | (i >> 24); } #endif /* In-memory representation of system dependent string. */ struct sysdep_string_desc { /* Length of addressed string, including the trailing NUL. */ size_t length; /* Pointer to addressed string. */ const char *pointer; }; /* Cache of translated strings after charset conversion. Note: The strings are converted to the target encoding only on an as-needed basis. */ struct converted_domain { /* The target encoding name. */ const char *encoding; /* The descriptor for conversion from the message catalog's encoding to this target encoding. */ #ifdef _LIBC __gconv_t conv; #else # if HAVE_ICONV iconv_t conv; # endif #endif /* The table of translated strings after charset conversion. */ char **conv_tab; }; /* The representation of an opened message catalog. */ struct loaded_domain { /* Pointer to memory containing the .mo file. */ const char *data; /* 1 if the memory is mmap()ed, 0 if the memory is malloc()ed. */ int use_mmap; /* Size of mmap()ed memory. */ size_t mmap_size; /* 1 if the .mo file uses a different endianness than this machine. */ int must_swap; /* Pointer to additional malloc()ed memory. */ void *malloced; /* Number of static strings pairs. */ nls_uint32 nstrings; /* Pointer to descriptors of original strings in the file. */ const struct string_desc *orig_tab; /* Pointer to descriptors of translated strings in the file. */ const struct string_desc *trans_tab; /* Number of system dependent strings pairs. */ nls_uint32 n_sysdep_strings; /* Pointer to descriptors of original sysdep strings. */ const struct sysdep_string_desc *orig_sysdep_tab; /* Pointer to descriptors of translated sysdep strings. */ const struct sysdep_string_desc *trans_sysdep_tab; /* Size of hash table. */ nls_uint32 hash_size; /* Pointer to hash table. */ const nls_uint32 *hash_tab; /* 1 if the hash table uses a different endianness than this machine. */ int must_swap_hash_tab; /* Cache of charset conversions of the translated strings. */ struct converted_domain *conversions; size_t nconversions; gl_rwlock_define (, conversions_lock) const struct expression *plural; unsigned long int nplurals; }; /* We want to allocate a string at the end of the struct. But ISO C doesn't allow zero sized arrays. */ #ifdef __GNUC__ # define ZERO 0 #else # define ZERO 1 #endif /* A set of settings bound to a message domain. Used to store settings from bindtextdomain() and bind_textdomain_codeset(). */ struct binding { struct binding *next; char *dirname; char *codeset; char domainname[ZERO]; }; /* A counter which is incremented each time some previous translations become invalid. This variable is part of the external ABI of the GNU libintl. */ #ifdef IN_LIBGLOCALE # include extern LIBGLOCALE_DLL_EXPORTED int _nl_msg_cat_cntr; #else extern LIBINTL_DLL_EXPORTED int _nl_msg_cat_cntr; #endif #ifndef _LIBC extern const char *_nl_language_preferences_default (void); # define gl_locale_name_canonicalize _nl_locale_name_canonicalize extern void _nl_locale_name_canonicalize (char *name); # define gl_locale_name_posix _nl_locale_name_posix extern const char *_nl_locale_name_posix (int category, const char *categoryname); # define gl_locale_name_default _nl_locale_name_default extern const char *_nl_locale_name_default (void); # define gl_locale_name _nl_locale_name extern const char *_nl_locale_name (int category, const char *categoryname); #endif struct loaded_l10nfile *_nl_find_domain (const char *__dirname, char *__locale, const char *__domainname, struct binding *__domainbinding) internal_function; void _nl_load_domain (struct loaded_l10nfile *__domain, struct binding *__domainbinding) internal_function; #ifdef IN_LIBGLOCALE char *_nl_find_msg (struct loaded_l10nfile *domain_file, struct binding *domainbinding, const char *encoding, const char *msgid, size_t *lengthp) internal_function; #else char *_nl_find_msg (struct loaded_l10nfile *domain_file, struct binding *domainbinding, const char *msgid, int convert, size_t *lengthp) internal_function; #endif /* The internal variables in the standalone libintl.a must have different names than the internal variables in GNU libc, otherwise programs using libintl.a cannot be linked statically. */ #if !defined _LIBC # define _nl_default_dirname libintl_nl_default_dirname # define _nl_domain_bindings libintl_nl_domain_bindings #endif /* Contains the default location of the message catalogs. */ extern const char _nl_default_dirname[]; #ifdef _LIBC libc_hidden_proto (_nl_default_dirname) #endif /* List with bindings of specific domains. */ extern struct binding *_nl_domain_bindings; /* The internal variables in the standalone libintl.a must have different names than the internal variables in GNU libc, otherwise programs using libintl.a cannot be linked statically. */ #if !defined _LIBC # define _nl_default_default_domain libintl_nl_default_default_domain # define _nl_current_default_domain libintl_nl_current_default_domain #endif /* Name of the default text domain. */ extern const char _nl_default_default_domain[] attribute_hidden; /* Default text domain in which entries for gettext(3) are to be found. */ extern const char *_nl_current_default_domain attribute_hidden; /* @@ begin of epilog @@ */ #endif /* gettextP.h */ enscript-1.6.5.90/intl/ChangeLog0000644000175000017500000000010711606344056013245 000000000000002007-11-07 GNU * Version 0.17 released. enscript-1.6.5.90/README.ESCAPES0000644000175000017500000001667311132443251012475 00000000000000 Special escapes in enscript ============================ Enscript supports special escape sequences which can be used to add simple page formatting commands to ASCII documents. As a default, special escape interpretation is off, so all ASCII files print out as everyone expects. Special escape interpretation is activated with the `-e', `--escapes' option. This file shows how to use escape codes. To view this file interpreted, print it with the following command: enscript -G2re README.ESCAPES Special escape is a string which starts with the escape character `\0'. Escape's name follows immediately after the escape character. After name there can be escape dependant options and arguments. Currently following escapes are supported: - epsf inline EPS files to document - font select current font - comment comment the rest of the line - shade highlight regions of text - ps include raw PostScript code to the output - color change text color - bggray change text background color - escape change the escape character shade{.8}* epsfshade{1.0} Inline an EPS (Encapsulated PostScript) file to the document. EPSF escape's syntax is: epsf[OPTIONS]{FILENAME} where OPTIONS is an optional sequence of option characters and values and FILENAME is the name of the EPS file. This is the simplest use of the epsf escape: epsf{mtr.eps} That image was printed with command `^@epsf{mtr.eps}' (two character sequence "^@" is used to represent the escape character `\0' (octal 000) in this document). Next we would like to print a centered image. Option `c' centers image horizontally to the current line: epsf[c]{mtr_small.eps} That image was printed with command `^@epsf[c]{mtr_small.eps}'. Options must be enclosed with `[' and `]' characters and they are placed between escape's name and the filename. Images can also be printed right justified: epsf[r]{mtr_small.eps} Right justification can be selected with option `r': `^@epsf[r]{mtr_small.eps}'. As a default, images are printed in the size which was specified in the image's "%%BoundingBox:" comment. You can also specify image's size explicitly by giving option `hSIZE'. This option specifies image's horizontal height in lines. Here is a 1 line mtr (^@epsf[h1]{mtr.eps}): epsf[h1]{mtr.eps} and the same image twice as big (^@epsf[h2]{mtr.eps}): epsf[h2]{mtr.eps} and finally a three liner (^@epsf[h3]{mtr.eps}): epsf[h3]{mtr.eps} Sometimes you just want to print an image and continue printing just like there were no image at all. This can be done with option `n' which forbids current point update: a epsf[n r]{mtr_small.eps} b c That was printed with code: a ^@epsf[n r]{mtr_small.eps} b c For text printing, that special escape acts just like an ordinary newline character. Current point updates can be controlled individually for both x and y directions. Option `nx' prevents current point x-coordinate update and option `ny' y-coordinate update. Images can also be moved to any position in page. Option `xPOS' specifies image's starting x position in current line (in characters). Note that as a default, positions are relative to the current point. Print a tiny mtr to column 40 (^@epsf[x40 h1]{mtr_tiny.eps}): epsf[x40 h1]{mtr_tiny.eps} Option `yPOS' specifies image's starting y position (in lines). Now let's print an image between this and the previous paragraphs. That can be done with escape "^@epsf[n x0a y-2 h1]{mtr_tiny.eps}". comment epsf[n x0a y-2 h1]{mtr_tiny.eps} Previous x- and y-dimensions vere relative to the current point. You can also specify absolute positions by adding character `a' after the dimension. Absolute placement was used to print the previous image to the beginning of the line: (x0a). Note: All numeric values can also be given as a decimal number: ^@epsf[h1.2 x4.5 y-2.1]{foo.eps} Option `s' scales images with a specified amount. Option is followed by a number which specifies the scale factor. For example, half sized `mtr.eps' can be printed with escape "^@epsf[s.5]{mtr.eps}: epsf[s.5]{mtr_small.eps} Scaling can also be specified independently for both x- and y-directions. This is done by specifying direction (`x' or `y') immediately after the `s' option. epsf[sx2 sy.25]{mtr_small.eps} (^@epsf[sx2 sy.25]{mtr_small.eps}) EPSF images can also be read from the specified command. In this form, epsf escape's filename must end to the `|' character. For example, this image: epsf{cat mtr.eps|} was inlined with command: ^@epsf{cat mtr.eps|}. shade{.8}* fontshade{1.0} Font escape can be used to change the current body-font for the end of the current page. Font escape's syntax is: font{FONTNAME} where FONTNAME is a standard font specification. font{Palatino-Roman12}This chapter was printed with 12pt Palatino-Roman font. font{default} Previous chapter was typeset with following commands: ^@font{Palatino-Roman12}This chapter was printed with 12pt Palatino-Roman font. ^@font{default} The special font name `default' can be used to switch back to the default font which was active before the first ^@font escape. shade{.8}* commentshade{1.0} Comment escape can be used to comment the rest of the line including the newline character. Comment escape's syntax is: comment ... any text ... NEWLINE For example, text: You can't see this: ^@comment Hello, world! prints like this: You can't see this: comment Hello, world! shade{.8}* shadeshade{1.0} Shade escape changes the text background color to the specified gray value. Escape's syntax is: shade{GRAY} shade{.95}For example, this chapter is highlighted with the following code: ^@shade{.95}For example, this chapter is highlighted with the ... ^@shade{1.0} shade{1.0} shade{.8}* psshade{1.0} PS escape includes a piece of raw PostScript code to the generated PostScript output. This is quite handy if you are creating scripts which want to do some special highlighting etc. for the input data but be carefull, with ps-escape you can break the whole output! Here is a simple example: ps{gsave 100 0 rmoveto (Hello, world!) show grestore} and the source was: ^@ps{gsave 100 0 rmoveto (Hello, world!) show grestore} shade{.8}* colorshade{1.0} The color escape can be used to change the text color. Color escape's syntax is: color{RED [GREEN BLUE]} where RED, GREEN and BLUE are intensities of the corresponding colors presented as floating point numbers between 0 and 1. If only component RED is given, escape changes the text gray level. The special ^@color{default} selects the default text color (black). Examples: ^@color{1 0 0}red^@color{default} => color{1 0 0}redcolor{default} ^@color{1 0 0}green^@color{default} => color{0 1 0}greencolor{default} ^@color{1 0 0}blue^@color{default} => color{0 0 1}bluecolor{default} ^@color{.5}.5 gray^@color{default} => color{.5}.5 graycolor{default} shade{.8}* bggrayshade{1.0} Bggray escape changes the text background color, where the shade escape changes the background color for whole lines, bggray escape changes only the color of printed strings, this can be used to implemented very fine granularity highlightings. Escape's syntax is: bggray{GRAYVALUE} And here is a bggray{.8}simplebggray{1.0} example. That example was typed as follows: And here is a ^@bggray{.8}simple^@bggray{1.0} example. shade{.8}* escapeshade{1.0} Escape escape changes the current escape character. Escape's syntax is: escape{ESCAPE} where ESCAPE is the new ESCAPE character as a decimal number. enscript-1.6.5.90/po/0000755000175000017500000000000011606344233011222 500000000000000enscript-1.6.5.90/po/Makefile.in.in0000644000175000017500000003552411606344063013626 00000000000000# Makefile for PO directory in any package using GNU gettext. # Copyright (C) 1995-1997, 2000-2007 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. # # Origin: gettext-0.17 GETTEXT_MACRO_VERSION = 0.17 PACKAGE = @PACKAGE@ VERSION = @VERSION@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ SHELL = /bin/sh @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ datarootdir = @datarootdir@ datadir = @datadir@ localedir = @localedir@ gettextsrcdir = $(datadir)/gettext/po INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ # We use $(mkdir_p). # In automake <= 1.9.x, $(mkdir_p) is defined either as "mkdir -p --" or as # "$(mkinstalldirs)" or as "$(install_sh) -d". For these automake versions, # @install_sh@ does not start with $(SHELL), so we add it. # In automake >= 1.10, @mkdir_p@ is derived from ${MKDIR_P}, which is defined # either as "/path/to/mkdir -p" or ".../install-sh -c -d". For these automake # versions, $(mkinstalldirs) and $(install_sh) are unused. mkinstalldirs = $(SHELL) @install_sh@ -d install_sh = $(SHELL) @install_sh@ MKDIR_P = @MKDIR_P@ mkdir_p = @mkdir_p@ GMSGFMT_ = @GMSGFMT@ GMSGFMT_no = @GMSGFMT@ GMSGFMT_yes = @GMSGFMT_015@ GMSGFMT = $(GMSGFMT_$(USE_MSGCTXT)) MSGFMT_ = @MSGFMT@ MSGFMT_no = @MSGFMT@ MSGFMT_yes = @MSGFMT_015@ MSGFMT = $(MSGFMT_$(USE_MSGCTXT)) XGETTEXT_ = @XGETTEXT@ XGETTEXT_no = @XGETTEXT@ XGETTEXT_yes = @XGETTEXT_015@ XGETTEXT = $(XGETTEXT_$(USE_MSGCTXT)) 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 remove-potcdate.sin \ $(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3) DISTFILES = $(DISTFILES.common) Makevars POTFILES.in \ $(POFILES) $(GMOFILES) \ $(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3) POTFILES = \ CATALOGS = @CATALOGS@ # Makevars gets inserted here. (Don't remove this line!) .SUFFIXES: .SUFFIXES: .po .gmo .mo .sed .sin .nop .po-create .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: check-macro-version all-@USE_NLS@ all-yes: stamp-po all-no: # Ensure that the gettext macros and this Makefile.in.in are in sync. check-macro-version: @test "$(GETTEXT_MACRO_VERSION)" = "@GETTEXT_MACRO_VERSION@" \ || { echo "*** error: gettext infrastructure mismatch: using a Makefile.in.in from gettext version $(GETTEXT_MACRO_VERSION) but the autoconf macros are from gettext version @GETTEXT_MACRO_VERSION@" 1>&2; \ exit 1; \ } # $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no # internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because # we don't want to bother translators with empty POT files). We assume that # LINGUAS is empty in this case, i.e. $(POFILES) and $(GMOFILES) are empty. # In this case, stamp-po is a nop (i.e. a phony target). # stamp-po is a timestamp denoting the last time at which the CATALOGS have # been loosely updated. Its purpose is that when a developer or translator # checks out the package via CVS, and the $(DOMAIN).pot file is not in CVS, # "make" will update the $(DOMAIN).pot and the $(CATALOGS), but subsequent # invocations of "make" will do nothing. This timestamp would not be necessary # if updating the $(CATALOGS) would always touch them; however, the rule for # $(POFILES) has been designed to not touch files that don't need to be # changed. stamp-po: $(srcdir)/$(DOMAIN).pot test ! -f $(srcdir)/$(DOMAIN).pot || \ test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES) @test ! -f $(srcdir)/$(DOMAIN).pot || { \ echo "touch stamp-po" && \ echo timestamp > stamp-poT && \ mv stamp-poT stamp-po; \ } # Note: Target 'all' must not depend on target '$(DOMAIN).pot-update', # otherwise packages like GCC can not be built if only parts of the source # have been downloaded. # This target rebuilds $(DOMAIN).pot; it is an expensive operation. # Note that $(DOMAIN).pot is not touched if it doesn't need to be changed. $(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed if LC_ALL=C grep 'GNU @PACKAGE@' $(top_srcdir)/* 2>/dev/null | grep -v 'libtool:' >/dev/null; then \ package_gnu='GNU '; \ else \ package_gnu=''; \ fi; \ if test -n '$(MSGID_BUGS_ADDRESS)' || test '$(PACKAGE_BUGREPORT)' = '@'PACKAGE_BUGREPORT'@'; then \ msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \ else \ msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \ fi; \ case `$(XGETTEXT) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \ $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ --files-from=$(srcdir)/POTFILES.in \ --copyright-holder='$(COPYRIGHT_HOLDER)' \ --msgid-bugs-address="$$msgid_bugs_address" \ ;; \ *) \ $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ --files-from=$(srcdir)/POTFILES.in \ --copyright-holder='$(COPYRIGHT_HOLDER)' \ --package-name="$${package_gnu}@PACKAGE@" \ --package-version='@VERSION@' \ --msgid-bugs-address="$$msgid_bugs_address" \ ;; \ esac 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; \ } # This rule has no dependencies: we don't need to update $(DOMAIN).pot at # every "make" invocation, only create it when it is missing. # Only "make $(DOMAIN).pot-update" or "make dist" will force an update. $(srcdir)/$(DOMAIN).pot: $(MAKE) $(DOMAIN).pot-update # This target rebuilds a PO file if $(DOMAIN).pot has changed. # Note that a PO file is not touched if it doesn't need to be changed. $(POFILES): $(srcdir)/$(DOMAIN).pot @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \ if test -f "$(srcdir)/$${lang}.po"; then \ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ echo "$${cdcmd}$(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot"; \ cd $(srcdir) && $(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot; \ else \ $(MAKE) $${lang}.po-create; \ fi install: install-exec install-data install-exec: install-data: install-data-@USE_NLS@ if test "$(PACKAGE)" = "gettext-tools"; then \ $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ for file in $(DISTFILES.common) Makevars.template; do \ $(INSTALL_DATA) $(srcdir)/$$file \ $(DESTDIR)$(gettextsrcdir)/$$file; \ done; \ for file in Makevars; do \ rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ done; \ else \ : ; \ fi install-data-no: all install-data-yes: all $(mkdir_p) $(DESTDIR)$(datadir) @catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ dir=$(localedir)/$$lang/LC_MESSAGES; \ $(mkdir_p) $(DESTDIR)$$dir; \ if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \ $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \ echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \ for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ if test -n "$$lc"; then \ if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ for file in *; do \ if test -f $$file; then \ ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ fi; \ done); \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ else \ if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ :; \ else \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ fi; \ fi; \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \ fi; \ done; \ done install-strip: install installdirs: installdirs-exec installdirs-data installdirs-exec: installdirs-data: installdirs-data-@USE_NLS@ if test "$(PACKAGE)" = "gettext-tools"; then \ $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ else \ : ; \ fi installdirs-data-no: installdirs-data-yes: $(mkdir_p) $(DESTDIR)$(datadir) @catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ dir=$(localedir)/$$lang/LC_MESSAGES; \ $(mkdir_p) $(DESTDIR)$$dir; \ for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ if test -n "$$lc"; then \ if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ for file in *; do \ if test -f $$file; then \ ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ fi; \ done); \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ else \ if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ :; \ else \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ fi; \ fi; \ fi; \ done; \ done # Define this as empty until I found a useful application. installcheck: uninstall: uninstall-exec uninstall-data uninstall-exec: uninstall-data: uninstall-data-@USE_NLS@ if test "$(PACKAGE)" = "gettext-tools"; then \ for file in $(DISTFILES.common) Makevars.template; do \ rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ done; \ else \ : ; \ fi uninstall-data-no: uninstall-data-yes: catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ done; \ done check: all info dvi ps pdf html tags TAGS ctags CTAGS ID: mostlyclean: rm -f remove-potcdate.sed rm -f stamp-poT rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po rm -fr *.o clean: mostlyclean distclean: clean rm -f Makefile Makefile.in POTFILES *.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 stamp-po $(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: stamp-po $(DISTFILES) dists="$(DISTFILES)"; \ if test "$(PACKAGE)" = "gettext-tools"; then \ dists="$$dists Makevars.template"; \ fi; \ if test -f $(srcdir)/$(DOMAIN).pot; then \ dists="$$dists $(DOMAIN).pot stamp-po"; \ fi; \ if test -f $(srcdir)/ChangeLog; then \ dists="$$dists ChangeLog"; \ fi; \ for i in 0 1 2 3 4 5 6 7 8 9; do \ if test -f $(srcdir)/ChangeLog.$$i; then \ dists="$$dists ChangeLog.$$i"; \ fi; \ done; \ if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \ for file in $$dists; do \ if test -f $$file; then \ cp -p $$file $(distdir) || exit 1; \ else \ cp -p $(srcdir)/$$file $(distdir) || exit 1; \ fi; \ done update-po: Makefile $(MAKE) $(DOMAIN).pot-update test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES) $(MAKE) update-gmo # General rule for creating PO files. .nop.po-create: @lang=`echo $@ | sed -e 's/\.po-create$$//'`; \ echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \ exit 1 # General rule for updating PO files. .nop.po-update: @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \ if test "$(PACKAGE)" = "gettext-tools"; 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 Makevars $(top_builddir)/config.status @POMAKEFILEDEPS@ cd $(top_builddir) \ && $(SHELL) ./config.status $(subdir)/$@.in po-directories force: # Tell versions [3.59,3.63) of GNU make not to export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: enscript-1.6.5.90/po/ChangeLog.old0000644000175000017500000000223011401303365013460 000000000000002009-12-31 Christoph Berg * de.po: Correct translation of 'wrapped'. 2008-01-06 Tim Retout * ca.gmo, da.gmo, de.gmo, en_GB.gmo, es.gmo, fr.gmo, hr.gmo, nl.gmo, pt_BR.gmo, ru.gmo, sl.gmo, sv.gmo, tr.gmo, boldquot.sed, quot.sed, en@boldquot.header, en@quot.header, insert-header.sin, remove-potcdate.sin, Rules-quot, Makefile.in.in: Remove from repository. 2008-01-01 Tim Retout * ChangeLog: Add copyright notice at end. 2003-02-28 gettextize * Makefile.in.in: New file, from gettext-0.11.5. * Rules-quot: New file, from gettext-0.11.5. * boldquot.sed: New file, from gettext-0.11.5. * en@boldquot.header: New file, from gettext-0.11.5. * en@quot.header: New file, from gettext-0.11.5. * insert-header.sin: New file, from gettext-0.11.5. * quot.sed: New file, from gettext-0.11.5. * remove-potcdate.sin: New file, from gettext-0.11.5. Copyright (C) 2003, 2008 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. enscript-1.6.5.90/po/fr.gmo0000644000175000017500000006677511606344232012301 00000000000000Þ•À ! %08U [g w…†›£;?{  œ$©IÎ)8+b&Ž"µ#ØCü@Z't!œ,¾ë% ,/-\ Š&«Òä ÷1#5$Y)~¨Â â!%Ee%…#«$Ï"ô- E )^ "ˆ ,« &Ø ÿ !!/>!'n!)–!5À!ö!2"4I"3~")²"/Ü", #39#/m#-#/Ë#0û#',$&T$+{$=§$.å$&%$;%I`%)ª%Ô%ë%&$&$<&a&s&HŽ&×($è( ))#5)Y)t)|)@Ž)Ï)&â) **-* ?*vL*iÃ+#-,Q,$m,)’,&¼,)ã,- -2;-n-(-4¶-/ë-. 9.-Z.!ˆ.1ª.Ü.%û.!/A/!^/%€/¦/½/ Ó/ô/'0:0=C00!›0#½0á0ô0+1?1 Z1 {1%œ1$Â1xç1!`2-‚2%°2?Ö2(3?3)_3‰3¡3#Á3.å34))4*S4~4‘4¤49Â4ü455I=5‡5§5C®5%ò5*6 C6+M6y6Ž6;©6Hå6.7M7&U7&|7)£7£Í7q9 u9€9ˆ9¥9 «9·9 Ç9ÓÕ9l©<±?ÇÈBF¥F·F%ÆFMìF0:G3kG5ŸG3ÕG. H'8He`H!ÆH!èH8 I+CI0oI! I,ÂI0ïI2 J$SJ(xJ¡J¶J ÌJ<ÚJ.K)FK-pKžK¹K6ÙK7L+HL*tL*ŸL8ÊL7M8;MKtMAÀM.NI1NI{N9ÅN)ÿN)O*GOLrO1¿O9ñOH+P)tPWžP:öP81Q7jQ2¢Q=ÕQGR9[R0•R9ÆR5S,6S*cS;ŽSpÊS7;T3sT9§TOáT21UdU$€U%¥U#ËU)ïUV0VæOV6Y2GYzY'ŽY)¶Y!àYZ ZNZ!lZ1ŽZÀZÓZæZ ùZ[’ ].œ] Ë].ì]4^>P^4^?Ä^A_)F_Tp_`Å_E&`'l`)”`@¾`.ÿ`;.a*ja4•a.Êa9ùa@3b-tb0¢b/Ób7c7;c6sc ªcG¶cþc9d4Vd‹d1¥d7×d$e/4e0de)•e(¿e‡èe=pfH®fA÷fF9gG€g8Èg[h2]h0h+Áh(íh i17i0iiši ¬i!ºi?Üi j )j:JjT…j6Újkhk6kA¸k úkHlMl3blU–l`ìl-Mm {m&…m&¬m)ÓmÀªfše–04Pa$’+X¢Y8—‡1A`s™yg}N…‚|>£Ÿjq«•”-w †µ º9\I~k n]¼¬3d ¤O»¾!b'³u7r½¿›©#K¦. ‰5¯UœF€v´žJ(ŠD·,z^ZG&°Ž@=R²hoB; ‘:CŒH{Sƒxc)E/T?V"“L[ %±W¶i„­¹¨¸2˜mt§Q_6p‹ˆ¥M*l<®¡ %s ../../lib ../lib ./configure --prefix=PREFIX make make check make distclean make install --help-highlight describe all supported --highlight languages and file formats --highlight-bar-gray=NUM print highlight bars with gray NUM (0 - 1) --list-media list names of all known media --margins=LEFT:RIGHT:TOP:BOTTOM adjust page marginals --mark-wrapped-lines[STYLE] mark wrapped lines in the output with STYLE --non-printable-format=FMT specify how non-printable chars are printed --nup-columnwise layout pages in the N-up printing columnwise --nup-xpad=NUM set the page x-padding of N-up printing to NUM --nup-ypad=NUM set the page y-padding of N-up printing to NUM --page-label-format=FMT set page label format to FMT --ps-level=LEVEL set the PostScript language level that enscript should use --printer-options=OPTIONS pass extra options to the printer command --rotate-even-pages rotate even-numbered pages 180 degrees --slice=NUM print vertical slice NUM --style=STYLE use highlight style STYLE --swap-even-page-margins swap left and right side margins for each even numbered page --toc print table of contents --ul-angle=ANGLE set underlay text's angle to ANGLE --ul-font=NAME print underlays with font NAME --ul-gray=NUM print underlays with gray value NUM --ul-position=POS set underlay's starting position to POS --ul-style=STYLE print underlays with style STYLE --word-wrap wrap long lines from word boundaries -L, --lines-per-page=NUM specify how many lines are printed on each page -m, --mail send mail upon completion -M, --media=NAME use output media NAME -n, --copies=NUM print NUM copies of each page -N, --newline=NL select the newline character. Possible values for NL are: n (`\n') and r (`\r'). -o an alias for option --output -O, --missing-characters list missing characters -p, --output=FILE leave output to file FILE. If FILE is `-', leave output to stdout. -P, --printer=NAME print output to printer NAME -q, --quiet, --silent be really quiet -r, --landscape print in landscape mode -R, --portrait print in portrait mode option %d = "%s" left in %s sent to %s $3v $-40N $3% pages $4L lines $E $C%s: FATAL ERROR: States version %s or higher is required for this script %s: autoloading `%s' from `%s' %s: couldn't create output file "%s": %s %s: couldn't open definition file `%s': %s %s: couldn't open input file `%s': %s %s: couldn't open output file "%s"%s: error: undefined variable `%s' %s: illegal newline character specifier: '%s': expected 'n' or 'r' %s: illegal option -- %c %s: invalid option -- %c %s: malformed variable definition "%s" %s: no closing ')' for $() 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: ouf of memory%s: out of memory %s: panic: %s: primitive `%s': too few arguments for format %s: too long format for $D{} escape%s: too long format for %%D{} escape%s: too long variable name for $() escape%s: undefined state `%s' %s: undefined super state `%s' %s: unknown `$' escape `%c' (%d)%s: unknown `%%' escape `%c' (%d)%s: unknown warning level `%s' %s: unrecognized option `%c%s' %s: unrecognized option `--%s' %s: warning: font height is negative %s: warning: font size is negative %s: warning: font width is negative %s:%d: %%FooterHeight: no argument%s:%d: %%Format: name "%s" is already defined%s:%d: %%Format: no name%s:%d: %%Format: too long name, maxlen=%d%s:%d: %%HeaderHeight: no argument%s:%d: %s: argument %d doesn't match format %s:%d: %s: couldn't define state `%s' %s:%d: %s: illegal argument %s:%d: %s: illegal argument type %s:%d: %s: illegal regexp character syntax: %c %s:%d: %s: illegal type specifier `%c' %s:%d: %s: malformed version string `%s' %s:%d: %s: no extra options can be specified for %%s %s:%d: %s: offset out of range %s:%d: %s: start offset is bigger than end offset %s:%d: couldn't compile regular expression "%s": %s %s:%d: error: array reference index is not integer %s:%d: error: couldn't set variable `%s' %s:%d: error: expression between illegal types %s:%d: error: illegal lvalue for assignment %s:%d: error: illegal rvalue for string assignment %s:%d: error: illegal type for array reference %s:%d: error: negative array reference index %s:%d: error: too few arguments for subroutine %s:%d: error: too many arguments for subroutine %s:%d: error: undefined procedure `%s' %s:%d: error: undefined variable `%s' %s:%d: warning: redefining subroutine `%s' EPS file "%s" contains malformed %%%%BoundingBox row: "%.*s" EPS file "%s" does not start with "%%!" magic EPS file "%s" is not a valid EPS file EPS file "%s" is too large for page Highlighting is supported for the following languages and file formats: I did also try the following directories:Invalid back referenceInvalid character class nameInvalid collation characterInvalid content of \{\}Invalid preceding regular expressionInvalid range endInvalid regular expressionLong-only options: --color[=bool] create color outputs with states --continuous-page-numbers count page numbers across input files. Don't restart numbering at beginning of each file. --download-font=NAME download font NAME --extended-return-values enable extended return values --filter-stdin=NAME specify how stdin is shown to the input filter --footer=FOOTER set page footer --h-column-height=HEIGHT set the horizontal column height to HEIGHT --help print this help and exit Memory exhaustedN-up argument must be power of 2: %dNo matchNo previous regular expressionPremature end of regular expressionRegular expression too bigSuccessTable of ContentsThis is probably an installation error. Please, try to rebuild:Trailing backslashTry `%s --help' for more information. Unmatched ( or \(Unmatched ) or \)Unmatched [ or [^Unmatched \{Usage: %s [OPTION]... FILE... Mandatory arguments to long options are mandatory for short options too. -h, --help print this help and exit -p, --output-file=NAME print output to file NAME (default file is font.map). If FILE is `-', leavy output to stdout. -V, --version print version number Usage: %s [OPTION]... [FILE]... Mandatory arguments to long options are mandatory for short options too. couldn't close output file "%s": %scouldn't create AFM librarycouldn't create output file "%s": %scouldn't create temporary divert file: %scouldn't create temporary toc file: %scouldn't find encoding file "%s.enc": %s couldn't find header definition file "%s.hdr"couldn't find header definition file "%s.hdr": %s couldn't find prolog "%s": %s couldn't get passwd entry for uid=%d: %scouldn't open AFM file for font "%s", using default couldn't open AFM file for the default font: %scouldn't open AFM library: %scouldn't open EPS file "%s": %s couldn't open font description file "%s": %s couldn't open input file "%s": %scouldn't open input filter "%s" for file "%s": %scouldn't open printer `%s': %scouldn't read config file "%s/%s": %scouldn't rewind divert file: %scouldn't rewind toc file: %scouldn't stat input file "%s": %sdo not know anything about media "%s"downloading font "%s" error: EOF in commenterror: EOF in regular expressionerror: EOF in string constantfile alignment must be larger than zerofile=%s helper application specification must be single character: %sillegal N-up argument: %dillegal non-printable format "%s"illegal option %c for ^@epsf escapeillegal option: %sillegal page label format "%s"illegal style for wrapped line marker: "%s"illegal underlay style: %sillegal value "%s" for option %sinvalid value "%s" for option %sinvalid value for ^@bggray escape: %sinvalid value for ^@shade escape: %sknown media: name width height llx lly urx ury ------------------------------------------------------------ malformed %s escape: no '{' foundmalformed ^@epsf escape: no ']' after optionsmalformed ^@epsf escape: no '{' foundmalformed argument `%s' for option -W, --option: no comma foundmalformed color spec for ^@%s escape: %smalformed float dimension: "%s"malformed font spec for ^@font escape: %smalformed font spec: %smalformed underlay position: %smissing character codes (decimal): must print at least one line per each page: %sno output generated non-printable character codes (decimal): number of columns must be larger than zerooutput left in %s output sent to %s passing through %s file "%s" passing through all input files for output language `%s' printerprocessing file "%s"... reading AFM info for font "%s" set new marginals for media `%s' (%dx%d): llx=%d, lly=%d, urx=%d, ury=%d slice must be greater than zerostdoutsyntax error in option string %s="%s": missing end of quotation: %ctoo long argument for %s escape: %.*stoo long file name for ^@epsf escape: %.*struncatedunexpected EOF while scanning ^@epsf escapeunknown encoding: %sunknown special escape: %suser font encoding can be only the system's default or `ps'warning: didn't process following options from environment variable %s: warning: redefining state `%s'wrappedxcalloc(): couldn't allocate %d bytes xmalloc(): couldn't allocate %d bytes xrealloc(): couldn't reallocate %d bytes Project-Id-Version: GNU enscript 1.6.3 Report-Msgid-Bugs-To: bug-enscript@gnu.org POT-Creation-Date: 2011-07-10 16:43+0100 PO-Revision-Date: 2004-05-10 08:00-0500 Last-Translator: Michel Robitaille Language-Team: French Language: fr MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8-bit Plural-Forms: nplurals=2; plural=(n > 1); %s ../../lib ../lib ./configure --prefix=PREFIX make make check make distclean make install --help-highlight afficher la liste de tous les langages où --highlight est supporté --highlight-bar-gray=N imprimer les barres en surlignant selon le niveau de gris N (0 - 1) --list-media afficher la liste des médiums connus --list-options afficher toutes les options et leurs valeurs possibles --margins=LEFT:RIGHT:TOP:BOTTOM ajuster les marges des pages --mark-wrapped-lines[STYLE] marquer les lignes bouclées à l'aide du STYLE --non-printable-format=FORMAT utiliser le FORMAT non imprimable --nup-columnwise diposer les pages sous la forme de N colonnes --nup-xpad=NOMBRE imprimer en remplissant la page en x de N jusqu'au NOMBRE --nup-ypad=NOMBRE imprimer en remplissant la page en y de N jusqu'au NOMBRE --page-label-format=FORMAT utiliser le FORMAT de l'étiquette de page --ps-level=NIVEAU utiliser le NIVEAU du langage PostScript que « enscript » peut utiliser --printer-options=OPTIONS relayer les options supplémentaires à la commande d'impression --rotate-even-pages faire la rotation des pages paires de 180 degrés --slice=N imprimer la tranche verticale N --style=STYLE utiliser le STYLE de surlignage --swap-even-page-margins interchanger les marges de gauche et de droite pour chaque page paire --toc imprimer la table des matières --ul-angle=ANGLE imprimer le texte sous-jacent à l'ANGLE --ul-font=FONTE imprimer le texte sous-jacent en utilisant la FONTE de caractères --ul-gray=NIVEAU imprimer le texte sous-jacent en utilisant le NIVEAU d'intensité de tons de gris (0 ou 1) --ul-position=POS débuter le texte sous-jacent à la POSition voulue --ul-style=STYLE imprimer le texte sous-jacent selon le STYLE --word-wrap boucler les lignes longues sur des frontières de mots -L, --lines-per-page=N imprimer N lignes par page -m, --mail expédier un message après exécution -M, --media=NOM utiliser le médium de sortie portant le NOM -n, --copies=N produire N copies -N, --newline=CAR utiliser le CARactère de saut de ligne parmi: (« \n ») ou r (« \r »). -o utiliser l'alias pour « -p », « --output » -O, --missing-characters indiquer les codes de caractères manquants -p, --output=FICHIER produire la sortie dans un FICHIER. Si « - » est utilisé, utiliser la sortie standard. -P, --printer=NOM produire la sortie sur l'imprimante portant le NOM -q, --quiet, --silent ne pas utiliser le mode bavard -r, --landscape imprimer en mode paysage -R, --portrait imprimer en mode portrait option %d = « %s » placées dans %s expédié à «%s $3v $-40N $3% pages $4L lignes $E $C%s: ERREUR FATALE: la version %s ou plus récente est requise pour ce script. %s: autochargement de « %s » à partir de « %s » %s: ne peut créer un fichier de sortie « %s »: %s. %s: ne peut ouvrir le fichier définition « %s »: %s. %s: ne peut ouvrir le fichier d'entrée « %s »: %s. %s: ne peut ouvrir le fichier d'entrée « %s ».%s: ERREUR: variable indéfinie « %s ». %s: la spécification d'un caractère de saut de ligne est illégale: « %s »: attendait « n » ou « r » %s: l'option -- %c est illégale. %s: l'option -- %c est invalide. %s: la définition de variable est mal composée: « %s ». %s: « ) » manquante pour l'échappement $().%s: l'option « %c%s » ne permet pas d'argument. %s: l'option « %s » est ambiguë. %s: l'option « --%s » requiert un argument. %s: l'option « --%s » ne permet pas d'argument. %s: l'option « -W %s » ne permet pas de argument. %s: l'option « -W %s » est ambiguë. %s: l'option --%c requiert un argument. %s: mémoire épuisée.%s: mémoire épuisée. %s: panique: %s: primitive « %s »: trop peu de arguments pour le format. %s: format trop long pour un échappement $D{}.%s: format trop long l'échappement %%D{}.%s: format trop long pour un échappement $().%s: état « %s » indéfini. %s: super état indéfini « %s » %s: séquence « $ » d'échappement inconnue « %c » (%d).%s: séquence « %% » d'échappement inconnue « %c » (%d).%s: niveau d'avertissement « %s » inconnu. %s: l'option « %c%s » n'est pas reconnue. %s: l'option « --%s » n'est pas reconnue. %s: AVERTISSEMENT: la hauteur de la fonte est négative. %s: AVERTISSEMENT: la taille de la fonte est négative. %s: AVERTISSEMENT: la largeur de la fonte est négative. %s:%d: %%FooterHeight: ERREUR sur la hauteur du bas de page: pas d'argument%s:%d: %%Format: ERREUR de format: le nom « %s » est déjà défini.%s:%d: %%Format: ERREUR de format: pas de nom.%s:%d: %%Format: ERREUR de format: nom dépassant la longueur maximale=%d.%s:%d: %%HeaderHeight: ERREUR sur la hauteur de l'en-tête: pas d'argument%s:%d: %s: l'argument %d ne concorde pas avec le format. %s:%d: %s: ne peut définit l'état « %s » %s:%d: %s: argument illégal. %s:%d: %s: argument illégal pour ce type. %s:%d: %s: syntaxe illégale pour le caractère de l'expression régulière: %c %s:%d: %s: spécification de type illégal « %c ». %s:%d: %s: la chaîne de version « %s » est mal composée. %s:%d: %s: aucune option supplémentaire ne peut être spécifié avec %%s. %s:%d: %s: adresse relative hors limite. %s:%d: %s: l'adresse relative de départ est plus grande que l'adresse relative finale. %s:%d: ne peut compiler l'expression régulière « %s »: %s %s:%d: ERREUR: l'indice du tableau n'est pas un entier. %s:%d: ERREUR: ne peut initialiser la variable « %s ». %s:%d: ERREUR: expression entre types différents. %s:%d: ERREUR: affectation illégale pour un type « lvalue ». %s:%d: ERREUR: affectation de chaîne illégale pour un type « rvalue ». %s:%d: ERREUR: type illégal pour un pointeur de tableau. %s:%d: ERREUR: l'indice du tableau est négatif. %s:%d: erreur: trop peu d'arguments pour la sous-routine %s:%d: erreur: trop d'arguments pour la sous-routine %s:%d: erreur: procédure non définie « %s » %s:%d: ERREUR: variable indéfinie « %s ». %s:%d: AVERTISSEMENT: redéfinition de la procédure « %s ». Le fichier EPS « %s » contient une définition d'encadrement mal composée de type %%%%BoundingBox rangée:"%.*s". Le fichier EPS « %s » ne débute pas par « %%! » magic. Le fichier EPS « %s » est un fichier EPS invalide. Le fichier EPS « %s » est trop volumineux pour une page. Le surlignage est supporté pour les langages et formats de fichiers suivants: J'ai aussi essayer parmi les répertoires suivants:Adressage arrière invalide.Nom de classe de caractère invalide.Fusionnement invalide des caractères.Le contenu entre \{\} est invalide.Expression réguliére précédente invalide.Borne finale invalide.Expression régulière invalide.Options de formes longues seulement: --color[=bool] créer les couleurs de sortie avec états --continuous-page-numbers compter les numéros de page lors du parcours du fichier d'entrée. Ne pas recommencer la numérotation à partir du début de chaque fichier. --download-font=NOM télécharger la fonte ayant le NOM --extended-return-values autoriser le retour des valeurs étendues --filter-stdin=NOM spécifier comment stdin est affiché sur le filtre d'entrée --footer=BAS-DE-PAGE initialiser le bas de page --h-column-height=HAUTEUR initialiser la HAUTEUR horizontale des colonnes --help afficher l'aide et quitter Mémoire épuisée.argument « N-up » doit être une puissance de 2: %dAucune concordance.Aucune expression régulière précédente.Fin prématurée de l'expression régulière.Expression régulière trop grande.Succès.Table des matièresCela est probablement une erreur d'installation. SVP, essayer de reconstruire:Barre oblique inverse en suffixe.Pour en savoir davantage, faites: « %s --help ». ( ou \( non pairé.) ou \) non pairé.[ ou [^ non pairé.\{ non pairé.Usage: %s [OPTION]... FICHIER... Les arguments obligatoires pour les options de formes longues le sont aussi pour les options de formes courtes. -h, --help afficher l'aide-mémoire -p, --output-file=FICHIER expédier la sortie dans le FICHIER (par défaut dans le fichier font.map) Si le FICHIER est « - », la sortie demeure sur stdout -V, --version afficher le nom et la version du logiciel Usage: %s [OPTION]... [FICHIER]... Les arguments obligatoires pour les option de formes longues le sont aussi pour les options de formes courtes. Ne peut fermer le fichier de sortie « %s »: %sNe peut ouvrir la librairie AFM.Ne peut créer un fichier de sortie « %s »: %s.Ne peut créer le fichier temporaire de déviation: %sNe peut créer un fichier temporarire de table des matières: %sNe peut trouver le fichier d'encodage "%s.enc": %s. Ne peut trouver le fichier de définition de l'en-tête "%s.hdr".Ne peut trouver le fichier de définition d'en-tête "%s.hdr": %s. Ne peut trouver le préambule « %s »: %s. Ne peut retrouver une entrée dans le fichier « passwd » correspondant au Uid=%d: %s.Ne peut ouvrir le fichier AFM pour la fonte de caractères « %s », utilisera la fonte par défaut Ne peut ouvrir le fichier AFM des fontes de caractères par défaut: %sNe peut ouvrir la librairie « AFM »: %sNe peut ouvrir le fichier EPS « %s »: %s Ne peut ouvrir le fichier de description des fontes « %s »: %s. Ne peut ouvrir le fichier d'entrée « %s »: %s.Ne peut ouvrir le filtre « %s » pour le fichier « %s »: %s.Ne peut accéder à l'imprimante « %s »: %s.Ne peut lire le fichier de configuration "%s/%s": %sNe peut ré-ouvrir le fichier de déviation: %s.Ne peut ré-ouvrir le fichier de la table de matières: %s.Ne peut évaluer à l'aide de stat() le fichier fourni « %s »: %s.Ne peut reconnaître ce type de médium « %s ».Téléchargement de la fonte de caractères « %s » ERREUR: fin de fichier EOF dans le commentaire.ERREUR: fin de fichier EOF dans l'expression régulière.ERREUR: fin de fichier EOF dans une chaîne de constanteL'alignement de fichier doit être plus grand que zéro.fichier=%s spécification de l'application d'aire doit être un caractère simple: %sargument « N-up » illégal: %dLe format de la chaîne non imprimable « %s » est illégal.L'option %c est illégale pour un échappement ^@epsf.L'option %s est illégale.Le format d'étiquette de page « %s » est illégal.style illégal pour le marqueur de ligne bouclée: « %s »Le style sous-jacent %s est illégal.La valeur « %s » est illégale pour l'option %s.La valeur « %s » est illégale pour l'option %s.Valeur invalide pour ^@bggray escape: %s.Valeur invalide pour ^@shade escape: %s.Liste des médias connus: nom largeur hauteur llx lly urx ury ------------------------------------------------------------ L'échappement %s est mal composé: « { » n'a pas été retrouvé.L'échappement ^@epsf mal composée: « ] » non retrouvé après les options.L'échappement ^@epsf est mal composé: « } » n'a pas été retrouvé.argument mal composé « %s » pour l'option -W, --option: pas de virguleLa spécification de couleur est mal composée pour ^@%s l'échappement %sLa dimension en point flottant est mal composée: « %s ».La spécification de la fonte de caractères est mal composée pour un échappement ^@font: %sLa spécification de la fonte est mal composée: %s.La position sous-jacente de %s est mal composée.Codes de caractère manquants (en décimal): Imprimer au moins une ligne par page: %sAucune sortie n'a été produite. Codes de caractère non imprimables (en décimal): nombre de colonnes doit être plus grand que zéro placées dans %s expédié à %s Traitement du fichier %s « %s ». traitement de tout le fichier pour le langage de sortie « %s » l'imprimanteTraitement du fichier « %s »... Lecture du fichier AFM pour la fonte de caractères « %s » utiliser les arguments pour le média « %s » (%dx%d): llx=%d, lly=%d, urx=%d, ury=%d la valeur de la tranche doit être plus grande que zérostdoutErreur de syntaxe rencontrée dans l'option %s=« %s »: L'apostrophe terminant la chaîne %c est manquante.L'argument est trop long pour un échappement %s: %.*s.Le nom de fichier est trop long pour un échappement ^@epsf: %.*s.tronquéesFin de fichier (EOF) inattendue lors de l'examen des échappements ^@epsfEncodage inconnu: %sLe caractère spécial d'échappement est inconnu: %s.L'encodage des fontes usagères ne peut être que celui du système par défaut ou « ps »AVERTISSEMENT: ne peut traiter les options suivantes à partir des variables d'environnement %s: AVERTISSEMENT: redéfinition de l'état « %s ».enrouléesxcalloc(): ne peut allouer %d octets. xmalloc(): ne peut allouer %d octets. xrealloc(): ne peut réallouer %d octets. enscript-1.6.5.90/po/tr.po0000644000175000017500000012423611606344232012136 00000000000000# translation of enscript-1.6.3.tr.po to Turkish # Enscript Turkish Translation # Copyright (C) 2002, 2005 Free Software Foundation, Inc. # Deniz Akkus Kanca , 2002. # msgid "" msgstr "" "Project-Id-Version: enscript 1.6.3\n" "Report-Msgid-Bugs-To: bug-enscript@gnu.org\n" "POT-Creation-Date: 2011-07-10 16:43+0100\n" "PO-Revision-Date: 2005-03-14 04:21+0200\n" "Last-Translator: Deniz Akkus Kanca \n" "Language-Team: Turkish \n" "Language: tr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.9.1\n" #: compat/getopt.c:628 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "%s: `%s' seçeneÄŸi belirsiz\n" #: compat/getopt.c:652 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "%s: `--%s' seçeneÄŸi argüman almaz\n" #: compat/getopt.c:657 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "%s: `%c%s' seçeneÄŸi argüman almaz\n" #: compat/getopt.c:674 compat/getopt.c:847 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "%s: `%s' seçeneÄŸi için argüman zorunludur\n" #: compat/getopt.c:703 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "%s: bilinmeyen seçenek `--%s'\n" #: compat/getopt.c:707 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "%s: bilinmeyen seçenek `%c%s'\n" #: compat/getopt.c:733 #, c-format msgid "%s: illegal option -- %c\n" msgstr "%s: geçersiz seçenek -- %c\n" #: compat/getopt.c:736 #, c-format msgid "%s: invalid option -- %c\n" msgstr "%s: geçersiz seçenek -- %c\n" #: compat/getopt.c:766 compat/getopt.c:896 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: seçenek için argüman gerekli -- %c\n" #: compat/getopt.c:813 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "%s: `-W %s' seçeneÄŸi belirsiz\n" #: compat/getopt.c:831 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s: `-W %s' seçeneÄŸi argüman almaz\n" #: compat/xalloc.c:70 #, c-format msgid "xmalloc(): couldn't allocate %d bytes\n" msgstr "xmalloc(): %d bayt ayrılamadı\n" #: compat/xalloc.c:88 #, c-format msgid "xcalloc(): couldn't allocate %d bytes\n" msgstr "xcalloc(): %d bayt ayrılamadı\n" #: compat/xalloc.c:109 #, c-format msgid "xrealloc(): couldn't reallocate %d bytes\n" msgstr "xrealloc(): %d bayt yeniden ayrılamadı\n" #: compat/regex.c:996 msgid "Success" msgstr "BaÅŸarılı" #: compat/regex.c:997 msgid "No match" msgstr "EÅŸleÅŸme yok" #: compat/regex.c:998 msgid "Invalid regular expression" msgstr "Geçersiz düzenli ifade" #: compat/regex.c:999 msgid "Invalid collation character" msgstr "Harmanlama karakteri geçersiz" #: compat/regex.c:1000 msgid "Invalid character class name" msgstr "Karakter sınıf ismi geçersiz" #: compat/regex.c:1001 msgid "Trailing backslash" msgstr "İzleyen terskesme" #: compat/regex.c:1002 msgid "Invalid back reference" msgstr "Geriye baÅŸvuru geçersiz" #: compat/regex.c:1003 msgid "Unmatched [ or [^" msgstr "EÅŸleÅŸmemiÅŸ [ veya [^" #: compat/regex.c:1004 msgid "Unmatched ( or \\(" msgstr "EÅŸleÅŸmemiÅŸ ( veya \\(" #: compat/regex.c:1005 msgid "Unmatched \\{" msgstr "EÅŸleÅŸmemiÅŸ \\{" #: compat/regex.c:1006 msgid "Invalid content of \\{\\}" msgstr "\\{\\} içinde geçersiz içerik" #: compat/regex.c:1007 msgid "Invalid range end" msgstr "Geçersiz aralık sonu" #: compat/regex.c:1008 msgid "Memory exhausted" msgstr "Bellek tükendi" #: compat/regex.c:1009 msgid "Invalid preceding regular expression" msgstr "Önceki düzenli ifade geçersiz" #: compat/regex.c:1010 msgid "Premature end of regular expression" msgstr "Düzenli ifadenin sonu eksik kalmış" #: compat/regex.c:1011 msgid "Regular expression too big" msgstr "Düzenli ifade fazla büyük" #: compat/regex.c:1012 msgid "Unmatched ) or \\)" msgstr "EÅŸleÅŸmemiÅŸ ) veya \\)" #: compat/regex.c:5458 msgid "No previous regular expression" msgstr "Daha önce düzenli ifade yok" #: src/main.c:949 #, no-c-format msgid "$3v $-40N $3% pages $4L lines $E $C" msgstr "$3v $-40N $3% sayfa $4L satır $E $C" #: src/main.c:979 #, c-format msgid "couldn't get passwd entry for uid=%d: %s" msgstr "uid=%d için parola girdisi alınamadı: %s" #: src/main.c:1071 #, c-format msgid "couldn't read config file \"%s/%s\": %s" msgstr "\"%s/%s\" ayar dosyası açılamadı: %s" #: src/main.c:1075 msgid "I did also try the following directories:" msgstr "Ayrıca, aÅŸağıdaki dizinler de denendi:" #: src/main.c:1076 src/main.c:1077 src/main.c:1078 #, c-format msgid "\t%s" msgstr "\t%s" #: src/main.c:1079 msgid "\t../lib" msgstr "\t../lib" #: src/main.c:1080 msgid "\t../../lib" msgstr "\t../../lib" #: src/main.c:1082 msgid "This is probably an installation error. Please, try to rebuild:" msgstr "Bu bir kurulum hatasına benziyor. Lütfen yeniden derlemeye çalışın:" #: src/main.c:1083 msgid "\tmake distclean" msgstr "\tmake distclean" #: src/main.c:1084 msgid "\t./configure --prefix=PREFIX" msgstr "\t./configure --prefix=ÖNEK" #: src/main.c:1085 msgid "\tmake" msgstr "\tmake" #: src/main.c:1086 msgid "\tmake check" msgstr "\tmake check" #: src/main.c:1087 msgid "\tmake install" msgstr "\tmake install" #: src/main.c:1088 #, fuzzy msgid "" "or set the environment variable `ENSCRIPT_LIBRARY' to point to your library " "directory." msgstr "veya `ENSCRIPT_LIBRARY' çevre deÄŸiÅŸkenini sizin" #: src/main.c:1161 #, c-format msgid "unknown encoding: %s" msgstr "bilinmeyen kodlama: %s" #: src/main.c:1180 #, c-format msgid "couldn't open AFM library: %s" msgstr "AFM kitaplığı açılamadı: %s" #: src/main.c:1209 #, c-format msgid "" "known media:\n" "name width\theight\tllx\tlly\turx\tury\n" "------------------------------------------------------------\n" msgstr "" "bilinen ortamlar:\n" "isim geniÅŸlik\tuzunluk\tllx\tlly\turx\tury\n" "----------------------------------------------------------------\n" #: src/main.c:1228 #, c-format msgid "do not know anything about media \"%s\"" msgstr "\"%s\" ortamı hakkında hiç bir ÅŸey bilinmiyor" #: src/main.c:1272 #, c-format msgid "" "set new marginals for media `%s' (%dx%d): llx=%d, lly=%d, urx=%d, ury=%d\n" msgstr "" "`%s' ortamı için yeni kenarlar atanıyor (%dx%d): llx=%d, lly=%d, urx=%d, ury=" "%d\n" #: src/main.c:1283 #, c-format msgid "illegal page label format \"%s\"" msgstr "geçersiz sayfa etiket biçemi \"%s\"" #: src/main.c:1295 #, c-format msgid "illegal non-printable format \"%s\"" msgstr "geçersiz basılamaz biçem \"%s\"" #: src/main.c:1309 #, c-format msgid "illegal style for wrapped line marker: \"%s\"" msgstr "sarılmış satır imleci için geçersiz stil: \"%s\"" #: src/main.c:1319 #, c-format msgid "illegal N-up argument: %d" msgstr "geçersiz N-up argümanı: %d" #: src/main.c:1324 #, c-format msgid "N-up argument must be power of 2: %d" msgstr "N-up argümanı 2'nin kuvveti olmalı: %d" #: src/main.c:1401 #, c-format msgid "malformed underlay position: %s" msgstr "bozuk metinaltı pozisyonu: %s" #: src/main.c:1424 #, c-format msgid "illegal underlay style: %s" msgstr "geçersiz metinaltı stili: %s" #: src/main.c:1451 #, c-format msgid "" "Highlighting is supported for the following languages and file formats:\n" "\n" msgstr "" "Renklendirme aÅŸağıdaki diller ve dosya biçemleri için desteklenir:\n" "\n" #: src/main.c:1632 #, c-format msgid "couldn't create temporary toc file: %s" msgstr "geçici içindekiler dosyası oluÅŸturulamadı: %s" #: src/main.c:1679 #, c-format msgid "couldn't stat input file \"%s\": %s" msgstr "\"%s\" girdi dosyası durumlanamadı: %s" #: src/main.c:1699 #, c-format msgid "couldn't rewind toc file: %s" msgstr "içindekiler dosyası baÅŸa döndürülemedi: %s" #: src/main.c:1705 msgid "Table of Contents" msgstr "İçindekiler" #: src/main.c:1731 msgid "no output generated\n" msgstr "çıktı üretilmedi\n" #: src/main.c:1736 #, c-format msgid "output sent to %s\n" msgstr "çıktı %s'ye gönderildi\n" #: src/main.c:1737 src/main.c:1768 msgid "printer" msgstr "yazıcı" #: src/main.c:1739 #, c-format msgid "output left in %s\n" msgstr "çıktı %s'de bırakıldı\n" #: src/main.c:1760 #, c-format msgid "%d page" msgid_plural "%d pages" msgstr[0] "" msgstr[1] "" #: src/main.c:1762 #, c-format msgid "%d copy" msgid_plural "%d copies" msgstr[0] "" msgstr[1] "" #: src/main.c:1767 #, c-format msgid " sent to %s\n" msgstr " %s'ye gönderildi\n" #: src/main.c:1770 #, c-format msgid " left in %s\n" msgstr " %s'de bırakıldı\n" #: src/main.c:1776 #, fuzzy, c-format msgid "%d line was %s\n" msgid_plural "%d lines were %s\n" msgstr[0] "%d satır %s\n" msgstr[1] "%d satır %s\n" #: src/main.c:1781 msgid "truncated" msgstr "budandı" #: src/main.c:1781 msgid "wrapped" msgstr "sarıldı" #: src/main.c:1788 #, fuzzy, c-format msgid "%d character was missing\n" msgid_plural "%d characters were missing\n" msgstr[0] "%d harf eksik\n" msgstr[1] "%d harf eksik\n" #: src/main.c:1794 msgid "missing character codes (decimal):\n" msgstr "eksik karakter kodları (onluk):\n" #: src/main.c:1803 #, fuzzy, c-format msgid "%d non-printable character\n" msgid_plural "%d non-printable characters\n" msgstr[0] "%d basılamaz karakter\n" msgstr[1] "%d basılamaz karakter\n" #: src/main.c:1810 msgid "non-printable character codes (decimal):\n" msgstr "basılamaz karakter kodları (onluk):\n" #: src/main.c:1859 #, c-format msgid "couldn't open printer `%s': %s" msgstr "`%s' yazıcısı açılamadı: %s" #: src/main.c:1868 #, c-format msgid "couldn't create output file \"%s\": %s" msgstr "\"%s\" çıktı dosyası oluÅŸturulamadı: %s" #: src/main.c:1885 #, c-format msgid "couldn't close output file \"%s\": %s" msgstr "\"%s\" çıktı dosyası kapatılamadı: %s" #: src/main.c:1943 #, c-format msgid "" "syntax error in option string %s=\"%s\":\n" "missing end of quotation: %c" msgstr "" "seçenek dizgesi %s=\"%s\" içinde sözdizim hatası:\n" "açılan tırnak kapatılmamış: %c" #: src/main.c:1975 #, c-format msgid "" "warning: didn't process following options from environment variable %s:\n" msgstr "uyarı: çevre deÄŸiÅŸkeni %s'den aÅŸağıdaki seçenekler iÅŸlenmedi:\n" #: src/main.c:1979 #, c-format msgid " option %d = \"%s\"\n" msgstr " seçenek %d = \"%s\"\n" #: src/main.c:2025 msgid "number of columns must be larger than zero" msgstr "sütun sayısı sıfırdan büyük olmalı" #: src/main.c:2083 msgid "file alignment must be larger than zero" msgstr "dosya hizalanması sıfırdan büyük olmalı" #: src/main.c:2138 src/main.c:2144 src/main.c:2355 src/util.c:416 #, c-format msgid "malformed font spec: %s" msgstr "bozuk yazıtipi özelliÄŸi: %s" #: src/main.c:2160 #, c-format msgid "couldn't find header definition file \"%s.hdr\"" msgstr "baÅŸlık tanım dosyası \"%s.hdr\" bulunamadı" #: src/main.c:2204 #, c-format msgid "must print at least one line per each page: %s" msgstr "her sayfaya en az bir satır basmalı: %s" #: src/main.c:2224 #, c-format msgid "%s: illegal newline character specifier: '%s': expected 'n' or 'r'\n" msgstr "" "%s: geçersiz yenisatır karakter belirteci: '%s': 'n' veya 'r' beklendi\n" #: src/main.c:2313 #, c-format msgid "malformed argument `%s' for option -W, --option: no comma found" msgstr "-W seçeneÄŸi için hatalı argüman `%s', --option: virgül bulunamadı" #: src/main.c:2318 #, c-format msgid "helper application specification must be single character: %s" msgstr "yardımcı uygulama belirteci tek bir karakter olmalı: %s" #: src/main.c:2414 msgid "slice must be greater than zero" msgstr "dilim sıfırdan büyük olmalı" #: src/main.c:2495 states/main.c:318 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Daha fazla bilgi için `%s --help' yazın.\n" #: src/main.c:2515 #, fuzzy, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" "Mandatory arguments to long options are mandatory for short options too.\n" " -# an alias for option -n, --copies\n" " -1 same as --columns=1\n" " -2 same as --columns=2\n" " --columns=NUM specify the number of columns per page\n" " -a, --pages=PAGES specify which pages are printed\n" " -A, --file-align=ALIGN align separate input files to ALIGN\n" " -b, --header=HEADER set page header\n" " -B, --no-header no page headers\n" " -c, --truncate-lines cut long lines (default is to wrap)\n" " -C[START], --line-numbers[=START]\n" " precede each line with its line number\n" " -d an alias for option --printer\n" " -D, --setpagedevice=KEY[:VALUE]\n" " pass a page device definition to output\n" " -e[CHAR], --escapes[=CHAR] enable special escape interpretation\n" msgstr "" "Kullanım: %s [SEÇENEK]... [DOSYA]...\n" "Uzun seçenekler için zorunlu olan argümanlar kısa seçenekler için de\n" "zorunludur.\n" " -# -n, --copies ile aynı\n" " -1 --columns=1 ile aynı\n" " -2 --columns=2 ile aynı\n" " --columns=SAYI sayfadaki sütun sayısını belirler\n" " -a, --pages=SAYFALAR hangi sayfaların basılacağını belirler\n" " -A, --file-align=HİZA farklı girdi dosyalarını HİZA'ya göre hizalar\n" "\n" " -b, --header=BAÅžLIK sayfa baÅŸlığını belirler\n" " -B, --no-header sayfa baÅŸlığı yok\n" " -c, --truncate-lines uzun satırları budar (öntanımlı sarmaktır)\n" " -C, --line-numbers[=BAÅžL]\n" " her satırın başına satır numarasını koyar\n" " -d --printer ile aynı\n" " -D, --setpagedevice=ANAHTAR[:DEPER]\n" " çıktıya bir sayfa aygıt tanımı gönderir\n" " -e, --escapes[=HARF] özel kaçış tanımlarını etkinleÅŸtirir\n" #: src/main.c:2535 #, fuzzy, c-format msgid " -E[LANG], --highlight[=LANG] highlight source code\n" msgstr " -E, --highlight[=DİL] kaynak kodunu süsler\n" #: src/main.c:2538 #, fuzzy, c-format msgid "" " -f, --font=NAME use font NAME for body text\n" " -F, --header-font=NAME use font NAME for header texts\n" " -g, --print-anyway nothing (compatibility option)\n" " -G same as --fancy-header\n" " --fancy-header[=NAME] select fancy page header\n" " -h, --no-job-header suppress the job header page\n" " -H[NUM], --highlight-bars[=NUM] specify how high highlight bars are\n" " -i, --indent=NUM set line indent to NUM characters\n" " -I, --filter=CMD read input files through input filter CMD\n" " -j, --borders print borders around columns\n" " -J, an alias for option --title\n" " -k, --page-prefeed enable page prefeed\n" " -K, --no-page-prefeed disable page prefeed\n" " -l, --lineprinter simulate lineprinter, this is an alias for:\n" " --lines-per-page=66, --no-header, --" "portrait,\n" " --columns=1\n" msgstr "" " -f, --font=İSİM gövde metni için İSİM yazıtipini kullanır\n" " -F, --header-font=İSİM baÅŸlık metinleri için İSİM yazıtipini kullanır\n" " -g, --print-anyway etkisiz (uyumluluk seçeneÄŸi)\n" " -G --fancy-header ile aynı\n" " --fancy-header[=İSİM] süslü sayfa baÅŸlığı seçer\n" " -h, --no-job-header iÅŸ baÅŸlık sayfasını basmaz\n" " -H, --highlight-bars=SAYI renklendirme çubuklarının yüksekliÄŸini " "belirler\n" " -i, --indent=SAYI satır içerlemesini SAYI harf olarak belirler\n" " -I, --filter=KOMUT girdi dosyalarını girdi filtresi KOMUT'tan " "geçirir\n" " -j, --borders sütunların etrafına kenar basar\n" " -J, --title ile aynı\n" " -k, --page-prefeed sayfa önbeslemesini etkinleÅŸtirir\n" " -K, --no-page-prefeed sayfa önbeslemesini etksizleÅŸtirir\n" " -l, --lineprinter satıryazıcısını taklit eder, aÅŸağıdakilerle " "aynı:\n" " --lines-per-page=66, --no-header, --" "portrait,\n" " --columns=1\n" #: src/main.c:2556 #, c-format msgid "" " -L, --lines-per-page=NUM specify how many lines are printed on each " "page\n" " -m, --mail send mail upon completion\n" " -M, --media=NAME use output media NAME\n" " -n, --copies=NUM print NUM copies of each page\n" " -N, --newline=NL select the newline character. Possible\n" " values for NL are: n (`\\n') and r (`\\r').\n" " -o an alias for option --output\n" " -O, --missing-characters list missing characters\n" " -p, --output=FILE leave output to file FILE. If FILE is `-',\n" " leave output to stdout.\n" " -P, --printer=NAME print output to printer NAME\n" " -q, --quiet, --silent be really quiet\n" " -r, --landscape print in landscape mode\n" " -R, --portrait print in portrait mode\n" msgstr "" " -L, --lines-per-page=SAYI bir sayfada kaç satır olacağını belirler\n" " -m, --mail bittiÄŸi zaman e-posta gönderir\n" " -M, --media=İSİM çıktı ortamında İSİM kullanır\n" " -n, --copies=SAYI her sayfadan SAYI kopya basar\n" " -N, --newline=YS yenisatır karakterini belirler. YS için mümkün\n" " olan deÄŸerler: n (`\\n') ve r (`\\r').\n" " -o --output ile aynı\n" " -O, --missing-characters eksik harfleri listeler\n" " -p, --output=DOSYA çıktıyı DOSYA dosyasına gönderir. EÄŸer DOSYA " "`-' ise,\n" " çıktıyı standart çıktıya gönderir.\n" " -P, --printer=İSİM çıktıyı İSİM yazıcısına gönderir\n" " -q, --quiet, --silent sessiz çalışır\n" " -r, --landscape enine basar\n" " -R, --portrait boyuna basar\n" #: src/main.c:2572 #, fuzzy, c-format msgid "" " -s, --baselineskip=NUM set baselineskip to NUM\n" " -S, --statusdict=KEY[:VALUE]\n" " pass a statusdict definition to the output\n" " -t, --title=TITLE set banner page's job title to TITLE. Option\n" " sets also the name of the input file stdin.\n" " -T, --tabsize=NUM set tabulator size to NUM\n" " -u[TEXT], --underlay[=TEXT] print TEXT under every page\n" " -U, --nup=NUM print NUM logical pages on each output page\n" " -v, --verbose tell what we are doing\n" " -V, --version print version number\n" " -w, --language=LANG set output language to LANG\n" " -W, --options=APP,OPTION pass option OPTION to helper application APP\n" " -X, --encoding=NAME use input encoding NAME\n" " -z, --no-formfeed do not interpret form feed characters\n" " -Z, --pass-through pass through PostScript and PCL files\n" " without any modifications\n" msgstr "" " -s, --baselineskip=SAYI baselineskip'i SAYI olarak belirler\n" " -S, --statusdict=ANAHTAR[:DEÄžER]\n" " çıktıya statusdict tanımı gönderir\n" " -t, --title=BAÅžLIK baÅŸlık sayfasının iÅŸ baÅŸlığını BAÅžLIK olarak " "belirler.\n" " Seçenek aynı zamanda girdi dosyasının adını " "belirler.\n" " -T, --tabsize=SAYI sekme boyunu SAYI olarak ayarlar\n" " -u, --underlay[=METİN] metnin altında METİN yazısını basar\n" " -U, --nup=SAYI her çıktı sayfasında SAYI mantıksal sayfa " "basar\n" " -v, --verbose bilgi verir\n" " -V, --version sürüm bilgisini gösterir\n" " -w, --language=DİL çıktı dilini DİL olarak belirler\n" " -W, --options=UYG,SEÇ yardımcı uygulamaya verilen seçenekleri " "geçirir\n" " -X, --encoding=İSİM girdi kodlaması İSİM'i kullanır\n" " -z, --no-formfeed form feed karakterlerini iÅŸlemez\n" " -Z, --pass-through Postscript ve PCL dosyalarında deÄŸiÅŸiklik " "yapmaksızın\n" " gönderir\n" #: src/main.c:2590 #, c-format msgid "" "Long-only options:\n" " --color[=bool] create color outputs with states\n" " --continuous-page-numbers count page numbers across input files. Don't\n" " restart numbering at beginning of each file.\n" " --download-font=NAME download font NAME\n" " --extended-return-values enable extended return values\n" " --filter-stdin=NAME specify how stdin is shown to the input filter\n" " --footer=FOOTER set page footer\n" " --h-column-height=HEIGHT set the horizontal column height to HEIGHT\n" " --help print this help and exit\n" msgstr "" "Yalnız uzun seçenekler:\n" " --color[=bool] renkli çıktı üretir\n" " --continuous-page-numbers sayfa numaralarını bütün girdi dosyalarında " "devam\n" " ettirir. Her dosyada sayfa sayısını yeniden\n" " baÅŸlatmaz.\n" " --download-font=İSİM İSİM yazıtipini indirir.\n" " --extended-return-values geliÅŸmiÅŸ çıkış deÄŸerlerini etkinleÅŸtirir.\n" " --filter-stdin=İSİM standart girdinin girdi filtresine nasıl " "geleceÄŸini\n" " belirtir.\n" " --footer=ALTYAZI sayfa altyazısını belirtir.\n" " --h-column-height=BOY yatay sütun boyunu BOY olarak ayarlar.\n" " --help bu yardımı gösterir ve çıkar.\n" #: src/main.c:2601 #, c-format msgid "" " --help-highlight describe all supported --highlight languages\n" " and file formats\n" " --highlight-bar-gray=NUM print highlight bars with gray NUM (0 - 1)\n" " --list-media list names of all known media\n" " --margins=LEFT:RIGHT:TOP:BOTTOM\n" " adjust page marginals\n" " --mark-wrapped-lines[STYLE]\n" " mark wrapped lines in the output with STYLE\n" " --non-printable-format=FMT specify how non-printable chars are printed\n" msgstr "" " --help-highlight bütün desteklenen --highlight dillerini ve\n" " dosya biçemlerini gösterir\n" " --highlight-bar-gray=SAYI renklendirme çubuklarını gri SAYI (0-1) olarak " "basar\n" " --list-media bilinen bütün ortamları listeler\n" " --list-options bilinen bütün seçenekleri ve deÄŸerlerini " "listeler\n" " --margins=SOL:SAÄž:ÜST:ALT\n" " sayfa kenar boÅŸluklarını ayarlar\n" " --mark-wrapped-lines[STİL]\n" " çıktıda sarılmış satırları STİL ile belirtir\n" " --non-printable-format=BÇM basılamaz karakterlerin nasıl basılacağını " "belirler\n" #: src/main.c:2612 #, c-format msgid "" " --nup-columnwise layout pages in the N-up printing columnwise\n" " --nup-xpad=NUM set the page x-padding of N-up printing to NUM\n" " --nup-ypad=NUM set the page y-padding of N-up printing to NUM\n" " --page-label-format=FMT set page label format to FMT\n" " --ps-level=LEVEL set the PostScript language level that " "enscript\n" " should use\n" " --printer-options=OPTIONS pass extra options to the printer command\n" " --rotate-even-pages rotate even-numbered pages 180 degrees\n" msgstr "" " --nup-columnwise N-up basımı için sayfaları sütunlar halinde " "düzenler\n" " --nup-xpad=SAYI N-up basımı için sayfanın x-yastıklamasını " "SAYI'ya ayarlar\n" " --nup-ypad=SAYI N-up basımı için sayfanın y-yastıklamasını " "SAYI'ya ayarlar\n" " --page-label-format=BÇM sayfa etiket biçemini BÇM olarak ayarlar\n" " --ps-level=SEVİYE enscript'in kullanacağı Postscript dil " "seviyesini belirler\n" " --printer-options=SEÇENEK yazıcı komutuna fazladan seçenekler gönderir\n" " --rotate-even-pages çift sayılı sayfaları 180 derece döndürür\n" #: src/main.c:2622 #, c-format msgid "" " --slice=NUM print vertical slice NUM\n" " --style=STYLE use highlight style STYLE\n" " --swap-even-page-margins swap left and right side margins for each even\n" " numbered page\n" " --toc print table of contents\n" " --ul-angle=ANGLE set underlay text's angle to ANGLE\n" " --ul-font=NAME print underlays with font NAME\n" " --ul-gray=NUM print underlays with gray value NUM\n" " --ul-position=POS set underlay's starting position to POS\n" " --ul-style=STYLE print underlays with style STYLE\n" " --word-wrap wrap long lines from word boundaries\n" msgstr "" " --slice=SAYI SAYI no'lu dikey dilimi yazdırır\n" " --style=TARZ renklendirme tarzı TARZ kullanır\n" " --swap-even-page-margins her çift numaralı sayfa için sol ve saÄŸ " "boÅŸlukları\n" " deÄŸiÅŸtokuÅŸ eder.\n" " --toc içindekiler bölümü yazdırır\n" " --ul-angle=AÇI metinaltı metninin açısını AÇI olarak ayarlar\n" " --ul-font=İSİM metinaltlarını İSİM yazıtipiyle yazdırır\n" " --ul-gray=SAYI metinaltlarını SAYI deÄŸerli gri renkle " "yazdırır\n" " --ul-position=POZ metinaltının baÅŸlangıç noktasını POZ'a ayarlar\n" " --ul-style=TARZ metinaltlarını TARZ tarzında yazdırır\n" " --word-wrap uzun satırları sözcük sınırlarında sardırır\n" #: src/main.c:2636 #, fuzzy, c-format msgid "" "\n" "Report bugs to <%s>.\n" msgstr "" "\n" "Yazılım hatalarını 'ye,\n" "çeviri hatalarını 'a bildirin.\n" #: src/psgen.c:331 #, c-format msgid "couldn't find prolog \"%s\": %s\n" msgstr "\"%s\" giriÅŸi bulunamadı: %s\n" #: src/psgen.c:339 #, c-format msgid "couldn't find encoding file \"%s.enc\": %s\n" msgstr "kodlama dosyası \"%s.enc\" bulunamadı: %s\n" #: src/psgen.c:471 #, c-format msgid "couldn't find header definition file \"%s.hdr\": %s\n" msgstr "baÅŸlık tanım dosyası \"%s.hdr\" bulunamadı: %s\n" #: src/psgen.c:615 #, c-format msgid "processing file \"%s\"...\n" msgstr "\"%s\" dosyası iÅŸleniyor...\n" #: src/psgen.c:913 #, c-format msgid "EPS file \"%s\" is too large for page\n" msgstr "EPS dosyası \"%s\" sayfa için fazla büyük\n" #: src/psgen.c:986 msgid "user font encoding can be only the system's default or `ps'" msgstr "kullanıcı yazıtipi kodlaması ya sistem öntanımlısı ya da `ps' olabilir" #: src/psgen.c:1228 #, c-format msgid "unknown special escape: %s" msgstr "bilinmeyen özel kaçış: %s" #: src/psgen.c:1354 #, c-format msgid "illegal option %c for ^@epsf escape" msgstr "^@epsf kaçışı için geçersiz %c seçeneÄŸi" #: src/psgen.c:1360 msgid "malformed ^@epsf escape: no ']' after options" msgstr "bozuk ^@epsf kaçışı: seçeneklerden sonra ']' yok" #: src/psgen.c:1372 #, c-format msgid "" "too long file name for ^@epsf escape:\n" "%.*s" msgstr "" "^@epsf kaçışı için çok uzun dosya adı:\n" "%.*s" #: src/psgen.c:1376 msgid "unexpected EOF while scanning ^@epsf escape" msgstr "^@epsf kaçışı taranırken beklenmeyen EOF" #: src/psgen.c:1382 msgid "malformed ^@epsf escape: no '{' found" msgstr "bozuk ^@epsf kaçışı: '{' bulunamadı" #: src/psgen.c:1440 #, c-format msgid "malformed %s escape: no '{' found" msgstr "bozuk %s kaçışı: '{' bulunamadı" #: src/psgen.c:1454 #, c-format msgid "" "too long argument for %s escape:\n" "%.*s" msgstr "" "%s kaçışı için fazla uzun argüman:\n" "%.*s" #: src/psgen.c:1474 #, c-format msgid "malformed font spec for ^@font escape: %s" msgstr "^@font kaçışı için bozuk yazıtipi belirteci: %s" #: src/psgen.c:1511 #, c-format msgid "malformed color spec for ^@%s escape: %s" msgstr "^@%s kaçışı için bozuk renk belirteci: %s" #: src/psgen.c:1535 #, c-format msgid "invalid value for ^@shade escape: %s" msgstr "^@shade kaçışı için geçersiz deÄŸer: %s" #: src/psgen.c:1543 #, c-format msgid "invalid value for ^@bggray escape: %s" msgstr "^@bggray kaçışı için geçersiz deÄŸer: %s" #: src/psgen.c:2412 #, c-format msgid "couldn't open EPS file \"%s\": %s\n" msgstr "EPS dosyası \"%s\" açılamadı: %s\n" #: src/psgen.c:2448 #, c-format msgid "EPS file \"%s\" does not start with \"%%!\" magic\n" msgstr "EPS dosyası \"%s\" \"%%!\" sihriyle baÅŸlamıyor\n" #: src/psgen.c:2473 #, c-format msgid "" "EPS file \"%s\" contains malformed %%%%BoundingBox row:\n" "\"%.*s\"\n" msgstr "" "EPS dosyası \"%s\" bozuk %%%%BoundingBox satırı içeriyor:\n" "\"%.*s\"\n" #: src/psgen.c:2498 #, c-format msgid "EPS file \"%s\" is not a valid EPS file\n" msgstr "EPS dosyası \"%s\" geçerli bir EPS dosyası deÄŸil\n" #: src/psgen.c:2640 #, c-format msgid "passing through all input files for output language `%s'\n" msgstr "çıktı dili `%s' için bütün girdi dosyaları geçiriliyor\n" #: src/psgen.c:2692 #, c-format msgid "passing through %s file \"%s\"\n" msgstr "%s dosyası \"%s\" geçiriliyor\n" #: src/psgen.c:2795 #, c-format msgid "couldn't create temporary divert file: %s" msgstr "geçici ara dosya oluÅŸturulamadı: %s" #: src/psgen.c:2812 #, c-format msgid "couldn't rewind divert file: %s" msgstr "ara dosya baÅŸa sarılamadı: %s" #: src/util.c:93 #, fuzzy, c-format msgid "missing argument: %s" msgstr "geçersiz N-up argümanı: %d" #: src/util.c:186 src/util.c:214 #, c-format msgid "illegal value \"%s\" for option %s" msgstr "%2$s seçeneÄŸi için hatalı deÄŸer \"%1$s\"" #: src/util.c:202 #, c-format msgid "invalid value \"%s\" for option %s" msgstr "%2$s seçeneÄŸi için geçersiz deÄŸer \"%1$s\"" #: src/util.c:440 #, c-format msgid "illegal option: %s" msgstr "hatalı seçenek: %s" #: src/util.c:619 #, c-format msgid "%s:%d: %%Format: no name" msgstr "%s:%d: %%Biçem: isimsiz" #: src/util.c:630 #, c-format msgid "%s:%d: %%Format: too long name, maxlen=%d" msgstr "%s:%d: %%Format: çok uzun isim, en fazla=%d" #: src/util.c:653 #, c-format msgid "%s:%d: %%Format: name \"%s\" is already defined" msgstr "%s:%d: %%Biçem: isim \"%s\" zaten tanımlı" #: src/util.c:674 #, c-format msgid "%s:%d: %%HeaderHeight: no argument" msgstr "%s:%d: %%HeaderHeight: argüman yok" #: src/util.c:696 #, c-format msgid "%s:%d: %%FooterHeight: no argument" msgstr "%s:%d: %%FooterHeight: argüman yok" #: src/util.c:843 #, c-format msgid "%s: warning: font size is negative\n" msgstr "%s: uyarı: yazıtipi boyu negatif\n" #: src/util.c:845 #, c-format msgid "%s: warning: font width is negative\n" msgstr "%s: uyarı: yazıtipi geniÅŸliÄŸi negatif\n" #: src/util.c:847 #, c-format msgid "%s: warning: font height is negative\n" msgstr "%s: uyarı: yazıtipi yüksekliÄŸi negatif\n" #: src/util.c:866 #, c-format msgid "reading AFM info for font \"%s\"\n" msgstr "\"%s\" yazıtipi için AFM bilgisi okunuyor\n" #: src/util.c:899 #, c-format msgid "couldn't open AFM file for font \"%s\", using default\n" msgstr "\"%s\" yazıtipi için AFM dosyası açılamadı, öntanımlı kullanılıyor\n" #: src/util.c:906 #, c-format msgid "couldn't open AFM file for the default font: %s" msgstr "öntanımlı yazıtipi için AFM dosyası açılamadı: %s" #: src/util.c:1095 #, c-format msgid "downloading font \"%s\"\n" msgstr "\"%s\" yazıtipi indiriliyor\n" #: src/util.c:1100 #, c-format msgid "couldn't open font description file \"%s\": %s\n" msgstr "yazıtipi tanım dosyası \"%s\" açılamadı: %s\n" #: src/util.c:1392 #, c-format msgid "%s: too long format for %%D{} escape" msgstr "%s: %%D{} kaçışı için çok uzun biçem" #: src/util.c:1477 #, c-format msgid "%s: unknown `%%' escape `%c' (%d)" msgstr "%s: bilinmeyen `%%' kaçışı `%c' (%d)" #: src/util.c:1515 #, c-format msgid "%s: no closing ')' for $() escape" msgstr "%s: $() kaçışı için kapatan ')' yok" #: src/util.c:1518 #, c-format msgid "%s: too long variable name for $() escape" msgstr "%s: $() kaçışı için fazla uzun deÄŸiÅŸken adı" #: src/util.c:1545 #, c-format msgid "%s: too long format for $D{} escape" msgstr "%s: $D{} kaçışı için fazla uzun biçem" #: src/util.c:1633 #, c-format msgid "%s: unknown `$' escape `%c' (%d)" msgstr "%s: bilinmeyen `$' kaçışı `%c' (%d)" #: src/util.c:1824 #, c-format msgid "malformed float dimension: \"%s\"" msgstr "bozuk üst boyut: \"%s\"" #: src/util.c:1946 #, c-format msgid "couldn't open input filter \"%s\" for file \"%s\": %s" msgstr "\"%s\" dosyası için girdi filtresi \"%s\" açılamadı: %s" #: src/util.c:1963 #, c-format msgid "couldn't open input file \"%s\": %s" msgstr "\"%s\" girdi dosyası açılamadı: %s" #: src/mkafmmap.c:167 #, c-format msgid "file=%s\n" msgstr "dosya=%s\n" #: src/mkafmmap.c:167 msgid "stdout" msgstr "standart çıktı" #: src/mkafmmap.c:175 #, c-format msgid "%s: couldn't open output file \"%s\"" msgstr "%s: \"%s\" çıktı dosyası açılamadı" #: src/mkafmmap.c:189 msgid "couldn't create AFM library" msgstr "AFM kitaplığı oluÅŸturulamadı" #: src/mkafmmap.c:238 #, c-format msgid "" "Usage: %s [OPTION]... FILE...\n" "Mandatory arguments to long options are mandatory for short options too.\n" " -h, --help print this help and exit\n" " -p, --output-file=NAME print output to file NAME (default file is\n" " font.map). If FILE is `-', leavy output to\n" " stdout.\n" " -V, --version print version number\n" msgstr "" "Kullanım: %s [SEÇENEK]... DOSYA...\n" "Uzun seçenekler için zorunlu olan argümanlar kısa seçenekler için de " "zorunludur.\n" " -h, --help bu yardımı gösterir ve çıkar\n" " -p, --output-file=İSİM çıktıyı İSİM dosyasına yazdırır (öntanımlı dosya\n" " font.map). EÄŸer DOSYA `-' ise, çıktıyı standart\n" " çıktıya gönderir.\n" " -V, --version sürüm bilgisini gösterir\n" #: states/lex.l:167 states/lex.l:173 msgid "error: EOF in comment" msgstr "hata: açıklama içinde EOF" #: states/lex.l:204 msgid "error: EOF in string constant" msgstr "hata: dizge sabitinde EOF" #: states/lex.l:311 msgid "error: EOF in regular expression" msgstr "hata: düzenli ifade içinde EOF" #: states/main.c:197 #, fuzzy, c-format msgid "states for %s" msgstr "GNU %s %s için durumlar" #: states/main.c:252 #, c-format msgid "%s: malformed variable definition \"%s\"\n" msgstr "%s: bozuk deÄŸiÅŸken tanımı \"%s\"\n" #: states/main.c:280 #, c-format msgid "%s: couldn't create output file \"%s\": %s\n" msgstr "%s: çıktı dosyası \"%s\" oluÅŸturulamadı: %s\n" #: states/main.c:311 #, c-format msgid "%s: unknown warning level `%s'\n" msgstr "%s: bilinmeyen uyarı seviyesi `%s'\n" #: states/main.c:360 states/main.c:396 states/prims.c:1375 states/utils.c:227 #, c-format msgid "%s: out of memory\n" msgstr "%s: bellek tükendi\n" #: states/main.c:421 #, c-format msgid "%s: couldn't open input file `%s': %s\n" msgstr "%s: girdi dosyası `%s' açılamadı: %s\n" #: states/main.c:445 #, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Kullanım: %s [SEÇENEK]... [DOSYA]...\n" "Uzun seçenekler için zorunlu olan argümanlar kısa seçenekler için de " "zorunludur.\n" #: states/main.c:449 #, fuzzy, c-format msgid "" " -D, --define=VAR=VAL define variable VAR to have value VAL\n" " -f, --file=NAME read state definitions from file NAME\n" " -h, --help print this help and exit\n" " -o, --output=NAME save output to file NAME\n" " -p, --path=PATH set the load path to PATH\n" " -s, --state=NAME start from state NAME\n" " -v, --verbose increase the program verbosity\n" " -V, --version print version number\n" " -W, --warning=LEVEL set the warning level to LEVEL\n" msgstr "" " -D, --define=DEÄž=DEÄžER DEÄž deÄŸiÅŸkeninin deÄŸerini DEÄžER olarak " "belirler\n" " -f, --file=İSİM durum tanımlarını İSİM dosyasından okur\n" " -h, --help bu yardımı gösterir ve çıkar\n" " -o, --output=İSİM çıktıyı İSİM dosyasına yazdırır\n" " -p, --path=YOL yükleme yolunu YOL olarak belirler\n" " -s, --state=İSİM İSİM durumundan baÅŸlar\n" " -v, --verbose yazılımın bilgi verme seviyesini arttırır\n" " -V, --version sürüm numarasını yazdırır\n" " -W, --warning=SEVİYE uyarı seviyesini SEVİYE olarak belirler\n" #: states/prims.c:44 #, fuzzy, c-format msgid "%s:%d: %s: too few arguments\n" msgstr "%s:%d: %s: geçersiz argüman\n" #: states/prims.c:54 #, fuzzy, c-format msgid "%s:%d: %s: too many arguments\n" msgstr "%s:%d: %s: geçersiz argüman\n" #: states/prims.c:107 states/prims.c:127 states/prims.c:253 states/prims.c:426 #: states/prims.c:901 #, c-format msgid "%s:%d: %s: illegal argument type\n" msgstr "%s:%d: %s: geçersiz argüman türü\n" #: states/prims.c:468 #, c-format msgid "%s: panic: " msgstr "%s: panik: " #: states/prims.c:502 #, c-format msgid "%s:%d: %s: malformed version string `%s'\n" msgstr "%s:%d: %s: bozuk sürüm dizgesi `%s'\n" #: states/prims.c:517 #, c-format msgid "" "%s: FATAL ERROR: States version %s or higher is required for this script\n" msgstr "" "%s: ÖLÜMCÜL HATA: Bu betik için durumlar (states) sürüm %s veya daha yüksek " "gerekli\n" #: states/prims.c:608 states/prims.c:1274 #, c-format msgid "%s:%d: %s: start offset is bigger than end offset\n" msgstr "%s:%d: %s: baÅŸlangıç görecesi sonuç görecesinden daha büyük\n" #: states/prims.c:617 states/prims.c:633 states/prims.c:1280 #, c-format msgid "%s:%d: %s: offset out of range\n" msgstr "%s:%d: %s: görece aralık dışı\n" #: states/prims.c:651 #, c-format msgid "%s:%d: %s: illegal argument\n" msgstr "%s:%d: %s: geçersiz argüman\n" #: states/prims.c:698 #, c-format msgid "%s:%d: %s: illegal regexp character syntax: %c\n" msgstr "%s:%d: %s: geçersiz düzenli ifade karakter sözdizimi: %c\n" #: states/prims.c:913 #, c-format msgid "%s:%d: %s: couldn't define state `%s'\n" msgstr "%s:%d: %s: `%s' durumu tanımlanamadı\n" #: states/prims.c:1010 #, c-format msgid "%s: primitive `%s': too few arguments for format\n" msgstr "%s: ilkel `%s': biçem için çok az argüman\n" #: states/prims.c:1038 #, c-format msgid "%s:%d: %s: argument %d doesn't match format\n" msgstr "%s:%d: %s: %d argümanı biçemle uyumlu deÄŸil\n" #: states/prims.c:1078 #, c-format msgid "%s:%d: %s: no extra options can be specified for %%s\n" msgstr "%s:%d: %s: %%s için fazladan seçenek belirtilemez\n" #: states/prims.c:1087 #, c-format msgid "%s:%d: %s: illegal type specifier `%c'\n" msgstr "%s:%d: %s: geçersiz tür belirteci `%c'\n" #: states/process.c:115 #, c-format msgid "%s: undefined state `%s'\n" msgstr "%s: tanımlanmamış durum `%s'\n" #: states/process.c:196 #, c-format msgid "%s: error: undefined variable `%s'\n" msgstr "%s: hata: tanımlanmamış deÄŸiÅŸken `%s'\n" #: states/process.c:290 #, c-format msgid "%s: undefined super state `%s'\n" msgstr "%s: tanımlanmamış üst durum `%s'\n" #: states/utils.c:260 #, c-format msgid "%s:%d: couldn't compile regular expression \"%s\": %s\n" msgstr "%s:%d: \"%s\" düzenli ifadesi derlenemedi: %s\n" #: states/utils.c:449 states/utils.c:477 #, c-format msgid "%s: ouf of memory" msgstr "%s: bellek tükendi" #: states/utils.c:454 #, c-format msgid "warning: redefining state `%s'" msgstr "uyarı: `%s' durumu yeniden tanımlanıyor" #: states/utils.c:481 #, c-format msgid "%s:%d: warning: redefining subroutine `%s'\n" msgstr "%s:%d: uyarı: `%s' alt iÅŸlevi yeniden tanımlanıyor\n" #: states/utils.c:578 #, c-format msgid "%s:%d: error: undefined variable `%s'\n" msgstr "%s:%d: hata: tanımlanmamış deÄŸiÅŸken `%s'\n" #: states/utils.c:616 #, c-format msgid "%s:%d: error: couldn't set variable `%s'\n" msgstr "%s:%d: hata: `%s' deÄŸiÅŸkeni atanamadı\n" #: states/utils.c:767 #, c-format msgid "%s:%d: error: expression between illegal types\n" msgstr "%s:%d: hata: geçersiz türler arasında ifade\n" #: states/utils.c:865 #, c-format msgid "%s:%d: error: too few arguments for subroutine\n" msgstr "%s:%d: hata: alt iÅŸlev için çok az sayıda argüman\n" #: states/utils.c:872 #, c-format msgid "%s:%d: error: too many arguments for subroutine\n" msgstr "%s:%d: hata: alt iÅŸlev için çok fazla sayıda argüman\n" #: states/utils.c:926 #, c-format msgid "%s:%d: error: undefined procedure `%s'\n" msgstr "%s:%d: hata: tanımlanmamış iÅŸlev `%s'\n" #: states/utils.c:1018 #, c-format msgid "%s:%d: error: illegal lvalue for assignment\n" msgstr "%s:%d: hata: atama için geçersiz sol taraf\n" #: states/utils.c:1026 states/utils.c:1110 #, c-format msgid "%s:%d: error: array reference index is not integer\n" msgstr "%s:%d: hata: dizi referans indeksi tamsayı deÄŸil\n" #: states/utils.c:1032 #, c-format msgid "%s:%d: error: negative array reference index\n" msgstr "%s:%d: hata: dizi referans indeksi negatif\n" #: states/utils.c:1083 #, c-format msgid "%s:%d: error: illegal rvalue for string assignment\n" msgstr "%s:%d: hata: dizge ataması için geçersiz saÄŸ taraf\n" #: states/utils.c:1102 #, c-format msgid "%s:%d: error: illegal type for array reference\n" msgstr "%s:%d: hata: dizi referansı için geçersiz tür\n" #: states/utils.c:1119 #, fuzzy, c-format msgid "%s:%d: error: array reference index out of range\n" msgstr "%s:%d: hata: dizi referans indeksi aralık dışı\n" #: states/utils.c:1345 #, c-format msgid "%s: couldn't open definition file `%s': %s\n" msgstr "%s: `%s' tanım dosyası açılamadı: %s\n" #: states/utils.c:1401 #, c-format msgid "%s: autoloading `%s' from `%s'\n" msgstr "%1$s: `%3$s'den `%2$s'yi otomatik yükleme\n" #~ msgid "library directory." #~ msgstr "kitaplık dizininiz olarak tanımlayın." #~ msgid "[ %d pages * %d copy ]" #~ msgstr "[ %d sayfa * %d kopya ]" #~ msgid "epsf: couldn't open pipe to command \"%s\": %s\n" #~ msgstr "epsf: \"%s\" komutuna veriyolu açılamadı: %s\n" #~ msgid "couldn't create toc file name: %s" #~ msgstr "içindekiler dosya adı oluÅŸturulamadı: %s" #~ msgid "couldn't create divert file \"%s\": %s" #~ msgstr "ara dosya \"%s\" oluÅŸturulamadı: %s" enscript-1.6.5.90/po/da.gmo0000644000175000017500000006340011606344232012234 00000000000000Þ•È\ œ ÐÑ Õàè  '5LM›j;B V c$p5•!Ë8íI&p)+º&æ" #0CT˜²'Ì!ô,C%a,‡-´ â&*< O1[#$±)Ö  : ![ }  ½ %Ý #!$'!"L!-o!!)¶!"à!,"&0"W"!t"/–"'Æ")î"5#N#2n#¡#¿#4Þ#3$)G$/q$,¡$3Î$/%-2%/`%0%'Á%&é%+&=<&.z&&©&$Ð&Iõ&)?'i'€''¹'$Ñ'ö'(H#(l*$}*¢*«*#Ê*î* ++@#+d+&w+ž+°+Â+ Ô+vá+iX-#Â-æ-$.)'.&Q.)x.-¢.2Ð./("/4K//€/°/ Î/-ï/!01?0q0%0¶0Ö0!ó0%1;1R1 h1‰1'§1Ï1=Ø12!02#R2v2‰2+¨2Ô2 ï2 3%13$W3x|3!õ3-4%E4?k4(«4Ô4)ô4565V5#k5.5¾5)Ó5*ý5(6;6N69l6¦6®6Ç6Iç617 Q7_7Cf7%ª7*Ð7 û7+818F8;a8H8æ89& 9&49)[9˜…9; ";-;5;S; Y;e; u;Wƒ; Û;Rå=±8@@êB+F?FNF%]F#ƒF$§F/ÌFJüF&GG,nG.›G*ÊG$õG#H>>H}HšH)³H0ÝH/I>I#]I/I0±I!âI$J)JAJ ZJ2fJ,™J-ÆJ1ôJ&K"DK'gK(K ¸KÙKñK* L.4L+cL%L2µLèL-M%2M-XM/†M!¶M%ØM6þM*5N,`N1N(¿N2èNO 9O8ZO5“O/ÉO/ùO0)P6ZP3‘P,ÅP.òP1!Q'SQ&{Q-¢QEÐQ,R)CR%mRA“R'ÕRýRS,SIS#aS…S›SX´S V*!VLV [V#|V VºVÃV>ËV W'*WRWiW€W—W€¦Wh'Y%Y ¶Y'×Y3ÿY.3Z,bZ-Z4½Z#òZ+[JB[3[!Á[#ã[;\%C\6i\" \/Ã\.ó\)"]/L]&|]£]À]$ß]#^((^Q^7Y^‘^'°^0Ø^ _#_/C_s_%’_ ¸_/Ù_. `y8`0²`;ã`4aGTa=œa(ÚaDb(Hb"qb”b«b*Ëböb%c'4c\cqc†c6¢cÙcác+úcL&dsd’d £d@¯d0ðd3!e Ue9_e™e!¬eCÎe?f%Rf xf'…f'­f*Õf®/%d“(_§:¢n„BF‹‚Èpzt-fVv°ŽHÆi X8¼Š¬žEk\ªO† U©A•¥@Å oŸ·~‡ÀLˆ’»61™|?²W]le›–šM9^*GC—r¡Tbu2yj;'RQKÂ#¦+ý«ƒº‘aJ!´&qx”Ä…±gZ ,¨0¾œ€}ŒcI7˜)³‰35N{¿SÇD¹.` ¯<P=m ­$w¸[¤h4"ÁsY£µ ¶> %s ../../lib ../lib ./configure --prefix=PREFIX make make check make distclean make install Report bugs to <%s>. --help-highlight describe all supported --highlight languages and file formats --highlight-bar-gray=NUM print highlight bars with gray NUM (0 - 1) --list-media list names of all known media --margins=LEFT:RIGHT:TOP:BOTTOM adjust page marginals --mark-wrapped-lines[STYLE] mark wrapped lines in the output with STYLE --non-printable-format=FMT specify how non-printable chars are printed --nup-columnwise layout pages in the N-up printing columnwise --nup-xpad=NUM set the page x-padding of N-up printing to NUM --nup-ypad=NUM set the page y-padding of N-up printing to NUM --page-label-format=FMT set page label format to FMT --ps-level=LEVEL set the PostScript language level that enscript should use --printer-options=OPTIONS pass extra options to the printer command --rotate-even-pages rotate even-numbered pages 180 degrees --slice=NUM print vertical slice NUM --style=STYLE use highlight style STYLE --swap-even-page-margins swap left and right side margins for each even numbered page --toc print table of contents --ul-angle=ANGLE set underlay text's angle to ANGLE --ul-font=NAME print underlays with font NAME --ul-gray=NUM print underlays with gray value NUM --ul-position=POS set underlay's starting position to POS --ul-style=STYLE print underlays with style STYLE --word-wrap wrap long lines from word boundaries -L, --lines-per-page=NUM specify how many lines are printed on each page -m, --mail send mail upon completion -M, --media=NAME use output media NAME -n, --copies=NUM print NUM copies of each page -N, --newline=NL select the newline character. Possible values for NL are: n (`\n') and r (`\r'). -o an alias for option --output -O, --missing-characters list missing characters -p, --output=FILE leave output to file FILE. If FILE is `-', leave output to stdout. -P, --printer=NAME print output to printer NAME -q, --quiet, --silent be really quiet -r, --landscape print in landscape mode -R, --portrait print in portrait mode option %d = "%s" left in %s sent to %s $3v $-40N $3% pages $4L lines $E $C%d character was missing %d characters were missing %d line was %s %d lines were %s %d non-printable character %d non-printable characters %s: FATAL ERROR: States version %s or higher is required for this script %s: autoloading `%s' from `%s' %s: couldn't create output file "%s": %s %s: couldn't open definition file `%s': %s %s: couldn't open input file `%s': %s %s: couldn't open output file "%s"%s: error: undefined variable `%s' %s: illegal newline character specifier: '%s': expected 'n' or 'r' %s: illegal option -- %c %s: invalid option -- %c %s: malformed variable definition "%s" %s: no closing ')' for $() 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: ouf of memory%s: out of memory %s: panic: %s: primitive `%s': too few arguments for format %s: too long format for $D{} escape%s: too long format for %%D{} escape%s: too long variable name for $() escape%s: undefined state `%s' %s: undefined super state `%s' %s: unknown `$' escape `%c' (%d)%s: unknown `%%' escape `%c' (%d)%s: unknown warning level `%s' %s: unrecognized option `%c%s' %s: unrecognized option `--%s' %s: warning: font height is negative %s: warning: font size is negative %s: warning: font width is negative %s:%d: %%FooterHeight: no argument%s:%d: %%Format: name "%s" is already defined%s:%d: %%Format: no name%s:%d: %%Format: too long name, maxlen=%d%s:%d: %%HeaderHeight: no argument%s:%d: %s: argument %d doesn't match format %s:%d: %s: couldn't define state `%s' %s:%d: %s: illegal argument %s:%d: %s: illegal argument type %s:%d: %s: illegal regexp character syntax: %c %s:%d: %s: illegal type specifier `%c' %s:%d: %s: malformed version string `%s' %s:%d: %s: no extra options can be specified for %%s %s:%d: %s: offset out of range %s:%d: %s: start offset is bigger than end offset %s:%d: %s: too few arguments %s:%d: %s: too many arguments %s:%d: couldn't compile regular expression "%s": %s %s:%d: error: array reference index is not integer %s:%d: error: couldn't set variable `%s' %s:%d: error: expression between illegal types %s:%d: error: illegal lvalue for assignment %s:%d: error: illegal rvalue for string assignment %s:%d: error: illegal type for array reference %s:%d: error: negative array reference index %s:%d: error: too few arguments for subroutine %s:%d: error: too many arguments for subroutine %s:%d: error: undefined procedure `%s' %s:%d: error: undefined variable `%s' %s:%d: warning: redefining subroutine `%s' EPS file "%s" contains malformed %%%%BoundingBox row: "%.*s" EPS file "%s" does not start with "%%!" magic EPS file "%s" is not a valid EPS file EPS file "%s" is too large for page Highlighting is supported for the following languages and file formats: I did also try the following directories:Invalid back referenceInvalid character class nameInvalid collation characterInvalid content of \{\}Invalid preceding regular expressionInvalid range endInvalid regular expressionLong-only options: --color[=bool] create color outputs with states --continuous-page-numbers count page numbers across input files. Don't restart numbering at beginning of each file. --download-font=NAME download font NAME --extended-return-values enable extended return values --filter-stdin=NAME specify how stdin is shown to the input filter --footer=FOOTER set page footer --h-column-height=HEIGHT set the horizontal column height to HEIGHT --help print this help and exit Memory exhaustedN-up argument must be power of 2: %dNo matchNo previous regular expressionPremature end of regular expressionRegular expression too bigSuccessTable of ContentsThis is probably an installation error. Please, try to rebuild:Trailing backslashTry `%s --help' for more information. Unmatched ( or \(Unmatched ) or \)Unmatched [ or [^Unmatched \{Usage: %s [OPTION]... FILE... Mandatory arguments to long options are mandatory for short options too. -h, --help print this help and exit -p, --output-file=NAME print output to file NAME (default file is font.map). If FILE is `-', leavy output to stdout. -V, --version print version number Usage: %s [OPTION]... [FILE]... Mandatory arguments to long options are mandatory for short options too. couldn't close output file "%s": %scouldn't create AFM librarycouldn't create output file "%s": %scouldn't create temporary divert file: %scouldn't create temporary toc file: %scouldn't find encoding file "%s.enc": %s couldn't find header definition file "%s.hdr"couldn't find header definition file "%s.hdr": %s couldn't find prolog "%s": %s couldn't get passwd entry for uid=%d: %scouldn't open AFM file for font "%s", using default couldn't open AFM file for the default font: %scouldn't open AFM library: %scouldn't open EPS file "%s": %s couldn't open font description file "%s": %s couldn't open input file "%s": %scouldn't open input filter "%s" for file "%s": %scouldn't open printer `%s': %scouldn't read config file "%s/%s": %scouldn't rewind divert file: %scouldn't rewind toc file: %scouldn't stat input file "%s": %sdo not know anything about media "%s"downloading font "%s" error: EOF in commenterror: EOF in regular expressionerror: EOF in string constantfile alignment must be larger than zerofile=%s helper application specification must be single character: %sillegal N-up argument: %dillegal non-printable format "%s"illegal option %c for ^@epsf escapeillegal option: %sillegal page label format "%s"illegal style for wrapped line marker: "%s"illegal underlay style: %sillegal value "%s" for option %sinvalid value "%s" for option %sinvalid value for ^@bggray escape: %sinvalid value for ^@shade escape: %sknown media: name width height llx lly urx ury ------------------------------------------------------------ malformed %s escape: no '{' foundmalformed ^@epsf escape: no ']' after optionsmalformed ^@epsf escape: no '{' foundmalformed argument `%s' for option -W, --option: no comma foundmalformed color spec for ^@%s escape: %smalformed float dimension: "%s"malformed font spec for ^@font escape: %smalformed font spec: %smalformed underlay position: %smissing argument: %smissing character codes (decimal): must print at least one line per each page: %sno output generated non-printable character codes (decimal): number of columns must be larger than zerooutput left in %s output sent to %s passing through %s file "%s" passing through all input files for output language `%s' printerprocessing file "%s"... reading AFM info for font "%s" set new marginals for media `%s' (%dx%d): llx=%d, lly=%d, urx=%d, ury=%d slice must be greater than zerostates for %sstdoutsyntax error in option string %s="%s": missing end of quotation: %ctoo long argument for %s escape: %.*stoo long file name for ^@epsf escape: %.*struncatedunexpected EOF while scanning ^@epsf escapeunknown encoding: %sunknown special escape: %suser font encoding can be only the system's default or `ps'warning: didn't process following options from environment variable %s: warning: redefining state `%s'wrappedxcalloc(): couldn't allocate %d bytes xmalloc(): couldn't allocate %d bytes xrealloc(): couldn't reallocate %d bytes Project-Id-Version: enscript 1.6.5.2 Report-Msgid-Bugs-To: bug-enscript@gnu.org POT-Creation-Date: 2011-07-10 16:43+0100 PO-Revision-Date: 2011-01-09 01:36+0100 Last-Translator: Keld Simonsen Language-Team: Danish Language: da MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); %s ../../lib ../lib ./configure --prefix=PRÆFIKS make make check make distclean make install Rapportér fejl til <%s>. Send synpunkter på oversættelsen til dansk@dansk-gruppen.dk. --help-highlight beskriv alle understøttede --highlight sprog og filformater --highlight-bar-gray=NUM udskriv markeringslinjer med gråværdi NUM (0 - 1) --list-media list navnene på alle kendte media --margins=VENSTRE:HØJRE:TOP:BUND justér sidemargener --mark-wrapped-lines[STIL] markér ombrudte linjer i uddata med STIL --non-printable-format=FMT angiv hvordan ej udskrivbare tegn skal udskrives --nup-columnwise formtér sider for N-opudskrift i kolonner --nup-xpad=NUM sæt sidens x-udfyldning for N-op-udskrift til NUM --nup-ypad=NUM sæt sidens y-udfyldning for N-op-udskrift til NUM --page-label-format=FMT sæt sideetiketsformatet til FMT --ps-level=NIVEAU sæt PostScript-sprogniveauet som enscript skal bruge --printer-options=FLAG send med ekstra flag til udskriftskommandoen --rotate-even-pages rotér sider med lige numre 180° --slice=NUM udskriv lodret skive NUM --style=STIL brug markeringsstilen STIL --swap-even-page-margins ombyt venstre og højre sides margener for hver lige nummereret side --toc udskriv indholdsfortegnelse --ul-angle=VINKEL sæt underlagets tekstvinkel til VINKEL --ul-font=NAVN udskriv underlag med skrifttypen NAVN --ul-gray=NUM udskriv underlag med gråværdi NUM --ul-position=POS sæt underlagets startposition til POS --ul-style=STIL udskriv underlag med stilen STIL --word-wrap linjeombryd lange linjer ved ordgrænser -L, --lines-per-page=NUM angiv antal linjer som skal skrives på hver side -m, --mail sende en e-post når det er færdigt -M, --media=NAVN brug uddataformatet NAVN -n, --copies=NUM udskriv NUM kopier af hver side -N, --newline=NR vælg nylinjetegn. Mulige værdier for NR er: n ('\n') og r ('\r'). -o et alias for flaget --output -O, --missing-characters list manglede tegn -p, --output=FIL behold uddata i filen FIL. Hvis FIL er '-', behold uddata i standard ud. -P, --printer=NAVN udskriv på printeren NAVN -q, --quiet, --silent vær ganske stille -r, --landscape udskriv i landskabstilstand -R, --portrait udskriv i portrættilstand flaget %d = '%s' beholdt i %s sendt til %s $3v $-40N $3% sider $4L linjer $E $C%d tegn manglede %d tegn manglede %d linje blev %s %d linjer blev %s %d ej udskrivbare tegn %d ej udskrivbare tegn %s: FATAL FEJL: Tilstand af version %s eller over kræves for dette skript %s: indlæser '%s' automatisk fra '%s' %s: kunne ikke oprette uddatafilen '%s': %s %s: kunne ikke åbne definitionsfilen '%s': %s %s: kunne ikke åbne inddatafilen '%s': %s %s: kunne ikke åbne uddatafilen '%s'%s: fejl: udefineret variabel '%s' %s: ikke tilladt nylinjetegn: '%s'': forventede 'n' eller 'r' %s: ikke tilladt flag -- %c %s: ugyldigt flag -- %c %s: fejludformet variabeldefinition '%s' %s: ingen afsluttende ")' for $()-kontrolsekvens%s: flaget '%c%s' tillader ikke noget argument %s: flaget '%s' er flertydigt %s: flaget '%s' kræver et argument %s: flaget '--%s' tillader ikke noget argument %s: flaget '-W %s' tillader ikke noget argument %s: flaget '-W %s' er flertydigt %s: flaget kræver et argument -- %c %s: hukommelsen opbrugt%s: hukommelsen opbrugt %s: panik: %s: primitiv '%s': for få argumenter for formatet %s: for langt format for $D{}-kontrolsekvens%s: for langt format for %%D{}-kontrolsekvens%s: for langt variabelnavn for $()-kontrolsekvens%s: udefineret tilstand '%s' %s: udefineret supertilstand '%s' %s: ukendt '$'-kontrolsekvens '%c' (%d)%s: ukendt '%%'-kontrolsekvens '%c' (%d)%s: ukendt advarselsniveau '%s' %s: ukendt flag '%c%s' %s: ukendt flag '--%s' %s: advarsel: skrifttypehøjden er negativ %s: advarsel: skrifttypestørrelsen er negativ %s: advarsel: skrifttypebredden er negativ %s:%d: %%FooterHeight: intet argument%s:%d: %%Format: navnet '%s' er allerede defineret%s:%d: %%Format: intet navn%s:%d: %%Format: for langt navn, maxlængde=%d%s:%d: %%HeaderHeight: intet argument%s:%d: %s: argument %d matcher ikke formatet %s:%d: %s: kunne ikke definere tilstanden '%s' %s:%d: %s: ikke tilladt argument %s:%d: %s: ikke tilladt argumenttype %s:%d: %s: ikke tilladt regulærudtrykstegnsyntaks: %c %s:%d: %s: ugyldig typespecificering '%c' %s:%d: %s: fejludformet versionsstreng '%s' %s:%d: %s: ingen ekstra flag kan angives for %%s %s:%d: %s: afstand uden for intervallet %s:%d: %s: startafstand er større end slutafstand %s:%d: %s: for få argumenter %s:%d: %s: for mange argumenter %s:%d kunne ikke oversætte det regulære udtryk '%s': %s %s:%d: fejl: vektorreferenceindeks er ikke et heltal %s:%d: fejl: kunne ikke tildele variablen '%s' %s:%d: fejl: udtryk mellem ikke tilladte typer %s:%d: fejl: ikke tilladt v-værdi for tildeling %s:%d: fejl: ikke tilladt h-værdi for strengtildeling %s:%d: fejl: ikke tilladt type for vektorreference %s:%d: fejl: negativt vektorreferenceindeks %s:%d: fejl: for få argumenter til subrutinen %s%d: fejl:: for mange argumenter til subrutinen %s:%d: fejl: udefineret procedure '%s' %s:%d: fejl: udefineret variabel '%s' %s:%d: advarsel: omdefinerer subrutinen '%s' EPS-filen '%s' indeholder fejludformet %%%%BoundingBox-linje: '%.*s' EPS-filen '%s' begynder ikke med '%%!'-magi EPS-filen "%s" er ikke en gyldig EPS-fil EPS-filen '%s' er for stor for siden Syntaksfarvning understøttes for følgende sprog og filformater: Jeg prøvede også de følgende kataloger:Ugyldig bagudreferenceUgyldigt tegnklassenavnUgyldigt kollationeringstegnUgyldigt indhold i \{\}Ugyldigt foregående regulært udtrykUgyldigt intervalslutUgyldigt regulært udtrykKun lange flag: --color[=boolesk] opret farveuddata med tilstande --continuous-page-numbers optæl sidenumre henover inddatafiler. Nulstil ikke nullerering ved begyndelsen for hver fil. --download-font=NAVN hjemhent skrifttypen NAVN --extended-return-values aktivér udvidede returværdier --filter-stdin=NAVN angiv hvordan standard ind vises til inddatafiltret --footer=FOOTER sæt sidefod --h-column-height=HØJDE sæt den vandrette kolonnehøjde til HØJDE --help udskriv denne hjælpetekst og afslut Hukommelsen opbrugtN-op-argument skal være en potens af 2: %dIngen træffereIntet foregående regulært udtrykFor tidligt slut på regulært udtrykRegulært udtryk for stortLykkedesIndholdDette er nok en installationsfejl. Prøv gerne at genoversætte.Efterfølgende omvendt skråstregPrøv '%s --help' for mere information. Ubalanceret ( eller \(Ubalanceret ) eller \)Ubalanceret [ eller [^Ubalanceret \{Brug: %s [FLAGGA]... FIL... Obligatoriske argumenter til lange flag er obligatoriske også for de korte. -h, --help vis denne hjælpetekst og afslut -p, --output-file=NAVN udskriv data til filen NAVN (standard er font.map). Hvis FIL er '-' sendes uddata til standard ud. -V, --version vis versionsnummer Brug: %s [FLAG]... [FIL]... Obligatoriske argumenter til lange flag er obligatoriske også for de korte. kunne ikke lukke uddatafilen '%s': %skunne ikke oprette AFM-bibliotekkunne ikke oprette uddatafilen '%s': %skunne ikke oprette midlertidig omdirigeringsfil: %skunne ikke oprette midlertidig indholdsfil: %skunne ikke finde kodningsfilen '%s.enc': %s kunne ikke finde hoveddefinitionsfil '%s.hdr'kunne ikke finde hoveddefinitionsfilen '%s.hdr': %s kunne ikke finde prologen '%s': %s kunne ikke hente passwd-post for uid=%d: %skunne ikke åbne AFM-fil for skrifttypen '%s', bruger standardalternativet kunne ikke åbne AFM-fil for standardskrifttypen: %skunne ikke åbne AFM-bibliotek: %skunne ikke åbne EPS-filen '%s': %s kunne ikke åbne beskrivelsesfilen '%s' for skrifttypen: %s kunne ikke åbne inddatafilen '%s': %skunne ikke åbne inddatafiltret '%s' for filen '%s': %skunne ikke åbne printeren '%s': %skunne ikke åbne konfigurationsfilen '%s/%s': %skunne ikke tilbagespole omdirigeringsfilen: %skunne ikke tilbagespole indholdsfilen: %skunne ikke tage status på inddatafilen '%s': %skender ikke til noget om formatet '%s'hjemhenter skrifttypen '%s' fejl: filslut inde i kommentarfejl: filslut inde i regulært udtrykfejl: filslut inde i strengkonstantfilgrupperingen skal være større end nulfil=%s angivelse af hjælpeprogram skal være et enkelt tegn: %sikke tilladt N-op-argument: %dikke tilladt ej-udskrivbart format '%s'ikke tilladt flag %c for kontrolsekvensen ^@epsfikke tilladt flag: %sikke tilladt sideetiketsformat '%s'ikke tilladt stíl på linjeombrydningstegn: '%s'ikke tilladt underlagsstíl: %sikke tilladt værdi '%s' for flaget %sugyldig værdi '%s' for flaget %sugyldig værdi for kontrolsekvensen ^@bggray: %sugyldig værdi for kontrolsekvensen ^@shade: %skendte media: navn bredde højde nvx nvy øhx øhy ------------------------------------------------------------ fejludformet kontrolsekvens %s: ingen '{' fundetfejludformet kontrolsekvens ^@epsf: ingen ']' efter flagenefejludformet kontrolsekvens ^@epsf: ingen '{' fundetfejlkonstrueret argument '%s' for flag -W, --option: intet komma fundetfejludformet farvespecifikation for kontrolsekvensen ^@%s: %sfejludformet flydendetalsdimension: '%s'fejludformet skrifttypespecifikation for kontrolsekvensen ^@font: %sfejludformet skrifttypespecifikation: %sfejludformet underlagsposition: %smanglende argument: %smanglede tegnkoder (decimalt): skal udskrive mindst en linje per side: %singen uddata genereret ej udskrivbare tegnkoder (decimalt): antal kolonner skal være større end nuluddata beholdt i %s uddata sendt til %s videresender %s-filen '%s' videresender alle inddatafiler for uddatasproget '%s' printerbehandler filen '%s'... læser AFM-information for skrifttypen '%s' sæt nye marginaler for formatet '%s' (%d×%d): nvx=%d, nvy=%d, øhx=%d, øhy%d skive skal være større end nultilstande for %sstandard udsyntaksfejl i flagstrengen %s='%s': mangler slut på citering: %cfor langt argument til kontrolsekvensen %s: %.*sfor langt filnavn for kontrolsekvensen ^@epsf: %.*safkortedeuventet filslut ved behandling af kontrolsekvensen ^@epsfukendt kodning: %sukendt speciel kontrolsekvens: %sbrugerskrifttypeskodning kan kun være systemets standard eller 'ps'advarsel: behandlede ikke følgende flag fra miljøvariablen %s: advarsel: omdefinerer tilstanden '%s'linjeombrudtxcalloc(): kunne ikke allokere %d byte xmalloc(): kunne ikke allokere %d byte xrealloc(): kunne ikke omallokere %d byte enscript-1.6.5.90/po/LINGUAS0000644000175000017500000000011311132443251012154 00000000000000# Set of available languages. ca da de en_GB es fr hr nl pt_BR ru sl sv tr enscript-1.6.5.90/po/es.po0000644000175000017500000014217511606344231012121 00000000000000# Mensajes en español para GNU enscript. # Copyright (C) 1996 Free Software Foundation, Inc. # L. Marcél Barrero M. , 1996. # Revisado y enviado por Enrique Melero # msgid "" msgstr "" "Project-Id-Version: GNU enscript 1.4.2\n" "Report-Msgid-Bugs-To: bug-enscript@gnu.org\n" "POT-Creation-Date: 2011-07-10 16:43+0100\n" "PO-Revision-Date: 1997-03-19 23:01+0100\n" "Last-Translator: L. Marcél Barrero M. \n" "Language-Team: Spanish \n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8-bit\n" #: compat/getopt.c:628 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "%s: la opción `%s' es ambigua\n" #: compat/getopt.c:652 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "%s: la opción `--%s' no admite ningún argumento\n" #: compat/getopt.c:657 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "%s: la opción `%c%s' no admite ningún argumento\n" #: compat/getopt.c:674 compat/getopt.c:847 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "%s: la opción `%s' requiere un argumento\n" #: compat/getopt.c:703 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "%s: opción desconocida `--%s'\n" #: compat/getopt.c:707 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "%s: opción desconocida `%c%s'\n" #: compat/getopt.c:733 #, c-format msgid "%s: illegal option -- %c\n" msgstr "%s: opción no permitida -- %c\n" #: compat/getopt.c:736 #, c-format msgid "%s: invalid option -- %c\n" msgstr "%s: opción no válida -- %c\n" #: compat/getopt.c:766 compat/getopt.c:896 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: la opción requiere un argumento -- %c\n" #: compat/getopt.c:813 #, fuzzy, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "%s: la opción `%s' es ambigua\n" #: compat/getopt.c:831 #, fuzzy, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s: la opción `--%s' no admite ningún argumento\n" #: compat/xalloc.c:70 #, c-format msgid "xmalloc(): couldn't allocate %d bytes\n" msgstr "xmalloc(): no se pueden asignar %d bytes\n" #: compat/xalloc.c:88 #, c-format msgid "xcalloc(): couldn't allocate %d bytes\n" msgstr "xcalloc(): no se pudieron asignar %d bytes\n" #: compat/xalloc.c:109 #, c-format msgid "xrealloc(): couldn't reallocate %d bytes\n" msgstr "xrealloc(): no se pudieron reasignar %d bytes\n" #: compat/regex.c:996 msgid "Success" msgstr "" #: compat/regex.c:997 msgid "No match" msgstr "" #: compat/regex.c:998 msgid "Invalid regular expression" msgstr "" #: compat/regex.c:999 msgid "Invalid collation character" msgstr "" #: compat/regex.c:1000 msgid "Invalid character class name" msgstr "" #: compat/regex.c:1001 msgid "Trailing backslash" msgstr "" #: compat/regex.c:1002 msgid "Invalid back reference" msgstr "" #: compat/regex.c:1003 msgid "Unmatched [ or [^" msgstr "" #: compat/regex.c:1004 msgid "Unmatched ( or \\(" msgstr "" #: compat/regex.c:1005 msgid "Unmatched \\{" msgstr "" #: compat/regex.c:1006 msgid "Invalid content of \\{\\}" msgstr "" #: compat/regex.c:1007 msgid "Invalid range end" msgstr "" #: compat/regex.c:1008 msgid "Memory exhausted" msgstr "" #: compat/regex.c:1009 msgid "Invalid preceding regular expression" msgstr "" #: compat/regex.c:1010 msgid "Premature end of regular expression" msgstr "" #: compat/regex.c:1011 msgid "Regular expression too big" msgstr "" #: compat/regex.c:1012 msgid "Unmatched ) or \\)" msgstr "" #: compat/regex.c:5458 msgid "No previous regular expression" msgstr "" #: src/main.c:949 #, no-c-format msgid "$3v $-40N $3% pages $4L lines $E $C" msgstr "$3v $-40N $3% páginas $4L líneas $E $C" # "passwd entry" es la entrada (o el campo) de la contraseña. sv # Sugiero cambiarlo a "no se pudo obtener la contraseña para el uid=etc.etc" sv # > No es la contraseña la que no se pudo encontrar (password), sino la línea entera, # > Un " passwd entry" sería: # > guest:*:405:100:guest:/dev/null:/dev/null # > Donde el uid es 405 y el gid 100. Su contraseña (password) es *, que significa que la cuenta # > está bloqueada. Por eso que lo había traducido como declaración del utilizador en el archivo # > passwd. (/etc/passwd). # Bueno, bien. Admitiendo que lo que no se encontró fue la línea entera, # propongo usar "entrada" y no "declaración" sv # #: src/main.c:979 #, c-format msgid "couldn't get passwd entry for uid=%d: %s" msgstr "" "no se pudo obtener la entrada del usuario uid=%d en el archivo passwd: %s" #: src/main.c:1071 #, fuzzy, c-format msgid "couldn't read config file \"%s/%s\": %s" msgstr "no se pudo abrir el archivo de configuración \"%s/%s\": %s" #: src/main.c:1075 msgid "I did also try the following directories:" msgstr "" #: src/main.c:1076 src/main.c:1077 src/main.c:1078 #, c-format msgid "\t%s" msgstr "" #: src/main.c:1079 msgid "\t../lib" msgstr "" #: src/main.c:1080 msgid "\t../../lib" msgstr "" #: src/main.c:1082 msgid "This is probably an installation error. Please, try to rebuild:" msgstr "" #: src/main.c:1083 msgid "\tmake distclean" msgstr "" #: src/main.c:1084 msgid "\t./configure --prefix=PREFIX" msgstr "" #: src/main.c:1085 msgid "\tmake" msgstr "" #: src/main.c:1086 msgid "\tmake check" msgstr "" #: src/main.c:1087 msgid "\tmake install" msgstr "" #: src/main.c:1088 msgid "" "or set the environment variable `ENSCRIPT_LIBRARY' to point to your library " "directory." msgstr "" # Para comprender mejor el sentido, habría que chequear el código fuente. #: src/main.c:1161 #, c-format msgid "unknown encoding: %s" msgstr "codificación desconocida: %s" # library=biblioteca, pero me parece que es más corriente (y hasta se entiende mejor), # cuando se habla de librerías. En spanglish la semana pasada uno de los mails decía # también que ambas traducciones pueden ser válidas. # Sí, era Enrique quien lo decía... # Pero biblioteca es más correcto: Tú vas a una biblioteca a consultar algo, # pero no a llevártelo a casa. sv # ¿Consenso? :-) # En Spanish-GNU nos hemos decidido por biblioteca. sv # Lo cambio directamente. sv #: src/main.c:1180 #, c-format msgid "couldn't open AFM library: %s" msgstr "no se pudo abrir la biblioteca AFM: %s" # "media" es medio de comunicación o "soporte" para comunicar. Si tienen alguna idea # mejor... otra cosa, en este contexto creo que se refiere sobre todo al papel # (tipos, tamaños, formatos) # Para tratar de adaptar los ll y ur habrá que comprender mejor el # contexto (cf. código fuente). # # Sugiero comerse el "Lista de" y dejarlo simplemente # en "soportes conocidos". sv #: src/main.c:1209 #, c-format msgid "" "known media:\n" "name width\theight\tllx\tlly\turx\tury\n" "------------------------------------------------------------\n" msgstr "" "Soportes conocidos:\n" "nombre ancho\tlargo\tllx\tlly\turx\tury\n" "------------------------------------------------------------\n" #: src/main.c:1228 #, c-format msgid "do not know anything about media \"%s\"" msgstr "no se pudo reconocer el soporte \"%s\"" #: src/main.c:1272 #, c-format msgid "" "set new marginals for media `%s' (%dx%d): llx=%d, lly=%d, urx=%d, ury=%d\n" msgstr "" # Yo tengo por norma comenzar por mayúscula cuando el original lo hace. # Este es el único mensaje (y los que siguen) que no son así. # De todas formas es lo que yo hago, no tienes por qué estar de acuerdo. sv #: src/main.c:1283 #, c-format msgid "illegal page label format \"%s\"" msgstr "El formato del nombre de página \"%s\" es incorrecto." # *********************************************** #: src/main.c:1295 #, c-format msgid "illegal non-printable format \"%s\"" msgstr "El formato no imprimible \"%s\" es incorrecto." #: src/main.c:1309 #, c-format msgid "illegal style for wrapped line marker: \"%s\"" msgstr "" #: src/main.c:1319 #, fuzzy, c-format msgid "illegal N-up argument: %d" msgstr "opción incorrecta: %s" #: src/main.c:1324 #, c-format msgid "N-up argument must be power of 2: %d" msgstr "" # **************************************************************** #: src/main.c:1401 #, c-format msgid "malformed underlay position: %s" msgstr "La posición de pie de página es incorrecta: %s" # **************************************************************** #: src/main.c:1424 #, c-format msgid "illegal underlay style: %s" msgstr "El estilo del pie de página es incorrecto: %s" #: src/main.c:1451 #, c-format msgid "" "Highlighting is supported for the following languages and file formats:\n" "\n" msgstr "" # ¿Crees que toc es por Table Of Contents? # Sí, casi seguro. sv # Si es así podríamos poner: el archivo índice o el archivo del índice # Esta línea no existe en la fuente que dispongo para ver qué es el TOC. # Otra cosa que se puede hacer es poner "el archivo `toc'". sv # Creo que mejor sería poner índice. Sabemos que toc es lo mismo, pero # sería mantener una especie de anglicismo fácilmente evitable. # Bueno, en este caso no sería tan grave: Piensa que hablando de TeX, # uno puede decir "El archivo .tex, el archivo .dvi y el archivo .log" # y no pasa nada. sv #: src/main.c:1632 #, fuzzy, c-format msgid "couldn't create temporary toc file: %s" msgstr "no se pudo crear el archivo para el índice: %s" #: src/main.c:1679 #, c-format msgid "couldn't stat input file \"%s\": %s" msgstr "stat() no pudo evaluar archivo de entrada \"%s\": %s" # Ojo: rewind no es abrir. sv # Si, pero ¿vamos a decir rebobinar? # Uf, la verdad es que es delicado. # Rebobinar queda bien para cintas magnéticas # pero para la operación del mismo nombre que puede # efectuarse con un archivo abierto, no sé. sv # Si quieres déjalo así, a ver si a algún otro revisor se le ocurre algo. sv # Y si decimos: # msgstr "no se pudo localizar el inicio del archivo para el índice: %s" # Algo mejor. sv #: src/main.c:1699 #, c-format msgid "couldn't rewind toc file: %s" msgstr "no se pudo rebobinar el archivo para el índice: %s" #: src/main.c:1705 msgid "Table of Contents" msgstr "Índice" #: src/main.c:1731 msgid "no output generated\n" msgstr "" # como supongo que se trata de las páginas, lo pongo en género femenino. #: src/main.c:1736 #, fuzzy, c-format msgid "output sent to %s\n" msgstr " enviadas a %s\n" # Si supiéramos el contexto sabríamos si el "la" procede o no. sv # Si si, según el código fuente, son las páginas enviadas a la impresora. # Ver siguiente comentario. #: src/main.c:1737 src/main.c:1768 msgid "printer" msgstr "la impresora" # ¿o sería mejor "faltan"? # por mí está bien así, pero ¿y el "in"? sv # > Como se trata de un programa de impresión, pienso que se trata de un trabajo incompleto, por # > ejemplo, si le indicamos que imprima 3 archivos, y sólo pudo imprimr 2, entonces nos dirá: # > quedan: 1. [Queda 1 en la fila de espera :-)]. Para aclarar mejor, esta tarde me bajaré # > el código fuente para tratar de ver mejor de qué se trata. # Espero que el código fuente lo aclare. sv # Según el código fuente, si se imprime en la impresora, se imprimirá el mensaje anterior: # enviadas a la impresora. # Si se "imprime" en un archivo (opción -o ), se imprimirá el mensaje: # quedan en el archivo . # En este caso, creo que lo mejor sería poner "copiadas en" o "grabadas en" #: src/main.c:1739 #, fuzzy, c-format msgid "output left in %s\n" msgstr " copiadas en %s\n" #: src/main.c:1760 #, c-format msgid "%d page" msgid_plural "%d pages" msgstr[0] "" msgstr[1] "" #: src/main.c:1762 #, c-format msgid "%d copy" msgid_plural "%d copies" msgstr[0] "" msgstr[1] "" # como supongo que se trata de las páginas, lo pongo en género femenino. #: src/main.c:1767 #, c-format msgid " sent to %s\n" msgstr " enviadas a %s\n" # ¿o sería mejor "faltan"? # por mí está bien así, pero ¿y el "in"? sv # > Como se trata de un programa de impresión, pienso que se trata de un trabajo incompleto, por # > ejemplo, si le indicamos que imprima 3 archivos, y sólo pudo imprimr 2, entonces nos dirá: # > quedan: 1. [Queda 1 en la fila de espera :-)]. Para aclarar mejor, esta tarde me bajaré # > el código fuente para tratar de ver mejor de qué se trata. # Espero que el código fuente lo aclare. sv # Según el código fuente, si se imprime en la impresora, se imprimirá el mensaje anterior: # enviadas a la impresora. # Si se "imprime" en un archivo (opción -o ), se imprimirá el mensaje: # quedan en el archivo . # En este caso, creo que lo mejor sería poner "copiadas en" o "grabadas en" #: src/main.c:1770 #, c-format msgid " left in %s\n" msgstr " copiadas en %s\n" #: src/main.c:1776 #, fuzzy, c-format msgid "%d line was %s\n" msgid_plural "%d lines were %s\n" msgstr[0] "%d líneas fueron %s\n" msgstr[1] "%d líneas fueron %s\n" #: src/main.c:1781 msgid "truncated" msgstr "cortadas" #: src/main.c:1781 msgid "wrapped" msgstr "separadas" #: src/main.c:1788 #, fuzzy, c-format msgid "%d character was missing\n" msgid_plural "%d characters were missing\n" msgstr[0] "faltaron %d caracteres\n" msgstr[1] "faltaron %d caracteres\n" #: src/main.c:1794 msgid "missing character codes (decimal):\n" msgstr "códigos (en decimal) de los caracteres que faltan:\n" #: src/main.c:1803 #, fuzzy, c-format msgid "%d non-printable character\n" msgid_plural "%d non-printable characters\n" msgstr[0] "%d caracteres no imprimibles\n" msgstr[1] "%d caracteres no imprimibles\n" #: src/main.c:1810 msgid "non-printable character codes (decimal):\n" msgstr "códigos (en decimal) de los caracteres no imprimibles:\n" #: src/main.c:1859 #, c-format msgid "couldn't open printer `%s': %s" msgstr "no se pudo acceder a la impresora `%s': %s" #: src/main.c:1868 #, c-format msgid "couldn't create output file \"%s\": %s" msgstr "no se pudo crear el archivo de salida \"%s\": %s" #: src/main.c:1885 #, fuzzy, c-format msgid "couldn't close output file \"%s\": %s" msgstr "no se pudo crear el archivo de salida \"%s\": %s" # quotation podría ser "cita" a secas. ¿Qué te parece? sv # Quedaría "el fin de la cita". sv # > Acá lo que me parece falta, son las comillas que cierran la citación. # > No se trata de una citación en sí, sino tal vez de una cadena de caracteres # > que no está cerrada: "test # > ^ # > Y el carácter a ser impreso (%c) indica qué fin de citación falta: " o ' o `. # Que sí, que estoy de acuerdo. Lo que digo es cómo se le llama a eso en español. # La verdad es que no lo sé. sv # # Nota: El término correcto es apóstrofo (en inglés sí es "apostrophe"). # Viene en el diccionario de la Real Academia. # ## Toda mi vida había dicho apóstrofe... Cada día se aprende, ¿verdad? :-) # ## Yo también, esto me lo dijo un `webmaster' de Zaragoza... #: src/main.c:1943 #, c-format msgid "" "syntax error in option string %s=\"%s\":\n" "missing end of quotation: %c" msgstr "" "error de sintaxis en la opción %s=\"%s\":\n" "falta el apóstrofo %c que indica el final del argumento." # ******************************************* # A comprender el contexto... # > Acá creo que significa que algunas opciones pasadas en la línea de comando, no # > fueron interpretadas porque existían variables de entorno que son prioritarias # > para definir algunas acciones. (Aunque normalmente es lo contrario que sucede, # > que las opciones de la línea de comando son prioritarias a las variables de entorno)... # > ¿A ver en el código fuente? :-) #: src/main.c:1975 #, c-format msgid "" "warning: didn't process following options from environment variable %s:\n" msgstr "" "atención: no se procesaron las siguientes opciones de la variable de entorno " "%s:\n" #: src/main.c:1979 #, c-format msgid " option %d = \"%s\"\n" msgstr " opción %d = \"%s\"\n" #: src/main.c:2025 #, fuzzy msgid "number of columns must be larger than zero" msgstr "la alineación del archivo debe ser mayor que cero" #: src/main.c:2083 msgid "file alignment must be larger than zero" msgstr "la alineación del archivo debe ser mayor que cero" #: src/main.c:2138 src/main.c:2144 src/main.c:2355 src/util.c:416 #, c-format msgid "malformed font spec: %s" msgstr "especificación errónea de la fuente: %s" #: src/main.c:2160 #, c-format msgid "couldn't find header definition file \"%s.hdr\"" msgstr "" "no se pudo encontrar el archivo de definición de la cabecera \"%s.hdr\"" #: src/main.c:2204 #, c-format msgid "must print at least one line per each page: %s" msgstr "se debe imprimir por lo menos una línea por página: %s" #: src/main.c:2224 #, c-format msgid "%s: illegal newline character specifier: '%s': expected 'n' or 'r'\n" msgstr "" "%s: carácter de nueva línea no permitido: '%s': se esperaba 'n' o 'r'\n" #: src/main.c:2313 #, c-format msgid "malformed argument `%s' for option -W, --option: no comma found" msgstr "" #: src/main.c:2318 #, c-format msgid "helper application specification must be single character: %s" msgstr "" #: src/main.c:2414 msgid "slice must be greater than zero" msgstr "el intervalo debe ser mayor que cero" #: src/main.c:2495 states/main.c:318 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Pruebe `%s --help' para más información.\n" # Sugerencia: imprime el resultado (en vez de la salida). sv # Sugerencia: equivalente -> equivale, o bien "igual que" o "lo mismo que". sv # Sugerencia: secuencias especiales de escape -> secuencias de escape. sv #: src/main.c:2515 #, fuzzy, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" "Mandatory arguments to long options are mandatory for short options too.\n" " -# an alias for option -n, --copies\n" " -1 same as --columns=1\n" " -2 same as --columns=2\n" " --columns=NUM specify the number of columns per page\n" " -a, --pages=PAGES specify which pages are printed\n" " -A, --file-align=ALIGN align separate input files to ALIGN\n" " -b, --header=HEADER set page header\n" " -B, --no-header no page headers\n" " -c, --truncate-lines cut long lines (default is to wrap)\n" " -C[START], --line-numbers[=START]\n" " precede each line with its line number\n" " -d an alias for option --printer\n" " -D, --setpagedevice=KEY[:VALUE]\n" " pass a page device definition to output\n" " -e[CHAR], --escapes[=CHAR] enable special escape interpretation\n" msgstr "" "Modo de empleo: %s [OPCIÓN]... [ARCHIVO]...\n" "Los argumentos obligatorios para las opciones largas son también\n" "obligatorios para las opciones cortas.\n" " -1 equivalente a --columns=1\n" " -2 equivalente a --columns=2\n" " --columns=NUM especifica el número de columnas por página\n" " -a, --pages=PÁGINAS especifica las páginas que se imprimirán\n" " -A, --file-align=ALIN alinea los diferentes archivos de entrada\n" " a ALIN\n" " -b, --header=CABECERA define la cabecera de la página\n" " -B, --no-header sin cabecera de página\n" " -c, --truncate-lines corta las líneas largas (por defecto las\n" " divide)\n" " -C, --line-numbers imprime el número de cada línea\n" " -d un alias para la opción --printer\n" " -D, --setpagedevice=CLAVE[:VALOR]\n" " pasa un dispositivo de página a la salida\n" " -e, --escapes[=CHAR] habilita la interpretación de las secuencias\n" " especiales de escape\n" #: src/main.c:2535 #, c-format msgid " -E[LANG], --highlight[=LANG] highlight source code\n" msgstr "" # lineprinter = impresora que imprime línea por línea. # impresora en línea, ¿no? Creo que no tiene nada que ver si es matricial o no. sv # pregunta: ¿"éste" lleva tilde? sv (creo que no). #: src/main.c:2538 #, fuzzy, c-format msgid "" " -f, --font=NAME use font NAME for body text\n" " -F, --header-font=NAME use font NAME for header texts\n" " -g, --print-anyway nothing (compatibility option)\n" " -G same as --fancy-header\n" " --fancy-header[=NAME] select fancy page header\n" " -h, --no-job-header suppress the job header page\n" " -H[NUM], --highlight-bars[=NUM] specify how high highlight bars are\n" " -i, --indent=NUM set line indent to NUM characters\n" " -I, --filter=CMD read input files through input filter CMD\n" " -j, --borders print borders around columns\n" " -J, an alias for option --title\n" " -k, --page-prefeed enable page prefeed\n" " -K, --no-page-prefeed disable page prefeed\n" " -l, --lineprinter simulate lineprinter, this is an alias for:\n" " --lines-per-page=66, --no-header, --" "portrait,\n" " --columns=1\n" msgstr "" " -f, --font=NOMBRE utiliza la fuente NOMBRE para el cuerpo del " "texto\n" " -F, --header-font=NOMBRE utiliza la fuente NOMBRE para la cabecera\n" " -g, --print-anyway sin efecto (opción de compatibilidad)\n" " -G idéntico a --fancy-header\n" " --fancy-header[=NOMBRE] selecciona la página de carátula\n" " -h, --no-job-header suprime la página de cabecera.\n" " -H, --highlight-bars=NUM especifica cuán grandes son las barras de " "marca\n" " -i, --indent=NUM inicializa la sangría a NUM\n" " -I, --filter=CMD lee los ficheros de entrada a través del filtro " "CMD\n" " -j, --borders imprime bordes alrededor de las columnas\n" " -k, --page-prefeed habilita la pre-alimentación de páginas\n" " -K, --no-page-prefeed inhabilita la pre-limentación de páginas\n" " -l, --lineprinter simula la presencia de una impresora, es un\n" " alias para:\n" " --lines-per-page=66, --no-header,\n" " --portrait, --columns=1\n" # ¿aficha? Nunca había oido la palabra. # ¿Se te ocurre alguna otra? sv # afichar: colocar un afiche, mostrar algo, ¿no? # Nunca lo había oído, de verdad. sv # Creo que "modo paisaje" es lo que en España se dice "apaisado". # lo de portaretrato no le he oído en mi vida. sv # Es apaisado que nunca oí. # Si para hacerlo más claro entonces, utilizamos: # " -r, --landscape imprime a lo largo de la página\n" # " -R, --portrait imprime a lo ancho de la página\n" # " (modo estándar)\n" # Que lo vea otro, a ver qué dice. sv # También se podría poner "imprime en modo apaisado" e "imprime en modo normal" # Lo de portaretrato no me gusta. Apaisado sí em+ #: src/main.c:2556 #, c-format msgid "" " -L, --lines-per-page=NUM specify how many lines are printed on each " "page\n" " -m, --mail send mail upon completion\n" " -M, --media=NAME use output media NAME\n" " -n, --copies=NUM print NUM copies of each page\n" " -N, --newline=NL select the newline character. Possible\n" " values for NL are: n (`\\n') and r (`\\r').\n" " -o an alias for option --output\n" " -O, --missing-characters list missing characters\n" " -p, --output=FILE leave output to file FILE. If FILE is `-',\n" " leave output to stdout.\n" " -P, --printer=NAME print output to printer NAME\n" " -q, --quiet, --silent be really quiet\n" " -r, --landscape print in landscape mode\n" " -R, --portrait print in portrait mode\n" msgstr "" " -L, --lines-per-page=NUM especifica cuántas líneas se imprimirán en\n" " cada página\n" " -m, --mail envía un mensaje al finalizar su ejecución.\n" " -M, --media=NOMBRE utiliza el soporte de salida NOMBRE\n" " -n, --copies=NUM imprime NUM copias de cada página\n" " -N, --newline=NL selecciona el carácter de nueva línea.\n" " Los valores posibles son: n (`\\n') y r (`" "\\r').\n" " -o un alias para la opción `--output'\n" " -O, --missing-characters enumera los caracteres que faltan\n" " -p, --output=ARCHIVO coloca la salida en el archivo ARCHIVO.\n" " Si ARCHIVO es `-', envía el resultado\n" " a la salida estándar.\n" " -P, --printer=NOMBRE envía la salida a la impresora NOMBRE\n" " -q, --quiet, --silent sé realmente silencioso\n" " -r, --landscape imprime en modo apaisado\n" " -R, --portrait imprime en modo portaretrato\n" # ¿Qué puede significar baselineskip? Es la primera vez que oigo hablar de eso. # En TeX es un parámetro que indica la distancia entre una línea y la que hay # debajo. sv # No estoy muy convencido de la traducción de encoding=codificada # > Para baselineskip, entonces, ¿te parece que digamos distancia entre las líneas? # > ¿Para encoding qué te parece entonces decir "la entrada de códigos"? # > Lo que comprendí del sentido de encoding en casi todo el programa, es # > que puedes codificar tu archivo de entrada de diferentes maneras. # He cambiado "la talla" por "el tamaño". En España "la talla" suena fatal. sv # He puesto `form feed' en lugar de form feed, por no ser palabras españolas. # imprimir -> mostrar em+ # form feed -> salto de pagina em+ #: src/main.c:2572 #, fuzzy, c-format msgid "" " -s, --baselineskip=NUM set baselineskip to NUM\n" " -S, --statusdict=KEY[:VALUE]\n" " pass a statusdict definition to the output\n" " -t, --title=TITLE set banner page's job title to TITLE. Option\n" " sets also the name of the input file stdin.\n" " -T, --tabsize=NUM set tabulator size to NUM\n" " -u[TEXT], --underlay[=TEXT] print TEXT under every page\n" " -U, --nup=NUM print NUM logical pages on each output page\n" " -v, --verbose tell what we are doing\n" " -V, --version print version number\n" " -w, --language=LANG set output language to LANG\n" " -W, --options=APP,OPTION pass option OPTION to helper application APP\n" " -X, --encoding=NAME use input encoding NAME\n" " -z, --no-formfeed do not interpret form feed characters\n" " -Z, --pass-through pass through PostScript and PCL files\n" " without any modifications\n" msgstr "" " -s, --baselineskip=NUM inicializa `baselineskip' a NUM\n" " -S, --statusdict=CLAVE[:VALOR]\n" " pasa una definición del `statusdict' a la " "salida\n" " -t, --title=TÍTULO da el nombre TÍTULO a la ejecución. También\n" " da nombre al archivo de entrada\n" " -T, --tabsize=NUM inicializa el tamaño del tabulador a NUM\n" " -u, --underlay[=TEXTO] muestra TEXTO al pie de cada página\n" " -v, --verbose indica qué está haciendo\n" " -V, --version informa de la versión y termina\n" " -X, --encoding=NOMBRE utiliza la codificación NOMBRE\n" " -z, --no-formfeed no interpreta los caracteres `form feed'\n" " -Z, --pass-through pasa a través de archivos PostScript y PCL\n" " sin niguna modificación\n" #: src/main.c:2590 #, c-format msgid "" "Long-only options:\n" " --color[=bool] create color outputs with states\n" " --continuous-page-numbers count page numbers across input files. Don't\n" " restart numbering at beginning of each file.\n" " --download-font=NAME download font NAME\n" " --extended-return-values enable extended return values\n" " --filter-stdin=NAME specify how stdin is shown to the input filter\n" " --footer=FOOTER set page footer\n" " --h-column-height=HEIGHT set the horizontal column height to HEIGHT\n" " --help print this help and exit\n" msgstr "" #: src/main.c:2601 #, c-format msgid "" " --help-highlight describe all supported --highlight languages\n" " and file formats\n" " --highlight-bar-gray=NUM print highlight bars with gray NUM (0 - 1)\n" " --list-media list names of all known media\n" " --margins=LEFT:RIGHT:TOP:BOTTOM\n" " adjust page marginals\n" " --mark-wrapped-lines[STYLE]\n" " mark wrapped lines in the output with STYLE\n" " --non-printable-format=FMT specify how non-printable chars are printed\n" msgstr "" #: src/main.c:2612 #, c-format msgid "" " --nup-columnwise layout pages in the N-up printing columnwise\n" " --nup-xpad=NUM set the page x-padding of N-up printing to NUM\n" " --nup-ypad=NUM set the page y-padding of N-up printing to NUM\n" " --page-label-format=FMT set page label format to FMT\n" " --ps-level=LEVEL set the PostScript language level that " "enscript\n" " should use\n" " --printer-options=OPTIONS pass extra options to the printer command\n" " --rotate-even-pages rotate even-numbered pages 180 degrees\n" msgstr "" # Todos los underlay los he traducido como pie de página. # No es footnote, pero viendo su ubicación en la página, # es casi lo mismo... ¿alguien tiene otra sugerencia? #: src/main.c:2622 #, fuzzy, c-format msgid "" " --slice=NUM print vertical slice NUM\n" " --style=STYLE use highlight style STYLE\n" " --swap-even-page-margins swap left and right side margins for each even\n" " numbered page\n" " --toc print table of contents\n" " --ul-angle=ANGLE set underlay text's angle to ANGLE\n" " --ul-font=NAME print underlays with font NAME\n" " --ul-gray=NUM print underlays with gray value NUM\n" " --ul-position=POS set underlay's starting position to POS\n" " --ul-style=STYLE print underlays with style STYLE\n" " --word-wrap wrap long lines from word boundaries\n" msgstr "" " --slice=NUM inicializa el intervalo vertical a NUM\n" " --toc imprime el índice\n" " --ul-angle=ÁNGULO inicializa la inclinación del texto del pie\n" " de página a ÁNGULO\n" " --ul-font=NOMBRE imprime los pies de página con la\n" " fuente NOMBRE\n" " --ul-gray=NUM imprime los pies de página con el nivel\n" " de gris NUM (0 - 1)\n" " --ul-position=POS inicializa la posición de partida a POS,\n" " para los pies de página\n" " --ul-style=STYLE imprime los pies de página con el estilo STYLE\n" #: src/main.c:2636 #, c-format msgid "" "\n" "Report bugs to <%s>.\n" msgstr "" # ¿Qué es prolog? # > Prolog es un lenguaje de PROgramaciómn LOGica. Se lo utiliza en trabajos # > de inteligencia artificial o en proyectos para analizar el lenguaje natural. # > No es la primera vez que veo prolog asociado a un programa que trabaja # > con código PostScript. (Hay un script que creo acompaña TeX que se llama # > multi , él también uitiza prolog, al menos la version que tengo acá en una # > de las máquinas de la Universidad). #: src/psgen.c:331 #, c-format msgid "couldn't find prolog \"%s\": %s\n" msgstr "no se pudo encontrar prolog \"%s\": %s\n" # Sugiero: "de codificación". sv #: src/psgen.c:339 #, c-format msgid "couldn't find encoding file \"%s.enc\": %s\n" msgstr "no se pudo encontrar el archivo de códigos \"%s.enc\": %s\n" #: src/psgen.c:471 #, c-format msgid "couldn't find header definition file \"%s.hdr\": %s\n" msgstr "" "no se pudo encontrar el archivo de definición de la cabecera \"%s.hdr\": %s\n" #: src/psgen.c:615 #, c-format msgid "processing file \"%s\"...\n" msgstr "procesando el archivo \"%s\"...\n" #: src/psgen.c:913 #, c-format msgid "EPS file \"%s\" is too large for page\n" msgstr "el archivo EPS \"%s\" es demasiado grande para la página\n" #: src/psgen.c:986 msgid "user font encoding can be only the system's default or `ps'" msgstr "" #: src/psgen.c:1228 #, c-format msgid "unknown special escape: %s" msgstr "secuencia de escape especial desconocida: %s" #: src/psgen.c:1354 #, c-format msgid "illegal option %c for ^@epsf escape" msgstr "opción no permitida %c para la secuencia de escape ^@epsf" #: src/psgen.c:1360 msgid "malformed ^@epsf escape: no ']' after options" msgstr "" "secuencia de escape ^@epsf errónea: falta un ']' después de las opciones" #: src/psgen.c:1372 #, c-format msgid "" "too long file name for ^@epsf escape:\n" "%.*s" msgstr "" "nombre de archivo demasiado largo para la secuencia de escape ^@epsf:\n" "%.*s" # Sugerencia: Fin de archivo (EOF) inesperado ... sv # Sugerencia: scan -> examinar. (si te gusta). sv #: src/psgen.c:1376 msgid "unexpected EOF while scanning ^@epsf escape" msgstr "" "Fin de archivo (EOF) inesperado mientras se examinaba la secuencia\n" "de escape ^@epfs" #: src/psgen.c:1382 msgid "malformed ^@epsf escape: no '{' found" msgstr "secuencia de escape ^@epsf errónea: no se encontró '{'" #: src/psgen.c:1440 #, c-format msgid "malformed %s escape: no '{' found" msgstr "secuencia de escape %s errónea: no se encontró '{'" #: src/psgen.c:1454 #, c-format msgid "" "too long argument for %s escape:\n" "%.*s" msgstr "" "argumento demasiado largo para la secuencia de escape %s:\n" "%.*s" #: src/psgen.c:1474 #, c-format msgid "malformed font spec for ^@font escape: %s" msgstr "" "especificación de fuente errónea para la secuencia de escape ^@font: %s" #: src/psgen.c:1511 #, fuzzy, c-format msgid "malformed color spec for ^@%s escape: %s" msgstr "" "especificación de fuente errónea para la secuencia de escape ^@font: %s" #: src/psgen.c:1535 #, c-format msgid "invalid value for ^@shade escape: %s" msgstr "valor incorrecto para la secuencia de escape ^@shade: %s" #: src/psgen.c:1543 #, fuzzy, c-format msgid "invalid value for ^@bggray escape: %s" msgstr "valor incorrecto para la secuencia de escape ^@shade: %s" #: src/psgen.c:2412 #, c-format msgid "couldn't open EPS file \"%s\": %s\n" msgstr "no se pudo abrir el archivo EPS \"%s\": %s\n" #: src/psgen.c:2448 #, c-format msgid "EPS file \"%s\" does not start with \"%%!\" magic\n" msgstr "el archivo EPS \"%s\" no comienza con el código \"%%!\"\n" #: src/psgen.c:2473 #, c-format msgid "" "EPS file \"%s\" contains malformed %%%%BoundingBox row:\n" "\"%.*s\"\n" msgstr "" "el archivo EPS \"%s\" tiene una línea %%%%BoundingBox errónea:\n" "\"%.*s\"\n" #: src/psgen.c:2498 #, c-format msgid "EPS file \"%s\" is not a valid EPS file\n" msgstr "el archivo EPS \"%s\" no es un archivo EPS válido\n" #: src/psgen.c:2640 #, c-format msgid "passing through all input files for output language `%s'\n" msgstr "" #: src/psgen.c:2692 #, c-format msgid "passing through %s file \"%s\"\n" msgstr "pasando a través del archivo %s \"%s\"\n" # Los archivos "divert" son temporales, al no encontrar una traducción # directa, he de poner simplemente temporal. #: src/psgen.c:2795 #, fuzzy, c-format msgid "couldn't create temporary divert file: %s" msgstr "no se pudo crear el archivo temporal: %s" # Ojo: rewind no es abrir. sv #: src/psgen.c:2812 #, c-format msgid "couldn't rewind divert file: %s" msgstr "no se pudo rebobinar el archivo temporal: %s" #: src/util.c:93 #, fuzzy, c-format msgid "missing argument: %s" msgstr "opción incorrecta: %s" #: src/util.c:186 src/util.c:214 #, c-format msgid "illegal value \"%s\" for option %s" msgstr "valor \"%s\" incorrecto para la opción %s" #: src/util.c:202 #, c-format msgid "invalid value \"%s\" for option %s" msgstr "valor \"%s\" no permitido para la opción %s" #: src/util.c:440 #, c-format msgid "illegal option: %s" msgstr "opción incorrecta: %s" #: src/util.c:619 #, c-format msgid "%s:%d: %%Format: no name" msgstr "%s:%d: %%Format: sin nombre" # Sinceramente, creo que el "maxlen" no habría que traducirlo. sv # > Había pensado en eso, pero como no se trata de ninguna variable, sino # > sólo de una referencia a la longitud máxima permitida... # Entonces, si de verdad crees que es así, pon "la longitud máxima es %d" # Por si acaso (a lo mejor es el nombre interno de la variable), lo dejaría # tal y como está. sv #: src/util.c:630 #, c-format msgid "%s:%d: %%Format: too long name, maxlen=%d" msgstr "" "%s:%d: %%Format: nombre demasiado largo. La longitud máxima permitida es %d" #: src/util.c:653 #, c-format msgid "%s:%d: %%Format: name \"%s\" is already defined" msgstr "%s:%d: %%Format: el nombre \"%s\" ya ha sido definido" #: src/util.c:674 #, c-format msgid "%s:%d: %%HeaderHeight: no argument" msgstr "%s:%d: %%HeaderHeight: sin argumento" #: src/util.c:696 #, c-format msgid "%s:%d: %%FooterHeight: no argument" msgstr "%s:%d: %%FooterHeight: sin argumento" #: src/util.c:843 #, c-format msgid "%s: warning: font size is negative\n" msgstr "" #: src/util.c:845 #, c-format msgid "%s: warning: font width is negative\n" msgstr "" #: src/util.c:847 #, c-format msgid "%s: warning: font height is negative\n" msgstr "" #: src/util.c:866 #, c-format msgid "reading AFM info for font \"%s\"\n" msgstr "leyendo la información AFM para la fuente \"%s\"\n" #: src/util.c:899 #, c-format msgid "couldn't open AFM file for font \"%s\", using default\n" msgstr "" "no se pudo abrir el archivo AFM para la fuente \"%s\", se usará\n" "la definición por defecto\n" #: src/util.c:906 #, c-format msgid "couldn't open AFM file for the default font: %s" msgstr "no se pudo abrir el archivo AFM para la fuente: %s" # cargando, ¿no? sv # > Cargando sería copiar hacia la máquina, de algún lado, en éste caso # > se trata de copiar la fuente hacia la impresora.... aunque de todas maneras # > es cargar, en uno o en otro... vendido! :-) #: src/util.c:1095 #, c-format msgid "downloading font \"%s\"\n" msgstr "cargando la fuente \"%s\"\n" #: src/util.c:1100 #, c-format msgid "couldn't open font description file \"%s\": %s\n" msgstr "no se pudo abrir el archivo de descripción \"%s\" de la fuente: %s\n" #: src/util.c:1392 #, c-format msgid "%s: too long format for %%D{} escape" msgstr "%s: formato demasiado largo para la secuencia de escape %%D{}" #: src/util.c:1477 #, c-format msgid "%s: unknown `%%' escape `%c' (%d)" msgstr "%s: secuencia de escape desconocida `%%' `%c' (%d)" #: src/util.c:1515 #, c-format msgid "%s: no closing ')' for $() escape" msgstr "%s: falta el ')' para la secuencia de escape $()" #: src/util.c:1518 #, c-format msgid "%s: too long variable name for $() escape" msgstr "%s: nombre de variable demasiado largo para la secuancia de escape $()" #: src/util.c:1545 #, c-format msgid "%s: too long format for $D{} escape" msgstr "%s: formato demasiado largo para la secuencia de escape $D{}" # Propongo "secuencia de escape `$' desconocida ..." sv #: src/util.c:1633 #, c-format msgid "%s: unknown `$' escape `%c' (%d)" msgstr "%s: secuencia de escape `$' `%c' (%d) desconocida" #: src/util.c:1824 #, c-format msgid "malformed float dimension: \"%s\"" msgstr "dimensión de números reales errónea: \"%s\"" #: src/util.c:1946 #, c-format msgid "couldn't open input filter \"%s\" for file \"%s\": %s" msgstr "" "no se pudo abrir el filtro de entrada \"%s\" para el archivo \"%s\": %s" #: src/util.c:1963 #, c-format msgid "couldn't open input file \"%s\": %s" msgstr "no se pudo abrir el archivo de entrada \"%s\": %s" #: src/mkafmmap.c:167 #, c-format msgid "file=%s\n" msgstr "" #: src/mkafmmap.c:167 msgid "stdout" msgstr "" #: src/mkafmmap.c:175 #, fuzzy, c-format msgid "%s: couldn't open output file \"%s\"" msgstr "no se pudo abrir el archivo de entrada \"%s\": %s" # library=biblioteca, pero me parece que es más corriente (y hasta se entiende mejor), # cuando se habla de librerías. En spanglish la semana pasada uno de los mails decía # también que ambas traducciones pueden ser válidas. # Sí, era Enrique quien lo decía... # Pero biblioteca es más correcto: Tú vas a una biblioteca a consultar algo, # pero no a llevártelo a casa. sv # ¿Consenso? :-) # En Spanish-GNU nos hemos decidido por biblioteca. sv # Lo cambio directamente. sv #: src/mkafmmap.c:189 #, fuzzy msgid "couldn't create AFM library" msgstr "no se pudo abrir la biblioteca AFM: %s" #: src/mkafmmap.c:238 #, c-format msgid "" "Usage: %s [OPTION]... FILE...\n" "Mandatory arguments to long options are mandatory for short options too.\n" " -h, --help print this help and exit\n" " -p, --output-file=NAME print output to file NAME (default file is\n" " font.map). If FILE is `-', leavy output to\n" " stdout.\n" " -V, --version print version number\n" msgstr "" #: states/lex.l:167 states/lex.l:173 msgid "error: EOF in comment" msgstr "" #: states/lex.l:204 msgid "error: EOF in string constant" msgstr "" #: states/lex.l:311 msgid "error: EOF in regular expression" msgstr "" #: states/main.c:197 #, c-format msgid "states for %s" msgstr "" #: states/main.c:252 #, fuzzy, c-format msgid "%s: malformed variable definition \"%s\"\n" msgstr "dimensión de números reales errónea: \"%s\"" #: states/main.c:280 #, fuzzy, c-format msgid "%s: couldn't create output file \"%s\": %s\n" msgstr "no se pudo crear el archivo de salida \"%s\": %s" # Propongo "secuencia de escape `$' desconocida ..." sv #: states/main.c:311 #, fuzzy, c-format msgid "%s: unknown warning level `%s'\n" msgstr "%s: secuencia de escape `$' `%c' (%d) desconocida" #: states/main.c:360 states/main.c:396 states/prims.c:1375 states/utils.c:227 #, c-format msgid "%s: out of memory\n" msgstr "" #: states/main.c:421 #, fuzzy, c-format msgid "%s: couldn't open input file `%s': %s\n" msgstr "no se pudo abrir el archivo de entrada \"%s\": %s" #: states/main.c:445 #, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" #: states/main.c:449 #, c-format msgid "" " -D, --define=VAR=VAL define variable VAR to have value VAL\n" " -f, --file=NAME read state definitions from file NAME\n" " -h, --help print this help and exit\n" " -o, --output=NAME save output to file NAME\n" " -p, --path=PATH set the load path to PATH\n" " -s, --state=NAME start from state NAME\n" " -v, --verbose increase the program verbosity\n" " -V, --version print version number\n" " -W, --warning=LEVEL set the warning level to LEVEL\n" msgstr "" #: states/prims.c:44 #, fuzzy, c-format msgid "%s:%d: %s: too few arguments\n" msgstr "%s: la opción `%s' requiere un argumento\n" #: states/prims.c:54 #, fuzzy, c-format msgid "%s:%d: %s: too many arguments\n" msgstr "%s: la opción `%s' requiere un argumento\n" #: states/prims.c:107 states/prims.c:127 states/prims.c:253 states/prims.c:426 #: states/prims.c:901 #, c-format msgid "%s:%d: %s: illegal argument type\n" msgstr "" #: states/prims.c:468 #, c-format msgid "%s: panic: " msgstr "" #: states/prims.c:502 #, c-format msgid "%s:%d: %s: malformed version string `%s'\n" msgstr "" #: states/prims.c:517 #, c-format msgid "" "%s: FATAL ERROR: States version %s or higher is required for this script\n" msgstr "" #: states/prims.c:608 states/prims.c:1274 #, c-format msgid "%s:%d: %s: start offset is bigger than end offset\n" msgstr "" #: states/prims.c:617 states/prims.c:633 states/prims.c:1280 #, c-format msgid "%s:%d: %s: offset out of range\n" msgstr "" #: states/prims.c:651 #, fuzzy, c-format msgid "%s:%d: %s: illegal argument\n" msgstr "%s: la opción `%s' requiere un argumento\n" #: states/prims.c:698 #, c-format msgid "%s:%d: %s: illegal regexp character syntax: %c\n" msgstr "" #: states/prims.c:913 #, c-format msgid "%s:%d: %s: couldn't define state `%s'\n" msgstr "" #: states/prims.c:1010 #, c-format msgid "%s: primitive `%s': too few arguments for format\n" msgstr "" #: states/prims.c:1038 #, c-format msgid "%s:%d: %s: argument %d doesn't match format\n" msgstr "" #: states/prims.c:1078 #, c-format msgid "%s:%d: %s: no extra options can be specified for %%s\n" msgstr "" #: states/prims.c:1087 #, c-format msgid "%s:%d: %s: illegal type specifier `%c'\n" msgstr "" #: states/process.c:115 #, fuzzy, c-format msgid "%s: undefined state `%s'\n" msgstr "%s: opción desconocida `--%s'\n" #: states/process.c:196 #, c-format msgid "%s: error: undefined variable `%s'\n" msgstr "" #: states/process.c:290 #, fuzzy, c-format msgid "%s: undefined super state `%s'\n" msgstr "%s: opción desconocida `--%s'\n" # pipe es una palabra delicada. Yo le he traducido por "tubería" en recode # Enrique ha puesto "tubería (pipe)" en glibc. # Otros lo han traducido como "canalización" o "desviación". # En cualquier caso, no sería un pipe "con el comando" sino "hacia el comando" sv # Me suena medio feo lo de tubería, pero si son ya dos los que lo tradujeron así... # Bueno, hay otras posibilidades, Federico Rivas usó una vez "canalización". sv #: states/utils.c:260 #, fuzzy, c-format msgid "%s:%d: couldn't compile regular expression \"%s\": %s\n" msgstr "epfs: no se pudo abrir un canal hacia el comando \"%s\": %s\n" #: states/utils.c:449 states/utils.c:477 #, c-format msgid "%s: ouf of memory" msgstr "" #: states/utils.c:454 #, c-format msgid "warning: redefining state `%s'" msgstr "" #: states/utils.c:481 #, c-format msgid "%s:%d: warning: redefining subroutine `%s'\n" msgstr "" #: states/utils.c:578 #, c-format msgid "%s:%d: error: undefined variable `%s'\n" msgstr "" #: states/utils.c:616 #, c-format msgid "%s:%d: error: couldn't set variable `%s'\n" msgstr "" #: states/utils.c:767 #, c-format msgid "%s:%d: error: expression between illegal types\n" msgstr "" #: states/utils.c:865 #, c-format msgid "%s:%d: error: too few arguments for subroutine\n" msgstr "" #: states/utils.c:872 #, c-format msgid "%s:%d: error: too many arguments for subroutine\n" msgstr "" #: states/utils.c:926 #, fuzzy, c-format msgid "%s:%d: error: undefined procedure `%s'\n" msgstr "%s: opción desconocida `--%s'\n" #: states/utils.c:1018 #, c-format msgid "%s:%d: error: illegal lvalue for assignment\n" msgstr "" #: states/utils.c:1026 states/utils.c:1110 #, c-format msgid "%s:%d: error: array reference index is not integer\n" msgstr "" #: states/utils.c:1032 #, c-format msgid "%s:%d: error: negative array reference index\n" msgstr "" #: states/utils.c:1083 #, c-format msgid "%s:%d: error: illegal rvalue for string assignment\n" msgstr "" #: states/utils.c:1102 #, c-format msgid "%s:%d: error: illegal type for array reference\n" msgstr "" #: states/utils.c:1119 #, c-format msgid "%s:%d: error: array reference index out of range\n" msgstr "" #: states/utils.c:1345 #, fuzzy, c-format msgid "%s: couldn't open definition file `%s': %s\n" msgstr "no se pudo abrir el archivo de descripción \"%s\" de la fuente: %s\n" #: states/utils.c:1401 #, c-format msgid "%s: autoloading `%s' from `%s'\n" msgstr "" #~ msgid "couldn't create toc file \"%s\": %s" #~ msgstr "no se pudo crear el archivo para el índice \"%s\": %s" #~ msgid "[ %d pages * %d copy ]" #~ msgstr "[ %d páginas * %d copias ]" # pipe es una palabra delicada. Yo le he traducido por "tubería" en recode # Enrique ha puesto "tubería (pipe)" en glibc. # Otros lo han traducido como "canalización" o "desviación". # En cualquier caso, no sería un pipe "con el comando" sino "hacia el comando" sv # Me suena medio feo lo de tubería, pero si son ya dos los que lo tradujeron así... # Bueno, hay otras posibilidades, Federico Rivas usó una vez "canalización". sv #~ msgid "epsf: couldn't open pipe to command \"%s\": %s\n" #~ msgstr "epfs: no se pudo abrir un canal hacia el comando \"%s\": %s\n" #~ msgid "couldn't create divert file \"%s\": %s" #~ msgstr "no se pudo crear el archivo temporal \"%s\": %s" #~ msgid "" #~ "Long-only options:\n" #~ " --download-font=NAME download font NAME\n" #~ " --filter-stdin=NAME specify how stdin is shown to the input " #~ "filter\n" #~ " --help print this help and exit\n" #~ " --highlight-bar-gray=NUM print highlight bars with gray NUM (0 - 1)\n" #~ " --list-media list names of all known media\n" #~ " --list-options list all options and their values\n" #~ " --non-printable-format=FMT specify how non-printable chars are printed\n" #~ " --page-label-format=FMT set page label format to FMT\n" #~ " --printer-options=OPTIONS pass extra options to the printer command\n" #~ msgstr "" #~ "Estas opciones sólo existen en formato largo:\n" #~ " --download-font=NOMBRE carga la fuente NOMBRE\n" #~ " --filter-stdin=NAME especifica cómo la entrada estándar será\n" #~ " vista por el filtro de entrada\n" #~ " --help muestra esta ayuda y finaliza\n" #~ " --highlight-bar-gray=NUM imprime las barras de marca con un\n" #~ " gris NUM (0 - 1)\n" #~ " --list-media muestra la lista de todos los soportes\n" #~ " conocidos\n" #~ " --list-options muestra una lista de todas las opciones\n" #~ " y sus valores\n" #~ " --non-printable-format=FMT inicializa el formato no-imprimible a FMT\n" #~ " --page-label-format=FMT inicializa el formato del nombre de la\n" #~ " página a FMT\n" #~ " --printer-options=OPCIONES pasa OPCIONES suplementarias a la impresión\n" #~ msgid "couldn't unlink divert file \"%s\": %s" #~ msgstr "no se puede borrar el archivo temporal \"%s\": %s" #~ msgid "" #~ "too long font name for ^@font escape:\n" #~ "%.*s" #~ msgstr "" #~ "nombre de fuente muy grande para la secuencia de escape ^@font:\n" #~ "%.*s" #~ msgid "malformed ^@font escape: no '{' found" #~ msgstr "secuencia de escape ^@font errónea: no se encontró '{'" enscript-1.6.5.90/po/sl.gmo0000644000175000017500000006455311606344232012300 00000000000000Þ•È\ œ ÐÑ Õàè  '5LM›j;B V c$p5•!Ë8íI&p)+º&æ" #0CT˜²'Ì!ô,C%a,‡-´ â&*< O1[#$±)Ö  : ![ }  ½ %Ý #!$'!"L!-o!!)¶!"à!,"&0"W"!t"/–"'Æ")î"5#N#2n#¡#¿#4Þ#3$)G$/q$,¡$3Î$/%-2%/`%0%'Á%&é%+&=<&.z&&©&$Ð&Iõ&)?'i'€''¹'$Ñ'ö'(H#(l*$}*¢*«*#Ê*î* ++@#+d+&w+ž+°+Â+ Ô+vá+iX-#Â-æ-$.)'.&Q.)x.-¢.2Ð./("/4K//€/°/ Î/-ï/!01?0q0%0¶0Ö0!ó0%1;1R1 h1‰1'§1Ï1=Ø12!02#R2v2‰2+¨2Ô2 ï2 3%13$W3x|3!õ3-4%E4?k4(«4Ô4)ô4565V5#k5.5¾5)Ó5*ý5(6;6N69l6¦6®6Ç6Iç617 Q7_7Cf7%ª7*Ð7 û7+818F8;a8H8æ89& 9&49)[9ì…9r; v;;‰;¦; ¬;¸; È;Ö;ºó;®=«¾?†jBñEFF&'FWNF[¦F[GW^G)¶G3àG5H2JH,}H.ªH<ÙHI4I9QI0‹I+¼I!èI# J+.J,ZJ$‡J"¬JÏJèJ K2K8CK-|K7ªKâK$L4&L5[L"‘L!´L!ÖL+øL,$M+QM*}M*¨M ÓM@ôM*5N)`N.ŠN¹N'ÙN>O-@O6nO*¥OÐO1ïO!P@P7_P-—P9ÅP,ÿP;,QDhQ.­Q)ÜQ0R07R-hR1–R1ÈRXúR6SSŠS(©SBÒS)T?TYTwT—T$¯TÔTïT^ UiW,~W «W$¹W#ÞWXX$XB+XnX3ƒX·XÏXçXÿX`YirZ,ÜZ# [--[6[[4’[*Ç[5ò[7(\`\(~\B§\3ê\%]2D]2w]+ª]9Ö] ^81^5j^& ^-Ç^õ^_+)_3U_9‰_*Ã_ î_:û_&6`%]`1ƒ`µ`Ì`6ë`"a&>a%ea5‹a4Áa…öa8|bHµb<þbO;cC‹c"ÏcFòc9d,Pd}d'•d.½d ìd(ùd*"eMebeve8”e Íe×e-ôeQ"ftf ”f¡fC²f.öf7%g ]g=gg¥g*½gJèg?3h%sh ™h7ºh7òh@*i®/%d“(_§:¢n„BF‹‚Èpzt-fVv°ŽHÆi X8¼Š¬žEk\ªO† U©A•¥@Å oŸ·~‡ÀLˆ’»61™|?²W]le›–šM9^*GC—r¡Tbu2yj;'RQKÂ#¦+ý«ƒº‘aJ!´&qx”Ä…±gZ ,¨0¾œ€}ŒcI7˜)³‰35N{¿SÇD¹.` ¯<P=m ­$w¸[¤h4"ÁsY£µ ¶> %s ../../lib ../lib ./configure --prefix=PREFIX make make check make distclean make install Report bugs to <%s>. --help-highlight describe all supported --highlight languages and file formats --highlight-bar-gray=NUM print highlight bars with gray NUM (0 - 1) --list-media list names of all known media --margins=LEFT:RIGHT:TOP:BOTTOM adjust page marginals --mark-wrapped-lines[STYLE] mark wrapped lines in the output with STYLE --non-printable-format=FMT specify how non-printable chars are printed --nup-columnwise layout pages in the N-up printing columnwise --nup-xpad=NUM set the page x-padding of N-up printing to NUM --nup-ypad=NUM set the page y-padding of N-up printing to NUM --page-label-format=FMT set page label format to FMT --ps-level=LEVEL set the PostScript language level that enscript should use --printer-options=OPTIONS pass extra options to the printer command --rotate-even-pages rotate even-numbered pages 180 degrees --slice=NUM print vertical slice NUM --style=STYLE use highlight style STYLE --swap-even-page-margins swap left and right side margins for each even numbered page --toc print table of contents --ul-angle=ANGLE set underlay text's angle to ANGLE --ul-font=NAME print underlays with font NAME --ul-gray=NUM print underlays with gray value NUM --ul-position=POS set underlay's starting position to POS --ul-style=STYLE print underlays with style STYLE --word-wrap wrap long lines from word boundaries -L, --lines-per-page=NUM specify how many lines are printed on each page -m, --mail send mail upon completion -M, --media=NAME use output media NAME -n, --copies=NUM print NUM copies of each page -N, --newline=NL select the newline character. Possible values for NL are: n (`\n') and r (`\r'). -o an alias for option --output -O, --missing-characters list missing characters -p, --output=FILE leave output to file FILE. If FILE is `-', leave output to stdout. -P, --printer=NAME print output to printer NAME -q, --quiet, --silent be really quiet -r, --landscape print in landscape mode -R, --portrait print in portrait mode option %d = "%s" left in %s sent to %s $3v $-40N $3% pages $4L lines $E $C%d character was missing %d characters were missing %d line was %s %d lines were %s %d non-printable character %d non-printable characters %s: FATAL ERROR: States version %s or higher is required for this script %s: autoloading `%s' from `%s' %s: couldn't create output file "%s": %s %s: couldn't open definition file `%s': %s %s: couldn't open input file `%s': %s %s: couldn't open output file "%s"%s: error: undefined variable `%s' %s: illegal newline character specifier: '%s': expected 'n' or 'r' %s: illegal option -- %c %s: invalid option -- %c %s: malformed variable definition "%s" %s: no closing ')' for $() 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: ouf of memory%s: out of memory %s: panic: %s: primitive `%s': too few arguments for format %s: too long format for $D{} escape%s: too long format for %%D{} escape%s: too long variable name for $() escape%s: undefined state `%s' %s: undefined super state `%s' %s: unknown `$' escape `%c' (%d)%s: unknown `%%' escape `%c' (%d)%s: unknown warning level `%s' %s: unrecognized option `%c%s' %s: unrecognized option `--%s' %s: warning: font height is negative %s: warning: font size is negative %s: warning: font width is negative %s:%d: %%FooterHeight: no argument%s:%d: %%Format: name "%s" is already defined%s:%d: %%Format: no name%s:%d: %%Format: too long name, maxlen=%d%s:%d: %%HeaderHeight: no argument%s:%d: %s: argument %d doesn't match format %s:%d: %s: couldn't define state `%s' %s:%d: %s: illegal argument %s:%d: %s: illegal argument type %s:%d: %s: illegal regexp character syntax: %c %s:%d: %s: illegal type specifier `%c' %s:%d: %s: malformed version string `%s' %s:%d: %s: no extra options can be specified for %%s %s:%d: %s: offset out of range %s:%d: %s: start offset is bigger than end offset %s:%d: %s: too few arguments %s:%d: %s: too many arguments %s:%d: couldn't compile regular expression "%s": %s %s:%d: error: array reference index is not integer %s:%d: error: couldn't set variable `%s' %s:%d: error: expression between illegal types %s:%d: error: illegal lvalue for assignment %s:%d: error: illegal rvalue for string assignment %s:%d: error: illegal type for array reference %s:%d: error: negative array reference index %s:%d: error: too few arguments for subroutine %s:%d: error: too many arguments for subroutine %s:%d: error: undefined procedure `%s' %s:%d: error: undefined variable `%s' %s:%d: warning: redefining subroutine `%s' EPS file "%s" contains malformed %%%%BoundingBox row: "%.*s" EPS file "%s" does not start with "%%!" magic EPS file "%s" is not a valid EPS file EPS file "%s" is too large for page Highlighting is supported for the following languages and file formats: I did also try the following directories:Invalid back referenceInvalid character class nameInvalid collation characterInvalid content of \{\}Invalid preceding regular expressionInvalid range endInvalid regular expressionLong-only options: --color[=bool] create color outputs with states --continuous-page-numbers count page numbers across input files. Don't restart numbering at beginning of each file. --download-font=NAME download font NAME --extended-return-values enable extended return values --filter-stdin=NAME specify how stdin is shown to the input filter --footer=FOOTER set page footer --h-column-height=HEIGHT set the horizontal column height to HEIGHT --help print this help and exit Memory exhaustedN-up argument must be power of 2: %dNo matchNo previous regular expressionPremature end of regular expressionRegular expression too bigSuccessTable of ContentsThis is probably an installation error. Please, try to rebuild:Trailing backslashTry `%s --help' for more information. Unmatched ( or \(Unmatched ) or \)Unmatched [ or [^Unmatched \{Usage: %s [OPTION]... FILE... Mandatory arguments to long options are mandatory for short options too. -h, --help print this help and exit -p, --output-file=NAME print output to file NAME (default file is font.map). If FILE is `-', leavy output to stdout. -V, --version print version number Usage: %s [OPTION]... [FILE]... Mandatory arguments to long options are mandatory for short options too. couldn't close output file "%s": %scouldn't create AFM librarycouldn't create output file "%s": %scouldn't create temporary divert file: %scouldn't create temporary toc file: %scouldn't find encoding file "%s.enc": %s couldn't find header definition file "%s.hdr"couldn't find header definition file "%s.hdr": %s couldn't find prolog "%s": %s couldn't get passwd entry for uid=%d: %scouldn't open AFM file for font "%s", using default couldn't open AFM file for the default font: %scouldn't open AFM library: %scouldn't open EPS file "%s": %s couldn't open font description file "%s": %s couldn't open input file "%s": %scouldn't open input filter "%s" for file "%s": %scouldn't open printer `%s': %scouldn't read config file "%s/%s": %scouldn't rewind divert file: %scouldn't rewind toc file: %scouldn't stat input file "%s": %sdo not know anything about media "%s"downloading font "%s" error: EOF in commenterror: EOF in regular expressionerror: EOF in string constantfile alignment must be larger than zerofile=%s helper application specification must be single character: %sillegal N-up argument: %dillegal non-printable format "%s"illegal option %c for ^@epsf escapeillegal option: %sillegal page label format "%s"illegal style for wrapped line marker: "%s"illegal underlay style: %sillegal value "%s" for option %sinvalid value "%s" for option %sinvalid value for ^@bggray escape: %sinvalid value for ^@shade escape: %sknown media: name width height llx lly urx ury ------------------------------------------------------------ malformed %s escape: no '{' foundmalformed ^@epsf escape: no ']' after optionsmalformed ^@epsf escape: no '{' foundmalformed argument `%s' for option -W, --option: no comma foundmalformed color spec for ^@%s escape: %smalformed float dimension: "%s"malformed font spec for ^@font escape: %smalformed font spec: %smalformed underlay position: %smissing argument: %smissing character codes (decimal): must print at least one line per each page: %sno output generated non-printable character codes (decimal): number of columns must be larger than zerooutput left in %s output sent to %s passing through %s file "%s" passing through all input files for output language `%s' printerprocessing file "%s"... reading AFM info for font "%s" set new marginals for media `%s' (%dx%d): llx=%d, lly=%d, urx=%d, ury=%d slice must be greater than zerostates for %sstdoutsyntax error in option string %s="%s": missing end of quotation: %ctoo long argument for %s escape: %.*stoo long file name for ^@epsf escape: %.*struncatedunexpected EOF while scanning ^@epsf escapeunknown encoding: %sunknown special escape: %suser font encoding can be only the system's default or `ps'warning: didn't process following options from environment variable %s: warning: redefining state `%s'wrappedxcalloc(): couldn't allocate %d bytes xmalloc(): couldn't allocate %d bytes xrealloc(): couldn't reallocate %d bytes Project-Id-Version: enscript 1.6.5.2 Report-Msgid-Bugs-To: bug-enscript@gnu.org POT-Creation-Date: 2011-07-10 16:43+0100 PO-Revision-Date: 2011-01-12 13:55+0100 Last-Translator: Primož Peterlin Language-Team: Slovenian Language: sl MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8-bit Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n%100==4 ? 3 : 0); %s ../../lib ../lib ./configure --prefix=PREFIX make make check make distclean make install PoroÄila o napakah: <%s>. --help-highlight opiÅ¡i vse podprte jezike in zapise za --highlight --highlight-bar-gray=NUM stopnja sivine Ärt za poudarke (0 - 1) --list-media izpis vseh znanih formatov papirja --margins=LEVA:DESNA:VRH:DNO nastavi robove strani --mark-wrapped-lines[SLOG] s SLOGOM oznaÄi prelomljene vrstice na izhodu --non-printable-format=FMT kako naj se izpiÅ¡ejo non-printable znaki --nup-columnwise postavitev veÄ logiÄnih strani na stran v stolpcih --nup-xpad=NUM nastavi razmak v smeri x pri tiskanju »veÄ na stran« --nup-ypad=NUM nastavi razmak v smeri y pri tiskanju »veÄ na stran« --page-label-format=FMT nastavi obliko oznake strani na FMT --ps-level=LEVEL nastavi raven PostScripta, ki naj jo enscript uporabi --printer-options=IZBIRE posreduj dodatne izbire ukazu za tiskanje --rotate-even-pages obrni lihe strani za 180° --slice=NUM odtisni navpiÄne rezine velikosti NUM --style=SLOG uporabi navedeni SLOG za poudarke --swap-even-page-margins zamenjaj levi in desni rob pri lihih straneh --toc odtisni kazalo --ul-angle=KOT nastavi KOT izpisa podloženega besedila --ul-font=IME izberi IME pisave podloženega besedila --ul-gray=NUM nastavi stopnjo sivine podloženega besedila --ul-position=POLOŽAJ nastavi zaÄetni POLOŽAJ podloženega besedila --ul-style=SLOG odtisni podloženo besedilo v navedenem SLOGU --word-wrap razdeli predolge vrstice na meji besed -L, --lines-per-page=NUM Å¡tevilo vrstic besedila na strani -m, --mail sporoÄilo o opravljenem poslu po poÅ¡ti -M, --media=IME format papirja IME -n, --copies=NUM Å¡tevilo izvodov vsake strani -N, --newline=NL izbira znaka za konec vrstice. Možnosti za NL sta: n (»\n«) in r (»\r«). -o sopomenka za izbiro --output -O, --missing-characters seznam kod manjkajoÄih znakov -p, --output=IME zapis izhoda na datoteko z imenom IME. ÄŒe je ime »-«, zapis na standardni izhod. ÄŒe je IME ,-', izpis na standardni izhod. -P, --printer=IME odtis izhoda na tiskalnik IME -q, --quiet, --silent brez obvestil -r, --landscape podolžni odtis -R, --portrait pokonÄni odtis izbira %d = "%s" zapisanih na %s poslano na %s $3v $-40N $3% strani $4L vrstic $E $C%d znakov je manjkalo %d znak je manjkal %d znaka sta manjkala %d znaki so manjkali %d vrstic je bilo %s %d vrstica je bila %s %d vrstici sta bili %s %d vrstice so bile %s %d neizpisljivih znakov %d neizpisljiv znak %d neizpisljiva znaka %d neizpisljivi znaki %s: USODNA NAPAKA: za izvajanje tega skripta potrebujete vsaj razliÄico %s »states« %s: samodejno nalaganje »%s« iz »%s« %s: ni mogoÄe ustvariti izhodne datoteke "%s": %s %s: definicijske datoteke »%s« ni moÄ odpreti: %s %s: ni mogoÄe odpreti vhodne datoteke »%s«: %s %s: izhodne datoteke "%s" ni mogoÄe odpreti%s: napaka: nedefinirana spremenljivka »%s« %s: ,%s' ni dovoljeni znak za novo vrstico: ,n' ali ,r' sta %s: nedovoljena izbira -- %c %s: neveljavna izbira -- %c %s: skladenjska napaka pri definiciji spremenljivke "%s" %s: manjkajoÄ zaklepaj za ubežno zaporedje $()%s: izbira »%c%s« ne dovoljuje argumenta %s: izbira »%s« ni enopomenska %s: izbira »%s« zahteva argument %s: izbira »--%s« ne dovoljuje argumenta %s: izbira »-W %s« ne dovoljuje argumenta %s: izbira »-W %s« ni enopomenska %s: izbira zahteva argument -- %c %s: zmanjkalo pomnilnika%s: zmanjkalo pomnilnika %s: preplah: %s: primitiv »%s«: premalo argumentov za format %s: predolgo formatno doloÄilo za ubežno sekvenco $D{}%s: predolg format za ubežno zaporedje %%D{}%s: predolgo ime spremenljivke za ubežno zaporedje $()%s: nedoloÄeno stanje »%s« %s: nedefinirano superstanje »%s« %s: neprepoznano »$«-ubežno zaporedje »%c« (%d)%s: neprepoznano »%%«-ubežno zaporedje »%c« (%d)%s: neznana raven opozoril »%s« %s: neprepoznana izbira »%c%s« %s: neprepoznana izbira »--%s« %s: opozorilo: viÅ¡ina pisave je negativna %s: opozorilo: velikost pisave je negativna %s: opozorilo: Å¡irina pisave je negativna %s:%d: %%FooterHeight: manjkajoÄ argument%s:%d: %%Format: ime "%s" je že doloÄeno%s:%d: %%Format: manjkajoÄe ime%s:%d: %%Format: ime je predolgo, najveÄja dolžina je lahko %d%s:%d: %%HeaderHeight: manjkajoÄ argument%s:%d: %s: argument %d ne ustreza obliki %s:%d: %s: ni mogoÄe doloÄiti stanja »%s« %s:%d: %s: nedovoljen argument %s:%d: %s: nedovoljena vrsta argumenta %s:%d: %s: nedovoljena skladnja znakov regularnega izraza: %c %s:%d: %s: nedovoljeno doloÄilo tipa »%c« %s:%d: %s: skadenjska napaka v nizu razliÄice »%s« %s:%d: %s: %%s ne sprejema dodatnih izbir %s:%d: %s: odmik izven obsega %s:%d: %s: zaÄetni odmik je veÄji od konÄnega %s:%d: %s: premalo argumentov %s:%d: %s: preveÄ argumentov %s:%d: regularnega izraza "%s" ni mogoÄe prevesti: %s %s:%d: napaka: indeks polja ni celo Å¡tevilo %s:%d: napaka: spremenljivke »%s« ni mogoÄe nastaviti %s:%d: napaka: izraz med nedovoljenimi tipi %s:%d: napaka: nedovoljena vrednost leve strani prireditve %s:%d: napaka: nedovoljena vrednost na desni strani prireditve niza %s:%d: napaka: nedovoljen tip sklica na polje %s:%d: napaka: indeks polja je negativen %s:%d: napaka: premalo argumentov za podprogram %s:%d: napaka: preveÄ argumentov za podprogram %s:%d: napaka: nedefiniran podprogram »%s« %s:%d: napaka: nedefinirana spremenljivka »%s« %s:%d: opozorilo: redefiniramo podprogram »%s« Datoteka "%s" v obliki EPS vsebuje skladenjsko napaÄno vrstico %%%%BoundingBox: "%.*s" datoteka "%s" v obliki EPS se ne zaÄne z nizom "%%!" Datoteka "%s" ni v obliki EPS EPS datoteka "%s" je prevelika za stran Poudarjanje je podprto le za naslednje jezike in zapise datotek: Poskusili smo tudi v naslednjih imenikih:Neveljavna povratna zvezaNeveljavno ime razreda znakovNeveljaven razvrÅ¡Äevalni znakNeveljavna vsebina \{\}Neveljaven predhodni regularni izrazNeveljaven konec intervalaNeveljaven regularni izrazNaslednje izbire imajo samo dolgo obliko: --color[=bool] ustvari barvne izpise s stanji --continuous-page-numbers Å¡tevilke strani se nadaljujejo prek veÄ vhodnih datotek; ne zaÄni paginacije pri vsaki datoteki od 1. --download-font=IME naložimo pisavo IME --extended-return-values omogoÄi razÅ¡irjene izhodne kode --filter-stdin=IME kako je stdin predstavljen vhodnemu filtru --footer=NOGA nastavi nogo strani --h-column-height=VIÅ INA nastavi VIÅ INO vodoravnega stolpca --help ta navodila Zmanjkalo pomnilnikapri »N na stran« mora biti N potenca 2: %dBrez zadetkovManjkajoÄ predhodni regularni izrazPrezgodnji konec regularnega izrazaPrevelik regularni izrazUspeÅ¡noKazaloVerjetno gre za napako pri namestitvi. Prosimo, ponovno prevedite:ZakljuÄna nagibnicaPoskusite ,%s --help' za obÅ¡irnejÅ¡e informacije. Znak ( ali \( brez paraZnak ) ali \) brez paraZnak [ ali [^ brez paraZnak \{ brez paraUporaba: %s [IZBIRA]... DATOTEKA... Argumenti, obvezni za dolge oblike izbir, so obvezni tudi za kratke. -h, --help ta navodila -p, --output-file=IME zapiÅ¡i izhod na datoteko IME (privzeto ime je font.map). ÄŒe je DATOTEKA »-«, piÅ¡i na standardni izhod. -V, --version izpis izdaje programa Uporaba: %s [izbire] [datoteka] ... Argumenti, obvezni za dolge oblike izbir, so obvezni tudi za kratke. izhodne datoteke "%s" ni mogoÄe zapreti: %sknjižnice AFM ni mogoÄe ustvaritiizhodne datoteke "%s" ni mogoÄe zapisati: %spreusmerjene izhodne datoteke ni mogoÄe ustvariti: %szaÄasne datoteke s kazalom ni mogoÄe ustvariti: %skodne datoteke "%s.enc" ni moÄ najti: %s datoteke "%s.hdr" z definicijo glave ni mogoÄe najtidatoteke z definicijo glave "%s.hdr" ni moÄ najti: %s uvoda "%s" ni moÄ najti: %s passwd ne vsebuje podatkov za UID=%d: %sdatoteke AFM za pisavo "%s" ni moÄ odpreti, uporabljamo privzeto datoteke AFM za privzeto pisavo ni moÄ odpreti: %sknjižnice AFM ni mogoÄe odpreti: %sdatoteke "%s" v obliki EPS ni mogoÄe odpreti: %s datoteke z opisom pisave "%s" ni moÄ odpreti: %s vhodne datoteke "%s" ni mogoÄe odpreti: %svhodnega filtra "%s" za datoteko "%s" ni moÄ odpreti: %stiskalnik »%s« ni dostopen: %skonfiguracijske datoteke "%s/%s" ni mogoÄe prebrati: %spreusmerjene datoteke ni moÄ previti na zaÄetek: %skazala ni moÄ previti na zaÄetek: %sni moÄ priti do podatkov o datoteki "%s": %sformat papirja "%s" je neznannalagamo pisavo "%s" napaka: datoteka se konÄa sredi komentarjanapaka: datoteka se konÄa sredi regularnega izrazanapaka: datoteka se konÄa sredi alfanumeriÄne konstanteporavnava datotek mora biti veÄja od niÄdatoteka=%s doloÄitev pomožnega programa mora biti dolga en znak: %snedovoljen argument »N na stran«: %dnedovoljena ne-natisljiva oblika "%s"nedovoljena izbira %c za ubežno zaporedje ^@epsfnedovoljena izbira: %snedovoljena oznaka strani "%s"nedovoljen slog oznaÄevalca nadaljevane vrstice: "%s"nedovoljen slog podlage: %snedovoljena vrednost "%s" za izbiro %sneveljavna vrednost "%s" za izbiro %sneveljavna vrednost za ubežno zaporedje ^@bggray: %sneveljavna vrednost za ubežno zaporedje ^@shade: %sznani formati papirja: ime Å¡irina viÅ¡ina LLX LLY URX URY ------------------------------------------------------------ skladenjska napaka v ubežnem zaporedju %s: manjka »{«skladenjska napaka v ubežnem zaporedju ^@epsf: manjka »]« za izbiramiskladenjska napaka v ubežnem zaporedju ^@epsf: manjka »{«skladenjska napaka pri argumentu »%s« izbire -W, --izbira: manjkajoÄa vejicaskladenjska napaka v doloÄitvi barve za ubežno zaporedje ^@%s: %sskladenjska napaka dimenzije: "%s"skladenjska napaka v doloÄitvi pisave za ubežno zaporedje ^@font: %sslabo naveden font: %sskladenjska napaka pri položaju podlage: %smanjkajoÄ argument: %skode manjkajoÄih znakov (desetiÅ¡ko): na vsaki strani mora biti vsaj ena vrstica: %sbrez izpisa kode neizpisljivih znakov (desetiÅ¡ko): Å¡tevilo stolpcev mora biti veÄje od niÄizpis zapisan na %s izpis poslan na %s posredujemo %s datoteko "%s" posredujemo vse vhodne datoteke za izhodni jezik »%s« tiskalnikobdelujemo datoteko "%s"... beremo metriÄno datoteko AFM za pisavo "%s" nastavljeni novi robovi za medij »%s« (%d×%d): llx=%d, lly=%d, urx=%d, ury=%d rezina mora biti veÄja od niÄstanja za %sstandardni izhodskladenjska napaka pri izbiri %s="%s": manjka konÄni narekovaj: %cpredolg argument za ubežno zaporedje %s: %.*spredolgo ime datoteke za ubežno zaporedje ^@epsf: %.*sodrezanihnepriÄakovan znak EOF med branjem ubežnega zaporedja ^@epsfneznani kodni nabor: %sneprepoznano posebna ubežno zaporedje: %suporabniÅ¡ki nabor pisave je lahko le privzeta sistemska izbira ali »ps«pozor: naslednje izbire v spremenljivki %s niso bile obdelane: opozorilo: redefiniramo stanje »%s«nadaljevanih v naslednji vrsticixcalloc(): ni mogoÄe rezervirati %d bajtov pomnilnika xmalloc(): ni mogoÄe rezervirati %d bajtov pomnilnika xrealloc(): ni mogoÄe ponovno rezervirati %d bajtov pomnilnika enscript-1.6.5.90/po/sl.po0000644000175000017500000013363411606344232012131 00000000000000# -*- mode:po; coding:utf-8; -*- Slovenian messages for GNU enscript. # Copyright (C) 1996, 2005, 2007, 2011 Free Software Foundation, Inc. # This file is distributed under the same license as the enscript package. # Primož Peterlin , 1996, 2005, 2007, 2011. # # $Id: enscript-1.6.5.2.sl.po,v 1.3 2011/01/12 12:55:47 peterlin Exp $ # msgid "" msgstr "" "Project-Id-Version: enscript 1.6.5.2\n" "Report-Msgid-Bugs-To: bug-enscript@gnu.org\n" "POT-Creation-Date: 2011-07-10 16:43+0100\n" "PO-Revision-Date: 2011-01-12 13:55+0100\n" "Last-Translator: Primož Peterlin \n" "Language-Team: Slovenian \n" "Language: sl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8-bit\n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n" "%100==4 ? 3 : 0);\n" #: compat/getopt.c:628 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "%s: izbira »%s« ni enopomenska\n" #: compat/getopt.c:652 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "%s: izbira »--%s« ne dovoljuje argumenta\n" #: compat/getopt.c:657 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "%s: izbira »%c%s« ne dovoljuje argumenta\n" #: compat/getopt.c:674 compat/getopt.c:847 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "%s: izbira »%s« zahteva argument\n" #: compat/getopt.c:703 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "%s: neprepoznana izbira »--%s«\n" #: compat/getopt.c:707 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "%s: neprepoznana izbira »%c%s«\n" #: compat/getopt.c:733 #, c-format msgid "%s: illegal option -- %c\n" msgstr "%s: nedovoljena izbira -- %c\n" #: compat/getopt.c:736 #, c-format msgid "%s: invalid option -- %c\n" msgstr "%s: neveljavna izbira -- %c\n" #: compat/getopt.c:766 compat/getopt.c:896 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: izbira zahteva argument -- %c\n" #: compat/getopt.c:813 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "%s: izbira »-W %s« ni enopomenska\n" #: compat/getopt.c:831 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s: izbira »-W %s« ne dovoljuje argumenta\n" #: compat/xalloc.c:70 #, c-format msgid "xmalloc(): couldn't allocate %d bytes\n" msgstr "xmalloc(): ni mogoÄe rezervirati %d bajtov pomnilnika\n" #: compat/xalloc.c:88 #, c-format msgid "xcalloc(): couldn't allocate %d bytes\n" msgstr "xcalloc(): ni mogoÄe rezervirati %d bajtov pomnilnika\n" #: compat/xalloc.c:109 #, c-format msgid "xrealloc(): couldn't reallocate %d bytes\n" msgstr "xrealloc(): ni mogoÄe ponovno rezervirati %d bajtov pomnilnika\n" #: compat/regex.c:996 msgid "Success" msgstr "UspeÅ¡no" #: compat/regex.c:997 msgid "No match" msgstr "Brez zadetkov" #: compat/regex.c:998 msgid "Invalid regular expression" msgstr "Neveljaven regularni izraz" #: compat/regex.c:999 msgid "Invalid collation character" msgstr "Neveljaven razvrÅ¡Äevalni znak" #: compat/regex.c:1000 msgid "Invalid character class name" msgstr "Neveljavno ime razreda znakov" #: compat/regex.c:1001 msgid "Trailing backslash" msgstr "ZakljuÄna nagibnica" #: compat/regex.c:1002 msgid "Invalid back reference" msgstr "Neveljavna povratna zveza" #: compat/regex.c:1003 msgid "Unmatched [ or [^" msgstr "Znak [ ali [^ brez para" #: compat/regex.c:1004 msgid "Unmatched ( or \\(" msgstr "Znak ( ali \\( brez para" #: compat/regex.c:1005 msgid "Unmatched \\{" msgstr "Znak \\{ brez para" #: compat/regex.c:1006 msgid "Invalid content of \\{\\}" msgstr "Neveljavna vsebina \\{\\}" #: compat/regex.c:1007 msgid "Invalid range end" msgstr "Neveljaven konec intervala" #: compat/regex.c:1008 msgid "Memory exhausted" msgstr "Zmanjkalo pomnilnika" #: compat/regex.c:1009 msgid "Invalid preceding regular expression" msgstr "Neveljaven predhodni regularni izraz" #: compat/regex.c:1010 msgid "Premature end of regular expression" msgstr "Prezgodnji konec regularnega izraza" #: compat/regex.c:1011 msgid "Regular expression too big" msgstr "Prevelik regularni izraz" #: compat/regex.c:1012 msgid "Unmatched ) or \\)" msgstr "Znak ) ali \\) brez para" #: compat/regex.c:5458 msgid "No previous regular expression" msgstr "ManjkajoÄ predhodni regularni izraz" #: src/main.c:949 #, no-c-format msgid "$3v $-40N $3% pages $4L lines $E $C" msgstr "$3v $-40N $3% strani $4L vrstic $E $C" #: src/main.c:979 #, c-format msgid "couldn't get passwd entry for uid=%d: %s" msgstr "passwd ne vsebuje podatkov za UID=%d: %s" #: src/main.c:1071 #, c-format msgid "couldn't read config file \"%s/%s\": %s" msgstr "konfiguracijske datoteke \"%s/%s\" ni mogoÄe prebrati: %s" #: src/main.c:1075 msgid "I did also try the following directories:" msgstr "Poskusili smo tudi v naslednjih imenikih:" #: src/main.c:1076 src/main.c:1077 src/main.c:1078 #, c-format msgid "\t%s" msgstr "\t%s" #: src/main.c:1079 msgid "\t../lib" msgstr "\t../lib" #: src/main.c:1080 msgid "\t../../lib" msgstr "\t../../lib" #: src/main.c:1082 msgid "This is probably an installation error. Please, try to rebuild:" msgstr "Verjetno gre za napako pri namestitvi. Prosimo, ponovno prevedite:" #: src/main.c:1083 msgid "\tmake distclean" msgstr "\tmake distclean" #: src/main.c:1084 msgid "\t./configure --prefix=PREFIX" msgstr "\t./configure --prefix=PREFIX" #: src/main.c:1085 msgid "\tmake" msgstr "\tmake" #: src/main.c:1086 msgid "\tmake check" msgstr "\tmake check" #: src/main.c:1087 msgid "\tmake install" msgstr "\tmake install" #: src/main.c:1088 #, fuzzy msgid "" "or set the environment variable `ENSCRIPT_LIBRARY' to point to your library " "directory." msgstr "ali nastavite lupinsko spremenljivko »ENSCRIPT_LIBRARY« tako, da kaže" #: src/main.c:1161 #, c-format msgid "unknown encoding: %s" msgstr "neznani kodni nabor: %s" #: src/main.c:1180 #, c-format msgid "couldn't open AFM library: %s" msgstr "knjižnice AFM ni mogoÄe odpreti: %s" #: src/main.c:1209 #, c-format msgid "" "known media:\n" "name width\theight\tllx\tlly\turx\tury\n" "------------------------------------------------------------\n" msgstr "" "znani formati papirja:\n" "ime Å¡irina\tviÅ¡ina\tLLX\tLLY\tURX\tURY\n" "------------------------------------------------------------\n" #: src/main.c:1228 #, c-format msgid "do not know anything about media \"%s\"" msgstr "format papirja \"%s\" je neznan" #: src/main.c:1272 #, c-format msgid "" "set new marginals for media `%s' (%dx%d): llx=%d, lly=%d, urx=%d, ury=%d\n" msgstr "" "nastavljeni novi robovi za medij »%s« (%d×%d): llx=%d, lly=%d, urx=%d, ury=" "%d\n" #: src/main.c:1283 #, c-format msgid "illegal page label format \"%s\"" msgstr "nedovoljena oznaka strani \"%s\"" # POZOR!!! Tole je zelo grdo... #: src/main.c:1295 #, c-format msgid "illegal non-printable format \"%s\"" msgstr "nedovoljena ne-natisljiva oblika \"%s\"" #: src/main.c:1309 #, c-format msgid "illegal style for wrapped line marker: \"%s\"" msgstr "nedovoljen slog oznaÄevalca nadaljevane vrstice: \"%s\"" #: src/main.c:1319 #, c-format msgid "illegal N-up argument: %d" msgstr "nedovoljen argument »N na stran«: %d" #: src/main.c:1324 #, c-format msgid "N-up argument must be power of 2: %d" msgstr "pri »N na stran« mora biti N potenca 2: %d" # POZOR!!! #: src/main.c:1401 #, c-format msgid "malformed underlay position: %s" msgstr "skladenjska napaka pri položaju podlage: %s" # POZOR!!! #: src/main.c:1424 #, c-format msgid "illegal underlay style: %s" msgstr "nedovoljen slog podlage: %s" #: src/main.c:1451 #, c-format msgid "" "Highlighting is supported for the following languages and file formats:\n" "\n" msgstr "" "Poudarjanje je podprto le za naslednje jezike in zapise datotek:\n" "\n" #: src/main.c:1632 #, c-format msgid "couldn't create temporary toc file: %s" msgstr "zaÄasne datoteke s kazalom ni mogoÄe ustvariti: %s" #: src/main.c:1679 #, c-format msgid "couldn't stat input file \"%s\": %s" msgstr "ni moÄ priti do podatkov o datoteki \"%s\": %s" #: src/main.c:1699 #, c-format msgid "couldn't rewind toc file: %s" msgstr "kazala ni moÄ previti na zaÄetek: %s" #: src/main.c:1705 msgid "Table of Contents" msgstr "Kazalo" #: src/main.c:1731 msgid "no output generated\n" msgstr "brez izpisa\n" #: src/main.c:1736 #, c-format msgid "output sent to %s\n" msgstr "izpis poslan na %s\n" #: src/main.c:1737 src/main.c:1768 msgid "printer" msgstr "tiskalnik" #: src/main.c:1739 #, c-format msgid "output left in %s\n" msgstr "izpis zapisan na %s\n" #: src/main.c:1760 #, c-format msgid "%d page" msgid_plural "%d pages" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" #: src/main.c:1762 #, c-format msgid "%d copy" msgid_plural "%d copies" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" #: src/main.c:1767 #, c-format msgid " sent to %s\n" msgstr " poslano na %s\n" #: src/main.c:1770 #, c-format msgid " left in %s\n" msgstr " zapisanih na %s\n" #: src/main.c:1776 #, c-format msgid "%d line was %s\n" msgid_plural "%d lines were %s\n" msgstr[0] "%d vrstic je bilo %s\n" msgstr[1] "%d vrstica je bila %s\n" msgstr[2] "%d vrstici sta bili %s\n" msgstr[3] "%d vrstice so bile %s\n" #: src/main.c:1781 msgid "truncated" msgstr "odrezanih" #: src/main.c:1781 msgid "wrapped" msgstr "nadaljevanih v naslednji vrstici" #: src/main.c:1788 #, c-format msgid "%d character was missing\n" msgid_plural "%d characters were missing\n" msgstr[0] "%d znakov je manjkalo\n" msgstr[1] "%d znak je manjkal\n" msgstr[2] "%d znaka sta manjkala\n" msgstr[3] "%d znaki so manjkali\n" #: src/main.c:1794 msgid "missing character codes (decimal):\n" msgstr "kode manjkajoÄih znakov (desetiÅ¡ko):\n" #: src/main.c:1803 #, c-format msgid "%d non-printable character\n" msgid_plural "%d non-printable characters\n" msgstr[0] "%d neizpisljivih znakov\n" msgstr[1] "%d neizpisljiv znak\n" msgstr[2] "%d neizpisljiva znaka\n" msgstr[3] "%d neizpisljivi znaki\n" #: src/main.c:1810 msgid "non-printable character codes (decimal):\n" msgstr "kode neizpisljivih znakov (desetiÅ¡ko):\n" #: src/main.c:1859 #, c-format msgid "couldn't open printer `%s': %s" msgstr "tiskalnik »%s« ni dostopen: %s" #: src/main.c:1868 #, c-format msgid "couldn't create output file \"%s\": %s" msgstr "izhodne datoteke \"%s\" ni mogoÄe zapisati: %s" #: src/main.c:1885 #, c-format msgid "couldn't close output file \"%s\": %s" msgstr "izhodne datoteke \"%s\" ni mogoÄe zapreti: %s" #: src/main.c:1943 #, c-format msgid "" "syntax error in option string %s=\"%s\":\n" "missing end of quotation: %c" msgstr "" "skladenjska napaka pri izbiri %s=\"%s\":\n" "manjka konÄni narekovaj: %c" #: src/main.c:1975 #, c-format msgid "" "warning: didn't process following options from environment variable %s:\n" msgstr "pozor: naslednje izbire v spremenljivki %s niso bile obdelane:\n" #: src/main.c:1979 #, c-format msgid " option %d = \"%s\"\n" msgstr " izbira %d = \"%s\"\n" #: src/main.c:2025 msgid "number of columns must be larger than zero" msgstr "Å¡tevilo stolpcev mora biti veÄje od niÄ" #: src/main.c:2083 msgid "file alignment must be larger than zero" msgstr "poravnava datotek mora biti veÄja od niÄ" #: src/main.c:2138 src/main.c:2144 src/main.c:2355 src/util.c:416 #, c-format msgid "malformed font spec: %s" msgstr "slabo naveden font: %s" #: src/main.c:2160 #, c-format msgid "couldn't find header definition file \"%s.hdr\"" msgstr "datoteke \"%s.hdr\" z definicijo glave ni mogoÄe najti" #: src/main.c:2204 #, c-format msgid "must print at least one line per each page: %s" msgstr "na vsaki strani mora biti vsaj ena vrstica: %s" #: src/main.c:2224 #, c-format msgid "%s: illegal newline character specifier: '%s': expected 'n' or 'r'\n" msgstr "%s: ,%s' ni dovoljeni znak za novo vrstico: ,n' ali ,r' sta\n" #: src/main.c:2313 #, c-format msgid "malformed argument `%s' for option -W, --option: no comma found" msgstr "" "skladenjska napaka pri argumentu »%s« izbire -W, --izbira: manjkajoÄa vejica" #: src/main.c:2318 #, c-format msgid "helper application specification must be single character: %s" msgstr "doloÄitev pomožnega programa mora biti dolga en znak: %s" #: src/main.c:2414 msgid "slice must be greater than zero" msgstr "rezina mora biti veÄja od niÄ" #: src/main.c:2495 states/main.c:318 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Poskusite ,%s --help' za obÅ¡irnejÅ¡e informacije.\n" #: src/main.c:2515 #, fuzzy, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" "Mandatory arguments to long options are mandatory for short options too.\n" " -# an alias for option -n, --copies\n" " -1 same as --columns=1\n" " -2 same as --columns=2\n" " --columns=NUM specify the number of columns per page\n" " -a, --pages=PAGES specify which pages are printed\n" " -A, --file-align=ALIGN align separate input files to ALIGN\n" " -b, --header=HEADER set page header\n" " -B, --no-header no page headers\n" " -c, --truncate-lines cut long lines (default is to wrap)\n" " -C[START], --line-numbers[=START]\n" " precede each line with its line number\n" " -d an alias for option --printer\n" " -D, --setpagedevice=KEY[:VALUE]\n" " pass a page device definition to output\n" " -e[CHAR], --escapes[=CHAR] enable special escape interpretation\n" msgstr "" "Uporaba: %s [izbire] [datoteka] ...\n" "Argumenti, obvezni za dolge oblike izbir, so obvezni tudi za kratke.\n" " -# sopomenka za izbiro -n, --copies\n" " -1 isto kot --columns=1\n" " -2 isto kot --columns=2\n" " --columns=NUM Å¡tevilo stolpcev na strani\n" " -a, --pages=STRANI doloÄimo strani, ki naj se odtisnejo\n" " -b, --header=GLAVA naslovna glava na strani\n" " -B, --no-header brez naslovne glave\n" " -c, --truncate-lines predolge vrstice porezane (privzeta izbira\n" " je nadaljevanje v naslednji vrstici)\n" " -C, --line-numbers[=START] vsaka vrstica oznaÄena s Å¡tevilko vrstice\n" " -d sopomenka za izbiro --printer\n" " -D, --setpagedevice=KLJUÄŒ[:VREDNOST]\n" " definicijo naprave strani posredujemo na izhod\n" " -e, --escapes[=ZNAK] omogoÄenje posebnih ubežnih zaporedij\n" #: src/main.c:2535 #, fuzzy, c-format msgid " -E[LANG], --highlight[=LANG] highlight source code\n" msgstr " -E, --highlight[=JEZIK] poudarki izvorne kode\n" #: src/main.c:2538 #, fuzzy, c-format msgid "" " -f, --font=NAME use font NAME for body text\n" " -F, --header-font=NAME use font NAME for header texts\n" " -g, --print-anyway nothing (compatibility option)\n" " -G same as --fancy-header\n" " --fancy-header[=NAME] select fancy page header\n" " -h, --no-job-header suppress the job header page\n" " -H[NUM], --highlight-bars[=NUM] specify how high highlight bars are\n" " -i, --indent=NUM set line indent to NUM characters\n" " -I, --filter=CMD read input files through input filter CMD\n" " -j, --borders print borders around columns\n" " -J, an alias for option --title\n" " -k, --page-prefeed enable page prefeed\n" " -K, --no-page-prefeed disable page prefeed\n" " -l, --lineprinter simulate lineprinter, this is an alias for:\n" " --lines-per-page=66, --no-header, --" "portrait,\n" " --columns=1\n" msgstr "" " -f, --font=IME uporabimo font IME za glavno besedilo\n" " -F, --header-font=IME uporabimo font IME za naslovno glavo\n" " -g, --print-anyway niÄ (združljivost s prejÅ¡njimi verzijami)\n" " -G isto kot --fancy-header\n" " --fancy-header[=IME] izberemo razkoÅ¡nejÅ¡o naslovno glavo\n" " -h, --no-job-header brez uvodne strani\n" " -H, --highlight-bars=NUM viÅ¡ina oznaÄb za poudarjanje\n" " -i, --indent=NUM zamik levega roba NUM znakov\n" " -I, --filter=CMD pri branju vhodnih datotek uporabimo filter " "CMD\n" " -j, --borders okvirji okoli stolpcev pri odtisu v veÄ " "stolpcih\n" " -J sopomenka za izbiro --title\n" " -k, --page-prefeed omogoÄimo ,page prefeed'\n" " -K, --no-page-prefeed onemogoÄimo ,page prefeed'\n" " -l, --lineprinter imitacija vrstiÄnega tiskalnika; sopomenka za:\n" " --lines-per-page=66, --no-header, --" "portrait,\n" " --columns=1\n" #: src/main.c:2556 #, c-format msgid "" " -L, --lines-per-page=NUM specify how many lines are printed on each " "page\n" " -m, --mail send mail upon completion\n" " -M, --media=NAME use output media NAME\n" " -n, --copies=NUM print NUM copies of each page\n" " -N, --newline=NL select the newline character. Possible\n" " values for NL are: n (`\\n') and r (`\\r').\n" " -o an alias for option --output\n" " -O, --missing-characters list missing characters\n" " -p, --output=FILE leave output to file FILE. If FILE is `-',\n" " leave output to stdout.\n" " -P, --printer=NAME print output to printer NAME\n" " -q, --quiet, --silent be really quiet\n" " -r, --landscape print in landscape mode\n" " -R, --portrait print in portrait mode\n" msgstr "" " -L, --lines-per-page=NUM Å¡tevilo vrstic besedila na strani\n" " -m, --mail sporoÄilo o opravljenem poslu po poÅ¡ti\n" " -M, --media=IME format papirja IME\n" " -n, --copies=NUM Å¡tevilo izvodov vsake strani\n" " -N, --newline=NL izbira znaka za konec vrstice. Možnosti za NL\n" " sta: n (»\\n«) in r (»\\r«).\n" " -o sopomenka za izbiro --output\n" " -O, --missing-characters seznam kod manjkajoÄih znakov\n" " -p, --output=IME zapis izhoda na datoteko z imenom IME. ÄŒe je " "ime\n" " »-«, zapis na standardni izhod.\n" " ÄŒe je IME ,-', izpis na standardni izhod.\n" " -P, --printer=IME odtis izhoda na tiskalnik IME\n" " -q, --quiet, --silent brez obvestil\n" " -r, --landscape podolžni odtis\n" " -R, --portrait pokonÄni odtis\n" #: src/main.c:2572 #, fuzzy, c-format msgid "" " -s, --baselineskip=NUM set baselineskip to NUM\n" " -S, --statusdict=KEY[:VALUE]\n" " pass a statusdict definition to the output\n" " -t, --title=TITLE set banner page's job title to TITLE. Option\n" " sets also the name of the input file stdin.\n" " -T, --tabsize=NUM set tabulator size to NUM\n" " -u[TEXT], --underlay[=TEXT] print TEXT under every page\n" " -U, --nup=NUM print NUM logical pages on each output page\n" " -v, --verbose tell what we are doing\n" " -V, --version print version number\n" " -w, --language=LANG set output language to LANG\n" " -W, --options=APP,OPTION pass option OPTION to helper application APP\n" " -X, --encoding=NAME use input encoding NAME\n" " -z, --no-formfeed do not interpret form feed characters\n" " -Z, --pass-through pass through PostScript and PCL files\n" " without any modifications\n" msgstr "" " -s, --baselineskip=NUM razmik med vrsticami naj bo NUM (v 1/72\")\n" " -S, --statusdict=KLJUÄŒ[:VREDNOST]\n" " definicije »statusdict« posredujemo na izhod\n" " -t, --title=NASLOV nadnaslov, izpisan na vsaki strani. Izbira " "nastavi\n" " tudi ime vhodne datoteke standardni vhod.\n" " -T, --tabsize=NUM tabulator na NUM znakov (privzeto 8)\n" " -u, --underlay[=BESEDILO] besedilo, izpisano kot podloga na vsaki strani\n" " -U, --nup=NUM Å¡tevilo logiÄnih strani na vsaki strani " "papirja\n" " -v, --verbose z izÄrpnim poroÄilom med izvajanjem\n" " -V, --version izdaja programa\n" " -w, --language=JEZIK nastavi izhodni JEZIK\n" " -W, --options=PROG,IZBIRA posreduj IZBIRO pomožnemu programu PROG\n" " -X, --encoding=IME IME kodnega nabora vhodnega besedila\n" " -z, --no-formfeed v besedilu ignoriraj znake za skok na novo " "stran\n" " -Z, --pass-through datoteke v formatu PostScript ali PCL\n" " odtisni brez sprememb\n" #: src/main.c:2590 #, c-format msgid "" "Long-only options:\n" " --color[=bool] create color outputs with states\n" " --continuous-page-numbers count page numbers across input files. Don't\n" " restart numbering at beginning of each file.\n" " --download-font=NAME download font NAME\n" " --extended-return-values enable extended return values\n" " --filter-stdin=NAME specify how stdin is shown to the input filter\n" " --footer=FOOTER set page footer\n" " --h-column-height=HEIGHT set the horizontal column height to HEIGHT\n" " --help print this help and exit\n" msgstr "" "Naslednje izbire imajo samo dolgo obliko:\n" " --color[=bool] ustvari barvne izpise s stanji\n" " --continuous-page-numbers Å¡tevilke strani se nadaljujejo prek veÄ " "vhodnih\n" " datotek; ne zaÄni paginacije pri vsaki datoteki " "od 1.\n" " --download-font=IME naložimo pisavo IME\n" " --extended-return-values omogoÄi razÅ¡irjene izhodne kode\n" " --filter-stdin=IME kako je stdin predstavljen vhodnemu filtru\n" " --footer=NOGA nastavi nogo strani\n" " --h-column-height=VIÅ INA nastavi VIÅ INO vodoravnega stolpca\n" " --help ta navodila\n" #: src/main.c:2601 #, c-format msgid "" " --help-highlight describe all supported --highlight languages\n" " and file formats\n" " --highlight-bar-gray=NUM print highlight bars with gray NUM (0 - 1)\n" " --list-media list names of all known media\n" " --margins=LEFT:RIGHT:TOP:BOTTOM\n" " adjust page marginals\n" " --mark-wrapped-lines[STYLE]\n" " mark wrapped lines in the output with STYLE\n" " --non-printable-format=FMT specify how non-printable chars are printed\n" msgstr "" " --help-highlight opiÅ¡i vse podprte jezike in zapise za --" "highlight\n" " --highlight-bar-gray=NUM stopnja sivine Ärt za poudarke (0 - 1)\n" " --list-media izpis vseh znanih formatov papirja\n" " --margins=LEVA:DESNA:VRH:DNO\n" " nastavi robove strani\n" " --mark-wrapped-lines[SLOG] s SLOGOM oznaÄi prelomljene vrstice na izhodu\n" " --non-printable-format=FMT kako naj se izpiÅ¡ejo non-printable znaki\n" #: src/main.c:2612 #, c-format msgid "" " --nup-columnwise layout pages in the N-up printing columnwise\n" " --nup-xpad=NUM set the page x-padding of N-up printing to NUM\n" " --nup-ypad=NUM set the page y-padding of N-up printing to NUM\n" " --page-label-format=FMT set page label format to FMT\n" " --ps-level=LEVEL set the PostScript language level that " "enscript\n" " should use\n" " --printer-options=OPTIONS pass extra options to the printer command\n" " --rotate-even-pages rotate even-numbered pages 180 degrees\n" msgstr "" " --nup-columnwise postavitev veÄ logiÄnih strani na stran v " "stolpcih\n" " --nup-xpad=NUM nastavi razmak v smeri x pri tiskanju »veÄ na " "stran«\n" " --nup-ypad=NUM nastavi razmak v smeri y pri tiskanju »veÄ na " "stran«\n" " --page-label-format=FMT nastavi obliko oznake strani na FMT\n" " --ps-level=LEVEL nastavi raven PostScripta, ki naj jo enscript " "uporabi\n" " --printer-options=IZBIRE posreduj dodatne izbire ukazu za tiskanje\n" " --rotate-even-pages obrni lihe strani za 180°\n" #: src/main.c:2622 #, c-format msgid "" " --slice=NUM print vertical slice NUM\n" " --style=STYLE use highlight style STYLE\n" " --swap-even-page-margins swap left and right side margins for each even\n" " numbered page\n" " --toc print table of contents\n" " --ul-angle=ANGLE set underlay text's angle to ANGLE\n" " --ul-font=NAME print underlays with font NAME\n" " --ul-gray=NUM print underlays with gray value NUM\n" " --ul-position=POS set underlay's starting position to POS\n" " --ul-style=STYLE print underlays with style STYLE\n" " --word-wrap wrap long lines from word boundaries\n" msgstr "" " --slice=NUM odtisni navpiÄne rezine velikosti NUM\n" " --style=SLOG uporabi navedeni SLOG za poudarke\n" " --swap-even-page-margins zamenjaj levi in desni rob pri lihih straneh\n" " --toc odtisni kazalo\n" " --ul-angle=KOT nastavi KOT izpisa podloženega besedila\n" " --ul-font=IME izberi IME pisave podloženega besedila\n" " --ul-gray=NUM nastavi stopnjo sivine podloženega besedila\n" " --ul-position=POLOŽAJ nastavi zaÄetni POLOŽAJ podloženega besedila\n" " --ul-style=SLOG odtisni podloženo besedilo v navedenem SLOGU\n" " --word-wrap razdeli predolge vrstice na meji besed\n" #: src/main.c:2636 #, c-format msgid "" "\n" "Report bugs to <%s>.\n" msgstr "" "\n" "PoroÄila o napakah: <%s>.\n" #: src/psgen.c:331 #, c-format msgid "couldn't find prolog \"%s\": %s\n" msgstr "uvoda \"%s\" ni moÄ najti: %s\n" #: src/psgen.c:339 #, c-format msgid "couldn't find encoding file \"%s.enc\": %s\n" msgstr "kodne datoteke \"%s.enc\" ni moÄ najti: %s\n" #: src/psgen.c:471 #, c-format msgid "couldn't find header definition file \"%s.hdr\": %s\n" msgstr "datoteke z definicijo glave \"%s.hdr\" ni moÄ najti: %s\n" #: src/psgen.c:615 #, c-format msgid "processing file \"%s\"...\n" msgstr "obdelujemo datoteko \"%s\"...\n" #: src/psgen.c:913 #, c-format msgid "EPS file \"%s\" is too large for page\n" msgstr "EPS datoteka \"%s\" je prevelika za stran\n" #: src/psgen.c:986 msgid "user font encoding can be only the system's default or `ps'" msgstr "" "uporabniÅ¡ki nabor pisave je lahko le privzeta sistemska izbira ali »ps«" #: src/psgen.c:1228 #, c-format msgid "unknown special escape: %s" msgstr "neprepoznano posebna ubežno zaporedje: %s" #: src/psgen.c:1354 #, c-format msgid "illegal option %c for ^@epsf escape" msgstr "nedovoljena izbira %c za ubežno zaporedje ^@epsf" #: src/psgen.c:1360 msgid "malformed ^@epsf escape: no ']' after options" msgstr "skladenjska napaka v ubežnem zaporedju ^@epsf: manjka »]« za izbirami" #: src/psgen.c:1372 #, c-format msgid "" "too long file name for ^@epsf escape:\n" "%.*s" msgstr "" "predolgo ime datoteke za ubežno zaporedje ^@epsf:\n" "%.*s" #: src/psgen.c:1376 msgid "unexpected EOF while scanning ^@epsf escape" msgstr "nepriÄakovan znak EOF med branjem ubežnega zaporedja ^@epsf" #: src/psgen.c:1382 msgid "malformed ^@epsf escape: no '{' found" msgstr "skladenjska napaka v ubežnem zaporedju ^@epsf: manjka »{«" #: src/psgen.c:1440 #, c-format msgid "malformed %s escape: no '{' found" msgstr "skladenjska napaka v ubežnem zaporedju %s: manjka »{«" #: src/psgen.c:1454 #, c-format msgid "" "too long argument for %s escape:\n" "%.*s" msgstr "" "predolg argument za ubežno zaporedje %s:\n" "%.*s" #: src/psgen.c:1474 #, c-format msgid "malformed font spec for ^@font escape: %s" msgstr "skladenjska napaka v doloÄitvi pisave za ubežno zaporedje ^@font: %s" #: src/psgen.c:1511 #, c-format msgid "malformed color spec for ^@%s escape: %s" msgstr "skladenjska napaka v doloÄitvi barve za ubežno zaporedje ^@%s: %s" #: src/psgen.c:1535 #, c-format msgid "invalid value for ^@shade escape: %s" msgstr "neveljavna vrednost za ubežno zaporedje ^@shade: %s" #: src/psgen.c:1543 #, c-format msgid "invalid value for ^@bggray escape: %s" msgstr "neveljavna vrednost za ubežno zaporedje ^@bggray: %s" #: src/psgen.c:2412 #, c-format msgid "couldn't open EPS file \"%s\": %s\n" msgstr "datoteke \"%s\" v obliki EPS ni mogoÄe odpreti: %s\n" #: src/psgen.c:2448 #, c-format msgid "EPS file \"%s\" does not start with \"%%!\" magic\n" msgstr "datoteka \"%s\" v obliki EPS se ne zaÄne z nizom \"%%!\"\n" #: src/psgen.c:2473 #, c-format msgid "" "EPS file \"%s\" contains malformed %%%%BoundingBox row:\n" "\"%.*s\"\n" msgstr "" "Datoteka \"%s\" v obliki EPS vsebuje skladenjsko napaÄno vrstico %%" "%%BoundingBox:\n" "\"%.*s\"\n" #: src/psgen.c:2498 #, c-format msgid "EPS file \"%s\" is not a valid EPS file\n" msgstr "Datoteka \"%s\" ni v obliki EPS\n" #: src/psgen.c:2640 #, c-format msgid "passing through all input files for output language `%s'\n" msgstr "posredujemo vse vhodne datoteke za izhodni jezik »%s«\n" #: src/psgen.c:2692 #, c-format msgid "passing through %s file \"%s\"\n" msgstr "posredujemo %s datoteko \"%s\"\n" #: src/psgen.c:2795 #, c-format msgid "couldn't create temporary divert file: %s" msgstr "preusmerjene izhodne datoteke ni mogoÄe ustvariti: %s" #: src/psgen.c:2812 #, c-format msgid "couldn't rewind divert file: %s" msgstr "preusmerjene datoteke ni moÄ previti na zaÄetek: %s" #: src/util.c:93 #, c-format msgid "missing argument: %s" msgstr "manjkajoÄ argument: %s" #: src/util.c:186 src/util.c:214 #, c-format msgid "illegal value \"%s\" for option %s" msgstr "nedovoljena vrednost \"%s\" za izbiro %s" #: src/util.c:202 #, c-format msgid "invalid value \"%s\" for option %s" msgstr "neveljavna vrednost \"%s\" za izbiro %s" #: src/util.c:440 #, c-format msgid "illegal option: %s" msgstr "nedovoljena izbira: %s" #: src/util.c:619 #, c-format msgid "%s:%d: %%Format: no name" msgstr "%s:%d: %%Format: manjkajoÄe ime" #: src/util.c:630 #, c-format msgid "%s:%d: %%Format: too long name, maxlen=%d" msgstr "%s:%d: %%Format: ime je predolgo, najveÄja dolžina je lahko %d" #: src/util.c:653 #, c-format msgid "%s:%d: %%Format: name \"%s\" is already defined" msgstr "%s:%d: %%Format: ime \"%s\" je že doloÄeno" #: src/util.c:674 #, c-format msgid "%s:%d: %%HeaderHeight: no argument" msgstr "%s:%d: %%HeaderHeight: manjkajoÄ argument" #: src/util.c:696 #, c-format msgid "%s:%d: %%FooterHeight: no argument" msgstr "%s:%d: %%FooterHeight: manjkajoÄ argument" #: src/util.c:843 #, c-format msgid "%s: warning: font size is negative\n" msgstr "%s: opozorilo: velikost pisave je negativna\n" #: src/util.c:845 #, c-format msgid "%s: warning: font width is negative\n" msgstr "%s: opozorilo: Å¡irina pisave je negativna\n" #: src/util.c:847 #, c-format msgid "%s: warning: font height is negative\n" msgstr "%s: opozorilo: viÅ¡ina pisave je negativna\n" #: src/util.c:866 #, c-format msgid "reading AFM info for font \"%s\"\n" msgstr "beremo metriÄno datoteko AFM za pisavo \"%s\"\n" #: src/util.c:899 #, c-format msgid "couldn't open AFM file for font \"%s\", using default\n" msgstr "datoteke AFM za pisavo \"%s\" ni moÄ odpreti, uporabljamo privzeto\n" #: src/util.c:906 #, c-format msgid "couldn't open AFM file for the default font: %s" msgstr "datoteke AFM za privzeto pisavo ni moÄ odpreti: %s" #: src/util.c:1095 #, c-format msgid "downloading font \"%s\"\n" msgstr "nalagamo pisavo \"%s\"\n" #: src/util.c:1100 #, c-format msgid "couldn't open font description file \"%s\": %s\n" msgstr "datoteke z opisom pisave \"%s\" ni moÄ odpreti: %s\n" #: src/util.c:1392 #, c-format msgid "%s: too long format for %%D{} escape" msgstr "%s: predolg format za ubežno zaporedje %%D{}" #: src/util.c:1477 #, c-format msgid "%s: unknown `%%' escape `%c' (%d)" msgstr "%s: neprepoznano »%%«-ubežno zaporedje »%c« (%d)" #: src/util.c:1515 #, c-format msgid "%s: no closing ')' for $() escape" msgstr "%s: manjkajoÄ zaklepaj za ubežno zaporedje $()" #: src/util.c:1518 #, c-format msgid "%s: too long variable name for $() escape" msgstr "%s: predolgo ime spremenljivke za ubežno zaporedje $()" #: src/util.c:1545 #, c-format msgid "%s: too long format for $D{} escape" msgstr "%s: predolgo formatno doloÄilo za ubežno sekvenco $D{}" #: src/util.c:1633 #, c-format msgid "%s: unknown `$' escape `%c' (%d)" msgstr "%s: neprepoznano »$«-ubežno zaporedje »%c« (%d)" #: src/util.c:1824 #, c-format msgid "malformed float dimension: \"%s\"" msgstr "skladenjska napaka dimenzije: \"%s\"" #: src/util.c:1946 #, c-format msgid "couldn't open input filter \"%s\" for file \"%s\": %s" msgstr "vhodnega filtra \"%s\" za datoteko \"%s\" ni moÄ odpreti: %s" #: src/util.c:1963 #, c-format msgid "couldn't open input file \"%s\": %s" msgstr "vhodne datoteke \"%s\" ni mogoÄe odpreti: %s" #: src/mkafmmap.c:167 #, c-format msgid "file=%s\n" msgstr "datoteka=%s\n" #: src/mkafmmap.c:167 msgid "stdout" msgstr "standardni izhod" #: src/mkafmmap.c:175 #, c-format msgid "%s: couldn't open output file \"%s\"" msgstr "%s: izhodne datoteke \"%s\" ni mogoÄe odpreti" #: src/mkafmmap.c:189 msgid "couldn't create AFM library" msgstr "knjižnice AFM ni mogoÄe ustvariti" #: src/mkafmmap.c:238 #, c-format msgid "" "Usage: %s [OPTION]... FILE...\n" "Mandatory arguments to long options are mandatory for short options too.\n" " -h, --help print this help and exit\n" " -p, --output-file=NAME print output to file NAME (default file is\n" " font.map). If FILE is `-', leavy output to\n" " stdout.\n" " -V, --version print version number\n" msgstr "" "Uporaba: %s [IZBIRA]... DATOTEKA...\n" "Argumenti, obvezni za dolge oblike izbir, so obvezni tudi za kratke.\n" " -h, --help ta navodila\n" " -p, --output-file=IME zapiÅ¡i izhod na datoteko IME (privzeto ime je \n" " font.map). ÄŒe je DATOTEKA »-«, piÅ¡i na standardni " "izhod.\n" " -V, --version izpis izdaje programa\n" #: states/lex.l:167 states/lex.l:173 msgid "error: EOF in comment" msgstr "napaka: datoteka se konÄa sredi komentarja" #: states/lex.l:204 msgid "error: EOF in string constant" msgstr "napaka: datoteka se konÄa sredi alfanumeriÄne konstante" #: states/lex.l:311 msgid "error: EOF in regular expression" msgstr "napaka: datoteka se konÄa sredi regularnega izraza" # Je to res to? #: states/main.c:197 #, c-format msgid "states for %s" msgstr "stanja za %s" #: states/main.c:252 #, c-format msgid "%s: malformed variable definition \"%s\"\n" msgstr "%s: skladenjska napaka pri definiciji spremenljivke \"%s\"\n" #: states/main.c:280 #, c-format msgid "%s: couldn't create output file \"%s\": %s\n" msgstr "%s: ni mogoÄe ustvariti izhodne datoteke \"%s\": %s\n" #: states/main.c:311 #, c-format msgid "%s: unknown warning level `%s'\n" msgstr "%s: neznana raven opozoril »%s«\n" #: states/main.c:360 states/main.c:396 states/prims.c:1375 states/utils.c:227 #, c-format msgid "%s: out of memory\n" msgstr "%s: zmanjkalo pomnilnika\n" #: states/main.c:421 #, c-format msgid "%s: couldn't open input file `%s': %s\n" msgstr "%s: ni mogoÄe odpreti vhodne datoteke »%s«: %s\n" #: states/main.c:445 #, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Uporaba: %s [izbire] [datoteka] ...\n" "Argumenti, obvezni za dolge oblike izbir, so obvezni tudi za kratke.\n" #: states/main.c:449 #, fuzzy, c-format msgid "" " -D, --define=VAR=VAL define variable VAR to have value VAL\n" " -f, --file=NAME read state definitions from file NAME\n" " -h, --help print this help and exit\n" " -o, --output=NAME save output to file NAME\n" " -p, --path=PATH set the load path to PATH\n" " -s, --state=NAME start from state NAME\n" " -v, --verbose increase the program verbosity\n" " -V, --version print version number\n" " -W, --warning=LEVEL set the warning level to LEVEL\n" msgstr "" " -D, --define=SPR=VRED nastavi vrednost spremenljivke SPR na VRED\n" " -f, --file=DATOTEKA preberi definicije stanja iz navedene DATOTEKE\n" " -h, --help izpis te pomoÄi in izhod\n" " -o, --output=DATOTEKA shrani izhod v navedeno DATOTEKO\n" " -p, --path=POT nastavi nalagalno POT\n" " -s, --state=IME zaÄni iz navedenega stanja\n" " -v, --verbose poveÄaj izÄrpnost poroÄil med izvajanjem\n" " -V, --version izpis razliÄice programa\n" " -W, --warning=RAVEN nastavi RAVEN opozoril\n" #: states/prims.c:44 #, c-format msgid "%s:%d: %s: too few arguments\n" msgstr "%s:%d: %s: premalo argumentov\n" #: states/prims.c:54 #, c-format msgid "%s:%d: %s: too many arguments\n" msgstr "%s:%d: %s: preveÄ argumentov\n" #: states/prims.c:107 states/prims.c:127 states/prims.c:253 states/prims.c:426 #: states/prims.c:901 #, c-format msgid "%s:%d: %s: illegal argument type\n" msgstr "%s:%d: %s: nedovoljena vrsta argumenta\n" #: states/prims.c:468 #, c-format msgid "%s: panic: " msgstr "%s: preplah: " #: states/prims.c:502 #, c-format msgid "%s:%d: %s: malformed version string `%s'\n" msgstr "%s:%d: %s: skadenjska napaka v nizu razliÄice »%s«\n" #: states/prims.c:517 #, c-format msgid "" "%s: FATAL ERROR: States version %s or higher is required for this script\n" msgstr "" "%s: USODNA NAPAKA: za izvajanje tega skripta potrebujete vsaj razliÄico %s " "»states«\n" #: states/prims.c:608 states/prims.c:1274 #, c-format msgid "%s:%d: %s: start offset is bigger than end offset\n" msgstr "%s:%d: %s: zaÄetni odmik je veÄji od konÄnega\n" #: states/prims.c:617 states/prims.c:633 states/prims.c:1280 #, c-format msgid "%s:%d: %s: offset out of range\n" msgstr "%s:%d: %s: odmik izven obsega\n" #: states/prims.c:651 #, c-format msgid "%s:%d: %s: illegal argument\n" msgstr "%s:%d: %s: nedovoljen argument\n" #: states/prims.c:698 #, c-format msgid "%s:%d: %s: illegal regexp character syntax: %c\n" msgstr "%s:%d: %s: nedovoljena skladnja znakov regularnega izraza: %c\n" #: states/prims.c:913 #, c-format msgid "%s:%d: %s: couldn't define state `%s'\n" msgstr "%s:%d: %s: ni mogoÄe doloÄiti stanja »%s«\n" #: states/prims.c:1010 #, c-format msgid "%s: primitive `%s': too few arguments for format\n" msgstr "%s: primitiv »%s«: premalo argumentov za format\n" #: states/prims.c:1038 #, c-format msgid "%s:%d: %s: argument %d doesn't match format\n" msgstr "%s:%d: %s: argument %d ne ustreza obliki\n" #: states/prims.c:1078 #, c-format msgid "%s:%d: %s: no extra options can be specified for %%s\n" msgstr "%s:%d: %s: %%s ne sprejema dodatnih izbir\n" #: states/prims.c:1087 #, c-format msgid "%s:%d: %s: illegal type specifier `%c'\n" msgstr "%s:%d: %s: nedovoljeno doloÄilo tipa »%c«\n" #: states/process.c:115 #, c-format msgid "%s: undefined state `%s'\n" msgstr "%s: nedoloÄeno stanje »%s«\n" #: states/process.c:196 #, c-format msgid "%s: error: undefined variable `%s'\n" msgstr "%s: napaka: nedefinirana spremenljivka »%s«\n" #: states/process.c:290 #, c-format msgid "%s: undefined super state `%s'\n" msgstr "%s: nedefinirano superstanje »%s«\n" #: states/utils.c:260 #, c-format msgid "%s:%d: couldn't compile regular expression \"%s\": %s\n" msgstr "%s:%d: regularnega izraza \"%s\" ni mogoÄe prevesti: %s\n" #: states/utils.c:449 states/utils.c:477 #, c-format msgid "%s: ouf of memory" msgstr "%s: zmanjkalo pomnilnika" #: states/utils.c:454 #, c-format msgid "warning: redefining state `%s'" msgstr "opozorilo: redefiniramo stanje »%s«" #: states/utils.c:481 #, c-format msgid "%s:%d: warning: redefining subroutine `%s'\n" msgstr "%s:%d: opozorilo: redefiniramo podprogram »%s«\n" #: states/utils.c:578 #, c-format msgid "%s:%d: error: undefined variable `%s'\n" msgstr "%s:%d: napaka: nedefinirana spremenljivka »%s«\n" #: states/utils.c:616 #, c-format msgid "%s:%d: error: couldn't set variable `%s'\n" msgstr "%s:%d: napaka: spremenljivke »%s« ni mogoÄe nastaviti\n" #: states/utils.c:767 #, c-format msgid "%s:%d: error: expression between illegal types\n" msgstr "%s:%d: napaka: izraz med nedovoljenimi tipi\n" #: states/utils.c:865 #, c-format msgid "%s:%d: error: too few arguments for subroutine\n" msgstr "%s:%d: napaka: premalo argumentov za podprogram\n" #: states/utils.c:872 #, c-format msgid "%s:%d: error: too many arguments for subroutine\n" msgstr "%s:%d: napaka: preveÄ argumentov za podprogram\n" #: states/utils.c:926 #, c-format msgid "%s:%d: error: undefined procedure `%s'\n" msgstr "%s:%d: napaka: nedefiniran podprogram »%s«\n" #: states/utils.c:1018 #, c-format msgid "%s:%d: error: illegal lvalue for assignment\n" msgstr "%s:%d: napaka: nedovoljena vrednost leve strani prireditve\n" #: states/utils.c:1026 states/utils.c:1110 #, c-format msgid "%s:%d: error: array reference index is not integer\n" msgstr "%s:%d: napaka: indeks polja ni celo Å¡tevilo\n" #: states/utils.c:1032 #, c-format msgid "%s:%d: error: negative array reference index\n" msgstr "%s:%d: napaka: indeks polja je negativen\n" #: states/utils.c:1083 #, c-format msgid "%s:%d: error: illegal rvalue for string assignment\n" msgstr "%s:%d: napaka: nedovoljena vrednost na desni strani prireditve niza\n" #: states/utils.c:1102 #, c-format msgid "%s:%d: error: illegal type for array reference\n" msgstr "%s:%d: napaka: nedovoljen tip sklica na polje\n" #: states/utils.c:1119 #, fuzzy, c-format msgid "%s:%d: error: array reference index out of range\n" msgstr "%s:%d: napaka: indeks polja izven obsega\n" #: states/utils.c:1345 #, c-format msgid "%s: couldn't open definition file `%s': %s\n" msgstr "%s: definicijske datoteke »%s« ni moÄ odpreti: %s\n" #: states/utils.c:1401 #, c-format msgid "%s: autoloading `%s' from `%s'\n" msgstr "%s: samodejno nalaganje »%s« iz »%s«\n" #~ msgid "library directory." #~ msgstr "na vaÅ¡ imenik s knjižnicami." #~ msgid "[ %d pages * %d copy ]" #~ msgstr "[ %d strani × %d kopij ]" #~ msgid "epsf: couldn't open pipe to command \"%s\": %s\n" #~ msgstr "epsf: cevovoda ni mogoÄe napeljati do ukaza \"%s\": %s\n" #, fuzzy #~ msgid "couldn't create toc file name: %s" #~ msgstr "preusmerjene izhodne datoteke ni mogoÄe zapisati: %s" #, fuzzy #~ msgid "couldn't create divert file \"%s\": %s" #~ msgstr "preusmerjene izhodne datoteke \"%s\" ni mogoÄe zapisati: %s" #, fuzzy #~ msgid "" #~ "Long-only options:\n" #~ " --download-font=NAME download font NAME\n" #~ " --filter-stdin=NAME specify how stdin is shown to the input " #~ "filter\n" #~ " --help print this help and exit\n" #~ " --highlight-bar-gray=NUM print highlight bars with gray NUM (0 - 1)\n" #~ " --list-media list names of all known media\n" #~ " --list-options list all options and their values\n" #~ " --non-printable-format=FMT specify how non-printable chars are printed\n" #~ " --page-label-format=FMT set page label format to FMT\n" #~ " --printer-options=OPTIONS pass extra options to the printer command\n" #~ " --ul-angle=ANGLE set underlay text's angle to ANGLE\n" #~ " --ul-font=NAME print underlays with font NAME\n" #~ " --ul-gray=NUM print underlays with gray value NUM\n" #~ " --ul-position=POS set underlay's starting position to POS\n" #~ " --ul-style=STYLE print underlays with style STYLE\n" #~ msgstr "" #~ "Naslednje izbire imajo samo dolgo obliko:\n" #~ " --download-font=IME naložimo font IME\n" #~ " --filter-stdin=IME kako je stdin predstavljen vhodnemu filtru\n" #~ " --help ta navodila\n" #~ " --highlight-bar-gray=NUM stopnja sivine Ärt za poudarke (0 - 1)\n" #~ " --list-media izpis vseh znanih formatov papirja\n" #~ " --list-options izpis nastavitev programa\n" #~ " --non-printable-format=FMT kako naj se izpiÅ¡ejo non-printable znaki\n" #~ " --page-label-format=FMT doloÄimo, kako se izpiÅ¡e oznaka strani\n" #~ " --printer-options=IZBIRE dodatne izbire, ki jih podamo tiskalniku\n" #~ " --ul-angle=KOT KOT, pod katerim naj se izpiÅ¡e besedilo v " #~ "podlagi\n" #~ " --ul-font=IME font, v katerem se izpiÅ¡e besedilo v " #~ "podlagi\n" #~ " --ul-gray=NUM stopnja sivine za besedilo v podlagi (0 - " #~ "1)\n" #~ " --ul-position=POS podlaga naj se zaÄne na mestu POS\n" #~ " --ul-style=STIL STIL, uporabljen za izpis podlage\n" #~ msgid "" #~ " -f NAME, --font=NAME\t\tuse font NAME for body text\n" #~ " -F NAME, --header-font=NAME\tuse font NAME for header texts\n" #~ " -g, --print-anyway\t\tnothing (compatibility option)\n" #~ " -G, --fancy-header[=NAME]\tselect fancy page header\n" #~ " -h, --help\t\t\tprint this help and exit\n" #~ " -i NUM, --indent=NUM\t\tset line indent to NUM\n" #~ " -l, --lineprinter\t\tsimulate lineprinter:\n" #~ "\t\t\t \t --lines-per-page=65, --no-header,\n" #~ "\t\t\t\t --portrait, --columns=1\n" #~ " -L NUM, --lines-per-page=NUM\tspecify how many lines are printed on\n" #~ "\t\t\t\teach page\n" #~ " -m, --mail\t\t\tsend mail upon completion\n" #~ msgstr "" #~ " -f IME, --font=IME\t\tuporabimo font IME za glavno besedilo\n" #~ " -F IME, --header-font=IME\tuporabimo font IME za glavo\n" #~ " -g, --print-anyway\t\tniÄ (zaradi združljivosti)\n" #~ " -G, --fancy-header[=IME]\tizbira izumetniÄene glave\n" #~ " -h, --help\t\t\tta navodila\n" #~ " -i NUM, --indent=NUM\t\tNUM znakov zamika na levem robu\n" #~ " -l, --lineprinter\t\timitacija vrstiÄnega tiskalnika:\n" #~ "\t\t\t \t --lines-per-page=65, --no-header,\n" #~ "\t\t\t\t --portrait, --columns=1\n" #~ " -L NUM, --lines-per-page=NUM\tkoliko vrstic besedila na stran\n" #~ " -m, --mail\t\t\tsporoÄilo o opravljenem poslu po poÅ¡ti\n" #~ msgid "" #~ "too long font name for ^@font escape:\n" #~ "%.*s" #~ msgstr "" #~ "predolgo ime datoteke za ubežno sekvenco ^@font:\n" #~ "%.*s" #~ msgid "malformed ^@font escape: no '{' found" #~ msgstr "slabo definirana ubežna sekvenca ^@font: manjka ,{'" enscript-1.6.5.90/po/es.gmo0000644000175000017500000002652411606344232012265 00000000000000Þ•Y䬨;©å ù  $ C8 | – !° ,Ò ÿ % ,C &p #— $» )à !+ M m " -° Þ )÷ "!=D.‚&±$Øý&$6)[-…2³æ(4./c“ ±-Ò!1"Ts“!°%Òø'!7#Y}¯ Ê ë$ x1!ª-Ì%ú )@j‚#¢.Æ)õ=E^~Cž%â* 3+=i~H™â&ê&)8pbíÓÁÕæ'öFe„0 0Ñ)!0K*|<§=äF"1i2›Îí$ 31 e K $Í Dò 47!0l!7!Õ!)Ü!."85"En"J´"%ÿ"I%#Xo#2È#&û#)"$AL$/Ž$C¾$*%,-%2Z%2%$À%å%1þ%,0&9]&—&3­&-á&'')7'8a'€š'2(HN(6—()Î(Gø('@).h)3—)6Ë)7*%:* `*m*/Œ*$¼*`á*>B+J+Ì+SÕ+),,F,Qs, Å,+Ï,)û,.%-8BA?-JQ *#F'Y%X(TK:G);19 36C>"NV= .HW 0S5R &,42EO$/<U!@+MIDLP7 -L, --lines-per-page=NUM specify how many lines are printed on each page -m, --mail send mail upon completion -M, --media=NAME use output media NAME -n, --copies=NUM print NUM copies of each page -N, --newline=NL select the newline character. Possible values for NL are: n (`\n') and r (`\r'). -o an alias for option --output -O, --missing-characters list missing characters -p, --output=FILE leave output to file FILE. If FILE is `-', leave output to stdout. -P, --printer=NAME print output to printer NAME -q, --quiet, --silent be really quiet -r, --landscape print in landscape mode -R, --portrait print in portrait mode option %d = "%s" left in %s sent to %s $3v $-40N $3% pages $4L lines $E $C%s: illegal newline character specifier: '%s': expected 'n' or 'r' %s: illegal option -- %c %s: invalid option -- %c %s: no closing ')' for $() 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 requires an argument -- %c %s: too long format for $D{} escape%s: too long format for %%D{} escape%s: too long variable name for $() escape%s: unknown `$' escape `%c' (%d)%s: unknown `%%' escape `%c' (%d)%s: unrecognized option `%c%s' %s: unrecognized option `--%s' %s:%d: %%FooterHeight: no argument%s:%d: %%Format: name "%s" is already defined%s:%d: %%Format: no name%s:%d: %%Format: too long name, maxlen=%d%s:%d: %%HeaderHeight: no argumentEPS file "%s" contains malformed %%%%BoundingBox row: "%.*s" EPS file "%s" does not start with "%%!" magic EPS file "%s" is not a valid EPS file EPS file "%s" is too large for page Table of ContentsTry `%s --help' for more information. couldn't create output file "%s": %scouldn't find encoding file "%s.enc": %s couldn't find header definition file "%s.hdr"couldn't find header definition file "%s.hdr": %s couldn't find prolog "%s": %s couldn't get passwd entry for uid=%d: %scouldn't open AFM file for font "%s", using default couldn't open AFM file for the default font: %scouldn't open AFM library: %scouldn't open EPS file "%s": %s couldn't open font description file "%s": %s couldn't open input file "%s": %scouldn't open input filter "%s" for file "%s": %scouldn't open printer `%s': %scouldn't rewind divert file: %scouldn't rewind toc file: %scouldn't stat input file "%s": %sdo not know anything about media "%s"downloading font "%s" file alignment must be larger than zeroillegal non-printable format "%s"illegal option %c for ^@epsf escapeillegal option: %sillegal page label format "%s"illegal underlay style: %sillegal value "%s" for option %sinvalid value "%s" for option %sinvalid value for ^@shade escape: %sknown media: name width height llx lly urx ury ------------------------------------------------------------ malformed %s escape: no '{' foundmalformed ^@epsf escape: no ']' after optionsmalformed ^@epsf escape: no '{' foundmalformed float dimension: "%s"malformed font spec for ^@font escape: %smalformed font spec: %smalformed underlay position: %smissing character codes (decimal): must print at least one line per each page: %snon-printable character codes (decimal): passing through %s file "%s" printerprocessing file "%s"... reading AFM info for font "%s" slice must be greater than zerosyntax error in option string %s="%s": missing end of quotation: %ctoo long argument for %s escape: %.*stoo long file name for ^@epsf escape: %.*struncatedunexpected EOF while scanning ^@epsf escapeunknown encoding: %sunknown special escape: %swarning: didn't process following options from environment variable %s: wrappedxcalloc(): couldn't allocate %d bytes xmalloc(): couldn't allocate %d bytes xrealloc(): couldn't reallocate %d bytes Project-Id-Version: GNU enscript 1.4.2 Report-Msgid-Bugs-To: bug-enscript@gnu.org POT-Creation-Date: 2011-07-10 16:43+0100 PO-Revision-Date: 1997-03-19 23:01+0100 Last-Translator: L. Marcél Barrero M. Language-Team: Spanish Language: es MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8-bit -L, --lines-per-page=NUM especifica cuántas líneas se imprimirán en cada página -m, --mail envía un mensaje al finalizar su ejecución. -M, --media=NOMBRE utiliza el soporte de salida NOMBRE -n, --copies=NUM imprime NUM copias de cada página -N, --newline=NL selecciona el carácter de nueva línea. Los valores posibles son: n (`\n') y r (`\r'). -o un alias para la opción `--output' -O, --missing-characters enumera los caracteres que faltan -p, --output=ARCHIVO coloca la salida en el archivo ARCHIVO. Si ARCHIVO es `-', envía el resultado a la salida estándar. -P, --printer=NOMBRE envía la salida a la impresora NOMBRE -q, --quiet, --silent sé realmente silencioso -r, --landscape imprime en modo apaisado -R, --portrait imprime en modo portaretrato opción %d = "%s" copiadas en %s enviadas a %s $3v $-40N $3% páginas $4L líneas $E $C%s: carácter de nueva línea no permitido: '%s': se esperaba 'n' o 'r' %s: opción no permitida -- %c %s: opción no válida -- %c %s: falta el ')' para la secuencia de escape $()%s: la opción `%c%s' no admite ningún argumento %s: la opción `%s' es ambigua %s: la opción `%s' requiere un argumento %s: la opción `--%s' no admite ningún argumento %s: la opción requiere un argumento -- %c %s: formato demasiado largo para la secuencia de escape $D{}%s: formato demasiado largo para la secuencia de escape %%D{}%s: nombre de variable demasiado largo para la secuancia de escape $()%s: secuencia de escape `$' `%c' (%d) desconocida%s: secuencia de escape desconocida `%%' `%c' (%d)%s: opción desconocida `%c%s' %s: opción desconocida `--%s' %s:%d: %%FooterHeight: sin argumento%s:%d: %%Format: el nombre "%s" ya ha sido definido%s:%d: %%Format: sin nombre%s:%d: %%Format: nombre demasiado largo. La longitud máxima permitida es %d%s:%d: %%HeaderHeight: sin argumentoel archivo EPS "%s" tiene una línea %%%%BoundingBox errónea: "%.*s" el archivo EPS "%s" no comienza con el código "%%!" el archivo EPS "%s" no es un archivo EPS válido el archivo EPS "%s" es demasiado grande para la página ÍndicePruebe `%s --help' para más información. no se pudo crear el archivo de salida "%s": %sno se pudo encontrar el archivo de códigos "%s.enc": %s no se pudo encontrar el archivo de definición de la cabecera "%s.hdr"no se pudo encontrar el archivo de definición de la cabecera "%s.hdr": %s no se pudo encontrar prolog "%s": %s no se pudo obtener la entrada del usuario uid=%d en el archivo passwd: %sno se pudo abrir el archivo AFM para la fuente "%s", se usará la definición por defecto no se pudo abrir el archivo AFM para la fuente: %sno se pudo abrir la biblioteca AFM: %sno se pudo abrir el archivo EPS "%s": %s no se pudo abrir el archivo de descripción "%s" de la fuente: %s no se pudo abrir el archivo de entrada "%s": %sno se pudo abrir el filtro de entrada "%s" para el archivo "%s": %sno se pudo acceder a la impresora `%s': %sno se pudo rebobinar el archivo temporal: %sno se pudo rebobinar el archivo para el índice: %sstat() no pudo evaluar archivo de entrada "%s": %sno se pudo reconocer el soporte "%s"cargando la fuente "%s" la alineación del archivo debe ser mayor que ceroEl formato no imprimible "%s" es incorrecto.opción no permitida %c para la secuencia de escape ^@epsfopción incorrecta: %sEl formato del nombre de página "%s" es incorrecto.El estilo del pie de página es incorrecto: %svalor "%s" incorrecto para la opción %svalor "%s" no permitido para la opción %svalor incorrecto para la secuencia de escape ^@shade: %sSoportes conocidos: nombre ancho largo llx lly urx ury ------------------------------------------------------------ secuencia de escape %s errónea: no se encontró '{'secuencia de escape ^@epsf errónea: falta un ']' después de las opcionessecuencia de escape ^@epsf errónea: no se encontró '{'dimensión de números reales errónea: "%s"especificación de fuente errónea para la secuencia de escape ^@font: %sespecificación errónea de la fuente: %sLa posición de pie de página es incorrecta: %scódigos (en decimal) de los caracteres que faltan: se debe imprimir por lo menos una línea por página: %scódigos (en decimal) de los caracteres no imprimibles: pasando a través del archivo %s "%s" la impresoraprocesando el archivo "%s"... leyendo la información AFM para la fuente "%s" el intervalo debe ser mayor que ceroerror de sintaxis en la opción %s="%s": falta el apóstrofo %c que indica el final del argumento.argumento demasiado largo para la secuencia de escape %s: %.*snombre de archivo demasiado largo para la secuencia de escape ^@epsf: %.*scortadasFin de archivo (EOF) inesperado mientras se examinaba la secuencia de escape ^@epfscodificación desconocida: %ssecuencia de escape especial desconocida: %satención: no se procesaron las siguientes opciones de la variable de entorno %s: separadasxcalloc(): no se pudieron asignar %d bytes xmalloc(): no se pueden asignar %d bytes xrealloc(): no se pudieron reasignar %d bytes enscript-1.6.5.90/po/nl.gmo0000644000175000017500000006434411606344232012271 00000000000000Þ•È\ œ ÐÑ Õàè  '5LM›j;B V c$p5•!Ë8íI&p)+º&æ" #0CT˜²'Ì!ô,C%a,‡-´ â&*< O1[#$±)Ö  : ![ }  ½ %Ý #!$'!"L!-o!!)¶!"à!,"&0"W"!t"/–"'Æ")î"5#N#2n#¡#¿#4Þ#3$)G$/q$,¡$3Î$/%-2%/`%0%'Á%&é%+&=<&.z&&©&$Ð&Iõ&)?'i'€''¹'$Ñ'ö'(H#(l*$}*¢*«*#Ê*î* ++@#+d+&w+ž+°+Â+ Ô+vá+iX-#Â-æ-$.)'.&Q.)x.-¢.2Ð./("/4K//€/°/ Î/-ï/!01?0q0%0¶0Ö0!ó0%1;1R1 h1‰1'§1Ï1=Ø12!02#R2v2‰2+¨2Ô2 ï2 3%13$W3x|3!õ3-4%E4?k4(«4Ô4)ô4565V5#k5.5¾5)Ó5*ý5(6;6N69l6¦6®6Ç6Iç617 Q7_7Cf7%ª7*Ð7 û7+818F8;a8H8æ89& 9&49)[9µ…9;; ?;J;4R;‡;‹;;“;m—;¯<îµ=Ȥ?ÏmB=FPFcF(wFF F"çF> GAIG+‹G.·G.æG+H'AH)iH9“HÍHèH%I))I)SI!}I$ŸI)ÄI*îI$J%>JdJ%{J ¡J5®J'äJ( K-5K"cK'†K#®K$ÒK&÷KL:L4VL5‹L5ÁL$÷L-MJM3eM$™M4¾M.óM"N)?N@iN+ªN$ÖNCûN&?O1fO˜O¸O8ÖO.P4>P7sP7«P=ãP3!Q%UQ2{Q0®Q,ßQ, R;9R>uR7´R(ìR)SQ?S&‘S¸SÒSìST*"TMTbT€T WE1WwW ‹W(¬WÕWõW üW( X3X*NXyXŒXŸX ²X{ÀXræ_1%`6W`*Ž`¹`&Í`4ô`)a#Ha#la*a)»a{åa(ab0Šb,»b;èb5$c"Zc<}c(ºcãcd)d,Edrd-d(»dädee9>exe€e0›eHÌe%f;fLfR]f)°f1Úf g=gSg"jgLgOÚg1*h \h(gh(h*¹h®/%d“(_§:¢n„BF‹‚Èpzt-fVv°ŽHÆi X8¼Š¬žEk\ªO† U©A•¥@Å oŸ·~‡ÀLˆ’»61™|?²W]le›–šM9^*GC—r¡Tbu2yj;'RQKÂ#¦+ý«ƒº‘aJ!´&qx”Ä…±gZ ,¨0¾œ€}ŒcI7˜)³‰35N{¿SÇD¹.` ¯<P=m ­$w¸[¤h4"ÁsY£µ ¶> %s ../../lib ../lib ./configure --prefix=PREFIX make make check make distclean make install Report bugs to <%s>. --help-highlight describe all supported --highlight languages and file formats --highlight-bar-gray=NUM print highlight bars with gray NUM (0 - 1) --list-media list names of all known media --margins=LEFT:RIGHT:TOP:BOTTOM adjust page marginals --mark-wrapped-lines[STYLE] mark wrapped lines in the output with STYLE --non-printable-format=FMT specify how non-printable chars are printed --nup-columnwise layout pages in the N-up printing columnwise --nup-xpad=NUM set the page x-padding of N-up printing to NUM --nup-ypad=NUM set the page y-padding of N-up printing to NUM --page-label-format=FMT set page label format to FMT --ps-level=LEVEL set the PostScript language level that enscript should use --printer-options=OPTIONS pass extra options to the printer command --rotate-even-pages rotate even-numbered pages 180 degrees --slice=NUM print vertical slice NUM --style=STYLE use highlight style STYLE --swap-even-page-margins swap left and right side margins for each even numbered page --toc print table of contents --ul-angle=ANGLE set underlay text's angle to ANGLE --ul-font=NAME print underlays with font NAME --ul-gray=NUM print underlays with gray value NUM --ul-position=POS set underlay's starting position to POS --ul-style=STYLE print underlays with style STYLE --word-wrap wrap long lines from word boundaries -L, --lines-per-page=NUM specify how many lines are printed on each page -m, --mail send mail upon completion -M, --media=NAME use output media NAME -n, --copies=NUM print NUM copies of each page -N, --newline=NL select the newline character. Possible values for NL are: n (`\n') and r (`\r'). -o an alias for option --output -O, --missing-characters list missing characters -p, --output=FILE leave output to file FILE. If FILE is `-', leave output to stdout. -P, --printer=NAME print output to printer NAME -q, --quiet, --silent be really quiet -r, --landscape print in landscape mode -R, --portrait print in portrait mode option %d = "%s" left in %s sent to %s $3v $-40N $3% pages $4L lines $E $C%d character was missing %d characters were missing %d line was %s %d lines were %s %d non-printable character %d non-printable characters %s: FATAL ERROR: States version %s or higher is required for this script %s: autoloading `%s' from `%s' %s: couldn't create output file "%s": %s %s: couldn't open definition file `%s': %s %s: couldn't open input file `%s': %s %s: couldn't open output file "%s"%s: error: undefined variable `%s' %s: illegal newline character specifier: '%s': expected 'n' or 'r' %s: illegal option -- %c %s: invalid option -- %c %s: malformed variable definition "%s" %s: no closing ')' for $() 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: ouf of memory%s: out of memory %s: panic: %s: primitive `%s': too few arguments for format %s: too long format for $D{} escape%s: too long format for %%D{} escape%s: too long variable name for $() escape%s: undefined state `%s' %s: undefined super state `%s' %s: unknown `$' escape `%c' (%d)%s: unknown `%%' escape `%c' (%d)%s: unknown warning level `%s' %s: unrecognized option `%c%s' %s: unrecognized option `--%s' %s: warning: font height is negative %s: warning: font size is negative %s: warning: font width is negative %s:%d: %%FooterHeight: no argument%s:%d: %%Format: name "%s" is already defined%s:%d: %%Format: no name%s:%d: %%Format: too long name, maxlen=%d%s:%d: %%HeaderHeight: no argument%s:%d: %s: argument %d doesn't match format %s:%d: %s: couldn't define state `%s' %s:%d: %s: illegal argument %s:%d: %s: illegal argument type %s:%d: %s: illegal regexp character syntax: %c %s:%d: %s: illegal type specifier `%c' %s:%d: %s: malformed version string `%s' %s:%d: %s: no extra options can be specified for %%s %s:%d: %s: offset out of range %s:%d: %s: start offset is bigger than end offset %s:%d: %s: too few arguments %s:%d: %s: too many arguments %s:%d: couldn't compile regular expression "%s": %s %s:%d: error: array reference index is not integer %s:%d: error: couldn't set variable `%s' %s:%d: error: expression between illegal types %s:%d: error: illegal lvalue for assignment %s:%d: error: illegal rvalue for string assignment %s:%d: error: illegal type for array reference %s:%d: error: negative array reference index %s:%d: error: too few arguments for subroutine %s:%d: error: too many arguments for subroutine %s:%d: error: undefined procedure `%s' %s:%d: error: undefined variable `%s' %s:%d: warning: redefining subroutine `%s' EPS file "%s" contains malformed %%%%BoundingBox row: "%.*s" EPS file "%s" does not start with "%%!" magic EPS file "%s" is not a valid EPS file EPS file "%s" is too large for page Highlighting is supported for the following languages and file formats: I did also try the following directories:Invalid back referenceInvalid character class nameInvalid collation characterInvalid content of \{\}Invalid preceding regular expressionInvalid range endInvalid regular expressionLong-only options: --color[=bool] create color outputs with states --continuous-page-numbers count page numbers across input files. Don't restart numbering at beginning of each file. --download-font=NAME download font NAME --extended-return-values enable extended return values --filter-stdin=NAME specify how stdin is shown to the input filter --footer=FOOTER set page footer --h-column-height=HEIGHT set the horizontal column height to HEIGHT --help print this help and exit Memory exhaustedN-up argument must be power of 2: %dNo matchNo previous regular expressionPremature end of regular expressionRegular expression too bigSuccessTable of ContentsThis is probably an installation error. Please, try to rebuild:Trailing backslashTry `%s --help' for more information. Unmatched ( or \(Unmatched ) or \)Unmatched [ or [^Unmatched \{Usage: %s [OPTION]... FILE... Mandatory arguments to long options are mandatory for short options too. -h, --help print this help and exit -p, --output-file=NAME print output to file NAME (default file is font.map). If FILE is `-', leavy output to stdout. -V, --version print version number Usage: %s [OPTION]... [FILE]... Mandatory arguments to long options are mandatory for short options too. couldn't close output file "%s": %scouldn't create AFM librarycouldn't create output file "%s": %scouldn't create temporary divert file: %scouldn't create temporary toc file: %scouldn't find encoding file "%s.enc": %s couldn't find header definition file "%s.hdr"couldn't find header definition file "%s.hdr": %s couldn't find prolog "%s": %s couldn't get passwd entry for uid=%d: %scouldn't open AFM file for font "%s", using default couldn't open AFM file for the default font: %scouldn't open AFM library: %scouldn't open EPS file "%s": %s couldn't open font description file "%s": %s couldn't open input file "%s": %scouldn't open input filter "%s" for file "%s": %scouldn't open printer `%s': %scouldn't read config file "%s/%s": %scouldn't rewind divert file: %scouldn't rewind toc file: %scouldn't stat input file "%s": %sdo not know anything about media "%s"downloading font "%s" error: EOF in commenterror: EOF in regular expressionerror: EOF in string constantfile alignment must be larger than zerofile=%s helper application specification must be single character: %sillegal N-up argument: %dillegal non-printable format "%s"illegal option %c for ^@epsf escapeillegal option: %sillegal page label format "%s"illegal style for wrapped line marker: "%s"illegal underlay style: %sillegal value "%s" for option %sinvalid value "%s" for option %sinvalid value for ^@bggray escape: %sinvalid value for ^@shade escape: %sknown media: name width height llx lly urx ury ------------------------------------------------------------ malformed %s escape: no '{' foundmalformed ^@epsf escape: no ']' after optionsmalformed ^@epsf escape: no '{' foundmalformed argument `%s' for option -W, --option: no comma foundmalformed color spec for ^@%s escape: %smalformed float dimension: "%s"malformed font spec for ^@font escape: %smalformed font spec: %smalformed underlay position: %smissing argument: %smissing character codes (decimal): must print at least one line per each page: %sno output generated non-printable character codes (decimal): number of columns must be larger than zerooutput left in %s output sent to %s passing through %s file "%s" passing through all input files for output language `%s' printerprocessing file "%s"... reading AFM info for font "%s" set new marginals for media `%s' (%dx%d): llx=%d, lly=%d, urx=%d, ury=%d slice must be greater than zerostates for %sstdoutsyntax error in option string %s="%s": missing end of quotation: %ctoo long argument for %s escape: %.*stoo long file name for ^@epsf escape: %.*struncatedunexpected EOF while scanning ^@epsf escapeunknown encoding: %sunknown special escape: %suser font encoding can be only the system's default or `ps'warning: didn't process following options from environment variable %s: warning: redefining state `%s'wrappedxcalloc(): couldn't allocate %d bytes xmalloc(): couldn't allocate %d bytes xrealloc(): couldn't reallocate %d bytes Project-Id-Version: enscript 1.6.5.2 Report-Msgid-Bugs-To: bug-enscript@gnu.org POT-Creation-Date: 2011-07-10 16:43+0100 PO-Revision-Date: 2010-06-13 22:34+0200 Last-Translator: Benno Schulenberg Language-Team: Dutch Language: nl MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Generator: Lokalize 1.0 Plural-Forms: nplurals=2; plural=(n != 1); %s ../../lib ../libRapporteer een fout bij de maker van uw distributie............. Rapporteer gebreken in het programma aan <%s>; meld fouten in de vertaling aan . --help-highlight mogelijke bestandstypen voor syntaxmarkering tonen --highlight-bar-gray=GETAL markeringsbalken met deze grijswaarde printen --list-media alle bekende formaten tonen --margins=LINKS:RECHTS:BOVEN:ONDER deze paginamarges gebruiken --mark-wrapped-lines[=STIJL] afgebroken regels markeren (met deze stijl) --non-printable-format=SOORT printwijze voor niet-afdrukbare tekens --nup-columnwise kolomsgewijs in plaats van rijsgewijs printen --nup-xpad=AANTAL dit aantal punten horizontale tussenruimte --nup-ypad=AANTAL dit aantal punten verticale tussenruimte --page-label-format=SOORT dit soort paginalabel gebruiken --ps-level=NIVEAU dit niveau van de PostScript-taal gebruiken --printer-options=OPTIES deze opties aan printeropdracht toevoegen --rotate-even-pages de even pagina's 180 graden draaien --slice=NUMMER de verticale strook met dit nummer printen --style=STIJL deze stijl van syntaxmarkeringen gebruiken --swap-even-page-margins op even pagina's linker/rechter marges omwisselen --toc inhoudsopgave printen --ul-angle=HOEK achtergrondtekst onder deze hoek plaatsen --ul-font=LETTERTYPE dit lettertype voor achtergrondtekst gebruiken --ul-gray=GETAL achtergrondtekst met deze grijswaarde printen --ul-position=POSITIE achtergrondtekst op deze positie beginnen --ul-style=STIJL achtergrondtekst in deze stijl printen --word-wrap lange regels afbreken op woordgrenzen -L, --lines-per-page=AANTAL maximum aantal regels per pagina -m, --mail na voltooiing een e-mail aan gebruiker sturen -M, --media=FORMAAT dit formaat voor de uitvoer gebruiken -n, --copies=AANTAL dit aantal kopie-en van elke pagina printen -N, --newline=X dit teken gebruiken voor een nieuwe regel; mogelijke waarden zijn: n ('\n') en r ('\r') -o hetzelfde als '--output' -O, --missing-characters in gebruikte lettertype ontbrekende tekens tonen -p, --output=BESTAND uitvoer in dit bestand opslaan; als BESTAND '-' is, dan uitvoer naar standaarduitvoer sturen -P, --printer=NAAM uitvoer naar printer met deze naam sturen -q, --quiet, --silent zo weinig mogelijk meldingen produceren -r, --landscape liggende pagina's printen -R, --portrait staande pagina's printen optie %d = "%s" opgeslagen in %s verzonden naar %s $3v $-40N $3% pagina's $4L regels $E $C%d teken ontbrak (in lettertype) %d tekens ontbraken (in lettertype) %d regel is %s %d regels zijn %s %d teken was niet-afdrukbaar %d tekens waren niet-afdrukbaar %s: Fout: 'states'-versie %s of hoger is vereist voor dit script %s: automatisch laden van '%s' uit '%s'... %s: kan uitvoerbestand '%s' niet aanmaken: %s %s: kan definitiebestand '%s' niet openen: %s %s: kan invoerbestand '%s' niet openen: %s %s: kan uitvoerbestand '%s' niet openen%s: Fout: ongedefinieerde variabele '%s' %s: ongeldig regeleindeteken '%s' -- verwacht 'n' of 'r' %s: ongeldige optie -- %c %s: ongeldige optie -- %c %s: onjuiste variabeledefinitie '%s' %s: geen afsluitende ')' in $()-stuurcode%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: geen geheugen meer%s: onvoldoende geheugen beschikbaar %s: paniek: %s: primitief '%s': te weinig argumenten voor opmaak %s: opmaak in $D{}-stuurcode is te lang%s: opmaak in %%D{}-stuurcode is te lang%s: variabelenaam is te lang in $()-stuurcode%s: ongedefinieerde toestand '%s' %s: ongedefinieerde supertoestand '%s' %s: onbekende $-stuurcode '%c' (%d)%s: onbekende %%-stuurcode '%c' (%d)%s: onbekend waarschuwingsniveau '%s' %s: onbekende optie '%c%s' %s: onbekende optie '--%s' %s: waarschuwing: hoogte van lettertype is negatief %s: waarschuwing: grootte van lettertype is negatief %s: waarschuwing: breedte van lettertype is negatief %s:%d: %%FooterHeight: geen argument%s:%d: %%Format: naam "%s" is al gedefinieerd%s:%d: %%Format: geen naam%s:%d: %%Format: naam is te lang; maximum lengte=%d%s:%d: %%HeaderHeight: geen argument%s:%d: %s: argument %d komt niet overeen met opmaak %s:%d: %s: kan toestand '%s' niet defini-eren %s:%d %s: ongeldig argument %s:%d: %s: argument is van ongeldig type %s:%d %s: ongeldige soort syntax '%c' voor reguliere expressies %s:%d: %s: ongeldige typespecificatie '%c' %s:%d %s: onjuist versienummer '%s' %s:%d: %s: bij %%s kunnen geen extra opties worden gespecificeerd %s:%d: %s: positie valt buiten bereik %s:%d %s: beginpositie is groter dan eindpositie %s:%d %s: te weinig argumenten %s:%d %s: te veel argumenten %s:%d: kan reguliere expressie '%s' niet compileren: %s %s:%d: Fout: array-index is geen geheel getal %s:%d: Fout: kan niets toewijzen aan variabele '%s' %s:%d: Fout: verschillende types gebruikt in expressie %s:%d: Fout: ongeldige linkerwaarde in arraytoewijzing %s:%d: Fout: ongeldige rechterwaarde in tekenreekstoewijzing %s:%d: Fout: kan argument niet als array indexeren %s:%d: Fout: array-index is negatief %s:%d: Fout: te weinig argumenten voor subroutine %s:%d: Fout: te veel argumenten voor subroutine %s:%d: Fout: ongedefinieerde procedure '%s' %s:%d: Fout: ongedefinieerde variabele '%s' %s:%d: waarschuwing: subroutine '%s' wordt geherdefinieerd EPS-bestand '%s' bevat onjuiste %%%%BoundingBox-regel: "%.*s" EPS-bestand '%s' begint niet met magische tekens "%%!" bestand '%s' is geen geldig EPS-bestand EPS-bestand '%s' is te groot voor pagina Syntaxmarkering is mogelijk voor de volgende programmeertalen en bestandstypes: De volgende mappen zijn ook doorzocht:Ongeldige terugverwijzingOngeldige tekenklassenaamOngeldig samengesteld tekenOngeldige inhoud van \{\}Ongeldige voorafgaande reguliere expressieOngeldig bereikeindeOngeldige reguliere expressieAlleen lange opties: --color[=BOOLEAAN] kleuren gebruiken bij syntaxmarkering --continuous-page-numbers paginanummers door laten tellen; niet voor elk bestand opnieuw beginnen --download-font=NAAM het lettertype met deze naam van internet ophalen --extended-return-values een gedetailleerdere afsluitwaarde produceren --filter-stdin=NAAM de naam van standaardinvoer voor het invoerfilter --footer=TEKENREEKS deze opmaak voor paginavoettekst gebruiken --h-column-height=HOOGTE de hoogte voor horizontale kolommen --help hulptekst tonen en stoppen Onvoldoende geheugen beschikbaarhet argument '%d' voor gecomprimeed printen moet een macht van 2 zijnGeen overeenkomstenGeen eerdere reguliere expressieVoortijdig einde van reguliere expressieReguliere expressie is te grootGeluktInhoudsopgaveDit is vermoedelijk een installatiefout.Backslash (\) aan het eindProbeer '%s --help' voor meer informatie. Ongepaarde ( of \(Ongepaarde ) of \)Ongepaarde [ of [^Ongepaarde \{Gebruik: %s [OPTIE]... BESTAND... (Verplicht argument bij lange optie geldt ook voor de korte vorm.) -h, --help hulptekst tonen en stoppen -p, --output-file=BESTAND uitvoer opslaan in BESTAND (standaard 'font.map'); als BESTAND '-' is, dan naar standaarduitvoer -V, --version versie-informatie tonen en stoppen Gebruik: %s [OPTIE]... [BESTAND]... (Een verplicht argument bij een lange optie geldt ook voor de korte vorm.) kan uitvoerbestand '%s' niet sluiten: %skan AFM-bibliotheek niet aanmakenkan uitvoerbestand '%s' niet aanmaken: %skan tijdelijk rangeerbestand niet aanmaken: %skan tijdelijk bestand voor inhoudsopgave niet aanmaken: %skan coderingsbestand '%s.enc' niet vinden: %s kan koptekst-definitiebestand '%s.hdr' niet vindenkan koptekst-definitiebestand '%s.hdr' niet vinden: %s kan 'prolog'-bestand '%s' niet vinden: %s kan geen wachtwoord vinden voor UID=%d: %skan AFM-bestand voor lettertype '%s' niet openen; standaard wordt gebruikt kan AFM-bestand voor standaard lettertype niet openen: %skan AFM-bibliotheek niet openen: %skan EPS-bestand '%s' niet openen: %s kan lettertype-beschrijvingsbestand '%s' niet openen: %s kan invoerbestand '%s' niet openen: %skan invoerfilter '%s' voor bestand '%s' niet openen: %skan geen toegang verkrijgen tot printer '%s': %skan configuratiebestand '%s/%s' niet vinden: %skan niet terugspringen in rangeerbestand: %skan niet terugspringen in inhoudsopgavebestand: %skan status van invoerbestand '%s' niet opvragen: %ser is niets bekend over formaat '%s'ophalen van lettertype '%s' Fout: bestandseinde bereikt in commentaarFout: bestandseinde bereikt in reguliere expressieFout: bestandseinde bereikt in tekenreeksconstantebestandsuitlijning moet groter zijn dan nulbestand=%s aanduiding van hulpprogramma dient een enkel teken te zijn: %songeldig argument '%d' voor gecomprimeerd printenongeldige printwijze voor niet-afdrukbare tekens: '%s'ongeldige optie '%c' voor ^@epsf-stuurcodeongeldige optie: %songeldige soort voor paginalabel: '%s'ongeldige stijl voor afgebroken-regelmarkering: '%s'ongeldige achtergrondstijl: %songeldige waarde '%s' voor optie %songeldige waarde '%s' voor optie %songeldige waarde in ^@bggray-stuurcode: %songeldige waarde in ^@shade-stuurcode: %sBekende formaten: naam breed hoog llx lly urx ury ------------------------------------------------------------ onjuiste %s-stuurcode: geen '{' gevondenonjuiste ^@epsf-stuurcode: geen ']' na de optiesonjuiste ^@epsf-stuurcode: geen '{' gevondenonjuist argument '%s' van -W of --option: ontbrekende kommaonjuiste specificatie van kleur in ^@%s-stuurcode: %sonjuist drijvende-komma-getal '%s'onjuiste specificatie van lettertype in ^@font-stuurcode: %sonjuiste specificatie van lettertype: %sonjuiste achtergrondpositie: %sontbrekend argument: %scodes van ontbrekende tekens (decimaal): moet minstens 1 regel per pagina printen: %sGeen uitvoer gegenereerd. codes van niet-afdrukbare tekens (decimaal): aantal kolommen moet groter zijn dan nuluitvoer is opgeslagen in %s uitvoer is verzonden naar %s doorgeven van %s-bestand '%s' doorgeven van alle invoerbestanden voor uitvoertaal '%s' printerbezig met bestand '%s'... inlezen van AFM-informatie voor lettertype '%s' nieuwe marges voor formaat '%s' (%dx%d): llx=%d, lly=%d, urx=%d, ury=%d strooknummer moet groter zijn dan nul'states' voor %sstandaarduitvoersyntaxfout in optietekenreeks %s="%s": ontbrekend aanhalingsteken aan het eind: %cargument is te lang in %s-stuurcode: %.*sbestandsnaam is te lang in ^@epsf-stuurcode: %.*safgekaptonverwacht bestandseinde tijdens scannen van ^@epsf-stuurcodeonbekende codering: %songeldig speciaal escape-teken: %scodering van gebruikerslettertype kan alleen 'ps' of de standaardwaarde zijnwaarschuwing: de volgende opties uit omgevingsvariabele %s zijn niet verwerkt: waarschuwing: toestand '%s' wordt geherdefinieerdafgebrokenxcalloc(): kan geen %d bytes reserveren xmalloc(): kan geen %d bytes reserveren xrealloc(): kan %d bytes niet verplaatsen enscript-1.6.5.90/po/boldquot.sed0000644000175000017500000000033111606344064013467 00000000000000s/"\([^"]*\)"/“\1â€/g s/`\([^`']*\)'/‘\1’/g s/ '\([^`']*\)' / ‘\1’ /g s/ '\([^`']*\)'$/ ‘\1’/g s/^'\([^`']*\)' /‘\1’ /g s/“â€/""/g s/“/“/g s/â€/â€/g s/‘/‘/g s/’/’/g enscript-1.6.5.90/po/ca.gmo0000644000175000017500000004667111606344232012246 00000000000000Þ•¨\㜠(;)e y †$“I¸)"+L&x"Ÿ#ÂCæ*D'^!†,¨Õ%ó,-F t&•¼Î á1í#$C)h’¬ Ì!í/O%o#•$¹"Þ-/)H"r,•&Âé!/('X)€5ªà2433h)œ/Æ,ö3#/W-‡&µ+Ü=.F&u$œIÁ "?[$s˜ªÅ$Öû##Gbj|&¶ÈÚ ìvùipÚ$ö) -E 2s ¦ (Å 4î /#!S! q!-’!!À!1â!"3"S"!p"%’"¸"Ï" å"#'$#L#U#!o##‘#µ#È#+ç#$ .$ O$%p$$–$x»$!4%-V%%„%(ª%Ó%)ó%&5&#U&.y&¨&)½&ç&ú& '9+'e'm'†'I¦'ð'(C(%[(*( ¬(+¶(â(÷(;)HN)—)¶)&¾)&å)) *n6*¥+C/V/f/,v/J£/î/6 0:A05|01²0$ä0I 1S1m1*ˆ1)³1&Ý12'!2&I2'p2˜2(¸2á2ö2 3.3*G36r32©3Ü3ö3243H4$|4¡4Á45á4456L5#ƒ5.§5Ö5?ï5#/61S6.…6´6+Ò6Jþ65I727;²7%î798;N8@Š85Ë8.9;09Bl9A¯9Fñ9'8:-`:FŽ:=Õ:-;&A;6h;Ÿ;»;Ø;÷; <3<M<i<=z<¸<À<%Ý<= ='=-=/I=y=”=¯=Ê=¡á=sƒ?%÷?1@5O@0…@5¶@"ì@JAZZAEµA)ûA+%B>QB0B@ÁB)C8,C5eC1›CÍC"êC& D/4D-dD1’D ÄD'ÏD6÷D,.E[E/nE8žE+×E'F'+F)SF(}F}¦F:$G@_G3 G9ÔG*HE9HH.žH4ÍH0I3I2HI{I˜IµI9ÐI JJ25JNhJA·JùJFK>[K<šK×K?àK L-ŠAr†`/b˜‘8x |H9‡M-™T'§E€£‹h–o+^Zu—1cIF<ƒvJL_kž›#Œœ$V&q‰Ke…2?(s¢¤i f•6*¥W:nSŸ,  -L, --lines-per-page=NUM specify how many lines are printed on each page -m, --mail send mail upon completion -M, --media=NAME use output media NAME -n, --copies=NUM print NUM copies of each page -N, --newline=NL select the newline character. Possible values for NL are: n (`\n') and r (`\r'). -o an alias for option --output -O, --missing-characters list missing characters -p, --output=FILE leave output to file FILE. If FILE is `-', leave output to stdout. -P, --printer=NAME print output to printer NAME -q, --quiet, --silent be really quiet -r, --landscape print in landscape mode -R, --portrait print in portrait mode option %d = "%s" left in %s sent to %s $3v $-40N $3% pages $4L lines $E $C%s: FATAL ERROR: States version %s or higher is required for this script %s: autoloading `%s' from `%s' %s: couldn't create output file "%s": %s %s: couldn't open definition file `%s': %s %s: couldn't open input file `%s': %s %s: couldn't open output file "%s"%s: error: undefined variable `%s' %s: illegal newline character specifier: '%s': expected 'n' or 'r' %s: illegal option -- %c %s: invalid option -- %c %s: malformed variable definition "%s" %s: no closing ')' for $() 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: ouf of memory%s: out of memory %s: panic: %s: primitive `%s': too few arguments for format %s: too long format for $D{} escape%s: too long format for %%D{} escape%s: too long variable name for $() escape%s: undefined state `%s' %s: undefined super state `%s' %s: unknown `$' escape `%c' (%d)%s: unknown `%%' escape `%c' (%d)%s: unknown warning level `%s' %s: unrecognized option `%c%s' %s: unrecognized option `--%s' %s: warning: font height is negative %s: warning: font size is negative %s: warning: font width is negative %s:%d: %%FooterHeight: no argument%s:%d: %%Format: name "%s" is already defined%s:%d: %%Format: no name%s:%d: %%Format: too long name, maxlen=%d%s:%d: %%HeaderHeight: no argument%s:%d: %s: argument %d doesn't match format %s:%d: %s: couldn't define state `%s' %s:%d: %s: illegal argument %s:%d: %s: illegal argument type %s:%d: %s: illegal regexp character syntax: %c %s:%d: %s: illegal type specifier `%c' %s:%d: %s: malformed version string `%s' %s:%d: %s: no extra options can be specified for %%s %s:%d: %s: offset out of range %s:%d: %s: start offset is bigger than end offset %s:%d: couldn't compile regular expression "%s": %s %s:%d: error: array reference index is not integer %s:%d: error: couldn't set variable `%s' %s:%d: error: expression between illegal types %s:%d: error: illegal lvalue for assignment %s:%d: error: illegal rvalue for string assignment %s:%d: error: illegal type for array reference %s:%d: error: negative array reference index %s:%d: error: undefined variable `%s' %s:%d: warning: redefining subroutine `%s' EPS file "%s" contains malformed %%%%BoundingBox row: "%.*s" EPS file "%s" does not start with "%%!" magic EPS file "%s" is not a valid EPS file EPS file "%s" is too large for page Highlighting is supported for the following languages and file formats: Invalid back referenceInvalid character class nameInvalid collation characterInvalid content of \{\}Invalid preceding regular expressionInvalid range endInvalid regular expressionMemory exhaustedN-up argument must be power of 2: %dNo matchNo previous regular expressionPremature end of regular expressionRegular expression too bigSuccessTable of ContentsTrailing backslashTry `%s --help' for more information. Unmatched ( or \(Unmatched ) or \)Unmatched [ or [^Unmatched \{Usage: %s [OPTION]... FILE... Mandatory arguments to long options are mandatory for short options too. -h, --help print this help and exit -p, --output-file=NAME print output to file NAME (default file is font.map). If FILE is `-', leavy output to stdout. -V, --version print version number Usage: %s [OPTION]... [FILE]... Mandatory arguments to long options are mandatory for short options too. couldn't create AFM librarycouldn't create output file "%s": %scouldn't find encoding file "%s.enc": %s couldn't find header definition file "%s.hdr"couldn't find header definition file "%s.hdr": %s couldn't find prolog "%s": %s couldn't get passwd entry for uid=%d: %scouldn't open AFM file for font "%s", using default couldn't open AFM file for the default font: %scouldn't open AFM library: %scouldn't open EPS file "%s": %s couldn't open font description file "%s": %s couldn't open input file "%s": %scouldn't open input filter "%s" for file "%s": %scouldn't open printer `%s': %scouldn't rewind divert file: %scouldn't rewind toc file: %scouldn't stat input file "%s": %sdo not know anything about media "%s"downloading font "%s" error: EOF in commenterror: EOF in regular expressionerror: EOF in string constantfile alignment must be larger than zerofile=%s illegal N-up argument: %dillegal non-printable format "%s"illegal option %c for ^@epsf escapeillegal option: %sillegal page label format "%s"illegal style for wrapped line marker: "%s"illegal underlay style: %sillegal value "%s" for option %sinvalid value "%s" for option %sinvalid value for ^@bggray escape: %sinvalid value for ^@shade escape: %sknown media: name width height llx lly urx ury ------------------------------------------------------------ malformed %s escape: no '{' foundmalformed ^@epsf escape: no ']' after optionsmalformed ^@epsf escape: no '{' foundmalformed color spec for ^@%s escape: %smalformed float dimension: "%s"malformed font spec for ^@font escape: %smalformed font spec: %smalformed underlay position: %smissing character codes (decimal): must print at least one line per each page: %sno output generated non-printable character codes (decimal): output left in %s output sent to %s passing through %s file "%s" passing through all input files for output language `%s' printerprocessing file "%s"... reading AFM info for font "%s" set new marginals for media `%s' (%dx%d): llx=%d, lly=%d, urx=%d, ury=%d slice must be greater than zerostdoutsyntax error in option string %s="%s": missing end of quotation: %ctoo long argument for %s escape: %.*stoo long file name for ^@epsf escape: %.*struncatedunexpected EOF while scanning ^@epsf escapeunknown encoding: %sunknown special escape: %suser font encoding can be only the system's default or `ps'warning: didn't process following options from environment variable %s: warning: redefining state `%s'wrappedxcalloc(): couldn't allocate %d bytes xmalloc(): couldn't allocate %d bytes xrealloc(): couldn't reallocate %d bytes Project-Id-Version: enscript 1.6.2 Report-Msgid-Bugs-To: bug-enscript@gnu.org POT-Creation-Date: 2011-07-10 16:43+0100 PO-Revision-Date: 2002-08-14 12:24+0200 Last-Translator: Ernest Adrogué Calveras Language-Team: Catalan Language: ca MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8-bit -L, --lines-per-page=NÚM especifica quantes línies imprimir a cada pàgina -m, --mail envia un missatge electrònic en finalitzar -M, --media=NOM usa el suport de sortida NOM -n, --copies=NÚM imprimeix NÚM còpies de cada pàgina -N, --newline=SL selecciona el caràcter de salt-de-línia. Els valors possibles de SL són: n (`\n') i r (`\r'). -o un àlies de l'opció --output -O, --missing-characters fa una llista amb els caràcters que s'han perdut -p, --output=FITXER deixa la sortida a FITXER. Si FITXER és `-', l'envia a la sortida estàndard. -P, --printer=NOM envia la sortida a l'impressora NOM -q, --quiet, --silent informa amb discreció -r, --landscape imprimeix en sentit apaïsat -R, --portrait imprimeix en sentit normal opció %d = "%s" deixades a %s enviades a %s $3v $-40N pàgina $3% de $3= %D{%d/%m/%Y} %T%s: ERROR FATAL: Aquest script requereix la versió d'states %s o superior %s: carregant `%s' de `%s' %s: no s'ha pogut crear el fitxer de sortida "%s": %s %s: no s'ha pogut obrir el fitxer de definicions `%s': %s %s: no s'ha pogut obrir el fitxer d'entrada `%s': %s %s: no s'ha pogut obrir el fitxer de sortida "%s"%s: error: variable indefinida `%s' %s: el caràcter de salt-de-línia és il·legal: '%s': s'esperava 'n' o 'r' %s: opció il·legal -- %c %s: opció no vàlida -- %c %s: definició de variable incorrecta "%s" %s: falta el ')' final a la seqüència $()%s: l'opció `%c%s' no admet arguments %s: l'opció `%s' és ambigua %s: l'opció `%s' requereix un argument %s: l'opció `--%s' no admet arguments %s: l'opció `-W %s' no admet arguments %s: l'opció `-W %s' és ambigua %s: l'opció requereix un argument -- %c %s: memòria esgotada%s: memòria esgotada %s: pànic: %s: primitiu `%s': falten arguments de format %s: format massa llarg a la seqüència $D{}%s: format massa llarg a la seqüència d'escapada %%D{}%s: nom de variable massa llarg a la seqüència $()%s: estat indefinit `%s' %s: superestat indefinit `%s' %s: seqüència d'escapada `$' desconeguda `%c' (%d)%s: seqüència d'escapada `%%' desconeguda `%c' (%d)%s: nivell d'alerta desconegut `%s' %s: opció no reconeguda `%c%s' %s: opció no reconeguda `--%s' %s: atenció: l'alçada de lletra és un nombre negatiu %s: atenció: la mida de lletra és un nombre negatiu %s: atenció: l'amplada de lletra és un nombre negatiu %s:%d: %%FooterHeight: cap argument%s:%d: %%Format: el nom "%s" ja estava definit%s:%d: %%Format: cap nom%s:%d: %%Format: nom massa llarg, llargada màxima: %d caràcters%s:%d: %%HeaderHeight: cap argument%s:%d: %s: l'argument %d no lliga amb cap format %s:%d: %s: no s'ha pogut definir l'estat `%s' %s:%d: %s: argument il·legal %s:%d: %s: l'argument de tipus és il·legal %s:%d: %s: la sintaxi del caràcter de l'expressió regular és il·legal: %c %s:%d: %s: l'especificació de tipus `%c' és il·legal %s:%d: %s: la cadena de versió `%s' és incorrecta %s:%d: %s: no es poden definir opcions addicionals per %%s %s:%d: %s: desplaçament fora d'abast %s:%d: %s: el desplaçamant inicial és major que el final %s:%d: no s'ha pogut compilar l'expressió regular "%s": %s %s:%d: error: l'índex de referència de la matriu no és un enter %s:%d: error: no s'ha pogut definir la variable `%s' %s:%d: error: expressió entre tipus il·legals %s:%d: error: valor de l'esquerra il·legal a l'assignació %s:%d: error: valor de la dreta il·legal a l'assignació de cadena %s:%d: error: el tipus en la referència de la matriu és il·legal %s:%d: error: l'índex de referència de la matriu és un nombre negatiu %s:%d: error: variable indefinida `%s' %s:%d: atenció: redefinint la subrutina `%s' el fitxer EPS "%s" conté una línia %%%%BoundingBox incorrecta: "%.*s" el fitxer EPS "%s" no comença amb la combinació màgica "%%!" el fitxer EPS "%s" no és un fitxer EPS vàlid el fitxer EPS "%s" no cap a la pàgina Els següents llenguatges i formats suporten ressalt: Referència enrera no vàlidaClasse de caràcter no vàlidaCaràcter de col·lació no vàlidContingut de \{\} no vàlidOperador de repetició incorrecteFinal d'interval no vàlidExpressió regular no vàlidaMemòria esgotadael nombre de pàgines lògiques ha de ser una potència de 2: %dCap casCap expressió regular prèviaFinal prematur de l'expressió regularExpressió regular massa granSuccésÍndexBarra invertida arrossegadaProveu `%s --help' per obtenir més informació. Signe ( o \( no correspostSigne ) o \) no correspostSigne [ o [^ no correspostSigne \{ no correspostSintaxi: %s [OPCIÓ]... FITXER... Els arguments obligatoris per les opcions llargues també ho són per les curtes. -h, --help mostra aquesta ajuda i surt -p, --output-file=NOM escriu la sortida al fitxer NOM (el fitxer per defecte és font.map). Si NOM és `-', l'envia a la sortida estàndard. -V, --version mostra la versió del programa Sintaxi: %s [OPCIÓ]... [FITXER]... Els arguments obligatoris per les opcions llargues també ho són per les curtes. no s'ha pogut crear la biblioteca AFMno s'ha pogut crear el fitxer de sortida "%s": %sno s'ha trobat el fitxer de codificació "%s.enc": %s no s'ha trobat el fitxer de definicions "%s.hdr"no s'ha trobat el fitxer de definicions "%s.hdr": %s no s'ha trobat el prolog "%s": %s no s'ha pogut obtenir l'entrada de l'usuari uid=%d en el fitxer passwd: %sno s'ha pogut obrir el fitxer AFM pel tipus de lletra "%s", s'usen els valors per defecte no s'ha pogut obrir el fitxer AFM pel tipus de lletra per defecte: %sno s'ha pogut obrir la biblioteca AFM: %sno s'ha pogut obrir el fitxer EPS "%s": %s no s'ha pogut obrir la descripció de tipus de lletra "%s": %s no s'ha pogut obrir el fitxer d'entrada "%s": %sno s'ha pogut obrir el filtre d'entrada "%s" pel fitxer "%s": %sno s'ha pogut obrir l'impressora `%s': %sno s'ha pogut localitzar l'inici del fitxer temporal: %sno s'ha pogut localitzar l'inici del fitxer índex: %sno s'ha pogut obtenir l'estat del fitxer "%s": %sel suport "%s" és desconegutcarregant el tipus de lletra "%s" error: final de fitxer en un comentarierror: final de fitxer en una expressió regularerror: final de fitxer en una cadena constantl'aliniació de fitxer ha de ser un nombre positiufitxer=%s nombre de pàgines lògiques il·legal: %del format de caràcters no-imprimibles "%s" és il·legall'opció %c a la seqüència ^@epsf és il·legalopció il·legal: %sel format d'etiqueta de pàgina "%s" és il·legall'estil de marca d'ajutstament de línia "%s" és il·legall'estil del peu de pàgina és incorrecte: %sel valor "%s" de l'opció %s és il·legalel valor "%s" de l'opció %s no és vàlidvalor invàlid a la seqüència ^@bggray: %svalor invàlid a la seqüència ^@shade: %ssuports coneguts: nom ample alçada llx lly urx ury ------------------------------------------------------------ seqüència d'escapada %s incorrecta: no s'ha trobat cap '{'seqüència ^@epsf incorrecta: falta un ']' després de les opcionsseqüència ^@epsf incorrecta: no s'ha trobat cap '{'especificació de color incorrecta a la seqüència ^@%s: %sdimensió de nombres reals incorrecta: "%s"especificació de tipus de lletra incorrecta a la seqüència ^@font: %stipus de lletra incorrecte: %sla posició del peu de pàgina és incorrecta: %scodis dels càracters que s'han perdut (en decimal): s'ha d'imprimir almenys una línia per pàgina: %sno s'ha generat res codis dels caràcters no imprimibles (en decimal): la sortida s'ha deixat a %s la sortida s'ha enviat a %s passant el fitxer %s "%s" passant tots els fitxers de l'entrada al llenguatge `%s' l'impressoraprocessant el fitxer "%s"... llegint l'informació AFM pel tipus de lletra "%s" nous valors marginals pel suport `%s' (%dx%d): llx=%d, lly=%d, urx=%d, ury=%d el punt d'inici de la secció vertical ha de ser un nombre positiustdout (sortida estàndard)error de sintaxi a la cadena %s="%s": falta l'acabament de la cita: %cla seqüència d'escapada %s conté un argument massa llarg: %.*sla seqüència ^@epsf conté un nom de fitxer massa llarg: %.*stalladesfinal de fitxer inesperat quan s'analitzava la seqüència ^@epsfcodificació desconeguda: %sseqüència especial d'escapada desconeguda: %sla codificació del tipus de lletra només pot ser la predeterminada o `ps'atenció: no es processaran les següents opcions de la variable d'entorn %s: atenció: redefinint l'estat `%s'ajustadesxcalloc(): no s'han pogut assignar %d octets xmalloc(): no s'han pogut assignar %d octets xrealloc(): no s'han pogut reassignar %d octets enscript-1.6.5.90/po/pt_BR.po0000644000175000017500000012207011606344232012511 00000000000000# Traduçoes para o português do Brasil das mensagens do "enscript" # Copyright (C) 1998 Free Software Foundation, Inc. # Cyro Mendes De Moraes Neto , 2000. # msgid "" msgstr "" "Project-Id-Version: GNU enscript 1.6.2\n" "Report-Msgid-Bugs-To: bug-enscript@gnu.org\n" "POT-Creation-Date: 2011-07-10 16:43+0100\n" "PO-Revision-Date: 2000-11-01 14:00+0300\n" "Last-Translator: Cyro Mendes De Moraes Neto \n" "Language-Team: Brazilian Portuguese \n" "Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=iso-8859-1\n" "Content-Transfer-Encoding: 8-bit\n" #: compat/getopt.c:628 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "%s: a opção `%s' está ambígua\n" #: compat/getopt.c:652 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "%s: a opção `--%s' não permite um argumento\n" #: compat/getopt.c:657 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "%s: a opção `%c%s' não permite um argumento\n" #: compat/getopt.c:674 compat/getopt.c:847 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "%s: a opção `%s' requer um argumento\n" #: compat/getopt.c:703 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "%s: opção não reconhecida `--%s'\n" #: compat/getopt.c:707 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "%s: opção não reconhecida `%c%s'\n" #: compat/getopt.c:733 #, c-format msgid "%s: illegal option -- %c\n" msgstr "%s: opção ilegal -- %c\n" #: compat/getopt.c:736 #, c-format msgid "%s: invalid option -- %c\n" msgstr "%s: opção inválida -- %c\n" #: compat/getopt.c:766 compat/getopt.c:896 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: opção requer um argumento -- %c\n" #: compat/getopt.c:813 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "%s: a opção `-W %s' está ambígua\n" #: compat/getopt.c:831 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s: a opção `-W %s' não permite um argumento\n" #: compat/xalloc.c:70 #, c-format msgid "xmalloc(): couldn't allocate %d bytes\n" msgstr "xmalloc(): não foi possível alocar %d bytes\n" #: compat/xalloc.c:88 #, c-format msgid "xcalloc(): couldn't allocate %d bytes\n" msgstr "xcalloc(): não foi possível alocar %d bytes\n" #: compat/xalloc.c:109 #, c-format msgid "xrealloc(): couldn't reallocate %d bytes\n" msgstr "xrealloc(): não foi possível alocar %d bytes\n" #: compat/regex.c:996 msgid "Success" msgstr "Sucesso" #: compat/regex.c:997 msgid "No match" msgstr "Sem ocorrência" #: compat/regex.c:998 msgid "Invalid regular expression" msgstr "Expressão regular inválida" #: compat/regex.c:999 msgid "Invalid collation character" msgstr "Caractere de comparação inválido" #: compat/regex.c:1000 msgid "Invalid character class name" msgstr "Nome da classe de caracteres inválida" #: compat/regex.c:1001 msgid "Trailing backslash" msgstr "Barra invertida de referencial" #: compat/regex.c:1002 msgid "Invalid back reference" msgstr "Referência anterior inválida" #: compat/regex.c:1003 msgid "Unmatched [ or [^" msgstr "Não combina [ ou [^" #: compat/regex.c:1004 msgid "Unmatched ( or \\(" msgstr "Não combina ( ou \\(" #: compat/regex.c:1005 msgid "Unmatched \\{" msgstr "Não combina \\{" #: compat/regex.c:1006 msgid "Invalid content of \\{\\}" msgstr "Conteúdo inválido para \\{\\}" #: compat/regex.c:1007 msgid "Invalid range end" msgstr "Final de alcance inválido" #: compat/regex.c:1008 msgid "Memory exhausted" msgstr "Acabou a memória" #: compat/regex.c:1009 msgid "Invalid preceding regular expression" msgstr "Expressão regular anterior inválida" #: compat/regex.c:1010 msgid "Premature end of regular expression" msgstr "Final prematuroda expressão regular" #: compat/regex.c:1011 msgid "Regular expression too big" msgstr "Expressão regular muito grande" #: compat/regex.c:1012 msgid "Unmatched ) or \\)" msgstr "Não combina ) ou \\)" #: compat/regex.c:5458 msgid "No previous regular expression" msgstr "Sem expressão regular próxima" #: src/main.c:949 #, no-c-format msgid "$3v $-40N $3% pages $4L lines $E $C" msgstr "$3v $-40N $3% páginas $4L linhas $E $C" #: src/main.c:979 #, c-format msgid "couldn't get passwd entry for uid=%d: %s" msgstr "não foi possível obter a contrasenha para uid=%d: %s" #: src/main.c:1071 #, fuzzy, c-format msgid "couldn't read config file \"%s/%s\": %s" msgstr "não foi possível abrir o arquivo de configuração \"%s/%s\": %s" #: src/main.c:1075 msgid "I did also try the following directories:" msgstr "" #: src/main.c:1076 src/main.c:1077 src/main.c:1078 #, c-format msgid "\t%s" msgstr "" #: src/main.c:1079 msgid "\t../lib" msgstr "" #: src/main.c:1080 msgid "\t../../lib" msgstr "" #: src/main.c:1082 msgid "This is probably an installation error. Please, try to rebuild:" msgstr "" #: src/main.c:1083 msgid "\tmake distclean" msgstr "" #: src/main.c:1084 msgid "\t./configure --prefix=PREFIX" msgstr "" #: src/main.c:1085 msgid "\tmake" msgstr "" #: src/main.c:1086 msgid "\tmake check" msgstr "" #: src/main.c:1087 msgid "\tmake install" msgstr "" #: src/main.c:1088 msgid "" "or set the environment variable `ENSCRIPT_LIBRARY' to point to your library " "directory." msgstr "" #: src/main.c:1161 #, c-format msgid "unknown encoding: %s" msgstr "codificação desconhecida: %s" #: src/main.c:1180 #, c-format msgid "couldn't open AFM library: %s" msgstr "não foi possível abrir a biblioteca AFM: %s" #: src/main.c:1209 #, c-format msgid "" "known media:\n" "name width\theight\tllx\tlly\turx\tury\n" "------------------------------------------------------------\n" msgstr "" "dispositivo conhecido:\n" "nome largura\taltura\tllx\tlly\turx\tury\n" "------------------------------------------------------------\n" #: src/main.c:1228 #, c-format msgid "do not know anything about media \"%s\"" msgstr "nada conhecido sobre o dispositivo \"%s\"" #: src/main.c:1272 #, c-format msgid "" "set new marginals for media `%s' (%dx%d): llx=%d, lly=%d, urx=%d, ury=%d\n" msgstr "" "configure novas margens para dispositivo `%s' (%dx%d): llx=%d, lly=%d, urx=" "%d, ury=%d\n" #: src/main.c:1283 #, c-format msgid "illegal page label format \"%s\"" msgstr "formato incorreto do rótulo da página \"%s\"" #: src/main.c:1295 #, c-format msgid "illegal non-printable format \"%s\"" msgstr "formato incorreto do nao imprimível \"%s\"" #: src/main.c:1309 #, c-format msgid "illegal style for wrapped line marker: \"%s\"" msgstr "estilo ilegal para marcador de linha quebrada: \"%s\"" #: src/main.c:1319 #, c-format msgid "illegal N-up argument: %d" msgstr "argumento N-up ilegal: %d" #: src/main.c:1324 #, c-format msgid "N-up argument must be power of 2: %d" msgstr "o arugmento N-up deve ser potência de 2: %d" #: src/main.c:1401 #, c-format msgid "malformed underlay position: %s" msgstr "posição underlay mal elaborada: %s" #: src/main.c:1424 #, c-format msgid "illegal underlay style: %s" msgstr "estilo underlay ilegal: %s" #: src/main.c:1451 #, c-format msgid "" "Highlighting is supported for the following languages and file formats:\n" "\n" msgstr "" "O destaque é suportado para os idiomas e formatos a seguir:\n" "\n" #: src/main.c:1632 #, fuzzy, c-format msgid "couldn't create temporary toc file: %s" msgstr "não foi possível criar o nome do arquivo de índice : %s" #: src/main.c:1679 #, c-format msgid "couldn't stat input file \"%s\": %s" msgstr "não foi possível avaliar arquivo de entrada \"%s\": %s" #: src/main.c:1699 #, c-format msgid "couldn't rewind toc file: %s" msgstr "não foi possível reverter o arquivo de índice: %s" #: src/main.c:1705 msgid "Table of Contents" msgstr "Tabela de Conteúdo" #: src/main.c:1731 msgid "no output generated\n" msgstr "saída não gerada\n" #: src/main.c:1736 #, c-format msgid "output sent to %s\n" msgstr "enviar saída para %s\n" #: src/main.c:1737 src/main.c:1768 msgid "printer" msgstr "impressora" #: src/main.c:1739 #, c-format msgid "output left in %s\n" msgstr "saída esquerda em %s\n" #: src/main.c:1760 #, c-format msgid "%d page" msgid_plural "%d pages" msgstr[0] "" msgstr[1] "" #: src/main.c:1762 #, c-format msgid "%d copy" msgid_plural "%d copies" msgstr[0] "" msgstr[1] "" #: src/main.c:1767 #, c-format msgid " sent to %s\n" msgstr "enviar para %s\n" #: src/main.c:1770 #, c-format msgid " left in %s\n" msgstr " esquerda em %s\n" #: src/main.c:1776 #, fuzzy, c-format msgid "%d line was %s\n" msgid_plural "%d lines were %s\n" msgstr[0] "%d linhas onde %s\n" msgstr[1] "%d linhas onde %s\n" #: src/main.c:1781 msgid "truncated" msgstr "truncado" #: src/main.c:1781 msgid "wrapped" msgstr "envolvido" #: src/main.c:1788 #, fuzzy, c-format msgid "%d character was missing\n" msgid_plural "%d characters were missing\n" msgstr[0] "%d caracteres estavam faltando\n" msgstr[1] "%d caracteres estavam faltando\n" #: src/main.c:1794 msgid "missing character codes (decimal):\n" msgstr "faltando códigos de caractere (decimal):\n" #: src/main.c:1803 #, fuzzy, c-format msgid "%d non-printable character\n" msgid_plural "%d non-printable characters\n" msgstr[0] "%d caracteres não imprimíveis\n" msgstr[1] "%d caracteres não imprimíveis\n" #: src/main.c:1810 msgid "non-printable character codes (decimal):\n" msgstr "códigos caracter(decimal) não imprimíveis:\n" #: src/main.c:1859 #, c-format msgid "couldn't open printer `%s': %s" msgstr "não foi possível abrir impressora `%s': %s" #: src/main.c:1868 #, c-format msgid "couldn't create output file \"%s\": %s" msgstr "não foi possível criar o arquivo de saída \"%s\": %s" #: src/main.c:1885 #, fuzzy, c-format msgid "couldn't close output file \"%s\": %s" msgstr "não foi possível criar o arquivo de saída \"%s\": %s" #: src/main.c:1943 #, c-format msgid "" "syntax error in option string %s=\"%s\":\n" "missing end of quotation: %c" msgstr "" "Erro de sintaxe na string de opção %s=\"%s\":\n" "Faltando fim do trecho: %c" #: src/main.c:1975 #, c-format msgid "" "warning: didn't process following options from environment variable %s:\n" msgstr "" "cuidado: não processou as opções a seguir a partir da variável de ambiente " "%s:\n" #: src/main.c:1979 #, c-format msgid " option %d = \"%s\"\n" msgstr " opção %d = \"%s\"\n" #: src/main.c:2025 #, fuzzy msgid "number of columns must be larger than zero" msgstr "alinhamento de arquivo deve ser maior do que zero" #: src/main.c:2083 msgid "file alignment must be larger than zero" msgstr "alinhamento de arquivo deve ser maior do que zero" #: src/main.c:2138 src/main.c:2144 src/main.c:2355 src/util.c:416 #, c-format msgid "malformed font spec: %s" msgstr "especificação de fonte mal elaborada: %s" #: src/main.c:2160 #, c-format msgid "couldn't find header definition file \"%s.hdr\"" msgstr "não pode encontrar o cabeçalho de definição do arquivo \"%s.hdr\"" #: src/main.c:2204 #, c-format msgid "must print at least one line per each page: %s" msgstr "deve imprimir pelo menos uma linha por página: %s" #: src/main.c:2224 #, c-format msgid "%s: illegal newline character specifier: '%s': expected 'n' or 'r'\n" msgstr "" "%s: especificador de caractere de nova linha inválido: '%s': exceto 'n' ou " "'r'\n" #: src/main.c:2313 #, c-format msgid "malformed argument `%s' for option -W, --option: no comma found" msgstr "" #: src/main.c:2318 #, c-format msgid "helper application specification must be single character: %s" msgstr "" #: src/main.c:2414 msgid "slice must be greater than zero" msgstr "divisão deve ser maior do que zero" #: src/main.c:2495 states/main.c:318 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Tente `%s --help' para maiores informações.\n" #: src/main.c:2515 #, fuzzy, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" "Mandatory arguments to long options are mandatory for short options too.\n" " -# an alias for option -n, --copies\n" " -1 same as --columns=1\n" " -2 same as --columns=2\n" " --columns=NUM specify the number of columns per page\n" " -a, --pages=PAGES specify which pages are printed\n" " -A, --file-align=ALIGN align separate input files to ALIGN\n" " -b, --header=HEADER set page header\n" " -B, --no-header no page headers\n" " -c, --truncate-lines cut long lines (default is to wrap)\n" " -C[START], --line-numbers[=START]\n" " precede each line with its line number\n" " -d an alias for option --printer\n" " -D, --setpagedevice=KEY[:VALUE]\n" " pass a page device definition to output\n" " -e[CHAR], --escapes[=CHAR] enable special escape interpretation\n" msgstr "" "Uso: %s [OPÇÃO]... [ARQUIVO]...\n" "Argumentos obrigatórios para opções longas são obrigatórios para opções " "curtas.\n" " -# \t\t\t\t\t\t um alias para opção -n, --copies\n" " -1 mesmo que --columns=1\n" " -2 mesmo que --columns=2\n" " --columns=NUM especificar o número de colunas por página\n" " -a, --páge=PÁGINAS especificar quais páginas são impressas\n" " -A, --file-align=ALINHAM. alinhar arquivos de entrada separados para " "ALINGN\n" " -b, --header=CABEÇALHO\t configurar cabeçalho de página\n" " -B, --no-header \t sem cabeçalhos de página\n" " -c, --truncate-lines cortar linhas longas (padrão é para laço)\n" " -C, --line-numbers[=START]\n" "\t\t\t\t\t\t\t precede cada linha com seu número de linha\n" " -d um alias para opção --printer\n" " -D, --setpagedevice=KEY[:VALUE]\n" "\t\t\t\t passa uma definição de dispositivo de página para a " "saída\n" " -e, --escapes[=CHAR] \t habilita interpretação de escape especial\n" #: src/main.c:2535 #, fuzzy, c-format msgid " -E[LANG], --highlight[=LANG] highlight source code\n" msgstr " -E, --pretty-print[=LANG] código fonte pretty-print\n" #: src/main.c:2538 #, fuzzy, c-format msgid "" " -f, --font=NAME use font NAME for body text\n" " -F, --header-font=NAME use font NAME for header texts\n" " -g, --print-anyway nothing (compatibility option)\n" " -G same as --fancy-header\n" " --fancy-header[=NAME] select fancy page header\n" " -h, --no-job-header suppress the job header page\n" " -H[NUM], --highlight-bars[=NUM] specify how high highlight bars are\n" " -i, --indent=NUM set line indent to NUM characters\n" " -I, --filter=CMD read input files through input filter CMD\n" " -j, --borders print borders around columns\n" " -J, an alias for option --title\n" " -k, --page-prefeed enable page prefeed\n" " -K, --no-page-prefeed disable page prefeed\n" " -l, --lineprinter simulate lineprinter, this is an alias for:\n" " --lines-per-page=66, --no-header, --" "portrait,\n" " --columns=1\n" msgstr "" " -f, --font=NOME \t usa NOME da fonte para o corpo do texto\n" " -F, --header-font=NOME \t usa NOME da fonte para o cabeçalho do texto\n" " -g, --print-anyway \t nada (opção de compatibilidade)\n" " -G \t\t\t mesmo que --fancy-header\n" " \t --fancy-header[=NOME] seleciona cabeçalho de página adernado\n" " -h, --no-job-header \t suprime a página do cabeçalho do trabalho\n" " -H, --highlight-bars=NUM especificar quanto de destaque as barras são\n" " -i, --indent=NUM \t \t configurar indentação de linha para caracteres " "NUM\n" " -I, --filter=CMD \t \t ler arquivos de entrada através do filtro de " "entrada CMD\n" " -j, --borders \t\t\t imprimir bordas ao redor das colunas\n" " -J, \t\t\t\t\t uma opção de alias --title\n" " -k, --page-prefeed \t habilita pré-alimentação de página\n" " -K, --no-page-prefeed \t desabilita pré-alimentação de página\n" " -l, --lineprinter \t\t simular impressora de linha, este é um alias " "para:\n" " --lines-per-page=66, --no-header, --" "portrait,\n" " --columns=1\n" #: src/main.c:2556 #, c-format msgid "" " -L, --lines-per-page=NUM specify how many lines are printed on each " "page\n" " -m, --mail send mail upon completion\n" " -M, --media=NAME use output media NAME\n" " -n, --copies=NUM print NUM copies of each page\n" " -N, --newline=NL select the newline character. Possible\n" " values for NL are: n (`\\n') and r (`\\r').\n" " -o an alias for option --output\n" " -O, --missing-characters list missing characters\n" " -p, --output=FILE leave output to file FILE. If FILE is `-',\n" " leave output to stdout.\n" " -P, --printer=NAME print output to printer NAME\n" " -q, --quiet, --silent be really quiet\n" " -r, --landscape print in landscape mode\n" " -R, --portrait print in portrait mode\n" msgstr "" " -L, --lines-per-page=NUM especificar quantas linhas são impressas em " "cada página\n" " -m, --mail \t enviar mensagem quando completo\n" " -M, --media=NOME \t\t usar media de saída NAME\n" " -n, --copies=NUM \t\t imprimir cópias NUM para cada página\n" " -N, --newline=NL \t selecionar caractere de nova linha. Possível\n" " \t valores para NL são ('\\') e r (`\\r').\n" " -o \t um alias para opção --output\n" " -O, --missing-characters listar caracteres ausentes\n" " -p, --output=ARQUIVO \t deixar saída para arquivo FILE. Se FILE for " "`-',\n" " deixar saída para stdout.\n" " -P, --printer=NOME \t imprimir saída para impressora NAME\n" " -q, --quiet, --silent estar realmente quieto\n" " -r, --landscape \t\t imprimir em modo paisagem\n" " -R, --portrait \t\t imprimir em modo retrato\n" #: src/main.c:2572 #, fuzzy, c-format msgid "" " -s, --baselineskip=NUM set baselineskip to NUM\n" " -S, --statusdict=KEY[:VALUE]\n" " pass a statusdict definition to the output\n" " -t, --title=TITLE set banner page's job title to TITLE. Option\n" " sets also the name of the input file stdin.\n" " -T, --tabsize=NUM set tabulator size to NUM\n" " -u[TEXT], --underlay[=TEXT] print TEXT under every page\n" " -U, --nup=NUM print NUM logical pages on each output page\n" " -v, --verbose tell what we are doing\n" " -V, --version print version number\n" " -w, --language=LANG set output language to LANG\n" " -W, --options=APP,OPTION pass option OPTION to helper application APP\n" " -X, --encoding=NAME use input encoding NAME\n" " -z, --no-formfeed do not interpret form feed characters\n" " -Z, --pass-through pass through PostScript and PCL files\n" " without any modifications\n" msgstr "" " -s, --baselineskip=NUM \t configurar baselineskip para NUM\n" " -S, --statusdict=KEY[:VALUE]\n" " \t\t\t\t\t passar uma definição statusdict para a saída\n" " -t, --title=TITULO \t\t configurar um título de trabalho para a página " "do TITLE. Opção\n" "\t \t\t\t\t configura também o nome do arquivo de entrada stdin.\n" " -T, --tabsize=NUM \t configurar tamanho de tabulador para NUM\n" " -u, --underlay[=TEXTO] \t imprimir TEXT sob cada página\n" " -U, --nup=NUM \t\t imprimir páginas lógicas NUM em cada página de " "saída\n" " -v, --verbose \t\t informa o que se está fazendo\n" " -V, --version \t imprime número da versão\n" " -W, --language=LING. \t configura língua de saída para LANG\n" " -X, --encoding=NOME \t usa codificação de entrada NAME\n" " -z, --no-formfeed \t não interpreta forma de caracteres de " "alimentação\n" " -Z, --pass-through \t passa através do PostScript e arquivos PCL\n" " \t\t sem qualquer modificações\n" #: src/main.c:2590 #, c-format msgid "" "Long-only options:\n" " --color[=bool] create color outputs with states\n" " --continuous-page-numbers count page numbers across input files. Don't\n" " restart numbering at beginning of each file.\n" " --download-font=NAME download font NAME\n" " --extended-return-values enable extended return values\n" " --filter-stdin=NAME specify how stdin is shown to the input filter\n" " --footer=FOOTER set page footer\n" " --h-column-height=HEIGHT set the horizontal column height to HEIGHT\n" " --help print this help and exit\n" msgstr "" #: src/main.c:2601 #, fuzzy, c-format msgid "" " --help-highlight describe all supported --highlight languages\n" " and file formats\n" " --highlight-bar-gray=NUM print highlight bars with gray NUM (0 - 1)\n" " --list-media list names of all known media\n" " --margins=LEFT:RIGHT:TOP:BOTTOM\n" " adjust page marginals\n" " --mark-wrapped-lines[STYLE]\n" " mark wrapped lines in the output with STYLE\n" " --non-printable-format=FMT specify how non-printable chars are printed\n" msgstr "" "Somente opções longas:\n" " --color[=bool] \t\t criar cores de saída com estados\n" " --download-font=NOME \t baixar fonte NAME\n" " -filter-stdin=NOME \t especificar como stding é mostrado ao filtro de " "entrada\n" " --h-column-height=ALTURA configurar a altura da coluna horizontal para " "ALTURA\n" " --help \t\t imprimir esta ajuda e sair\n" " --help-pretty-print descreve as suportadas --pretty-printlínguas\n" " \t\t\t\t\t\t\t e formatos de arquivos\n" " --highlight-bar-gray=NUM imprimir barras de destaque com cinza NUM (0- " "1)\n" " --list-media \t\t listar nomes de toda a mídia conhecida\n" " --list-options \t listar todas as opções e seus valores\n" " --margens=ESQUERDA:DIREITA:EM CIMA:EM BAIXO\n" " \t\t\t\t\t ajustar margens de página\n" " --mark-wrapped-lines[ESTILO]\n" " \t\t\t marcar linhas envoltas na saída com ESTILO\n" " --non-printable-format=FMT especificar como caracteres não imprimíveis são " "impressos\n" #: src/main.c:2612 #, fuzzy, c-format msgid "" " --nup-columnwise layout pages in the N-up printing columnwise\n" " --nup-xpad=NUM set the page x-padding of N-up printing to NUM\n" " --nup-ypad=NUM set the page y-padding of N-up printing to NUM\n" " --page-label-format=FMT set page label format to FMT\n" " --ps-level=LEVEL set the PostScript language level that " "enscript\n" " should use\n" " --printer-options=OPTIONS pass extra options to the printer command\n" " --rotate-even-pages rotate even-numbered pages 180 degrees\n" msgstr "" " --nup-xpad=NUM \t configurar a página x-padding de impressão N-up " "para NUM\n" " --nup-ypad-NUM \t\t configurar a página y-padding de N-up imprimindo " "para NUM\n" " --page-label-format=FMT configurar formato do rótulo da página para " "FMT\n" " --ps-level=NIVEL \t configurar o nível da linguagem de PostScript " "que o enscript\n" " \t\t\t\t\t\t deve usar\n" " --printer-options=OPÇÕES passar opções extras para o comando de " "impresso\n" " --rotate-even-pages \t rotacionar páginas numeradas pare em 180 graus\n" #: src/main.c:2622 #, fuzzy, c-format msgid "" " --slice=NUM print vertical slice NUM\n" " --style=STYLE use highlight style STYLE\n" " --swap-even-page-margins swap left and right side margins for each even\n" " numbered page\n" " --toc print table of contents\n" " --ul-angle=ANGLE set underlay text's angle to ANGLE\n" " --ul-font=NAME print underlays with font NAME\n" " --ul-gray=NUM print underlays with gray value NUM\n" " --ul-position=POS set underlay's starting position to POS\n" " --ul-style=STYLE print underlays with style STYLE\n" " --word-wrap wrap long lines from word boundaries\n" msgstr "" " --slice=NUM imprimir divisão vertical NUM\n" " --style=STYLE \t usar estilo de destaque STYLE\n" " --toc \t \t imprimir índice\n" " --ul-angle=ANGLE \t configurar ângulo da base para ANGLE\n" " --ul-font=NAME imprimir bases com fonte NAME\n" " --ul-gray=NUM imprimir bases com valor cinza NUM\n" " --ul-positon=POS \t configurar posição de início da base para POS\n" " --ul-style=STYLE \t imprimir base com estilo STYLE\n" " --word-wrap \t\t envolver linhas longas dos limites de palavras\n" #: src/main.c:2636 #, fuzzy, c-format msgid "" "\n" "Report bugs to <%s>.\n" msgstr "" "\n" "Reportar bugs para mtr@iki.fi.\n" #: src/psgen.c:331 #, c-format msgid "couldn't find prolog \"%s\": %s\n" msgstr "não foi possível encontrar prolog \"%s\": %s\n" #: src/psgen.c:339 #, c-format msgid "couldn't find encoding file \"%s.enc\": %s\n" msgstr "não foi possível localizar o arquivo de codificação \"%s.enc\": %s\n" #: src/psgen.c:471 #, c-format msgid "couldn't find header definition file \"%s.hdr\": %s\n" msgstr "" "não foi possível encontrar o cabeçalho de definição doarquivo \"%s.hdr\": " "%s\n" #: src/psgen.c:615 #, c-format msgid "processing file \"%s\"...\n" msgstr "processando o arquivo \"%s\"...\n" #: src/psgen.c:913 #, c-format msgid "EPS file \"%s\" is too large for page\n" msgstr "arquivo EPS \"%s\" é mais largo que a página\n" #: src/psgen.c:986 msgid "user font encoding can be only the system's default or `ps'" msgstr "" "codificação de fonte de usuário pode ser somente o padrão do sistema ou `ps'" #: src/psgen.c:1228 #, c-format msgid "unknown special escape: %s" msgstr "saída especial desconhecida: %s" #: src/psgen.c:1354 #, c-format msgid "illegal option %c for ^@epsf escape" msgstr "opção inválida %c para saída ^@epsf" #: src/psgen.c:1360 msgid "malformed ^@epsf escape: no ']' after options" msgstr "saída ^@epsf mal elaborada: sem opções ']'" #: src/psgen.c:1372 #, c-format msgid "" "too long file name for ^@epsf escape:\n" "%.*s" msgstr "" "nome de arquivo muito longo para saída ^@epsf:\n" "%.*s" #: src/psgen.c:1376 msgid "unexpected EOF while scanning ^@epsf escape" msgstr "fim de arquivo inesperado verificando a saída ^@epsf" #: src/psgen.c:1382 msgid "malformed ^@epsf escape: no '{' found" msgstr "saída ^@epsf mal elaborada: sem '{' encontrado" #: src/psgen.c:1440 #, c-format msgid "malformed %s escape: no '{' found" msgstr "saída %s mal elaborada: sem '{' encontrado" #: src/psgen.c:1454 #, c-format msgid "" "too long argument for %s escape:\n" "%.*s" msgstr "" "argumento muto longo para saída %s:\n" "%.*s" #: src/psgen.c:1474 #, c-format msgid "malformed font spec for ^@font escape: %s" msgstr "especificação de fonte mal elaborada para saída de fonte ^@: %s" #: src/psgen.c:1511 #, c-format msgid "malformed color spec for ^@%s escape: %s" msgstr "especificação de cor mal elaborada para saída ^@%s: %s" #: src/psgen.c:1535 #, c-format msgid "invalid value for ^@shade escape: %s" msgstr "valor inválido para ^@shade escape: %s" #: src/psgen.c:1543 #, c-format msgid "invalid value for ^@bggray escape: %s" msgstr "valor inválido para ^@bggray escape: %s" #: src/psgen.c:2412 #, c-format msgid "couldn't open EPS file \"%s\": %s\n" msgstr "não foi possível abrir o arquivo EPS \"%s\": %s\n" #: src/psgen.c:2448 #, c-format msgid "EPS file \"%s\" does not start with \"%%!\" magic\n" msgstr "arquivo EPS \"%s\" não inicia com \"%%!\" mágico\n" #: src/psgen.c:2473 #, c-format msgid "" "EPS file \"%s\" contains malformed %%%%BoundingBox row:\n" "\"%.*s\"\n" msgstr "" "Arquivo EPS \"%s\" contém %%%%BoundingBox mal formados na fila:\n" "\"%.*s\"\n" #: src/psgen.c:2498 #, c-format msgid "EPS file \"%s\" is not a valid EPS file\n" msgstr "o arquivo \"%s\" não é um arquivo EPS válido\n" #: src/psgen.c:2640 #, c-format msgid "passing through all input files for output language `%s'\n" msgstr "" "passando através de todos os arquivos de entrada para língua de saída '%s'\n" #: src/psgen.c:2692 #, c-format msgid "passing through %s file \"%s\"\n" msgstr "passando através do %s arquivo \"%s\"\n" #: src/psgen.c:2795 #, fuzzy, c-format msgid "couldn't create temporary divert file: %s" msgstr "não pôde criar nome de arquivo de desvio: %s" #: src/psgen.c:2812 #, c-format msgid "couldn't rewind divert file: %s" msgstr "não pôde regressar ao arquivo de desvio:%s" #: src/util.c:93 #, fuzzy, c-format msgid "missing argument: %s" msgstr "argumento N-up ilegal: %d" #: src/util.c:186 src/util.c:214 #, c-format msgid "illegal value \"%s\" for option %s" msgstr "valor ilegal \"%s\" para a opção %s" #: src/util.c:202 #, c-format msgid "invalid value \"%s\" for option %s" msgstr "valor inválido \"%s\" para a opção %s" #: src/util.c:440 #, c-format msgid "illegal option: %s" msgstr "opção ilegal: %s" #: src/util.c:619 #, c-format msgid "%s:%d: %%Format: no name" msgstr "%s:%d: %%Formato: sem nome" #: src/util.c:630 #, c-format msgid "%s:%d: %%Format: too long name, maxlen=%d" msgstr "%s:%d: %%Formato: nome muito grande, maxlen=%d" #: src/util.c:653 #, c-format msgid "%s:%d: %%Format: name \"%s\" is already defined" msgstr "%s:%d: %%Formato: nome \"%s\" já definido" #: src/util.c:674 #, c-format msgid "%s:%d: %%HeaderHeight: no argument" msgstr "%s:%d: %%HeaderHeight: sem argumento" #: src/util.c:696 #, c-format msgid "%s:%d: %%FooterHeight: no argument" msgstr "%s:%d: %%FooterHeight: sem argumento" #: src/util.c:843 #, c-format msgid "%s: warning: font size is negative\n" msgstr "%s: cuidado: tamanho da fonte está negativa\n" #: src/util.c:845 #, c-format msgid "%s: warning: font width is negative\n" msgstr "%s: cuidado: largura de fonte é negativa\n" #: src/util.c:847 #, c-format msgid "%s: warning: font height is negative\n" msgstr "%s: cuidado: altura da fonte é negativa\n" #: src/util.c:866 #, c-format msgid "reading AFM info for font \"%s\"\n" msgstr "lendo informação AFM para fonte \"%s\"\n" #: src/util.c:899 #, c-format msgid "couldn't open AFM file for font \"%s\", using default\n" msgstr "" "não foi possível abrir o arquivo AFM para fonte \"%s\", usando o padrão\n" #: src/util.c:906 #, c-format msgid "couldn't open AFM file for the default font: %s" msgstr "não foi possível abrir o arquivo AFM para a fonte padrão: %s" #: src/util.c:1095 #, c-format msgid "downloading font \"%s\"\n" msgstr "baixando fonte \"%s\"\n" #: src/util.c:1100 #, c-format msgid "couldn't open font description file \"%s\": %s\n" msgstr "não foi possível abrir o arquivo de descrição da fonte \"%s\": %s\n" #: src/util.c:1392 #, c-format msgid "%s: too long format for %%D{} escape" msgstr "%s: formato muito longo para saída %%D{}" #: src/util.c:1477 #, c-format msgid "%s: unknown `%%' escape `%c' (%d)" msgstr "%s: saída `%%' desconhecida `%c' (%d)" #: src/util.c:1515 #, c-format msgid "%s: no closing ')' for $() escape" msgstr "%s: sem encerramento ')' para $() escape" #: src/util.c:1518 #, c-format msgid "%s: too long variable name for $() escape" msgstr "%s: nome de variável muito longa para saída $()" #: src/util.c:1545 #, c-format msgid "%s: too long format for $D{} escape" msgstr "%s: formato muito longo para saída $D{}" #: src/util.c:1633 #, c-format msgid "%s: unknown `$' escape `%c' (%d)" msgstr "%s: saída `$' desconhecida `%c' (%d)" #: src/util.c:1824 #, c-format msgid "malformed float dimension: \"%s\"" msgstr "dimensão do flutuante mal feita: \"%s\"" #: src/util.c:1946 #, c-format msgid "couldn't open input filter \"%s\" for file \"%s\": %s" msgstr "" "não foi possível abrir o filtro de entrada \"%s\" para o arquivo \"%s\": %s" #: src/util.c:1963 #, c-format msgid "couldn't open input file \"%s\": %s" msgstr "não foi possível abrir o arquivo de entrada \"%s\": %s" #: src/mkafmmap.c:167 #, c-format msgid "file=%s\n" msgstr "arquivo=%s\n" #: src/mkafmmap.c:167 msgid "stdout" msgstr "stdout" #: src/mkafmmap.c:175 #, c-format msgid "%s: couldn't open output file \"%s\"" msgstr "%s: não foi possível abrir o arquivo de saída \"%s\"" #: src/mkafmmap.c:189 msgid "couldn't create AFM library" msgstr "não foi possível criar a biblioteca AFM" #: src/mkafmmap.c:238 #, c-format msgid "" "Usage: %s [OPTION]... FILE...\n" "Mandatory arguments to long options are mandatory for short options too.\n" " -h, --help print this help and exit\n" " -p, --output-file=NAME print output to file NAME (default file is\n" " font.map). If FILE is `-', leavy output to\n" " stdout.\n" " -V, --version print version number\n" msgstr "" "Uso:%s [OPÇÃO]... ARQUIVO...\n" "Argumentos obrigatórios para opções longas são obrigatórios para opções " "curtas também.\n" " -h, --help \t imprimir esta ajuda e sair\n" " -p, --output-file=NOME imprimir saída para arquivo NAME (arquivo padrão " "é\n" " \t font.map). Se ARQUIVO for '-', deixar saída para \n" " stdout.\n" " -V, --version imprimir número da versão\n" #: states/lex.l:167 states/lex.l:173 msgid "error: EOF in comment" msgstr "erro: Fim de Arquivo comentado" #: states/lex.l:204 msgid "error: EOF in string constant" msgstr "erro: fim de arquivo na cadeia de caracteres constante" #: states/lex.l:311 msgid "error: EOF in regular expression" msgstr "erro: fim de arquivo na expressão regular" #: states/main.c:197 #, fuzzy, c-format msgid "states for %s" msgstr "status para GNU %s %s" #: states/main.c:252 #, c-format msgid "%s: malformed variable definition \"%s\"\n" msgstr "%s: variável de definição mal elaborada \"%s\"\n" #: states/main.c:280 #, c-format msgid "%s: couldn't create output file \"%s\": %s\n" msgstr "%s: não foi possível criar o arquivo de saída \"%s\": %s\n" #: states/main.c:311 #, c-format msgid "%s: unknown warning level `%s'\n" msgstr "%s: nível de cuidado desconhecido `%s'\n" #: states/main.c:360 states/main.c:396 states/prims.c:1375 states/utils.c:227 #, c-format msgid "%s: out of memory\n" msgstr "%s: falta de memória\n" #: states/main.c:421 #, c-format msgid "%s: couldn't open input file `%s': %s\n" msgstr "%s: não foi possível abrir o arquivo de entrada `%s': %s\n" #: states/main.c:445 #, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Uso:%s [OPÇÃO]... ARQUIVO...\n" "Argumentos obrigatórios para opções longas são obrigatórios para opções " "curtas também.\n" #: states/main.c:449 #, fuzzy, c-format msgid "" " -D, --define=VAR=VAL define variable VAR to have value VAL\n" " -f, --file=NAME read state definitions from file NAME\n" " -h, --help print this help and exit\n" " -o, --output=NAME save output to file NAME\n" " -p, --path=PATH set the load path to PATH\n" " -s, --state=NAME start from state NAME\n" " -v, --verbose increase the program verbosity\n" " -V, --version print version number\n" " -W, --warning=LEVEL set the warning level to LEVEL\n" msgstr "" " -D, --define=VAR=VAL \t define variável VAR para ter valor VAR\n" " -f, --file=NOME\t \t\t ler definições de estado do arquivo NOME\n" " -h, --help \t\t\t imprimir esta ajuda e sair\n" " -o, --output=NOME \t\t salvar saída para arquivo NOME\n" " -p, --path=CAMINHO\t\t configurar o caminho de carga para CAMINHO\n" " -s, --state=NOME \t\t iniciar a patir do estado NOME\n" " -v, --verbose \t\t aumentar a verbose do programa\n" " -V, --version \t\t\t imprimir número da versão\n" " -W, --warining=NIVEL \t configurar o nível de aviso para NIVEL\n" #: states/prims.c:44 #, fuzzy, c-format msgid "%s:%d: %s: too few arguments\n" msgstr "%s:%d: %s: argumento ilegal\n" #: states/prims.c:54 #, fuzzy, c-format msgid "%s:%d: %s: too many arguments\n" msgstr "%s:%d: %s: argumento ilegal\n" #: states/prims.c:107 states/prims.c:127 states/prims.c:253 states/prims.c:426 #: states/prims.c:901 #, c-format msgid "%s:%d: %s: illegal argument type\n" msgstr "%s:%d: %s: tipo de argumento ilegal\n" #: states/prims.c:468 #, c-format msgid "%s: panic: " msgstr "%s: pane: " #: states/prims.c:502 #, c-format msgid "%s:%d: %s: malformed version string `%s'\n" msgstr "%s:%d: %s: versão de string mal feita `%s'\n" #: states/prims.c:517 #, c-format msgid "" "%s: FATAL ERROR: States version %s or higher is required for this script\n" msgstr "" "%s: ERRO FATAL: Versão de estados %s ou mail alto é necessário para este " "script\n" #: states/prims.c:608 states/prims.c:1274 #, c-format msgid "%s:%d: %s: start offset is bigger than end offset\n" msgstr "%s:%d: %s: início deslocamento é maior do que final de deslocamento\n" #: states/prims.c:617 states/prims.c:633 states/prims.c:1280 #, c-format msgid "%s:%d: %s: offset out of range\n" msgstr "%s:%d: %s: deslocamento fora de alcance\n" #: states/prims.c:651 #, c-format msgid "%s:%d: %s: illegal argument\n" msgstr "%s:%d: %s: argumento ilegal\n" #: states/prims.c:698 #, c-format msgid "%s:%d: %s: illegal regexp character syntax: %c\n" msgstr "%s:%d: %s: sintaxe ilegal dos caracteres da expressão regular: %c\n" #: states/prims.c:913 #, c-format msgid "%s:%d: %s: couldn't define state `%s'\n" msgstr "%s:%d: %s: não foi possível definir o status `%s'\n" #: states/prims.c:1010 #, c-format msgid "%s: primitive `%s': too few arguments for format\n" msgstr "%s: primitivo `%s': poucos argumentos para o formato\n" #: states/prims.c:1038 #, c-format msgid "%s:%d: %s: argument %d doesn't match format\n" msgstr "%s:%d: %s: argumento %d ocorrência sem formato\n" #: states/prims.c:1078 #, c-format msgid "%s:%d: %s: no extra options can be specified for %%s\n" msgstr "%s:%d: %s: não se pode especificar opções extras para %%s\n" #: states/prims.c:1087 #, c-format msgid "%s:%d: %s: illegal type specifier `%c'\n" msgstr "%s:%d: %s: tipo especificador ilegal `%c'\n" #: states/process.c:115 #, c-format msgid "%s: undefined state `%s'\n" msgstr "%s: status indefinido `%s'\n" #: states/process.c:196 #, c-format msgid "%s: error: undefined variable `%s'\n" msgstr "%s: erro: variável indefinida `%s'\n" #: states/process.c:290 #, c-format msgid "%s: undefined super state `%s'\n" msgstr "%s: super status indefinido `%s'\n" #: states/utils.c:260 #, c-format msgid "%s:%d: couldn't compile regular expression \"%s\": %s\n" msgstr "%s:%d: não foi possível compilara a expressão regular \"%s\": %s\n" #: states/utils.c:449 states/utils.c:477 #, c-format msgid "%s: ouf of memory" msgstr "%s: falta de memória" #: states/utils.c:454 #, c-format msgid "warning: redefining state `%s'" msgstr "cuidado: redefinindo status `%s'" #: states/utils.c:481 #, c-format msgid "%s:%d: warning: redefining subroutine `%s'\n" msgstr "%s:%d: cuidado: redefinindo sub-rotinas `%s'\n" #: states/utils.c:578 #, c-format msgid "%s:%d: error: undefined variable `%s'\n" msgstr "%s:%d: erro: variável indefinida `%s'\n" #: states/utils.c:616 #, c-format msgid "%s:%d: error: couldn't set variable `%s'\n" msgstr "%s:%d: erro: não foi possível configurar a variável `%s'\n" #: states/utils.c:767 #, c-format msgid "%s:%d: error: expression between illegal types\n" msgstr "%s:%d: expressao entre tipos incorretos ou ilegais mesmo\n" #: states/utils.c:865 #, fuzzy, c-format msgid "%s:%d: error: too few arguments for subroutine\n" msgstr "%s: poucos argumentos para a sub-rotina\n" #: states/utils.c:872 #, fuzzy, c-format msgid "%s:%d: error: too many arguments for subroutine\n" msgstr "%s: muitos argumentos para a sub-rotina\n" #: states/utils.c:926 #, fuzzy, c-format msgid "%s:%d: error: undefined procedure `%s'\n" msgstr "%s: procedimento indefinido `%s'\n" #: states/utils.c:1018 #, c-format msgid "%s:%d: error: illegal lvalue for assignment\n" msgstr "%s:%d: erro: lvalor inválido para a atribuição\n" #: states/utils.c:1026 states/utils.c:1110 #, c-format msgid "%s:%d: error: array reference index is not integer\n" msgstr "%s:%d: erro: índice de referência de disposição não é inteiro\n" #: states/utils.c:1032 #, c-format msgid "%s:%d: error: negative array reference index\n" msgstr "%s:%d: erro: índice de referência de disponsição negativo\n" #: states/utils.c:1083 #, c-format msgid "%s:%d: error: illegal rvalue for string assignment\n" msgstr "%s:%d: erro: rvalor inválido para atribuição de string\n" #: states/utils.c:1102 #, c-format msgid "%s:%d: error: illegal type for array reference\n" msgstr "%s:%d: erro: tipo inválido para referência de disposição\n" #: states/utils.c:1119 #, fuzzy, c-format msgid "%s:%d: error: array reference index out of range\n" msgstr "%s:%d: erro: índice de referência de disposição fora de alcance\n" #: states/utils.c:1345 #, c-format msgid "%s: couldn't open definition file `%s': %s\n" msgstr "%s: não foi possível abrir o arquivo de definição `%s': %s\n" #: states/utils.c:1401 #, c-format msgid "%s: autoloading `%s' from `%s'\n" msgstr "%s: lendo `%s' de `%s'\n" #~ msgid "couldn't create toc file \"%s\": %s" #~ msgstr "não foi possível criar o arquivo de índice \"%s\": %s" #~ msgid "[ %d pages * %d copy ]" #~ msgstr "[%d páginas * %d cópia ]" #~ msgid "epsf: couldn't open pipe to command \"%s\": %s\n" #~ msgstr "epsf: não pôde abrir pipe para comando \"%s\": %s\n" #~ msgid "couldn't create divert file \"%s\": %s" #~ msgstr "não pôde criar arquivo de desvio \"%s\":%s" enscript-1.6.5.90/po/nl.po0000644000175000017500000012351311606344232012117 00000000000000# Dutch translations for enscript. # Copyright (C) 2010 Free Software Foundation, Inc. # This file is distributed under the same license as the enscript package. # # Enscript has some encoding problem: # anything that is non 7-bit ASCII gets printed as "?". # The encoding of this file does not affect that. # Worked around here by using "-e" instead of "ë". # # Erick Branderhorst , 1996. # Benno Schulenberg , 2006, 2007, 2010. msgid "" msgstr "" "Project-Id-Version: enscript 1.6.5.2\n" "Report-Msgid-Bugs-To: bug-enscript@gnu.org\n" "POT-Creation-Date: 2011-07-10 16:43+0100\n" "PO-Revision-Date: 2010-06-13 22:34+0200\n" "Last-Translator: Benno Schulenberg \n" "Language-Team: Dutch \n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.0\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: compat/getopt.c:628 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "%s: optie '%s' is niet eenduidig\n" #: compat/getopt.c:652 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "%s: optie '--%s' staat geen argument toe\n" #: compat/getopt.c:657 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "%s: optie '%c%s' staat geen argument toe\n" #: compat/getopt.c:674 compat/getopt.c:847 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "%s: optie '%s' vereist een argument\n" #: compat/getopt.c:703 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "%s: onbekende optie '--%s'\n" #: compat/getopt.c:707 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "%s: onbekende optie '%c%s'\n" #: compat/getopt.c:733 #, c-format msgid "%s: illegal option -- %c\n" msgstr "%s: ongeldige optie -- %c\n" #: compat/getopt.c:736 #, c-format msgid "%s: invalid option -- %c\n" msgstr "%s: ongeldige optie -- %c\n" #: compat/getopt.c:766 compat/getopt.c:896 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: optie vereist een argument -- %c\n" #: compat/getopt.c:813 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "%s: optie '-W %s' is niet eenduidig\n" #: compat/getopt.c:831 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s: optie '-W %s' staat geen argument toe\n" #: compat/xalloc.c:70 #, c-format msgid "xmalloc(): couldn't allocate %d bytes\n" msgstr "xmalloc(): kan geen %d bytes reserveren\n" #: compat/xalloc.c:88 #, c-format msgid "xcalloc(): couldn't allocate %d bytes\n" msgstr "xcalloc(): kan geen %d bytes reserveren\n" #: compat/xalloc.c:109 #, c-format msgid "xrealloc(): couldn't reallocate %d bytes\n" msgstr "xrealloc(): kan %d bytes niet verplaatsen\n" #: compat/regex.c:996 msgid "Success" msgstr "Gelukt" #: compat/regex.c:997 msgid "No match" msgstr "Geen overeenkomsten" #: compat/regex.c:998 msgid "Invalid regular expression" msgstr "Ongeldige reguliere expressie" #: compat/regex.c:999 msgid "Invalid collation character" msgstr "Ongeldig samengesteld teken" #: compat/regex.c:1000 msgid "Invalid character class name" msgstr "Ongeldige tekenklassenaam" #: compat/regex.c:1001 msgid "Trailing backslash" msgstr "Backslash (\\) aan het eind" #: compat/regex.c:1002 msgid "Invalid back reference" msgstr "Ongeldige terugverwijzing" #: compat/regex.c:1003 msgid "Unmatched [ or [^" msgstr "Ongepaarde [ of [^" #: compat/regex.c:1004 msgid "Unmatched ( or \\(" msgstr "Ongepaarde ( of \\(" #: compat/regex.c:1005 msgid "Unmatched \\{" msgstr "Ongepaarde \\{" #: compat/regex.c:1006 msgid "Invalid content of \\{\\}" msgstr "Ongeldige inhoud van \\{\\}" #: compat/regex.c:1007 msgid "Invalid range end" msgstr "Ongeldig bereikeinde" #: compat/regex.c:1008 msgid "Memory exhausted" msgstr "Onvoldoende geheugen beschikbaar" #: compat/regex.c:1009 msgid "Invalid preceding regular expression" msgstr "Ongeldige voorafgaande reguliere expressie" #: compat/regex.c:1010 msgid "Premature end of regular expression" msgstr "Voortijdig einde van reguliere expressie" #: compat/regex.c:1011 msgid "Regular expression too big" msgstr "Reguliere expressie is te groot" #: compat/regex.c:1012 msgid "Unmatched ) or \\)" msgstr "Ongepaarde ) of \\)" #: compat/regex.c:5458 msgid "No previous regular expression" msgstr "Geen eerdere reguliere expressie" #: src/main.c:949 #, no-c-format msgid "$3v $-40N $3% pages $4L lines $E $C" msgstr "$3v $-40N $3% pagina's $4L regels $E $C" #: src/main.c:979 #, c-format msgid "couldn't get passwd entry for uid=%d: %s" msgstr "kan geen wachtwoord vinden voor UID=%d: %s" #: src/main.c:1071 #, c-format msgid "couldn't read config file \"%s/%s\": %s" msgstr "kan configuratiebestand '%s/%s' niet vinden: %s" #: src/main.c:1075 msgid "I did also try the following directories:" msgstr "De volgende mappen zijn ook doorzocht:" #: src/main.c:1076 src/main.c:1077 src/main.c:1078 #, c-format msgid "\t%s" msgstr "\t%s" #: src/main.c:1079 msgid "\t../lib" msgstr "\t../lib" #: src/main.c:1080 msgid "\t../../lib" msgstr "\t../../lib" #: src/main.c:1082 msgid "This is probably an installation error. Please, try to rebuild:" msgstr "Dit is vermoedelijk een installatiefout." #: src/main.c:1083 msgid "\tmake distclean" msgstr "..." #: src/main.c:1084 msgid "\t./configure --prefix=PREFIX" msgstr "Rapporteer een fout bij de maker van uw distributie." #: src/main.c:1085 msgid "\tmake" msgstr "..." #: src/main.c:1086 msgid "\tmake check" msgstr "..." #: src/main.c:1087 msgid "\tmake install" msgstr "..." #: src/main.c:1088 #, fuzzy msgid "" "or set the environment variable `ENSCRIPT_LIBRARY' to point to your library " "directory." msgstr "" "Of omzeil de fout door omgevingsvariabele ENSCRIPT_LIBRARY\n" "naar de juiste map te laten wijzen." #: src/main.c:1161 #, c-format msgid "unknown encoding: %s" msgstr "onbekende codering: %s" #: src/main.c:1180 #, c-format msgid "couldn't open AFM library: %s" msgstr "kan AFM-bibliotheek niet openen: %s" #: src/main.c:1209 #, c-format msgid "" "known media:\n" "name width\theight\tllx\tlly\turx\tury\n" "------------------------------------------------------------\n" msgstr "" "Bekende formaten:\n" "naam breed\thoog\tllx\tlly\turx\tury\n" "------------------------------------------------------------\n" #: src/main.c:1228 #, c-format msgid "do not know anything about media \"%s\"" msgstr "er is niets bekend over formaat '%s'" #: src/main.c:1272 #, c-format msgid "" "set new marginals for media `%s' (%dx%d): llx=%d, lly=%d, urx=%d, ury=%d\n" msgstr "" "nieuwe marges voor formaat '%s' (%dx%d): llx=%d, lly=%d, urx=%d, ury=%d\n" #: src/main.c:1283 #, c-format msgid "illegal page label format \"%s\"" msgstr "ongeldige soort voor paginalabel: '%s'" #: src/main.c:1295 #, c-format msgid "illegal non-printable format \"%s\"" msgstr "ongeldige printwijze voor niet-afdrukbare tekens: '%s'" #: src/main.c:1309 #, c-format msgid "illegal style for wrapped line marker: \"%s\"" msgstr "ongeldige stijl voor afgebroken-regelmarkering: '%s'" #: src/main.c:1319 #, c-format msgid "illegal N-up argument: %d" msgstr "ongeldig argument '%d' voor gecomprimeerd printen" #: src/main.c:1324 #, c-format msgid "N-up argument must be power of 2: %d" msgstr "het argument '%d' voor gecomprimeed printen moet een macht van 2 zijn" #: src/main.c:1401 #, c-format msgid "malformed underlay position: %s" msgstr "onjuiste achtergrondpositie: %s" #: src/main.c:1424 #, c-format msgid "illegal underlay style: %s" msgstr "ongeldige achtergrondstijl: %s" #: src/main.c:1451 #, c-format msgid "" "Highlighting is supported for the following languages and file formats:\n" "\n" msgstr "" "Syntaxmarkering is mogelijk voor de volgende programmeertalen en " "bestandstypes:\n" "\n" #: src/main.c:1632 #, c-format msgid "couldn't create temporary toc file: %s" msgstr "kan tijdelijk bestand voor inhoudsopgave niet aanmaken: %s" #: src/main.c:1679 #, c-format msgid "couldn't stat input file \"%s\": %s" msgstr "kan status van invoerbestand '%s' niet opvragen: %s" #: src/main.c:1699 #, c-format msgid "couldn't rewind toc file: %s" msgstr "kan niet terugspringen in inhoudsopgavebestand: %s" #: src/main.c:1705 msgid "Table of Contents" msgstr "Inhoudsopgave" #: src/main.c:1731 msgid "no output generated\n" msgstr "Geen uitvoer gegenereerd.\n" #: src/main.c:1736 #, c-format msgid "output sent to %s\n" msgstr "uitvoer is verzonden naar %s\n" #: src/main.c:1737 src/main.c:1768 msgid "printer" msgstr "printer" #: src/main.c:1739 #, c-format msgid "output left in %s\n" msgstr "uitvoer is opgeslagen in %s\n" #: src/main.c:1760 #, c-format msgid "%d page" msgid_plural "%d pages" msgstr[0] "" msgstr[1] "" #: src/main.c:1762 #, c-format msgid "%d copy" msgid_plural "%d copies" msgstr[0] "" msgstr[1] "" #: src/main.c:1767 #, c-format msgid " sent to %s\n" msgstr " verzonden naar %s\n" #: src/main.c:1770 #, c-format msgid " left in %s\n" msgstr " opgeslagen in %s\n" #: src/main.c:1776 #, c-format msgid "%d line was %s\n" msgid_plural "%d lines were %s\n" msgstr[0] "%d regel is %s\n" msgstr[1] "%d regels zijn %s\n" #: src/main.c:1781 msgid "truncated" msgstr "afgekapt" #: src/main.c:1781 msgid "wrapped" msgstr "afgebroken" #: src/main.c:1788 #, c-format msgid "%d character was missing\n" msgid_plural "%d characters were missing\n" msgstr[0] "%d teken ontbrak (in lettertype)\n" msgstr[1] "%d tekens ontbraken (in lettertype)\n" #: src/main.c:1794 msgid "missing character codes (decimal):\n" msgstr "codes van ontbrekende tekens (decimaal):\n" #: src/main.c:1803 #, c-format msgid "%d non-printable character\n" msgid_plural "%d non-printable characters\n" msgstr[0] "%d teken was niet-afdrukbaar\n" msgstr[1] "%d tekens waren niet-afdrukbaar\n" #: src/main.c:1810 msgid "non-printable character codes (decimal):\n" msgstr "codes van niet-afdrukbare tekens (decimaal):\n" #: src/main.c:1859 #, c-format msgid "couldn't open printer `%s': %s" msgstr "kan geen toegang verkrijgen tot printer '%s': %s" #: src/main.c:1868 #, c-format msgid "couldn't create output file \"%s\": %s" msgstr "kan uitvoerbestand '%s' niet aanmaken: %s" #: src/main.c:1885 #, c-format msgid "couldn't close output file \"%s\": %s" msgstr "kan uitvoerbestand '%s' niet sluiten: %s" #: src/main.c:1943 #, c-format msgid "" "syntax error in option string %s=\"%s\":\n" "missing end of quotation: %c" msgstr "" "syntaxfout in optietekenreeks %s=\"%s\":\n" "ontbrekend aanhalingsteken aan het eind: %c" #: src/main.c:1975 #, c-format msgid "" "warning: didn't process following options from environment variable %s:\n" msgstr "" "waarschuwing: de volgende opties uit omgevingsvariabele %s zijn niet " "verwerkt:\n" #: src/main.c:1979 #, c-format msgid " option %d = \"%s\"\n" msgstr " optie %d = \"%s\"\n" #: src/main.c:2025 msgid "number of columns must be larger than zero" msgstr "aantal kolommen moet groter zijn dan nul" #: src/main.c:2083 msgid "file alignment must be larger than zero" msgstr "bestandsuitlijning moet groter zijn dan nul" #: src/main.c:2138 src/main.c:2144 src/main.c:2355 src/util.c:416 #, c-format msgid "malformed font spec: %s" msgstr "onjuiste specificatie van lettertype: %s" #: src/main.c:2160 #, c-format msgid "couldn't find header definition file \"%s.hdr\"" msgstr "kan koptekst-definitiebestand '%s.hdr' niet vinden" #: src/main.c:2204 #, c-format msgid "must print at least one line per each page: %s" msgstr "moet minstens 1 regel per pagina printen: %s" #: src/main.c:2224 #, c-format msgid "%s: illegal newline character specifier: '%s': expected 'n' or 'r'\n" msgstr "%s: ongeldig regeleindeteken '%s' -- verwacht 'n' of 'r'\n" #: src/main.c:2313 #, c-format msgid "malformed argument `%s' for option -W, --option: no comma found" msgstr "onjuist argument '%s' van -W of --option: ontbrekende komma" #: src/main.c:2318 #, c-format msgid "helper application specification must be single character: %s" msgstr "aanduiding van hulpprogramma dient een enkel teken te zijn: %s" #: src/main.c:2414 msgid "slice must be greater than zero" msgstr "strooknummer moet groter zijn dan nul" #: src/main.c:2495 states/main.c:318 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Probeer '%s --help' voor meer informatie.\n" #: src/main.c:2515 #, fuzzy, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" "Mandatory arguments to long options are mandatory for short options too.\n" " -# an alias for option -n, --copies\n" " -1 same as --columns=1\n" " -2 same as --columns=2\n" " --columns=NUM specify the number of columns per page\n" " -a, --pages=PAGES specify which pages are printed\n" " -A, --file-align=ALIGN align separate input files to ALIGN\n" " -b, --header=HEADER set page header\n" " -B, --no-header no page headers\n" " -c, --truncate-lines cut long lines (default is to wrap)\n" " -C[START], --line-numbers[=START]\n" " precede each line with its line number\n" " -d an alias for option --printer\n" " -D, --setpagedevice=KEY[:VALUE]\n" " pass a page device definition to output\n" " -e[CHAR], --escapes[=CHAR] enable special escape interpretation\n" msgstr "" "Gebruik: %s [OPTIE]... [BESTAND]...\n" "\n" "(Een verplicht argument bij een lange optie geldt ook voor de korte vorm.)\n" "\n" " -# een alias voor '-n' en '--copies'\n" " -1, -2, ... hetzelfde als '--columns=1', '--" "columns=2', ...\n" " --columns=AANTAL dit aantal kolommen per pagina gebruiken\n" " -a, --pages=[VAN][-][TOT] deze reeks pagina's printen\n" " -A, --file-align=AANTAL invoerbestanden op dit aantal pagina's " "uitlijnen\n" " -b, --header=TEKENREEKS deze opmaak voor paginakoptekst gebruiken\n" " -B, --no-header geen paginakoptekst printen\n" " -c, --truncate-lines lange regels afkappen (standaard is afbreken)\n" " -C, --line-numbers[=BEGIN] elke regel door z'n regelnummer vooraf laten " "gaan\n" " -d hetzelfde als '--printer'\n" " -D, --setpagedevice=SLEUTEL[:WAARDE] deze printeroptie aan uitvoer " "toevoegen\n" " -e, --escapes[=TEKEN] interpretatie van speciale stuurcodes " "aanzetten\n" #: src/main.c:2535 #, fuzzy, c-format msgid " -E[LANG], --highlight[=LANG] highlight source code\n" msgstr "" " -E, --highlight[=TAAL] syntaxmarkering (voor deze taal) gebruiken\n" #: src/main.c:2538 #, fuzzy, c-format msgid "" " -f, --font=NAME use font NAME for body text\n" " -F, --header-font=NAME use font NAME for header texts\n" " -g, --print-anyway nothing (compatibility option)\n" " -G same as --fancy-header\n" " --fancy-header[=NAME] select fancy page header\n" " -h, --no-job-header suppress the job header page\n" " -H[NUM], --highlight-bars[=NUM] specify how high highlight bars are\n" " -i, --indent=NUM set line indent to NUM characters\n" " -I, --filter=CMD read input files through input filter CMD\n" " -j, --borders print borders around columns\n" " -J, an alias for option --title\n" " -k, --page-prefeed enable page prefeed\n" " -K, --no-page-prefeed disable page prefeed\n" " -l, --lineprinter simulate lineprinter, this is an alias for:\n" " --lines-per-page=66, --no-header, --" "portrait,\n" " --columns=1\n" msgstr "" " -f, --font=LETTERTYPE dit lettertype voor broodtekst gebruiken\n" " -F, --header-font=LETTYPE dit lettertype voor koptekst gebruiken\n" " -g, --print-anyway (doet niets; herkend wegens compatibileit)\n" " -G --fancy-header[=NAAM] de standaard (of een speciale) koptekst " "printen\n" " -h, --no-job-header geen taak-startpagina printen\n" " -H, --highlight-bars=GETAL hoogte van markeringsbalken\n" " -i, --indent=AANTAL alle regels dit aantal tekens laten " "inspringen\n" " -I, --filter=OPDRACHT invoerbestanden door deze opdracht filteren\n" " -j, --borders randen rond kolommen printen\n" " -J hetzelfde als '--title'\n" " -k, --page-prefeed anticiperen op volgende pagina (indien " "mogelijk)\n" " -K, --no-page-prefeed niet anticiperen op volgende pagina " "(standaard)\n" " -l, --lineprinter een regelprinter simuleren; dit is hetzelfde " "als\n" " '--lines-per-page=66, --no-header,\n" " --portrait, --columns=1'\n" # XXX "kopieën" lukt niet wegens coderingsprobleem #: src/main.c:2556 #, c-format msgid "" " -L, --lines-per-page=NUM specify how many lines are printed on each " "page\n" " -m, --mail send mail upon completion\n" " -M, --media=NAME use output media NAME\n" " -n, --copies=NUM print NUM copies of each page\n" " -N, --newline=NL select the newline character. Possible\n" " values for NL are: n (`\\n') and r (`\\r').\n" " -o an alias for option --output\n" " -O, --missing-characters list missing characters\n" " -p, --output=FILE leave output to file FILE. If FILE is `-',\n" " leave output to stdout.\n" " -P, --printer=NAME print output to printer NAME\n" " -q, --quiet, --silent be really quiet\n" " -r, --landscape print in landscape mode\n" " -R, --portrait print in portrait mode\n" msgstr "" " -L, --lines-per-page=AANTAL maximum aantal regels per pagina\n" " -m, --mail na voltooiing een e-mail aan gebruiker sturen\n" " -M, --media=FORMAAT dit formaat voor de uitvoer gebruiken\n" " -n, --copies=AANTAL dit aantal kopie-en van elke pagina printen\n" " -N, --newline=X dit teken gebruiken voor een nieuwe regel;\n" " mogelijke waarden zijn: n ('\\n') en r " "('\\r')\n" " -o hetzelfde als '--output'\n" " -O, --missing-characters in gebruikte lettertype ontbrekende tekens " "tonen\n" " -p, --output=BESTAND uitvoer in dit bestand opslaan; als BESTAND " "'-'\n" " is, dan uitvoer naar standaarduitvoer " "sturen\n" " -P, --printer=NAAM uitvoer naar printer met deze naam sturen\n" " -q, --quiet, --silent zo weinig mogelijk meldingen produceren\n" " -r, --landscape liggende pagina's printen\n" " -R, --portrait staande pagina's printen\n" #: src/main.c:2572 #, fuzzy, c-format msgid "" " -s, --baselineskip=NUM set baselineskip to NUM\n" " -S, --statusdict=KEY[:VALUE]\n" " pass a statusdict definition to the output\n" " -t, --title=TITLE set banner page's job title to TITLE. Option\n" " sets also the name of the input file stdin.\n" " -T, --tabsize=NUM set tabulator size to NUM\n" " -u[TEXT], --underlay[=TEXT] print TEXT under every page\n" " -U, --nup=NUM print NUM logical pages on each output page\n" " -v, --verbose tell what we are doing\n" " -V, --version print version number\n" " -w, --language=LANG set output language to LANG\n" " -W, --options=APP,OPTION pass option OPTION to helper application APP\n" " -X, --encoding=NAME use input encoding NAME\n" " -z, --no-formfeed do not interpret form feed characters\n" " -Z, --pass-through pass through PostScript and PCL files\n" " without any modifications\n" msgstr "" " -s, --baselineskip=AANTAL aantal punten witruimte tussen regels (normaal " "1)\n" " -S, --statusdict=SLEUTEL[:WAARDE] deze printeroptie aan uitvoer " "toevoegen\n" " -t, --title=TITEL deze titel op taak-startpagina gebruiken\n" " -T, --tabsize=AANTAL de tabulatorgrootte op dit aantal instellen\n" " -u, --underlay[=TEKST] deze tekst als achtergrond op elke pagina " "printen\n" " -U, --nup=AANTAL dit aantal logische pagina's op 1 pagina " "printen\n" " -v, --verbose breedsprakige uitvoer produceren\n" " -V, --version versie-informatie tonen en stoppen\n" " -w, --language=TAAL de uitvoertaal op deze taal instellen\n" " -W, --options=PROG,OPTIE deze OPTIE aan hulpprogramma PROG meegeven\n" " -X, --encoding=CODERING de invoer volgens deze codering inlezen\n" " -z, --no-formfeed nieuwe-pagina-tekens negeren\n" " -Z, --pass-through PostScript- en PCL-bestand ongewijzigd " "doorgeven\n" "\n" #: src/main.c:2590 #, c-format msgid "" "Long-only options:\n" " --color[=bool] create color outputs with states\n" " --continuous-page-numbers count page numbers across input files. Don't\n" " restart numbering at beginning of each file.\n" " --download-font=NAME download font NAME\n" " --extended-return-values enable extended return values\n" " --filter-stdin=NAME specify how stdin is shown to the input filter\n" " --footer=FOOTER set page footer\n" " --h-column-height=HEIGHT set the horizontal column height to HEIGHT\n" " --help print this help and exit\n" msgstr "" "Alleen lange opties:\n" " --color[=BOOLEAAN] kleuren gebruiken bij syntaxmarkering\n" " --continuous-page-numbers paginanummers door laten tellen; niet voor " "elk\n" " bestand opnieuw beginnen\n" " --download-font=NAAM het lettertype met deze naam van internet " "ophalen\n" " --extended-return-values een gedetailleerdere afsluitwaarde produceren\n" " --filter-stdin=NAAM de naam van standaardinvoer voor het " "invoerfilter\n" " --footer=TEKENREEKS deze opmaak voor paginavoettekst gebruiken\n" " --h-column-height=HOOGTE de hoogte voor horizontale kolommen\n" " --help hulptekst tonen en stoppen\n" #: src/main.c:2601 #, c-format msgid "" " --help-highlight describe all supported --highlight languages\n" " and file formats\n" " --highlight-bar-gray=NUM print highlight bars with gray NUM (0 - 1)\n" " --list-media list names of all known media\n" " --margins=LEFT:RIGHT:TOP:BOTTOM\n" " adjust page marginals\n" " --mark-wrapped-lines[STYLE]\n" " mark wrapped lines in the output with STYLE\n" " --non-printable-format=FMT specify how non-printable chars are printed\n" msgstr "" " --help-highlight mogelijke bestandstypen voor syntaxmarkering " "tonen\n" " --highlight-bar-gray=GETAL markeringsbalken met deze grijswaarde printen\n" " --list-media alle bekende formaten tonen\n" " --margins=LINKS:RECHTS:BOVEN:ONDER deze paginamarges gebruiken\n" " --mark-wrapped-lines[=STIJL] afgebroken regels markeren (met deze " "stijl)\n" " --non-printable-format=SOORT printwijze voor niet-afdrukbare tekens\n" #: src/main.c:2612 #, c-format msgid "" " --nup-columnwise layout pages in the N-up printing columnwise\n" " --nup-xpad=NUM set the page x-padding of N-up printing to NUM\n" " --nup-ypad=NUM set the page y-padding of N-up printing to NUM\n" " --page-label-format=FMT set page label format to FMT\n" " --ps-level=LEVEL set the PostScript language level that " "enscript\n" " should use\n" " --printer-options=OPTIONS pass extra options to the printer command\n" " --rotate-even-pages rotate even-numbered pages 180 degrees\n" msgstr "" " --nup-columnwise kolomsgewijs in plaats van rijsgewijs printen\n" " --nup-xpad=AANTAL dit aantal punten horizontale tussenruimte\n" " --nup-ypad=AANTAL dit aantal punten verticale tussenruimte\n" " --page-label-format=SOORT dit soort paginalabel gebruiken\n" " --ps-level=NIVEAU dit niveau van de PostScript-taal gebruiken\n" " --printer-options=OPTIES deze opties aan printeropdracht toevoegen\n" " --rotate-even-pages de even pagina's 180 graden draaien\n" #: src/main.c:2622 #, c-format msgid "" " --slice=NUM print vertical slice NUM\n" " --style=STYLE use highlight style STYLE\n" " --swap-even-page-margins swap left and right side margins for each even\n" " numbered page\n" " --toc print table of contents\n" " --ul-angle=ANGLE set underlay text's angle to ANGLE\n" " --ul-font=NAME print underlays with font NAME\n" " --ul-gray=NUM print underlays with gray value NUM\n" " --ul-position=POS set underlay's starting position to POS\n" " --ul-style=STYLE print underlays with style STYLE\n" " --word-wrap wrap long lines from word boundaries\n" msgstr "" " --slice=NUMMER de verticale strook met dit nummer printen\n" " --style=STIJL deze stijl van syntaxmarkeringen gebruiken\n" " --swap-even-page-margins op even pagina's linker/rechter marges " "omwisselen\n" " --toc inhoudsopgave printen\n" " --ul-angle=HOEK achtergrondtekst onder deze hoek plaatsen\n" " --ul-font=LETTERTYPE dit lettertype voor achtergrondtekst " "gebruiken\n" " --ul-gray=GETAL achtergrondtekst met deze grijswaarde printen\n" " --ul-position=POSITIE achtergrondtekst op deze positie beginnen\n" " --ul-style=STIJL achtergrondtekst in deze stijl printen\n" " --word-wrap lange regels afbreken op woordgrenzen\n" #: src/main.c:2636 #, c-format msgid "" "\n" "Report bugs to <%s>.\n" msgstr "" "\n" "Rapporteer gebreken in het programma aan <%s>;\n" "meld fouten in de vertaling aan .\n" #: src/psgen.c:331 #, c-format msgid "couldn't find prolog \"%s\": %s\n" msgstr "kan 'prolog'-bestand '%s' niet vinden: %s\n" #: src/psgen.c:339 #, c-format msgid "couldn't find encoding file \"%s.enc\": %s\n" msgstr "kan coderingsbestand '%s.enc' niet vinden: %s\n" #: src/psgen.c:471 #, c-format msgid "couldn't find header definition file \"%s.hdr\": %s\n" msgstr "kan koptekst-definitiebestand '%s.hdr' niet vinden: %s\n" #: src/psgen.c:615 #, c-format msgid "processing file \"%s\"...\n" msgstr "bezig met bestand '%s'...\n" #: src/psgen.c:913 #, c-format msgid "EPS file \"%s\" is too large for page\n" msgstr "EPS-bestand '%s' is te groot voor pagina\n" #: src/psgen.c:986 msgid "user font encoding can be only the system's default or `ps'" msgstr "" "codering van gebruikerslettertype kan alleen 'ps' of de standaardwaarde zijn" #: src/psgen.c:1228 #, c-format msgid "unknown special escape: %s" msgstr "ongeldig speciaal escape-teken: %s" #: src/psgen.c:1354 #, c-format msgid "illegal option %c for ^@epsf escape" msgstr "ongeldige optie '%c' voor ^@epsf-stuurcode" #: src/psgen.c:1360 msgid "malformed ^@epsf escape: no ']' after options" msgstr "onjuiste ^@epsf-stuurcode: geen ']' na de opties" #: src/psgen.c:1372 #, c-format msgid "" "too long file name for ^@epsf escape:\n" "%.*s" msgstr "" "bestandsnaam is te lang in ^@epsf-stuurcode:\n" "%.*s" #: src/psgen.c:1376 msgid "unexpected EOF while scanning ^@epsf escape" msgstr "onverwacht bestandseinde tijdens scannen van ^@epsf-stuurcode" #: src/psgen.c:1382 msgid "malformed ^@epsf escape: no '{' found" msgstr "onjuiste ^@epsf-stuurcode: geen '{' gevonden" #: src/psgen.c:1440 #, c-format msgid "malformed %s escape: no '{' found" msgstr "onjuiste %s-stuurcode: geen '{' gevonden" #: src/psgen.c:1454 #, c-format msgid "" "too long argument for %s escape:\n" "%.*s" msgstr "" "argument is te lang in %s-stuurcode:\n" "%.*s" #: src/psgen.c:1474 #, c-format msgid "malformed font spec for ^@font escape: %s" msgstr "onjuiste specificatie van lettertype in ^@font-stuurcode: %s" #: src/psgen.c:1511 #, c-format msgid "malformed color spec for ^@%s escape: %s" msgstr "onjuiste specificatie van kleur in ^@%s-stuurcode: %s" #: src/psgen.c:1535 #, c-format msgid "invalid value for ^@shade escape: %s" msgstr "ongeldige waarde in ^@shade-stuurcode: %s" #: src/psgen.c:1543 #, c-format msgid "invalid value for ^@bggray escape: %s" msgstr "ongeldige waarde in ^@bggray-stuurcode: %s" #: src/psgen.c:2412 #, c-format msgid "couldn't open EPS file \"%s\": %s\n" msgstr "kan EPS-bestand '%s' niet openen: %s\n" #: src/psgen.c:2448 #, c-format msgid "EPS file \"%s\" does not start with \"%%!\" magic\n" msgstr "EPS-bestand '%s' begint niet met magische tekens \"%%!\"\n" #: src/psgen.c:2473 #, c-format msgid "" "EPS file \"%s\" contains malformed %%%%BoundingBox row:\n" "\"%.*s\"\n" msgstr "" "EPS-bestand '%s' bevat onjuiste %%%%BoundingBox-regel:\n" "\"%.*s\"\n" #: src/psgen.c:2498 #, c-format msgid "EPS file \"%s\" is not a valid EPS file\n" msgstr "bestand '%s' is geen geldig EPS-bestand\n" #: src/psgen.c:2640 #, c-format msgid "passing through all input files for output language `%s'\n" msgstr "doorgeven van alle invoerbestanden voor uitvoertaal '%s'\n" #: src/psgen.c:2692 #, c-format msgid "passing through %s file \"%s\"\n" msgstr "doorgeven van %s-bestand '%s'\n" #: src/psgen.c:2795 #, c-format msgid "couldn't create temporary divert file: %s" msgstr "kan tijdelijk rangeerbestand niet aanmaken: %s" #: src/psgen.c:2812 #, c-format msgid "couldn't rewind divert file: %s" msgstr "kan niet terugspringen in rangeerbestand: %s" #: src/util.c:93 #, c-format msgid "missing argument: %s" msgstr "ontbrekend argument: %s" #: src/util.c:186 src/util.c:214 #, c-format msgid "illegal value \"%s\" for option %s" msgstr "ongeldige waarde '%s' voor optie %s" #: src/util.c:202 #, c-format msgid "invalid value \"%s\" for option %s" msgstr "ongeldige waarde '%s' voor optie %s" #: src/util.c:440 #, c-format msgid "illegal option: %s" msgstr "ongeldige optie: %s" #: src/util.c:619 #, c-format msgid "%s:%d: %%Format: no name" msgstr "%s:%d: %%Format: geen naam" #: src/util.c:630 #, c-format msgid "%s:%d: %%Format: too long name, maxlen=%d" msgstr "%s:%d: %%Format: naam is te lang; maximum lengte=%d" #: src/util.c:653 #, c-format msgid "%s:%d: %%Format: name \"%s\" is already defined" msgstr "%s:%d: %%Format: naam \"%s\" is al gedefinieerd" #: src/util.c:674 #, c-format msgid "%s:%d: %%HeaderHeight: no argument" msgstr "%s:%d: %%HeaderHeight: geen argument" #: src/util.c:696 #, c-format msgid "%s:%d: %%FooterHeight: no argument" msgstr "%s:%d: %%FooterHeight: geen argument" #: src/util.c:843 #, c-format msgid "%s: warning: font size is negative\n" msgstr "%s: waarschuwing: grootte van lettertype is negatief\n" #: src/util.c:845 #, c-format msgid "%s: warning: font width is negative\n" msgstr "%s: waarschuwing: breedte van lettertype is negatief\n" #: src/util.c:847 #, c-format msgid "%s: warning: font height is negative\n" msgstr "%s: waarschuwing: hoogte van lettertype is negatief\n" #: src/util.c:866 #, c-format msgid "reading AFM info for font \"%s\"\n" msgstr "inlezen van AFM-informatie voor lettertype '%s'\n" #: src/util.c:899 #, c-format msgid "couldn't open AFM file for font \"%s\", using default\n" msgstr "" "kan AFM-bestand voor lettertype '%s' niet openen; standaard wordt gebruikt\n" #: src/util.c:906 #, c-format msgid "couldn't open AFM file for the default font: %s" msgstr "kan AFM-bestand voor standaard lettertype niet openen: %s" #: src/util.c:1095 #, c-format msgid "downloading font \"%s\"\n" msgstr "ophalen van lettertype '%s'\n" #: src/util.c:1100 #, c-format msgid "couldn't open font description file \"%s\": %s\n" msgstr "kan lettertype-beschrijvingsbestand '%s' niet openen: %s\n" #: src/util.c:1392 #, c-format msgid "%s: too long format for %%D{} escape" msgstr "%s: opmaak in %%D{}-stuurcode is te lang" #: src/util.c:1477 #, c-format msgid "%s: unknown `%%' escape `%c' (%d)" msgstr "%s: onbekende %%-stuurcode '%c' (%d)" #: src/util.c:1515 #, c-format msgid "%s: no closing ')' for $() escape" msgstr "%s: geen afsluitende ')' in $()-stuurcode" #: src/util.c:1518 #, c-format msgid "%s: too long variable name for $() escape" msgstr "%s: variabelenaam is te lang in $()-stuurcode" #: src/util.c:1545 #, c-format msgid "%s: too long format for $D{} escape" msgstr "%s: opmaak in $D{}-stuurcode is te lang" #: src/util.c:1633 #, c-format msgid "%s: unknown `$' escape `%c' (%d)" msgstr "%s: onbekende $-stuurcode '%c' (%d)" #: src/util.c:1824 #, c-format msgid "malformed float dimension: \"%s\"" msgstr "onjuist drijvende-komma-getal '%s'" #: src/util.c:1946 #, c-format msgid "couldn't open input filter \"%s\" for file \"%s\": %s" msgstr "kan invoerfilter '%s' voor bestand '%s' niet openen: %s" #: src/util.c:1963 #, c-format msgid "couldn't open input file \"%s\": %s" msgstr "kan invoerbestand '%s' niet openen: %s" #: src/mkafmmap.c:167 #, c-format msgid "file=%s\n" msgstr "bestand=%s\n" #: src/mkafmmap.c:167 msgid "stdout" msgstr "standaarduitvoer" #: src/mkafmmap.c:175 #, c-format msgid "%s: couldn't open output file \"%s\"" msgstr "%s: kan uitvoerbestand '%s' niet openen" #: src/mkafmmap.c:189 msgid "couldn't create AFM library" msgstr "kan AFM-bibliotheek niet aanmaken" #: src/mkafmmap.c:238 #, c-format msgid "" "Usage: %s [OPTION]... FILE...\n" "Mandatory arguments to long options are mandatory for short options too.\n" " -h, --help print this help and exit\n" " -p, --output-file=NAME print output to file NAME (default file is\n" " font.map). If FILE is `-', leavy output to\n" " stdout.\n" " -V, --version print version number\n" msgstr "" "Gebruik: %s [OPTIE]... BESTAND...\n" "\n" "(Verplicht argument bij lange optie geldt ook voor de korte vorm.)\n" "\n" " -h, --help hulptekst tonen en stoppen\n" " -p, --output-file=BESTAND uitvoer opslaan in BESTAND (standaard 'font." "map');\n" " als BESTAND '-' is, dan naar standaarduitvoer\n" " -V, --version versie-informatie tonen en stoppen\n" #: states/lex.l:167 states/lex.l:173 msgid "error: EOF in comment" msgstr "Fout: bestandseinde bereikt in commentaar" #: states/lex.l:204 msgid "error: EOF in string constant" msgstr "Fout: bestandseinde bereikt in tekenreeksconstante" #: states/lex.l:311 msgid "error: EOF in regular expression" msgstr "Fout: bestandseinde bereikt in reguliere expressie" #: states/main.c:197 #, c-format msgid "states for %s" msgstr "'states' voor %s" #: states/main.c:252 #, c-format msgid "%s: malformed variable definition \"%s\"\n" msgstr "%s: onjuiste variabeledefinitie '%s'\n" #: states/main.c:280 #, c-format msgid "%s: couldn't create output file \"%s\": %s\n" msgstr "%s: kan uitvoerbestand '%s' niet aanmaken: %s\n" #: states/main.c:311 #, c-format msgid "%s: unknown warning level `%s'\n" msgstr "%s: onbekend waarschuwingsniveau '%s'\n" #: states/main.c:360 states/main.c:396 states/prims.c:1375 states/utils.c:227 #, c-format msgid "%s: out of memory\n" msgstr "%s: onvoldoende geheugen beschikbaar\n" #: states/main.c:421 #, c-format msgid "%s: couldn't open input file `%s': %s\n" msgstr "%s: kan invoerbestand '%s' niet openen: %s\n" #: states/main.c:445 #, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Gebruik: %s [OPTIE]... [BESTAND]...\n" "\n" "(Een verplicht argument bij een lange optie geldt ook voor de korte vorm.)\n" "\n" # XXX "definiëren" lukt niet wegens coderingsprobleem #: states/main.c:449 #, fuzzy, c-format msgid "" " -D, --define=VAR=VAL define variable VAR to have value VAL\n" " -f, --file=NAME read state definitions from file NAME\n" " -h, --help print this help and exit\n" " -o, --output=NAME save output to file NAME\n" " -p, --path=PATH set the load path to PATH\n" " -s, --state=NAME start from state NAME\n" " -v, --verbose increase the program verbosity\n" " -V, --version print version number\n" " -W, --warning=LEVEL set the warning level to LEVEL\n" msgstr "" " -D, --define=VAR=WAARDE variabele VAR defini-eren en WAARDE geven\n" " -f, --file=BESTAND toestandsdefinities uit BESTAND lezen\n" " -h, --help deze hulptekst tonen en stoppen\n" " -o, --output=BESTAND de uitvoer opslaan in BESTAND\n" " -p, --path=PAD PAD gebruiken voor het laden van bestanden\n" " -s, --state=NAAM bij de toestand met deze NAAM beginnen\n" " -v, --verbose breedsprakiger uitvoer produceren\n" " -V, --version versie-informatie tonen en stoppen\n" " -W, --warning=NIVEAU waarschuwingsproductie op dit NIVEAU instellen\n" #: states/prims.c:44 #, c-format msgid "%s:%d: %s: too few arguments\n" msgstr "%s:%d %s: te weinig argumenten\n" #: states/prims.c:54 #, c-format msgid "%s:%d: %s: too many arguments\n" msgstr "%s:%d %s: te veel argumenten\n" #: states/prims.c:107 states/prims.c:127 states/prims.c:253 states/prims.c:426 #: states/prims.c:901 #, c-format msgid "%s:%d: %s: illegal argument type\n" msgstr "%s:%d: %s: argument is van ongeldig type\n" #: states/prims.c:468 #, c-format msgid "%s: panic: " msgstr "%s: paniek: " #: states/prims.c:502 #, c-format msgid "%s:%d: %s: malformed version string `%s'\n" msgstr "%s:%d %s: onjuist versienummer '%s'\n" #: states/prims.c:517 #, c-format msgid "" "%s: FATAL ERROR: States version %s or higher is required for this script\n" msgstr "%s: Fout: 'states'-versie %s of hoger is vereist voor dit script\n" #: states/prims.c:608 states/prims.c:1274 #, c-format msgid "%s:%d: %s: start offset is bigger than end offset\n" msgstr "%s:%d %s: beginpositie is groter dan eindpositie\n" #: states/prims.c:617 states/prims.c:633 states/prims.c:1280 #, c-format msgid "%s:%d: %s: offset out of range\n" msgstr "%s:%d: %s: positie valt buiten bereik\n" #: states/prims.c:651 #, c-format msgid "%s:%d: %s: illegal argument\n" msgstr "%s:%d %s: ongeldig argument\n" #: states/prims.c:698 #, c-format msgid "%s:%d: %s: illegal regexp character syntax: %c\n" msgstr "%s:%d %s: ongeldige soort syntax '%c' voor reguliere expressies\n" # XXX "definiëren" lukt niet wegens coderingsprobleem #: states/prims.c:913 #, c-format msgid "%s:%d: %s: couldn't define state `%s'\n" msgstr "%s:%d: %s: kan toestand '%s' niet defini-eren\n" #: states/prims.c:1010 #, c-format msgid "%s: primitive `%s': too few arguments for format\n" msgstr "%s: primitief '%s': te weinig argumenten voor opmaak\n" #: states/prims.c:1038 #, c-format msgid "%s:%d: %s: argument %d doesn't match format\n" msgstr "%s:%d: %s: argument %d komt niet overeen met opmaak\n" #: states/prims.c:1078 #, c-format msgid "%s:%d: %s: no extra options can be specified for %%s\n" msgstr "%s:%d: %s: bij %%s kunnen geen extra opties worden gespecificeerd \n" #: states/prims.c:1087 #, c-format msgid "%s:%d: %s: illegal type specifier `%c'\n" msgstr "%s:%d: %s: ongeldige typespecificatie '%c'\n" #: states/process.c:115 #, c-format msgid "%s: undefined state `%s'\n" msgstr "%s: ongedefinieerde toestand '%s'\n" #: states/process.c:196 #, c-format msgid "%s: error: undefined variable `%s'\n" msgstr "%s: Fout: ongedefinieerde variabele '%s'\n" #: states/process.c:290 #, c-format msgid "%s: undefined super state `%s'\n" msgstr "%s: ongedefinieerde supertoestand '%s'\n" #: states/utils.c:260 #, c-format msgid "%s:%d: couldn't compile regular expression \"%s\": %s\n" msgstr "%s:%d: kan reguliere expressie '%s' niet compileren: %s\n" #: states/utils.c:449 states/utils.c:477 #, c-format msgid "%s: ouf of memory" msgstr "%s: geen geheugen meer" #: states/utils.c:454 #, c-format msgid "warning: redefining state `%s'" msgstr "waarschuwing: toestand '%s' wordt geherdefinieerd" #: states/utils.c:481 #, c-format msgid "%s:%d: warning: redefining subroutine `%s'\n" msgstr "%s:%d: waarschuwing: subroutine '%s' wordt geherdefinieerd\n" #: states/utils.c:578 #, c-format msgid "%s:%d: error: undefined variable `%s'\n" msgstr "%s:%d: Fout: ongedefinieerde variabele '%s'\n" #: states/utils.c:616 #, c-format msgid "%s:%d: error: couldn't set variable `%s'\n" msgstr "%s:%d: Fout: kan niets toewijzen aan variabele '%s'\n" #: states/utils.c:767 #, c-format msgid "%s:%d: error: expression between illegal types\n" msgstr "%s:%d: Fout: verschillende types gebruikt in expressie\n" #: states/utils.c:865 #, c-format msgid "%s:%d: error: too few arguments for subroutine\n" msgstr "%s:%d: Fout: te weinig argumenten voor subroutine\n" #: states/utils.c:872 #, c-format msgid "%s:%d: error: too many arguments for subroutine\n" msgstr "%s:%d: Fout: te veel argumenten voor subroutine\n" #: states/utils.c:926 #, c-format msgid "%s:%d: error: undefined procedure `%s'\n" msgstr "%s:%d: Fout: ongedefinieerde procedure '%s'\n" #: states/utils.c:1018 #, c-format msgid "%s:%d: error: illegal lvalue for assignment\n" msgstr "%s:%d: Fout: ongeldige linkerwaarde in arraytoewijzing\n" #: states/utils.c:1026 states/utils.c:1110 #, c-format msgid "%s:%d: error: array reference index is not integer\n" msgstr "%s:%d: Fout: array-index is geen geheel getal\n" #: states/utils.c:1032 #, c-format msgid "%s:%d: error: negative array reference index\n" msgstr "%s:%d: Fout: array-index is negatief\n" #: states/utils.c:1083 #, c-format msgid "%s:%d: error: illegal rvalue for string assignment\n" msgstr "%s:%d: Fout: ongeldige rechterwaarde in tekenreekstoewijzing\n" #: states/utils.c:1102 #, c-format msgid "%s:%d: error: illegal type for array reference\n" msgstr "%s:%d: Fout: kan argument niet als array indexeren\n" #: states/utils.c:1119 #, fuzzy, c-format msgid "%s:%d: error: array reference index out of range\n" msgstr "%s:%d: Fout: array-index valt buiten bereik\n" #: states/utils.c:1345 #, c-format msgid "%s: couldn't open definition file `%s': %s\n" msgstr "%s: kan definitiebestand '%s' niet openen: %s\n" #: states/utils.c:1401 #, c-format msgid "%s: autoloading `%s' from `%s'\n" msgstr "%s: automatisch laden van '%s' uit '%s'...\n" #~ msgid "library directory." #~ msgstr "..." # XXX "kopieën" lukt niet wegens coderingsprobleem #~ msgid "[ %d pages * %d copy ]" #~ msgstr "[ %d pagina's * %d kopie ]" enscript-1.6.5.90/po/pt_BR.gmo0000644000175000017500000004604411606344232012663 00000000000000Þ•¨\㜠(;)e y †$“I¸)"+L&x"Ÿ#ÂCæ*D'^!†,¨Õ%ó,-F t&•¼Î á1í#$C)h’¬ Ì!í/O%o#•$¹"Þ-/)H"r,•&Âé!/('X)€5ªà2433h)œ/Æ,ö3#/W-‡&µ+Ü=.F&u$œIÁ "?[$s˜ªÅ$Öû##Gbj|&¶ÈÚ ìvùipÚ$ö) -E 2s ¦ (Å 4î /#!S! q!-’!!À!1â!"3"S"!p"%’"¸"Ï" å"#'$#L#U#!o##‘#µ#È#+ç#$ .$ O$%p$$–$x»$!4%-V%%„%(ª%Ó%)ó%&5&#U&.y&¨&)½&ç&ú& '9+'e'm'†'I¦'ð'(C(%[(*( ¬(+¶(â(÷(;)HN)—)¶)&¾)&å)) *›6*TÒ+'/:/K/'[/Pƒ/Ô/7ì/;$09`02š0#Í0Oñ0A1Y1-s1(¡1,Ê1÷1%2,<2-i2!—2$¹2Þ2ó2 353'J3(r3/›3Ë3!ç3$ 4%.4'T4!|4!ž4(À4,é4)5$@5'e55.¨5$×5/ü52,6_6$|6B¡6*ä6+7:;7(v7DŸ7?ä7>$89c898/×8799?9:y9&´9-Û9E :-O:+}:+©:=Õ:;%0; V;w;#“;·;Ñ;ì;+ý;)<8<#V<z<™<¡<´<,Ó<==(=<=’K=tÞ>'S?2{?A®??ð?K0@+|@4¨@FÝ@<$A+aA.A@¼A4ýAG2B*zB*¥B1ÐB4C'7C_CtC)“C6½C1ôC &D2D(LD#uD™D*ªD3ÕD E!$E#FE'jE&’E„¹E*>F+iF.•F6ÄF%ûF?!G(aG"ŠG)­G1×G H+HGH]H$sHK˜H äHïH%IV4I"‹I®IFµI(üI3%JYJ4bJ—J´JLÔJO!K qK ’K,œK,ÉK-öKˆš%pGg„Oy4{mX[C.B¦ jd¨;“U0z=N"a ~7P!Ž3Y ¡\@D‚)Rtwl}Q5’]”>ŠAr†`/b˜‘8x |H9‡M-™T'§E€£‹h–o+^Zu—1cIF<ƒvJL_kž›#Œœ$V&q‰Ke…2?(s¢¤i f•6*¥W:nSŸ,  -L, --lines-per-page=NUM specify how many lines are printed on each page -m, --mail send mail upon completion -M, --media=NAME use output media NAME -n, --copies=NUM print NUM copies of each page -N, --newline=NL select the newline character. Possible values for NL are: n (`\n') and r (`\r'). -o an alias for option --output -O, --missing-characters list missing characters -p, --output=FILE leave output to file FILE. If FILE is `-', leave output to stdout. -P, --printer=NAME print output to printer NAME -q, --quiet, --silent be really quiet -r, --landscape print in landscape mode -R, --portrait print in portrait mode option %d = "%s" left in %s sent to %s $3v $-40N $3% pages $4L lines $E $C%s: FATAL ERROR: States version %s or higher is required for this script %s: autoloading `%s' from `%s' %s: couldn't create output file "%s": %s %s: couldn't open definition file `%s': %s %s: couldn't open input file `%s': %s %s: couldn't open output file "%s"%s: error: undefined variable `%s' %s: illegal newline character specifier: '%s': expected 'n' or 'r' %s: illegal option -- %c %s: invalid option -- %c %s: malformed variable definition "%s" %s: no closing ')' for $() 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: ouf of memory%s: out of memory %s: panic: %s: primitive `%s': too few arguments for format %s: too long format for $D{} escape%s: too long format for %%D{} escape%s: too long variable name for $() escape%s: undefined state `%s' %s: undefined super state `%s' %s: unknown `$' escape `%c' (%d)%s: unknown `%%' escape `%c' (%d)%s: unknown warning level `%s' %s: unrecognized option `%c%s' %s: unrecognized option `--%s' %s: warning: font height is negative %s: warning: font size is negative %s: warning: font width is negative %s:%d: %%FooterHeight: no argument%s:%d: %%Format: name "%s" is already defined%s:%d: %%Format: no name%s:%d: %%Format: too long name, maxlen=%d%s:%d: %%HeaderHeight: no argument%s:%d: %s: argument %d doesn't match format %s:%d: %s: couldn't define state `%s' %s:%d: %s: illegal argument %s:%d: %s: illegal argument type %s:%d: %s: illegal regexp character syntax: %c %s:%d: %s: illegal type specifier `%c' %s:%d: %s: malformed version string `%s' %s:%d: %s: no extra options can be specified for %%s %s:%d: %s: offset out of range %s:%d: %s: start offset is bigger than end offset %s:%d: couldn't compile regular expression "%s": %s %s:%d: error: array reference index is not integer %s:%d: error: couldn't set variable `%s' %s:%d: error: expression between illegal types %s:%d: error: illegal lvalue for assignment %s:%d: error: illegal rvalue for string assignment %s:%d: error: illegal type for array reference %s:%d: error: negative array reference index %s:%d: error: undefined variable `%s' %s:%d: warning: redefining subroutine `%s' EPS file "%s" contains malformed %%%%BoundingBox row: "%.*s" EPS file "%s" does not start with "%%!" magic EPS file "%s" is not a valid EPS file EPS file "%s" is too large for page Highlighting is supported for the following languages and file formats: Invalid back referenceInvalid character class nameInvalid collation characterInvalid content of \{\}Invalid preceding regular expressionInvalid range endInvalid regular expressionMemory exhaustedN-up argument must be power of 2: %dNo matchNo previous regular expressionPremature end of regular expressionRegular expression too bigSuccessTable of ContentsTrailing backslashTry `%s --help' for more information. Unmatched ( or \(Unmatched ) or \)Unmatched [ or [^Unmatched \{Usage: %s [OPTION]... FILE... Mandatory arguments to long options are mandatory for short options too. -h, --help print this help and exit -p, --output-file=NAME print output to file NAME (default file is font.map). If FILE is `-', leavy output to stdout. -V, --version print version number Usage: %s [OPTION]... [FILE]... Mandatory arguments to long options are mandatory for short options too. couldn't create AFM librarycouldn't create output file "%s": %scouldn't find encoding file "%s.enc": %s couldn't find header definition file "%s.hdr"couldn't find header definition file "%s.hdr": %s couldn't find prolog "%s": %s couldn't get passwd entry for uid=%d: %scouldn't open AFM file for font "%s", using default couldn't open AFM file for the default font: %scouldn't open AFM library: %scouldn't open EPS file "%s": %s couldn't open font description file "%s": %s couldn't open input file "%s": %scouldn't open input filter "%s" for file "%s": %scouldn't open printer `%s': %scouldn't rewind divert file: %scouldn't rewind toc file: %scouldn't stat input file "%s": %sdo not know anything about media "%s"downloading font "%s" error: EOF in commenterror: EOF in regular expressionerror: EOF in string constantfile alignment must be larger than zerofile=%s illegal N-up argument: %dillegal non-printable format "%s"illegal option %c for ^@epsf escapeillegal option: %sillegal page label format "%s"illegal style for wrapped line marker: "%s"illegal underlay style: %sillegal value "%s" for option %sinvalid value "%s" for option %sinvalid value for ^@bggray escape: %sinvalid value for ^@shade escape: %sknown media: name width height llx lly urx ury ------------------------------------------------------------ malformed %s escape: no '{' foundmalformed ^@epsf escape: no ']' after optionsmalformed ^@epsf escape: no '{' foundmalformed color spec for ^@%s escape: %smalformed float dimension: "%s"malformed font spec for ^@font escape: %smalformed font spec: %smalformed underlay position: %smissing character codes (decimal): must print at least one line per each page: %sno output generated non-printable character codes (decimal): output left in %s output sent to %s passing through %s file "%s" passing through all input files for output language `%s' printerprocessing file "%s"... reading AFM info for font "%s" set new marginals for media `%s' (%dx%d): llx=%d, lly=%d, urx=%d, ury=%d slice must be greater than zerostdoutsyntax error in option string %s="%s": missing end of quotation: %ctoo long argument for %s escape: %.*stoo long file name for ^@epsf escape: %.*struncatedunexpected EOF while scanning ^@epsf escapeunknown encoding: %sunknown special escape: %suser font encoding can be only the system's default or `ps'warning: didn't process following options from environment variable %s: warning: redefining state `%s'wrappedxcalloc(): couldn't allocate %d bytes xmalloc(): couldn't allocate %d bytes xrealloc(): couldn't reallocate %d bytes Project-Id-Version: GNU enscript 1.6.2 Report-Msgid-Bugs-To: bug-enscript@gnu.org POT-Creation-Date: 2011-07-10 16:43+0100 PO-Revision-Date: 2000-11-01 14:00+0300 Last-Translator: Cyro Mendes De Moraes Neto Language-Team: Brazilian Portuguese Language: pt_BR MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8-bit -L, --lines-per-page=NUM especificar quantas linhas são impressas em cada página -m, --mail enviar mensagem quando completo -M, --media=NOME usar media de saída NAME -n, --copies=NUM imprimir cópias NUM para cada página -N, --newline=NL selecionar caractere de nova linha. Possível valores para NL são ('\') e r (`\r'). -o um alias para opção --output -O, --missing-characters listar caracteres ausentes -p, --output=ARQUIVO deixar saída para arquivo FILE. Se FILE for `-', deixar saída para stdout. -P, --printer=NOME imprimir saída para impressora NAME -q, --quiet, --silent estar realmente quieto -r, --landscape imprimir em modo paisagem -R, --portrait imprimir em modo retrato opção %d = "%s" esquerda em %s enviar para %s $3v $-40N $3% páginas $4L linhas $E $C%s: ERRO FATAL: Versão de estados %s ou mail alto é necessário para este script %s: lendo `%s' de `%s' %s: não foi possível criar o arquivo de saída "%s": %s %s: não foi possível abrir o arquivo de definição `%s': %s %s: não foi possível abrir o arquivo de entrada `%s': %s %s: não foi possível abrir o arquivo de saída "%s"%s: erro: variável indefinida `%s' %s: especificador de caractere de nova linha inválido: '%s': exceto 'n' ou 'r' %s: opção ilegal -- %c %s: opção inválida -- %c %s: variável de definição mal elaborada "%s" %s: sem encerramento ')' para $() escape%s: a opção `%c%s' não permite um argumento %s: a opção `%s' está ambígua %s: a opção `%s' requer um argumento %s: a opção `--%s' não permite um argumento %s: a opção `-W %s' não permite um argumento %s: a opção `-W %s' está ambígua %s: opção requer um argumento -- %c %s: falta de memória%s: falta de memória %s: pane: %s: primitivo `%s': poucos argumentos para o formato %s: formato muito longo para saída $D{}%s: formato muito longo para saída %%D{}%s: nome de variável muito longa para saída $()%s: status indefinido `%s' %s: super status indefinido `%s' %s: saída `$' desconhecida `%c' (%d)%s: saída `%%' desconhecida `%c' (%d)%s: nível de cuidado desconhecido `%s' %s: opção não reconhecida `%c%s' %s: opção não reconhecida `--%s' %s: cuidado: altura da fonte é negativa %s: cuidado: tamanho da fonte está negativa %s: cuidado: largura de fonte é negativa %s:%d: %%FooterHeight: sem argumento%s:%d: %%Formato: nome "%s" já definido%s:%d: %%Formato: sem nome%s:%d: %%Formato: nome muito grande, maxlen=%d%s:%d: %%HeaderHeight: sem argumento%s:%d: %s: argumento %d ocorrência sem formato %s:%d: %s: não foi possível definir o status `%s' %s:%d: %s: argumento ilegal %s:%d: %s: tipo de argumento ilegal %s:%d: %s: sintaxe ilegal dos caracteres da expressão regular: %c %s:%d: %s: tipo especificador ilegal `%c' %s:%d: %s: versão de string mal feita `%s' %s:%d: %s: não se pode especificar opções extras para %%s %s:%d: %s: deslocamento fora de alcance %s:%d: %s: início deslocamento é maior do que final de deslocamento %s:%d: não foi possível compilara a expressão regular "%s": %s %s:%d: erro: índice de referência de disposição não é inteiro %s:%d: erro: não foi possível configurar a variável `%s' %s:%d: expressao entre tipos incorretos ou ilegais mesmo %s:%d: erro: lvalor inválido para a atribuição %s:%d: erro: rvalor inválido para atribuição de string %s:%d: erro: tipo inválido para referência de disposição %s:%d: erro: índice de referência de disponsição negativo %s:%d: erro: variável indefinida `%s' %s:%d: cuidado: redefinindo sub-rotinas `%s' Arquivo EPS "%s" contém %%%%BoundingBox mal formados na fila: "%.*s" arquivo EPS "%s" não inicia com "%%!" mágico o arquivo "%s" não é um arquivo EPS válido arquivo EPS "%s" é mais largo que a página O destaque é suportado para os idiomas e formatos a seguir: Referência anterior inválidaNome da classe de caracteres inválidaCaractere de comparação inválidoConteúdo inválido para \{\}Expressão regular anterior inválidaFinal de alcance inválidoExpressão regular inválidaAcabou a memóriao arugmento N-up deve ser potência de 2: %dSem ocorrênciaSem expressão regular próximaFinal prematuroda expressão regularExpressão regular muito grandeSucessoTabela de ConteúdoBarra invertida de referencialTente `%s --help' para maiores informações. Não combina ( ou \(Não combina ) ou \)Não combina [ ou [^Não combina \{Uso:%s [OPÇÃO]... ARQUIVO... Argumentos obrigatórios para opções longas são obrigatórios para opções curtas também. -h, --help imprimir esta ajuda e sair -p, --output-file=NOME imprimir saída para arquivo NAME (arquivo padrão é font.map). Se ARQUIVO for '-', deixar saída para stdout. -V, --version imprimir número da versão Uso:%s [OPÇÃO]... ARQUIVO... Argumentos obrigatórios para opções longas são obrigatórios para opções curtas também. não foi possível criar a biblioteca AFMnão foi possível criar o arquivo de saída "%s": %snão foi possível localizar o arquivo de codificação "%s.enc": %s não pode encontrar o cabeçalho de definição do arquivo "%s.hdr"não foi possível encontrar o cabeçalho de definição doarquivo "%s.hdr": %s não foi possível encontrar prolog "%s": %s não foi possível obter a contrasenha para uid=%d: %snão foi possível abrir o arquivo AFM para fonte "%s", usando o padrão não foi possível abrir o arquivo AFM para a fonte padrão: %snão foi possível abrir a biblioteca AFM: %snão foi possível abrir o arquivo EPS "%s": %s não foi possível abrir o arquivo de descrição da fonte "%s": %s não foi possível abrir o arquivo de entrada "%s": %snão foi possível abrir o filtro de entrada "%s" para o arquivo "%s": %snão foi possível abrir impressora `%s': %snão pôde regressar ao arquivo de desvio:%snão foi possível reverter o arquivo de índice: %snão foi possível avaliar arquivo de entrada "%s": %snada conhecido sobre o dispositivo "%s"baixando fonte "%s" erro: Fim de Arquivo comentadoerro: fim de arquivo na expressão regularerro: fim de arquivo na cadeia de caracteres constantealinhamento de arquivo deve ser maior do que zeroarquivo=%s argumento N-up ilegal: %dformato incorreto do nao imprimível "%s"opção inválida %c para saída ^@epsfopção ilegal: %sformato incorreto do rótulo da página "%s"estilo ilegal para marcador de linha quebrada: "%s"estilo underlay ilegal: %svalor ilegal "%s" para a opção %svalor inválido "%s" para a opção %svalor inválido para ^@bggray escape: %svalor inválido para ^@shade escape: %sdispositivo conhecido: nome largura altura llx lly urx ury ------------------------------------------------------------ saída %s mal elaborada: sem '{' encontradosaída ^@epsf mal elaborada: sem opções ']'saída ^@epsf mal elaborada: sem '{' encontradoespecificação de cor mal elaborada para saída ^@%s: %sdimensão do flutuante mal feita: "%s"especificação de fonte mal elaborada para saída de fonte ^@: %sespecificação de fonte mal elaborada: %sposição underlay mal elaborada: %sfaltando códigos de caractere (decimal): deve imprimir pelo menos uma linha por página: %ssaída não gerada códigos caracter(decimal) não imprimíveis: saída esquerda em %s enviar saída para %s passando através do %s arquivo "%s" passando através de todos os arquivos de entrada para língua de saída '%s' impressoraprocessando o arquivo "%s"... lendo informação AFM para fonte "%s" configure novas margens para dispositivo `%s' (%dx%d): llx=%d, lly=%d, urx=%d, ury=%d divisão deve ser maior do que zerostdoutErro de sintaxe na string de opção %s="%s": Faltando fim do trecho: %cargumento muto longo para saída %s: %.*snome de arquivo muito longo para saída ^@epsf: %.*struncadofim de arquivo inesperado verificando a saída ^@epsfcodificação desconhecida: %ssaída especial desconhecida: %scodificação de fonte de usuário pode ser somente o padrão do sistema ou `ps'cuidado: não processou as opções a seguir a partir da variável de ambiente %s: cuidado: redefinindo status `%s'envolvidoxcalloc(): não foi possível alocar %d bytes xmalloc(): não foi possível alocar %d bytes xrealloc(): não foi possível alocar %d bytes enscript-1.6.5.90/po/Rules-quot0000644000175000017500000000337611606344063013157 00000000000000# 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-create: $(MAKE) en@quot.po-update en@boldquot.po-create: $(MAKE) en@boldquot.po-update en@quot.po-update: en@quot.po-update-en en@boldquot.po-update: en@boldquot.po-update-en .insert-header.po-update-en: @lang=`echo $@ | sed -e 's/\.po-update-en$$//'`; \ if test "$(PACKAGE)" = "gettext"; 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 enscript-1.6.5.90/po/remove-potcdate.sin0000644000175000017500000000066011606344064014757 00000000000000# 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 } enscript-1.6.5.90/po/sv.po0000644000175000017500000012257311606344232012143 00000000000000# Swedish messages for enscript # Copyright (C) 2008 Free Software Foundation, Inc. # This file is distributed under the same license as the enscript package. # Martin Sjögren , 2002-2003. # Christer Andersson , 2008. # msgid "" msgstr "" "Project-Id-Version: enscript 1.6.4\n" "Report-Msgid-Bugs-To: bug-enscript@gnu.org\n" "POT-Creation-Date: 2011-07-10 16:43+0100\n" "PO-Revision-Date: 2008-01-17 08:20+0100\n" "Last-Translator: Christer Andersson \n" "Language-Team: Swedish \n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=iso-8859-1\n" "Content-Transfer-Encoding: 8bit\n" #: compat/getopt.c:628 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "%s: flaggan \"%s\" är tvetydig\n" #: compat/getopt.c:652 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "%s: flaggan \"--%s\" tillåter inte något argument\n" #: compat/getopt.c:657 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "%s: flaggan \"%c%s\" tillåter inte något argument\n" #: compat/getopt.c:674 compat/getopt.c:847 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "%s: flaggan \"%s\" kräver ett argument\n" #: compat/getopt.c:703 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "%s: okänd flagga \"--%s\"\n" #: compat/getopt.c:707 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "%s: okänd flagga \"%c%s\"\n" #: compat/getopt.c:733 #, c-format msgid "%s: illegal option -- %c\n" msgstr "%s: otillåten flagga -- %c\n" #: compat/getopt.c:736 #, c-format msgid "%s: invalid option -- %c\n" msgstr "%s: ogiltig flagga -- %c\n" #: compat/getopt.c:766 compat/getopt.c:896 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: flaggan kräver ett argument -- %c\n" #: compat/getopt.c:813 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "%s: flaggan \"-W %s\" är tvetydig\n" #: compat/getopt.c:831 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s: flaggan \"-W %s\" tillåter inte något argument\n" #: compat/xalloc.c:70 #, c-format msgid "xmalloc(): couldn't allocate %d bytes\n" msgstr "xmalloc(): kunde inte allokera %d byte\n" #: compat/xalloc.c:88 #, c-format msgid "xcalloc(): couldn't allocate %d bytes\n" msgstr "xcalloc(): kunde inte allokera %d byte\n" #: compat/xalloc.c:109 #, c-format msgid "xrealloc(): couldn't reallocate %d bytes\n" msgstr "xrealloc(): kunde inte omallokera %d byte\n" #: compat/regex.c:996 msgid "Success" msgstr "Lyckades" #: compat/regex.c:997 msgid "No match" msgstr "Inga träffar" #: compat/regex.c:998 msgid "Invalid regular expression" msgstr "Ogiltigt reguljärt uttryck" #: compat/regex.c:999 msgid "Invalid collation character" msgstr "Ogiltigt kollationeringstecken" #: compat/regex.c:1000 msgid "Invalid character class name" msgstr "Ogiltigt teckenklassnamn" #: compat/regex.c:1001 msgid "Trailing backslash" msgstr "Eftersläpande omvänt snedstreck" #: compat/regex.c:1002 msgid "Invalid back reference" msgstr "Ogiltig bakåtreferens" #: compat/regex.c:1003 msgid "Unmatched [ or [^" msgstr "Obalanserad [ eller [^" #: compat/regex.c:1004 msgid "Unmatched ( or \\(" msgstr "Obalanserad ( eller \\(" #: compat/regex.c:1005 msgid "Unmatched \\{" msgstr "Obalanserad \\{" #: compat/regex.c:1006 msgid "Invalid content of \\{\\}" msgstr "Ogiltigt innehåll i \\{\\}" #: compat/regex.c:1007 msgid "Invalid range end" msgstr "Ogiltigt omfångsslut" #: compat/regex.c:1008 msgid "Memory exhausted" msgstr "Minnet slut" #: compat/regex.c:1009 msgid "Invalid preceding regular expression" msgstr "Ogiltigt föregående reguljärt uttryck" #: compat/regex.c:1010 msgid "Premature end of regular expression" msgstr "För tidigt slut på reguljärt uttryck" #: compat/regex.c:1011 msgid "Regular expression too big" msgstr "Reguljärt uttryck för stort" #: compat/regex.c:1012 msgid "Unmatched ) or \\)" msgstr "Obalanserad ) eller \\)" #: compat/regex.c:5458 msgid "No previous regular expression" msgstr "Inget föregående reguljärt uttryck" #: src/main.c:949 #, no-c-format msgid "$3v $-40N $3% pages $4L lines $E $C" msgstr "$3v $-40N $3% sidor $4L rader $E $C" #: src/main.c:979 #, c-format msgid "couldn't get passwd entry for uid=%d: %s" msgstr "kunde inte hämta passwd-post för uid=%d: %s" #: src/main.c:1071 #, c-format msgid "couldn't read config file \"%s/%s\": %s" msgstr "kunde inte läsa konfigurationsfilen \"%s/%s\": %s" #: src/main.c:1075 msgid "I did also try the following directories:" msgstr "Jag försökte också med följande kataloger:" #: src/main.c:1076 src/main.c:1077 src/main.c:1078 #, c-format msgid "\t%s" msgstr "\t%s" #: src/main.c:1079 msgid "\t../lib" msgstr "\t../lib" #: src/main.c:1080 msgid "\t../../lib" msgstr "\t../../lib" #: src/main.c:1082 msgid "This is probably an installation error. Please, try to rebuild:" msgstr "Det här är förmodligen ett installationsfel. Försök bygga om:" #: src/main.c:1083 msgid "\tmake distclean" msgstr "\tmake distclean" #: src/main.c:1084 msgid "\t./configure --prefix=PREFIX" msgstr "\t./configure --prefix=PREFIX" #: src/main.c:1085 msgid "\tmake" msgstr "\tmake" #: src/main.c:1086 msgid "\tmake check" msgstr "\tmake check" #: src/main.c:1087 msgid "\tmake install" msgstr "\tmake install" #: src/main.c:1088 #, fuzzy msgid "" "or set the environment variable `ENSCRIPT_LIBRARY' to point to your library " "directory." msgstr "eller sätt miljövariabeln \"ENSCRIPT_LIBRARY\" att peka till din" #: src/main.c:1161 #, c-format msgid "unknown encoding: %s" msgstr "okänd kodning: %s" #: src/main.c:1180 #, c-format msgid "couldn't open AFM library: %s" msgstr "kunde inte öppna AFM-bibliotek: %s" #: src/main.c:1209 #, c-format msgid "" "known media:\n" "name width\theight\tllx\tlly\turx\tury\n" "------------------------------------------------------------\n" msgstr "" "kända media:\n" "namn bredd\thöjd\tnvx\tnvy\töhx\töhy\n" "------------------------------------------------------------\n" #: src/main.c:1228 #, c-format msgid "do not know anything about media \"%s\"" msgstr "känner inte till något om formatet \"%s\"" #: src/main.c:1272 #, c-format msgid "" "set new marginals for media `%s' (%dx%d): llx=%d, lly=%d, urx=%d, ury=%d\n" msgstr "" "sätt nya marginaler för formatet \"%s\" (%d×%d): nvx=%d, nvy=%d, öhx=%d, öhy" "%d\n" #: src/main.c:1283 #, c-format msgid "illegal page label format \"%s\"" msgstr "otillåtet sidetikettsformat \"%s\"" #: src/main.c:1295 #, c-format msgid "illegal non-printable format \"%s\"" msgstr "otillåtet ej utskrivbart-format \"%s\"" #: src/main.c:1309 #, c-format msgid "illegal style for wrapped line marker: \"%s\"" msgstr "otillåten stil på radbrytningstecken: \"%s\"" #: src/main.c:1319 #, c-format msgid "illegal N-up argument: %d" msgstr "otillåtet N-upp-argument: %d" #: src/main.c:1324 #, c-format msgid "N-up argument must be power of 2: %d" msgstr "N-upp-argument måste vara en potens av 2: %d" #: src/main.c:1401 #, c-format msgid "malformed underlay position: %s" msgstr "felutformad underlagsposition: %s" #: src/main.c:1424 #, c-format msgid "illegal underlay style: %s" msgstr "otillåten underlagsstil: %s" #: src/main.c:1451 #, c-format msgid "" "Highlighting is supported for the following languages and file formats:\n" "\n" msgstr "" "Syntaxmarkering stöds för följande språk och filformat:\n" "\n" #: src/main.c:1632 #, c-format msgid "couldn't create temporary toc file: %s" msgstr "kunde inte skapa temporär innehållsfil: %s" #: src/main.c:1679 #, c-format msgid "couldn't stat input file \"%s\": %s" msgstr "kunde inte ta status på indatafilen \"%s\": %s" #: src/main.c:1699 #, c-format msgid "couldn't rewind toc file: %s" msgstr "kunde inte spola tillbaks innehållsfilen: %s" #: src/main.c:1705 msgid "Table of Contents" msgstr "Innehåll" #: src/main.c:1731 msgid "no output generated\n" msgstr "ingen utdata genererad\n" #: src/main.c:1736 #, c-format msgid "output sent to %s\n" msgstr "utdata skickad till %s\n" #: src/main.c:1737 src/main.c:1768 msgid "printer" msgstr "skrivare" #: src/main.c:1739 #, c-format msgid "output left in %s\n" msgstr "utdata lämnad i %s\n" #: src/main.c:1760 #, c-format msgid "%d page" msgid_plural "%d pages" msgstr[0] "" msgstr[1] "" #: src/main.c:1762 #, c-format msgid "%d copy" msgid_plural "%d copies" msgstr[0] "" msgstr[1] "" #: src/main.c:1767 #, c-format msgid " sent to %s\n" msgstr " skickad till %s\n" #: src/main.c:1770 #, c-format msgid " left in %s\n" msgstr " lämnad i %s\n" #: src/main.c:1776 #, fuzzy, c-format msgid "%d line was %s\n" msgid_plural "%d lines were %s\n" msgstr[0] "%d rader blev %s\n" msgstr[1] "%d rader blev %s\n" #: src/main.c:1781 msgid "truncated" msgstr "avkortade" #: src/main.c:1781 msgid "wrapped" msgstr "radbrutna" #: src/main.c:1788 #, fuzzy, c-format msgid "%d character was missing\n" msgid_plural "%d characters were missing\n" msgstr[0] "%d tecken saknades\n" msgstr[1] "%d tecken saknades\n" #: src/main.c:1794 msgid "missing character codes (decimal):\n" msgstr "saknade teckenkoder (decimalt):\n" #: src/main.c:1803 #, fuzzy, c-format msgid "%d non-printable character\n" msgid_plural "%d non-printable characters\n" msgstr[0] "%d ej utskrivbara tecken\n" msgstr[1] "%d ej utskrivbara tecken\n" #: src/main.c:1810 msgid "non-printable character codes (decimal):\n" msgstr "ej utskrivbara teckenkoder (decimalt):\n" #: src/main.c:1859 #, c-format msgid "couldn't open printer `%s': %s" msgstr "kunde inte öppna skrivaren \"%s\": %s" #: src/main.c:1868 #, c-format msgid "couldn't create output file \"%s\": %s" msgstr "kunde inte skapa utdatafilen \"%s\": %s" #: src/main.c:1885 #, c-format msgid "couldn't close output file \"%s\": %s" msgstr "kunde inte stänga utdatafilen \"%s\": %s" #: src/main.c:1943 #, c-format msgid "" "syntax error in option string %s=\"%s\":\n" "missing end of quotation: %c" msgstr "" "syntaxfel i flaggsträngen %s=\"%s\":\n" "saknar slut på citering: %c" #: src/main.c:1975 #, c-format msgid "" "warning: didn't process following options from environment variable %s:\n" msgstr "varning: behandlade inte följande flaggor från miljövariabeln %s:\n" #: src/main.c:1979 #, c-format msgid " option %d = \"%s\"\n" msgstr " flaggan %d = \"%s\"\n" #: src/main.c:2025 msgid "number of columns must be larger than zero" msgstr "antalet kolumner måste vara större än noll" #: src/main.c:2083 msgid "file alignment must be larger than zero" msgstr "filgrupperingen måste vara större än noll" #: src/main.c:2138 src/main.c:2144 src/main.c:2355 src/util.c:416 #, c-format msgid "malformed font spec: %s" msgstr "felutformad typsnittsspecifikation: %s" #: src/main.c:2160 #, c-format msgid "couldn't find header definition file \"%s.hdr\"" msgstr "kunde inte hitta huvuddefinitionsfil \"%s.hdr\"" #: src/main.c:2204 #, c-format msgid "must print at least one line per each page: %s" msgstr "måste skriva ut åtminstone en rad per sida: %s" #: src/main.c:2224 #, c-format msgid "%s: illegal newline character specifier: '%s': expected 'n' or 'r'\n" msgstr "%s: otillåtet nyradstecken: \"%s\"': väntade \"n\" eller \"r\"\n" #: src/main.c:2313 #, c-format msgid "malformed argument `%s' for option -W, --option: no comma found" msgstr "" "felformulerat argument \"%s\" till flaggan -W, --option: inget komma funnet" #: src/main.c:2318 #, c-format msgid "helper application specification must be single character: %s" msgstr "specifikation av hjälpapplikation måste vara ett enda tecken: %s" #: src/main.c:2414 msgid "slice must be greater than zero" msgstr "skivnumret måste vara större än noll" #: src/main.c:2495 states/main.c:318 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Prova \"%s --help\" för mer information.\n" #: src/main.c:2515 #, fuzzy, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" "Mandatory arguments to long options are mandatory for short options too.\n" " -# an alias for option -n, --copies\n" " -1 same as --columns=1\n" " -2 same as --columns=2\n" " --columns=NUM specify the number of columns per page\n" " -a, --pages=PAGES specify which pages are printed\n" " -A, --file-align=ALIGN align separate input files to ALIGN\n" " -b, --header=HEADER set page header\n" " -B, --no-header no page headers\n" " -c, --truncate-lines cut long lines (default is to wrap)\n" " -C[START], --line-numbers[=START]\n" " precede each line with its line number\n" " -d an alias for option --printer\n" " -D, --setpagedevice=KEY[:VALUE]\n" " pass a page device definition to output\n" " -e[CHAR], --escapes[=CHAR] enable special escape interpretation\n" msgstr "" "Användning: %s [FLAGGA]... [FIL]...\n" "Obligatoriska argument till långa flaggor är obligatoriska även för de " "korta.\n" " -# ett alias för -n, --copies\n" " -1 samma som --columns=1\n" " -2 samma som --columns=2\n" " --columns=NUM ange antalet kolumner per sida\n" " -a, --pages=PAGES ange vilka sidor som skrivs ut\n" " -A, --file-align=JUSTERING justera separata indatafiler till JUSTERING\n" " -b, --header=HUVUD sätt sidhuvud\n" " -B, --no-header inga sidhuvuden\n" " -c, --truncate-lines bryt av långa rader (förvalet är att radbryta)\n" " -C, --line-numbers[=START]\n" " skriv radnumret före varje rad\n" " -d ett alias för flaggan --printer\n" " -D, --setpagedevice=NYCKEL[:VÄRDE]\n" " ange en sidenhetsdefinition till utdatan\n" " -e, --escapes[=TECKEN] tillåt speciell kontrollsekvenstolkning\n" #: src/main.c:2535 #, fuzzy, c-format msgid " -E[LANG], --highlight[=LANG] highlight source code\n" msgstr " -E, --highlight[=SPRÅK] Syntaxmarkera källkod\n" #: src/main.c:2538 #, fuzzy, c-format msgid "" " -f, --font=NAME use font NAME for body text\n" " -F, --header-font=NAME use font NAME for header texts\n" " -g, --print-anyway nothing (compatibility option)\n" " -G same as --fancy-header\n" " --fancy-header[=NAME] select fancy page header\n" " -h, --no-job-header suppress the job header page\n" " -H[NUM], --highlight-bars[=NUM] specify how high highlight bars are\n" " -i, --indent=NUM set line indent to NUM characters\n" " -I, --filter=CMD read input files through input filter CMD\n" " -j, --borders print borders around columns\n" " -J, an alias for option --title\n" " -k, --page-prefeed enable page prefeed\n" " -K, --no-page-prefeed disable page prefeed\n" " -l, --lineprinter simulate lineprinter, this is an alias for:\n" " --lines-per-page=66, --no-header, --" "portrait,\n" " --columns=1\n" msgstr "" " -f, --font=NAMN använd typsnittet NAMN för vanlig text\n" " -F, --header-font=NAMN använd typsnittet NAMN för sidhuvudstext\n" " -g, --print-anyway inget (kompatibilitetsflagga)\n" " -G samma som --fancy-header\n" " --fancy-header[=NAMN] välj konstfärdigt sidhuvud\n" " -h, --no-job-header välj bort jobbhuvudsidan\n" " -H, --highlight-bars=NUM ange hur höga markeringsstrecken ska vara\n" " -i, --indent=NUM sätt radindenteringen till NUM tecken\n" " -I, --filter=KOMMANDO läs indatafiler genom indatafiltret KOMMANDO\n" " -j, --borders skriv ut kanter runt kolumner\n" " -J, ett alias för flaggan --title\n" " -k, --page-prefeed tillåt förmatning av sidor\n" " -K, --no-page-prefeed tillåt inte förmatning av sidor\n" " -l, --lineprinter simulera en radskrivare, detta är ett alias " "för:\n" " --lines-per-page=66, --no-header, --" "portrait,\n" " --columns=1\n" #: src/main.c:2556 #, c-format msgid "" " -L, --lines-per-page=NUM specify how many lines are printed on each " "page\n" " -m, --mail send mail upon completion\n" " -M, --media=NAME use output media NAME\n" " -n, --copies=NUM print NUM copies of each page\n" " -N, --newline=NL select the newline character. Possible\n" " values for NL are: n (`\\n') and r (`\\r').\n" " -o an alias for option --output\n" " -O, --missing-characters list missing characters\n" " -p, --output=FILE leave output to file FILE. If FILE is `-',\n" " leave output to stdout.\n" " -P, --printer=NAME print output to printer NAME\n" " -q, --quiet, --silent be really quiet\n" " -r, --landscape print in landscape mode\n" " -R, --portrait print in portrait mode\n" msgstr "" " -L, --lines-per-page=NUM ange antalet rader som ska skrivas på varje " "sida\n" " -m, --mail skicka ett e-post när det är klart\n" " -M, --media=NAMN använd utdataformatet NAMN\n" " -n, --copies=NUM skriv ut NUM kopior av varje sida\n" " -N, --newline=NR välj nyradstecken. Möjliga värden för NR är:\n" " n (\"\\n\") och r (\"\\r\").\n" " -o ett alias för flaggan --output\n" " -O, --missing-characters lista saknade tecken\n" " -p, --output=FIL lämna utdatan i filen FIL. Om FIL är \"-\",\n" " lämna utdatan till standard ut.\n" " -P, --printer=NAMN skriv ut på skrivaren NAMN\n" " -q, --quiet, --silent var väldigt tyst\n" " -r, --landscape skriv ut i landskapsläge\n" " -R, --portrait skriv ut i porträttläge\n" #: src/main.c:2572 #, fuzzy, c-format msgid "" " -s, --baselineskip=NUM set baselineskip to NUM\n" " -S, --statusdict=KEY[:VALUE]\n" " pass a statusdict definition to the output\n" " -t, --title=TITLE set banner page's job title to TITLE. Option\n" " sets also the name of the input file stdin.\n" " -T, --tabsize=NUM set tabulator size to NUM\n" " -u[TEXT], --underlay[=TEXT] print TEXT under every page\n" " -U, --nup=NUM print NUM logical pages on each output page\n" " -v, --verbose tell what we are doing\n" " -V, --version print version number\n" " -w, --language=LANG set output language to LANG\n" " -W, --options=APP,OPTION pass option OPTION to helper application APP\n" " -X, --encoding=NAME use input encoding NAME\n" " -z, --no-formfeed do not interpret form feed characters\n" " -Z, --pass-through pass through PostScript and PCL files\n" " without any modifications\n" msgstr "" " -s, --baselineskip=NUM sätt radavståndet till NUM\n" " -S, --statusdict=NYCKEL[:VÄRDE]\n" " skicka en statuslexikondefinition till utdatan\n" " -t, --title=TITEL sätt banderollsidans jobbtitel till TITEL.\n" " Flaggan sätter också namnet på indatafilen\n" " standard in.\n" " -T, --tabsize=NUM sätt tabulatorstorleken till NUM\n" " -u, --underlay[=TEXT] skriv TEXT under varje sida\n" " -U, --nup=NUM skriv ut NUM logiska sidor per utdatasida\n" " -v, --verbose tala om vad vi gör\n" " -V, --version skriv ut versionsnummer\n" " -w, --language=SPRÅK sätt utdataspråket till SPRÅK\n" " -W, --options=APP,FLAGGA skicka flaggan FLAGGA till hjälpapplikationen\n" " APP\n" " -X, --encoding=NAMN använd indatakodningen NAMN\n" " -z, --no-formfeed tolka inte sidmatningstecken\n" " -Z, --pass-through skicka genom PostScript- och PCL-filer utan\n" " några ändringar\n" #: src/main.c:2590 #, c-format msgid "" "Long-only options:\n" " --color[=bool] create color outputs with states\n" " --continuous-page-numbers count page numbers across input files. Don't\n" " restart numbering at beginning of each file.\n" " --download-font=NAME download font NAME\n" " --extended-return-values enable extended return values\n" " --filter-stdin=NAME specify how stdin is shown to the input filter\n" " --footer=FOOTER set page footer\n" " --h-column-height=HEIGHT set the horizontal column height to HEIGHT\n" " --help print this help and exit\n" msgstr "" "Flaggor med enbart långa namn:\n" " --color[=boolesk] skapa färgutdata med tillstånd\n" " --continuous-page-numbers räkna sidnummer över flera indatafiler. Börja\n" " inte om numreringen för nya filer.\n" " --download-font=NAMN hämta hem typsnittet NAMN\n" " --extended-return-values använd utökade returvärden\n" " --filter-stdin=NAMN ange hur standard in visas för indatafiltret\n" " --footer=SIDFOT sätt sidfoten\n" " --h-column-height=HÖJD sätt den horisontella kolumnhöjden till HÖJD\n" " --help visa denna hjälptexten och avsluta\n" #: src/main.c:2601 #, c-format msgid "" " --help-highlight describe all supported --highlight languages\n" " and file formats\n" " --highlight-bar-gray=NUM print highlight bars with gray NUM (0 - 1)\n" " --list-media list names of all known media\n" " --margins=LEFT:RIGHT:TOP:BOTTOM\n" " adjust page marginals\n" " --mark-wrapped-lines[STYLE]\n" " mark wrapped lines in the output with STYLE\n" " --non-printable-format=FMT specify how non-printable chars are printed\n" msgstr "" " --help-highlight beskriv alla språk och filformat med\n" " stöd för --highlight\n" " --highlight-bar-gray=NUM skriv ut markeringsrader med grå NUM (0 - 1)\n" " --list-media lista namnen på alla kända media\n" " --margins=VÄNSTER:HÖGER:TOPP:BOTTEN\n" " justera sidmarginaler\n" " --mark-wrapped-lines[STIL]\n" " markera radbrutna rader i utdatan med STIL\n" " --non-printable-format=FMT ange hur ej utskrivbara tecken ska skrivas ut\n" #: src/main.c:2612 #, c-format msgid "" " --nup-columnwise layout pages in the N-up printing columnwise\n" " --nup-xpad=NUM set the page x-padding of N-up printing to NUM\n" " --nup-ypad=NUM set the page y-padding of N-up printing to NUM\n" " --page-label-format=FMT set page label format to FMT\n" " --ps-level=LEVEL set the PostScript language level that " "enscript\n" " should use\n" " --printer-options=OPTIONS pass extra options to the printer command\n" " --rotate-even-pages rotate even-numbered pages 180 degrees\n" msgstr "" " --nup-columnwise lägg ut sidor i kolumner i N-upp-utskrift\n" " --nup-xpad=NUM sätt sidans x-utfyllning för N-upp-utskrift " "till\n" " NUM\n" " --nup-ypad=NUM sätt sidans y-utfyllning för N-upp-utskrift " "till\n" " NUM\n" " --page-label-format=FMT sätt sidetikettsformatet till FMT\n" " --ps-level=NIVÅ sätt PostScript-språknivån som enscript ska\n" " använda\n" " --printer-options=FLAGGOR skicka med extra flaggor till " "utskriftskommandot\n" " --rotate-even-pages rotera sidor med jämnt nummer 180°\n" #: src/main.c:2622 #, c-format msgid "" " --slice=NUM print vertical slice NUM\n" " --style=STYLE use highlight style STYLE\n" " --swap-even-page-margins swap left and right side margins for each even\n" " numbered page\n" " --toc print table of contents\n" " --ul-angle=ANGLE set underlay text's angle to ANGLE\n" " --ul-font=NAME print underlays with font NAME\n" " --ul-gray=NUM print underlays with gray value NUM\n" " --ul-position=POS set underlay's starting position to POS\n" " --ul-style=STYLE print underlays with style STYLE\n" " --word-wrap wrap long lines from word boundaries\n" msgstr "" " --slice=NUM skriv ut vertikal skiva NUM\n" " --style=STIL använd markeringsstilen STIL\n" " --swap-even-page-margins Byt ut vänster- och högermarginaler för varje\n" " sida med jämnt nummer\n" " --toc skriv ut innehållsförteckning\n" " --ul-angle=VINKEL sätt underlagans textvinkel till VINKEL\n" " --ul-font=NAMN skriv ut underlagor med typsnittet NAMN\n" " --ul-gray=NUM skriv ut underlagor med gråvärde NUM\n" " --ul-position=POS sätt underlagans startposition till POS\n" " --ul-style=STIL skriv ut underlagor med stilen STIL\n" " --word-wrap radbryt långa rader vid ordgränser\n" #: src/main.c:2636 #, fuzzy, c-format msgid "" "\n" "Report bugs to <%s>.\n" msgstr "" "\n" "Rapportera fel till mtr@iki.fi.\n" "Skicka synpunkter på översättningen till sv@li.org.\n" #: src/psgen.c:331 #, c-format msgid "couldn't find prolog \"%s\": %s\n" msgstr "kunde inte hitta prologen \"%s\": %s\n" #: src/psgen.c:339 #, c-format msgid "couldn't find encoding file \"%s.enc\": %s\n" msgstr "kunde inte hitta kodningsfilen \"%s.enc\": %s\n" #: src/psgen.c:471 #, c-format msgid "couldn't find header definition file \"%s.hdr\": %s\n" msgstr "kunde inte hitta huvuddefinitionsfilen \"%s.hdr\": %s\n" #: src/psgen.c:615 #, c-format msgid "processing file \"%s\"...\n" msgstr "bearbetar filen \"%s\"...\n" #: src/psgen.c:913 #, c-format msgid "EPS file \"%s\" is too large for page\n" msgstr "EPS-filen \"%s\" är för stor för sidan\n" #: src/psgen.c:986 msgid "user font encoding can be only the system's default or `ps'" msgstr "användartypsnittskodning kan bara vara systemets standard eller \"ps\"" #: src/psgen.c:1228 #, c-format msgid "unknown special escape: %s" msgstr "okänd speciell kontrollsekvens: %s" #: src/psgen.c:1354 #, c-format msgid "illegal option %c for ^@epsf escape" msgstr "otillåten flagga %c för kontrollsekvensen ^@epsf" #: src/psgen.c:1360 msgid "malformed ^@epsf escape: no ']' after options" msgstr "felutformad kontrollsekvens ^@epsf: ingen \"]\" efter flaggorna" #: src/psgen.c:1372 #, c-format msgid "" "too long file name for ^@epsf escape:\n" "%.*s" msgstr "" "för långt filnamn för kontrollsekvensen ^@epsf:\n" "%.*s" #: src/psgen.c:1376 msgid "unexpected EOF while scanning ^@epsf escape" msgstr "oväntat filslut vid bearbetning av kontrollsekvensen ^@epsf" #: src/psgen.c:1382 msgid "malformed ^@epsf escape: no '{' found" msgstr "felutformad kontrollsekvens ^@epsf: ingen \"{\" hittad" #: src/psgen.c:1440 #, c-format msgid "malformed %s escape: no '{' found" msgstr "felutformad kontrollsekvens %s: ingen \"{\" hittad" #: src/psgen.c:1454 #, c-format msgid "" "too long argument for %s escape:\n" "%.*s" msgstr "" "för långt argument till kontrollsekvensen %s:\n" "%.*s" #: src/psgen.c:1474 #, c-format msgid "malformed font spec for ^@font escape: %s" msgstr "felutformad typsnittsspecifikation för kontrollsekvensen ^@font: %s" #: src/psgen.c:1511 #, c-format msgid "malformed color spec for ^@%s escape: %s" msgstr "felutformad färgspecifikation för kontrollsekvensen ^@%s: %s" #: src/psgen.c:1535 #, c-format msgid "invalid value for ^@shade escape: %s" msgstr "ogiltigt värde för kontrollsekvensen ^@shade: %s" #: src/psgen.c:1543 #, c-format msgid "invalid value for ^@bggray escape: %s" msgstr "ogiltigt värde för kontrollsekvensen ^@bggray: %s" #: src/psgen.c:2412 #, c-format msgid "couldn't open EPS file \"%s\": %s\n" msgstr "kunde inte öppna EPS-filen \"%s\": %s\n" #: src/psgen.c:2448 #, c-format msgid "EPS file \"%s\" does not start with \"%%!\" magic\n" msgstr "EPS-filen \"%s\" börjar inte med \"%%!\"-magi\n" #: src/psgen.c:2473 #, c-format msgid "" "EPS file \"%s\" contains malformed %%%%BoundingBox row:\n" "\"%.*s\"\n" msgstr "" "EPS-filen \"%s\" innehåller felutformad %%%%BoundingBox-rad:\n" "\"%.*s\"\n" #: src/psgen.c:2498 #, c-format msgid "EPS file \"%s\" is not a valid EPS file\n" msgstr "EPS-filen \"%s\" är inte en giltig EPS-fil\n" #: src/psgen.c:2640 #, c-format msgid "passing through all input files for output language `%s'\n" msgstr "skickar vidare alla indatafiler för utdataspråket \"%s\"\n" #: src/psgen.c:2692 #, c-format msgid "passing through %s file \"%s\"\n" msgstr "skickar vidare %s-filen \"%s\"\n" #: src/psgen.c:2795 #, c-format msgid "couldn't create temporary divert file: %s" msgstr "kunde inte skapa temporär omdirigeringsfil: %s" #: src/psgen.c:2812 #, c-format msgid "couldn't rewind divert file: %s" msgstr "kunde inte spola tillbaks omdirigeringsfilen: %s" #: src/util.c:93 #, c-format msgid "missing argument: %s" msgstr "argument saknas: %s" #: src/util.c:186 src/util.c:214 #, c-format msgid "illegal value \"%s\" for option %s" msgstr "otillåtet värde \"%s\" för flaggan %s" #: src/util.c:202 #, c-format msgid "invalid value \"%s\" for option %s" msgstr "ogiltigt värde \"%s\" för flaggan %s" #: src/util.c:440 #, c-format msgid "illegal option: %s" msgstr "otillåten flagga: %s" #: src/util.c:619 #, c-format msgid "%s:%d: %%Format: no name" msgstr "%s:%d: %%Format: inget namn" #: src/util.c:630 #, c-format msgid "%s:%d: %%Format: too long name, maxlen=%d" msgstr "%s:%d: %%Format: för långt namn, maxlängd=%d" #: src/util.c:653 #, c-format msgid "%s:%d: %%Format: name \"%s\" is already defined" msgstr "%s:%d: %%Format: namnet \"%s\" är redan definierat" #: src/util.c:674 #, c-format msgid "%s:%d: %%HeaderHeight: no argument" msgstr "%s:%d: %%HeaderHeight: inga argument" #: src/util.c:696 #, c-format msgid "%s:%d: %%FooterHeight: no argument" msgstr "%s:%d: %%FooterHeight: inga argument" #: src/util.c:843 #, c-format msgid "%s: warning: font size is negative\n" msgstr "%s: varning: typsnittsstorleken är negativ\n" #: src/util.c:845 #, c-format msgid "%s: warning: font width is negative\n" msgstr "%s: varning: typsnittsbredden är negativ\n" #: src/util.c:847 #, c-format msgid "%s: warning: font height is negative\n" msgstr "%s: varning: typsnittshöjden är negativ\n" #: src/util.c:866 #, c-format msgid "reading AFM info for font \"%s\"\n" msgstr "läser AFM-information för typsnittet \"%s\"\n" #: src/util.c:899 #, c-format msgid "couldn't open AFM file for font \"%s\", using default\n" msgstr "" "kunde inte öppna AFM-fil för typsnittet \"%s\", använder " "standardalternativet\n" #: src/util.c:906 #, c-format msgid "couldn't open AFM file for the default font: %s" msgstr "kunde inte öppna AFM-fil för standardtypsnittet: %s" #: src/util.c:1095 #, c-format msgid "downloading font \"%s\"\n" msgstr "hämtar hem typsnittet \"%s\"\n" #: src/util.c:1100 #, c-format msgid "couldn't open font description file \"%s\": %s\n" msgstr "kunde inte öppna beskrivningsfilen \"%s\" för typsnittet: %s\n" #: src/util.c:1392 #, c-format msgid "%s: too long format for %%D{} escape" msgstr "%s: för långt format för %%D{}-kontrollsekvens" #: src/util.c:1477 #, c-format msgid "%s: unknown `%%' escape `%c' (%d)" msgstr "%s: okänd \"%%\"-kontrollsekvens \"%c\" (%d)" #: src/util.c:1515 #, c-format msgid "%s: no closing ')' for $() escape" msgstr "%s: ingen avslutande \")\" för $()-kontrollsekvens" #: src/util.c:1518 #, c-format msgid "%s: too long variable name for $() escape" msgstr "%s: för långt variabelnamn för $()-kontrollsekvens" #: src/util.c:1545 #, c-format msgid "%s: too long format for $D{} escape" msgstr "%s: för långt format för $D{}-kontrollsekvens" #: src/util.c:1633 #, c-format msgid "%s: unknown `$' escape `%c' (%d)" msgstr "%s: okänd \"$\"-kontrollsekvens \"%c\" (%d)" #: src/util.c:1824 #, c-format msgid "malformed float dimension: \"%s\"" msgstr "felutformad flyttalsdimension: \"%s\"" #: src/util.c:1946 #, c-format msgid "couldn't open input filter \"%s\" for file \"%s\": %s" msgstr "kunde inte öppna indatafiltret \"%s\" för filen \"%s\": %s" #: src/util.c:1963 #, c-format msgid "couldn't open input file \"%s\": %s" msgstr "kunde inte öppna indatafilen \"%s\": %s" #: src/mkafmmap.c:167 #, c-format msgid "file=%s\n" msgstr "fil=%s\n" #: src/mkafmmap.c:167 msgid "stdout" msgstr "standard ut" #: src/mkafmmap.c:175 #, c-format msgid "%s: couldn't open output file \"%s\"" msgstr "%s: kunde inte öppna utdatafilen \"%s\"" #: src/mkafmmap.c:189 msgid "couldn't create AFM library" msgstr "kunde inte skapa AFM-bibliotek" #: src/mkafmmap.c:238 #, c-format msgid "" "Usage: %s [OPTION]... FILE...\n" "Mandatory arguments to long options are mandatory for short options too.\n" " -h, --help print this help and exit\n" " -p, --output-file=NAME print output to file NAME (default file is\n" " font.map). If FILE is `-', leavy output to\n" " stdout.\n" " -V, --version print version number\n" msgstr "" "Användning: %s [FLAGGA]... FIL...\n" "Obligatoriska argument till långa flaggor är obligatoriska även för de " "korta.\n" " -h, --help visa den här hjälptexten och avsluta\n" " -p, --output-file=NAMN skriv utdatan till filen NAMN (standardvalet är\n" " font.map). Om FIL är \"-\" skicka utdatan till\n" " stdandard ut.\n" " -V, --version visa versionsnummer\n" #: states/lex.l:167 states/lex.l:173 msgid "error: EOF in comment" msgstr "fel: filslut inom kommentar" #: states/lex.l:204 msgid "error: EOF in string constant" msgstr "fel: filslut inom strängkonstant" #: states/lex.l:311 msgid "error: EOF in regular expression" msgstr "fel: filslut inom reguljärt uttryck" #: states/main.c:197 #, fuzzy, c-format msgid "states for %s" msgstr "tillstånd för GNU %s %s" #: states/main.c:252 #, c-format msgid "%s: malformed variable definition \"%s\"\n" msgstr "%s: felutformad variabeldefinition \"%s\"\n" #: states/main.c:280 #, c-format msgid "%s: couldn't create output file \"%s\": %s\n" msgstr "%s: kunde inte skapa utdatafilen \"%s\": %s\n" #: states/main.c:311 #, c-format msgid "%s: unknown warning level `%s'\n" msgstr "%s: okänd varningsnivå \"%s\"\n" #: states/main.c:360 states/main.c:396 states/prims.c:1375 states/utils.c:227 #, c-format msgid "%s: out of memory\n" msgstr "%s: minnet slut\n" #: states/main.c:421 #, c-format msgid "%s: couldn't open input file `%s': %s\n" msgstr "%s: kunde inte öppna indatafilen \"%s\": %s\n" #: states/main.c:445 #, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Användning: %s [FLAGGA]... [FIL]...\n" "Obligatoriska argument till långa flaggor är obligatoriska även för de " "korta.\n" #: states/main.c:449 #, fuzzy, c-format msgid "" " -D, --define=VAR=VAL define variable VAR to have value VAL\n" " -f, --file=NAME read state definitions from file NAME\n" " -h, --help print this help and exit\n" " -o, --output=NAME save output to file NAME\n" " -p, --path=PATH set the load path to PATH\n" " -s, --state=NAME start from state NAME\n" " -v, --verbose increase the program verbosity\n" " -V, --version print version number\n" " -W, --warning=LEVEL set the warning level to LEVEL\n" msgstr "" " -D, --define=VAR=VÄRDE definera variabeln VAR till värdet VÄRDE\n" " -f, --file=NAMN läs tillståndsdefinition från filen NAMN\n" " -h, --help visa den här hjälptexten och avsluta\n" " -o, --output=NAMN spara utdatan till filen NAMN\n" " -p, --path=SÖKVÄG sätt inläsningssökvägen till SÖKVÄG\n" " -s, --state=NAMN börja från tillståndet NAMN\n" " -v, --verbose öka programmets pratsamhet\n" " -V, --version visa versionsnummer\n" " -W, --warning=NIVÅ sätt varningsnivån till NIVÅ\n" #: states/prims.c:44 #, c-format msgid "%s:%d: %s: too few arguments\n" msgstr "%s:%d: %s: för få argument\n" #: states/prims.c:54 #, c-format msgid "%s:%d: %s: too many arguments\n" msgstr "%s:%d: %s: för många argument\n" #: states/prims.c:107 states/prims.c:127 states/prims.c:253 states/prims.c:426 #: states/prims.c:901 #, c-format msgid "%s:%d: %s: illegal argument type\n" msgstr "%s:%d: %s: otillåten argumenttyp\n" #: states/prims.c:468 #, c-format msgid "%s: panic: " msgstr "%s: panik: " #: states/prims.c:502 #, c-format msgid "%s:%d: %s: malformed version string `%s'\n" msgstr "%s:%d: %s: felutformad versionssträng \"%s\"\n" #: states/prims.c:517 #, c-format msgid "" "%s: FATAL ERROR: States version %s or higher is required for this script\n" msgstr "" "%s: ÖDESDIGERT FEL: Tillstånd av version %s eller över krävs för detta " "skript\n" #: states/prims.c:608 states/prims.c:1274 #, c-format msgid "%s:%d: %s: start offset is bigger than end offset\n" msgstr "%s:%d: %s: startavstånd är större än slutavstånd\n" #: states/prims.c:617 states/prims.c:633 states/prims.c:1280 #, c-format msgid "%s:%d: %s: offset out of range\n" msgstr "%s:%d: %s: avstånd utanför intervallet\n" #: states/prims.c:651 #, c-format msgid "%s:%d: %s: illegal argument\n" msgstr "%s:%d: %s: otillåtet argument\n" #: states/prims.c:698 #, c-format msgid "%s:%d: %s: illegal regexp character syntax: %c\n" msgstr "%s:%d: %s: otillåten reguljäruttrycksteckensyntax: %c\n" #: states/prims.c:913 #, c-format msgid "%s:%d: %s: couldn't define state `%s'\n" msgstr "%s:%d: %s: kunde inte definiera tillståndet \"%s\"\n" #: states/prims.c:1010 #, c-format msgid "%s: primitive `%s': too few arguments for format\n" msgstr "%s: primitiv \"%s\": för få argument för formatet\n" #: states/prims.c:1038 #, c-format msgid "%s:%d: %s: argument %d doesn't match format\n" msgstr "%s:%d: %s: argument %d matchar inte formatet\n" #: states/prims.c:1078 #, c-format msgid "%s:%d: %s: no extra options can be specified for %%s\n" msgstr "%s:%d: %s: inga extra flaggor kan anges för %%s\n" #: states/prims.c:1087 #, c-format msgid "%s:%d: %s: illegal type specifier `%c'\n" msgstr "%s:%d: %s: ogiltig typspecifierare \"%c\"\n" #: states/process.c:115 #, c-format msgid "%s: undefined state `%s'\n" msgstr "%s: odefinierat tillstånd \"%s\"\n" #: states/process.c:196 #, c-format msgid "%s: error: undefined variable `%s'\n" msgstr "%s: fel: odefinierad variabel \"%s\"\n" #: states/process.c:290 #, c-format msgid "%s: undefined super state `%s'\n" msgstr "%s: odefinierat supertillstånd \"%s\"\n" #: states/utils.c:260 #, c-format msgid "%s:%d: couldn't compile regular expression \"%s\": %s\n" msgstr "%s:%d kunde inte kompilera det reguljära uttrycket \"%s\": %s\n" #: states/utils.c:449 states/utils.c:477 #, c-format msgid "%s: ouf of memory" msgstr "%s: minnet slut" #: states/utils.c:454 #, c-format msgid "warning: redefining state `%s'" msgstr "varning: definierar om tillståndet \"%s\"" #: states/utils.c:481 #, c-format msgid "%s:%d: warning: redefining subroutine `%s'\n" msgstr "%s:%d: varning: definierar om subrutinen \"%s\"\n" #: states/utils.c:578 #, c-format msgid "%s:%d: error: undefined variable `%s'\n" msgstr "%s:%d: fel: odefinierad variabel \"%s\"\n" #: states/utils.c:616 #, c-format msgid "%s:%d: error: couldn't set variable `%s'\n" msgstr "%s:%d: fel: kunde inte tilldela variabeln \"%s\"\n" #: states/utils.c:767 #, c-format msgid "%s:%d: error: expression between illegal types\n" msgstr "%s:%d: fel: uttryck mellan otillåtna typer\n" #: states/utils.c:865 #, c-format msgid "%s:%d: error: too few arguments for subroutine\n" msgstr "%s:%d: fel: för få argument för subrutinen\n" #: states/utils.c:872 #, c-format msgid "%s:%d: error: too many arguments for subroutine\n" msgstr "%s:%d: fel: för många argument för subrutinen\n" #: states/utils.c:926 #, c-format msgid "%s:%d: error: undefined procedure `%s'\n" msgstr "%s:%d: fel: odefinierad procedur \"%s\"\n" #: states/utils.c:1018 #, c-format msgid "%s:%d: error: illegal lvalue for assignment\n" msgstr "%s:%d: fel: otillåtet vvärde för tilldelning\n" #: states/utils.c:1026 states/utils.c:1110 #, c-format msgid "%s:%d: error: array reference index is not integer\n" msgstr "%s:%d: fel: vektorreferensindex är inte ett heltal\n" #: states/utils.c:1032 #, c-format msgid "%s:%d: error: negative array reference index\n" msgstr "%s:%d: fel: negativ vektorreferensindex\n" #: states/utils.c:1083 #, c-format msgid "%s:%d: error: illegal rvalue for string assignment\n" msgstr "%s:%d: fel: otillåtet hvärde för strängtilldelning\n" #: states/utils.c:1102 #, c-format msgid "%s:%d: error: illegal type for array reference\n" msgstr "%s:%d: fel: otillåten typ för vektorreferens\n" #: states/utils.c:1119 #, fuzzy, c-format msgid "%s:%d: error: array reference index out of range\n" msgstr "%s:%d: fel: vektorreferensindex utanför intervallet\n" #: states/utils.c:1345 #, c-format msgid "%s: couldn't open definition file `%s': %s\n" msgstr "%s: kunde inte öppna definitionsfilen \"%s\": %s\n" #: states/utils.c:1401 #, c-format msgid "%s: autoloading `%s' from `%s'\n" msgstr "%s: läser in \"%s\" automatiskt från \"%s\"\n" #~ msgid "library directory." #~ msgstr "bibliotekskatalog." #~ msgid "[ %d pages * %d copy ]" #~ msgstr "[ %d sidor * %d kopia ]" #~ msgid "epsf: couldn't open pipe to command \"%s\": %s\n" #~ msgstr "epsf: kunde inte öppna rör till kommandot \"%s\": %s\n" #~ msgid "couldn't create toc file name: %s" #~ msgstr "kunde inte skapa innehållsfilnamn: %s" #~ msgid "couldn't create divert file \"%s\": %s" #~ msgstr "kunde inte skapa omdirigeringsfilen \"%s\": %s" enscript-1.6.5.90/po/tr.gmo0000644000175000017500000006313411606344232012301 00000000000000Þ•À ! %08U [g w…†›£;?{  œ$©IÎ)8+b&Ž"µ#ØCü@Z't!œ,¾ë% ,/-\ Š&«Òä ÷1#5$Y)~¨Â â!%Ee%…#«$Ï"ô- E )^ "ˆ ,« &Ø ÿ !!/>!'n!)–!5À!ö!2"4I"3~")²"/Ü", #39#/m#-#/Ë#0û#',$&T$+{$=§$.å$&%$;%I`%)ª%Ô%ë%&$&$<&a&s&HŽ&×($è( ))#5)Y)t)|)@Ž)Ï)&â) **-* ?*vL*iÃ+#-,Q,$m,)’,&¼,)ã,- -2;-n-(-4¶-/ë-. 9.-Z.!ˆ.1ª.Ü.%û.!/A/!^/%€/¦/½/ Ó/ô/'0:0=C00!›0#½0á0ô0+1?1 Z1 {1%œ1$Â1xç1!`2-‚2%°2?Ö2(3?3)_3‰3¡3#Á3.å34))4*S4~4‘4¤49Â4ü455I=5‡5§5C®5%ò5*6 C6+M6y6Ž6;©6Hå6.7M7&U7&|7)£7‘Í7_9 c9n9v9’9 ˜9¤9 ´9•Â9WX<&°>o×AGE]ErE%†E[¬E+F04F*eF)F'ºF+âFIGXGvG#”G(¸G%áGH.%H%TH&zH ¡H*ÂHíHI I."I+QI+}I3©I ÝI%þI'$J(LJ$uJšJºJ+ÚJ#K**K#UK*yK¤K,½K#êK0L'?LgL%†L<¬L)éL&M4:M#oMD“M-ØM3N):N/dN-”N7ÂN2úN+-O7YO:‘O*ÌO.÷O7&PC^P.¢P3ÑP,QI2Q*|Q§QÁQáQR R@RWRßpRPU)`U ŠU˜U%¶UÜU ùU VIV]V+pVœV´VÌVäVÆõV~¼X);Y!eY+‡Y&³Y2ÚY* Z-8Z2fZ™Z+·ZLãZ:0[!k[#[0±[$â[8\!@\&b\ ‰\0ª\&Û\/]2]N] k]Œ]-¦] Ô]:Þ]^ 7^/X^ˆ^#^4Á^ö^+_-A_.o_-ž_†Ì_$S`5x`(®`H×`. aOa5faœa»a!Úa)üa&b&£Ÿjq«•”-w †µ º9\I~k n]¼¬3d ¤O»¾!b'³u7r½¿›©#K¦. ‰5¯UœF€v´žJ(ŠD·,z^ZG&°Ž@=R²hoB; ‘:CŒH{Sƒxc)E/T?V"“L[ %±W¶i„­¹¨¸2˜mt§Q_6p‹ˆ¥M*l<®¡ %s ../../lib ../lib ./configure --prefix=PREFIX make make check make distclean make install --help-highlight describe all supported --highlight languages and file formats --highlight-bar-gray=NUM print highlight bars with gray NUM (0 - 1) --list-media list names of all known media --margins=LEFT:RIGHT:TOP:BOTTOM adjust page marginals --mark-wrapped-lines[STYLE] mark wrapped lines in the output with STYLE --non-printable-format=FMT specify how non-printable chars are printed --nup-columnwise layout pages in the N-up printing columnwise --nup-xpad=NUM set the page x-padding of N-up printing to NUM --nup-ypad=NUM set the page y-padding of N-up printing to NUM --page-label-format=FMT set page label format to FMT --ps-level=LEVEL set the PostScript language level that enscript should use --printer-options=OPTIONS pass extra options to the printer command --rotate-even-pages rotate even-numbered pages 180 degrees --slice=NUM print vertical slice NUM --style=STYLE use highlight style STYLE --swap-even-page-margins swap left and right side margins for each even numbered page --toc print table of contents --ul-angle=ANGLE set underlay text's angle to ANGLE --ul-font=NAME print underlays with font NAME --ul-gray=NUM print underlays with gray value NUM --ul-position=POS set underlay's starting position to POS --ul-style=STYLE print underlays with style STYLE --word-wrap wrap long lines from word boundaries -L, --lines-per-page=NUM specify how many lines are printed on each page -m, --mail send mail upon completion -M, --media=NAME use output media NAME -n, --copies=NUM print NUM copies of each page -N, --newline=NL select the newline character. Possible values for NL are: n (`\n') and r (`\r'). -o an alias for option --output -O, --missing-characters list missing characters -p, --output=FILE leave output to file FILE. If FILE is `-', leave output to stdout. -P, --printer=NAME print output to printer NAME -q, --quiet, --silent be really quiet -r, --landscape print in landscape mode -R, --portrait print in portrait mode option %d = "%s" left in %s sent to %s $3v $-40N $3% pages $4L lines $E $C%s: FATAL ERROR: States version %s or higher is required for this script %s: autoloading `%s' from `%s' %s: couldn't create output file "%s": %s %s: couldn't open definition file `%s': %s %s: couldn't open input file `%s': %s %s: couldn't open output file "%s"%s: error: undefined variable `%s' %s: illegal newline character specifier: '%s': expected 'n' or 'r' %s: illegal option -- %c %s: invalid option -- %c %s: malformed variable definition "%s" %s: no closing ')' for $() 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: ouf of memory%s: out of memory %s: panic: %s: primitive `%s': too few arguments for format %s: too long format for $D{} escape%s: too long format for %%D{} escape%s: too long variable name for $() escape%s: undefined state `%s' %s: undefined super state `%s' %s: unknown `$' escape `%c' (%d)%s: unknown `%%' escape `%c' (%d)%s: unknown warning level `%s' %s: unrecognized option `%c%s' %s: unrecognized option `--%s' %s: warning: font height is negative %s: warning: font size is negative %s: warning: font width is negative %s:%d: %%FooterHeight: no argument%s:%d: %%Format: name "%s" is already defined%s:%d: %%Format: no name%s:%d: %%Format: too long name, maxlen=%d%s:%d: %%HeaderHeight: no argument%s:%d: %s: argument %d doesn't match format %s:%d: %s: couldn't define state `%s' %s:%d: %s: illegal argument %s:%d: %s: illegal argument type %s:%d: %s: illegal regexp character syntax: %c %s:%d: %s: illegal type specifier `%c' %s:%d: %s: malformed version string `%s' %s:%d: %s: no extra options can be specified for %%s %s:%d: %s: offset out of range %s:%d: %s: start offset is bigger than end offset %s:%d: couldn't compile regular expression "%s": %s %s:%d: error: array reference index is not integer %s:%d: error: couldn't set variable `%s' %s:%d: error: expression between illegal types %s:%d: error: illegal lvalue for assignment %s:%d: error: illegal rvalue for string assignment %s:%d: error: illegal type for array reference %s:%d: error: negative array reference index %s:%d: error: too few arguments for subroutine %s:%d: error: too many arguments for subroutine %s:%d: error: undefined procedure `%s' %s:%d: error: undefined variable `%s' %s:%d: warning: redefining subroutine `%s' EPS file "%s" contains malformed %%%%BoundingBox row: "%.*s" EPS file "%s" does not start with "%%!" magic EPS file "%s" is not a valid EPS file EPS file "%s" is too large for page Highlighting is supported for the following languages and file formats: I did also try the following directories:Invalid back referenceInvalid character class nameInvalid collation characterInvalid content of \{\}Invalid preceding regular expressionInvalid range endInvalid regular expressionLong-only options: --color[=bool] create color outputs with states --continuous-page-numbers count page numbers across input files. Don't restart numbering at beginning of each file. --download-font=NAME download font NAME --extended-return-values enable extended return values --filter-stdin=NAME specify how stdin is shown to the input filter --footer=FOOTER set page footer --h-column-height=HEIGHT set the horizontal column height to HEIGHT --help print this help and exit Memory exhaustedN-up argument must be power of 2: %dNo matchNo previous regular expressionPremature end of regular expressionRegular expression too bigSuccessTable of ContentsThis is probably an installation error. Please, try to rebuild:Trailing backslashTry `%s --help' for more information. Unmatched ( or \(Unmatched ) or \)Unmatched [ or [^Unmatched \{Usage: %s [OPTION]... FILE... Mandatory arguments to long options are mandatory for short options too. -h, --help print this help and exit -p, --output-file=NAME print output to file NAME (default file is font.map). If FILE is `-', leavy output to stdout. -V, --version print version number Usage: %s [OPTION]... [FILE]... Mandatory arguments to long options are mandatory for short options too. couldn't close output file "%s": %scouldn't create AFM librarycouldn't create output file "%s": %scouldn't create temporary divert file: %scouldn't create temporary toc file: %scouldn't find encoding file "%s.enc": %s couldn't find header definition file "%s.hdr"couldn't find header definition file "%s.hdr": %s couldn't find prolog "%s": %s couldn't get passwd entry for uid=%d: %scouldn't open AFM file for font "%s", using default couldn't open AFM file for the default font: %scouldn't open AFM library: %scouldn't open EPS file "%s": %s couldn't open font description file "%s": %s couldn't open input file "%s": %scouldn't open input filter "%s" for file "%s": %scouldn't open printer `%s': %scouldn't read config file "%s/%s": %scouldn't rewind divert file: %scouldn't rewind toc file: %scouldn't stat input file "%s": %sdo not know anything about media "%s"downloading font "%s" error: EOF in commenterror: EOF in regular expressionerror: EOF in string constantfile alignment must be larger than zerofile=%s helper application specification must be single character: %sillegal N-up argument: %dillegal non-printable format "%s"illegal option %c for ^@epsf escapeillegal option: %sillegal page label format "%s"illegal style for wrapped line marker: "%s"illegal underlay style: %sillegal value "%s" for option %sinvalid value "%s" for option %sinvalid value for ^@bggray escape: %sinvalid value for ^@shade escape: %sknown media: name width height llx lly urx ury ------------------------------------------------------------ malformed %s escape: no '{' foundmalformed ^@epsf escape: no ']' after optionsmalformed ^@epsf escape: no '{' foundmalformed argument `%s' for option -W, --option: no comma foundmalformed color spec for ^@%s escape: %smalformed float dimension: "%s"malformed font spec for ^@font escape: %smalformed font spec: %smalformed underlay position: %smissing character codes (decimal): must print at least one line per each page: %sno output generated non-printable character codes (decimal): number of columns must be larger than zerooutput left in %s output sent to %s passing through %s file "%s" passing through all input files for output language `%s' printerprocessing file "%s"... reading AFM info for font "%s" set new marginals for media `%s' (%dx%d): llx=%d, lly=%d, urx=%d, ury=%d slice must be greater than zerostdoutsyntax error in option string %s="%s": missing end of quotation: %ctoo long argument for %s escape: %.*stoo long file name for ^@epsf escape: %.*struncatedunexpected EOF while scanning ^@epsf escapeunknown encoding: %sunknown special escape: %suser font encoding can be only the system's default or `ps'warning: didn't process following options from environment variable %s: warning: redefining state `%s'wrappedxcalloc(): couldn't allocate %d bytes xmalloc(): couldn't allocate %d bytes xrealloc(): couldn't reallocate %d bytes Project-Id-Version: enscript 1.6.3 Report-Msgid-Bugs-To: bug-enscript@gnu.org POT-Creation-Date: 2011-07-10 16:43+0100 PO-Revision-Date: 2005-03-14 04:21+0200 Last-Translator: Deniz Akkus Kanca Language-Team: Turkish Language: tr MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Generator: KBabel 1.9.1 %s ../../lib ../lib ./configure --prefix=ÖNEK make make check make distclean make install --help-highlight bütün desteklenen --highlight dillerini ve dosya biçemlerini gösterir --highlight-bar-gray=SAYI renklendirme çubuklarını gri SAYI (0-1) olarak basar --list-media bilinen bütün ortamları listeler --list-options bilinen bütün seçenekleri ve deÄŸerlerini listeler --margins=SOL:SAÄž:ÜST:ALT sayfa kenar boÅŸluklarını ayarlar --mark-wrapped-lines[STİL] çıktıda sarılmış satırları STİL ile belirtir --non-printable-format=BÇM basılamaz karakterlerin nasıl basılacağını belirler --nup-columnwise N-up basımı için sayfaları sütunlar halinde düzenler --nup-xpad=SAYI N-up basımı için sayfanın x-yastıklamasını SAYI'ya ayarlar --nup-ypad=SAYI N-up basımı için sayfanın y-yastıklamasını SAYI'ya ayarlar --page-label-format=BÇM sayfa etiket biçemini BÇM olarak ayarlar --ps-level=SEVİYE enscript'in kullanacağı Postscript dil seviyesini belirler --printer-options=SEÇENEK yazıcı komutuna fazladan seçenekler gönderir --rotate-even-pages çift sayılı sayfaları 180 derece döndürür --slice=SAYI SAYI no'lu dikey dilimi yazdırır --style=TARZ renklendirme tarzı TARZ kullanır --swap-even-page-margins her çift numaralı sayfa için sol ve saÄŸ boÅŸlukları deÄŸiÅŸtokuÅŸ eder. --toc içindekiler bölümü yazdırır --ul-angle=AÇI metinaltı metninin açısını AÇI olarak ayarlar --ul-font=İSİM metinaltlarını İSİM yazıtipiyle yazdırır --ul-gray=SAYI metinaltlarını SAYI deÄŸerli gri renkle yazdırır --ul-position=POZ metinaltının baÅŸlangıç noktasını POZ'a ayarlar --ul-style=TARZ metinaltlarını TARZ tarzında yazdırır --word-wrap uzun satırları sözcük sınırlarında sardırır -L, --lines-per-page=SAYI bir sayfada kaç satır olacağını belirler -m, --mail bittiÄŸi zaman e-posta gönderir -M, --media=İSİM çıktı ortamında İSİM kullanır -n, --copies=SAYI her sayfadan SAYI kopya basar -N, --newline=YS yenisatır karakterini belirler. YS için mümkün olan deÄŸerler: n (`\n') ve r (`\r'). -o --output ile aynı -O, --missing-characters eksik harfleri listeler -p, --output=DOSYA çıktıyı DOSYA dosyasına gönderir. EÄŸer DOSYA `-' ise, çıktıyı standart çıktıya gönderir. -P, --printer=İSİM çıktıyı İSİM yazıcısına gönderir -q, --quiet, --silent sessiz çalışır -r, --landscape enine basar -R, --portrait boyuna basar seçenek %d = "%s" %s'de bırakıldı %s'ye gönderildi $3v $-40N $3% sayfa $4L satır $E $C%s: ÖLÜMCÜL HATA: Bu betik için durumlar (states) sürüm %s veya daha yüksek gerekli %1$s: `%3$s'den `%2$s'yi otomatik yükleme %s: çıktı dosyası "%s" oluÅŸturulamadı: %s %s: `%s' tanım dosyası açılamadı: %s %s: girdi dosyası `%s' açılamadı: %s %s: "%s" çıktı dosyası açılamadı%s: hata: tanımlanmamış deÄŸiÅŸken `%s' %s: geçersiz yenisatır karakter belirteci: '%s': 'n' veya 'r' beklendi %s: geçersiz seçenek -- %c %s: geçersiz seçenek -- %c %s: bozuk deÄŸiÅŸken tanımı "%s" %s: $() kaçışı için kapatan ')' yok%s: `%c%s' seçeneÄŸi argüman almaz %s: `%s' seçeneÄŸi belirsiz %s: `%s' seçeneÄŸi için argüman zorunludur %s: `--%s' seçeneÄŸi argüman almaz %s: `-W %s' seçeneÄŸi argüman almaz %s: `-W %s' seçeneÄŸi belirsiz %s: seçenek için argüman gerekli -- %c %s: bellek tükendi%s: bellek tükendi %s: panik: %s: ilkel `%s': biçem için çok az argüman %s: $D{} kaçışı için fazla uzun biçem%s: %%D{} kaçışı için çok uzun biçem%s: $() kaçışı için fazla uzun deÄŸiÅŸken adı%s: tanımlanmamış durum `%s' %s: tanımlanmamış üst durum `%s' %s: bilinmeyen `$' kaçışı `%c' (%d)%s: bilinmeyen `%%' kaçışı `%c' (%d)%s: bilinmeyen uyarı seviyesi `%s' %s: bilinmeyen seçenek `%c%s' %s: bilinmeyen seçenek `--%s' %s: uyarı: yazıtipi yüksekliÄŸi negatif %s: uyarı: yazıtipi boyu negatif %s: uyarı: yazıtipi geniÅŸliÄŸi negatif %s:%d: %%FooterHeight: argüman yok%s:%d: %%Biçem: isim "%s" zaten tanımlı%s:%d: %%Biçem: isimsiz%s:%d: %%Format: çok uzun isim, en fazla=%d%s:%d: %%HeaderHeight: argüman yok%s:%d: %s: %d argümanı biçemle uyumlu deÄŸil %s:%d: %s: `%s' durumu tanımlanamadı %s:%d: %s: geçersiz argüman %s:%d: %s: geçersiz argüman türü %s:%d: %s: geçersiz düzenli ifade karakter sözdizimi: %c %s:%d: %s: geçersiz tür belirteci `%c' %s:%d: %s: bozuk sürüm dizgesi `%s' %s:%d: %s: %%s için fazladan seçenek belirtilemez %s:%d: %s: görece aralık dışı %s:%d: %s: baÅŸlangıç görecesi sonuç görecesinden daha büyük %s:%d: "%s" düzenli ifadesi derlenemedi: %s %s:%d: hata: dizi referans indeksi tamsayı deÄŸil %s:%d: hata: `%s' deÄŸiÅŸkeni atanamadı %s:%d: hata: geçersiz türler arasında ifade %s:%d: hata: atama için geçersiz sol taraf %s:%d: hata: dizge ataması için geçersiz saÄŸ taraf %s:%d: hata: dizi referansı için geçersiz tür %s:%d: hata: dizi referans indeksi negatif %s:%d: hata: alt iÅŸlev için çok az sayıda argüman %s:%d: hata: alt iÅŸlev için çok fazla sayıda argüman %s:%d: hata: tanımlanmamış iÅŸlev `%s' %s:%d: hata: tanımlanmamış deÄŸiÅŸken `%s' %s:%d: uyarı: `%s' alt iÅŸlevi yeniden tanımlanıyor EPS dosyası "%s" bozuk %%%%BoundingBox satırı içeriyor: "%.*s" EPS dosyası "%s" "%%!" sihriyle baÅŸlamıyor EPS dosyası "%s" geçerli bir EPS dosyası deÄŸil EPS dosyası "%s" sayfa için fazla büyük Renklendirme aÅŸağıdaki diller ve dosya biçemleri için desteklenir: Ayrıca, aÅŸağıdaki dizinler de denendi:Geriye baÅŸvuru geçersizKarakter sınıf ismi geçersizHarmanlama karakteri geçersiz\{\} içinde geçersiz içerikÖnceki düzenli ifade geçersizGeçersiz aralık sonuGeçersiz düzenli ifadeYalnız uzun seçenekler: --color[=bool] renkli çıktı üretir --continuous-page-numbers sayfa numaralarını bütün girdi dosyalarında devam ettirir. Her dosyada sayfa sayısını yeniden baÅŸlatmaz. --download-font=İSİM İSİM yazıtipini indirir. --extended-return-values geliÅŸmiÅŸ çıkış deÄŸerlerini etkinleÅŸtirir. --filter-stdin=İSİM standart girdinin girdi filtresine nasıl geleceÄŸini belirtir. --footer=ALTYAZI sayfa altyazısını belirtir. --h-column-height=BOY yatay sütun boyunu BOY olarak ayarlar. --help bu yardımı gösterir ve çıkar. Bellek tükendiN-up argümanı 2'nin kuvveti olmalı: %dEÅŸleÅŸme yokDaha önce düzenli ifade yokDüzenli ifadenin sonu eksik kalmışDüzenli ifade fazla büyükBaÅŸarılıİçindekilerBu bir kurulum hatasına benziyor. Lütfen yeniden derlemeye çalışın:İzleyen terskesmeDaha fazla bilgi için `%s --help' yazın. EÅŸleÅŸmemiÅŸ ( veya \(EÅŸleÅŸmemiÅŸ ) veya \)EÅŸleÅŸmemiÅŸ [ veya [^EÅŸleÅŸmemiÅŸ \{Kullanım: %s [SEÇENEK]... DOSYA... Uzun seçenekler için zorunlu olan argümanlar kısa seçenekler için de zorunludur. -h, --help bu yardımı gösterir ve çıkar -p, --output-file=İSİM çıktıyı İSİM dosyasına yazdırır (öntanımlı dosya font.map). EÄŸer DOSYA `-' ise, çıktıyı standart çıktıya gönderir. -V, --version sürüm bilgisini gösterir Kullanım: %s [SEÇENEK]... [DOSYA]... Uzun seçenekler için zorunlu olan argümanlar kısa seçenekler için de zorunludur. "%s" çıktı dosyası kapatılamadı: %sAFM kitaplığı oluÅŸturulamadı"%s" çıktı dosyası oluÅŸturulamadı: %sgeçici ara dosya oluÅŸturulamadı: %sgeçici içindekiler dosyası oluÅŸturulamadı: %skodlama dosyası "%s.enc" bulunamadı: %s baÅŸlık tanım dosyası "%s.hdr" bulunamadıbaÅŸlık tanım dosyası "%s.hdr" bulunamadı: %s "%s" giriÅŸi bulunamadı: %s uid=%d için parola girdisi alınamadı: %s"%s" yazıtipi için AFM dosyası açılamadı, öntanımlı kullanılıyor öntanımlı yazıtipi için AFM dosyası açılamadı: %sAFM kitaplığı açılamadı: %sEPS dosyası "%s" açılamadı: %s yazıtipi tanım dosyası "%s" açılamadı: %s "%s" girdi dosyası açılamadı: %s"%s" dosyası için girdi filtresi "%s" açılamadı: %s`%s' yazıcısı açılamadı: %s"%s/%s" ayar dosyası açılamadı: %sara dosya baÅŸa sarılamadı: %siçindekiler dosyası baÅŸa döndürülemedi: %s"%s" girdi dosyası durumlanamadı: %s"%s" ortamı hakkında hiç bir ÅŸey bilinmiyor"%s" yazıtipi indiriliyor hata: açıklama içinde EOFhata: düzenli ifade içinde EOFhata: dizge sabitinde EOFdosya hizalanması sıfırdan büyük olmalıdosya=%s yardımcı uygulama belirteci tek bir karakter olmalı: %sgeçersiz N-up argümanı: %dgeçersiz basılamaz biçem "%s"^@epsf kaçışı için geçersiz %c seçeneÄŸihatalı seçenek: %sgeçersiz sayfa etiket biçemi "%s"sarılmış satır imleci için geçersiz stil: "%s"geçersiz metinaltı stili: %s%2$s seçeneÄŸi için hatalı deÄŸer "%1$s"%2$s seçeneÄŸi için geçersiz deÄŸer "%1$s"^@bggray kaçışı için geçersiz deÄŸer: %s^@shade kaçışı için geçersiz deÄŸer: %sbilinen ortamlar: isim geniÅŸlik uzunluk llx lly urx ury ---------------------------------------------------------------- bozuk %s kaçışı: '{' bulunamadıbozuk ^@epsf kaçışı: seçeneklerden sonra ']' yokbozuk ^@epsf kaçışı: '{' bulunamadı-W seçeneÄŸi için hatalı argüman `%s', --option: virgül bulunamadı^@%s kaçışı için bozuk renk belirteci: %sbozuk üst boyut: "%s"^@font kaçışı için bozuk yazıtipi belirteci: %sbozuk yazıtipi özelliÄŸi: %sbozuk metinaltı pozisyonu: %seksik karakter kodları (onluk): her sayfaya en az bir satır basmalı: %sçıktı üretilmedi basılamaz karakter kodları (onluk): sütun sayısı sıfırdan büyük olmalıçıktı %s'de bırakıldı çıktı %s'ye gönderildi %s dosyası "%s" geçiriliyor çıktı dili `%s' için bütün girdi dosyaları geçiriliyor yazıcı"%s" dosyası iÅŸleniyor... "%s" yazıtipi için AFM bilgisi okunuyor `%s' ortamı için yeni kenarlar atanıyor (%dx%d): llx=%d, lly=%d, urx=%d, ury=%d dilim sıfırdan büyük olmalıstandart çıktıseçenek dizgesi %s="%s" içinde sözdizim hatası: açılan tırnak kapatılmamış: %c%s kaçışı için fazla uzun argüman: %.*s^@epsf kaçışı için çok uzun dosya adı: %.*sbudandı^@epsf kaçışı taranırken beklenmeyen EOFbilinmeyen kodlama: %sbilinmeyen özel kaçış: %skullanıcı yazıtipi kodlaması ya sistem öntanımlısı ya da `ps' olabiliruyarı: çevre deÄŸiÅŸkeni %s'den aÅŸağıdaki seçenekler iÅŸlenmedi: uyarı: `%s' durumu yeniden tanımlanıyorsarıldıxcalloc(): %d bayt ayrılamadı xmalloc(): %d bayt ayrılamadı xrealloc(): %d bayt yeniden ayrılamadı enscript-1.6.5.90/po/hr.gmo0000644000175000017500000006125511606344232012267 00000000000000Þ•À ! %08U [g w…†›£;?{  œ$©IÎ)8+b&Ž"µ#ØCü@Z't!œ,¾ë% ,/-\ Š&«Òä ÷1#5$Y)~¨Â â!%Ee%…#«$Ï"ô- E )^ "ˆ ,« &Ø ÿ !!/>!'n!)–!5À!ö!2"4I"3~")²"/Ü", #39#/m#-#/Ë#0û#',$&T$+{$=§$.å$&%$;%I`%)ª%Ô%ë%&$&$<&a&s&HŽ&×($è( ))#5)Y)t)|)@Ž)Ï)&â) **-* ?*vL*iÃ+#-,Q,$m,)’,&¼,)ã,- -2;-n-(-4¶-/ë-. 9.-Z.!ˆ.1ª.Ü.%û.!/A/!^/%€/¦/½/ Ó/ô/'0:0=C00!›0#½0á0ô0+1?1 Z1 {1%œ1$Â1xç1!`2-‚2%°2?Ö2(3?3)_3‰3¡3#Á3.å34))4*S4~4‘4¤49Â4ü455I=5‡5§5C®5%ò5*6 C6+M6y6Ž6;©6Hå6.7M7&U7&|7)£7oÍ7=9 A9L9T9q9 w9ƒ9 “9ô¡90–;²Ç=Yz@ÔC èCöC(DF/DvD+“D/¿D*ïD&E(AE>jE©EÇE)äE$F&3FZFzF%šF'ÀF!èF G+GBG ZG1gG ™G ºG'ÛGH!!H!CH"eH"ˆH«HÈH*åH,I*=I)hI$’I·I*ÖI)J++J*WJ‚J%¢J5ÈJ-þJ),K7VK ŽK4¯K.äK,L0@L0qLD¢LNçL26M%iM0M1ÀM+òM+N1JN=|N'ºN%âN&O@/O*pO›O¹O×OòO$ P/PGPabPÄR-ØRS#S:SYSrSySPSÒS)íST*T=T OTS\Tc°U+V@V&`V8‡V5ÀV,öV1#W7UWW-«WAÙW5X'QX#yX.X%ÌX4òX'Y5GY%}Y2£Y$ÖYûYZ+ZCZ#cZ'‡Z¯ZF¸ZÿZ [&=[d[&{[1¢[Ô[(ò[&\,B\+o\?›\"Û\5þ\&4]@[]*œ] Ç]-è]^!3^+U^0^²^(Ï^#ø^_._B_5^_”_š_&²_JÙ_$`D`DU`(š`/Ã` ó`1ý`/aEaGdaG¬a%ôa b+&b+Rb.~bÀªfše–04Pa$’+X¢Y8—‡1A`s™yg}N…‚|>£Ÿjq«•”-w †µ º9\I~k n]¼¬3d ¤O»¾!b'³u7r½¿›©#K¦. ‰5¯UœF€v´žJ(ŠD·,z^ZG&°Ž@=R²hoB; ‘:CŒH{Sƒxc)E/T?V"“L[ %±W¶i„­¹¨¸2˜mt§Q_6p‹ˆ¥M*l<®¡ %s ../../lib ../lib ./configure --prefix=PREFIX make make check make distclean make install --help-highlight describe all supported --highlight languages and file formats --highlight-bar-gray=NUM print highlight bars with gray NUM (0 - 1) --list-media list names of all known media --margins=LEFT:RIGHT:TOP:BOTTOM adjust page marginals --mark-wrapped-lines[STYLE] mark wrapped lines in the output with STYLE --non-printable-format=FMT specify how non-printable chars are printed --nup-columnwise layout pages in the N-up printing columnwise --nup-xpad=NUM set the page x-padding of N-up printing to NUM --nup-ypad=NUM set the page y-padding of N-up printing to NUM --page-label-format=FMT set page label format to FMT --ps-level=LEVEL set the PostScript language level that enscript should use --printer-options=OPTIONS pass extra options to the printer command --rotate-even-pages rotate even-numbered pages 180 degrees --slice=NUM print vertical slice NUM --style=STYLE use highlight style STYLE --swap-even-page-margins swap left and right side margins for each even numbered page --toc print table of contents --ul-angle=ANGLE set underlay text's angle to ANGLE --ul-font=NAME print underlays with font NAME --ul-gray=NUM print underlays with gray value NUM --ul-position=POS set underlay's starting position to POS --ul-style=STYLE print underlays with style STYLE --word-wrap wrap long lines from word boundaries -L, --lines-per-page=NUM specify how many lines are printed on each page -m, --mail send mail upon completion -M, --media=NAME use output media NAME -n, --copies=NUM print NUM copies of each page -N, --newline=NL select the newline character. Possible values for NL are: n (`\n') and r (`\r'). -o an alias for option --output -O, --missing-characters list missing characters -p, --output=FILE leave output to file FILE. If FILE is `-', leave output to stdout. -P, --printer=NAME print output to printer NAME -q, --quiet, --silent be really quiet -r, --landscape print in landscape mode -R, --portrait print in portrait mode option %d = "%s" left in %s sent to %s $3v $-40N $3% pages $4L lines $E $C%s: FATAL ERROR: States version %s or higher is required for this script %s: autoloading `%s' from `%s' %s: couldn't create output file "%s": %s %s: couldn't open definition file `%s': %s %s: couldn't open input file `%s': %s %s: couldn't open output file "%s"%s: error: undefined variable `%s' %s: illegal newline character specifier: '%s': expected 'n' or 'r' %s: illegal option -- %c %s: invalid option -- %c %s: malformed variable definition "%s" %s: no closing ')' for $() 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: ouf of memory%s: out of memory %s: panic: %s: primitive `%s': too few arguments for format %s: too long format for $D{} escape%s: too long format for %%D{} escape%s: too long variable name for $() escape%s: undefined state `%s' %s: undefined super state `%s' %s: unknown `$' escape `%c' (%d)%s: unknown `%%' escape `%c' (%d)%s: unknown warning level `%s' %s: unrecognized option `%c%s' %s: unrecognized option `--%s' %s: warning: font height is negative %s: warning: font size is negative %s: warning: font width is negative %s:%d: %%FooterHeight: no argument%s:%d: %%Format: name "%s" is already defined%s:%d: %%Format: no name%s:%d: %%Format: too long name, maxlen=%d%s:%d: %%HeaderHeight: no argument%s:%d: %s: argument %d doesn't match format %s:%d: %s: couldn't define state `%s' %s:%d: %s: illegal argument %s:%d: %s: illegal argument type %s:%d: %s: illegal regexp character syntax: %c %s:%d: %s: illegal type specifier `%c' %s:%d: %s: malformed version string `%s' %s:%d: %s: no extra options can be specified for %%s %s:%d: %s: offset out of range %s:%d: %s: start offset is bigger than end offset %s:%d: couldn't compile regular expression "%s": %s %s:%d: error: array reference index is not integer %s:%d: error: couldn't set variable `%s' %s:%d: error: expression between illegal types %s:%d: error: illegal lvalue for assignment %s:%d: error: illegal rvalue for string assignment %s:%d: error: illegal type for array reference %s:%d: error: negative array reference index %s:%d: error: too few arguments for subroutine %s:%d: error: too many arguments for subroutine %s:%d: error: undefined procedure `%s' %s:%d: error: undefined variable `%s' %s:%d: warning: redefining subroutine `%s' EPS file "%s" contains malformed %%%%BoundingBox row: "%.*s" EPS file "%s" does not start with "%%!" magic EPS file "%s" is not a valid EPS file EPS file "%s" is too large for page Highlighting is supported for the following languages and file formats: I did also try the following directories:Invalid back referenceInvalid character class nameInvalid collation characterInvalid content of \{\}Invalid preceding regular expressionInvalid range endInvalid regular expressionLong-only options: --color[=bool] create color outputs with states --continuous-page-numbers count page numbers across input files. Don't restart numbering at beginning of each file. --download-font=NAME download font NAME --extended-return-values enable extended return values --filter-stdin=NAME specify how stdin is shown to the input filter --footer=FOOTER set page footer --h-column-height=HEIGHT set the horizontal column height to HEIGHT --help print this help and exit Memory exhaustedN-up argument must be power of 2: %dNo matchNo previous regular expressionPremature end of regular expressionRegular expression too bigSuccessTable of ContentsThis is probably an installation error. Please, try to rebuild:Trailing backslashTry `%s --help' for more information. Unmatched ( or \(Unmatched ) or \)Unmatched [ or [^Unmatched \{Usage: %s [OPTION]... FILE... Mandatory arguments to long options are mandatory for short options too. -h, --help print this help and exit -p, --output-file=NAME print output to file NAME (default file is font.map). If FILE is `-', leavy output to stdout. -V, --version print version number Usage: %s [OPTION]... [FILE]... Mandatory arguments to long options are mandatory for short options too. couldn't close output file "%s": %scouldn't create AFM librarycouldn't create output file "%s": %scouldn't create temporary divert file: %scouldn't create temporary toc file: %scouldn't find encoding file "%s.enc": %s couldn't find header definition file "%s.hdr"couldn't find header definition file "%s.hdr": %s couldn't find prolog "%s": %s couldn't get passwd entry for uid=%d: %scouldn't open AFM file for font "%s", using default couldn't open AFM file for the default font: %scouldn't open AFM library: %scouldn't open EPS file "%s": %s couldn't open font description file "%s": %s couldn't open input file "%s": %scouldn't open input filter "%s" for file "%s": %scouldn't open printer `%s': %scouldn't read config file "%s/%s": %scouldn't rewind divert file: %scouldn't rewind toc file: %scouldn't stat input file "%s": %sdo not know anything about media "%s"downloading font "%s" error: EOF in commenterror: EOF in regular expressionerror: EOF in string constantfile alignment must be larger than zerofile=%s helper application specification must be single character: %sillegal N-up argument: %dillegal non-printable format "%s"illegal option %c for ^@epsf escapeillegal option: %sillegal page label format "%s"illegal style for wrapped line marker: "%s"illegal underlay style: %sillegal value "%s" for option %sinvalid value "%s" for option %sinvalid value for ^@bggray escape: %sinvalid value for ^@shade escape: %sknown media: name width height llx lly urx ury ------------------------------------------------------------ malformed %s escape: no '{' foundmalformed ^@epsf escape: no ']' after optionsmalformed ^@epsf escape: no '{' foundmalformed argument `%s' for option -W, --option: no comma foundmalformed color spec for ^@%s escape: %smalformed float dimension: "%s"malformed font spec for ^@font escape: %smalformed font spec: %smalformed underlay position: %smissing character codes (decimal): must print at least one line per each page: %sno output generated non-printable character codes (decimal): number of columns must be larger than zerooutput left in %s output sent to %s passing through %s file "%s" passing through all input files for output language `%s' printerprocessing file "%s"... reading AFM info for font "%s" set new marginals for media `%s' (%dx%d): llx=%d, lly=%d, urx=%d, ury=%d slice must be greater than zerostdoutsyntax error in option string %s="%s": missing end of quotation: %ctoo long argument for %s escape: %.*stoo long file name for ^@epsf escape: %.*struncatedunexpected EOF while scanning ^@epsf escapeunknown encoding: %sunknown special escape: %suser font encoding can be only the system's default or `ps'warning: didn't process following options from environment variable %s: warning: redefining state `%s'wrappedxcalloc(): couldn't allocate %d bytes xmalloc(): couldn't allocate %d bytes xrealloc(): couldn't reallocate %d bytes Project-Id-Version: enscript 1.6.3 Report-Msgid-Bugs-To: bug-enscript@gnu.org POT-Creation-Date: 2011-07-10 16:43+0100 PO-Revision-Date: 2003-10-12 18:29+0200 Last-Translator: Hrvoje Niksic Language-Team: Croatian Language: hr MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-2 Content-Transfer-Encoding: 8bit %s ../../lib ../lib ./configure --prefix=PREFIX make make check make distclean make install --help-highlight opi¹i sve jezike i formate datoteka koje podr¾ava opcija --highlight --highlight-bar-gray=BROJ ispisuj osvijetljene pruge sa svom BROJA (0 - 1) --list-media ispi¹i nazive svih poznatih medija --margins=LEFT:RIGHT:TOP:BOTTOM postavi rubove stranice --mark-wrapped-lines[STIL] na izlazu oznaèi prelomljene retke STILOM --non-printable-format=FMT naznaèi kako se ispisuju neispisivi znakovi --nup-columnwise preslo¾i stranice u N-up ispisu po stupcima --nup-xpad=BROJ postavi stranièni x-padding za N-up ispis na BROJ --nup-ypad=BROJ postavi stranièni y-padding za N-up ispis na BROJ --page-label-format=FMT postavi format labele stranice na FMT --ps-level=RAZINA postavi razinu jezika PostScript koji enscript treba koristiti --printer-options=OPCIJE propusti dodatne opcije naredbi za ispis --rotate-even-pages zarotiraj parne stranice za 180 stupnjeva --slice=BROJ ispi¹i vertikalni isjeèak BROJ --style=STIL koristi stil osvjetljavanja STIL --swap-even-page-margins zamijeni lijevi i desni rub na svakoj parnoj stranici --toc ispi¹i sadr¾aj --ul-angle=KUT postavi kut underlay teksta na KUT --ul-font=IME ispi¹i underlaye s fontom imena IME --ul-gray=BROJ ispi¹i underlaye sa sivom bojom vrijednosti BROJ --ul-position=POLO®AJ postavi poèetni polo¾aj underlaya na POLO®AJ --ul-style=STIL ispisuj underlaye sa stilom STIL --word-wrap prelomi duge linije na granicama rijeèi -L, --lines-per-page=BROJ naznaèi koliko redaka se ispisuje po stranici -m, --mail po¹alji poruku po¹tom po zavr¹etku -M, --media=IME upotrijebi izlazni medij IME -n, --copies=BROJ ispi¹i BROJ kopija svake stranice -N, --newline=NL izaberi znak za novi red. Moguæe vrijednosti za NL su: n (`\\n') i r (`\\r'). -o alias za opciju --output -O, --missing-characters ispi¹i znakove koji nedostaju -p, --output=SPIS ostavi izlaz u SPISU. Ako je SPIS `-', ostavi izlaz na standardnom izlazu. -P, --printer=IME ispi¹i izlaz na pisaè IME -q, --quiet, --silent budi istinski tih -r, --landscape ispisuj u "landscape" modu -R, --portrait ispisuj u "portrait" modu opcija %d = "%s" ostalo u %s poslano na %s $3v $-40N $3% stranica $4L redova $E $C%s: KOBNA GRE©KA: Stanja verzije %s ili veæe potrebna su ovog skripti %s: autoloadam `%s' iz `%s' %s: ne mogu stvoriti izlazni spis "%s": %s %s: nisam otvorio spis s definicijama `%s': %s %s: ne mogu otvoriti ulazni spis `%s': %s %s: ne mogu otvoriti izlazni spis "%s"%s: gre¹ka: nedefinirana varijabla `%s' %s: nedopu¹tena oznaka novog reda: '%s': oèekivao 'n' ili 'r' %s: nedopu¹tena opcija -- %c %s: neispravna opcija -- %c %s: izoblièena definicija varijable "%s" %s: nema zatvorene ')' za $() escape%s: opcija `%c%s' ne dopu¹ta argument %s: opcija `%s' je dvosmislena %s: opcija `%s' tra¾i argument %s: uz opciju `--%s' ne ide argument %s: opcija `-W %s' ne dopu¹ta argument %s: opcija `-W %s' je vi¹eznaèna %s: opcija tra¾i argument -- %c %s: nema vi¹e memorije%s: ponestalo memorije %s: panika: %s: primitiva `%s': premalo argumenata za format %s: predug format za $D{} escape%s: predug format za escape $D{}%s: predugo ime varijable za $() escape%s: nedefinirano stanje `%s' %s: nedefinirano nad-stanje `%s' %s: nepoznat `$' escape `%c' (%d)%s: nepoznat `%%' escape `%c' (%d)%s: nepoznat nivo upozorenja `%s' %s: nepoznata opcija `%c%s' %s: nepoznata opcija `--%s' %s: upozorenje: visina fonta je negativna %s: upozorenje: velièina fonta je negativna %s: upozorenje: ¹irina fonta je negativna %s:%d: %%FooterHeight: nedostaje argument%s:%d: %%Format: ime "%s" je zauzeto%s:%d: %%Format: nedostaje ime%s:%d %%Format: predugaèko ime, najvi¹e=%d%s:%d: %%HeaderHeight: nedostaje argument%s:%d: %s: argument %d ne odgovara formatu %s:%d: %s: ne mogu definirati stanje `%s' %s:%d: %s: nedopu¹ten argument %s:%d: %s: nedopu¹teni tip argumenta %s:%d: %s: nedopu¹tena znakovna sintaksa regexpa: %c %s:%d: %s: nedopu¹ten specifikator tipa `%c' %s:%d: %s: izoblièen string verzije `%s' %s:%d: %s: dodatne opcije ne smiju se naznaèiti za %%s %s:%d: %s: pomak je van raspona %s:%d: %s: poèetni pomak veæi je od krajnjeg pomaka %s: %d: nisam preveo regularni izraz "%s": %s %s:%d: gre¹ka: indeks niza nije cijeli broj %s:%d: gre¹ka: ne mogu postaviti varijablu `%s' %s:%d: gre¹ka: izraz meðu nedopu¹tenim tipovima %s:%d: gre¹ka: nedopu¹tena vrijednost s lijeve strane dodjeljivanja %s:%d: gre¹ka: nedopu¹tena vrijednost s desne strane dodjeljivanja stringova %s:%d: gre¹ka: nedopu¹ten tip za referencu na niz %s:%d: gre¹ka: negativan indeks niza %s:%d: gre¹ka: premalo argumenata za potprogram %s:%d: gresska: previ¹e argumenata za potprogram %s:%d: gre¹ka: nedefinirana procedura `%s' %s:%d: gre¹ka: nedefinirana varijabla `%s' %s:%d: upozorenje: redefinira se potprogram `%s' EPS spis "%s" sadr¾i izoblièen redak %%%%BoundingBox: "%.*s" EPS spis "%s" ne poèinje s èarom "%%!" EPS spis "%s" nije ispravan EPS spis EPS spis "%s" je prevelik za stranicu Osvjetljavanje je podr¾ano za sljedeæe jezike i formate spisa: Takoðer sam isprobao sljedeæe direktorije:Neispravna povratna referencaNeispravno ime znakovne klaseNeispravan kolacijski znakNeispravan sadr¾aj \{\}Neispravan prethodni regularni izrazNeispravan kraj rasponaNeispravan regularni izrazSamo duge opcije: --color[=bool] stvori izlaz u boji sa stanjima --continuous-page-numbers broji stranice preko granice ulaznih spisa. Nemoj brojati ispoèetka na poèetku svakog spisa. --download-font=IME s mre¾e skini font IME --extended-return-values ukljuèi pro¹irene izlazne vrijednosti --filter-stdin=IME naznaèi kako se stdin prikazuje ulaznom filtru --footer=FOOTER postavi footer na stranici --h-column-height=VISINA postavi visinu vodoravnog stupca na VISINU --help ispi¹i ovu poruku i izaði Memorija iscrpljenaN-up argument mora biti potencija broja 2: %dNema poklapanjaNedostaje prethodni regularni izrazPrerani kraj regularnog izrazaRegularni izraz prevelikUspjehSadr¾ajVjerojatno se radi o instalacijskoj gre¹ki. Molimo, poku¹ajte ponovo izgraditi:Obrnuta kosa crta na krajuPoku¹aj `%s --help' za vi¹e informacija. Nesparena ( ili \(Nesparena ) ili \)Nesparen [ ili [^Nesparena \{Uporaba: %s [OPCIJA]... SPIS... Ako dugaèka opcija zahtijeva argument, isto vrijedi i za kratku. -h, --help ispi¹i ovu pomoæ i izaði -p, --output-file=SPIS ispisuj izlaz u SPIS (podrazumijeva se font.map). Ako je SPIS `-', pi¹i na standardni izlaz. -V, --version ispi¹i broj verzije Uporaba: %s [OPCIJA]... [SPIS]... Ako dugaèka opcija zahtijeva argument, isto vrijedi i za kratku. nisam uspio zatvoriti izlazni spis "%s": %sne mogu kreirati AFM bibliotekune mogu stvoriti izlazni spis "%s": %sne mogu stvoriti naziv privremenog skretnièkog spisa: %snisam uspio stvoriti privremeni spis sa sadr¾ajem: %sne mogu naæi spis s encodingom "%s.enc": %s nisam na¹ao definiciju spisa s headerima "%s.hdr"ne mogu naæi spis s definicijom zaglavlja "%s.hdr": %s ne mogu naæi prolor "%s": %s nisam uspio dobiti passwd entry za uid=%d: %sne mogu otvoriti AFM spis za font "%s", podrazumijevanom metodom ne mogu otvoriti AFM spis za podrazumijevani font: %snisam uspio otvoriti AFM biblioteku: %sne mogu otvoriti EPS spis "%s": %s ne mogu otvoriti spis s opisom fonta "%s": %s ne mogu otvoriti ulazni spis "%s": %sne mogu otvoriti ulazni filter "%s" za spis "%s": %sne mogu otvoriti pisaè `%s': %snisam uspio otvoriti konfiguracijski spis "%s/%s": %sne mogu premotati skretnièki spis: %sne mogu prevrtiti spis sa sadr¾ajem na poèetak: %sne mogu statati ulazni spis "%s": %sne znam ni¹ta o mediju "%s"dohvaæam font "%s" gre¹ka: EOF u komentarugre¹ka: EOF u regularnom izrazugre¹ka: EOF u stringovnoj konstantiporavnanje spisa mora biti veæe od nulespis=%s specifikacija pomoæne aplikacije mora se sastojati od jednog znaka: %snedopu¹ten N-up argument: %dnedopu¹ten neispisiv format "%s"nedopu¹tena opcija %c za ^@epsf escapenedopu¹tena opcija: %snedopu¹ten format labele stranice "%s"nedopu¹ten stil za oznaku prelomljenog reda: "%s"nedopu¹ten stil underlaya: %snedopu¹tena vrijednost "%s" za opciju %snevaljana vrijednost "%s" za opciju %sneispravna vrijednost za escape ^@bggrat: %sneispravna vrijednost za escape ^@shade: %spoznati mediji ime sirina duljina llx lly urx ury izoblièen escape %s: nedostaje '{'izoblièen escape ^@epsf: nedostaje ']' poslije opcijaizoblièen escape ^@epsf: nedostaje '{'izoblièen argument `%s' opciji -W, --option: nije pronaðen zarezizoblièena naznaka boje za escape ^@%s: %sizoblièena float dimenzija: "%s"izoblièena naznaka fonta za escape ^@font: %sizoblièena naznaka fonta: %sizoblièena pozicija underlaya: %skodovi znakova koji nedostaju (decimalni): moram ispisati barem jedan redak po stranici: %snikakav izlaza nije stvoren kodovi neispisivih znakova (decimalno): broj stupaca mora biti veæi od nuleizlaz ostao u %s izlaz poslan na %s prolazim kroz %s spis "%s" prolazim kroz sve ulazne spise za izlazni jezik `%s' pisaèobraðujem spis "%s"... uèitavam AFM informacije za font "%s" postavi nove rubove za medij `%s' (%dx%d): llx=%d, lly=%d, urx=%d, ury=%d odsjeèak mora biti veæi od nulestandardni izlazsintaksna gre¹ka u opcijskom nizu %s="%s": nedostaje kraj citata: %cpredugaèak argument za escape %s: "%.*s"predugaèak naziv spisa za escape ^@epsf: "%.*s"odsjeèenineoèekivan EOF za vrijeme pregleda escapea ^@epsfnepoznat enkoding: %snepoznat specijalni escape: %skorisnikov encoding fonta smije biti samo sistemska vrijednost ili `ps'upozorenje: nisam procesirao sljedeæe opcije iz okoli¹ne varijable %s: upozorenje: redefinira se stanje `%s'prelomljenixcalloc(): nije uspio alocirati %d bajtova xmalloc(): nije uspio alocirati %d bajtova xrealloc(): nije uspio realocirati %d bajtova enscript-1.6.5.90/po/da.po0000644000175000017500000012211711606344231012070 00000000000000# Danish messages for enscript # Copyright (C) 2002 Free Software Foundation, Inc. # This file is distributed under the same license as the enscript package. # Keld Simonsen , 2002,2011. # msgid "" msgstr "" "Project-Id-Version: enscript 1.6.5.2\n" "Report-Msgid-Bugs-To: bug-enscript@gnu.org\n" "POT-Creation-Date: 2011-07-10 16:43+0100\n" "PO-Revision-Date: 2011-01-09 01:36+0100\n" "Last-Translator: Keld Simonsen \n" "Language-Team: Danish \n" "Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=iso-8859-1\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: compat/getopt.c:628 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "%s: flaget '%s' er flertydigt\n" #: compat/getopt.c:652 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "%s: flaget '--%s' tillader ikke noget argument\n" #: compat/getopt.c:657 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "%s: flaget '%c%s' tillader ikke noget argument\n" #: compat/getopt.c:674 compat/getopt.c:847 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "%s: flaget '%s' kræver et argument\n" #: compat/getopt.c:703 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "%s: ukendt flag '--%s'\n" #: compat/getopt.c:707 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "%s: ukendt flag '%c%s'\n" #: compat/getopt.c:733 #, c-format msgid "%s: illegal option -- %c\n" msgstr "%s: ikke tilladt flag -- %c\n" #: compat/getopt.c:736 #, c-format msgid "%s: invalid option -- %c\n" msgstr "%s: ugyldigt flag -- %c\n" #: compat/getopt.c:766 compat/getopt.c:896 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: flaget kræver et argument -- %c\n" #: compat/getopt.c:813 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "%s: flaget '-W %s' er flertydigt\n" #: compat/getopt.c:831 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s: flaget '-W %s' tillader ikke noget argument\n" #: compat/xalloc.c:70 #, c-format msgid "xmalloc(): couldn't allocate %d bytes\n" msgstr "xmalloc(): kunne ikke allokere %d byte\n" #: compat/xalloc.c:88 #, c-format msgid "xcalloc(): couldn't allocate %d bytes\n" msgstr "xcalloc(): kunne ikke allokere %d byte\n" #: compat/xalloc.c:109 #, c-format msgid "xrealloc(): couldn't reallocate %d bytes\n" msgstr "xrealloc(): kunne ikke omallokere %d byte\n" #: compat/regex.c:996 msgid "Success" msgstr "Lykkedes" #: compat/regex.c:997 msgid "No match" msgstr "Ingen træffere" #: compat/regex.c:998 msgid "Invalid regular expression" msgstr "Ugyldigt regulært udtryk" #: compat/regex.c:999 msgid "Invalid collation character" msgstr "Ugyldigt kollationeringstegn" #: compat/regex.c:1000 msgid "Invalid character class name" msgstr "Ugyldigt tegnklassenavn" #: compat/regex.c:1001 msgid "Trailing backslash" msgstr "Efterfølgende omvendt skråstreg" #: compat/regex.c:1002 msgid "Invalid back reference" msgstr "Ugyldig bagudreference" #: compat/regex.c:1003 msgid "Unmatched [ or [^" msgstr "Ubalanceret [ eller [^" #: compat/regex.c:1004 msgid "Unmatched ( or \\(" msgstr "Ubalanceret ( eller \\(" #: compat/regex.c:1005 msgid "Unmatched \\{" msgstr "Ubalanceret \\{" #: compat/regex.c:1006 msgid "Invalid content of \\{\\}" msgstr "Ugyldigt indhold i \\{\\}" #: compat/regex.c:1007 msgid "Invalid range end" msgstr "Ugyldigt intervalslut" #: compat/regex.c:1008 msgid "Memory exhausted" msgstr "Hukommelsen opbrugt" #: compat/regex.c:1009 msgid "Invalid preceding regular expression" msgstr "Ugyldigt foregående regulært udtryk" #: compat/regex.c:1010 msgid "Premature end of regular expression" msgstr "For tidligt slut på regulært udtryk" #: compat/regex.c:1011 msgid "Regular expression too big" msgstr "Regulært udtryk for stort" #: compat/regex.c:1012 msgid "Unmatched ) or \\)" msgstr "Ubalanceret ) eller \\)" #: compat/regex.c:5458 msgid "No previous regular expression" msgstr "Intet foregående regulært udtryk" #: src/main.c:949 #, no-c-format msgid "$3v $-40N $3% pages $4L lines $E $C" msgstr "$3v $-40N $3% sider $4L linjer $E $C" #: src/main.c:979 #, c-format msgid "couldn't get passwd entry for uid=%d: %s" msgstr "kunne ikke hente passwd-post for uid=%d: %s" #: src/main.c:1071 #, c-format msgid "couldn't read config file \"%s/%s\": %s" msgstr "kunne ikke åbne konfigurationsfilen '%s/%s': %s" #: src/main.c:1075 msgid "I did also try the following directories:" msgstr "Jeg prøvede også de følgende kataloger:" #: src/main.c:1076 src/main.c:1077 src/main.c:1078 #, c-format msgid "\t%s" msgstr "\t%s" #: src/main.c:1079 msgid "\t../lib" msgstr "\t../lib" #: src/main.c:1080 msgid "\t../../lib" msgstr "\t../../lib" #: src/main.c:1082 msgid "This is probably an installation error. Please, try to rebuild:" msgstr "Dette er nok en installationsfejl. Prøv gerne at genoversætte." #: src/main.c:1083 msgid "\tmake distclean" msgstr "\tmake distclean" #: src/main.c:1084 msgid "\t./configure --prefix=PREFIX" msgstr "\t./configure --prefix=PRÆFIKS" #: src/main.c:1085 msgid "\tmake" msgstr "\tmake" #: src/main.c:1086 msgid "\tmake check" msgstr "\tmake check" #: src/main.c:1087 msgid "\tmake install" msgstr "\tmake install" #: src/main.c:1088 #, fuzzy msgid "" "or set the environment variable `ENSCRIPT_LIBRARY' to point to your library " "directory." msgstr "eller sæt miljøvariablen `ENSCRIPT_LIBRARY' til at peget til det" #: src/main.c:1161 #, c-format msgid "unknown encoding: %s" msgstr "ukendt kodning: %s" #: src/main.c:1180 #, c-format msgid "couldn't open AFM library: %s" msgstr "kunne ikke åbne AFM-bibliotek: %s" #: src/main.c:1209 #, c-format msgid "" "known media:\n" "name width\theight\tllx\tlly\turx\tury\n" "------------------------------------------------------------\n" msgstr "" "kendte media:\n" "navn bredde\thøjde\tnvx\tnvy\tøhx\tøhy\n" "------------------------------------------------------------\n" #: src/main.c:1228 #, c-format msgid "do not know anything about media \"%s\"" msgstr "kender ikke til noget om formatet '%s'" #: src/main.c:1272 #, c-format msgid "" "set new marginals for media `%s' (%dx%d): llx=%d, lly=%d, urx=%d, ury=%d\n" msgstr "" "sæt nye marginaler for formatet '%s' (%d×%d): nvx=%d, nvy=%d, øhx=%d, øhy%d\n" #: src/main.c:1283 #, c-format msgid "illegal page label format \"%s\"" msgstr "ikke tilladt sideetiketsformat '%s'" #: src/main.c:1295 #, c-format msgid "illegal non-printable format \"%s\"" msgstr "ikke tilladt ej-udskrivbart format '%s'" #: src/main.c:1309 #, c-format msgid "illegal style for wrapped line marker: \"%s\"" msgstr "ikke tilladt stíl på linjeombrydningstegn: '%s'" #: src/main.c:1319 #, c-format msgid "illegal N-up argument: %d" msgstr "ikke tilladt N-op-argument: %d" #: src/main.c:1324 #, c-format msgid "N-up argument must be power of 2: %d" msgstr "N-op-argument skal være en potens af 2: %d" #: src/main.c:1401 #, c-format msgid "malformed underlay position: %s" msgstr "fejludformet underlagsposition: %s" #: src/main.c:1424 #, c-format msgid "illegal underlay style: %s" msgstr "ikke tilladt underlagsstíl: %s" #: src/main.c:1451 #, c-format msgid "" "Highlighting is supported for the following languages and file formats:\n" "\n" msgstr "" "Syntaksfarvning understøttes for følgende sprog og filformater:\n" "\n" #: src/main.c:1632 #, c-format msgid "couldn't create temporary toc file: %s" msgstr "kunne ikke oprette midlertidig indholdsfil: %s" #: src/main.c:1679 #, c-format msgid "couldn't stat input file \"%s\": %s" msgstr "kunne ikke tage status på inddatafilen '%s': %s" #: src/main.c:1699 #, c-format msgid "couldn't rewind toc file: %s" msgstr "kunne ikke tilbagespole indholdsfilen: %s" #: src/main.c:1705 msgid "Table of Contents" msgstr "Indhold" #: src/main.c:1731 msgid "no output generated\n" msgstr "ingen uddata genereret\n" #: src/main.c:1736 #, c-format msgid "output sent to %s\n" msgstr "uddata sendt til %s\n" #: src/main.c:1737 src/main.c:1768 msgid "printer" msgstr "printer" #: src/main.c:1739 #, c-format msgid "output left in %s\n" msgstr "uddata beholdt i %s\n" #: src/main.c:1760 #, c-format msgid "%d page" msgid_plural "%d pages" msgstr[0] "" msgstr[1] "" #: src/main.c:1762 #, c-format msgid "%d copy" msgid_plural "%d copies" msgstr[0] "" msgstr[1] "" #: src/main.c:1767 #, c-format msgid " sent to %s\n" msgstr " sendt til %s\n" #: src/main.c:1770 #, c-format msgid " left in %s\n" msgstr " beholdt i %s\n" #: src/main.c:1776 #, c-format msgid "%d line was %s\n" msgid_plural "%d lines were %s\n" msgstr[0] "%d linje blev %s\n" msgstr[1] "%d linjer blev %s\n" #: src/main.c:1781 msgid "truncated" msgstr "afkortede" #: src/main.c:1781 msgid "wrapped" msgstr "linjeombrudt" #: src/main.c:1788 #, c-format msgid "%d character was missing\n" msgid_plural "%d characters were missing\n" msgstr[0] "%d tegn manglede\n" msgstr[1] "%d tegn manglede\n" #: src/main.c:1794 msgid "missing character codes (decimal):\n" msgstr "manglede tegnkoder (decimalt):\n" #: src/main.c:1803 #, c-format msgid "%d non-printable character\n" msgid_plural "%d non-printable characters\n" msgstr[0] "%d ej udskrivbare tegn\n" msgstr[1] "%d ej udskrivbare tegn\n" #: src/main.c:1810 msgid "non-printable character codes (decimal):\n" msgstr "ej udskrivbare tegnkoder (decimalt):\n" #: src/main.c:1859 #, c-format msgid "couldn't open printer `%s': %s" msgstr "kunne ikke åbne printeren '%s': %s" #: src/main.c:1868 #, c-format msgid "couldn't create output file \"%s\": %s" msgstr "kunne ikke oprette uddatafilen '%s': %s" #: src/main.c:1885 #, c-format msgid "couldn't close output file \"%s\": %s" msgstr "kunne ikke lukke uddatafilen '%s': %s" #: src/main.c:1943 #, c-format msgid "" "syntax error in option string %s=\"%s\":\n" "missing end of quotation: %c" msgstr "" "syntaksfejl i flagstrengen %s='%s':\n" "mangler slut på citering: %c" #: src/main.c:1975 #, c-format msgid "" "warning: didn't process following options from environment variable %s:\n" msgstr "advarsel: behandlede ikke følgende flag fra miljøvariablen %s:\n" #: src/main.c:1979 #, c-format msgid " option %d = \"%s\"\n" msgstr " flaget %d = '%s'\n" #: src/main.c:2025 msgid "number of columns must be larger than zero" msgstr "antal kolonner skal være større end nul" #: src/main.c:2083 msgid "file alignment must be larger than zero" msgstr "filgrupperingen skal være større end nul" #: src/main.c:2138 src/main.c:2144 src/main.c:2355 src/util.c:416 #, c-format msgid "malformed font spec: %s" msgstr "fejludformet skrifttypespecifikation: %s" #: src/main.c:2160 #, c-format msgid "couldn't find header definition file \"%s.hdr\"" msgstr "kunne ikke finde hoveddefinitionsfil '%s.hdr'" #: src/main.c:2204 #, c-format msgid "must print at least one line per each page: %s" msgstr "skal udskrive mindst en linje per side: %s" #: src/main.c:2224 #, c-format msgid "%s: illegal newline character specifier: '%s': expected 'n' or 'r'\n" msgstr "%s: ikke tilladt nylinjetegn: '%s'': forventede 'n' eller 'r'\n" #: src/main.c:2313 #, c-format msgid "malformed argument `%s' for option -W, --option: no comma found" msgstr "" "fejlkonstrueret argument '%s' for flag -W, --option: intet komma fundet" #: src/main.c:2318 #, c-format msgid "helper application specification must be single character: %s" msgstr "angivelse af hjælpeprogram skal være et enkelt tegn: %s" #: src/main.c:2414 msgid "slice must be greater than zero" msgstr "skive skal være større end nul" #: src/main.c:2495 states/main.c:318 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Prøv '%s --help' for mere information.\n" #: src/main.c:2515 #, fuzzy, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" "Mandatory arguments to long options are mandatory for short options too.\n" " -# an alias for option -n, --copies\n" " -1 same as --columns=1\n" " -2 same as --columns=2\n" " --columns=NUM specify the number of columns per page\n" " -a, --pages=PAGES specify which pages are printed\n" " -A, --file-align=ALIGN align separate input files to ALIGN\n" " -b, --header=HEADER set page header\n" " -B, --no-header no page headers\n" " -c, --truncate-lines cut long lines (default is to wrap)\n" " -C[START], --line-numbers[=START]\n" " precede each line with its line number\n" " -d an alias for option --printer\n" " -D, --setpagedevice=KEY[:VALUE]\n" " pass a page device definition to output\n" " -e[CHAR], --escapes[=CHAR] enable special escape interpretation\n" msgstr "" "Brug: %s [FLAG]... [FIL]...\n" "Obligatoriske argumenter til lange flag er obligatoriske også for de korte.\n" " -# et alias for -n, --copies\n" " -1 samme som --columns=1\n" " -2 samme som --columns=2\n" " --columns=NUM angiv antal kolonner per side\n" " -a, --pages=SIDER angiv hvilke sider som skrives ud\n" " -A, --file-align=JUSTERING justér separate inddatafiler til JUSTERING\n" " -b, --header=HOVED sæt sidehoved\n" " -B, --no-header ingen sidehoveder\n" " -c, --truncate-lines afkort lange linjer (standard er at " "linjeombryde)\n" " -C, --line-numbers[=START]\n" " skriv linjenumret for hver linje\n" " -d et alias for flaget --printer\n" " -D, --setpagedevice=NØGLE[:VÆRDI]\n" " angiv en sideenhedsdefinition til uddata\n" " -e, --escapes[=TEGN] tillad speciel kontrolsekvenstolkning\n" #: src/main.c:2535 #, fuzzy, c-format msgid " -E[LANG], --highlight[=LANG] highlight source code\n" msgstr " -E, --highlight[=SPROG] lav fremhævelser i kildetekst\n" #: src/main.c:2538 #, fuzzy, c-format msgid "" " -f, --font=NAME use font NAME for body text\n" " -F, --header-font=NAME use font NAME for header texts\n" " -g, --print-anyway nothing (compatibility option)\n" " -G same as --fancy-header\n" " --fancy-header[=NAME] select fancy page header\n" " -h, --no-job-header suppress the job header page\n" " -H[NUM], --highlight-bars[=NUM] specify how high highlight bars are\n" " -i, --indent=NUM set line indent to NUM characters\n" " -I, --filter=CMD read input files through input filter CMD\n" " -j, --borders print borders around columns\n" " -J, an alias for option --title\n" " -k, --page-prefeed enable page prefeed\n" " -K, --no-page-prefeed disable page prefeed\n" " -l, --lineprinter simulate lineprinter, this is an alias for:\n" " --lines-per-page=66, --no-header, --" "portrait,\n" " --columns=1\n" msgstr "" " -f, --font=NAVN brug skrifttypen NAVN for normal tekst\n" " -F, --header-font=NAVN brug skrifttypen NAVN for sidehovedstekst\n" " -g, --print-anyway intet (kompatibilitetsflag)\n" " -G samme som --fancy-header\n" " --fancy-header[=NAVN] vælg flot sidehoved\n" " -h, --no-job-header fravælg jobforsiden\n" " -H, --highlight-bars=NUM angiv hvor høje markeringsstreger skal være\n" " -i, --indent=NUM sæt linjeindrykning til NUM tegn\n" " -I, --filter=KOMMANDO læs inddatafiler gennem inddatafiltret " "KOMMANDO\n" " -j, --borders udskriv kanter omkring kolonner\n" " -J, et alias for flaget --title\n" " -k, --page-prefeed tillad fødning af sider\n" " -K, --no-page-prefeed tillad ikke fødning af sider\n" " -l, --lineprinter simulér en linjeprinter, dette er et alias " "for:\n" " --lines-per-page=66, --no-header, --" "portrait,\n" " --columns=1\n" #: src/main.c:2556 #, c-format msgid "" " -L, --lines-per-page=NUM specify how many lines are printed on each " "page\n" " -m, --mail send mail upon completion\n" " -M, --media=NAME use output media NAME\n" " -n, --copies=NUM print NUM copies of each page\n" " -N, --newline=NL select the newline character. Possible\n" " values for NL are: n (`\\n') and r (`\\r').\n" " -o an alias for option --output\n" " -O, --missing-characters list missing characters\n" " -p, --output=FILE leave output to file FILE. If FILE is `-',\n" " leave output to stdout.\n" " -P, --printer=NAME print output to printer NAME\n" " -q, --quiet, --silent be really quiet\n" " -r, --landscape print in landscape mode\n" " -R, --portrait print in portrait mode\n" msgstr "" " -L, --lines-per-page=NUM angiv antal linjer som skal skrives på hver " "side\n" " -m, --mail sende en e-post når det er færdigt\n" " -M, --media=NAVN brug uddataformatet NAVN\n" " -n, --copies=NUM udskriv NUM kopier af hver side\n" " -N, --newline=NR vælg nylinjetegn. Mulige værdier for NR er:\n" " n ('\\n') og r ('\\r').\n" " -o et alias for flaget --output\n" " -O, --missing-characters list manglede tegn\n" " -p, --output=FIL behold uddata i filen FIL. Hvis FIL er '-',\n" " behold uddata i standard ud.\n" " -P, --printer=NAVN udskriv på printeren NAVN\n" " -q, --quiet, --silent vær ganske stille\n" " -r, --landscape udskriv i landskabstilstand\n" " -R, --portrait udskriv i portrættilstand\n" #: src/main.c:2572 #, fuzzy, c-format msgid "" " -s, --baselineskip=NUM set baselineskip to NUM\n" " -S, --statusdict=KEY[:VALUE]\n" " pass a statusdict definition to the output\n" " -t, --title=TITLE set banner page's job title to TITLE. Option\n" " sets also the name of the input file stdin.\n" " -T, --tabsize=NUM set tabulator size to NUM\n" " -u[TEXT], --underlay[=TEXT] print TEXT under every page\n" " -U, --nup=NUM print NUM logical pages on each output page\n" " -v, --verbose tell what we are doing\n" " -V, --version print version number\n" " -w, --language=LANG set output language to LANG\n" " -W, --options=APP,OPTION pass option OPTION to helper application APP\n" " -X, --encoding=NAME use input encoding NAME\n" " -z, --no-formfeed do not interpret form feed characters\n" " -Z, --pass-through pass through PostScript and PCL files\n" " without any modifications\n" msgstr "" " -s, --baselineskip=NUM sæt linjeafstand til NUM\n" " -S, --statusdict=NØGLE[:VÆRDI]\n" " send en statusleksikondefinition til uddata\n" " -t, --title=TITEL sæt forsidens jobtitel til TITEL.\n" " Flaget sætter også navnet på inddatafilen\n" " standard ind.\n" " -T, --tabsize=NUM sæt tabulatorstørrelsen til NUM\n" " -u, --underlay[=TEKST] skriv TEKST som underlag for hver side\n" " -U, --nup=NUM udskriv NUM logiske sider per uddataside\n" " -v, --verbose fortæl hvad vi gør\n" " -V, --version udskriv versionsnummer\n" " -W, --language=SPROG sæt uddatasproget til SPROG\n" " -W, --options=PROG,FLAG giv flaget FLAG til hjælpeprogrammet PROG\n" " -X, --encoding=NAVN brug inddatakodningen NAVN\n" " -z, --no-formfeed tolk ikke sideskiftstegn\n" " -Z, --pass-through videregiv PostScript- og PCL-filer uden\n" " nogen ændringer\n" #: src/main.c:2590 #, c-format msgid "" "Long-only options:\n" " --color[=bool] create color outputs with states\n" " --continuous-page-numbers count page numbers across input files. Don't\n" " restart numbering at beginning of each file.\n" " --download-font=NAME download font NAME\n" " --extended-return-values enable extended return values\n" " --filter-stdin=NAME specify how stdin is shown to the input filter\n" " --footer=FOOTER set page footer\n" " --h-column-height=HEIGHT set the horizontal column height to HEIGHT\n" " --help print this help and exit\n" msgstr "" "Kun lange flag:\n" " --color[=boolesk] opret farveuddata med tilstande\n" " --continuous-page-numbers optæl sidenumre henover inddatafiler. Nulstil\n" " ikke nullerering ved begyndelsen for hver fil.\n" " --download-font=NAVN hjemhent skrifttypen NAVN\n" " --extended-return-values aktivér udvidede returværdier\n" " --filter-stdin=NAVN angiv hvordan standard ind vises til " "inddatafiltret\n" " --footer=FOOTER sæt sidefod\n" " --h-column-height=HØJDE sæt den vandrette kolonnehøjde til HØJDE\n" " --help udskriv denne hjælpetekst og afslut\n" #: src/main.c:2601 #, c-format msgid "" " --help-highlight describe all supported --highlight languages\n" " and file formats\n" " --highlight-bar-gray=NUM print highlight bars with gray NUM (0 - 1)\n" " --list-media list names of all known media\n" " --margins=LEFT:RIGHT:TOP:BOTTOM\n" " adjust page marginals\n" " --mark-wrapped-lines[STYLE]\n" " mark wrapped lines in the output with STYLE\n" " --non-printable-format=FMT specify how non-printable chars are printed\n" msgstr "" " --help-highlight beskriv alle understøttede --highlight sprog\n" " og filformater\n" " --highlight-bar-gray=NUM udskriv markeringslinjer med gråværdi NUM (0 - " "1)\n" " --list-media list navnene på alle kendte media\n" " --margins=VENSTRE:HØJRE:TOP:BUND\n" " justér sidemargener\n" " --mark-wrapped-lines[STIL]\n" " markér ombrudte linjer i uddata med STIL\n" " --non-printable-format=FMT angiv hvordan ej udskrivbare tegn skal " "udskrives\n" #: src/main.c:2612 #, c-format msgid "" " --nup-columnwise layout pages in the N-up printing columnwise\n" " --nup-xpad=NUM set the page x-padding of N-up printing to NUM\n" " --nup-ypad=NUM set the page y-padding of N-up printing to NUM\n" " --page-label-format=FMT set page label format to FMT\n" " --ps-level=LEVEL set the PostScript language level that " "enscript\n" " should use\n" " --printer-options=OPTIONS pass extra options to the printer command\n" " --rotate-even-pages rotate even-numbered pages 180 degrees\n" msgstr "" " --nup-columnwise formtér sider for N-opudskrift i kolonner\n" " --nup-xpad=NUM sæt sidens x-udfyldning for N-op-udskrift til\n" " NUM\n" " --nup-ypad=NUM sæt sidens y-udfyldning for N-op-udskrift til\n" " NUM\n" " --page-label-format=FMT sæt sideetiketsformatet til FMT\n" " --ps-level=NIVEAU sæt PostScript-sprogniveauet som enscript skal\n" " bruge\n" " --printer-options=FLAG send med ekstra flag til udskriftskommandoen\n" " --rotate-even-pages rotér sider med lige numre 180°\n" #: src/main.c:2622 #, c-format msgid "" " --slice=NUM print vertical slice NUM\n" " --style=STYLE use highlight style STYLE\n" " --swap-even-page-margins swap left and right side margins for each even\n" " numbered page\n" " --toc print table of contents\n" " --ul-angle=ANGLE set underlay text's angle to ANGLE\n" " --ul-font=NAME print underlays with font NAME\n" " --ul-gray=NUM print underlays with gray value NUM\n" " --ul-position=POS set underlay's starting position to POS\n" " --ul-style=STYLE print underlays with style STYLE\n" " --word-wrap wrap long lines from word boundaries\n" msgstr "" " --slice=NUM udskriv lodret skive NUM\n" " --style=STIL brug markeringsstilen STIL\n" " --swap-even-page-margins ombyt venstre og højre sides margener for hver " "lige\n" " nummereret side\n" " --toc udskriv indholdsfortegnelse\n" " --ul-angle=VINKEL sæt underlagets tekstvinkel til VINKEL\n" " --ul-font=NAVN udskriv underlag med skrifttypen NAVN\n" " --ul-gray=NUM udskriv underlag med gråværdi NUM\n" " --ul-position=POS sæt underlagets startposition til POS\n" " --ul-style=STIL udskriv underlag med stilen STIL\n" " --word-wrap linjeombryd lange linjer ved ordgrænser\n" #: src/main.c:2636 #, c-format msgid "" "\n" "Report bugs to <%s>.\n" msgstr "" "\n" "Rapportér fejl til <%s>.\n" "Send synpunkter på oversættelsen til dansk@dansk-gruppen.dk.\n" #: src/psgen.c:331 #, c-format msgid "couldn't find prolog \"%s\": %s\n" msgstr "kunne ikke finde prologen '%s': %s\n" #: src/psgen.c:339 #, c-format msgid "couldn't find encoding file \"%s.enc\": %s\n" msgstr "kunne ikke finde kodningsfilen '%s.enc': %s\n" #: src/psgen.c:471 #, c-format msgid "couldn't find header definition file \"%s.hdr\": %s\n" msgstr "kunne ikke finde hoveddefinitionsfilen '%s.hdr': %s\n" #: src/psgen.c:615 #, c-format msgid "processing file \"%s\"...\n" msgstr "behandler filen '%s'...\n" #: src/psgen.c:913 #, c-format msgid "EPS file \"%s\" is too large for page\n" msgstr "EPS-filen '%s' er for stor for siden\n" #: src/psgen.c:986 msgid "user font encoding can be only the system's default or `ps'" msgstr "brugerskrifttypeskodning kan kun være systemets standard eller 'ps'" #: src/psgen.c:1228 #, c-format msgid "unknown special escape: %s" msgstr "ukendt speciel kontrolsekvens: %s" #: src/psgen.c:1354 #, c-format msgid "illegal option %c for ^@epsf escape" msgstr "ikke tilladt flag %c for kontrolsekvensen ^@epsf" #: src/psgen.c:1360 msgid "malformed ^@epsf escape: no ']' after options" msgstr "fejludformet kontrolsekvens ^@epsf: ingen ']' efter flagene" #: src/psgen.c:1372 #, c-format msgid "" "too long file name for ^@epsf escape:\n" "%.*s" msgstr "" "for langt filnavn for kontrolsekvensen ^@epsf:\n" "%.*s" #: src/psgen.c:1376 msgid "unexpected EOF while scanning ^@epsf escape" msgstr "uventet filslut ved behandling af kontrolsekvensen ^@epsf" #: src/psgen.c:1382 msgid "malformed ^@epsf escape: no '{' found" msgstr "fejludformet kontrolsekvens ^@epsf: ingen '{' fundet" #: src/psgen.c:1440 #, c-format msgid "malformed %s escape: no '{' found" msgstr "fejludformet kontrolsekvens %s: ingen '{' fundet" #: src/psgen.c:1454 #, c-format msgid "" "too long argument for %s escape:\n" "%.*s" msgstr "" "for langt argument til kontrolsekvensen %s:\n" "%.*s" #: src/psgen.c:1474 #, c-format msgid "malformed font spec for ^@font escape: %s" msgstr "fejludformet skrifttypespecifikation for kontrolsekvensen ^@font: %s" #: src/psgen.c:1511 #, c-format msgid "malformed color spec for ^@%s escape: %s" msgstr "fejludformet farvespecifikation for kontrolsekvensen ^@%s: %s" #: src/psgen.c:1535 #, c-format msgid "invalid value for ^@shade escape: %s" msgstr "ugyldig værdi for kontrolsekvensen ^@shade: %s" #: src/psgen.c:1543 #, c-format msgid "invalid value for ^@bggray escape: %s" msgstr "ugyldig værdi for kontrolsekvensen ^@bggray: %s" #: src/psgen.c:2412 #, c-format msgid "couldn't open EPS file \"%s\": %s\n" msgstr "kunne ikke åbne EPS-filen '%s': %s\n" #: src/psgen.c:2448 #, c-format msgid "EPS file \"%s\" does not start with \"%%!\" magic\n" msgstr "EPS-filen '%s' begynder ikke med '%%!'-magi\n" #: src/psgen.c:2473 #, c-format msgid "" "EPS file \"%s\" contains malformed %%%%BoundingBox row:\n" "\"%.*s\"\n" msgstr "" "EPS-filen '%s' indeholder fejludformet %%%%BoundingBox-linje:\n" "'%.*s'\n" #: src/psgen.c:2498 #, c-format msgid "EPS file \"%s\" is not a valid EPS file\n" msgstr "EPS-filen \"%s\" er ikke en gyldig EPS-fil\n" #: src/psgen.c:2640 #, c-format msgid "passing through all input files for output language `%s'\n" msgstr "videresender alle inddatafiler for uddatasproget '%s'\n" #: src/psgen.c:2692 #, c-format msgid "passing through %s file \"%s\"\n" msgstr "videresender %s-filen '%s'\n" #: src/psgen.c:2795 #, c-format msgid "couldn't create temporary divert file: %s" msgstr "kunne ikke oprette midlertidig omdirigeringsfil: %s" #: src/psgen.c:2812 #, c-format msgid "couldn't rewind divert file: %s" msgstr "kunne ikke tilbagespole omdirigeringsfilen: %s" #: src/util.c:93 #, c-format msgid "missing argument: %s" msgstr "manglende argument: %s" #: src/util.c:186 src/util.c:214 #, c-format msgid "illegal value \"%s\" for option %s" msgstr "ikke tilladt værdi '%s' for flaget %s" #: src/util.c:202 #, c-format msgid "invalid value \"%s\" for option %s" msgstr "ugyldig værdi '%s' for flaget %s" #: src/util.c:440 #, c-format msgid "illegal option: %s" msgstr "ikke tilladt flag: %s" #: src/util.c:619 #, c-format msgid "%s:%d: %%Format: no name" msgstr "%s:%d: %%Format: intet navn" #: src/util.c:630 #, c-format msgid "%s:%d: %%Format: too long name, maxlen=%d" msgstr "%s:%d: %%Format: for langt navn, maxlængde=%d" #: src/util.c:653 #, c-format msgid "%s:%d: %%Format: name \"%s\" is already defined" msgstr "%s:%d: %%Format: navnet '%s' er allerede defineret" #: src/util.c:674 #, c-format msgid "%s:%d: %%HeaderHeight: no argument" msgstr "%s:%d: %%HeaderHeight: intet argument" #: src/util.c:696 #, c-format msgid "%s:%d: %%FooterHeight: no argument" msgstr "%s:%d: %%FooterHeight: intet argument" #: src/util.c:843 #, c-format msgid "%s: warning: font size is negative\n" msgstr "%s: advarsel: skrifttypestørrelsen er negativ\n" #: src/util.c:845 #, c-format msgid "%s: warning: font width is negative\n" msgstr "%s: advarsel: skrifttypebredden er negativ\n" #: src/util.c:847 #, c-format msgid "%s: warning: font height is negative\n" msgstr "%s: advarsel: skrifttypehøjden er negativ\n" #: src/util.c:866 #, c-format msgid "reading AFM info for font \"%s\"\n" msgstr "læser AFM-information for skrifttypen '%s'\n" #: src/util.c:899 #, c-format msgid "couldn't open AFM file for font \"%s\", using default\n" msgstr "" "kunne ikke åbne AFM-fil for skrifttypen '%s', bruger standardalternativet\n" #: src/util.c:906 #, c-format msgid "couldn't open AFM file for the default font: %s" msgstr "kunne ikke åbne AFM-fil for standardskrifttypen: %s" #: src/util.c:1095 #, c-format msgid "downloading font \"%s\"\n" msgstr "hjemhenter skrifttypen '%s'\n" #: src/util.c:1100 #, c-format msgid "couldn't open font description file \"%s\": %s\n" msgstr "kunne ikke åbne beskrivelsesfilen '%s' for skrifttypen: %s\n" #: src/util.c:1392 #, c-format msgid "%s: too long format for %%D{} escape" msgstr "%s: for langt format for %%D{}-kontrolsekvens" #: src/util.c:1477 #, c-format msgid "%s: unknown `%%' escape `%c' (%d)" msgstr "%s: ukendt '%%'-kontrolsekvens '%c' (%d)" #: src/util.c:1515 #, c-format msgid "%s: no closing ')' for $() escape" msgstr "%s: ingen afsluttende \")' for $()-kontrolsekvens" #: src/util.c:1518 #, c-format msgid "%s: too long variable name for $() escape" msgstr "%s: for langt variabelnavn for $()-kontrolsekvens" #: src/util.c:1545 #, c-format msgid "%s: too long format for $D{} escape" msgstr "%s: for langt format for $D{}-kontrolsekvens" #: src/util.c:1633 #, c-format msgid "%s: unknown `$' escape `%c' (%d)" msgstr "%s: ukendt '$'-kontrolsekvens '%c' (%d)" #: src/util.c:1824 #, c-format msgid "malformed float dimension: \"%s\"" msgstr "fejludformet flydendetalsdimension: '%s'" #: src/util.c:1946 #, c-format msgid "couldn't open input filter \"%s\" for file \"%s\": %s" msgstr "kunne ikke åbne inddatafiltret '%s' for filen '%s': %s" #: src/util.c:1963 #, c-format msgid "couldn't open input file \"%s\": %s" msgstr "kunne ikke åbne inddatafilen '%s': %s" #: src/mkafmmap.c:167 #, c-format msgid "file=%s\n" msgstr "fil=%s\n" #: src/mkafmmap.c:167 msgid "stdout" msgstr "standard ud" #: src/mkafmmap.c:175 #, c-format msgid "%s: couldn't open output file \"%s\"" msgstr "%s: kunne ikke åbne uddatafilen '%s'" #: src/mkafmmap.c:189 msgid "couldn't create AFM library" msgstr "kunne ikke oprette AFM-bibliotek" #: src/mkafmmap.c:238 #, c-format msgid "" "Usage: %s [OPTION]... FILE...\n" "Mandatory arguments to long options are mandatory for short options too.\n" " -h, --help print this help and exit\n" " -p, --output-file=NAME print output to file NAME (default file is\n" " font.map). If FILE is `-', leavy output to\n" " stdout.\n" " -V, --version print version number\n" msgstr "" "Brug: %s [FLAGGA]... FIL...\n" "Obligatoriske argumenter til lange flag er obligatoriske også for de korte.\n" " -h, --help vis denne hjælpetekst og afslut\n" " -p, --output-file=NAVN udskriv data til filen NAVN (standard er\n" " font.map). Hvis FIL er '-' sendes uddata til\n" " standard ud.\n" " -V, --version vis versionsnummer\n" #: states/lex.l:167 states/lex.l:173 msgid "error: EOF in comment" msgstr "fejl: filslut inde i kommentar" #: states/lex.l:204 msgid "error: EOF in string constant" msgstr "fejl: filslut inde i strengkonstant" #: states/lex.l:311 msgid "error: EOF in regular expression" msgstr "fejl: filslut inde i regulært udtryk" #: states/main.c:197 #, c-format msgid "states for %s" msgstr "tilstande for %s" #: states/main.c:252 #, c-format msgid "%s: malformed variable definition \"%s\"\n" msgstr "%s: fejludformet variabeldefinition '%s'\n" #: states/main.c:280 #, c-format msgid "%s: couldn't create output file \"%s\": %s\n" msgstr "%s: kunne ikke oprette uddatafilen '%s': %s\n" #: states/main.c:311 #, c-format msgid "%s: unknown warning level `%s'\n" msgstr "%s: ukendt advarselsniveau '%s'\n" #: states/main.c:360 states/main.c:396 states/prims.c:1375 states/utils.c:227 #, c-format msgid "%s: out of memory\n" msgstr "%s: hukommelsen opbrugt\n" #: states/main.c:421 #, c-format msgid "%s: couldn't open input file `%s': %s\n" msgstr "%s: kunne ikke åbne inddatafilen '%s': %s\n" #: states/main.c:445 #, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Brug: %s [FLAG]... [FIL]...\n" "Obligatoriske argumenter til lange flag er obligatoriske også for de korte.\n" #: states/main.c:449 #, fuzzy, c-format msgid "" " -D, --define=VAR=VAL define variable VAR to have value VAL\n" " -f, --file=NAME read state definitions from file NAME\n" " -h, --help print this help and exit\n" " -o, --output=NAME save output to file NAME\n" " -p, --path=PATH set the load path to PATH\n" " -s, --state=NAME start from state NAME\n" " -v, --verbose increase the program verbosity\n" " -V, --version print version number\n" " -W, --warning=LEVEL set the warning level to LEVEL\n" msgstr "" " -D, --define=VAR=VÆRDI definere variablen VAR til værdien VÆRDI\n" " -f, --file=NAVN læs tilstandsdefinition fra filen NAVN\n" " -h, --help vis denne hjælpetekst og afslut\n" " -o, --output=NAVN gem uddata i filen NAVN\n" " -p, --path=SØGESTI sæt indlæsningssøgestien til SØGESTI\n" " -s, --state=NAVN begynd fra tilstanden NAVN\n" " -v, --verbose øg programmets snaksalighed\n" " -V, --version vis versionsnummer\n" " -W, --warning=NIVEAU sæt advarselsniveauet til NIVEAU\n" #: states/prims.c:44 #, c-format msgid "%s:%d: %s: too few arguments\n" msgstr "%s:%d: %s: for få argumenter\n" #: states/prims.c:54 #, c-format msgid "%s:%d: %s: too many arguments\n" msgstr "%s:%d: %s: for mange argumenter\n" #: states/prims.c:107 states/prims.c:127 states/prims.c:253 states/prims.c:426 #: states/prims.c:901 #, c-format msgid "%s:%d: %s: illegal argument type\n" msgstr "%s:%d: %s: ikke tilladt argumenttype\n" #: states/prims.c:468 #, c-format msgid "%s: panic: " msgstr "%s: panik: " #: states/prims.c:502 #, c-format msgid "%s:%d: %s: malformed version string `%s'\n" msgstr "%s:%d: %s: fejludformet versionsstreng '%s'\n" #: states/prims.c:517 #, c-format msgid "" "%s: FATAL ERROR: States version %s or higher is required for this script\n" msgstr "" "%s: FATAL FEJL: Tilstand af version %s eller over kræves for dette skript\n" #: states/prims.c:608 states/prims.c:1274 #, c-format msgid "%s:%d: %s: start offset is bigger than end offset\n" msgstr "%s:%d: %s: startafstand er større end slutafstand\n" #: states/prims.c:617 states/prims.c:633 states/prims.c:1280 #, c-format msgid "%s:%d: %s: offset out of range\n" msgstr "%s:%d: %s: afstand uden for intervallet\n" #: states/prims.c:651 #, c-format msgid "%s:%d: %s: illegal argument\n" msgstr "%s:%d: %s: ikke tilladt argument\n" #: states/prims.c:698 #, c-format msgid "%s:%d: %s: illegal regexp character syntax: %c\n" msgstr "%s:%d: %s: ikke tilladt regulærudtrykstegnsyntaks: %c\n" #: states/prims.c:913 #, c-format msgid "%s:%d: %s: couldn't define state `%s'\n" msgstr "%s:%d: %s: kunne ikke definere tilstanden '%s'\n" #: states/prims.c:1010 #, c-format msgid "%s: primitive `%s': too few arguments for format\n" msgstr "%s: primitiv '%s': for få argumenter for formatet\n" #: states/prims.c:1038 #, c-format msgid "%s:%d: %s: argument %d doesn't match format\n" msgstr "%s:%d: %s: argument %d matcher ikke formatet\n" #: states/prims.c:1078 #, c-format msgid "%s:%d: %s: no extra options can be specified for %%s\n" msgstr "%s:%d: %s: ingen ekstra flag kan angives for %%s\n" #: states/prims.c:1087 #, c-format msgid "%s:%d: %s: illegal type specifier `%c'\n" msgstr "%s:%d: %s: ugyldig typespecificering '%c'\n" #: states/process.c:115 #, c-format msgid "%s: undefined state `%s'\n" msgstr "%s: udefineret tilstand '%s'\n" #: states/process.c:196 #, c-format msgid "%s: error: undefined variable `%s'\n" msgstr "%s: fejl: udefineret variabel '%s'\n" #: states/process.c:290 #, c-format msgid "%s: undefined super state `%s'\n" msgstr "%s: udefineret supertilstand '%s'\n" #: states/utils.c:260 #, c-format msgid "%s:%d: couldn't compile regular expression \"%s\": %s\n" msgstr "%s:%d kunne ikke oversætte det regulære udtryk '%s': %s\n" #: states/utils.c:449 states/utils.c:477 #, c-format msgid "%s: ouf of memory" msgstr "%s: hukommelsen opbrugt" #: states/utils.c:454 #, c-format msgid "warning: redefining state `%s'" msgstr "advarsel: omdefinerer tilstanden '%s'" #: states/utils.c:481 #, c-format msgid "%s:%d: warning: redefining subroutine `%s'\n" msgstr "%s:%d: advarsel: omdefinerer subrutinen '%s'\n" #: states/utils.c:578 #, c-format msgid "%s:%d: error: undefined variable `%s'\n" msgstr "%s:%d: fejl: udefineret variabel '%s'\n" #: states/utils.c:616 #, c-format msgid "%s:%d: error: couldn't set variable `%s'\n" msgstr "%s:%d: fejl: kunne ikke tildele variablen '%s'\n" #: states/utils.c:767 #, c-format msgid "%s:%d: error: expression between illegal types\n" msgstr "%s:%d: fejl: udtryk mellem ikke tilladte typer\n" #: states/utils.c:865 #, c-format msgid "%s:%d: error: too few arguments for subroutine\n" msgstr "%s:%d: fejl: for få argumenter til subrutinen\n" #: states/utils.c:872 #, c-format msgid "%s:%d: error: too many arguments for subroutine\n" msgstr "%s%d: fejl:: for mange argumenter til subrutinen\n" #: states/utils.c:926 #, c-format msgid "%s:%d: error: undefined procedure `%s'\n" msgstr "%s:%d: fejl: udefineret procedure '%s'\n" #: states/utils.c:1018 #, c-format msgid "%s:%d: error: illegal lvalue for assignment\n" msgstr "%s:%d: fejl: ikke tilladt v-værdi for tildeling\n" #: states/utils.c:1026 states/utils.c:1110 #, c-format msgid "%s:%d: error: array reference index is not integer\n" msgstr "%s:%d: fejl: vektorreferenceindeks er ikke et heltal\n" #: states/utils.c:1032 #, c-format msgid "%s:%d: error: negative array reference index\n" msgstr "%s:%d: fejl: negativt vektorreferenceindeks\n" #: states/utils.c:1083 #, c-format msgid "%s:%d: error: illegal rvalue for string assignment\n" msgstr "%s:%d: fejl: ikke tilladt h-værdi for strengtildeling\n" #: states/utils.c:1102 #, c-format msgid "%s:%d: error: illegal type for array reference\n" msgstr "%s:%d: fejl: ikke tilladt type for vektorreference\n" #: states/utils.c:1119 #, fuzzy, c-format msgid "%s:%d: error: array reference index out of range\n" msgstr "%s:%d: fejl: vektorreferenceindeks uden for intervallet\n" #: states/utils.c:1345 #, c-format msgid "%s: couldn't open definition file `%s': %s\n" msgstr "%s: kunne ikke åbne definitionsfilen '%s': %s\n" #: states/utils.c:1401 #, c-format msgid "%s: autoloading `%s' from `%s'\n" msgstr "%s: indlæser '%s' automatisk fra '%s'\n" #~ msgid "library directory." #~ msgstr "bibliotekskatalog" #~ msgid "[ %d pages * %d copy ]" #~ msgstr "[ %d sider * %d kopi ]" #~ msgid "couldn't create toc file \"%s\": %s" #~ msgstr "kunne ikke oprette indholdsfil \"%s\": %s" #~ msgid "epsf: couldn't open pipe to command \"%s\": %s\n" #~ msgstr "epsf: kunne ikke åbne datakanal til kommandoen \"%s\": %s\n" #~ msgid "couldn't create divert file \"%s\": %s" #~ msgstr "kunne ikke oprette omdirigeringsfilen \"%s\": %s" enscript-1.6.5.90/po/en_GB.gmo0000644000175000017500000006035511606344232012630 00000000000000Þ•À ! %08U [g w…†›£;?{  œ$©IÎ)8+b&Ž"µ#ØCü@Z't!œ,¾ë% ,/-\ Š&«Òä ÷1#5$Y)~¨Â â!%Ee%…#«$Ï"ô- E )^ "ˆ ,« &Ø ÿ !!/>!'n!)–!5À!ö!2"4I"3~")²"/Ü", #39#/m#-#/Ë#0û#',$&T$+{$=§$.å$&%$;%I`%)ª%Ô%ë%&$&$<&a&s&HŽ&×($è( ))#5)Y)t)|)@Ž)Ï)&â) **-* ?*vL*iÃ+#-,Q,$m,)’,&¼,)ã,- -2;-n-(-4¶-/ë-. 9.-Z.!ˆ.1ª.Ü.%û.!/A/!^/%€/¦/½/ Ó/ô/'0:0=C00!›0#½0á0ô0+1?1 Z1 {1%œ1$Â1xç1!`2-‚2%°2?Ö2(3?3)_3‰3¡3#Á3.å34))4*S4~4‘4¤49Â4ü455I=5‡5§5C®5%ò5*6 C6+M6y6Ž6;©6Hå6.7M7&U7&|7)£7oÍ7=9 A9L9T9q9 w9ƒ9 “9¡9¢;›¿=;[@—C «C ¸C$ÅCIêC4D)TD+~D&ªD"ÑD#ôDCE\EvE'E!¸E,ÚEF%%F,KF-xF ¦F&ÇFîFG G1G#QG$uG)šGÄGÞG þG!HAHaHH%¡H#ÇH$ëH"I-3IaI)zI"¤I,ÇI&ôIJ!8J/ZJ'ŠJ)²J5ÜJK22K4eK3šK)ÎK/øK,(L3UL/‰L-¹L/çL0M'HM&pM+—M=ÃM.N&0N$WNI|N)ÆNðNO$O@O$XO}OOIªOôQ$R*R3R#RRvR‘R™R@«RìR&ÿR&S8SJS \SviSiàT#JUnU$ŠU)¯U&ÙU)V-*V2XV ‹V(¬V4ÕV/ W:W XW-yW!§W1ÉWûW%X@X`X!}X%ŸXÅXÜX òXY'1YYY=bY Y!ºY#ÜYZZ+2Z^Z yZ šZ%»Z$áZx[![-¡[%Ï[?õ[)5\_\)\©\Á\#á\.]4])I]*s]ž]±]Ä]9â]^$^=^I]^§^Ç^CÎ^%_*8_ c_+m_™_®_;É_H`N`m`&u`&œ`)Ã`Àªfše–04Pa$’+X¢Y8—‡1A`s™yg}N…‚|>£Ÿjq«•”-w †µ º9\I~k n]¼¬3d ¤O»¾!b'³u7r½¿›©#K¦. ‰5¯UœF€v´žJ(ŠD·,z^ZG&°Ž@=R²hoB; ‘:CŒH{Sƒxc)E/T?V"“L[ %±W¶i„­¹¨¸2˜mt§Q_6p‹ˆ¥M*l<®¡ %s ../../lib ../lib ./configure --prefix=PREFIX make make check make distclean make install --help-highlight describe all supported --highlight languages and file formats --highlight-bar-gray=NUM print highlight bars with gray NUM (0 - 1) --list-media list names of all known media --margins=LEFT:RIGHT:TOP:BOTTOM adjust page marginals --mark-wrapped-lines[STYLE] mark wrapped lines in the output with STYLE --non-printable-format=FMT specify how non-printable chars are printed --nup-columnwise layout pages in the N-up printing columnwise --nup-xpad=NUM set the page x-padding of N-up printing to NUM --nup-ypad=NUM set the page y-padding of N-up printing to NUM --page-label-format=FMT set page label format to FMT --ps-level=LEVEL set the PostScript language level that enscript should use --printer-options=OPTIONS pass extra options to the printer command --rotate-even-pages rotate even-numbered pages 180 degrees --slice=NUM print vertical slice NUM --style=STYLE use highlight style STYLE --swap-even-page-margins swap left and right side margins for each even numbered page --toc print table of contents --ul-angle=ANGLE set underlay text's angle to ANGLE --ul-font=NAME print underlays with font NAME --ul-gray=NUM print underlays with gray value NUM --ul-position=POS set underlay's starting position to POS --ul-style=STYLE print underlays with style STYLE --word-wrap wrap long lines from word boundaries -L, --lines-per-page=NUM specify how many lines are printed on each page -m, --mail send mail upon completion -M, --media=NAME use output media NAME -n, --copies=NUM print NUM copies of each page -N, --newline=NL select the newline character. Possible values for NL are: n (`\n') and r (`\r'). -o an alias for option --output -O, --missing-characters list missing characters -p, --output=FILE leave output to file FILE. If FILE is `-', leave output to stdout. -P, --printer=NAME print output to printer NAME -q, --quiet, --silent be really quiet -r, --landscape print in landscape mode -R, --portrait print in portrait mode option %d = "%s" left in %s sent to %s $3v $-40N $3% pages $4L lines $E $C%s: FATAL ERROR: States version %s or higher is required for this script %s: autoloading `%s' from `%s' %s: couldn't create output file "%s": %s %s: couldn't open definition file `%s': %s %s: couldn't open input file `%s': %s %s: couldn't open output file "%s"%s: error: undefined variable `%s' %s: illegal newline character specifier: '%s': expected 'n' or 'r' %s: illegal option -- %c %s: invalid option -- %c %s: malformed variable definition "%s" %s: no closing ')' for $() 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: ouf of memory%s: out of memory %s: panic: %s: primitive `%s': too few arguments for format %s: too long format for $D{} escape%s: too long format for %%D{} escape%s: too long variable name for $() escape%s: undefined state `%s' %s: undefined super state `%s' %s: unknown `$' escape `%c' (%d)%s: unknown `%%' escape `%c' (%d)%s: unknown warning level `%s' %s: unrecognized option `%c%s' %s: unrecognized option `--%s' %s: warning: font height is negative %s: warning: font size is negative %s: warning: font width is negative %s:%d: %%FooterHeight: no argument%s:%d: %%Format: name "%s" is already defined%s:%d: %%Format: no name%s:%d: %%Format: too long name, maxlen=%d%s:%d: %%HeaderHeight: no argument%s:%d: %s: argument %d doesn't match format %s:%d: %s: couldn't define state `%s' %s:%d: %s: illegal argument %s:%d: %s: illegal argument type %s:%d: %s: illegal regexp character syntax: %c %s:%d: %s: illegal type specifier `%c' %s:%d: %s: malformed version string `%s' %s:%d: %s: no extra options can be specified for %%s %s:%d: %s: offset out of range %s:%d: %s: start offset is bigger than end offset %s:%d: couldn't compile regular expression "%s": %s %s:%d: error: array reference index is not integer %s:%d: error: couldn't set variable `%s' %s:%d: error: expression between illegal types %s:%d: error: illegal lvalue for assignment %s:%d: error: illegal rvalue for string assignment %s:%d: error: illegal type for array reference %s:%d: error: negative array reference index %s:%d: error: too few arguments for subroutine %s:%d: error: too many arguments for subroutine %s:%d: error: undefined procedure `%s' %s:%d: error: undefined variable `%s' %s:%d: warning: redefining subroutine `%s' EPS file "%s" contains malformed %%%%BoundingBox row: "%.*s" EPS file "%s" does not start with "%%!" magic EPS file "%s" is not a valid EPS file EPS file "%s" is too large for page Highlighting is supported for the following languages and file formats: I did also try the following directories:Invalid back referenceInvalid character class nameInvalid collation characterInvalid content of \{\}Invalid preceding regular expressionInvalid range endInvalid regular expressionLong-only options: --color[=bool] create color outputs with states --continuous-page-numbers count page numbers across input files. Don't restart numbering at beginning of each file. --download-font=NAME download font NAME --extended-return-values enable extended return values --filter-stdin=NAME specify how stdin is shown to the input filter --footer=FOOTER set page footer --h-column-height=HEIGHT set the horizontal column height to HEIGHT --help print this help and exit Memory exhaustedN-up argument must be power of 2: %dNo matchNo previous regular expressionPremature end of regular expressionRegular expression too bigSuccessTable of ContentsThis is probably an installation error. Please, try to rebuild:Trailing backslashTry `%s --help' for more information. Unmatched ( or \(Unmatched ) or \)Unmatched [ or [^Unmatched \{Usage: %s [OPTION]... FILE... Mandatory arguments to long options are mandatory for short options too. -h, --help print this help and exit -p, --output-file=NAME print output to file NAME (default file is font.map). If FILE is `-', leavy output to stdout. -V, --version print version number Usage: %s [OPTION]... [FILE]... Mandatory arguments to long options are mandatory for short options too. couldn't close output file "%s": %scouldn't create AFM librarycouldn't create output file "%s": %scouldn't create temporary divert file: %scouldn't create temporary toc file: %scouldn't find encoding file "%s.enc": %s couldn't find header definition file "%s.hdr"couldn't find header definition file "%s.hdr": %s couldn't find prolog "%s": %s couldn't get passwd entry for uid=%d: %scouldn't open AFM file for font "%s", using default couldn't open AFM file for the default font: %scouldn't open AFM library: %scouldn't open EPS file "%s": %s couldn't open font description file "%s": %s couldn't open input file "%s": %scouldn't open input filter "%s" for file "%s": %scouldn't open printer `%s': %scouldn't read config file "%s/%s": %scouldn't rewind divert file: %scouldn't rewind toc file: %scouldn't stat input file "%s": %sdo not know anything about media "%s"downloading font "%s" error: EOF in commenterror: EOF in regular expressionerror: EOF in string constantfile alignment must be larger than zerofile=%s helper application specification must be single character: %sillegal N-up argument: %dillegal non-printable format "%s"illegal option %c for ^@epsf escapeillegal option: %sillegal page label format "%s"illegal style for wrapped line marker: "%s"illegal underlay style: %sillegal value "%s" for option %sinvalid value "%s" for option %sinvalid value for ^@bggray escape: %sinvalid value for ^@shade escape: %sknown media: name width height llx lly urx ury ------------------------------------------------------------ malformed %s escape: no '{' foundmalformed ^@epsf escape: no ']' after optionsmalformed ^@epsf escape: no '{' foundmalformed argument `%s' for option -W, --option: no comma foundmalformed color spec for ^@%s escape: %smalformed float dimension: "%s"malformed font spec for ^@font escape: %smalformed font spec: %smalformed underlay position: %smissing character codes (decimal): must print at least one line per each page: %sno output generated non-printable character codes (decimal): number of columns must be larger than zerooutput left in %s output sent to %s passing through %s file "%s" passing through all input files for output language `%s' printerprocessing file "%s"... reading AFM info for font "%s" set new marginals for media `%s' (%dx%d): llx=%d, lly=%d, urx=%d, ury=%d slice must be greater than zerostdoutsyntax error in option string %s="%s": missing end of quotation: %ctoo long argument for %s escape: %.*stoo long file name for ^@epsf escape: %.*struncatedunexpected EOF while scanning ^@epsf escapeunknown encoding: %sunknown special escape: %suser font encoding can be only the system's default or `ps'warning: didn't process following options from environment variable %s: warning: redefining state `%s'wrappedxcalloc(): couldn't allocate %d bytes xmalloc(): couldn't allocate %d bytes xrealloc(): couldn't reallocate %d bytes Project-Id-Version: enscript 1.6.3 Report-Msgid-Bugs-To: bug-enscript@gnu.org POT-Creation-Date: 2011-07-10 16:43+0100 PO-Revision-Date: 2003-01-31 15:32+0000 Last-Translator: Nigel Titley Language-Team: English (British) Language: en_GB MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit %s ../../lib ../lib ./configure --prefix=PREFIX make make check make distclean make install --help-highlight describe all supported --highlight languages and file formats --highlight-bar-gray=NUM print highlight bars with grey NUM (0 - 1) --list-media list names of all known media --margins=LEFT:RIGHT:TOP:BOTTOM adjust page marginals --mark-wrapped-lines[STYLE] mark wrapped lines in the output with STYLE --non-printable-format=FMT specify how non-printable chars are printed --nup-columnwise layout pages in the N-up printing columnwise --nup-xpad=NUM set the page x-padding of N-up printing to NUM --nup-ypad=NUM set the page y-padding of N-up printing to NUM --page-label-format=FMT set page label format to FMT --ps-level=LEVEL set the PostScript language level that enscript should use --printer-options=OPTIONS pass extra options to the printer command --rotate-even-pages rotate even-numbered pages 180 degrees --slice=NUM print vertical slice NUM --style=STYLE use highlight style STYLE --swap-even-page-margins swap left and right side margins for each even numbered page --toc print table of contents --ul-angle=ANGLE set underlay text's angle to ANGLE --ul-font=NAME print underlays with font NAME --ul-gray=NUM print underlays with grey value NUM --ul-position=POS set underlay's starting position to POS --ul-style=STYLE print underlays with style STYLE --word-wrap wrap long lines from word boundaries -L, --lines-per-page=NUM specify how many lines are printed on each page -m, --mail send mail upon completion -M, --media=NAME use output media NAME -n, --copies=NUM print NUM copies of each page -N, --newline=NL select the newline character. Possible values for NL are: n (`\n') and r (`\r'). -o an alias for option --output -O, --missing-characters list missing characters -p, --output=FILE leave output to file FILE. If FILE is `-', leave output to stdout. -P, --printer=NAME print output to printer NAME -q, --quiet, --silent be really quiet -r, --landscape print in landscape mode -R, --portrait print in portrait mode option %d = "%s" left in %s sent to %s $3v $-40N $3% pages $4L lines $E $C%s: FATAL ERROR: States version %s or higher is required for this script %s: autoloading `%s' from `%s' %s: couldn't create output file "%s": %s %s: couldn't open definition file `%s': %s %s: couldn't open input file `%s': %s %s: couldn't open output file "%s"%s: error: undefined variable `%s' %s: illegal newline character specifier: '%s': expected 'n' or 'r' %s: illegal option -- %c %s: invalid option -- %c %s: malformed variable definition "%s" %s: no closing ')' for $() 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: out of memory%s: out of memory %s: panic: %s: primitive `%s': too few arguments for format %s: too long format for $D{} escape%s: too long format for %%D{} escape%s: too long variable name for $() escape%s: undefined state `%s' %s: undefined super state `%s' %s: unknown `$' escape `%c' (%d)%s: unknown `%%' escape `%c' (%d)%s: unknown warning level `%s' %s: unrecognized option `%c%s' %s: unrecognized option `--%s' %s: warning: font height is negative %s: warning: font size is negative %s: warning: font width is negative %s:%d: %%FooterHeight: no argument%s:%d: %%Format: name "%s" is already defined%s:%d: %%Format: no name%s:%d: %%Format: too long name, maxlen=%d%s:%d: %%HeaderHeight: no argument%s:%d: %s: argument %d doesn't match format %s:%d: %s: couldn't define state `%s' %s:%d: %s: illegal argument %s:%d: %s: illegal argument type %s:%d: %s: illegal regexp character syntax: %c %s:%d: %s: illegal type specifier `%c' %s:%d: %s: malformed version string `%s' %s:%d: %s: no extra options can be specified for %%s %s:%d: %s: offset out of range %s:%d: %s: start offset is bigger than end offset %s:%d: couldn't compile regular expression "%s": %s %s:%d: error: array reference index is not integer %s:%d: error: couldn't set variable `%s' %s:%d: error: expression between illegal types %s:%d: error: illegal lvalue for assignment %s:%d: error: illegal rvalue for string assignment %s:%d: error: illegal type for array reference %s:%d: error: negative array reference index %s:%d: error: too few arguments for subroutine %s:%d: error: too many arguments for subroutine %s:%d: error: undefined procedure `%s' %s:%d: error: undefined variable `%s' %s:%d: warning: redefining subroutine `%s' EPS file "%s" contains malformed %%%%BoundingBox row: "%.*s" EPS file "%s" does not start with "%%!" magic EPS file "%s" is not a valid EPS file EPS file "%s" is too large for page Highlighting is supported for the following languages and file formats: I did also try the following directories:Invalid back referenceInvalid character class nameInvalid collation characterInvalid content of \{\}Invalid preceding regular expressionInvalid range endInvalid regular expressionLong-only options: --color[=bool] create colour outputs with states --continuous-page-numbers count page numbers across input files. Don't restart numbering at beginning of each file. --download-font=NAME download font NAME --extended-return-values enable extended return values --filter-stdin=NAME specify how stdin is shown to the input filter --footer=FOOTER set page footer --h-column-height=HEIGHT set the horizontal column height to HEIGHT --help print this help and exit Memory exhaustedN-up argument must be power of 2: %dNo matchNo previous regular expressionPremature end of regular expressionRegular expression too bigSuccessTable of ContentsThis is probably an installation error. Please, try to rebuild:Trailing backslashTry `%s --help' for more information. Unmatched ( or \(Unmatched ) or \)Unmatched [ or [^Unmatched \{Usage: %s [OPTION]... FILE... Mandatory arguments to long options are mandatory for short options too. -h, --help print this help and exit -p, --output-file=NAME print output to file NAME (default file is font.map). If FILE is `-', leave output on stdout. -V, --version print version number Usage: %s [OPTION]... [FILE]... Mandatory arguments to long options are mandatory for short options too. couldn't close output file "%s": %scouldn't create AFM librarycouldn't create output file "%s": %scouldn't create temporary divert file: %scouldn't create temporary toc file: %scouldn't find encoding file "%s.enc": %s couldn't find header definition file "%s.hdr"couldn't find header definition file "%s.hdr": %s couldn't find prologue "%s": %s couldn't get passwd entry for uid=%d: %scouldn't open AFM file for font "%s", using default couldn't open AFM file for the default font: %scouldn't open AFM library: %scouldn't open EPS file "%s": %s couldn't open font description file "%s": %s couldn't open input file "%s": %scouldn't open input filter "%s" for file "%s": %scouldn't open printer `%s': %scouldn't read config file "%s/%s": %scouldn't rewind divert file: %scouldn't rewind toc file: %scouldn't stat input file "%s": %sdo not know anything about media "%s"downloading font "%s" error: EOF in commenterror: EOF in regular expressionerror: EOF in string constantfile alignment must be larger than zerofile=%s helper application specification must be single character: %sillegal N-up argument: %dillegal non-printable format "%s"illegal option %c for ^@epsf escapeillegal option: %sillegal page lable format "%s"illegal style for wrapped line marker: "%s"illegal underlay style: %sillegal value "%s" for option %sinvalid value "%s" for option %sinvalid value for ^@bggray escape: %sinvalid value for ^@shade escape: %sknown media: name width height llx lly urx ury ------------------------------------------------------------ malformed %s escape: no '{' foundmalformed ^@epsf escape: no ']' after optionsmalformed ^@epsf escape: no '{' foundmalformed argument `%s' for option -W, --option: no comma foundmalformed colour spec for ^@%s escape: %smalformed float dimension: "%s"malformed font spec for ^@font escape: %smalformed font spec: %smalformed underlay position: %smissing character codes (decimal): must print at least one line per each page: %sno output generated non-printable character codes (decimal): number of columns must be larger than zerooutput left in %s output sent to %s passing through %s file "%s" passing through all input files for output language `%s' printerprocessing file "%s"... reading AFM info for font "%s" set new marginals for media `%s' (%dx%d): llx=%d, lly=%d, urx=%d, ury=%d slice must be greater than zerostdoutsyntax error in option string %s="%s": missing end of quotation: %ctoo long argument for %s escape: %.*stoo long file name for ^@epsf escape: %.*struncatedunexpected EOF while scanning ^@epsf escapeunknown encoding: %sunknown special escape: %suser font encoding can be only the system's default or `ps'warning: didn't process following options from environment variable %s: warning: redefining state `%s'wrappedxcalloc(): couldn't allocate %d bytes xmalloc(): couldn't allocate %d bytes xrealloc(): couldn't reallocate %d bytes enscript-1.6.5.90/po/insert-header.sin0000644000175000017500000000124011606344064014406 00000000000000# 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 } enscript-1.6.5.90/po/ru.po0000644000175000017500000012406411606344232012136 00000000000000# ðÅÒÅ×ÏÄ ÓÏÏÂÝÅÎÉÊ ÄÌÑ GNU enscript # Copyright (C) 1998, 1999 Free Software Foundation, Inc. # Oleg S. Tihonov , 1998, 1999, 2003. # msgid "" msgstr "" "Project-Id-Version: enscript 1.6.3\n" "Report-Msgid-Bugs-To: bug-enscript@gnu.org\n" "POT-Creation-Date: 2011-07-10 16:43+0100\n" "PO-Revision-Date: 2003-02-20 13:35+0300\n" "Last-Translator: Oleg S. Tihonov \n" "Language-Team: Russian \n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=koi8-r\n" "Content-Transfer-Encoding: 8bit\n" #: compat/getopt.c:628 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "%s: ÎÅÏÄÎÏÚÎÁÞÎÙÊ ËÌÀÞ `%s'\n" #: compat/getopt.c:652 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "%s: ËÌÀÞ `--%s' ÄÏÌÖÅÎ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ ÂÅÚ ÁÒÇÕÍÅÎÔÁ\n" #: compat/getopt.c:657 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "%s: ËÌÀÞ `%c%s' ÄÏÌÖÅÎ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ ÂÅÚ ÁÒÇÕÍÅÎÔÁ\n" #: compat/getopt.c:674 compat/getopt.c:847 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "%s: ËÌÀÞ `%s' ÄÏÌÖÅÎ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ c ÁÒÇÕÍÅÎÔÏÍ\n" #: compat/getopt.c:703 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "%s: ÎÅÉÚ×ÅÓÔÎÙÊ ËÌÀÞ `--%s'\n" #: compat/getopt.c:707 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "%s: ÎÅÉÚ×ÅÓÔÎÙÊ ËÌÀÞ `%c%s'\n" #: compat/getopt.c:733 #, c-format msgid "%s: illegal option -- %c\n" msgstr "%s: ÎÅÄÏÐÕÓÔÉÍÙÊ ËÌÀÞ -- %c\n" #: compat/getopt.c:736 #, c-format msgid "%s: invalid option -- %c\n" msgstr "%s: ÎÅ×ÅÒÎÙÊ ËÌÀÞ -- %c\n" #: compat/getopt.c:766 compat/getopt.c:896 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: ËÌÀÞ %c ÄÏÌÖÅÎ ÂÙ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ c ÁÒÇÕÍÅÎÔÏÍ\n" #: compat/getopt.c:813 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "%s: ÎÅÏÄÎÏÚÎÁÞÎÙÊ ËÌÀÞ `-W %s'\n" #: compat/getopt.c:831 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s: ËÌÀÞ `-W %s' ÄÏÌÖÅÎ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ ÂÅÚ ÁÒÇÕÍÅÎÔÁ\n" #: compat/xalloc.c:70 #, c-format msgid "xmalloc(): couldn't allocate %d bytes\n" msgstr "xmalloc(): ÎÅ×ÏÚÍÏÖÎÏ ×ÙÄÅÌÉÔØ %d ÂÁÊÔ\n" #: compat/xalloc.c:88 #, c-format msgid "xcalloc(): couldn't allocate %d bytes\n" msgstr "xcalloc(): ÎÅ×ÏÚÍÏÖÎÏ ×ÙÄÅÌÉÔØ %d ÂÁÊÔ\n" #: compat/xalloc.c:109 #, c-format msgid "xrealloc(): couldn't reallocate %d bytes\n" msgstr "xrealloc(): ÎÅ×ÏÚÍÏÖÎÏ ÐÅÒÅÒÁÓÐÒÅÄÅÌÉÔØ %d ÂÁÊÔ\n" #: compat/regex.c:996 msgid "Success" msgstr "õÓÐÅÈ" #: compat/regex.c:997 msgid "No match" msgstr "óÏ×ÐÁÄÅÎÉÊ ÎÅÔ" #: compat/regex.c:998 msgid "Invalid regular expression" msgstr "îÅ×ÅÒÎÏÅ ÒÅÇÕÌÑÒÎÏÅ ×ÙÒÁÖÅÎÉÅ" #: compat/regex.c:999 msgid "Invalid collation character" msgstr "îÅÄÏÐÕÓÔÉÍÙÊ ÄÌÑ ÓÏÒÔÉÒÏ×ËÉ ÓÉÍ×ÏÌ" #: compat/regex.c:1000 msgid "Invalid character class name" msgstr "îÅ×ÅÒÎÏÅ ÉÍÑ ËÌÁÓÓÁ ÓÉÍ×ÏÌÁ" #: compat/regex.c:1001 msgid "Trailing backslash" msgstr "ïÂÒÁÔÎÁÑ ËÏÓÁÑ ÞÅÒÔÁ ÓÔÏÉÔ ÐÏÓÌÅÄÎÅÊ" #: compat/regex.c:1002 msgid "Invalid back reference" msgstr "îÅ×ÅÒÎÁÑ ÓÓÙÌËÁ" #: compat/regex.c:1003 msgid "Unmatched [ or [^" msgstr "îÅ ÉÍÅÀÝÅÅ ÐÁÒÙ [ ÉÌÉ [^" #: compat/regex.c:1004 msgid "Unmatched ( or \\(" msgstr "îÅ ÉÍÅÀÝÅÅ ÐÁÒÙ ( ÉÌÉ \\\\(" #: compat/regex.c:1005 msgid "Unmatched \\{" msgstr "îÅ ÉÍÅÀÝÅÅ ÐÁÒÙ \\{" #: compat/regex.c:1006 msgid "Invalid content of \\{\\}" msgstr "îÅ×ÅÒÎÏÅ ÓÏÄÅÒÖÉÍÏÅ \\{\\}" #: compat/regex.c:1007 msgid "Invalid range end" msgstr "îÅ×ÅÒÎÏÅ ÓÏÄÅÒÖÉÍÏÅ \\{\\}" #: compat/regex.c:1008 msgid "Memory exhausted" msgstr "ïÐÅÒÁÔÉ×ÎÁÑ ÐÁÍÑÔØ ÉÓÞÅÒÐÁÎÁ" #: compat/regex.c:1009 msgid "Invalid preceding regular expression" msgstr "îÅ×ÅÒÎÏÅ ÐÒÅÄÛÅÓÔ×ÕÀÝÅÅ ÒÅÇÕÌÑÒÎÏÅ ×ÙÒÁÖÅÎÉÅ" #: compat/regex.c:1010 msgid "Premature end of regular expression" msgstr "ðÒÅÖÄÅ×ÒÅÍÅÎÎÙÊ ËÏÎÅà ÒÅÇÕÌÑÒÎÏÇÏ ×ÙÒÁÖÅÎÉÑ" #: compat/regex.c:1011 msgid "Regular expression too big" msgstr "òÅÇÕÌÑÒÎÏÅ ×ÙÒÁÖÅÎÉÅ ÓÌÉÛËÏÍ ×ÅÌÉËÏ" #: compat/regex.c:1012 msgid "Unmatched ) or \\)" msgstr "îÅ ÉÍÅÀÝÅÅ ÐÁÒÙ ) ÉÌÉ \\)" #: compat/regex.c:5458 msgid "No previous regular expression" msgstr "òÅÇÕÌÑÒÎÏÅ ×ÙÒÁÖÅÎÉÅ ÎÅ ÂÙÌÏ ÚÁÄÁÎÏ ÒÁÎØÛÅ" # msgfmt --statistics -f -c -v -o /dev/null # ×ÙÚÙ×ÁÅÔ ÏÛÉÂËÕ, ×ÅÒÏÑÔÎÏ ÜÔÏ ÏÛÉÂËÁ msgfmt #: src/main.c:949 #, no-c-format msgid "$3v $-40N $3% pages $4L lines $E $C" msgstr "$3v $-40N $3% ÓÔÒÁÎÉà $4L ÓÔÒÏË $E $C" #: src/main.c:979 #, c-format msgid "couldn't get passwd entry for uid=%d: %s" msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÐÏÌÕÞÉÔØ ÐÁÒÏÌØ ÄÌÑ ÐÏÌØÚÏ×ÁÔÅÌÑ Ó uid=%d: %s" #: src/main.c:1071 #, c-format msgid "couldn't read config file \"%s/%s\": %s" msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÓÞÉÔÁÔØ ÆÁÊÌ ËÏÎÆÉÇÕÒÁÃÉÉ \"%s/%s\": %s" #: src/main.c:1075 msgid "I did also try the following directories:" msgstr "ôÁËÖÅ ÐÒÏÂÏ×ÁÌÉÓØ ÓÌÅÄÕÀÝÉÅ ËÁÔÁÌÏÇÉ:" #: src/main.c:1076 src/main.c:1077 src/main.c:1078 #, c-format msgid "\t%s" msgstr "\t%s" #: src/main.c:1079 msgid "\t../lib" msgstr "\t../lib" #: src/main.c:1080 msgid "\t../../lib" msgstr "\t../../lib" #: src/main.c:1082 msgid "This is probably an installation error. Please, try to rebuild:" msgstr "÷ÅÒÏÑÔÎÏ, ÜÔÏ ÉÚ-ÚÁ ÏÛÉÂËÉ ÐÒÉ ÕÓÔÁÎÏ×ËÅ. ðÏÐÒÏÂÕÊÔÅ ÐÅÒÅÓÏÂÒÁÔØ:" #: src/main.c:1083 msgid "\tmake distclean" msgstr "\tmake distclean" #: src/main.c:1084 msgid "\t./configure --prefix=PREFIX" msgstr "\t./configure --prefix=ðòåæéëó" #: src/main.c:1085 msgid "\tmake" msgstr "\tmake" #: src/main.c:1086 msgid "\tmake check" msgstr "\tmake check" #: src/main.c:1087 msgid "\tmake install" msgstr "\tmake install" #: src/main.c:1088 #, fuzzy msgid "" "or set the environment variable `ENSCRIPT_LIBRARY' to point to your library " "directory." msgstr "" "ÌÉÂÏ ÕÓÔÁÎÏ×ÉÔÅ ÐÅÒÅÍÅÎÎÕÀ ÓÒÅÄÙ `ENSCRIPT_LIBRARY', ÞÔÏÂÙ ÏÎÁ ÕËÁÚÙ×ÁÌÁ ÎÁ" #: src/main.c:1161 #, c-format msgid "unknown encoding: %s" msgstr "ËÏÄÉÒÏ×ËÁ %s ÎÅÉÚ×ÅÓÔÎÁ" #: src/main.c:1180 #, c-format msgid "couldn't open AFM library: %s" msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ AFM-ÂÉÂÌÉÏÔÅËÕ: %s" #: src/main.c:1209 #, c-format msgid "" "known media:\n" "name width\theight\tllx\tlly\turx\tury\n" "------------------------------------------------------------\n" msgstr "" "ÉÚ×ÅÓÔÎÙÅ ÆÏÒÍÁÔÙ:\n" "ÉÍÑ ÛÉÒÉÎÁ\t×ÙÓÏÔÁ\tÌÎX\tÌÎY\tÐ×X\tÐ×Y\n" "------------------------------------------------------------\n" #: src/main.c:1228 #, c-format msgid "do not know anything about media \"%s\"" msgstr "ÆÏÒÍÁÔ \"%s\" ÎÅÉÚ×ÅÓÔÅÎ" #: src/main.c:1272 #, c-format msgid "" "set new marginals for media `%s' (%dx%d): llx=%d, lly=%d, urx=%d, ury=%d\n" msgstr "" "ÕÓÔÁÎÏ×ÉÔØ ÎÏ×ÙÅ ÒÁÚÍÅÒÙ ÐÏÌÅÊ ÄÌÑ ÆÏÒÍÁÔÁ `%s' (%dx%d): \n" "ÌÎX=%d, ÌÎY=%d, Ð×X=%d, Ð×Y=%d\n" #: src/main.c:1283 #, c-format msgid "illegal page label format \"%s\"" msgstr "ÎÅÄÏÐÕÓÔÉÍÙÊ ÆÏÒÍÁÔ ÍÅÔËÉ ÓÔÒÁÎÉÃÙ \"%s\"" #: src/main.c:1295 #, c-format msgid "illegal non-printable format \"%s\"" msgstr "ÎÅÄÏÐÕÓÔÉÍÙÊ ÆÏÒÍÁÔ ÄÌÑ ÎÅÐÅÞÁÔÎÙÈ ÓÉÍ×ÏÌÏ× \"%s\"" #: src/main.c:1309 #, c-format msgid "illegal style for wrapped line marker: \"%s\"" msgstr "ÎÅÄÏÐÕÓÔÉÍÙÊ ÓÔÉÌØ ÐÏÍÅÔËÉ ÒÁÚÂÉÅÎÉÑ ÓÔÒÏËÉ: \"%s\"" #: src/main.c:1319 #, c-format msgid "illegal N-up argument: %d" msgstr "ÎÅ×ÅÒÎÏ ÚÁÄÁÎÏ ÞÉÓÌÏ ÌÏÇÉÞÅÓËÉÈ ÓÔÒÁÎÉà ÎÁ ÓÔÒÁÎÉÃÕ: %d" #: src/main.c:1324 #, c-format msgid "N-up argument must be power of 2: %d" msgstr "ÞÉÓÌÏ ÌÏÇÉÞÅÓËÉÈ ÓÔÒÁÎÉà ÎÁ ÓÔÒÁÎÉÃÕ ÄÏÌÖÎÏ ÂÙÔØ ÓÔÅÐÅÎØÀ 2: %d" #: src/main.c:1401 #, c-format msgid "malformed underlay position: %s" msgstr "ÎÅÐÒÁ×ÉÌØÎÏ ÚÁÄÁÎÁ ÐÏÚÉÃÉÑ ÐÏÄËÌÁÄËÉ: %s" #: src/main.c:1424 #, c-format msgid "illegal underlay style: %s" msgstr "ÎÅÄÏÐÕÓÔÉÍÙÊ ÓÔÉÌØ ÐÏÄËÌÁÄËÉ: %s" #: src/main.c:1451 #, c-format msgid "" "Highlighting is supported for the following languages and file formats:\n" "\n" msgstr "" "÷ÙÄÅÌÅÎÉÅ ÐÏÄÄÅÒÖÉ×ÁÅÔÓÑ ÄÌÑ ÓÌÅÄÕÀÝÉÈ ÑÚÙËÏ× É ÆÏÒÍÁÔÏ× ÆÁÊÌÏ×:\n" "\n" #: src/main.c:1632 #, c-format msgid "couldn't create temporary toc file: %s" msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÓÏÚÄÁÔØ ÆÁÊÌ ÓÏÄÅÒÖÁÎÉÑ: %s" #: src/main.c:1679 #, c-format msgid "couldn't stat input file \"%s\": %s" msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÕÚÎÁÔØ ÓÔÁÔÕÓ ×ÈÏÄÎÏÇÏ ÆÁÊÌÁ \"%s\": %s" #: src/main.c:1699 #, c-format msgid "couldn't rewind toc file: %s" msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÓÍÅÓÔÉÔØÓÑ × ÆÁÊÌÅ ÓÏÄÅÒÖÁÎÉÑ: %s" #: src/main.c:1705 msgid "Table of Contents" msgstr "óÏÄÅÒÖÁÎÉÅ" #: src/main.c:1731 msgid "no output generated\n" msgstr "×Ù×ÏÄ ÎÅ ÐÒÏÉÚ×ÅÄÅÎ\n" #: src/main.c:1736 #, c-format msgid "output sent to %s\n" msgstr "×Ù×ÏÄ ÎÁÐÒÁ×ÌÅÎ ÎÁ %s\n" #: src/main.c:1737 src/main.c:1768 msgid "printer" msgstr "ÐÒÉÎÔÅÒ" #: src/main.c:1739 #, c-format msgid "output left in %s\n" msgstr "×Ù×ÏÄ ÚÁÐÉÓÁÎ × %s\n" #: src/main.c:1760 #, c-format msgid "%d page" msgid_plural "%d pages" msgstr[0] "" msgstr[1] "" #: src/main.c:1762 #, c-format msgid "%d copy" msgid_plural "%d copies" msgstr[0] "" msgstr[1] "" #: src/main.c:1767 #, c-format msgid " sent to %s\n" msgstr " ÎÁÐÒÁ×ÌÅÎÏ ÎÁ %s\n" #: src/main.c:1770 #, c-format msgid " left in %s\n" msgstr " ÚÁÐÉÓÁÎÏ × %s\n" #: src/main.c:1776 #, fuzzy, c-format msgid "%d line was %s\n" msgid_plural "%d lines were %s\n" msgstr[0] "%d ÓÔÒÏË ÂÙÌÉ %s\n" msgstr[1] "%d ÓÔÒÏË ÂÙÌÉ %s\n" #: src/main.c:1781 msgid "truncated" msgstr "ÕÓÅÞÅÎÙ" #: src/main.c:1781 msgid "wrapped" msgstr "ÒÁÚÂÉÔÙ" #: src/main.c:1788 #, fuzzy, c-format msgid "%d character was missing\n" msgid_plural "%d characters were missing\n" msgstr[0] "ÐÒÏÐÕÝÅÎÏ ÓÉÍ×ÏÌÏ×: %d\n" msgstr[1] "ÐÒÏÐÕÝÅÎÏ ÓÉÍ×ÏÌÏ×: %d\n" #: src/main.c:1794 msgid "missing character codes (decimal):\n" msgstr "ËÏÄÙ (ÄÅÓÑÔÉÞÎÙÅ) ÐÒÏÐÕÝÅÎÎÙÈ ÓÉÍ×ÏÌÏ×:\n" #: src/main.c:1803 #, fuzzy, c-format msgid "%d non-printable character\n" msgid_plural "%d non-printable characters\n" msgstr[0] "ÎÅÐÅÞÁÔÎÙÈ ÓÉÍ×ÏÌÏ×: %d\n" msgstr[1] "ÎÅÐÅÞÁÔÎÙÈ ÓÉÍ×ÏÌÏ×: %d\n" #: src/main.c:1810 msgid "non-printable character codes (decimal):\n" msgstr "ÄÅÓÑÔÉÞÎÙÅ ËÏÄÙ ÎÅÐÅÞÁÔÎÙÈ ÓÉÍ×ÏÌÏ×:\n" #: src/main.c:1859 #, c-format msgid "couldn't open printer `%s': %s" msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ ÐÒÉÎÔÅÒ `%s': %s" #: src/main.c:1868 #, c-format msgid "couldn't create output file \"%s\": %s" msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÓÏÚÄÁÔØ ×ÙÈÏÄÎÏÊ ÆÁÊÌ \"%s\": %s" #: src/main.c:1885 #, c-format msgid "couldn't close output file \"%s\": %s" msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÚÁËÒÙÔØ ×ÙÈÏÄÎÏÊ ÆÁÊÌ \"%s\": %s" #: src/main.c:1943 #, c-format msgid "" "syntax error in option string %s=\"%s\":\n" "missing end of quotation: %c" msgstr "" "ÓÉÎÔÁËÓÉÞÅÓËÁÑ ÏÛÉÂËÁ × ËÌÀÞÅ %s=\"%s\":\n" "ÎÅÔ ÚÁËÒÙ×ÁÀÝÉÈ ËÁ×ÙÞÅË: %c" #: src/main.c:1975 #, c-format msgid "" "warning: didn't process following options from environment variable %s:\n" msgstr "" "ÐÒÅÄÕÐÒÅÖÄÅÎÉÅ: ÓÌÅÄÕÀÝÉÅ ËÌÀÞÉ ÉÚ ÐÅÒÅÍÅÎÎÏÊ ÓÒÅÄÙ %s ÎÅ ÂÙÌÉ " "ÉÓÐÏÌØÚÏ×ÁÎÙ:\n" #: src/main.c:1979 #, c-format msgid " option %d = \"%s\"\n" msgstr " ËÌÀÞ %d = \"%s\"\n" #: src/main.c:2025 msgid "number of columns must be larger than zero" msgstr "ÞÉÓÌÏ ËÏÌÏÎÏË ÄÏÌÖÎÏ ÂÙÔØ ÂÏÌØÛÅ ÎÕÌÑ" #: src/main.c:2083 msgid "file alignment must be larger than zero" msgstr "ÁÒÇÕÍÅÎÔ ×ÙÒÁ×ÎÉ×ÁÎÉÑ ÆÁÊÌÏ× ÄÏÌÖÅÎ ÂÙÔØ ÂÏÌØÛÅ ÎÕÌÑ" #: src/main.c:2138 src/main.c:2144 src/main.c:2355 src/util.c:416 #, c-format msgid "malformed font spec: %s" msgstr "ÎÅ×ÅÒÎÏ ÏÐÉÓÁÎ ÛÒÉÆÔ: %s" #: src/main.c:2160 #, c-format msgid "couldn't find header definition file \"%s.hdr\"" msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÎÁÊÔÉ ÚÁÇÏÌÏ×ÏÞÎÙÊ ÆÁÊÌ \"%s.hdr\"" #: src/main.c:2204 #, c-format msgid "must print at least one line per each page: %s" msgstr "ÎÅÏÂÈÏÄÉÍÏ ÐÅÞÁÔÁÔØ ÈÏÔÑ ÂÙ ÏÄÎÕ ÓÔÒÏËÕ ÎÁ ËÁÖÄÏÊ ÓÔÒÁÎÉÃÅ: %s" #: src/main.c:2224 #, c-format msgid "%s: illegal newline character specifier: '%s': expected 'n' or 'r'\n" msgstr "%s: ÎÅ×ÅÒÎÏ ÚÁÄÁÎ ÓÉÍ×ÏÌ ÎÏ×ÏÊ ÓÔÒÏËÉ: '%s': ÄÏÐÕÓÔÉÍÙ 'n' ÉÌÉ 'r'\n" #: src/main.c:2313 #, c-format msgid "malformed argument `%s' for option -W, --option: no comma found" msgstr "" "ÎÅÐÒÁ×ÉÌØÎÏ ÓÏÓÔÁ×ÌÅÎ ÁÒÇÕÍÅÎÔ `%s' ÄÌÑ ËÌÀÞÁ -W, --option: ÎÅÔ ÚÁÐÑÔÏÊ" #: src/main.c:2318 #, c-format msgid "helper application specification must be single character: %s" msgstr "ÓÐÅÃÉÆÉËÁÃÉÑ ×ÓÐÏÍÏÇÁÔÅÌØÎÏÊ ÐÒÏÇÒÁÍÍÙ ÄÏÌÖÎÁ ÂÙÔØ ÏÄÎÉÍ ÚÎÁËÏÍ: %s" #: src/main.c:2414 msgid "slice must be greater than zero" msgstr "ÎÏÍÅÒ ÆÒÁÇÍÅÎÔÁ ÄÏÌÖÅÎ ÂÙÔØ ÂÏÌØÛÅ ÎÕÌÑ" #: src/main.c:2495 states/main.c:318 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "ðÏÐÒÏÂÕÊÔÅ `%s --help' ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÂÏÌÅÅ ÐÏÄÒÏÂÎÏÇÏ ÏÐÉÓÁÎÉÑ.\n" #: src/main.c:2515 #, fuzzy, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" "Mandatory arguments to long options are mandatory for short options too.\n" " -# an alias for option -n, --copies\n" " -1 same as --columns=1\n" " -2 same as --columns=2\n" " --columns=NUM specify the number of columns per page\n" " -a, --pages=PAGES specify which pages are printed\n" " -A, --file-align=ALIGN align separate input files to ALIGN\n" " -b, --header=HEADER set page header\n" " -B, --no-header no page headers\n" " -c, --truncate-lines cut long lines (default is to wrap)\n" " -C[START], --line-numbers[=START]\n" " precede each line with its line number\n" " -d an alias for option --printer\n" " -D, --setpagedevice=KEY[:VALUE]\n" " pass a page device definition to output\n" " -e[CHAR], --escapes[=CHAR] enable special escape interpretation\n" msgstr "" "éÓÐÏÌØÚÏ×ÁÎÉÅ: %s [ëìàþ]... [æáêì]...\n" "áÒÇÕÍÅÎÔÙ, ÏÂÑÚÁÔÅÌØÎÙÅ ÄÌÑ ÄÌÉÎÎÙÈ ËÌÀÞÅÊ, ÏÂÑÚÁÔÅÌØÎÙ É ÄÌÑ ËÏÒÏÔËÉÈ.\n" " -# ÓÉÎÏÎÉÍ -n, --copies\n" " -1 ÓÉÎÏÎÉÍ --columns=1\n" " -2 ÓÉÎÏÎÉÍ --columns=2\n" " --columns=þéóìï ÚÁÄÁÅÔ þéóìï ËÏÌÏÎÏË ÎÁ ÓÔÒÁÎÉÃÅ\n" " -a, --pages=óôáîéãù ÚÁÄÁÅÔ, ËÁËÉÅ óôòáîéãù ÐÅÞÁÔÁÀÔÓÑ\n" " -A, --file-align=þéóìï ×ÙÒÁ×ÎÉ×ÁÔØ ×ÈÏÄÎÙÅ ÆÁÊÌÙ ÐÏ þéóìõ ÓÔÒÁÎÉÃ\n" " -b, --header=úáçïìï÷ïë ÚÁÄÁÅÔ úáçïìï÷ïë ÓÔÒÁÎÉÃÙ\n" " -B, --no-header ÎÅ ÐÅÞÁÔÁÔØ ÚÁÇÏÌÏ×ËÉ\n" " -c, --truncate-lines ÕÓÅËÁÔØ ÄÌÉÎÎÙÅ ÓÔÒÏËÉ (ÐÏ ÕÍÏÌÞÁÎÉÀ " "ÒÁÚÂÉ×ÁÔØ)\n" " -C, --line-numbers[=START] ÄÏÂÁ×ÌÑÔØ × ÎÁÞÁÌÏ ÓÔÒÏËÉ ÅÅ ÎÏÍÅÒ\n" " -d ÓÉÎÏÎÉÍ --printer\n" " -D, --setpagedevice=ëìàþ[:úîáþåîéå]\n" " ÐÅÒÅÄÁÔØ ÎÁ ×ÙÈÏÄ ÏÐÒÅÄÅÌÅÎÉÅ page device\n" " -e, --escapes[=óéí÷ïì] ÒÁÚÒÅÛÉÔØ ÉÓÐÏÌØÚÏ×ÁÎÉÅ ÕÐÒÁ×ÌÑÀÝÉÈ\n" " ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÅÊ\n" #: src/main.c:2535 #, fuzzy, c-format msgid " -E[LANG], --highlight[=LANG] highlight source code\n" msgstr "" " -E, --highlight[=ñúùë] ×ÙÄÅÌÑÔØ ÛÒÉÆÔÁÍÉ ÓÉÎÔÁËÓÉÓ ÉÓÈÏÄÎÏÇÏ ËÏÄÁ\n" #: src/main.c:2538 #, fuzzy, c-format msgid "" " -f, --font=NAME use font NAME for body text\n" " -F, --header-font=NAME use font NAME for header texts\n" " -g, --print-anyway nothing (compatibility option)\n" " -G same as --fancy-header\n" " --fancy-header[=NAME] select fancy page header\n" " -h, --no-job-header suppress the job header page\n" " -H[NUM], --highlight-bars[=NUM] specify how high highlight bars are\n" " -i, --indent=NUM set line indent to NUM characters\n" " -I, --filter=CMD read input files through input filter CMD\n" " -j, --borders print borders around columns\n" " -J, an alias for option --title\n" " -k, --page-prefeed enable page prefeed\n" " -K, --no-page-prefeed disable page prefeed\n" " -l, --lineprinter simulate lineprinter, this is an alias for:\n" " --lines-per-page=66, --no-header, --" "portrait,\n" " --columns=1\n" msgstr "" " -f, --font=ûòéæô ÉÓÐÏÌØÚÏ×ÁÔØ ÚÁÄÁÎÎÙÊ ûòéæô ÄÌÑ ÔÅÌÁ\n" " -F, --header-font=ûòéæô ÉÓÐÏÌØÚÏ×ÁÔØ ÚÁÄÁÎÎÙÊ ûòéæô ÄÌÑ ÚÁÇÏÌÏ×ËÏ×\n" " -g, --print-anyway ÉÇÎÏÒÉÒÕÅÔÓÑ (××ÅÄÅÎÏ ÄÌÑ ÓÏ×ÍÅÓÔÉÍÏÓÔÉ)\n" " -G ÓÉÎÏÎÉÍ --fancy-header\n" " --fancy-header[=éíñ] ÚÁÄÁÅÔ ÚÁÇÏÌÏ×ÏË, ÏÐÒÅÄÅÌÅÎÎÙÊ ÐÏÌØÚÏ×ÁÔÅÌÅÍ\n" " -h, --no-job-header ÎÅ ×Ù×ÏÄÉÔØ ÚÁÇÏÌÏ×ÏÞÎÕÀ ÓÔÒÁÎÉÃÕ ÚÁÄÁÎÉÑ\n" " -H, --highlight-bars=þéóìï ÚÁÄÁÅÔ ×ÙÓÏÔÕ ×ÙÄÅÌÑÀÝÉÈ ÐÏÌÏÓ\n" " -i, --indent=þéóìï ÏÔÓÔÕÐÁÔØ ÚÁÄÁÎÎÏÅ þéóìï ÓÉÍ×ÏÌÏ×\n" " -I, --filter=ëïíáîäá ÉÓÐÏÌØÚÏ×ÁÔØ ëïíáîäõ ÄÌÑ ÐÒÅÄ×ÁÒÉÔÅÌØÎÏÊ " "ÏÂÒÁÂÏÔËÉ\n" " ×ÈÏÄÎÙÈ ÆÁÊÌÏ×\n" " -j, --borders ÐÅÞÁÔÁÔØ ÒÁÍËÉ ×ÏËÒÕÇ ËÏÌÏÎÏË\n" " -J, ÓÉÎÏÎÉÍ --title\n" " -k, --page-prefeed ÐÒÅÄ×ÁÒÉÔÅÌØÎÏ ÐÏÄÁ×ÁÔØ ÓÔÒÁÎÉÃÙ\n" " -K, --no-page-prefeed ÎÅ ÐÏÄÁ×ÁÔØ ÓÔÒÁÎÉÃÙ ÐÒÅÄ×ÁÒÉÔÅÌØÎÏ\n" " -l, --lineprinter ÜÍÕÌÉÒÏ×ÁÔØ ÓÔÒÏÞÎÙÊ ÐÒÉÎÔÅÒ, ÓÉÎÏÎÉÍ\n" " --lines-per-page=66, --no-header, --portrait,\n" " --columns=1\n" #: src/main.c:2556 #, c-format msgid "" " -L, --lines-per-page=NUM specify how many lines are printed on each " "page\n" " -m, --mail send mail upon completion\n" " -M, --media=NAME use output media NAME\n" " -n, --copies=NUM print NUM copies of each page\n" " -N, --newline=NL select the newline character. Possible\n" " values for NL are: n (`\\n') and r (`\\r').\n" " -o an alias for option --output\n" " -O, --missing-characters list missing characters\n" " -p, --output=FILE leave output to file FILE. If FILE is `-',\n" " leave output to stdout.\n" " -P, --printer=NAME print output to printer NAME\n" " -q, --quiet, --silent be really quiet\n" " -r, --landscape print in landscape mode\n" " -R, --portrait print in portrait mode\n" msgstr "" " -L, --lines-per-page=þéóìï ÚÁÄÁÅÔ þéóìï ÐÅÞÁÔÁÅÍÙÈ ÓÔÒÏË ÎÁ ËÁÖÄÏÊ " "ÓÔÒÁÎÉÃÅ\n" " -m, --mail ÐÏÓÌÁÔØ ÓÏÏÂÝÅÎÉÅ ÐÏ ÏËÏÎÞÁÎÉÉ ÒÁÂÏÔÙ\n" " -M, --media=éíñ ÚÁÄÁÅÔ ÆÏÒÍÁÔ ÄÌÑ ÐÅÞÁÔÉ\n" " -n, --copies=þéóìï ÚÁÄÁÅÔ þéóìï ÐÅÞÁÔÁÅÍÙÈ ËÏÐÉÊ ËÁÖÄÏÊ ÓÔÒÁÎÉÃÙ\n" " -N, --newline=îó ÚÁÄÁÅÔ ÓÉÍ×ÏÌ ÎÏ×ÏÊ ÓÔÒÏËÉ, ÄÏÐÕÓÔÉÍÙÅ ÚÎÁÞÅÎÉÑ " "n\n" " (`\\n') É r (`\\r')\n" " -o ÓÉÎÏÎÉÍ --output\n" " -O, --missing-characters ÐÏËÁÚÁÔØ ÐÒÏÐÕÝÅÎÎÙÅ ÓÉÍ×ÏÌÙ\n" " -p, --output=æáêì ÚÁÐÉÓÁÔØ ×Ù×ÏÄ × ÕËÁÚÁÎÎÙÊ æáêì. åÓÌÉ æáêì " "ÚÁÄÁÎ\n" " ËÁË -, ÐÅÞÁÔÁÔØ ÎÁ ÓÔÁÎÄÁÒÔÎÙÊ ×Ù×ÏÄ\n" " -P, --printer=éíñ ÎÁÐÅÞÁÔÁÔØ ×Ù×ÏÄ ÎÁ ÕËÁÚÁÎÎÏÍ ÐÒÉÎÔÅÒÅ\n" " -q, --quiet, --silent ÎÅ ×Ù×ÏÄÉÔØ ÓÏÏÂÝÅÎÉÊ\n" " -r, --landscape ÐÅÞÁÔÁÔØ ÇÏÒÉÚÏÎÔÁÌØÎÏ (ÒÅÖÉÍ landscape)\n" " -R, --portrait ÐÅÞÁÔÁÔØ ×ÅÒÔÉËÁÌØÎÏ (ÒÅÖÉÍ portrait)\n" #: src/main.c:2572 #, fuzzy, c-format msgid "" " -s, --baselineskip=NUM set baselineskip to NUM\n" " -S, --statusdict=KEY[:VALUE]\n" " pass a statusdict definition to the output\n" " -t, --title=TITLE set banner page's job title to TITLE. Option\n" " sets also the name of the input file stdin.\n" " -T, --tabsize=NUM set tabulator size to NUM\n" " -u[TEXT], --underlay[=TEXT] print TEXT under every page\n" " -U, --nup=NUM print NUM logical pages on each output page\n" " -v, --verbose tell what we are doing\n" " -V, --version print version number\n" " -w, --language=LANG set output language to LANG\n" " -W, --options=APP,OPTION pass option OPTION to helper application APP\n" " -X, --encoding=NAME use input encoding NAME\n" " -z, --no-formfeed do not interpret form feed characters\n" " -Z, --pass-through pass through PostScript and PCL files\n" " without any modifications\n" msgstr "" " -s, --baselineskip=þéóìï ÚÁÄÁÅÔ ÉÎÔÅÒÌÉÎØÑÖ\n" " -S, --statusdict=ëìàþ[:úîáþåîéå]\n" " ÐÅÒÅÄÁÔØ ÎÁ ×ÙÈÏÄ ÏÐÒÅÄÅÌÅÎÉÅ statusdict\n" " -t, --title=éíñ ÚÁÄÁÅÔ ÉÍÑ ÚÁÄÁÎÉÑ. ôÁËÖÅ ÕÓÔÁÎÁ×ÌÉ×ÁÅÔ ÉÍÑ\n" " ÓÔÁÎÄÁÒÔÎÏÇÏ ××ÏÄÁ.\n" " -T, --tabsize=þéóìï ÚÁÄÁÅÔ ÛÉÒÉÎÕ ÚÎÁËÁ ÔÁÂÕÌÑÃÉÉ\n" " -u, --underlay[=ôåëóô] ÐÅÞÁÔÁÔØ ôåëóô ÎÁ ÐÏÄÌÏÖËÅ ËÁÖÄÏÊ ÓÔÒÁÎÉÃÙ\n" " -U, --nup=þéóìï ÐÅÞÁÔÁÔØ ÚÁÄÁÎÎÏÅ þéóìï ÌÏÇÉÞÅÓËÉÈ ÓÔÒÁÎÉà ÎÁ\n" " ËÁÖÄÏÊ ×ÙÈÏÄÎÏÊ ÓÔÒÁÎÉÃÅ\n" " -v, --verbose ÓÏÏÂÝÁÔØ ÐÒÏÉÚ×ÏÄÉÍÙÅ ÄÅÊÓÔ×ÉÑ\n" " -V, --version ÐÏËÁÚÁÔØ ÉÎÆÏÒÍÁÃÉÀ Ï ×ÅÒÓÉÉ\n" " -w, --language=ñúùë ÚÁÄÁÅÔ ñúùë ÄÌÑ ×Ù×ÏÄÁ\n" " -W, --options=÷ð,ëìàþ ÐÅÒÅÄÁÔØ ëìàþ ×ÓÐÏÍÏÇÁÔÅÌØÎÏÊ ÐÒÏÇÒÁÍÍÅ ÷ð\n" " -X, --encoding=éíñ ÚÁÄÁÅÔ ËÏÄÉÒÏ×ËÕ ÄÌÑ ×ÈÏÄÁ\n" " -z, --no-formfeed ÉÇÎÏÒÉÒÏ×ÁÔØ ÚÎÁËÉ ÐÅÒÅ×ÏÄÁ ÓÔÒÁÎÉÃÙ\n" " -Z, --pass-through ÐÒÏÐÕÓËÁÔØ ÂÅÚ ÉÚÍÅÎÅÎÉÊ ×ÈÏÄÎÙÅ ÆÁÊÌÙ × " "ÆÏÒÍÁÔÁÈ\n" " PostScript É PCL\n" #: src/main.c:2590 #, c-format msgid "" "Long-only options:\n" " --color[=bool] create color outputs with states\n" " --continuous-page-numbers count page numbers across input files. Don't\n" " restart numbering at beginning of each file.\n" " --download-font=NAME download font NAME\n" " --extended-return-values enable extended return values\n" " --filter-stdin=NAME specify how stdin is shown to the input filter\n" " --footer=FOOTER set page footer\n" " --h-column-height=HEIGHT set the horizontal column height to HEIGHT\n" " --help print this help and exit\n" msgstr "" "äÌÉÎÎÙÅ ËÌÀÞÉ:\n" " --color[=bool] ×Ù×ÏÄÉÔØ × ÒÁÚÎÙÈ Ã×ÅÔÁÈ\n" " --continuous-page-numbers ÓÞÉÔÁÔØ ÎÏÍÅÒÁ ÓÔÒÁÎÉà ÎÅÐÒÅÒÙ×ÎÏ ÐÏ ×ÓÅÍ " "×ÈÏÄÎÙÍ\n" " ÆÁÊÌÁÍ. îÅ ÎÁÞÉÎÁÔØ ÚÁÎÏ×Ï Ó ÎÁÞÁÌÁ ËÁÖÄÏÇÏ " "ÆÁÊÌÁ.\n" " --download-font=éíñ ×ËÌÀÞÉÔØ × ×Ù×ÏÄ ÛÒÉÆÔ Ó ÕËÁÚÁÎÎÙÍ éíåîåí\n" " --extended-return-values ×ËÌÀÞÉÔØ ÒÁÓÛÉÒÅÎÎÙÅ ËÏÄÙ ×ÏÚÒ×ÒÁÔÁ\n" " --filter-stdin=éíñ ÕËÁÚÙ×ÁÅÔ, ËÁË ÉÍÅÎÏ×ÁÔØ ÓÔÁÎÄÁÒÔÎÙÊ ××ÏÄ ÄÌÑ\n" " ×ÈÏÄÎÏÇÏ ÆÉÌØÔÒÁ\n" " --footer=úáçïìï÷ïë ÕÓÔÁÎÁ×ÌÉ×ÁÅÔ ÎÉÖÎÉÊ ÚÁÇÏÌÏ×ÏË ÓÔÒÁÎÉÃÙ\n" " --h-column-height=÷ùóïôá ÕÓÔÁÎÁ×ÌÉ×ÁÅÔ ÷ùóïôõ ÇÏÒÉÚÏÎÔÁÌØÎÏÊ ËÏÌÏÎËÉ\n" " --help ÐÏËÁÚÁÔØ ÜÔÕ ÓÐÒÁ×ËÕ É ×ÙÊÔÉ\n" #: src/main.c:2601 #, c-format msgid "" " --help-highlight describe all supported --highlight languages\n" " and file formats\n" " --highlight-bar-gray=NUM print highlight bars with gray NUM (0 - 1)\n" " --list-media list names of all known media\n" " --margins=LEFT:RIGHT:TOP:BOTTOM\n" " adjust page marginals\n" " --mark-wrapped-lines[STYLE]\n" " mark wrapped lines in the output with STYLE\n" " --non-printable-format=FMT specify how non-printable chars are printed\n" msgstr "" " --help-highlight ÏÐÉÓÁÔØ ×ÓÅ ÑÚÙËÉ, ÐÏÄÄÅÒÖÉ×ÁÅÍÙÅ --highlight\n" " --highlight-bar-gray=þéóìï ÐÅÞÁÔÁÔØ ×ÙÄÅÌÑÀÝÉÅ ÐÏÌÏÓÙ ÚÁÄÁÎÎÙÍ ÏÔÔÅÎËÏÍ \n" " ÓÅÒÏÇÏ Ã×ÅÔÁ (0 - 1)\n" " --list-media ÐÅÒÅÞÉÓÌÉÔØ ×ÓÅ ÉÚ×ÅÓÔÎÙÅ ÆÏÒÍÁÔÙ\n" " --margins=ìå÷:ðòá÷:÷åòè:îéú ÎÁÓÔÒÁÉ×ÁÅÔ ÒÁÚÍÅÒÙ ÐÏÌÅÊ ÓÔÒÁÎÉÃÙ\n" " --mark-wrapped-lines[óôéìø] ÚÁÄÁÅÔ óôéìø ÐÏÍÅÔËÉ ÒÁÚÂÉÔÙÈ ÓÔÒÏË\n" " --non-printable-format=æíô ÕËÁÚÙ×ÁÅÔ, ËÁË ×Ù×ÏÄÉÔØ ÎÅÐÅÞÁÔÎÙÅ ÚÎÁËÉ\n" #: src/main.c:2612 #, c-format msgid "" " --nup-columnwise layout pages in the N-up printing columnwise\n" " --nup-xpad=NUM set the page x-padding of N-up printing to NUM\n" " --nup-ypad=NUM set the page y-padding of N-up printing to NUM\n" " --page-label-format=FMT set page label format to FMT\n" " --ps-level=LEVEL set the PostScript language level that " "enscript\n" " should use\n" " --printer-options=OPTIONS pass extra options to the printer command\n" " --rotate-even-pages rotate even-numbered pages 180 degrees\n" msgstr "" " --nup-columnwise ÒÁÚÍÅÝÁÔØ ÓÔÒÁÎÉÃÙ ÐÏ ÓÔÏÌÂÃÁÍ ÐÒÉ ÐÅÞÁÔÉ \n" " ÎÅÓËÏÌØËÉÈ ÓÔÒÁÎÉà ÎÁ ÌÉÓÔ\n" " --nup-xpad=þéóìï ÕÓÔÁÎÏ×ÉÔØ ÚÁÐÏÌÎÅÎÉÅ ÓÔÒÁÎÉÃÙ ÐÏ x ÐÒÉ " "ÐÅÞÁÔÉ \n" " ÎÅÓËÏÌØËÉÈ ÓÔÒÁÎÉà ÎÁ ÌÉÓÔ ÒÁ×ÎÙÍ þéóìõ\n" " --nup-ypad=þéóìï ÕÓÔÁÎÏ×ÉÔØ ÚÁÐÏÌÎÅÎÉÅ ÓÔÒÁÎÉÃÙ ÐÏ y ÐÒÉ " "ÐÅÞÁÔÉ \n" " ÎÅÓËÏÌØËÉÈ ÓÔÒÁÎÉà ÎÁ ÌÉÓÔ ÒÁ×ÎÙÍ þéóìõ\n" " --page-label-format=æíô ÕÓÔÁÎÁ×ÌÉ×ÁÅÔ ÆÏÒÍÁÔ ÍÅÔËÉ ÓÔÒÁÎÉÃÙ\n" " --ps-level=õòï÷åîø ÕÓÔÁÎÁ×ÌÉ×ÁÅÔ ÕÒÏ×ÅÎØ ÑÚÙËÁ PostScript, " "ËÏÔÏÒÙÊ \n" " ÄÏÌÖÅÎ ÉÓÐÏÌØÚÏ×ÁÔØ enscript\n" " --printer-options=ëìàþé ÐÅÒÅÄÁÅÔ ÄÏÐÏÌÎÉÔÅÌØÎÙÅ ÐÁÒÁÍÅÔÒÙ ËÏÍÁÎÄÅ " "ÐÅÞÁÔÉ\n" " --rotate-even-pages ÐÏ×ÏÒÁÞÉ×ÁÔØ ÞÅÔÎÙÅ ÓÔÒÁÎÉÃÙ ÎÁ 180 ÇÒÁÄÕÓÏ×\n" #: src/main.c:2622 #, c-format msgid "" " --slice=NUM print vertical slice NUM\n" " --style=STYLE use highlight style STYLE\n" " --swap-even-page-margins swap left and right side margins for each even\n" " numbered page\n" " --toc print table of contents\n" " --ul-angle=ANGLE set underlay text's angle to ANGLE\n" " --ul-font=NAME print underlays with font NAME\n" " --ul-gray=NUM print underlays with gray value NUM\n" " --ul-position=POS set underlay's starting position to POS\n" " --ul-style=STYLE print underlays with style STYLE\n" " --word-wrap wrap long lines from word boundaries\n" msgstr "" " --slice=þéóìï ÐÅÞÁÔÁÔØ ÚÁÄÁÎÎÙÊ ×ÅÒÔÉËÁÌØÎÙÊ ÆÒÁÇÍÅÎÔ\n" " --style=óôéìø ÉÓÐÏÌØÚÏ×ÁÔØ ÚÁÄÁÎÎÙÊ ÓÔÉÌØ ×ÙÄÅÌÅÎÉÑ\n" " --swap-even-page-margins ÍÅÎÑÔØ ÌÅ×ÏÅ É ÐÒÁ×ÏÅ ÐÏÌÑ ÄÌÑ ÞÅÔÎÙÈ ÓÔÒÁÎÉÃ\n" " --toc ÐÅÞÁÔÁÔØ ÓÏÄÅÒÖÁÎÉÅ\n" " --ul-angle=õçïì ÚÁÄÁÅÔ õçïì ÎÁËÌÏÎÁ ÔÅËÓÔÁ ÐÏÄËÌÁÄËÉ\n" " --ul-font=éíñ ÚÁÄÁÅÔ ÛÒÉÆÔ ÄÌÑ ÐÏÄËÌÁÄËÉ\n" " --ul-gray=þéóìï ÐÅÞÁÔÁÔØ ÐÏÄËÌÁÄËÕ ÚÁÄÁÎÎÙÍ ÓÅÒÙÍ Ã×ÅÔÏÍ\n" " --ul-position=ðïú ÚÁÄÁÅÔ ÎÁÞÁÌØÎÕÀ ÐÏÚÉÃÉÀ ÄÌÑ ÐÏÄËÌÁÄËÉ\n" " --ul-style=óôéìø ÚÁÄÁÅÔ óôéìø ÐÏÄËÌÁÄËÉ\n" " --word-wrap ÏÂÒÙ×ÁÔØ ÄÌÉÎÎÙÅ ÓÔÒÏËÉ ÎÁ ÇÒÁÎÉÃÁÈ ÓÌÏ×\n" #: src/main.c:2636 #, fuzzy, c-format msgid "" "\n" "Report bugs to <%s>.\n" msgstr "" "\n" "ï ÏÛÉÂËÁÈ ÓÏÏÂÝÁÊÔÅ ÐÏ ÁÄÒÅÓÕ mtr@iki.fi.\n" #: src/psgen.c:331 #, c-format msgid "couldn't find prolog \"%s\": %s\n" msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÎÁÊÔÉ ÐÒÏÌÏÇ \"%s\": %s\n" #: src/psgen.c:339 #, c-format msgid "couldn't find encoding file \"%s.enc\": %s\n" msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÎÁÊÔÉ ÆÁÊÌ ÏÐÉÓÁÎÉÑ ËÏÄÉÒÏ×ËÉ \"%s.enc\": %s\n" #: src/psgen.c:471 #, c-format msgid "couldn't find header definition file \"%s.hdr\": %s\n" msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÎÁÊÔÉ ÚÁÇÏÌÏ×ÏÞÎÙÊ ÆÁÊÌ \"%s.hdr\": %s\n" #: src/psgen.c:615 #, c-format msgid "processing file \"%s\"...\n" msgstr "ÏÂÒÁÂÏÔËÁ ÆÁÊÌÁ \"%s\"...\n" #: src/psgen.c:913 #, c-format msgid "EPS file \"%s\" is too large for page\n" msgstr "EPS-ÆÁÊÌ \"%s\" ÓÌÉÛËÏÍ ×ÅÌÉË\n" #: src/psgen.c:986 msgid "user font encoding can be only the system's default or `ps'" msgstr "" "ÏÐÒÅÄÅÌÑÅÍÁÑ ÐÏÌØÚÏ×ÁÔÅÌÅÍ ËÏÄÉÒÏ×ËÁ ÛÒÉÆÔÁ ÍÏÖÅÔ ÂÙÔØ ÔÏÌØËÏ\n" "ÓÉÓÔÅÍÎÏÊ ÐÏ ÕÍÏÌÞÁÎÉÀ ÉÌÉ `ps'" #: src/psgen.c:1228 #, c-format msgid "unknown special escape: %s" msgstr "ÎÅÉÚ×ÅÓÔÎÁÑ ÕÐÒÁ×ÌÑÀÝÁÑ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ: %s" #: src/psgen.c:1354 #, c-format msgid "illegal option %c for ^@epsf escape" msgstr "ÎÅÄÏÐÕÓÔÉÍÙÊ ËÌÀÞ %c ÄÌÑ ÄÉÒÅËÔÉ×Ù ^@epsf" #: src/psgen.c:1360 msgid "malformed ^@epsf escape: no ']' after options" msgstr "ÎÅ×ÅÒÎÏ ÚÁÄÁÎÁ ÄÉÒÅËÔÉ×Á ^@epsf: ÐÏÓÌÅ ËÌÀÞÅÊ ÏÔÓÕÔÓÔ×ÕÅÔ `]'" #: src/psgen.c:1372 #, c-format msgid "" "too long file name for ^@epsf escape:\n" "%.*s" msgstr "" "ÓÌÉÛËÏÍ ÄÌÉÎÎÏÅ ÉÍÑ ÆÁÊÌÁ ÄÌÑ ÄÉÒÅËÔÉ×Ù ^@epsf:\n" "%.*s" #: src/psgen.c:1376 msgid "unexpected EOF while scanning ^@epsf escape" msgstr "ÐÒÅÖÄÅ×ÒÅÍÅÎÎÙÊ ËÏÎÅà ÆÁÊÌÁ ÐÒÉ ÞÔÅÎÉÉ ÄÉÒÅËÔÉ×Ù ^@epsf" #: src/psgen.c:1382 msgid "malformed ^@epsf escape: no '{' found" msgstr "ÎÅ×ÅÒÎÏ ÚÁÄÁÎÁ ÄÉÒÅËÔÉ×Á ^@epsf: ÏÔÓÕÔÓÔ×ÕÅÔ '{'" #: src/psgen.c:1440 #, c-format msgid "malformed %s escape: no '{' found" msgstr "ÎÅ×ÅÒÎÏ ÚÁÄÁÎÁ ÄÉÒÅËÔÉ×Á %s: ÏÔÓÕÔÓÔ×ÕÅÔ '{'" #: src/psgen.c:1454 #, c-format msgid "" "too long argument for %s escape:\n" "%.*s" msgstr "" "ÓÌÉÛËÏÍ ÄÌÉÎÎÙÊ ÁÒÇÕÍÅÎÔ ÄÌÑ ÄÉÒÅËÔÉ×Ù %s:\n" "%.*s" #: src/psgen.c:1474 #, c-format msgid "malformed font spec for ^@font escape: %s" msgstr "ÎÅÐÒÁ×ÉÌØÎÏÅ ÏÐÉÓÁÎÉÅ ÛÒÉÆÔÁ × ÄÉÒÅËÔÉ×Å ^@font: %s" #: src/psgen.c:1511 #, c-format msgid "malformed color spec for ^@%s escape: %s" msgstr "ÎÅÐÒÁ×ÉÌØÎÏÅ ÏÐÉÓÁÎÉÅ Ã×ÅÔÁ × ÄÉÒÅËÔÉ×Å ^@%s: %s" #: src/psgen.c:1535 #, c-format msgid "invalid value for ^@shade escape: %s" msgstr "ÎÅ×ÅÒÎÏÅ ÚÎÁÞÅÎÉÅ ÄÌÑ ÄÉÒÅËÔÉ×Ù ^@shade: %s" #: src/psgen.c:1543 #, c-format msgid "invalid value for ^@bggray escape: %s" msgstr "ÎÅ×ÅÒÎÏÅ ÚÎÁÞÅÎÉÅ ÄÌÑ ÄÉÒÅËÔÉ×Ù ^@bggray: %s" #: src/psgen.c:2412 #, c-format msgid "couldn't open EPS file \"%s\": %s\n" msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ EPS-ÆÁÊÌ \"%s\": %s\n" #: src/psgen.c:2448 #, c-format msgid "EPS file \"%s\" does not start with \"%%!\" magic\n" msgstr "EPS-ÆÁÊÌ \"%s\" ÎÅ ÎÁÞÉÎÁÅÔÓÑ ×ÏÌÛÅÂÎÙÍ ËÏÍÍÅÎÔÁÒÉÅÍ \"%%!\"\n" #: src/psgen.c:2473 #, c-format msgid "" "EPS file \"%s\" contains malformed %%%%BoundingBox row:\n" "\"%.*s\"\n" msgstr "" "EPS-ÆÁÊÌ \"%s\" ÓÏÄÅÒÖÉÔ ÎÅÐÒÁ×ÉÌØÎÕÀ ÓÔÒÏËÕ %%%%BoundingBox:\n" "\"%.*s\"\n" #: src/psgen.c:2498 #, c-format msgid "EPS file \"%s\" is not a valid EPS file\n" msgstr "EPS-ÆÁÊÌ \"%s\" ÎÅ Ñ×ÌÑÅÔÓÑ ×ÅÒÎÙÍ EPS-ÆÁÊÌÏÍ\n" #: src/psgen.c:2640 #, c-format msgid "passing through all input files for output language `%s'\n" msgstr "ÏÂÒÁÂÁÔÙ×ÁÀÔÓÑ ×ÓÅ ×ÈÏÄÎÙÅ ÆÁÊÌÙ Ó ×ÙÈÏÄÎÙÍ ÑÚÙËÏÍ `%s'\n" #: src/psgen.c:2692 #, c-format msgid "passing through %s file \"%s\"\n" msgstr "ÏÂÒÁÂÁÔÙ×ÁÅÔÓÑ ÆÁÊÌ %s \"%s\"\n" #: src/psgen.c:2795 #, c-format msgid "couldn't create temporary divert file: %s" msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÓÏÚÄÁÔØ ×ÒÅÍÅÎÎÙÊ ÆÁÊÌ: %s" #: src/psgen.c:2812 #, c-format msgid "couldn't rewind divert file: %s" msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÓÍÅÓÔÉÔØÓÑ ×Ï ×ÒÅÍÅÎÎÏÍ ÆÁÊÌÅ: %s" #: src/util.c:93 #, fuzzy, c-format msgid "missing argument: %s" msgstr "ÎÅ×ÅÒÎÏ ÚÁÄÁÎÏ ÞÉÓÌÏ ÌÏÇÉÞÅÓËÉÈ ÓÔÒÁÎÉà ÎÁ ÓÔÒÁÎÉÃÕ: %d" #: src/util.c:186 src/util.c:214 #, c-format msgid "illegal value \"%s\" for option %s" msgstr "ÎÅÄÏÐÕÓÔÉÍÏÅ ÚÎÁÞÅÎÉÅ \"%s\" ÄÌÑ ËÌÀÞÁ %s" #: src/util.c:202 #, c-format msgid "invalid value \"%s\" for option %s" msgstr "ÎÅ×ÅÒÎÏÅ ÚÎÁÞÅÎÉÅ \"%s\" ÄÌÑ ËÌÀÞÁ %s" #: src/util.c:440 #, c-format msgid "illegal option: %s" msgstr "ÎÅÄÏÐÕÓÔÉÍÙÊ ËÌÀÞ: %s" #: src/util.c:619 #, c-format msgid "%s:%d: %%Format: no name" msgstr "%s:%d: %%Format: ÎÅ ÚÁÄÁÎ" #: src/util.c:630 #, c-format msgid "%s:%d: %%Format: too long name, maxlen=%d" msgstr "%s:%d %%Format: ÓÌÉÛËÏÍ ÄÌÉÎÎÏÅ ÉÍÑ, ÍÁËÓÉÍÁÌØÎÁÑ ÄÌÉÎÁ %d" #: src/util.c:653 #, c-format msgid "%s:%d: %%Format: name \"%s\" is already defined" msgstr "%s:%d: %%Format: ÉÍÑ \"%s\" ÕÖÅ ÏÐÒÅÄÅÌÅÎÏ" #: src/util.c:674 #, c-format msgid "%s:%d: %%HeaderHeight: no argument" msgstr "%s:%d: %%HeaderHeight: ÁÒÇÕÍÅÎÔ ÎÅ ÚÁÄÁÎ" #: src/util.c:696 #, c-format msgid "%s:%d: %%FooterHeight: no argument" msgstr "%s:%d: %%FooterHeight: ÁÒÇÕÍÅÎÔ ÎÅ ÚÁÄÁÎ" #: src/util.c:843 #, c-format msgid "%s: warning: font size is negative\n" msgstr "%s: ÐÒÅÄÕÐÒÅÖÄÅÎÉÅ: ÏÔÒÉÃÁÔÅÌØÎÙÊ ÒÁÚÍÅÒ ÛÒÉÆÔÁ\n" #: src/util.c:845 #, c-format msgid "%s: warning: font width is negative\n" msgstr "%s: ÐÒÅÄÕÐÒÅÖÄÅÎÉÅ: ÏÔÒÉÃÁÔÅÌØÎÁÑ ÛÉÒÉÎÁ ÛÒÉÆÔÁ\n" #: src/util.c:847 #, c-format msgid "%s: warning: font height is negative\n" msgstr "%s: ÐÒÅÄÕÐÒÅÖÄÅÎÉÅ: ÏÔÒÉÃÁÔÅÌØÎÁÑ ×ÙÓÏÔÁ ÛÒÉÆÔÁ\n" #: src/util.c:866 #, c-format msgid "reading AFM info for font \"%s\"\n" msgstr "ÞÔÅÎÉÅ AFM-ÉÎÆÏÒÍÁÃÉÉ ÄÌÑ ÛÒÉÆÔÁ \"%s\"\n" #: src/util.c:899 #, c-format msgid "couldn't open AFM file for font \"%s\", using default\n" msgstr "" "ÎÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ AFM-ÆÁÊÌ ÄÌÑ ÛÒÉÆÔÁ \"%s\", ÉÓÐÏÌØÚÕÅÔÓÑ ÛÒÉÆÔ ÐÏ " "ÕÍÏÌÞÁÎÉÀ\n" #: src/util.c:906 #, c-format msgid "couldn't open AFM file for the default font: %s" msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ AFM-ÆÁÊÌ ÄÌÑ ÛÒÉÆÔÁ ÐÏ ÕÍÏÌÞÁÎÉÀ: %s" #: src/util.c:1095 #, c-format msgid "downloading font \"%s\"\n" msgstr "ÚÁÇÒÕÚËÁ ÛÒÉÆÔÁ \"%s\"\n" #: src/util.c:1100 #, c-format msgid "couldn't open font description file \"%s\": %s\n" msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ ÆÁÊÌ ÏÐÉÓÁÎÉÑ ÛÒÉÆÔÁ \"%s\": %s\n" #: src/util.c:1392 #, c-format msgid "%s: too long format for %%D{} escape" msgstr "%s: ÓÌÉÛËÏÍ ÄÌÉÎÎÙÊ ÆÏÒÍÁÔ ÄÌÑ ÄÉÒÅËÔÉ×Ù %%D{}" #: src/util.c:1477 #, c-format msgid "%s: unknown `%%' escape `%c' (%d)" msgstr "%s: ÎÅÉÚ×ÅÓÔÎÁÑ %%-ÄÉÒÅËÔÉ×Á `%c' (%d)" #: src/util.c:1515 #, c-format msgid "%s: no closing ')' for $() escape" msgstr "%s: ÏÔÓÕÔÓÔ×ÕÅÔ ÚÁËÒÙ×ÁÀÝÁÑ ')' ÄÌÑ ÄÉÒÅËÔÉ×Ù $()" #: src/util.c:1518 #, c-format msgid "%s: too long variable name for $() escape" msgstr "%s: ÓÌÉÛËÏÍ ÄÌÉÎÎÏÅ ÉÍÑ ÐÅÒÅÍÅÎÎÏÊ ÄÌÑ ÄÉÒÅËÔÉ×Ù $()" #: src/util.c:1545 #, c-format msgid "%s: too long format for $D{} escape" msgstr "%s: ÓÌÉÛËÏÍ ÄÌÉÎÎÙÊ ÆÏÒÍÁÔ ÄÌÑ ÄÉÒÅËÔÉ×Ù $D{}" #: src/util.c:1633 #, c-format msgid "%s: unknown `$' escape `%c' (%d)" msgstr "%s: ÎÅÉÚ×ÅÓÔÎÁÑ $-ÄÉÒÅËÔÉ×Á `%c' (%d)" #: src/util.c:1824 #, c-format msgid "malformed float dimension: \"%s\"" msgstr "ÎÅÐÒÁ×ÉÌØÎÏÅ ÞÉÓÌÏ Ó ÐÌÁ×ÁÀÝÅÊ ÔÏÞËÏÊ: \"%s\"" #: src/util.c:1946 #, c-format msgid "couldn't open input filter \"%s\" for file \"%s\": %s" msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ ×ÈÏÄÎÏÊ ÆÉÌØÔÒ \"%s\" ÄÌÑ ÆÁÊÌÁ \"%s\": %s" #: src/util.c:1963 #, c-format msgid "couldn't open input file \"%s\": %s" msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ ×ÈÏÄÎÏÊ ÆÁÊÌ \"%s\": %s" #: src/mkafmmap.c:167 #, c-format msgid "file=%s\n" msgstr "ÆÁÊÌ=%s\n" #: src/mkafmmap.c:167 msgid "stdout" msgstr "ÓÔÁÎÄÁÒÔÎÙÊ ×Ù×ÏÄ" #: src/mkafmmap.c:175 #, c-format msgid "%s: couldn't open output file \"%s\"" msgstr "%s: ÎÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ ×ÙÈÏÄÎÏÊ ÆÁÊÌ \"%s\"" #: src/mkafmmap.c:189 msgid "couldn't create AFM library" msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÓÏÚÄÁÔØ AFM-ÂÉÂÌÉÏÔÅËÕ" #: src/mkafmmap.c:238 #, c-format msgid "" "Usage: %s [OPTION]... FILE...\n" "Mandatory arguments to long options are mandatory for short options too.\n" " -h, --help print this help and exit\n" " -p, --output-file=NAME print output to file NAME (default file is\n" " font.map). If FILE is `-', leavy output to\n" " stdout.\n" " -V, --version print version number\n" msgstr "" "éÓÐÏÌØÚÏ×ÁÎÉÅ: %s [ëìàþ]... æáêì\n" "áÒÇÕÍÅÎÔÙ, ÏÂÑÚÁÔÅÌØÎÙÅ ÄÌÑ ÄÌÉÎÎÙÈ ËÌÀÞÅÊ, ÏÂÑÚÁÔÅÌØÎÙ É ÄÌÑ ËÏÒÏÔËÉÈ.\n" " -h, --help ÐÏËÁÚÁÔØ ÜÔÕ ÓÐÒÁ×ËÕ É ×ÙÊÔÉ\n" " -p, --output-file=æáêì ×Ù×ÏÄÉÔØ × ÕËÁÚÁÎÎÙÊ æáêì (ÐÏ ÕÍÏÌÞÁÎÉÀ font." "map).\n" " åÓÌÉ æáêì ÚÁÄÁÎ ËÁË -, ÐÅÞÁÔÁÔØ ÎÁ ÓÔÁÎÄÁÒÔÎÙÊ " "×Ù×ÏÄ.\n" " -V, --version ÐÏËÁÚÁÔØ ÉÎÆÏÒÍÁÃÉÀ Ï ×ÅÒÓÉÉ É ×ÙÊÔÉ\n" #: states/lex.l:167 states/lex.l:173 msgid "error: EOF in comment" msgstr "ÏÛÉÂËÁ: EOF × ËÏÍÍÅÎÔÁÒÉÉ" #: states/lex.l:204 msgid "error: EOF in string constant" msgstr "ÏÛÉÂËÁ: EOF × ÓÔÒÏËÏ×ÏÊ ËÏÎÓÔÁÎÔÅ" #: states/lex.l:311 msgid "error: EOF in regular expression" msgstr "ÏÛÉÂËÁ: EOF × ÒÅÇÕÌÑÒÎÏÍ ×ÙÒÁÖÅÎÉÉ" #: states/main.c:197 #, fuzzy, c-format msgid "states for %s" msgstr "states ÄÌÑ GNU %s %s" #: states/main.c:252 #, c-format msgid "%s: malformed variable definition \"%s\"\n" msgstr "%s: ÐÅÒÅÍÅÎÎÁÑ \"%s\" ÏÐÒÅÄÅÌÅÎÁ ÎÅÐÒÁ×ÉÌØÎÏ\n" #: states/main.c:280 #, c-format msgid "%s: couldn't create output file \"%s\": %s\n" msgstr "%s: ÎÅ×ÏÚÍÏÖÎÏ ÓÏÚÄÁÔØ ×ÙÈÏÄÎÏÊ ÆÁÊÌ \"%s\": %s\n" #: states/main.c:311 #, c-format msgid "%s: unknown warning level `%s'\n" msgstr "%s: ÕÒÏ×ÅÎØ ÐÏÄÒÏÂÎÏÓÔÉ ÐÒÅÄÕÐÒÅÖÄÅÎÉÊ `%s' ÎÅÉÚ×ÅÓÔÅÎ\n" #: states/main.c:360 states/main.c:396 states/prims.c:1375 states/utils.c:227 #, c-format msgid "%s: out of memory\n" msgstr "%s: ÏÐÅÒÁÔÉ×ÎÁÑ ÐÁÍÑÔØ ÉÓÞÅÒÐÁÎÁ\n" #: states/main.c:421 #, c-format msgid "%s: couldn't open input file `%s': %s\n" msgstr "%s: ÎÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ ×ÈÏÄÎÏÊ ÆÁÊÌ `%s': %s\n" #: states/main.c:445 #, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "éÓÐÏÌØÚÏ×ÁÎÉÅ: %s [ëìàþ]... [æáêì]...\n" "áÒÇÕÍÅÎÔÙ, ÏÂÑÚÁÔÅÌØÎÙÅ ÄÌÑ ÄÌÉÎÎÙÈ ËÌÀÞÅÊ, ÏÂÑÚÁÔÅÌØÎÙ É ÄÌÑ ËÏÒÏÔËÉÈ.\n" #: states/main.c:449 #, fuzzy, c-format msgid "" " -D, --define=VAR=VAL define variable VAR to have value VAL\n" " -f, --file=NAME read state definitions from file NAME\n" " -h, --help print this help and exit\n" " -o, --output=NAME save output to file NAME\n" " -p, --path=PATH set the load path to PATH\n" " -s, --state=NAME start from state NAME\n" " -v, --verbose increase the program verbosity\n" " -V, --version print version number\n" " -W, --warning=LEVEL set the warning level to LEVEL\n" msgstr "" " -D, --define=ðåòåíåîîáñ=úîáþåîéå\n" " ÏÐÒÅÄÅÌÑÅÔ ðåòåíåîîõà É ÐÒÉÓ×ÁÉ×ÁÅÔ ÅÊ " "úîáþåîéå\n" " -f, --file=æáêì ÞÉÔÁÔØ ÏÐÒÅÄÅÌÅÎÉÑ ÓÏÓÔÏÑÎÉÊ ÉÚ ÚÁÄÁÎÎÏÇÏ " "æáêìá\n" " -h, --help ÐÏËÁÚÁÔØ ÜÔÕ ÓÐÒÁ×ËÕ É ×ÙÊÔÉ\n" " -o, --output=æáêì ×Ù×ÏÄÉÔØ × ÕËÁÚÁÎÎÙÊ æáêì\n" " -p, --path=ðõôø ÕÓÔÁÎÁ×ÌÉ×ÁÅÔ ÐÕÔØ ÐÏÉÓËÁ\n" " -s, --state=éíñ ÎÁÞÁÔØ Ó ÕËÁÚÁÎÎÏÇÏ ÓÏÓÔÏÑÎÉÑ\n" " -v, --verbose Õ×ÅÌÉÞÉ×ÁÅÔ ÐÏÄÒÏÂÎÏÓÔØ ÓÏÏÂÝÅÎÉÊ ÐÒÏÇÒÁÍÍÙ\n" " -V, --version ÐÏËÁÚÁÔØ ÉÎÆÏÒÍÁÃÉÀ Ï ×ÅÒÓÉÉ É ×ÙÊÔÉ\n" " -W, --warning=þéóìï ÚÁÄÁÅÔ ÓÔÅÐÅÎØ ÐÏÄÒÏÂÎÏÓÔÉ ÐÒÅÄÕÐÒÅÖÄÅÎÉÊ\n" #: states/prims.c:44 #, fuzzy, c-format msgid "%s:%d: %s: too few arguments\n" msgstr "%s:%d: %s: ÎÅÄÏÐÕÓÔÉÍÙÊ ÁÒÇÕÍÅÎÔ\n" #: states/prims.c:54 #, fuzzy, c-format msgid "%s:%d: %s: too many arguments\n" msgstr "%s:%d: %s: ÎÅÄÏÐÕÓÔÉÍÙÊ ÁÒÇÕÍÅÎÔ\n" #: states/prims.c:107 states/prims.c:127 states/prims.c:253 states/prims.c:426 #: states/prims.c:901 #, c-format msgid "%s:%d: %s: illegal argument type\n" msgstr "%s:%d: %s: ÎÅÄÏÐÕÓÔÉÍÙÊ ÔÉÐ ÁÒÇÕÍÅÎÔÁ\n" #: states/prims.c:468 #, c-format msgid "%s: panic: " msgstr "%s: Á×ÁÒÉÊÎÁÑ ÓÉÔÕÁÃÉÑ: " #: states/prims.c:502 #, c-format msgid "%s:%d: %s: malformed version string `%s'\n" msgstr "%s:%d: %s: ÎÅÐÒÁ×ÉÌØÎÁÑ ÚÁÐÉÓØ ×ÅÒÓÉÉ `%s'\n" #: states/prims.c:517 #, c-format msgid "" "%s: FATAL ERROR: States version %s or higher is required for this script\n" msgstr "" "%s: ëòéôéþåóëáñ ïûéâëá: ÄÌÑ ÜÔÏÊ ÐÒÏÇÒÁÍÍÙ ÎÅÏÂÈÏÄÉÍ states ×ÅÒÓÉÉ %s ÉÌÉ " "×ÙÛÅ\n" #: states/prims.c:608 states/prims.c:1274 #, c-format msgid "%s:%d: %s: start offset is bigger than end offset\n" msgstr "%s:%d: %s: ÎÁÞÁÌØÎÏÅ ÓÍÅÝÅÎÉÅ ÂÏÌØÛÅ ËÏÎÅÞÎÏÇÏ\n" #: states/prims.c:617 states/prims.c:633 states/prims.c:1280 #, c-format msgid "%s:%d: %s: offset out of range\n" msgstr "%s:%d: %s: ÓÍÅÝÅÎÉÅ ×ÎÅ ÄÏÐÕÓÔÉÍÙÈ ÐÒÅÄÅÌÏ×\n" #: states/prims.c:651 #, c-format msgid "%s:%d: %s: illegal argument\n" msgstr "%s:%d: %s: ÎÅÄÏÐÕÓÔÉÍÙÊ ÁÒÇÕÍÅÎÔ\n" #: states/prims.c:698 #, c-format msgid "%s:%d: %s: illegal regexp character syntax: %c\n" msgstr "%s:%d: %s: ÎÅÄÏÐÕÓÔÉÍÙÊ ÓÉÎÔÁËÓÉÓ ÚÎÁËÁ × ÒÅÇÕÌÑÒÎÏÍ ×ÙÒÁÖÅÎÉÉ: %c\n" #: states/prims.c:913 #, c-format msgid "%s:%d: %s: couldn't define state `%s'\n" msgstr "%s:%d: %s: ÎÅ×ÏÚÍÏÖÎÏ ÏÐÒÅÄÅÌÉÔØ ÓÏÓÔÏÑÎÉÅ `%s'\n" #: states/prims.c:1010 #, c-format msgid "%s: primitive `%s': too few arguments for format\n" msgstr "%s: ÐÒÉÍÉÔÉ× `%s': ÎÅÄÏÓÔÁÔÏÞÎÏ ÁÒÇÕÍÅÎÔÏ×\n" #: states/prims.c:1038 #, c-format msgid "%s:%d: %s: argument %d doesn't match format\n" msgstr "%s:%d: %s: ÁÒÇÕÍÅÎÔ %d ÎÅ ÓÏÏÔ×ÅÔÓÔ×ÕÅÔ ÆÏÒÍÁÔÕ\n" #: states/prims.c:1078 #, c-format msgid "%s:%d: %s: no extra options can be specified for %%s\n" msgstr "%s:%d: %s: ÄÌÑ %%s ÎÅÌØÚÑ ÚÁÄÁÔØ ÄÏÐÏÌÎÉÔÅÌØÎÙÅ ÁÒÇÕÍÅÎÔÙ\n" #: states/prims.c:1087 #, c-format msgid "%s:%d: %s: illegal type specifier `%c'\n" msgstr "%s:%d: %s: ÔÉÐ `%c' ÎÅÄÏÐÕÓÔÉÍ\n" #: states/process.c:115 #, c-format msgid "%s: undefined state `%s'\n" msgstr "%s: ÓÏÓÔÏÑÎÉÅ `%s' ÎÅÏÐÒÅÄÅÌÅÎÏ\n" #: states/process.c:196 #, c-format msgid "%s: error: undefined variable `%s'\n" msgstr "%s: ÏÛÉÂËÁ: ÐÅÒÅÍÅÎÎÁÑ `%s' ÎÅÏÐÒÅÄÅÌÅÎÁ\n" #: states/process.c:290 #, c-format msgid "%s: undefined super state `%s'\n" msgstr "%s: ÓÕÐÅÒ-ÓÏÓÔÏÑÎÉÅ `%s' ÎÅÏÐÒÅÄÅÌÅÎÏ\n" #: states/utils.c:260 #, c-format msgid "%s:%d: couldn't compile regular expression \"%s\": %s\n" msgstr "%s:%d: ÎÅ×ÏÚÍÏÖÎÏ ÓËÏÍÐÉÌÉÒÏ×ÁÔØ ÒÅÇÕÌÑÒÎÏÅ ×ÙÒÁÖÅÎÉÅ \"%s\": %s\n" #: states/utils.c:449 states/utils.c:477 #, c-format msgid "%s: ouf of memory" msgstr "%s: ÏÐÅÒÁÔÉ×ÎÁÑ ÐÁÍÑÔØ ÉÓÞÅÒÐÁÎÁ" #: states/utils.c:454 #, c-format msgid "warning: redefining state `%s'" msgstr "ÐÒÅÄÕÐÒÅÖÄÅÎÉÅ: ÐÅÒÅÏÐÒÅÄÅÌÅÎÉÅ ÓÏÓÔÏÑÎÉÑ `%s'" #: states/utils.c:481 #, c-format msgid "%s:%d: warning: redefining subroutine `%s'\n" msgstr "%s:%d: ÐÒÅÄÕÐÒÅÖÄÅÎÉÅ: ÐÅÒÅÏÐÒÅÄÅÌÅÎÉÅ ÐÏÄÐÒÏÇÒÁÍÍÙ `%s'\n" #: states/utils.c:578 #, c-format msgid "%s:%d: error: undefined variable `%s'\n" msgstr "%s:%d: ÏÛÉÂËÁ: ÐÅÒÅÍÅÎÎÁÑ `%s' ÎÅÏÐÒÅÄÅÌÅÎÁ\n" #: states/utils.c:616 #, c-format msgid "%s:%d: error: couldn't set variable `%s'\n" msgstr "%s:%d: ÏÛÉÂËÁ: ÎÅ×ÏÚÍÏÖÎÏ ÕÓÔÁÎÏ×ÉÔØ ÚÎÁÞÅÎÉÅ ÐÅÒÅÍÅÎÎÏÊ `%s'\n" #: states/utils.c:767 #, c-format msgid "%s:%d: error: expression between illegal types\n" msgstr "%s:%d: ÏÛÉÂËÁ: ÎÅÄÏÐÕÓÔÉÍÙÅ ÔÉÐÙ ÁÒÇÕÍÅÎÔÏ× ×ÙÒÁÖÅÎÉÑ\n" #: states/utils.c:865 #, c-format msgid "%s:%d: error: too few arguments for subroutine\n" msgstr "%s:%d: ÏÛÉÂËÁ: ÎÅÄÏÓÔÁÔÏÞÎÏ ÁÒÇÕÍÅÎÔÏ× ÄÌÑ ÐÏÄÐÒÏÇÒÁÍÍÙ\n" #: states/utils.c:872 #, c-format msgid "%s:%d: error: too many arguments for subroutine\n" msgstr "%s:%d: ÏÛÉÂËÁ: ÓÌÉÛËÏÍ ÍÎÏÇÏ ÁÒÇÕÍÅÎÔÏ× ÄÌÑ ÐÏÄÐÒÏÇÒÁÍÍÙ\n" #: states/utils.c:926 #, c-format msgid "%s:%d: error: undefined procedure `%s'\n" msgstr "%s:%d: ÏÛÉÂËÁ: ÐÒÏÃÅÄÕÒÁ `%s' ÎÅ ÏÐÒÅÄÅÌÅÎÁ\n" #: states/utils.c:1018 #, c-format msgid "%s:%d: error: illegal lvalue for assignment\n" msgstr "%s:%d: ÏÛÉÂËÁ: ÎÅÄÏÐÕÓÔÉÍÁÑ ÌÅ×ÁÑ ÞÁÓÔØ ÏÐÅÒÁÔÏÒÁ ÐÒÉÓ×ÁÉ×ÁÎÉÑ\n" #: states/utils.c:1026 states/utils.c:1110 #, c-format msgid "%s:%d: error: array reference index is not integer\n" msgstr "%s:%d: ÏÛÉÂËÁ: ÉÎÄÅËÓ ÍÁÓÓÉ×Á ÎÅ Ñ×ÌÑÅÔÓÑ ÃÅÌÙÍ ÞÉÓÌÏÍ\n" #: states/utils.c:1032 #, c-format msgid "%s:%d: error: negative array reference index\n" msgstr "%s:%d: ÏÛÉÂËÁ: ÏÔÒÉÃÁÔÅÌØÎÙÊ ÉÎÄÅËÓ ÍÁÓÓÉ×Á\n" #: states/utils.c:1083 #, c-format msgid "%s:%d: error: illegal rvalue for string assignment\n" msgstr "" "%s:%d: ÏÛÉÂËÁ: ÎÅÄÏÐÕÓÔÉÍÁÑ ÐÒÁ×ÁÑ ÞÁÓÔØ ÏÐÅÒÁÔÏÒÁ ÐÒÉÓ×ÁÉ×ÁÎÉÑ ÓÔÒÏË\n" #: states/utils.c:1102 #, c-format msgid "%s:%d: error: illegal type for array reference\n" msgstr "%s%d: ÏÛÉÂËÁ: ÎÅÄÏÐÕÓÔÉÍÙÊ ÔÉÐ ÄÌÑ ÓÓÙÌËÉ ÐÏ ÉÎÄÅËÓÕ\n" #: states/utils.c:1119 #, fuzzy, c-format msgid "%s:%d: error: array reference index out of range\n" msgstr "%s%d: ÏÛÉÂËÁ: ÉÎÄÅËÓ ÍÁÓÓÉ×Á ×ÎÅ ÄÏÐÕÓÔÉÍÙÈ ÐÒÅÄÅÌÏ×\n" #: states/utils.c:1345 #, c-format msgid "%s: couldn't open definition file `%s': %s\n" msgstr "%s: ÎÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÊ ÆÁÊÌ `%s': %s\n" #: states/utils.c:1401 #, c-format msgid "%s: autoloading `%s' from `%s'\n" msgstr "%s: Á×ÔÏÚÁÇÒÕÚËÁ `%s' ÉÚ `%s'\n" #~ msgid "library directory." #~ msgstr "ËÁÔÁÌÏÇ, ÇÄÅ Õ ×ÁÓ ÈÒÁÎÑÔÓÑ ÂÉÂÌÉÏÔÅËÉ." #~ msgid "[ %d pages * %d copy ]" #~ msgstr "[ %d ÓÔÒÁÎÉà * %d ËÏÐÉÊ ]" #~ msgid "epsf: couldn't open pipe to command \"%s\": %s\n" #~ msgstr "epsf: ÎÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ ËÁÎÁÌ ÄÌÑ ËÏÍÁÎÄÙ \"%s\": %s\n" enscript-1.6.5.90/po/hr.po0000644000175000017500000012107211606344231012114 00000000000000# Enscript translation. # Copyright (C) 2002 Free Software Foundation, Inc. # Hrvoje Niksic , 2002. # msgid "" msgstr "" "Project-Id-Version: enscript 1.6.3\n" "Report-Msgid-Bugs-To: bug-enscript@gnu.org\n" "POT-Creation-Date: 2011-07-10 16:43+0100\n" "PO-Revision-Date: 2003-10-12 18:29+0200\n" "Last-Translator: Hrvoje Niksic \n" "Language-Team: Croatian \n" "Language: hr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=iso-8859-2\n" "Content-Transfer-Encoding: 8bit\n" #: compat/getopt.c:628 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "%s: opcija `%s' je dvosmislena\n" #: compat/getopt.c:652 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "%s: uz opciju `--%s' ne ide argument\n" #: compat/getopt.c:657 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "%s: opcija `%c%s' ne dopu¹ta argument\n" #: compat/getopt.c:674 compat/getopt.c:847 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "%s: opcija `%s' tra¾i argument\n" #: compat/getopt.c:703 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "%s: nepoznata opcija `--%s'\n" #: compat/getopt.c:707 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "%s: nepoznata opcija `%c%s'\n" #: compat/getopt.c:733 #, c-format msgid "%s: illegal option -- %c\n" msgstr "%s: nedopu¹tena opcija -- %c\n" #: compat/getopt.c:736 #, c-format msgid "%s: invalid option -- %c\n" msgstr "%s: neispravna opcija -- %c\n" #: compat/getopt.c:766 compat/getopt.c:896 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: opcija tra¾i argument -- %c\n" #: compat/getopt.c:813 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "%s: opcija `-W %s' je vi¹eznaèna\n" #: compat/getopt.c:831 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s: opcija `-W %s' ne dopu¹ta argument\n" #: compat/xalloc.c:70 #, c-format msgid "xmalloc(): couldn't allocate %d bytes\n" msgstr "xmalloc(): nije uspio alocirati %d bajtova\n" #: compat/xalloc.c:88 #, c-format msgid "xcalloc(): couldn't allocate %d bytes\n" msgstr "xcalloc(): nije uspio alocirati %d bajtova\n" #: compat/xalloc.c:109 #, c-format msgid "xrealloc(): couldn't reallocate %d bytes\n" msgstr "xrealloc(): nije uspio realocirati %d bajtova\n" #: compat/regex.c:996 msgid "Success" msgstr "Uspjeh" #: compat/regex.c:997 msgid "No match" msgstr "Nema poklapanja" #: compat/regex.c:998 msgid "Invalid regular expression" msgstr "Neispravan regularni izraz" #: compat/regex.c:999 msgid "Invalid collation character" msgstr "Neispravan kolacijski znak" #: compat/regex.c:1000 msgid "Invalid character class name" msgstr "Neispravno ime znakovne klase" #: compat/regex.c:1001 msgid "Trailing backslash" msgstr "Obrnuta kosa crta na kraju" #: compat/regex.c:1002 msgid "Invalid back reference" msgstr "Neispravna povratna referenca" #: compat/regex.c:1003 msgid "Unmatched [ or [^" msgstr "Nesparen [ ili [^" #: compat/regex.c:1004 msgid "Unmatched ( or \\(" msgstr "Nesparena ( ili \\(" #: compat/regex.c:1005 msgid "Unmatched \\{" msgstr "Nesparena \\{" #: compat/regex.c:1006 msgid "Invalid content of \\{\\}" msgstr "Neispravan sadr¾aj \\{\\}" #: compat/regex.c:1007 msgid "Invalid range end" msgstr "Neispravan kraj raspona" #: compat/regex.c:1008 msgid "Memory exhausted" msgstr "Memorija iscrpljena" #: compat/regex.c:1009 msgid "Invalid preceding regular expression" msgstr "Neispravan prethodni regularni izraz" #: compat/regex.c:1010 msgid "Premature end of regular expression" msgstr "Prerani kraj regularnog izraza" #: compat/regex.c:1011 msgid "Regular expression too big" msgstr "Regularni izraz prevelik" #: compat/regex.c:1012 msgid "Unmatched ) or \\)" msgstr "Nesparena ) ili \\)" #: compat/regex.c:5458 msgid "No previous regular expression" msgstr "Nedostaje prethodni regularni izraz" #: src/main.c:949 #, no-c-format msgid "$3v $-40N $3% pages $4L lines $E $C" msgstr "$3v $-40N $3% stranica $4L redova $E $C" #: src/main.c:979 #, c-format msgid "couldn't get passwd entry for uid=%d: %s" msgstr "nisam uspio dobiti passwd entry za uid=%d: %s" #: src/main.c:1071 #, c-format msgid "couldn't read config file \"%s/%s\": %s" msgstr "nisam uspio otvoriti konfiguracijski spis \"%s/%s\": %s" #: src/main.c:1075 msgid "I did also try the following directories:" msgstr "Takoðer sam isprobao sljedeæe direktorije:" #: src/main.c:1076 src/main.c:1077 src/main.c:1078 #, c-format msgid "\t%s" msgstr "\t%s" #: src/main.c:1079 msgid "\t../lib" msgstr "\t../lib" #: src/main.c:1080 msgid "\t../../lib" msgstr "\t../../lib" #: src/main.c:1082 msgid "This is probably an installation error. Please, try to rebuild:" msgstr "" "Vjerojatno se radi o instalacijskoj gre¹ki. Molimo, poku¹ajte ponovo " "izgraditi:" #: src/main.c:1083 msgid "\tmake distclean" msgstr "\tmake distclean" #: src/main.c:1084 msgid "\t./configure --prefix=PREFIX" msgstr "\t./configure --prefix=PREFIX" #: src/main.c:1085 msgid "\tmake" msgstr "\tmake" #: src/main.c:1086 msgid "\tmake check" msgstr "\tmake check" #: src/main.c:1087 msgid "\tmake install" msgstr "\tmake install" #: src/main.c:1088 #, fuzzy msgid "" "or set the environment variable `ENSCRIPT_LIBRARY' to point to your library " "directory." msgstr "" "ili postavite environment varijablu `ENSCRIPT_LIBRARY' tako da pokazuje na " "va¹" #: src/main.c:1161 #, c-format msgid "unknown encoding: %s" msgstr "nepoznat enkoding: %s" #: src/main.c:1180 #, c-format msgid "couldn't open AFM library: %s" msgstr "nisam uspio otvoriti AFM biblioteku: %s" #: src/main.c:1209 #, c-format msgid "" "known media:\n" "name width\theight\tllx\tlly\turx\tury\n" "------------------------------------------------------------\n" msgstr "" "poznati mediji\n" "ime sirina\tduljina\tllx\tlly\turx\tury\n" #: src/main.c:1228 #, c-format msgid "do not know anything about media \"%s\"" msgstr "ne znam ni¹ta o mediju \"%s\"" #: src/main.c:1272 #, c-format msgid "" "set new marginals for media `%s' (%dx%d): llx=%d, lly=%d, urx=%d, ury=%d\n" msgstr "" "postavi nove rubove za medij `%s' (%dx%d): llx=%d, lly=%d, urx=%d, ury=%d\n" #: src/main.c:1283 #, c-format msgid "illegal page label format \"%s\"" msgstr "nedopu¹ten format labele stranice \"%s\"" #: src/main.c:1295 #, c-format msgid "illegal non-printable format \"%s\"" msgstr "nedopu¹ten neispisiv format \"%s\"" #: src/main.c:1309 #, c-format msgid "illegal style for wrapped line marker: \"%s\"" msgstr "nedopu¹ten stil za oznaku prelomljenog reda: \"%s\"" #: src/main.c:1319 #, c-format msgid "illegal N-up argument: %d" msgstr "nedopu¹ten N-up argument: %d" #: src/main.c:1324 #, c-format msgid "N-up argument must be power of 2: %d" msgstr "N-up argument mora biti potencija broja 2: %d" #: src/main.c:1401 #, c-format msgid "malformed underlay position: %s" msgstr "izoblièena pozicija underlaya: %s" #: src/main.c:1424 #, c-format msgid "illegal underlay style: %s" msgstr "nedopu¹ten stil underlaya: %s" #: src/main.c:1451 #, c-format msgid "" "Highlighting is supported for the following languages and file formats:\n" "\n" msgstr "" "Osvjetljavanje je podr¾ano za sljedeæe jezike i formate spisa:\n" "\n" #: src/main.c:1632 #, c-format msgid "couldn't create temporary toc file: %s" msgstr "nisam uspio stvoriti privremeni spis sa sadr¾ajem: %s" #: src/main.c:1679 #, c-format msgid "couldn't stat input file \"%s\": %s" msgstr "ne mogu statati ulazni spis \"%s\": %s" #: src/main.c:1699 #, c-format msgid "couldn't rewind toc file: %s" msgstr "ne mogu prevrtiti spis sa sadr¾ajem na poèetak: %s" #: src/main.c:1705 msgid "Table of Contents" msgstr "Sadr¾aj" #: src/main.c:1731 msgid "no output generated\n" msgstr "nikakav izlaza nije stvoren\n" #: src/main.c:1736 #, c-format msgid "output sent to %s\n" msgstr "izlaz poslan na %s\n" #: src/main.c:1737 src/main.c:1768 msgid "printer" msgstr "pisaè" #: src/main.c:1739 #, c-format msgid "output left in %s\n" msgstr "izlaz ostao u %s\n" #: src/main.c:1760 #, c-format msgid "%d page" msgid_plural "%d pages" msgstr[0] "" msgstr[1] "" #: src/main.c:1762 #, c-format msgid "%d copy" msgid_plural "%d copies" msgstr[0] "" msgstr[1] "" #: src/main.c:1767 #, c-format msgid " sent to %s\n" msgstr " poslano na %s\n" #: src/main.c:1770 #, c-format msgid " left in %s\n" msgstr " ostalo u %s\n" #: src/main.c:1776 #, fuzzy, c-format msgid "%d line was %s\n" msgid_plural "%d lines were %s\n" msgstr[0] "%d redova su %s\n" msgstr[1] "%d redova su %s\n" #: src/main.c:1781 msgid "truncated" msgstr "odsjeèeni" #: src/main.c:1781 msgid "wrapped" msgstr "prelomljeni" #: src/main.c:1788 #, fuzzy, c-format msgid "%d character was missing\n" msgid_plural "%d characters were missing\n" msgstr[0] "%d znakova je nedostajalo\n" msgstr[1] "%d znakova je nedostajalo\n" #: src/main.c:1794 msgid "missing character codes (decimal):\n" msgstr "kodovi znakova koji nedostaju (decimalni):\n" #: src/main.c:1803 #, fuzzy, c-format msgid "%d non-printable character\n" msgid_plural "%d non-printable characters\n" msgstr[0] "%d neispisivih znakova\n" msgstr[1] "%d neispisivih znakova\n" #: src/main.c:1810 msgid "non-printable character codes (decimal):\n" msgstr "kodovi neispisivih znakova (decimalno):\n" #: src/main.c:1859 #, c-format msgid "couldn't open printer `%s': %s" msgstr "ne mogu otvoriti pisaè `%s': %s" #: src/main.c:1868 #, c-format msgid "couldn't create output file \"%s\": %s" msgstr "ne mogu stvoriti izlazni spis \"%s\": %s" #: src/main.c:1885 #, c-format msgid "couldn't close output file \"%s\": %s" msgstr "nisam uspio zatvoriti izlazni spis \"%s\": %s" #: src/main.c:1943 #, c-format msgid "" "syntax error in option string %s=\"%s\":\n" "missing end of quotation: %c" msgstr "" "sintaksna gre¹ka u opcijskom nizu %s=\"%s\":\n" "nedostaje kraj citata: %c" #: src/main.c:1975 #, c-format msgid "" "warning: didn't process following options from environment variable %s:\n" msgstr "" "upozorenje: nisam procesirao sljedeæe opcije iz okoli¹ne varijable %s:\n" #: src/main.c:1979 #, c-format msgid " option %d = \"%s\"\n" msgstr " opcija %d = \"%s\"\n" #: src/main.c:2025 msgid "number of columns must be larger than zero" msgstr "broj stupaca mora biti veæi od nule" #: src/main.c:2083 msgid "file alignment must be larger than zero" msgstr "poravnanje spisa mora biti veæe od nule" #: src/main.c:2138 src/main.c:2144 src/main.c:2355 src/util.c:416 #, c-format msgid "malformed font spec: %s" msgstr "izoblièena naznaka fonta: %s" #: src/main.c:2160 #, c-format msgid "couldn't find header definition file \"%s.hdr\"" msgstr "nisam na¹ao definiciju spisa s headerima \"%s.hdr\"" #: src/main.c:2204 #, c-format msgid "must print at least one line per each page: %s" msgstr "moram ispisati barem jedan redak po stranici: %s" #: src/main.c:2224 #, c-format msgid "%s: illegal newline character specifier: '%s': expected 'n' or 'r'\n" msgstr "%s: nedopu¹tena oznaka novog reda: '%s': oèekivao 'n' ili 'r'\n" #: src/main.c:2313 #, c-format msgid "malformed argument `%s' for option -W, --option: no comma found" msgstr "izoblièen argument `%s' opciji -W, --option: nije pronaðen zarez" #: src/main.c:2318 #, c-format msgid "helper application specification must be single character: %s" msgstr "specifikacija pomoæne aplikacije mora se sastojati od jednog znaka: %s" #: src/main.c:2414 msgid "slice must be greater than zero" msgstr "odsjeèak mora biti veæi od nule" #: src/main.c:2495 states/main.c:318 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Poku¹aj `%s --help' za vi¹e informacija.\n" #: src/main.c:2515 #, fuzzy, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" "Mandatory arguments to long options are mandatory for short options too.\n" " -# an alias for option -n, --copies\n" " -1 same as --columns=1\n" " -2 same as --columns=2\n" " --columns=NUM specify the number of columns per page\n" " -a, --pages=PAGES specify which pages are printed\n" " -A, --file-align=ALIGN align separate input files to ALIGN\n" " -b, --header=HEADER set page header\n" " -B, --no-header no page headers\n" " -c, --truncate-lines cut long lines (default is to wrap)\n" " -C[START], --line-numbers[=START]\n" " precede each line with its line number\n" " -d an alias for option --printer\n" " -D, --setpagedevice=KEY[:VALUE]\n" " pass a page device definition to output\n" " -e[CHAR], --escapes[=CHAR] enable special escape interpretation\n" msgstr "" "Uporaba: %s [OPCIJA]... [SPIS]...\n" "Ako dugaèka opcija zahtijeva argument, isto vrijedi i za kratku.\n" " -# alias za -n, --copies\n" " -1 isto ¹to i --columns=1\n" " -2 isto ¹to i --columns=2\n" " --columns=BROJ naznaèi BROJ stupaca po stranici\n" " -a, --pages=STRANICE navedi koje stranice treba ispisati\n" " -A, --file-align=ALIGN poravnaj odvojene ulazne spise na ALIGN\n" " -b, --header=ZAGLAVLJE postavi zaglavlje stranice\n" " -B, --no-header izostavi zaglavlja na stranici\n" " -c, --truncate-lines odsijeci duge linije (podrazumijeva se " "lomljenje)\n" " -C, --line-numbers[=POÈETAK]\n" " ispi¹i redni broj ispred svakog retka\n" " -d alias za opciju --printer\n" " -D, --setpagedevice=KEY[:VALUE]\n" " prenesi definiciju straniènog ureðaja na izlaz\n" " -e, --escapes[=CHAR] omoguæi interpretaciju posebnih escapeova\n" #: src/main.c:2535 #, fuzzy, c-format msgid " -E[LANG], --highlight[=LANG] highlight source code\n" msgstr " -E, --highlight[=JEZIK] osvijetli (uljep¹aj) izvorni kod\n" #: src/main.c:2538 #, fuzzy, c-format msgid "" " -f, --font=NAME use font NAME for body text\n" " -F, --header-font=NAME use font NAME for header texts\n" " -g, --print-anyway nothing (compatibility option)\n" " -G same as --fancy-header\n" " --fancy-header[=NAME] select fancy page header\n" " -h, --no-job-header suppress the job header page\n" " -H[NUM], --highlight-bars[=NUM] specify how high highlight bars are\n" " -i, --indent=NUM set line indent to NUM characters\n" " -I, --filter=CMD read input files through input filter CMD\n" " -j, --borders print borders around columns\n" " -J, an alias for option --title\n" " -k, --page-prefeed enable page prefeed\n" " -K, --no-page-prefeed disable page prefeed\n" " -l, --lineprinter simulate lineprinter, this is an alias for:\n" " --lines-per-page=66, --no-header, --" "portrait,\n" " --columns=1\n" msgstr "" " -f, --font=IME koristi font s IMENOM za tekst tijela\n" " -F, --header-font=IME koristi font s IMENOM za tekst zaglavlja\n" " -g, --print-anyway ni¹ta (opcija za kompatibilnost)\n" " -G isto ¹to i --fancy-header\n" " --fancy-header[=IME] izaberi lijepo zaglavlje stranice\n" " -h, --no-job-header izostavi stranicu sa zaglavljem posla\n" " -H, --highlight-bars=BROJ naznaèi visinu osvijetljenih pruga\n" " -i, --indent=BROJ postavi indentaciju redova na BROJ znakova\n" " -I, --filter=NAREDBA èitaj ulazne spise kroz filter NAREDBU\n" " -j, --borders ispi¹i rubove oko stupaca\n" " -J, alias za opciju --title\n" " -k, --page-prefeed omoguæi page prefeed\n" " -K, --no-page-prefeed onemoguæi page prefeed\n" " -l, --lineprinter simuliraj linijski pisaè, alias za:\n" " --lines-per-page=66, --no-header, --" "portrait,\n" " --columns=1\n" #: src/main.c:2556 #, c-format msgid "" " -L, --lines-per-page=NUM specify how many lines are printed on each " "page\n" " -m, --mail send mail upon completion\n" " -M, --media=NAME use output media NAME\n" " -n, --copies=NUM print NUM copies of each page\n" " -N, --newline=NL select the newline character. Possible\n" " values for NL are: n (`\\n') and r (`\\r').\n" " -o an alias for option --output\n" " -O, --missing-characters list missing characters\n" " -p, --output=FILE leave output to file FILE. If FILE is `-',\n" " leave output to stdout.\n" " -P, --printer=NAME print output to printer NAME\n" " -q, --quiet, --silent be really quiet\n" " -r, --landscape print in landscape mode\n" " -R, --portrait print in portrait mode\n" msgstr "" " -L, --lines-per-page=BROJ naznaèi koliko redaka se ispisuje po stranici\n" " -m, --mail po¹alji poruku po¹tom po zavr¹etku\n" " -M, --media=IME upotrijebi izlazni medij IME\n" " -n, --copies=BROJ ispi¹i BROJ kopija svake stranice\n" " -N, --newline=NL izaberi znak za novi red. Moguæe vrijednosti\n" " za NL su: n (`\\\\n') i r (`\\\\r').\n" " -o alias za opciju --output\n" " -O, --missing-characters ispi¹i znakove koji nedostaju\n" " -p, --output=SPIS ostavi izlaz u SPISU. Ako je SPIS `-', ostavi\n" " izlaz na standardnom izlazu.\n" " -P, --printer=IME ispi¹i izlaz na pisaè IME\n" " -q, --quiet, --silent budi istinski tih\n" " -r, --landscape ispisuj u \"landscape\" modu\n" " -R, --portrait ispisuj u \"portrait\" modu\n" #: src/main.c:2572 #, fuzzy, c-format msgid "" " -s, --baselineskip=NUM set baselineskip to NUM\n" " -S, --statusdict=KEY[:VALUE]\n" " pass a statusdict definition to the output\n" " -t, --title=TITLE set banner page's job title to TITLE. Option\n" " sets also the name of the input file stdin.\n" " -T, --tabsize=NUM set tabulator size to NUM\n" " -u[TEXT], --underlay[=TEXT] print TEXT under every page\n" " -U, --nup=NUM print NUM logical pages on each output page\n" " -v, --verbose tell what we are doing\n" " -V, --version print version number\n" " -w, --language=LANG set output language to LANG\n" " -W, --options=APP,OPTION pass option OPTION to helper application APP\n" " -X, --encoding=NAME use input encoding NAME\n" " -z, --no-formfeed do not interpret form feed characters\n" " -Z, --pass-through pass through PostScript and PCL files\n" " without any modifications\n" msgstr "" " -s, --baselineskip=BROJ postavi baselineskip na BROJ\n" " -S, --statusdict=KEY[:VALUE]\n" " prenesi statusdict definiciju na izlaz\n" " -t, --title=NASLOV postavi naslov stranice s bannerom na NASLOV.\n" " Opcija takoðer postavlja ime ulaznog spisa " "stdin.\n" " -T, --tabsize=BROJ postavi velièinu tabulatora na BROJ\n" " -u, --underlay[=TEKST] ispi¹i TEKST ispod svake stranice\n" " -U, --nup=BROJ ispi¹i BROJ logièkih stranica na svakoj " "izlaznoj\n" " -v, --verbose ispisuj ¹to se dogaða\n" " -V, --version ispi¹i broj broj verzije\n" " -w, --language=JEZIK postavi izlazni jezik na JEZIK\n" " -W, --options=PROG,OPCIJE proslijedi OPCIJE pomoænom programu PROG\n" " -X, --encoding=IME koristi ulazni encoding IMENA\n" " -z, --no-formfeed ne interpretiraj form feed (znak za novu " "stranicu)\n" " -Z, --pass-through propusti PostScript i PCL spise bez ikakvih " "izmjena\n" #: src/main.c:2590 #, c-format msgid "" "Long-only options:\n" " --color[=bool] create color outputs with states\n" " --continuous-page-numbers count page numbers across input files. Don't\n" " restart numbering at beginning of each file.\n" " --download-font=NAME download font NAME\n" " --extended-return-values enable extended return values\n" " --filter-stdin=NAME specify how stdin is shown to the input filter\n" " --footer=FOOTER set page footer\n" " --h-column-height=HEIGHT set the horizontal column height to HEIGHT\n" " --help print this help and exit\n" msgstr "" "Samo duge opcije:\n" " --color[=bool] stvori izlaz u boji sa stanjima\n" " --continuous-page-numbers broji stranice preko granice ulaznih spisa. " "Nemoj\n" " brojati ispoèetka na poèetku svakog spisa.\n" " --download-font=IME s mre¾e skini font IME\n" " --extended-return-values ukljuèi pro¹irene izlazne vrijednosti\n" " --filter-stdin=IME naznaèi kako se stdin prikazuje ulaznom filtru\n" " --footer=FOOTER postavi footer na stranici\n" " --h-column-height=VISINA postavi visinu vodoravnog stupca na VISINU\n" " --help ispi¹i ovu poruku i izaði\n" #: src/main.c:2601 #, c-format msgid "" " --help-highlight describe all supported --highlight languages\n" " and file formats\n" " --highlight-bar-gray=NUM print highlight bars with gray NUM (0 - 1)\n" " --list-media list names of all known media\n" " --margins=LEFT:RIGHT:TOP:BOTTOM\n" " adjust page marginals\n" " --mark-wrapped-lines[STYLE]\n" " mark wrapped lines in the output with STYLE\n" " --non-printable-format=FMT specify how non-printable chars are printed\n" msgstr "" " --help-highlight opi¹i sve jezike i formate datoteka koje " "podr¾ava\n" " opcija --highlight\n" " --highlight-bar-gray=BROJ ispisuj osvijetljene pruge sa svom BROJA (0 - " "1)\n" " --list-media ispi¹i nazive svih poznatih medija\n" " --margins=LEFT:RIGHT:TOP:BOTTOM\n" " postavi rubove stranice\n" " --mark-wrapped-lines[STIL] na izlazu oznaèi prelomljene retke STILOM\n" " --non-printable-format=FMT naznaèi kako se ispisuju neispisivi znakovi\n" #: src/main.c:2612 #, c-format msgid "" " --nup-columnwise layout pages in the N-up printing columnwise\n" " --nup-xpad=NUM set the page x-padding of N-up printing to NUM\n" " --nup-ypad=NUM set the page y-padding of N-up printing to NUM\n" " --page-label-format=FMT set page label format to FMT\n" " --ps-level=LEVEL set the PostScript language level that " "enscript\n" " should use\n" " --printer-options=OPTIONS pass extra options to the printer command\n" " --rotate-even-pages rotate even-numbered pages 180 degrees\n" msgstr "" " --nup-columnwise preslo¾i stranice u N-up ispisu po stupcima\n" " --nup-xpad=BROJ postavi stranièni x-padding za N-up ispis na " "BROJ\n" " --nup-ypad=BROJ postavi stranièni y-padding za N-up ispis na " "BROJ\n" " --page-label-format=FMT postavi format labele stranice na FMT\n" " --ps-level=RAZINA postavi razinu jezika PostScript koji enscript\n" " treba koristiti\n" " --printer-options=OPCIJE propusti dodatne opcije naredbi za ispis\n" " --rotate-even-pages zarotiraj parne stranice za 180 stupnjeva\n" #: src/main.c:2622 #, c-format msgid "" " --slice=NUM print vertical slice NUM\n" " --style=STYLE use highlight style STYLE\n" " --swap-even-page-margins swap left and right side margins for each even\n" " numbered page\n" " --toc print table of contents\n" " --ul-angle=ANGLE set underlay text's angle to ANGLE\n" " --ul-font=NAME print underlays with font NAME\n" " --ul-gray=NUM print underlays with gray value NUM\n" " --ul-position=POS set underlay's starting position to POS\n" " --ul-style=STYLE print underlays with style STYLE\n" " --word-wrap wrap long lines from word boundaries\n" msgstr "" " --slice=BROJ ispi¹i vertikalni isjeèak BROJ\n" " --style=STIL koristi stil osvjetljavanja STIL\n" " --swap-even-page-margins zamijeni lijevi i desni rub na svakoj\n" " parnoj stranici\n" " --toc ispi¹i sadr¾aj\n" " --ul-angle=KUT postavi kut underlay teksta na KUT\n" " --ul-font=IME ispi¹i underlaye s fontom imena IME\n" " --ul-gray=BROJ ispi¹i underlaye sa sivom bojom vrijednosti " "BROJ\n" " --ul-position=POLO®AJ postavi poèetni polo¾aj underlaya na POLO®AJ\n" " --ul-style=STIL ispisuj underlaye sa stilom STIL\n" " --word-wrap prelomi duge linije na granicama rijeèi\n" #: src/main.c:2636 #, fuzzy, c-format msgid "" "\n" "Report bugs to <%s>.\n" msgstr "" "\n" "Prijavite gre¹ke na adresu mtr@iki.fi.\n" #: src/psgen.c:331 #, c-format msgid "couldn't find prolog \"%s\": %s\n" msgstr "ne mogu naæi prolor \"%s\": %s\n" #: src/psgen.c:339 #, c-format msgid "couldn't find encoding file \"%s.enc\": %s\n" msgstr "ne mogu naæi spis s encodingom \"%s.enc\": %s\n" #: src/psgen.c:471 #, c-format msgid "couldn't find header definition file \"%s.hdr\": %s\n" msgstr "ne mogu naæi spis s definicijom zaglavlja \"%s.hdr\": %s\n" #: src/psgen.c:615 #, c-format msgid "processing file \"%s\"...\n" msgstr "obraðujem spis \"%s\"...\n" #: src/psgen.c:913 #, c-format msgid "EPS file \"%s\" is too large for page\n" msgstr "EPS spis \"%s\" je prevelik za stranicu\n" #: src/psgen.c:986 msgid "user font encoding can be only the system's default or `ps'" msgstr "" "korisnikov encoding fonta smije biti samo sistemska vrijednost ili `ps'" #: src/psgen.c:1228 #, c-format msgid "unknown special escape: %s" msgstr "nepoznat specijalni escape: %s" #: src/psgen.c:1354 #, c-format msgid "illegal option %c for ^@epsf escape" msgstr "nedopu¹tena opcija %c za ^@epsf escape" #: src/psgen.c:1360 msgid "malformed ^@epsf escape: no ']' after options" msgstr "izoblièen escape ^@epsf: nedostaje ']' poslije opcija" #: src/psgen.c:1372 #, c-format msgid "" "too long file name for ^@epsf escape:\n" "%.*s" msgstr "" "predugaèak naziv spisa za escape ^@epsf:\n" "\"%.*s\"" #: src/psgen.c:1376 msgid "unexpected EOF while scanning ^@epsf escape" msgstr "neoèekivan EOF za vrijeme pregleda escapea ^@epsf" #: src/psgen.c:1382 msgid "malformed ^@epsf escape: no '{' found" msgstr "izoblièen escape ^@epsf: nedostaje '{'" #: src/psgen.c:1440 #, c-format msgid "malformed %s escape: no '{' found" msgstr "izoblièen escape %s: nedostaje '{'" #: src/psgen.c:1454 #, c-format msgid "" "too long argument for %s escape:\n" "%.*s" msgstr "" "predugaèak argument za escape %s:\n" "\"%.*s\"" #: src/psgen.c:1474 #, c-format msgid "malformed font spec for ^@font escape: %s" msgstr "izoblièena naznaka fonta za escape ^@font: %s" #: src/psgen.c:1511 #, c-format msgid "malformed color spec for ^@%s escape: %s" msgstr "izoblièena naznaka boje za escape ^@%s: %s" #: src/psgen.c:1535 #, c-format msgid "invalid value for ^@shade escape: %s" msgstr "neispravna vrijednost za escape ^@shade: %s" #: src/psgen.c:1543 #, c-format msgid "invalid value for ^@bggray escape: %s" msgstr "neispravna vrijednost za escape ^@bggrat: %s" #: src/psgen.c:2412 #, c-format msgid "couldn't open EPS file \"%s\": %s\n" msgstr "ne mogu otvoriti EPS spis \"%s\": %s\n" #: src/psgen.c:2448 #, c-format msgid "EPS file \"%s\" does not start with \"%%!\" magic\n" msgstr "EPS spis \"%s\" ne poèinje s èarom \"%%!\"\n" #: src/psgen.c:2473 #, c-format msgid "" "EPS file \"%s\" contains malformed %%%%BoundingBox row:\n" "\"%.*s\"\n" msgstr "" "EPS spis \"%s\" sadr¾i izoblièen redak %%%%BoundingBox:\n" "\"%.*s\"\n" #: src/psgen.c:2498 #, c-format msgid "EPS file \"%s\" is not a valid EPS file\n" msgstr "EPS spis \"%s\" nije ispravan EPS spis\n" #: src/psgen.c:2640 #, c-format msgid "passing through all input files for output language `%s'\n" msgstr "prolazim kroz sve ulazne spise za izlazni jezik `%s'\n" #: src/psgen.c:2692 #, c-format msgid "passing through %s file \"%s\"\n" msgstr "prolazim kroz %s spis \"%s\"\n" #: src/psgen.c:2795 #, c-format msgid "couldn't create temporary divert file: %s" msgstr "ne mogu stvoriti naziv privremenog skretnièkog spisa: %s" #: src/psgen.c:2812 #, c-format msgid "couldn't rewind divert file: %s" msgstr "ne mogu premotati skretnièki spis: %s" #: src/util.c:93 #, fuzzy, c-format msgid "missing argument: %s" msgstr "nedopu¹ten N-up argument: %d" #: src/util.c:186 src/util.c:214 #, c-format msgid "illegal value \"%s\" for option %s" msgstr "nedopu¹tena vrijednost \"%s\" za opciju %s" #: src/util.c:202 #, c-format msgid "invalid value \"%s\" for option %s" msgstr "nevaljana vrijednost \"%s\" za opciju %s" #: src/util.c:440 #, c-format msgid "illegal option: %s" msgstr "nedopu¹tena opcija: %s" #: src/util.c:619 #, c-format msgid "%s:%d: %%Format: no name" msgstr "%s:%d: %%Format: nedostaje ime" #: src/util.c:630 #, c-format msgid "%s:%d: %%Format: too long name, maxlen=%d" msgstr "%s:%d %%Format: predugaèko ime, najvi¹e=%d" #: src/util.c:653 #, c-format msgid "%s:%d: %%Format: name \"%s\" is already defined" msgstr "%s:%d: %%Format: ime \"%s\" je zauzeto" #: src/util.c:674 #, c-format msgid "%s:%d: %%HeaderHeight: no argument" msgstr "%s:%d: %%HeaderHeight: nedostaje argument" #: src/util.c:696 #, c-format msgid "%s:%d: %%FooterHeight: no argument" msgstr "%s:%d: %%FooterHeight: nedostaje argument" #: src/util.c:843 #, c-format msgid "%s: warning: font size is negative\n" msgstr "%s: upozorenje: velièina fonta je negativna\n" #: src/util.c:845 #, c-format msgid "%s: warning: font width is negative\n" msgstr "%s: upozorenje: ¹irina fonta je negativna\n" #: src/util.c:847 #, c-format msgid "%s: warning: font height is negative\n" msgstr "%s: upozorenje: visina fonta je negativna\n" #: src/util.c:866 #, c-format msgid "reading AFM info for font \"%s\"\n" msgstr "uèitavam AFM informacije za font \"%s\"\n" #: src/util.c:899 #, c-format msgid "couldn't open AFM file for font \"%s\", using default\n" msgstr "ne mogu otvoriti AFM spis za font \"%s\", podrazumijevanom metodom\n" #: src/util.c:906 #, c-format msgid "couldn't open AFM file for the default font: %s" msgstr "ne mogu otvoriti AFM spis za podrazumijevani font: %s" #: src/util.c:1095 #, c-format msgid "downloading font \"%s\"\n" msgstr "dohvaæam font \"%s\"\n" #: src/util.c:1100 #, c-format msgid "couldn't open font description file \"%s\": %s\n" msgstr "ne mogu otvoriti spis s opisom fonta \"%s\": %s\n" #: src/util.c:1392 #, c-format msgid "%s: too long format for %%D{} escape" msgstr "%s: predug format za escape $D{}" #: src/util.c:1477 #, c-format msgid "%s: unknown `%%' escape `%c' (%d)" msgstr "%s: nepoznat `%%' escape `%c' (%d)" #: src/util.c:1515 #, c-format msgid "%s: no closing ')' for $() escape" msgstr "%s: nema zatvorene ')' za $() escape" #: src/util.c:1518 #, c-format msgid "%s: too long variable name for $() escape" msgstr "%s: predugo ime varijable za $() escape" #: src/util.c:1545 #, c-format msgid "%s: too long format for $D{} escape" msgstr "%s: predug format za $D{} escape" #: src/util.c:1633 #, c-format msgid "%s: unknown `$' escape `%c' (%d)" msgstr "%s: nepoznat `$' escape `%c' (%d)" #: src/util.c:1824 #, c-format msgid "malformed float dimension: \"%s\"" msgstr "izoblièena float dimenzija: \"%s\"" #: src/util.c:1946 #, c-format msgid "couldn't open input filter \"%s\" for file \"%s\": %s" msgstr "ne mogu otvoriti ulazni filter \"%s\" za spis \"%s\": %s" #: src/util.c:1963 #, c-format msgid "couldn't open input file \"%s\": %s" msgstr "ne mogu otvoriti ulazni spis \"%s\": %s" #: src/mkafmmap.c:167 #, c-format msgid "file=%s\n" msgstr "spis=%s\n" #: src/mkafmmap.c:167 msgid "stdout" msgstr "standardni izlaz" #: src/mkafmmap.c:175 #, c-format msgid "%s: couldn't open output file \"%s\"" msgstr "%s: ne mogu otvoriti izlazni spis \"%s\"" #: src/mkafmmap.c:189 msgid "couldn't create AFM library" msgstr "ne mogu kreirati AFM biblioteku" #: src/mkafmmap.c:238 #, c-format msgid "" "Usage: %s [OPTION]... FILE...\n" "Mandatory arguments to long options are mandatory for short options too.\n" " -h, --help print this help and exit\n" " -p, --output-file=NAME print output to file NAME (default file is\n" " font.map). If FILE is `-', leavy output to\n" " stdout.\n" " -V, --version print version number\n" msgstr "" "Uporaba: %s [OPCIJA]... SPIS...\n" "Ako dugaèka opcija zahtijeva argument, isto vrijedi i za kratku.\n" " -h, --help ispi¹i ovu pomoæ i izaði\n" " -p, --output-file=SPIS ispisuj izlaz u SPIS (podrazumijeva se font.map).\n" " Ako je SPIS `-', pi¹i na standardni izlaz.\n" " -V, --version ispi¹i broj verzije\n" #: states/lex.l:167 states/lex.l:173 msgid "error: EOF in comment" msgstr "gre¹ka: EOF u komentaru" #: states/lex.l:204 msgid "error: EOF in string constant" msgstr "gre¹ka: EOF u stringovnoj konstanti" #: states/lex.l:311 msgid "error: EOF in regular expression" msgstr "gre¹ka: EOF u regularnom izrazu" #: states/main.c:197 #, fuzzy, c-format msgid "states for %s" msgstr "stanja za GNU %s %s" #: states/main.c:252 #, c-format msgid "%s: malformed variable definition \"%s\"\n" msgstr "%s: izoblièena definicija varijable \"%s\"\n" #: states/main.c:280 #, c-format msgid "%s: couldn't create output file \"%s\": %s\n" msgstr "%s: ne mogu stvoriti izlazni spis \"%s\": %s\n" #: states/main.c:311 #, c-format msgid "%s: unknown warning level `%s'\n" msgstr "%s: nepoznat nivo upozorenja `%s'\n" #: states/main.c:360 states/main.c:396 states/prims.c:1375 states/utils.c:227 #, c-format msgid "%s: out of memory\n" msgstr "%s: ponestalo memorije\n" #: states/main.c:421 #, c-format msgid "%s: couldn't open input file `%s': %s\n" msgstr "%s: ne mogu otvoriti ulazni spis `%s': %s\n" #: states/main.c:445 #, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Uporaba: %s [OPCIJA]... [SPIS]...\n" "Ako dugaèka opcija zahtijeva argument, isto vrijedi i za kratku.\n" #: states/main.c:449 #, fuzzy, c-format msgid "" " -D, --define=VAR=VAL define variable VAR to have value VAL\n" " -f, --file=NAME read state definitions from file NAME\n" " -h, --help print this help and exit\n" " -o, --output=NAME save output to file NAME\n" " -p, --path=PATH set the load path to PATH\n" " -s, --state=NAME start from state NAME\n" " -v, --verbose increase the program verbosity\n" " -V, --version print version number\n" " -W, --warning=LEVEL set the warning level to LEVEL\n" msgstr "" " -D, --define=VAR=VRIJ postavi varijablu VAR na vrijednost VRIJ\n" " -f, --file=SPIS proèitaj definiciju stanja iz SPISA\n" " -h, --help ispi¹i ovu pomoæ i izaði\n" " -o, --output=SPIS spremaj izlaz u SPIS\n" " -p, --path=STAZA postavi stazu za uèitavanje na STAZU\n" " -s, --state=IME kreni od stanja IME\n" " -v, --verbose povisi prièljivost programa\n" " -V, --version ispi¹i broj verzije\n" " -W, --warning=NIVO postavi nivo upozorenja na NIVO\n" #: states/prims.c:44 #, fuzzy, c-format msgid "%s:%d: %s: too few arguments\n" msgstr "%s:%d: %s: nedopu¹ten argument\n" #: states/prims.c:54 #, fuzzy, c-format msgid "%s:%d: %s: too many arguments\n" msgstr "%s:%d: %s: nedopu¹ten argument\n" #: states/prims.c:107 states/prims.c:127 states/prims.c:253 states/prims.c:426 #: states/prims.c:901 #, c-format msgid "%s:%d: %s: illegal argument type\n" msgstr "%s:%d: %s: nedopu¹teni tip argumenta\n" #: states/prims.c:468 #, c-format msgid "%s: panic: " msgstr "%s: panika: " #: states/prims.c:502 #, c-format msgid "%s:%d: %s: malformed version string `%s'\n" msgstr "%s:%d: %s: izoblièen string verzije `%s'\n" #: states/prims.c:517 #, c-format msgid "" "%s: FATAL ERROR: States version %s or higher is required for this script\n" msgstr "" "%s: KOBNA GRE©KA: Stanja verzije %s ili veæe potrebna su ovog skripti\n" #: states/prims.c:608 states/prims.c:1274 #, c-format msgid "%s:%d: %s: start offset is bigger than end offset\n" msgstr "%s:%d: %s: poèetni pomak veæi je od krajnjeg pomaka\n" #: states/prims.c:617 states/prims.c:633 states/prims.c:1280 #, c-format msgid "%s:%d: %s: offset out of range\n" msgstr "%s:%d: %s: pomak je van raspona\n" #: states/prims.c:651 #, c-format msgid "%s:%d: %s: illegal argument\n" msgstr "%s:%d: %s: nedopu¹ten argument\n" #: states/prims.c:698 #, c-format msgid "%s:%d: %s: illegal regexp character syntax: %c\n" msgstr "%s:%d: %s: nedopu¹tena znakovna sintaksa regexpa: %c\n" #: states/prims.c:913 #, c-format msgid "%s:%d: %s: couldn't define state `%s'\n" msgstr "%s:%d: %s: ne mogu definirati stanje `%s'\n" #: states/prims.c:1010 #, c-format msgid "%s: primitive `%s': too few arguments for format\n" msgstr "%s: primitiva `%s': premalo argumenata za format\n" #: states/prims.c:1038 #, c-format msgid "%s:%d: %s: argument %d doesn't match format\n" msgstr "%s:%d: %s: argument %d ne odgovara formatu\n" #: states/prims.c:1078 #, c-format msgid "%s:%d: %s: no extra options can be specified for %%s\n" msgstr "%s:%d: %s: dodatne opcije ne smiju se naznaèiti za %%s\n" #: states/prims.c:1087 #, c-format msgid "%s:%d: %s: illegal type specifier `%c'\n" msgstr "%s:%d: %s: nedopu¹ten specifikator tipa `%c'\n" #: states/process.c:115 #, c-format msgid "%s: undefined state `%s'\n" msgstr "%s: nedefinirano stanje `%s'\n" #: states/process.c:196 #, c-format msgid "%s: error: undefined variable `%s'\n" msgstr "%s: gre¹ka: nedefinirana varijabla `%s'\n" #: states/process.c:290 #, c-format msgid "%s: undefined super state `%s'\n" msgstr "%s: nedefinirano nad-stanje `%s'\n" #: states/utils.c:260 #, c-format msgid "%s:%d: couldn't compile regular expression \"%s\": %s\n" msgstr "%s: %d: nisam preveo regularni izraz \"%s\": %s\n" #: states/utils.c:449 states/utils.c:477 #, c-format msgid "%s: ouf of memory" msgstr "%s: nema vi¹e memorije" #: states/utils.c:454 #, c-format msgid "warning: redefining state `%s'" msgstr "upozorenje: redefinira se stanje `%s'" #: states/utils.c:481 #, c-format msgid "%s:%d: warning: redefining subroutine `%s'\n" msgstr "%s:%d: upozorenje: redefinira se potprogram `%s'\n" #: states/utils.c:578 #, c-format msgid "%s:%d: error: undefined variable `%s'\n" msgstr "%s:%d: gre¹ka: nedefinirana varijabla `%s'\n" #: states/utils.c:616 #, c-format msgid "%s:%d: error: couldn't set variable `%s'\n" msgstr "%s:%d: gre¹ka: ne mogu postaviti varijablu `%s'\n" #: states/utils.c:767 #, c-format msgid "%s:%d: error: expression between illegal types\n" msgstr "%s:%d: gre¹ka: izraz meðu nedopu¹tenim tipovima\n" #: states/utils.c:865 #, c-format msgid "%s:%d: error: too few arguments for subroutine\n" msgstr "%s:%d: gre¹ka: premalo argumenata za potprogram\n" #: states/utils.c:872 #, c-format msgid "%s:%d: error: too many arguments for subroutine\n" msgstr "%s:%d: gresska: previ¹e argumenata za potprogram\n" #: states/utils.c:926 #, c-format msgid "%s:%d: error: undefined procedure `%s'\n" msgstr "%s:%d: gre¹ka: nedefinirana procedura `%s'\n" #: states/utils.c:1018 #, c-format msgid "%s:%d: error: illegal lvalue for assignment\n" msgstr "%s:%d: gre¹ka: nedopu¹tena vrijednost s lijeve strane dodjeljivanja\n" #: states/utils.c:1026 states/utils.c:1110 #, c-format msgid "%s:%d: error: array reference index is not integer\n" msgstr "%s:%d: gre¹ka: indeks niza nije cijeli broj\n" #: states/utils.c:1032 #, c-format msgid "%s:%d: error: negative array reference index\n" msgstr "%s:%d: gre¹ka: negativan indeks niza\n" #: states/utils.c:1083 #, c-format msgid "%s:%d: error: illegal rvalue for string assignment\n" msgstr "" "%s:%d: gre¹ka: nedopu¹tena vrijednost s desne strane dodjeljivanja " "stringova\n" "\n" #: states/utils.c:1102 #, c-format msgid "%s:%d: error: illegal type for array reference\n" msgstr "%s:%d: gre¹ka: nedopu¹ten tip za referencu na niz\n" #: states/utils.c:1119 #, fuzzy, c-format msgid "%s:%d: error: array reference index out of range\n" msgstr "%s:%d: gre¹ka: referenca na niz van granica\n" #: states/utils.c:1345 #, c-format msgid "%s: couldn't open definition file `%s': %s\n" msgstr "%s: nisam otvorio spis s definicijama `%s': %s\n" #: states/utils.c:1401 #, c-format msgid "%s: autoloading `%s' from `%s'\n" msgstr "%s: autoloadam `%s' iz `%s'\n" #~ msgid "library directory." #~ msgstr "direktorij s bibliotekama." #~ msgid "[ %d pages * %d copy ]" #~ msgstr "[ %d stranica * %d kopija ]" #~ msgid "epsf: couldn't open pipe to command \"%s\": %s\n" #~ msgstr "epsf: ne mogu otvoriti kanal prema naredbi \"%s\": %s\n" enscript-1.6.5.90/po/en@boldquot.header0000644000175000017500000000247111606344064014576 00000000000000# 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. # enscript-1.6.5.90/po/de.po0000644000175000017500000012344411606344231012100 00000000000000# German messages for GNU enscript # Copyright (C) 1996, 1999 Free Software Foundation, Inc. # Karl Eichwalder , 1996. # Martin von Löwis , 1996, 1997, 1999. # msgid "" msgstr "" "Project-Id-Version: GNU enscript 1.6.2\n" "Report-Msgid-Bugs-To: bug-enscript@gnu.org\n" "POT-Creation-Date: 2011-07-10 16:43+0100\n" "PO-Revision-Date: 1999-04-08 22:13+02:00\n" "Last-Translator: Martin von Löwis \n" "Language-Team: German \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8-bit\n" #: compat/getopt.c:628 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "%s: Option »%s« ist zweideutig.\n" #: compat/getopt.c:652 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "%s: Option »--%s« erlaubt keinen Parameter.\n" #: compat/getopt.c:657 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "%s: Option »%c%s« erlaubt keinen Parameter.\n" #: compat/getopt.c:674 compat/getopt.c:847 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "%s: Option »%s« verlangt einen Parameter.\n" #: compat/getopt.c:703 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "%s: Nicht erkannte Option »--%s«.\n" #: compat/getopt.c:707 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "%s: Nicht erkannte Option »%c%s«.\n" #: compat/getopt.c:733 #, c-format msgid "%s: illegal option -- %c\n" msgstr "%s: Ungültige Option -- %c.\n" #: compat/getopt.c:736 #, c-format msgid "%s: invalid option -- %c\n" msgstr "%s: Ungültige Option -- %c.\n" #: compat/getopt.c:766 compat/getopt.c:896 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: Option benötigt ein Argument -- %c.\n" #: compat/getopt.c:813 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "%s: Option »-W %s« ist zweideutig.\n" #: compat/getopt.c:831 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s: Option »-W %s« erlaubt keinen Parameter.\n" #: compat/xalloc.c:70 #, c-format msgid "xmalloc(): couldn't allocate %d bytes\n" msgstr "xmalloc(): Habe keine %d Bytes mehr erhalten.\n" #: compat/xalloc.c:88 #, c-format msgid "xcalloc(): couldn't allocate %d bytes\n" msgstr "xcalloc(): Habe keine %d Bytes mehr erhalten.\n" #: compat/xalloc.c:109 #, c-format msgid "xrealloc(): couldn't reallocate %d bytes\n" msgstr "xrealloc(): Habe keine %d Bytes mehr erhalten.\n" #: compat/regex.c:996 msgid "Success" msgstr "Erfolg" #: compat/regex.c:997 msgid "No match" msgstr "Keine Übereinstimmung" #: compat/regex.c:998 msgid "Invalid regular expression" msgstr "Ungültiger regulärer Ausdruck" #: compat/regex.c:999 msgid "Invalid collation character" msgstr "Ungültiger Vergleichsbuchstabe" #: compat/regex.c:1000 msgid "Invalid character class name" msgstr "Ungültiger Name für eine Zeichenklasse" #: compat/regex.c:1001 msgid "Trailing backslash" msgstr "Angehängter Backslash (»\\«)" #: compat/regex.c:1002 msgid "Invalid back reference" msgstr "Ungültiger Rückverweis" #: compat/regex.c:1003 msgid "Unmatched [ or [^" msgstr "»[« oder »[^« ohne schließende Klammer" #: compat/regex.c:1004 msgid "Unmatched ( or \\(" msgstr "»(« oder »\\(« ohne schließende Klammer" #: compat/regex.c:1005 msgid "Unmatched \\{" msgstr "»{« ohne schließende Klammer" #: compat/regex.c:1006 msgid "Invalid content of \\{\\}" msgstr "Ungültiger Inhalt von \\{\\}" #: compat/regex.c:1007 msgid "Invalid range end" msgstr "Ungültiges Bereichsende" #: compat/regex.c:1008 msgid "Memory exhausted" msgstr "Kein Speicher mehr verfügbar" #: compat/regex.c:1009 msgid "Invalid preceding regular expression" msgstr "Der vorherige reguläre Ausdruck ist nicht korrekt" #: compat/regex.c:1010 msgid "Premature end of regular expression" msgstr "Unerwartetes Ende des regulären Ausdrucks" #: compat/regex.c:1011 msgid "Regular expression too big" msgstr "Regulärer Ausdruck zu groß" #: compat/regex.c:1012 msgid "Unmatched ) or \\)" msgstr "»)« order »\\\\)« ohne öffnende Klammer" #: compat/regex.c:5458 msgid "No previous regular expression" msgstr "Kein vorangehender regulärer Ausdruck" #: src/main.c:949 #, no-c-format msgid "$3v $-40N $3% pages $4L lines $E $C" msgstr "$3v $-40N $3% Seiten $4L Zeilen $E $C" #: src/main.c:979 #, c-format msgid "couldn't get passwd entry for uid=%d: %s" msgstr "Kein Passwort-Eintrag für UID=%d zu bekommen: %s." #: src/main.c:1071 #, fuzzy, c-format msgid "couldn't read config file \"%s/%s\": %s" msgstr "Kann Konfigurationsdatei »%s/%s« nicht öffnen: %s." #: src/main.c:1075 msgid "I did also try the following directories:" msgstr "" #: src/main.c:1076 src/main.c:1077 src/main.c:1078 #, c-format msgid "\t%s" msgstr "" #: src/main.c:1079 msgid "\t../lib" msgstr "" #: src/main.c:1080 msgid "\t../../lib" msgstr "" #: src/main.c:1082 msgid "This is probably an installation error. Please, try to rebuild:" msgstr "" #: src/main.c:1083 msgid "\tmake distclean" msgstr "" #: src/main.c:1084 msgid "\t./configure --prefix=PREFIX" msgstr "" #: src/main.c:1085 msgid "\tmake" msgstr "" #: src/main.c:1086 msgid "\tmake check" msgstr "" #: src/main.c:1087 msgid "\tmake install" msgstr "" #: src/main.c:1088 msgid "" "or set the environment variable `ENSCRIPT_LIBRARY' to point to your library " "directory." msgstr "" #: src/main.c:1161 #, c-format msgid "unknown encoding: %s" msgstr "unbekannte Kodierung: %s" #: src/main.c:1180 #, c-format msgid "couldn't open AFM library: %s" msgstr "Kann AFM-Bibliothek nicht öffnen: %s." # Müssen die x-, y-Sachen auch übersetzt werden? #: src/main.c:1209 #, c-format msgid "" "known media:\n" "name width\theight\tllx\tlly\turx\tury\n" "------------------------------------------------------------\n" msgstr "" "bekannte Medien:\n" "Name Weite\tHöhe\tllx\tlly\turx\tury\n" "------------------------------------------------------------\n" #: src/main.c:1228 #, c-format msgid "do not know anything about media \"%s\"" msgstr "Nichts von dem Medium »%s« bekannt." #: src/main.c:1272 #, c-format msgid "" "set new marginals for media `%s' (%dx%d): llx=%d, lly=%d, urx=%d, ury=%d\n" msgstr "" "Neue Ränder für Medium »%s« setzen (%dx%d): lux=%d, luy=%d, rox=%d, roy=%d\n" #: src/main.c:1283 #, c-format msgid "illegal page label format \"%s\"" msgstr "ungültiges Format für die Seitenbezeichnung »%s«." #: src/main.c:1295 #, c-format msgid "illegal non-printable format \"%s\"" msgstr "Ungültiges, nicht auszugebendes Format (»non-printable«) \"%s\"." #: src/main.c:1309 #, c-format msgid "illegal style for wrapped line marker: \"%s\"" msgstr "Ungültiger Stil für Umbruchsmarkierung: »%s«." #: src/main.c:1319 #, c-format msgid "illegal N-up argument: %d" msgstr "Ungültiges N-up Argument: %d." #: src/main.c:1324 #, c-format msgid "N-up argument must be power of 2: %d" msgstr "Das Argument von N-up muß eine Zweierpotenz sein: %d" # Alternative Übersetzung für underlay: Hintergrund? #: src/main.c:1401 #, c-format msgid "malformed underlay position: %s" msgstr "Fehlformatierte Position für Wasserzeichen: %s." #: src/main.c:1424 #, c-format msgid "illegal underlay style: %s" msgstr "Unerlaubter Stil von Wasserzeichen: %s." #: src/main.c:1451 #, c-format msgid "" "Highlighting is supported for the following languages and file formats:\n" "\n" msgstr "" "Hervorhebung ist für folgende Sprachen und Dateiformate unterstützt:\n" "\n" # Mir ist unklar, was diese und die folgenden Meldungen meinen... -ke- # Vermutlich toc = Table of contents? -mvl- #: src/main.c:1632 #, fuzzy, c-format msgid "couldn't create temporary toc file: %s" msgstr "Datei für Inhaltsverzeichnis kann nicht angelegt werden: %s." #: src/main.c:1679 #, c-format msgid "couldn't stat input file \"%s\": %s" msgstr "Kann Eingabedatei »%s« nicht feststellen (»stat«): %s." #: src/main.c:1699 #, c-format msgid "couldn't rewind toc file: %s" msgstr "Inhaltsverzeichnis kann nicht an Anfang zurückgesetzt werden: %s." #: src/main.c:1705 msgid "Table of Contents" msgstr "Inhaltsverzeichnis" #: src/main.c:1731 msgid "no output generated\n" msgstr "Keine Ausgabe erzeugt.\n" #: src/main.c:1736 #, c-format msgid "output sent to %s\n" msgstr "Ausgabe gesendet an %s.\n" #: src/main.c:1737 src/main.c:1768 msgid "printer" msgstr "Drucker" #: src/main.c:1739 #, c-format msgid "output left in %s\n" msgstr "Ausgabe abgelegt in %s.\n" #: src/main.c:1760 #, c-format msgid "%d page" msgid_plural "%d pages" msgstr[0] "" msgstr[1] "" #: src/main.c:1762 #, c-format msgid "%d copy" msgid_plural "%d copies" msgstr[0] "" msgstr[1] "" #: src/main.c:1767 #, c-format msgid " sent to %s\n" msgstr " geschickt zu: %s\n" #: src/main.c:1770 #, c-format msgid " left in %s\n" msgstr " abgelegt in: %s\n" #: src/main.c:1776 #, fuzzy, c-format msgid "%d line was %s\n" msgid_plural "%d lines were %s\n" msgstr[0] "%d Zeile(n) wurde(n) %s\n" msgstr[1] "%d Zeile(n) wurde(n) %s\n" #: src/main.c:1781 msgid "truncated" msgstr "abgeschnitten (»truncated«)" #: src/main.c:1781 msgid "wrapped" msgstr "zusammengedrängt (»wrapped«)" #: src/main.c:1788 #, fuzzy, c-format msgid "%d character was missing\n" msgid_plural "%d characters were missing\n" msgstr[0] "%d Zeichen fehlen\n" msgstr[1] "%d Zeichen fehlen\n" #: src/main.c:1794 msgid "missing character codes (decimal):\n" msgstr "fehlende Zeichencodes (dezimal):\n" #: src/main.c:1803 #, fuzzy, c-format msgid "%d non-printable character\n" msgid_plural "%d non-printable characters\n" msgstr[0] "%d nicht druckbare Zeichen\n" msgstr[1] "%d nicht druckbare Zeichen\n" #: src/main.c:1810 msgid "non-printable character codes (decimal):\n" msgstr "nicht druckbare Zeichencodes (dezimal):\n" #: src/main.c:1859 #, c-format msgid "couldn't open printer `%s': %s" msgstr "Kann nicht auf Drucker »%s« zugreifen: %s." #: src/main.c:1868 #, c-format msgid "couldn't create output file \"%s\": %s" msgstr "Kann Ausgabedatei »%s« nicht anlegen: %s." #: src/main.c:1885 #, fuzzy, c-format msgid "couldn't close output file \"%s\": %s" msgstr "Kann Ausgabedatei »%s« nicht anlegen: %s." #: src/main.c:1943 #, c-format msgid "" "syntax error in option string %s=\"%s\":\n" "missing end of quotation: %c" msgstr "" "Syntaxfehler in der Option %s=»%s«:\n" "fehlendes Ende des Zitats (»quotation«): %c" #: src/main.c:1975 #, c-format msgid "" "warning: didn't process following options from environment variable %s:\n" msgstr "" "ACHTUNG: folgende Optionen von der Umgebungsvariablen %s nicht ausgeführt:\n" #: src/main.c:1979 #, c-format msgid " option %d = \"%s\"\n" msgstr " Option %d = \"%s\"\n" #: src/main.c:2025 #, fuzzy msgid "number of columns must be larger than zero" msgstr "Ausrichtung der Datei (»aligment«) muss größer als Null sein" #: src/main.c:2083 msgid "file alignment must be larger than zero" msgstr "Ausrichtung der Datei (»aligment«) muss größer als Null sein" #: src/main.c:2138 src/main.c:2144 src/main.c:2355 src/util.c:416 #, c-format msgid "malformed font spec: %s" msgstr "unpassende (»malformed«) Fontspezifikation: %s" #: src/main.c:2160 #, c-format msgid "couldn't find header definition file \"%s.hdr\"" msgstr "Kann Definitionsdatei »%s.hdr« für die Kopfangaben nicht finden." #: src/main.c:2204 #, c-format msgid "must print at least one line per each page: %s" msgstr "muss wenigstens eine Zeile pro Seite drucken: %s" #: src/main.c:2224 #, c-format msgid "%s: illegal newline character specifier: '%s': expected 'n' or 'r'\n" msgstr "" "%s: Ungültiger Bezeichner für »Neue Zeile«: '%s': erwartet 'n' oder 'r'.\n" #: src/main.c:2313 #, c-format msgid "malformed argument `%s' for option -W, --option: no comma found" msgstr "" #: src/main.c:2318 #, c-format msgid "helper application specification must be single character: %s" msgstr "" #: src/main.c:2414 msgid "slice must be greater than zero" msgstr "Abschnitt muss größer als Null sein." #: src/main.c:2495 states/main.c:318 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "»%s --help« gibt Ihnen mehr Informationen.\n" #: src/main.c:2515 #, fuzzy, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" "Mandatory arguments to long options are mandatory for short options too.\n" " -# an alias for option -n, --copies\n" " -1 same as --columns=1\n" " -2 same as --columns=2\n" " --columns=NUM specify the number of columns per page\n" " -a, --pages=PAGES specify which pages are printed\n" " -A, --file-align=ALIGN align separate input files to ALIGN\n" " -b, --header=HEADER set page header\n" " -B, --no-header no page headers\n" " -c, --truncate-lines cut long lines (default is to wrap)\n" " -C[START], --line-numbers[=START]\n" " precede each line with its line number\n" " -d an alias for option --printer\n" " -D, --setpagedevice=KEY[:VALUE]\n" " pass a page device definition to output\n" " -e[CHAR], --escapes[=CHAR] enable special escape interpretation\n" msgstr "" "Aufruf: %s [OPTION]... [DATEI] ...\n" "Notwendige Argumente für lange Optionen sind auch für kurze notwendig.\n" " -# Ein Alias für die Option -n, --copies.\n" " -1 Wie --columns=1.\n" " -2 Wie --columns=2.\n" " --columns=ZAHL Zahl der Spalten pro Seite angeben.\n" " -a, --pages=SEITEN Zahl der zu druckenden Seiten angeben.\n" " -A, --file-align=ALIGN Verschiedene Eingabedateien auf ALIGN " "ausrichten.\n" " -b, --page-header=KOPF Kopf der Seite setzen.\n" " -B, --no-header Keine Kopfzeilen.\n" " -c, --truncate-lines Lange Zeilen abschneiden (Standardvorgabe ist\n" " »umbrechen«).\n" " -C, --line-numbers[=START]\n" " Jeder Zeile die Zeilennummer voranstellen.\n" " -d Wie Option --printer.\n" " -D, --setpagedevice=SCHLÜSSEL[:WERT]\n" " Eine »page device definition« zur Ausgabe\n" " weiterreichen.\n" " -e, --escapes[=ZEICHEN] Spezielle Interpretation der Escape-Zeichen\n" " zuschalten.\n" #: src/main.c:2535 #, fuzzy, c-format msgid " -E[LANG], --highlight[=LANG] highlight source code\n" msgstr " -E, --pretty-print[=LANG] Quelltext schön formatieren.\n" #: src/main.c:2538 #, fuzzy, c-format msgid "" " -f, --font=NAME use font NAME for body text\n" " -F, --header-font=NAME use font NAME for header texts\n" " -g, --print-anyway nothing (compatibility option)\n" " -G same as --fancy-header\n" " --fancy-header[=NAME] select fancy page header\n" " -h, --no-job-header suppress the job header page\n" " -H[NUM], --highlight-bars[=NUM] specify how high highlight bars are\n" " -i, --indent=NUM set line indent to NUM characters\n" " -I, --filter=CMD read input files through input filter CMD\n" " -j, --borders print borders around columns\n" " -J, an alias for option --title\n" " -k, --page-prefeed enable page prefeed\n" " -K, --no-page-prefeed disable page prefeed\n" " -l, --lineprinter simulate lineprinter, this is an alias for:\n" " --lines-per-page=66, --no-header, --" "portrait,\n" " --columns=1\n" msgstr "" " -f, --font=NAME FONT für Haupttext verwenden.\n" " -F, --header-font=NAME FONT für Kopf verwenden.\n" " -g, --print-anyway Bedeutungslos (Kompatibilitätsoption)\n" " -G Wie --fancy-header\n" " --fancy-header[=NAME] Schicken Seitenkopf benutzen.\n" " -h, --no-job-header Seite mit Kopf für Auftrag (»job«) " "unterdrücken.\n" " -H, --highlight-bars=ZAHL Größe der Hervorhebungsbalken auf ZAHL " "festlegen.\n" " -i, --indent=NUM Zeileneinrückung auf NUM Zeichen festlegen.\n" " -I, --filter=CMD Eingabezeilen durch Eingabefilter CMD lesen.\n" " -j, --borders Ränder um Spalten drucken.\n" " -J Ein Alias für die Option --title.\n" " -k, --page-prefeed Vorzeitigen Seiteneinzug aktivieren.\n" " -K, --no-page-prefeed Vorzeitigen Seiteneinzug abschalten.\n" " -l, --lineprinter Zeilendrucker emulieren, ist Abkürzung für:\n" " --lines-per-page=66, --no-header, --" "portrait,\n" " --columns=1.\n" #: src/main.c:2556 #, c-format msgid "" " -L, --lines-per-page=NUM specify how many lines are printed on each " "page\n" " -m, --mail send mail upon completion\n" " -M, --media=NAME use output media NAME\n" " -n, --copies=NUM print NUM copies of each page\n" " -N, --newline=NL select the newline character. Possible\n" " values for NL are: n (`\\n') and r (`\\r').\n" " -o an alias for option --output\n" " -O, --missing-characters list missing characters\n" " -p, --output=FILE leave output to file FILE. If FILE is `-',\n" " leave output to stdout.\n" " -P, --printer=NAME print output to printer NAME\n" " -q, --quiet, --silent be really quiet\n" " -r, --landscape print in landscape mode\n" " -R, --portrait print in portrait mode\n" msgstr "" " -L, --lines-per-page=ZAHL ZAHL der Zeilen pro Seite festlegen.\n" " -m, --mail Am Ende E-Mail versenden.\n" " -M, --media=NAME Ausgabemedium NAME nehmen.\n" " -n, --copies=ZAHL ZAHL der Kopien.\n" " -N, --newline=NZ \"Neue Zeile\"-Zeichen (»newline«) auswählen.\n" " Mögliche Werte für NZ: n (`\\n') und r (`" "\\r').\n" " -o Alias für die Option --output.\n" " -O, --missing-characters\n" " Fehlenden Zeichenkode anzeigen.\n" " -p, --output=DATEI Ausgabe in die DATEI leiten. Wenn als DATEI\n" " '-' angegeben ist, Ausgabe nach `stdout' " "leiten.\n" " -P, --printer=NAME Ausgabe zum Drucker NAME leiten.\n" " -q, --quiet, --silent Keine Meldungen (»quiet«).\n" " -r, --landscape Im Querformat (»landscape mode«) drucken.\n" " -R, --portrait Im Längsformat (»portrait mode«) drucken.\n" #: src/main.c:2572 #, fuzzy, c-format msgid "" " -s, --baselineskip=NUM set baselineskip to NUM\n" " -S, --statusdict=KEY[:VALUE]\n" " pass a statusdict definition to the output\n" " -t, --title=TITLE set banner page's job title to TITLE. Option\n" " sets also the name of the input file stdin.\n" " -T, --tabsize=NUM set tabulator size to NUM\n" " -u[TEXT], --underlay[=TEXT] print TEXT under every page\n" " -U, --nup=NUM print NUM logical pages on each output page\n" " -v, --verbose tell what we are doing\n" " -V, --version print version number\n" " -w, --language=LANG set output language to LANG\n" " -W, --options=APP,OPTION pass option OPTION to helper application APP\n" " -X, --encoding=NAME use input encoding NAME\n" " -z, --no-formfeed do not interpret form feed characters\n" " -Z, --pass-through pass through PostScript and PCL files\n" " without any modifications\n" msgstr "" " -s, --baselineskip=NUM »baselineskip« auf NUM setzen.\n" " -S, --statusdict=SCHLÜSSEL[:WERT]\n" " »statusdict definition« zur Ausgabe\n" " weiterreichen.\n" " -t, --title=TITEL Titel für erste Seite (»banner page«) angeben.\n" " Gibt auch den Namen der Eingabedatei »stdin« " "an.\n" " -T, --tabsize=NUM Tabulatorbreite auf NUM setzen.\n" " -u, --underlay[=TEXT] TEXT unter jeder Seite drucken (Wasserzeichen).\n" " -U, --nup=ZAHL Drucke ZAHL logische Seiten auf jede " "Ausgabeseite.\n" " -v, --verbose Ausführliche Status-Informationen anzeigen.\n" " -V, --version Programmversion anzeigen.\n" " -W, --language=SPRACHE Setze Ausgabesprache auf SPRACHE.\n" " -X, --encoding=NAME Eingabe-Kodierung NAME benutzen.\n" " -z, --no-formfeed Seitenvorschub (»form feed«) nicht " "interpretieren.\n" " -Z, --pass-through PostScript- und PCL-Dateien ohne\n" " Veränderungen weiterreichen.\n" #: src/main.c:2590 #, c-format msgid "" "Long-only options:\n" " --color[=bool] create color outputs with states\n" " --continuous-page-numbers count page numbers across input files. Don't\n" " restart numbering at beginning of each file.\n" " --download-font=NAME download font NAME\n" " --extended-return-values enable extended return values\n" " --filter-stdin=NAME specify how stdin is shown to the input filter\n" " --footer=FOOTER set page footer\n" " --h-column-height=HEIGHT set the horizontal column height to HEIGHT\n" " --help print this help and exit\n" msgstr "" #: src/main.c:2601 #, fuzzy, c-format msgid "" " --help-highlight describe all supported --highlight languages\n" " and file formats\n" " --highlight-bar-gray=NUM print highlight bars with gray NUM (0 - 1)\n" " --list-media list names of all known media\n" " --margins=LEFT:RIGHT:TOP:BOTTOM\n" " adjust page marginals\n" " --mark-wrapped-lines[STYLE]\n" " mark wrapped lines in the output with STYLE\n" " --non-printable-format=FMT specify how non-printable chars are printed\n" msgstr "" "Lange Optionen ohne Kurzversion\n" " --color[=bool] Farbausgabe von states erzeugen lassen.\n" " --download-font=NAME Font NAME laden.\n" " --filter-stdin=NAME NAME, mit dem stdin in Eingabefiltern \n" " auftaucht, festlegen.\n" " --help Diese Hilfe anzeigen und beenden.\n" " --help-pretty-pring Beschreibe alle von --pretty-print " "unterstützten\n" " Sprachen.\n" " --highlight-bar-gray=ZAHL Graustufe für die Hervorhebungsbalken \n" " auf ZAHL setzen.\n" " --list-media Alle bekannten Medien auflisten.\n" " --list-options Alle Optionen und deren Werte auflisten.\n" " --margins=LINKS:RECHTS:OBEN:UNTEN\n" " Seitenränder einstellen.\n" " --mark-wrapped-lines[STIL] Markiere umbrochene Zeilen in der Ausgabe \n" " durch STIL.\n" " --non-printable-format=FMT Nicht druckbares Format als FMT bestimmen.\n" #: src/main.c:2612 #, fuzzy, c-format msgid "" " --nup-columnwise layout pages in the N-up printing columnwise\n" " --nup-xpad=NUM set the page x-padding of N-up printing to NUM\n" " --nup-ypad=NUM set the page y-padding of N-up printing to NUM\n" " --page-label-format=FMT set page label format to FMT\n" " --ps-level=LEVEL set the PostScript language level that " "enscript\n" " should use\n" " --printer-options=OPTIONS pass extra options to the printer command\n" " --rotate-even-pages rotate even-numbered pages 180 degrees\n" msgstr "" " --nup-xpad=ZAHL FIXME:set the page x-padding of N-up printing " "to NUM\n" " --nup-ypad=ZAHL FIXME:set the page y-padding of N-up printing " "to NUM\n" " --page-label-format=FMT Format für Seitenbezeichnung auf FMT setzen.\n" " --ps-level=LEVEL Von enscript benutztes Postscript-LEVEL \n" " einstellen.\n" " --printer-options=OPTIONEN Extra OPTIONEN an das Druckerkommando " "übergeben.\n" " --rotate-even-pages Geradzahlige Seiten um 180 Grad drehen.\n" #: src/main.c:2622 #, fuzzy, c-format msgid "" " --slice=NUM print vertical slice NUM\n" " --style=STYLE use highlight style STYLE\n" " --swap-even-page-margins swap left and right side margins for each even\n" " numbered page\n" " --toc print table of contents\n" " --ul-angle=ANGLE set underlay text's angle to ANGLE\n" " --ul-font=NAME print underlays with font NAME\n" " --ul-gray=NUM print underlays with gray value NUM\n" " --ul-position=POS set underlay's starting position to POS\n" " --ul-style=STYLE print underlays with style STYLE\n" " --word-wrap wrap long lines from word boundaries\n" msgstr "" " --slice=ZAHL Vertikalen Abschnitt ZAHL drucken.\n" " --style=STIL Hervorhebungsstil STIL verwenden.\n" " --toc Inhaltsverzeichnis drucken.\n" " --ul-angle=WINKEL Winkel vom Wasserzeichen auf WINKEL festlegen.\n" " --ul-font=NAME Wasserzeichen mit Font NAME drucken.\n" " --ul-gray=ZAHL Wasserzeichen mit Grauwert ZAHL drucken.\n" " --ul-position=POS Position vom Wasserzeichen auf POS festlegen.\n" " --ul-style=STIL Wasserzeichen mit Stil STIL drucken.\n" " --word-wrap Lange Zeilen an Wortgrenzen umbrechen.\n" #: src/main.c:2636 #, fuzzy, c-format msgid "" "\n" "Report bugs to <%s>.\n" msgstr "" "\n" "Probleme und Fehler an mtr@iki.fi\n" #: src/psgen.c:331 #, c-format msgid "couldn't find prolog \"%s\": %s\n" msgstr "Kann Vorspann (»prolog«) »%s« nicht finden: %s.\n" #: src/psgen.c:339 #, c-format msgid "couldn't find encoding file \"%s.enc\": %s\n" msgstr "Kann Kodierungsdatei »%s.enc« nicht finden: %s.\n" #: src/psgen.c:471 #, c-format msgid "couldn't find header definition file \"%s.hdr\": %s\n" msgstr "Kann Datei »%s.hdr« für die Kopfangabe nicht finden: %s.\n" #: src/psgen.c:615 #, c-format msgid "processing file \"%s\"...\n" msgstr "bearbeite Datei »%s«...\n" #: src/psgen.c:913 #, c-format msgid "EPS file \"%s\" is too large for page\n" msgstr "EPS-Datei »%s« ist zu groß für Seite.\n" #: src/psgen.c:986 msgid "user font encoding can be only the system's default or `ps'" msgstr "" "Nutzerdefinierte Fontkodierung kann nur der Systemstandard oder »ps« sein." #: src/psgen.c:1228 #, c-format msgid "unknown special escape: %s" msgstr "Unbekanntes Spezial-Escape-Zeichen: %s." #: src/psgen.c:1354 #, c-format msgid "illegal option %c for ^@epsf escape" msgstr "Ungültige Option %c für das Escape-Zeichen ^@epsf." #: src/psgen.c:1360 msgid "malformed ^@epsf escape: no ']' after options" msgstr "Fehlgebildetes Escape-Zeichen ^@epsf: kein ']' nach den Optionen." #: src/psgen.c:1372 #, c-format msgid "" "too long file name for ^@epsf escape:\n" "%.*s" msgstr "" "Zu langer Dateiname für das Escape-Zeichen ^@epsf:\n" "%.*s" #: src/psgen.c:1376 msgid "unexpected EOF while scanning ^@epsf escape" msgstr "" "Unerwartetes EOF während Durchsicht (»scanning«) des Escape-Zeichens ^@epsf" #: src/psgen.c:1382 msgid "malformed ^@epsf escape: no '{' found" msgstr "Fehlformatiertes Escape-Zeichen ^@epsf: keine '{' gefunden." #: src/psgen.c:1440 #, c-format msgid "malformed %s escape: no '{' found" msgstr "Fehlformatiertes Escape-Zeichen %s: keine '{' gefunden." #: src/psgen.c:1454 #, c-format msgid "" "too long argument for %s escape:\n" "%.*s" msgstr "" "Zu langes Argument für das Escape-Zeichen %s:\n" "%.*s" #: src/psgen.c:1474 #, c-format msgid "malformed font spec for ^@font escape: %s" msgstr "Fehlformatierte Fontspezifikation für das Escape-Zeichen ^@font: %s" #: src/psgen.c:1511 #, c-format msgid "malformed color spec for ^@%s escape: %s" msgstr "Fehlformatierte Farbspezifikation für das Escape-Zeichen ^@%s: %s" #: src/psgen.c:1535 #, c-format msgid "invalid value for ^@shade escape: %s" msgstr "Ungültiger Wert für das Escape-Zeichen ^@shade: %s." #: src/psgen.c:1543 #, c-format msgid "invalid value for ^@bggray escape: %s" msgstr "Ungültiger Wert für das Escape-Zeichen ^@bggray: %s." #: src/psgen.c:2412 #, c-format msgid "couldn't open EPS file \"%s\": %s\n" msgstr "Kann EPS-Datei »%s« nicht öffnen: %s.\n" #: src/psgen.c:2448 #, c-format msgid "EPS file \"%s\" does not start with \"%%!\" magic\n" msgstr "EPS-Datei »%s« beginnt nicht mit Kennung (»magic«) %%!\n" #: src/psgen.c:2473 #, c-format msgid "" "EPS file \"%s\" contains malformed %%%%BoundingBox row:\n" "\"%.*s\"\n" msgstr "" "EPS-Datei »%s« enthält fehlgebildete %%%%BoundingBox-Zeile:\n" "\"%.*s\"\n" #: src/psgen.c:2498 #, c-format msgid "EPS file \"%s\" is not a valid EPS file\n" msgstr "EPS-Datei »%s« ist keine gültige EPS-Datei\n" #: src/psgen.c:2640 #, c-format msgid "passing through all input files for output language `%s'\n" msgstr "" "Alle Eingabedateien werden für die Ausgabesprache »%s« weitergeleitet.\n" #: src/psgen.c:2692 #, c-format msgid "passing through %s file \"%s\"\n" msgstr "Durch %s die Datei »%s« weiterreichen.\n" # Mir ist unklar, was diese und die folgenden Meldungen meinen... -ke- #: src/psgen.c:2795 #, fuzzy, c-format msgid "couldn't create temporary divert file: %s" msgstr "Name für Umleitungsdatei kann nicht erzeugt werden: %s." #: src/psgen.c:2812 #, c-format msgid "couldn't rewind divert file: %s" msgstr "Umleitungsdatei kann nicht zurückgespult werden: %s." #: src/util.c:93 #, fuzzy, c-format msgid "missing argument: %s" msgstr "Ungültiges N-up Argument: %d." #: src/util.c:186 src/util.c:214 #, c-format msgid "illegal value \"%s\" for option %s" msgstr "Ungültiger Wert »%s« für Option %s." #: src/util.c:202 #, c-format msgid "invalid value \"%s\" for option %s" msgstr "Ungültiger Wert »%s« für Option %s." #: src/util.c:440 #, c-format msgid "illegal option: %s" msgstr "Ungültige Option: %s." #: src/util.c:619 #, c-format msgid "%s:%d: %%Format: no name" msgstr "%s:%d: %%Format: keine Name" #: src/util.c:630 #, c-format msgid "%s:%d: %%Format: too long name, maxlen=%d" msgstr "%s:%d: %%Format: zu langer Name, maxlen=%d" #: src/util.c:653 #, c-format msgid "%s:%d: %%Format: name \"%s\" is already defined" msgstr "%s:%d: %%Format: Name »%s« ist schon definiert." #: src/util.c:674 #, c-format msgid "%s:%d: %%HeaderHeight: no argument" msgstr "%s:%d: %%HeaderHeight: kein Parameter" #: src/util.c:696 #, c-format msgid "%s:%d: %%FooterHeight: no argument" msgstr "%s:%d: %%FooterHeight: kein Parameter" #: src/util.c:843 #, c-format msgid "%s: warning: font size is negative\n" msgstr "%s: Warnung: Fontgröße ist negativ.\n" #: src/util.c:845 #, c-format msgid "%s: warning: font width is negative\n" msgstr "%s: Warnung: Fontbreite ist negativ.\n" #: src/util.c:847 #, c-format msgid "%s: warning: font height is negative\n" msgstr "%s: Warnung: Fonthöhe ist negativ.\n" #: src/util.c:866 #, c-format msgid "reading AFM info for font \"%s\"\n" msgstr "Lese AFM-Information für Font »%s«.\n" #: src/util.c:899 #, c-format msgid "couldn't open AFM file for font \"%s\", using default\n" msgstr "" "Kann AFM-Datei für Font »%s« nicht öffnen, nehme Vorgabe (»default«).\n" #: src/util.c:906 #, c-format msgid "couldn't open AFM file for the default font: %s" msgstr "Kann AFM-Datei für den Vorgabe-Font nicht öffnen: %s." #: src/util.c:1095 #, c-format msgid "downloading font \"%s\"\n" msgstr "Lade Font »%s«.\n" #: src/util.c:1100 #, c-format msgid "couldn't open font description file \"%s\": %s\n" msgstr "Kann Datei für Font-Beschreibung »%s« nicht öffnen: %s.\n" #: src/util.c:1392 #, c-format msgid "%s: too long format for %%D{} escape" msgstr "%s: Zu langes Format für Escape-Zeichen %%D{}." # ### was ist gemeint??? #: src/util.c:1477 #, c-format msgid "%s: unknown `%%' escape `%c' (%d)" msgstr "%s: Unbekanntes `%%' Escape-Zeichen '%c' (%d)." #: src/util.c:1515 #, c-format msgid "%s: no closing ')' for $() escape" msgstr "%s: Keine schließende ')' für das Escape-Zeichen $()." #: src/util.c:1518 #, c-format msgid "%s: too long variable name for $() escape" msgstr "%s: Zu langer Variablen-Name für das Escape-Zeichen $()." #: src/util.c:1545 #, c-format msgid "%s: too long format for $D{} escape" msgstr "%s: Zu langes Format für das Escape-Zeichen $D{}." #: src/util.c:1633 #, c-format msgid "%s: unknown `$' escape `%c' (%d)" msgstr "%s: Unbekanntes '$'-Escape-Zeichen '%c' (%d)." # Gegenwärtig nur für Einrückung verwendet #: src/util.c:1824 #, c-format msgid "malformed float dimension: \"%s\"" msgstr "Fehlformatierte Dimensionsangabe: \"%s\"." #: src/util.c:1946 #, c-format msgid "couldn't open input filter \"%s\" for file \"%s\": %s" msgstr "Kann Eingabefilter »%s« für Datei »%s« nicht öffnen: %s." #: src/util.c:1963 #, c-format msgid "couldn't open input file \"%s\": %s" msgstr "Kann Eingabedatei »%s« nicht öffnen: %s." #: src/mkafmmap.c:167 #, c-format msgid "file=%s\n" msgstr "Datei=%s\n" #: src/mkafmmap.c:167 msgid "stdout" msgstr "Standardausgabe" #: src/mkafmmap.c:175 #, c-format msgid "%s: couldn't open output file \"%s\"" msgstr "%s: Kann Ausgabedatei »%s« nicht öffnen." #: src/mkafmmap.c:189 msgid "couldn't create AFM library" msgstr "Kann AFM-Bibliothek nicht erzeugen." #: src/mkafmmap.c:238 #, c-format msgid "" "Usage: %s [OPTION]... FILE...\n" "Mandatory arguments to long options are mandatory for short options too.\n" " -h, --help print this help and exit\n" " -p, --output-file=NAME print output to file NAME (default file is\n" " font.map). If FILE is `-', leavy output to\n" " stdout.\n" " -V, --version print version number\n" msgstr "" "Aufruf: %s [OPTION]... [DATEI] ...\n" "Notwendige Argumente für lange Optionen sind auch für kurze notwendig.\n" " -h, --help Diese Hilfe anzeigen und beenden.\n" " -p, --output-file=NAME Sende Ausgabe zu Datei NAME (Standard ist font." "map)\n" " Wenn NAME »-« ist, verwende Standardausgabe.\n" " -V, --version Gib die Versionsnummer aus.\n" #: states/lex.l:167 states/lex.l:173 msgid "error: EOF in comment" msgstr "Fehler: EOF in Kommentar." #: states/lex.l:204 msgid "error: EOF in string constant" msgstr "Fehler: EOF in Zeichenkonstante." #: states/lex.l:311 msgid "error: EOF in regular expression" msgstr "Fehler: EOF in regulärem Ausdruck." #: states/main.c:197 #, fuzzy, c-format msgid "states for %s" msgstr "states für GNU %s %s" #: states/main.c:252 #, c-format msgid "%s: malformed variable definition \"%s\"\n" msgstr "%s: Fehlformatierte Variablendefinition »%s«.\n" #: states/main.c:280 #, c-format msgid "%s: couldn't create output file \"%s\": %s\n" msgstr "%s: Kann Ausgabedatei »%s« nicht anlegen: %s.\n" #: states/main.c:311 #, c-format msgid "%s: unknown warning level `%s'\n" msgstr "%s: Unbekannte Warnstufe »%s«.\n" #: states/main.c:360 states/main.c:396 states/prims.c:1375 states/utils.c:227 #, c-format msgid "%s: out of memory\n" msgstr "%s: Hauptspeicher erschöpft.\n" #: states/main.c:421 #, c-format msgid "%s: couldn't open input file `%s': %s\n" msgstr "%s: Kann Eingabedatei »%s« nicht öffnen: %s.\n" #: states/main.c:445 #, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Aufruf: %s [OPTION]... [DATEI] ...\n" "Notwendige Argumente für lange Optionen sind auch für kurze notwendig.\n" #: states/main.c:449 #, fuzzy, c-format msgid "" " -D, --define=VAR=VAL define variable VAR to have value VAL\n" " -f, --file=NAME read state definitions from file NAME\n" " -h, --help print this help and exit\n" " -o, --output=NAME save output to file NAME\n" " -p, --path=PATH set the load path to PATH\n" " -s, --state=NAME start from state NAME\n" " -v, --verbose increase the program verbosity\n" " -V, --version print version number\n" " -W, --warning=LEVEL set the warning level to LEVEL\n" msgstr "" " -D, --define=VAR=WERT Definierte Variable VAR mit Wert WERT.\n" " -f, --file=NAME Lese Zustandsdefinitionen von Datei NAME.\n" " -h, --help Zeige diese Hilfe und beende.\n" " -o, --output=NAME Speichere die Ausgabe in Datei NAME.\n" " -p, --path=PFAD Suchpfad auf PFAD setzen.\n" " -s, --state=NAME Starte von Zustand NAME.\n" " -v, --verbose Gesprächigkeit des Programms erhöhen.\n" " -V, --version Die Versionsnummer ausgeben.\n" " -W, --warning=STUFE Warnstufe auf STUFE setzen.\n" #: states/prims.c:44 #, fuzzy, c-format msgid "%s:%d: %s: too few arguments\n" msgstr "%s:%d: %s: Ungültiger Argumenttyp.\n" #: states/prims.c:54 #, fuzzy, c-format msgid "%s:%d: %s: too many arguments\n" msgstr "%s:%d: %s: Ungültiger Argumenttyp.\n" #: states/prims.c:107 states/prims.c:127 states/prims.c:253 states/prims.c:426 #: states/prims.c:901 #, c-format msgid "%s:%d: %s: illegal argument type\n" msgstr "%s:%d: %s: Ungültiger Argumenttyp.\n" #: states/prims.c:468 #, c-format msgid "%s: panic: " msgstr "%s: Panik: " #: states/prims.c:502 #, c-format msgid "%s:%d: %s: malformed version string `%s'\n" msgstr "%s:%d: %s: Falsch geschriebener Versionsstring »%s«.\n" #: states/prims.c:517 #, c-format msgid "" "%s: FATAL ERROR: States version %s or higher is required for this script\n" msgstr "" "%s: FATALER FEHLER: states Version %s oder höher wird für dieses Skript " "benötigt.\n" #: states/prims.c:608 states/prims.c:1274 #, c-format msgid "%s:%d: %s: start offset is bigger than end offset\n" msgstr "%s:%d: %s: Startoffset ist größer als Endoffset.\n" #: states/prims.c:617 states/prims.c:633 states/prims.c:1280 #, c-format msgid "%s:%d: %s: offset out of range\n" msgstr "%s:%d: %s: Offset nicht im gültigen Bereich.\n" #: states/prims.c:651 #, c-format msgid "%s:%d: %s: illegal argument\n" msgstr "%s:%d: %s: Ungültiger Argumenttyp.\n" #: states/prims.c:698 #, c-format msgid "%s:%d: %s: illegal regexp character syntax: %c\n" msgstr "%s:%d: %s: Illegales Zeichen »%c« für Syntax regulärer Ausdrücke.\n" #: states/prims.c:913 #, c-format msgid "%s:%d: %s: couldn't define state `%s'\n" msgstr "%s:%d: %s: Konnte Zustand »%s« nicht definieren.\n" #: states/prims.c:1010 #, c-format msgid "%s: primitive `%s': too few arguments for format\n" msgstr "%s: Primitiv »%s«: Zu wenig Argumente für Format.\n" #: states/prims.c:1038 #, c-format msgid "%s:%d: %s: argument %d doesn't match format\n" msgstr "%s:%d: %s: Argument %d paßt nicht zum Format.\n" #: states/prims.c:1078 #, c-format msgid "%s:%d: %s: no extra options can be specified for %%s\n" msgstr "%s:%d: %s: Für %%s sind weitere Optionen nicht erlaubt.\n" #: states/prims.c:1087 #, c-format msgid "%s:%d: %s: illegal type specifier `%c'\n" msgstr "%s:%d: %s: Ungültiges Typflag »%c«.\n" #: states/process.c:115 #, c-format msgid "%s: undefined state `%s'\n" msgstr "%s: Undefinierter Zustand »%s«.\n" #: states/process.c:196 #, c-format msgid "%s: error: undefined variable `%s'\n" msgstr "%s: Fehler: Undefinierte Variable »%s«.\n" #: states/process.c:290 #, c-format msgid "%s: undefined super state `%s'\n" msgstr "%s: Undefinierter Oberzustand »%s«.\n" #: states/utils.c:260 #, c-format msgid "%s:%d: couldn't compile regular expression \"%s\": %s\n" msgstr "%s:%d: Konnte regulären Ausdruck »%s« nicht übersetzen: %s\n" #: states/utils.c:449 states/utils.c:477 #, c-format msgid "%s: ouf of memory" msgstr "%s: Hauptspeicher erschöpft." #: states/utils.c:454 #, c-format msgid "warning: redefining state `%s'" msgstr "Warnung: Zustand »%s« wird redefiniert." #: states/utils.c:481 #, c-format msgid "%s:%d: warning: redefining subroutine `%s'\n" msgstr "%s:%d: Warnung: Subroutine »%s« wird redefiniert.\n" #: states/utils.c:578 #, c-format msgid "%s:%d: error: undefined variable `%s'\n" msgstr "%s:%d: Fehler: Undefinierte Variable »%s«.\n" #: states/utils.c:616 #, c-format msgid "%s:%d: error: couldn't set variable `%s'\n" msgstr "%s:%d: Fehler: Konnte Variable »%s« nicht setzen.\n" #: states/utils.c:767 #, c-format msgid "%s:%d: error: expression between illegal types\n" msgstr "%s:%d: Fehler: Ausdruck mit ungültigen Typen.\n" #: states/utils.c:865 #, fuzzy, c-format msgid "%s:%d: error: too few arguments for subroutine\n" msgstr "%s: Zu wenig Argumente für Subroutine.\n" #: states/utils.c:872 #, fuzzy, c-format msgid "%s:%d: error: too many arguments for subroutine\n" msgstr "%s: Zu viele Argumente für Subroutine.\n" #: states/utils.c:926 #, fuzzy, c-format msgid "%s:%d: error: undefined procedure `%s'\n" msgstr "%s: Undefinierte Prozedur »%s«.\n" #: states/utils.c:1018 #, c-format msgid "%s:%d: error: illegal lvalue for assignment\n" msgstr "%s:%d: Fehler: Ungültiger L-Wert in Zuweisung.\n" #: states/utils.c:1026 states/utils.c:1110 #, c-format msgid "%s:%d: error: array reference index is not integer\n" msgstr "%s:%d: Fehler: Feldindex ist keine Ganzzahl.\n" #: states/utils.c:1032 #, c-format msgid "%s:%d: error: negative array reference index\n" msgstr "%s:%d: Fehler: Negativer Feldindex.\n" #: states/utils.c:1083 #, c-format msgid "%s:%d: error: illegal rvalue for string assignment\n" msgstr "%s:%d: Fehler: Ungültiger R-Wert in Stringzuweisung.\n" #: states/utils.c:1102 #, c-format msgid "%s:%d: error: illegal type for array reference\n" msgstr "%s:%d: Fehler: Ungültiger Typ als Feldreferenz.\n" #: states/utils.c:1119 #, fuzzy, c-format msgid "%s:%d: error: array reference index out of range\n" msgstr "%s:%d: Fehler: Feldindex außerhalb des zulässigen Bereichs.\n" #: states/utils.c:1345 #, c-format msgid "%s: couldn't open definition file `%s': %s\n" msgstr "%s: Kann Definitionsdatei »%s« nicht öffnen: %s.\n" #: states/utils.c:1401 #, c-format msgid "%s: autoloading `%s' from `%s'\n" msgstr "%s: »%s« wird automatisch von »%s« geladen.\n" #~ msgid "couldn't create toc file \"%s\": %s" #~ msgstr "Datei für Inhaltsverzeichnis kann nicht angelegt werden »%s«: %s." #~ msgid "[ %d pages * %d copy ]" #~ msgstr "[ %d Seiten * %d Kopie ]" #~ msgid "epsf: couldn't open pipe to command \"%s\": %s\n" #~ msgstr "epsf: Kann Pipe zum Befehl »%s« nicht öffnen: %s.\n" #~ msgid "couldn't create divert file \"%s\": %s" #~ msgstr "Umleitungsdatei »%s« kann nicht angelegt werden: %s." enscript-1.6.5.90/po/quot.sed0000644000175000017500000000023111606344064012625 00000000000000s/"\([^"]*\)"/“\1â€/g s/`\([^`']*\)'/‘\1’/g s/ '\([^`']*\)' / ‘\1’ /g s/ '\([^`']*\)'$/ ‘\1’/g s/^'\([^`']*\)' /‘\1’ /g s/“â€/""/g enscript-1.6.5.90/po/Makevars0000644000175000017500000000207311132443251012632 00000000000000# 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 = enscript-1.6.5.90/po/de.gmo0000644000175000017500000004645211606344232012250 00000000000000Þ•¨\㜠(;)e y †$“I¸)"+L&x"Ÿ#ÂCæ*D'^!†,¨Õ%ó,-F t&•¼Î á1í#$C)h’¬ Ì!í/O%o#•$¹"Þ-/)H"r,•&Âé!/('X)€5ªà2433h)œ/Æ,ö3#/W-‡&µ+Ü=.F&u$œIÁ "?[$s˜ªÅ$Öû##Gbj|&¶ÈÚ ìvùipÚ$ö) -E 2s ¦ (Å 4î /#!S! q!-’!!À!1â!"3"S"!p"%’"¸"Ï" å"#'$#L#U#!o##‘#µ#È#+ç#$ .$ O$%p$$–$x»$!4%-V%%„%(ª%Ó%)ó%&5&#U&.y&¨&)½&ç&ú& '9+'e'm'†'I¦'ð'(C(%[(*( ¬(+¶(â(÷(;)HN)—)¶)&¾)&å)) *x6*£¯+S/g/y/&Œ/R³/,0.301b0-”0(Â0(ë0I1^1{1.˜15Ç1,ý1 *2*K2,v2-£2#Ñ2(õ23;3 Y32e31˜3.Ê38ù3 24$S4-x4.¦4Õ4"õ4"5#;5$_5%„5%ª5/Ð56*6%G6.m61œ6#Î6#ò6B7$Y75~78´7-í718;M8-‰82·8.ê8/95I909$°9+Õ92:C4:7x:+°:&Ü:F;J;&a;ˆ;§;1Â;ô; <*<4G<|<%’<)¸<â<ý<==+3=&_=%†=&¬=Ó=qð=jb?#Í?)ñ?0@@L@9@0Ç@1ø@F*A5qA%§A&ÍA8ôA(-B8VB*B4ºBAïB61C#hCŒCC"·C ÚC<ûC 8DBD>`D2ŸDÒD1èD-E'HE#pE#”E4¸E3íEz!F7œFAÔF;GARG'”GC¼G.H//H!_H0H²H(ÊHóH I'%IGMI•II$¶IKÛI$'JLJO\J2¬J7ßJKK3KK'˜KJÀKK L'WLL.œL.ËL/úLˆš%pGg„Oy4{mX[C.B¦ jd¨;“U0z=N"a ~7P!Ž3Y ¡\@D‚)Rtwl}Q5’]”>ŠAr†`/b˜‘8x |H9‡M-™T'§E€£‹h–o+^Zu—1cIF<ƒvJL_kž›#Œœ$V&q‰Ke…2?(s¢¤i f•6*¥W:nSŸ,  -L, --lines-per-page=NUM specify how many lines are printed on each page -m, --mail send mail upon completion -M, --media=NAME use output media NAME -n, --copies=NUM print NUM copies of each page -N, --newline=NL select the newline character. Possible values for NL are: n (`\n') and r (`\r'). -o an alias for option --output -O, --missing-characters list missing characters -p, --output=FILE leave output to file FILE. If FILE is `-', leave output to stdout. -P, --printer=NAME print output to printer NAME -q, --quiet, --silent be really quiet -r, --landscape print in landscape mode -R, --portrait print in portrait mode option %d = "%s" left in %s sent to %s $3v $-40N $3% pages $4L lines $E $C%s: FATAL ERROR: States version %s or higher is required for this script %s: autoloading `%s' from `%s' %s: couldn't create output file "%s": %s %s: couldn't open definition file `%s': %s %s: couldn't open input file `%s': %s %s: couldn't open output file "%s"%s: error: undefined variable `%s' %s: illegal newline character specifier: '%s': expected 'n' or 'r' %s: illegal option -- %c %s: invalid option -- %c %s: malformed variable definition "%s" %s: no closing ')' for $() 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: ouf of memory%s: out of memory %s: panic: %s: primitive `%s': too few arguments for format %s: too long format for $D{} escape%s: too long format for %%D{} escape%s: too long variable name for $() escape%s: undefined state `%s' %s: undefined super state `%s' %s: unknown `$' escape `%c' (%d)%s: unknown `%%' escape `%c' (%d)%s: unknown warning level `%s' %s: unrecognized option `%c%s' %s: unrecognized option `--%s' %s: warning: font height is negative %s: warning: font size is negative %s: warning: font width is negative %s:%d: %%FooterHeight: no argument%s:%d: %%Format: name "%s" is already defined%s:%d: %%Format: no name%s:%d: %%Format: too long name, maxlen=%d%s:%d: %%HeaderHeight: no argument%s:%d: %s: argument %d doesn't match format %s:%d: %s: couldn't define state `%s' %s:%d: %s: illegal argument %s:%d: %s: illegal argument type %s:%d: %s: illegal regexp character syntax: %c %s:%d: %s: illegal type specifier `%c' %s:%d: %s: malformed version string `%s' %s:%d: %s: no extra options can be specified for %%s %s:%d: %s: offset out of range %s:%d: %s: start offset is bigger than end offset %s:%d: couldn't compile regular expression "%s": %s %s:%d: error: array reference index is not integer %s:%d: error: couldn't set variable `%s' %s:%d: error: expression between illegal types %s:%d: error: illegal lvalue for assignment %s:%d: error: illegal rvalue for string assignment %s:%d: error: illegal type for array reference %s:%d: error: negative array reference index %s:%d: error: undefined variable `%s' %s:%d: warning: redefining subroutine `%s' EPS file "%s" contains malformed %%%%BoundingBox row: "%.*s" EPS file "%s" does not start with "%%!" magic EPS file "%s" is not a valid EPS file EPS file "%s" is too large for page Highlighting is supported for the following languages and file formats: Invalid back referenceInvalid character class nameInvalid collation characterInvalid content of \{\}Invalid preceding regular expressionInvalid range endInvalid regular expressionMemory exhaustedN-up argument must be power of 2: %dNo matchNo previous regular expressionPremature end of regular expressionRegular expression too bigSuccessTable of ContentsTrailing backslashTry `%s --help' for more information. Unmatched ( or \(Unmatched ) or \)Unmatched [ or [^Unmatched \{Usage: %s [OPTION]... FILE... Mandatory arguments to long options are mandatory for short options too. -h, --help print this help and exit -p, --output-file=NAME print output to file NAME (default file is font.map). If FILE is `-', leavy output to stdout. -V, --version print version number Usage: %s [OPTION]... [FILE]... Mandatory arguments to long options are mandatory for short options too. couldn't create AFM librarycouldn't create output file "%s": %scouldn't find encoding file "%s.enc": %s couldn't find header definition file "%s.hdr"couldn't find header definition file "%s.hdr": %s couldn't find prolog "%s": %s couldn't get passwd entry for uid=%d: %scouldn't open AFM file for font "%s", using default couldn't open AFM file for the default font: %scouldn't open AFM library: %scouldn't open EPS file "%s": %s couldn't open font description file "%s": %s couldn't open input file "%s": %scouldn't open input filter "%s" for file "%s": %scouldn't open printer `%s': %scouldn't rewind divert file: %scouldn't rewind toc file: %scouldn't stat input file "%s": %sdo not know anything about media "%s"downloading font "%s" error: EOF in commenterror: EOF in regular expressionerror: EOF in string constantfile alignment must be larger than zerofile=%s illegal N-up argument: %dillegal non-printable format "%s"illegal option %c for ^@epsf escapeillegal option: %sillegal page label format "%s"illegal style for wrapped line marker: "%s"illegal underlay style: %sillegal value "%s" for option %sinvalid value "%s" for option %sinvalid value for ^@bggray escape: %sinvalid value for ^@shade escape: %sknown media: name width height llx lly urx ury ------------------------------------------------------------ malformed %s escape: no '{' foundmalformed ^@epsf escape: no ']' after optionsmalformed ^@epsf escape: no '{' foundmalformed color spec for ^@%s escape: %smalformed float dimension: "%s"malformed font spec for ^@font escape: %smalformed font spec: %smalformed underlay position: %smissing character codes (decimal): must print at least one line per each page: %sno output generated non-printable character codes (decimal): output left in %s output sent to %s passing through %s file "%s" passing through all input files for output language `%s' printerprocessing file "%s"... reading AFM info for font "%s" set new marginals for media `%s' (%dx%d): llx=%d, lly=%d, urx=%d, ury=%d slice must be greater than zerostdoutsyntax error in option string %s="%s": missing end of quotation: %ctoo long argument for %s escape: %.*stoo long file name for ^@epsf escape: %.*struncatedunexpected EOF while scanning ^@epsf escapeunknown encoding: %sunknown special escape: %suser font encoding can be only the system's default or `ps'warning: didn't process following options from environment variable %s: warning: redefining state `%s'wrappedxcalloc(): couldn't allocate %d bytes xmalloc(): couldn't allocate %d bytes xrealloc(): couldn't reallocate %d bytes Project-Id-Version: GNU enscript 1.6.2 Report-Msgid-Bugs-To: bug-enscript@gnu.org POT-Creation-Date: 2011-07-10 16:43+0100 PO-Revision-Date: 1999-04-08 22:13+02:00 Last-Translator: Martin von Löwis Language-Team: German Language: de MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8-bit -L, --lines-per-page=ZAHL ZAHL der Zeilen pro Seite festlegen. -m, --mail Am Ende E-Mail versenden. -M, --media=NAME Ausgabemedium NAME nehmen. -n, --copies=ZAHL ZAHL der Kopien. -N, --newline=NZ "Neue Zeile"-Zeichen (»newline«) auswählen. Mögliche Werte für NZ: n (`\n') und r (`\r'). -o Alias für die Option --output. -O, --missing-characters Fehlenden Zeichenkode anzeigen. -p, --output=DATEI Ausgabe in die DATEI leiten. Wenn als DATEI '-' angegeben ist, Ausgabe nach `stdout' leiten. -P, --printer=NAME Ausgabe zum Drucker NAME leiten. -q, --quiet, --silent Keine Meldungen (»quiet«). -r, --landscape Im Querformat (»landscape mode«) drucken. -R, --portrait Im Längsformat (»portrait mode«) drucken. Option %d = "%s" abgelegt in: %s geschickt zu: %s $3v $-40N $3% Seiten $4L Zeilen $E $C%s: FATALER FEHLER: states Version %s oder höher wird für dieses Skript benötigt. %s: »%s« wird automatisch von »%s« geladen. %s: Kann Ausgabedatei »%s« nicht anlegen: %s. %s: Kann Definitionsdatei »%s« nicht öffnen: %s. %s: Kann Eingabedatei »%s« nicht öffnen: %s. %s: Kann Ausgabedatei »%s« nicht öffnen.%s: Fehler: Undefinierte Variable »%s«. %s: Ungültiger Bezeichner für »Neue Zeile«: '%s': erwartet 'n' oder 'r'. %s: Ungültige Option -- %c. %s: Ungültige Option -- %c. %s: Fehlformatierte Variablendefinition »%s«. %s: Keine schließende ')' für das Escape-Zeichen $().%s: Option »%c%s« erlaubt keinen Parameter. %s: Option »%s« ist zweideutig. %s: Option »%s« verlangt 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: Hauptspeicher erschöpft.%s: Hauptspeicher erschöpft. %s: Panik: %s: Primitiv »%s«: Zu wenig Argumente für Format. %s: Zu langes Format für das Escape-Zeichen $D{}.%s: Zu langes Format für Escape-Zeichen %%D{}.%s: Zu langer Variablen-Name für das Escape-Zeichen $().%s: Undefinierter Zustand »%s«. %s: Undefinierter Oberzustand »%s«. %s: Unbekanntes '$'-Escape-Zeichen '%c' (%d).%s: Unbekanntes `%%' Escape-Zeichen '%c' (%d).%s: Unbekannte Warnstufe »%s«. %s: Nicht erkannte Option »%c%s«. %s: Nicht erkannte Option »--%s«. %s: Warnung: Fonthöhe ist negativ. %s: Warnung: Fontgröße ist negativ. %s: Warnung: Fontbreite ist negativ. %s:%d: %%FooterHeight: kein Parameter%s:%d: %%Format: Name »%s« ist schon definiert.%s:%d: %%Format: keine Name%s:%d: %%Format: zu langer Name, maxlen=%d%s:%d: %%HeaderHeight: kein Parameter%s:%d: %s: Argument %d paßt nicht zum Format. %s:%d: %s: Konnte Zustand »%s« nicht definieren. %s:%d: %s: Ungültiger Argumenttyp. %s:%d: %s: Ungültiger Argumenttyp. %s:%d: %s: Illegales Zeichen »%c« für Syntax regulärer Ausdrücke. %s:%d: %s: Ungültiges Typflag »%c«. %s:%d: %s: Falsch geschriebener Versionsstring »%s«. %s:%d: %s: Für %%s sind weitere Optionen nicht erlaubt. %s:%d: %s: Offset nicht im gültigen Bereich. %s:%d: %s: Startoffset ist größer als Endoffset. %s:%d: Konnte regulären Ausdruck »%s« nicht übersetzen: %s %s:%d: Fehler: Feldindex ist keine Ganzzahl. %s:%d: Fehler: Konnte Variable »%s« nicht setzen. %s:%d: Fehler: Ausdruck mit ungültigen Typen. %s:%d: Fehler: Ungültiger L-Wert in Zuweisung. %s:%d: Fehler: Ungültiger R-Wert in Stringzuweisung. %s:%d: Fehler: Ungültiger Typ als Feldreferenz. %s:%d: Fehler: Negativer Feldindex. %s:%d: Fehler: Undefinierte Variable »%s«. %s:%d: Warnung: Subroutine »%s« wird redefiniert. EPS-Datei »%s« enthält fehlgebildete %%%%BoundingBox-Zeile: "%.*s" EPS-Datei »%s« beginnt nicht mit Kennung (»magic«) %%! EPS-Datei »%s« ist keine gültige EPS-Datei EPS-Datei »%s« ist zu groß für Seite. Hervorhebung ist für folgende Sprachen und Dateiformate unterstützt: Ungültiger RückverweisUngültiger Name für eine ZeichenklasseUngültiger VergleichsbuchstabeUngültiger Inhalt von \{\}Der vorherige reguläre Ausdruck ist nicht korrektUngültiges BereichsendeUngültiger regulärer AusdruckKein Speicher mehr verfügbarDas Argument von N-up muß eine Zweierpotenz sein: %dKeine ÜbereinstimmungKein vorangehender regulärer AusdruckUnerwartetes Ende des regulären AusdrucksRegulärer Ausdruck zu großErfolgInhaltsverzeichnisAngehängter Backslash (»\«)»%s --help« gibt Ihnen mehr Informationen. »(« oder »\(« ohne schließende Klammer»)« order »\\)« ohne öffnende Klammer»[« oder »[^« ohne schließende Klammer»{« ohne schließende KlammerAufruf: %s [OPTION]... [DATEI] ... Notwendige Argumente für lange Optionen sind auch für kurze notwendig. -h, --help Diese Hilfe anzeigen und beenden. -p, --output-file=NAME Sende Ausgabe zu Datei NAME (Standard ist font.map) Wenn NAME »-« ist, verwende Standardausgabe. -V, --version Gib die Versionsnummer aus. Aufruf: %s [OPTION]... [DATEI] ... Notwendige Argumente für lange Optionen sind auch für kurze notwendig. Kann AFM-Bibliothek nicht erzeugen.Kann Ausgabedatei »%s« nicht anlegen: %s.Kann Kodierungsdatei »%s.enc« nicht finden: %s. Kann Definitionsdatei »%s.hdr« für die Kopfangaben nicht finden.Kann Datei »%s.hdr« für die Kopfangabe nicht finden: %s. Kann Vorspann (»prolog«) »%s« nicht finden: %s. Kein Passwort-Eintrag für UID=%d zu bekommen: %s.Kann AFM-Datei für Font »%s« nicht öffnen, nehme Vorgabe (»default«). Kann AFM-Datei für den Vorgabe-Font nicht öffnen: %s.Kann AFM-Bibliothek nicht öffnen: %s.Kann EPS-Datei »%s« nicht öffnen: %s. Kann Datei für Font-Beschreibung »%s« nicht öffnen: %s. Kann Eingabedatei »%s« nicht öffnen: %s.Kann Eingabefilter »%s« für Datei »%s« nicht öffnen: %s.Kann nicht auf Drucker »%s« zugreifen: %s.Umleitungsdatei kann nicht zurückgespult werden: %s.Inhaltsverzeichnis kann nicht an Anfang zurückgesetzt werden: %s.Kann Eingabedatei »%s« nicht feststellen (»stat«): %s.Nichts von dem Medium »%s« bekannt.Lade Font »%s«. Fehler: EOF in Kommentar.Fehler: EOF in regulärem Ausdruck.Fehler: EOF in Zeichenkonstante.Ausrichtung der Datei (»aligment«) muss größer als Null seinDatei=%s Ungültiges N-up Argument: %d.Ungültiges, nicht auszugebendes Format (»non-printable«) "%s".Ungültige Option %c für das Escape-Zeichen ^@epsf.Ungültige Option: %s.ungültiges Format für die Seitenbezeichnung »%s«.Ungültiger Stil für Umbruchsmarkierung: »%s«.Unerlaubter Stil von Wasserzeichen: %s.Ungültiger Wert »%s« für Option %s.Ungültiger Wert »%s« für Option %s.Ungültiger Wert für das Escape-Zeichen ^@bggray: %s.Ungültiger Wert für das Escape-Zeichen ^@shade: %s.bekannte Medien: Name Weite Höhe llx lly urx ury ------------------------------------------------------------ Fehlformatiertes Escape-Zeichen %s: keine '{' gefunden.Fehlgebildetes Escape-Zeichen ^@epsf: kein ']' nach den Optionen.Fehlformatiertes Escape-Zeichen ^@epsf: keine '{' gefunden.Fehlformatierte Farbspezifikation für das Escape-Zeichen ^@%s: %sFehlformatierte Dimensionsangabe: "%s".Fehlformatierte Fontspezifikation für das Escape-Zeichen ^@font: %sunpassende (»malformed«) Fontspezifikation: %sFehlformatierte Position für Wasserzeichen: %s.fehlende Zeichencodes (dezimal): muss wenigstens eine Zeile pro Seite drucken: %sKeine Ausgabe erzeugt. nicht druckbare Zeichencodes (dezimal): Ausgabe abgelegt in %s. Ausgabe gesendet an %s. Durch %s die Datei »%s« weiterreichen. Alle Eingabedateien werden für die Ausgabesprache »%s« weitergeleitet. Druckerbearbeite Datei »%s«... Lese AFM-Information für Font »%s«. Neue Ränder für Medium »%s« setzen (%dx%d): lux=%d, luy=%d, rox=%d, roy=%d Abschnitt muss größer als Null sein.StandardausgabeSyntaxfehler in der Option %s=»%s«: fehlendes Ende des Zitats (»quotation«): %cZu langes Argument für das Escape-Zeichen %s: %.*sZu langer Dateiname für das Escape-Zeichen ^@epsf: %.*sabgeschnitten (»truncated«)Unerwartetes EOF während Durchsicht (»scanning«) des Escape-Zeichens ^@epsfunbekannte Kodierung: %sUnbekanntes Spezial-Escape-Zeichen: %s.Nutzerdefinierte Fontkodierung kann nur der Systemstandard oder »ps« sein.ACHTUNG: folgende Optionen von der Umgebungsvariablen %s nicht ausgeführt: Warnung: Zustand »%s« wird redefiniert.zusammengedrängt (»wrapped«)xcalloc(): Habe keine %d Bytes mehr erhalten. xmalloc(): Habe keine %d Bytes mehr erhalten. xrealloc(): Habe keine %d Bytes mehr erhalten. enscript-1.6.5.90/po/en@quot.header0000644000175000017500000000226311606344064013734 00000000000000# 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. # enscript-1.6.5.90/po/en_GB.po0000644000175000017500000011773211606344231012465 00000000000000# British English Translation for enscript # Copyright (C) 2003 Free Software Foundation, Inc. # Nigel Titley , 2003. # msgid "" msgstr "" "Project-Id-Version: enscript 1.6.3\n" "Report-Msgid-Bugs-To: bug-enscript@gnu.org\n" "POT-Creation-Date: 2011-07-10 16:43+0100\n" "PO-Revision-Date: 2003-01-31 15:32+0000\n" "Last-Translator: Nigel Titley \n" "Language-Team: English (British) \n" "Language: en_GB\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit\n" #: compat/getopt.c:628 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "%s: option `%s' is ambiguous\n" #: compat/getopt.c:652 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "%s: option `--%s' doesn't allow an argument\n" #: compat/getopt.c:657 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "%s: option `%c%s' doesn't allow an argument\n" #: compat/getopt.c:674 compat/getopt.c:847 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "%s: option `%s' requires an argument\n" #: compat/getopt.c:703 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "%s: unrecognized option `--%s'\n" #: compat/getopt.c:707 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "%s: unrecognized option `%c%s'\n" #: compat/getopt.c:733 #, c-format msgid "%s: illegal option -- %c\n" msgstr "%s: illegal option -- %c\n" #: compat/getopt.c:736 #, c-format msgid "%s: invalid option -- %c\n" msgstr "%s: invalid option -- %c\n" #: compat/getopt.c:766 compat/getopt.c:896 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: option requires an argument -- %c\n" #: compat/getopt.c:813 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "%s: option `-W %s' is ambiguous\n" #: compat/getopt.c:831 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s: option `-W %s' doesn't allow an argument\n" #: compat/xalloc.c:70 #, c-format msgid "xmalloc(): couldn't allocate %d bytes\n" msgstr "xmalloc(): couldn't allocate %d bytes\n" #: compat/xalloc.c:88 #, c-format msgid "xcalloc(): couldn't allocate %d bytes\n" msgstr "xcalloc(): couldn't allocate %d bytes\n" #: compat/xalloc.c:109 #, c-format msgid "xrealloc(): couldn't reallocate %d bytes\n" msgstr "xrealloc(): couldn't reallocate %d bytes\n" #: compat/regex.c:996 msgid "Success" msgstr "Success" #: compat/regex.c:997 msgid "No match" msgstr "No match" #: compat/regex.c:998 msgid "Invalid regular expression" msgstr "Invalid regular expression" #: compat/regex.c:999 msgid "Invalid collation character" msgstr "Invalid collation character" #: compat/regex.c:1000 msgid "Invalid character class name" msgstr "Invalid character class name" #: compat/regex.c:1001 msgid "Trailing backslash" msgstr "Trailing backslash" #: compat/regex.c:1002 msgid "Invalid back reference" msgstr "Invalid back reference" #: compat/regex.c:1003 msgid "Unmatched [ or [^" msgstr "Unmatched [ or [^" #: compat/regex.c:1004 msgid "Unmatched ( or \\(" msgstr "Unmatched ( or \\(" #: compat/regex.c:1005 msgid "Unmatched \\{" msgstr "Unmatched \\{" #: compat/regex.c:1006 msgid "Invalid content of \\{\\}" msgstr "Invalid content of \\{\\}" #: compat/regex.c:1007 msgid "Invalid range end" msgstr "Invalid range end" #: compat/regex.c:1008 msgid "Memory exhausted" msgstr "Memory exhausted" #: compat/regex.c:1009 msgid "Invalid preceding regular expression" msgstr "Invalid preceding regular expression" #: compat/regex.c:1010 msgid "Premature end of regular expression" msgstr "Premature end of regular expression" #: compat/regex.c:1011 msgid "Regular expression too big" msgstr "Regular expression too big" #: compat/regex.c:1012 msgid "Unmatched ) or \\)" msgstr "Unmatched ) or \\)" #: compat/regex.c:5458 msgid "No previous regular expression" msgstr "No previous regular expression" #: src/main.c:949 #, no-c-format msgid "$3v $-40N $3% pages $4L lines $E $C" msgstr "$3v $-40N $3% pages $4L lines $E $C" #: src/main.c:979 #, c-format msgid "couldn't get passwd entry for uid=%d: %s" msgstr "couldn't get passwd entry for uid=%d: %s" #: src/main.c:1071 #, c-format msgid "couldn't read config file \"%s/%s\": %s" msgstr "couldn't read config file \"%s/%s\": %s" #: src/main.c:1075 msgid "I did also try the following directories:" msgstr "I did also try the following directories:" #: src/main.c:1076 src/main.c:1077 src/main.c:1078 #, c-format msgid "\t%s" msgstr "\t%s" #: src/main.c:1079 msgid "\t../lib" msgstr "\t../lib" #: src/main.c:1080 msgid "\t../../lib" msgstr "\t../../lib" #: src/main.c:1082 msgid "This is probably an installation error. Please, try to rebuild:" msgstr "This is probably an installation error. Please, try to rebuild:" #: src/main.c:1083 msgid "\tmake distclean" msgstr "\tmake distclean" #: src/main.c:1084 msgid "\t./configure --prefix=PREFIX" msgstr "\t./configure --prefix=PREFIX" #: src/main.c:1085 msgid "\tmake" msgstr "\tmake" #: src/main.c:1086 msgid "\tmake check" msgstr "\tmake check" #: src/main.c:1087 msgid "\tmake install" msgstr "\tmake install" #: src/main.c:1088 #, fuzzy msgid "" "or set the environment variable `ENSCRIPT_LIBRARY' to point to your library " "directory." msgstr "or set the environment variable `ENSCRIPT_LIBRARY' to point to your" #: src/main.c:1161 #, c-format msgid "unknown encoding: %s" msgstr "unknown encoding: %s" #: src/main.c:1180 #, c-format msgid "couldn't open AFM library: %s" msgstr "couldn't open AFM library: %s" #: src/main.c:1209 #, c-format msgid "" "known media:\n" "name width\theight\tllx\tlly\turx\tury\n" "------------------------------------------------------------\n" msgstr "" "known media:\n" "name width\theight\tllx\tlly\turx\tury\n" "------------------------------------------------------------\n" #: src/main.c:1228 #, c-format msgid "do not know anything about media \"%s\"" msgstr "do not know anything about media \"%s\"" #: src/main.c:1272 #, c-format msgid "" "set new marginals for media `%s' (%dx%d): llx=%d, lly=%d, urx=%d, ury=%d\n" msgstr "" "set new marginals for media `%s' (%dx%d): llx=%d, lly=%d, urx=%d, ury=%d\n" #: src/main.c:1283 #, c-format msgid "illegal page label format \"%s\"" msgstr "illegal page lable format \"%s\"" #: src/main.c:1295 #, c-format msgid "illegal non-printable format \"%s\"" msgstr "illegal non-printable format \"%s\"" #: src/main.c:1309 #, c-format msgid "illegal style for wrapped line marker: \"%s\"" msgstr "illegal style for wrapped line marker: \"%s\"" #: src/main.c:1319 #, c-format msgid "illegal N-up argument: %d" msgstr "illegal N-up argument: %d" #: src/main.c:1324 #, c-format msgid "N-up argument must be power of 2: %d" msgstr "N-up argument must be power of 2: %d" #: src/main.c:1401 #, c-format msgid "malformed underlay position: %s" msgstr "malformed underlay position: %s" #: src/main.c:1424 #, c-format msgid "illegal underlay style: %s" msgstr "illegal underlay style: %s" #: src/main.c:1451 #, c-format msgid "" "Highlighting is supported for the following languages and file formats:\n" "\n" msgstr "" "Highlighting is supported for the following languages and file formats:\n" "\n" #: src/main.c:1632 #, c-format msgid "couldn't create temporary toc file: %s" msgstr "couldn't create temporary toc file: %s" #: src/main.c:1679 #, c-format msgid "couldn't stat input file \"%s\": %s" msgstr "couldn't stat input file \"%s\": %s" #: src/main.c:1699 #, c-format msgid "couldn't rewind toc file: %s" msgstr "couldn't rewind toc file: %s" #: src/main.c:1705 msgid "Table of Contents" msgstr "Table of Contents" #: src/main.c:1731 msgid "no output generated\n" msgstr "no output generated\n" #: src/main.c:1736 #, c-format msgid "output sent to %s\n" msgstr "output sent to %s\n" #: src/main.c:1737 src/main.c:1768 msgid "printer" msgstr "printer" #: src/main.c:1739 #, c-format msgid "output left in %s\n" msgstr "output left in %s\n" #: src/main.c:1760 #, c-format msgid "%d page" msgid_plural "%d pages" msgstr[0] "" msgstr[1] "" #: src/main.c:1762 #, c-format msgid "%d copy" msgid_plural "%d copies" msgstr[0] "" msgstr[1] "" #: src/main.c:1767 #, c-format msgid " sent to %s\n" msgstr " sent to %s\n" #: src/main.c:1770 #, c-format msgid " left in %s\n" msgstr " left in %s\n" #: src/main.c:1776 #, fuzzy, c-format msgid "%d line was %s\n" msgid_plural "%d lines were %s\n" msgstr[0] "%d lines were %s\n" msgstr[1] "%d lines were %s\n" #: src/main.c:1781 msgid "truncated" msgstr "truncated" #: src/main.c:1781 msgid "wrapped" msgstr "wrapped" #: src/main.c:1788 #, fuzzy, c-format msgid "%d character was missing\n" msgid_plural "%d characters were missing\n" msgstr[0] "%d characters were missing\n" msgstr[1] "%d characters were missing\n" #: src/main.c:1794 msgid "missing character codes (decimal):\n" msgstr "missing character codes (decimal):\n" #: src/main.c:1803 #, fuzzy, c-format msgid "%d non-printable character\n" msgid_plural "%d non-printable characters\n" msgstr[0] "%d non-printable characters\n" msgstr[1] "%d non-printable characters\n" #: src/main.c:1810 msgid "non-printable character codes (decimal):\n" msgstr "non-printable character codes (decimal):\n" #: src/main.c:1859 #, c-format msgid "couldn't open printer `%s': %s" msgstr "couldn't open printer `%s': %s" #: src/main.c:1868 #, c-format msgid "couldn't create output file \"%s\": %s" msgstr "couldn't create output file \"%s\": %s" #: src/main.c:1885 #, c-format msgid "couldn't close output file \"%s\": %s" msgstr "couldn't close output file \"%s\": %s" #: src/main.c:1943 #, c-format msgid "" "syntax error in option string %s=\"%s\":\n" "missing end of quotation: %c" msgstr "" "syntax error in option string %s=\"%s\":\n" "missing end of quotation: %c" #: src/main.c:1975 #, c-format msgid "" "warning: didn't process following options from environment variable %s:\n" msgstr "" "warning: didn't process following options from environment variable %s:\n" #: src/main.c:1979 #, c-format msgid " option %d = \"%s\"\n" msgstr " option %d = \"%s\"\n" #: src/main.c:2025 msgid "number of columns must be larger than zero" msgstr "number of columns must be larger than zero" #: src/main.c:2083 msgid "file alignment must be larger than zero" msgstr "file alignment must be larger than zero" #: src/main.c:2138 src/main.c:2144 src/main.c:2355 src/util.c:416 #, c-format msgid "malformed font spec: %s" msgstr "malformed font spec: %s" #: src/main.c:2160 #, c-format msgid "couldn't find header definition file \"%s.hdr\"" msgstr "couldn't find header definition file \"%s.hdr\"" #: src/main.c:2204 #, c-format msgid "must print at least one line per each page: %s" msgstr "must print at least one line per each page: %s" #: src/main.c:2224 #, c-format msgid "%s: illegal newline character specifier: '%s': expected 'n' or 'r'\n" msgstr "%s: illegal newline character specifier: '%s': expected 'n' or 'r'\n" #: src/main.c:2313 #, c-format msgid "malformed argument `%s' for option -W, --option: no comma found" msgstr "malformed argument `%s' for option -W, --option: no comma found" #: src/main.c:2318 #, c-format msgid "helper application specification must be single character: %s" msgstr "helper application specification must be single character: %s" #: src/main.c:2414 msgid "slice must be greater than zero" msgstr "slice must be greater than zero" #: src/main.c:2495 states/main.c:318 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Try `%s --help' for more information.\n" #: src/main.c:2515 #, fuzzy, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" "Mandatory arguments to long options are mandatory for short options too.\n" " -# an alias for option -n, --copies\n" " -1 same as --columns=1\n" " -2 same as --columns=2\n" " --columns=NUM specify the number of columns per page\n" " -a, --pages=PAGES specify which pages are printed\n" " -A, --file-align=ALIGN align separate input files to ALIGN\n" " -b, --header=HEADER set page header\n" " -B, --no-header no page headers\n" " -c, --truncate-lines cut long lines (default is to wrap)\n" " -C[START], --line-numbers[=START]\n" " precede each line with its line number\n" " -d an alias for option --printer\n" " -D, --setpagedevice=KEY[:VALUE]\n" " pass a page device definition to output\n" " -e[CHAR], --escapes[=CHAR] enable special escape interpretation\n" msgstr "" "Usage: %s [OPTION]... [FILE]...\n" "Mandatory arguments to long options are mandatory for short options too.\n" " -# an alias for option -n, --copies\n" " -1 same as --columns=1\n" " -2 same as --columns=2\n" " --columns=NUM specify the number of columns per page\n" " -a, --pages=PAGES specify which pages are printed\n" " -A, --file-align=ALIGN align separate input files to ALIGN\n" " -b, --header=HEADER set page header\n" " -B, --no-header no page headers\n" " -c, --truncate-lines cut long lines (default is to wrap)\n" " -C, --line-numbers[=START]\n" " precede each line with its line number\n" " -d an alias for option --printer\n" " -D, --setpagedevice=KEY[:VALUE]\n" " pass a page device definition to output\n" " -e, --escapes[=CHAR] enable special escape interpretation\n" #: src/main.c:2535 #, fuzzy, c-format msgid " -E[LANG], --highlight[=LANG] highlight source code\n" msgstr " -E, --highlight[=LANG] highlight source code\n" #: src/main.c:2538 #, fuzzy, c-format msgid "" " -f, --font=NAME use font NAME for body text\n" " -F, --header-font=NAME use font NAME for header texts\n" " -g, --print-anyway nothing (compatibility option)\n" " -G same as --fancy-header\n" " --fancy-header[=NAME] select fancy page header\n" " -h, --no-job-header suppress the job header page\n" " -H[NUM], --highlight-bars[=NUM] specify how high highlight bars are\n" " -i, --indent=NUM set line indent to NUM characters\n" " -I, --filter=CMD read input files through input filter CMD\n" " -j, --borders print borders around columns\n" " -J, an alias for option --title\n" " -k, --page-prefeed enable page prefeed\n" " -K, --no-page-prefeed disable page prefeed\n" " -l, --lineprinter simulate lineprinter, this is an alias for:\n" " --lines-per-page=66, --no-header, --" "portrait,\n" " --columns=1\n" msgstr "" " -f, --font=NAME use font NAME for body text\n" " -F, --header-font=NAME use font NAME for header texts\n" " -g, --print-anyway nothing (compatibility option)\n" " -G same as --fancy-header\n" " --fancy-header[=NAME] select fancy page header\n" " -h, --no-job-header suppress the job header page\n" " -H, --highlight-bars=NUM specify how high highlight bars are\n" " -i, --indent=NUM set line indent to NUM characters\n" " -I, --filter=CMD read input files through input filter CMD\n" " -j, --borders print borders around columns\n" " -J, an alias for option --title\n" " -k, --page-prefeed enable page prefeed\n" " -K, --no-page-prefeed disable page prefeed\n" " -l, --lineprinter simulate lineprinter, this is an alias for:\n" " --lines-per-page=66, --no-header, --" "portrait,\n" " --columns=1\n" #: src/main.c:2556 #, c-format msgid "" " -L, --lines-per-page=NUM specify how many lines are printed on each " "page\n" " -m, --mail send mail upon completion\n" " -M, --media=NAME use output media NAME\n" " -n, --copies=NUM print NUM copies of each page\n" " -N, --newline=NL select the newline character. Possible\n" " values for NL are: n (`\\n') and r (`\\r').\n" " -o an alias for option --output\n" " -O, --missing-characters list missing characters\n" " -p, --output=FILE leave output to file FILE. If FILE is `-',\n" " leave output to stdout.\n" " -P, --printer=NAME print output to printer NAME\n" " -q, --quiet, --silent be really quiet\n" " -r, --landscape print in landscape mode\n" " -R, --portrait print in portrait mode\n" msgstr "" " -L, --lines-per-page=NUM specify how many lines are printed on each " "page\n" " -m, --mail send mail upon completion\n" " -M, --media=NAME use output media NAME\n" " -n, --copies=NUM print NUM copies of each page\n" " -N, --newline=NL select the newline character. Possible\n" " values for NL are: n (`\\n') and r (`\\r').\n" " -o an alias for option --output\n" " -O, --missing-characters list missing characters\n" " -p, --output=FILE leave output to file FILE. If FILE is `-',\n" " leave output to stdout.\n" " -P, --printer=NAME print output to printer NAME\n" " -q, --quiet, --silent be really quiet\n" " -r, --landscape print in landscape mode\n" " -R, --portrait print in portrait mode\n" #: src/main.c:2572 #, fuzzy, c-format msgid "" " -s, --baselineskip=NUM set baselineskip to NUM\n" " -S, --statusdict=KEY[:VALUE]\n" " pass a statusdict definition to the output\n" " -t, --title=TITLE set banner page's job title to TITLE. Option\n" " sets also the name of the input file stdin.\n" " -T, --tabsize=NUM set tabulator size to NUM\n" " -u[TEXT], --underlay[=TEXT] print TEXT under every page\n" " -U, --nup=NUM print NUM logical pages on each output page\n" " -v, --verbose tell what we are doing\n" " -V, --version print version number\n" " -w, --language=LANG set output language to LANG\n" " -W, --options=APP,OPTION pass option OPTION to helper application APP\n" " -X, --encoding=NAME use input encoding NAME\n" " -z, --no-formfeed do not interpret form feed characters\n" " -Z, --pass-through pass through PostScript and PCL files\n" " without any modifications\n" msgstr "" " -s, --baselineskip=NUM set baselineskip to NUM\n" " -S, --statusdict=KEY[:VALUE]\n" " pass a statusdict definition to the output\n" " -t, --title=TITLE set banner page's job title to TITLE. Option\n" " sets also the name of the input file stdin.\n" " -T, --tabsize=NUM set tabulator size to NUM\n" " -u, --underlay[=TEXT] print TEXT under every page\n" " -U, --nup=NUM print NUM logical pages on each output page\n" " -v, --verbose tell what we are doing\n" " -V, --version print version number\n" " -w, --language=LANG set output language to LANG\n" " -W, --options=APP,OPTION pass option OPTION to helper application APP\n" " -X, --encoding=NAME use input encoding NAME\n" " -z, --no-formfeed do not interpret form feed characters\n" " -Z, --pass-through pass through PostScript and PCL files\n" " without any modifications\n" #: src/main.c:2590 #, c-format msgid "" "Long-only options:\n" " --color[=bool] create color outputs with states\n" " --continuous-page-numbers count page numbers across input files. Don't\n" " restart numbering at beginning of each file.\n" " --download-font=NAME download font NAME\n" " --extended-return-values enable extended return values\n" " --filter-stdin=NAME specify how stdin is shown to the input filter\n" " --footer=FOOTER set page footer\n" " --h-column-height=HEIGHT set the horizontal column height to HEIGHT\n" " --help print this help and exit\n" msgstr "" "Long-only options:\n" " --color[=bool] create colour outputs with states\n" " --continuous-page-numbers count page numbers across input files. Don't\n" " restart numbering at beginning of each file.\n" " --download-font=NAME download font NAME\n" " --extended-return-values enable extended return values\n" " --filter-stdin=NAME specify how stdin is shown to the input filter\n" " --footer=FOOTER set page footer\n" " --h-column-height=HEIGHT set the horizontal column height to HEIGHT\n" " --help print this help and exit\n" #: src/main.c:2601 #, c-format msgid "" " --help-highlight describe all supported --highlight languages\n" " and file formats\n" " --highlight-bar-gray=NUM print highlight bars with gray NUM (0 - 1)\n" " --list-media list names of all known media\n" " --margins=LEFT:RIGHT:TOP:BOTTOM\n" " adjust page marginals\n" " --mark-wrapped-lines[STYLE]\n" " mark wrapped lines in the output with STYLE\n" " --non-printable-format=FMT specify how non-printable chars are printed\n" msgstr "" " --help-highlight describe all supported --highlight languages\n" " and file formats\n" " --highlight-bar-gray=NUM print highlight bars with grey NUM (0 - 1)\n" " --list-media list names of all known media\n" " --margins=LEFT:RIGHT:TOP:BOTTOM\n" " adjust page marginals\n" " --mark-wrapped-lines[STYLE]\n" " mark wrapped lines in the output with STYLE\n" " --non-printable-format=FMT specify how non-printable chars are printed\n" #: src/main.c:2612 #, c-format msgid "" " --nup-columnwise layout pages in the N-up printing columnwise\n" " --nup-xpad=NUM set the page x-padding of N-up printing to NUM\n" " --nup-ypad=NUM set the page y-padding of N-up printing to NUM\n" " --page-label-format=FMT set page label format to FMT\n" " --ps-level=LEVEL set the PostScript language level that " "enscript\n" " should use\n" " --printer-options=OPTIONS pass extra options to the printer command\n" " --rotate-even-pages rotate even-numbered pages 180 degrees\n" msgstr "" " --nup-columnwise layout pages in the N-up printing columnwise\n" " --nup-xpad=NUM set the page x-padding of N-up printing to NUM\n" " --nup-ypad=NUM set the page y-padding of N-up printing to NUM\n" " --page-label-format=FMT set page label format to FMT\n" " --ps-level=LEVEL set the PostScript language level that " "enscript\n" " should use\n" " --printer-options=OPTIONS pass extra options to the printer command\n" " --rotate-even-pages rotate even-numbered pages 180 degrees\n" #: src/main.c:2622 #, c-format msgid "" " --slice=NUM print vertical slice NUM\n" " --style=STYLE use highlight style STYLE\n" " --swap-even-page-margins swap left and right side margins for each even\n" " numbered page\n" " --toc print table of contents\n" " --ul-angle=ANGLE set underlay text's angle to ANGLE\n" " --ul-font=NAME print underlays with font NAME\n" " --ul-gray=NUM print underlays with gray value NUM\n" " --ul-position=POS set underlay's starting position to POS\n" " --ul-style=STYLE print underlays with style STYLE\n" " --word-wrap wrap long lines from word boundaries\n" msgstr "" " --slice=NUM print vertical slice NUM\n" " --style=STYLE use highlight style STYLE\n" " --swap-even-page-margins swap left and right side margins for each even\n" " numbered page\n" " --toc print table of contents\n" " --ul-angle=ANGLE set underlay text's angle to ANGLE\n" " --ul-font=NAME print underlays with font NAME\n" " --ul-gray=NUM print underlays with grey value NUM\n" " --ul-position=POS set underlay's starting position to POS\n" " --ul-style=STYLE print underlays with style STYLE\n" " --word-wrap wrap long lines from word boundaries\n" #: src/main.c:2636 #, fuzzy, c-format msgid "" "\n" "Report bugs to <%s>.\n" msgstr "" "\n" "Report bugs to mtr@iki.fi.\n" #: src/psgen.c:331 #, c-format msgid "couldn't find prolog \"%s\": %s\n" msgstr "couldn't find prologue \"%s\": %s\n" #: src/psgen.c:339 #, c-format msgid "couldn't find encoding file \"%s.enc\": %s\n" msgstr "couldn't find encoding file \"%s.enc\": %s\n" #: src/psgen.c:471 #, c-format msgid "couldn't find header definition file \"%s.hdr\": %s\n" msgstr "couldn't find header definition file \"%s.hdr\": %s\n" #: src/psgen.c:615 #, c-format msgid "processing file \"%s\"...\n" msgstr "processing file \"%s\"...\n" #: src/psgen.c:913 #, c-format msgid "EPS file \"%s\" is too large for page\n" msgstr "EPS file \"%s\" is too large for page\n" #: src/psgen.c:986 msgid "user font encoding can be only the system's default or `ps'" msgstr "user font encoding can be only the system's default or `ps'" #: src/psgen.c:1228 #, c-format msgid "unknown special escape: %s" msgstr "unknown special escape: %s" #: src/psgen.c:1354 #, c-format msgid "illegal option %c for ^@epsf escape" msgstr "illegal option %c for ^@epsf escape" #: src/psgen.c:1360 msgid "malformed ^@epsf escape: no ']' after options" msgstr "malformed ^@epsf escape: no ']' after options" #: src/psgen.c:1372 #, c-format msgid "" "too long file name for ^@epsf escape:\n" "%.*s" msgstr "" "too long file name for ^@epsf escape:\n" "%.*s" #: src/psgen.c:1376 msgid "unexpected EOF while scanning ^@epsf escape" msgstr "unexpected EOF while scanning ^@epsf escape" #: src/psgen.c:1382 msgid "malformed ^@epsf escape: no '{' found" msgstr "malformed ^@epsf escape: no '{' found" #: src/psgen.c:1440 #, c-format msgid "malformed %s escape: no '{' found" msgstr "malformed %s escape: no '{' found" #: src/psgen.c:1454 #, c-format msgid "" "too long argument for %s escape:\n" "%.*s" msgstr "" "too long argument for %s escape:\n" "%.*s" #: src/psgen.c:1474 #, c-format msgid "malformed font spec for ^@font escape: %s" msgstr "malformed font spec for ^@font escape: %s" #: src/psgen.c:1511 #, c-format msgid "malformed color spec for ^@%s escape: %s" msgstr "malformed colour spec for ^@%s escape: %s" #: src/psgen.c:1535 #, c-format msgid "invalid value for ^@shade escape: %s" msgstr "invalid value for ^@shade escape: %s" #: src/psgen.c:1543 #, c-format msgid "invalid value for ^@bggray escape: %s" msgstr "invalid value for ^@bggray escape: %s" #: src/psgen.c:2412 #, c-format msgid "couldn't open EPS file \"%s\": %s\n" msgstr "couldn't open EPS file \"%s\": %s\n" #: src/psgen.c:2448 #, c-format msgid "EPS file \"%s\" does not start with \"%%!\" magic\n" msgstr "EPS file \"%s\" does not start with \"%%!\" magic\n" #: src/psgen.c:2473 #, c-format msgid "" "EPS file \"%s\" contains malformed %%%%BoundingBox row:\n" "\"%.*s\"\n" msgstr "" "EPS file \"%s\" contains malformed %%%%BoundingBox row:\n" "\"%.*s\"\n" #: src/psgen.c:2498 #, c-format msgid "EPS file \"%s\" is not a valid EPS file\n" msgstr "EPS file \"%s\" is not a valid EPS file\n" #: src/psgen.c:2640 #, c-format msgid "passing through all input files for output language `%s'\n" msgstr "passing through all input files for output language `%s'\n" #: src/psgen.c:2692 #, c-format msgid "passing through %s file \"%s\"\n" msgstr "passing through %s file \"%s\"\n" #: src/psgen.c:2795 #, c-format msgid "couldn't create temporary divert file: %s" msgstr "couldn't create temporary divert file: %s" #: src/psgen.c:2812 #, c-format msgid "couldn't rewind divert file: %s" msgstr "couldn't rewind divert file: %s" #: src/util.c:93 #, fuzzy, c-format msgid "missing argument: %s" msgstr "illegal N-up argument: %d" #: src/util.c:186 src/util.c:214 #, c-format msgid "illegal value \"%s\" for option %s" msgstr "illegal value \"%s\" for option %s" #: src/util.c:202 #, c-format msgid "invalid value \"%s\" for option %s" msgstr "invalid value \"%s\" for option %s" #: src/util.c:440 #, c-format msgid "illegal option: %s" msgstr "illegal option: %s" #: src/util.c:619 #, c-format msgid "%s:%d: %%Format: no name" msgstr "%s:%d: %%Format: no name" #: src/util.c:630 #, c-format msgid "%s:%d: %%Format: too long name, maxlen=%d" msgstr "%s:%d: %%Format: too long name, maxlen=%d" #: src/util.c:653 #, c-format msgid "%s:%d: %%Format: name \"%s\" is already defined" msgstr "%s:%d: %%Format: name \"%s\" is already defined" #: src/util.c:674 #, c-format msgid "%s:%d: %%HeaderHeight: no argument" msgstr "%s:%d: %%HeaderHeight: no argument" #: src/util.c:696 #, c-format msgid "%s:%d: %%FooterHeight: no argument" msgstr "%s:%d: %%FooterHeight: no argument" #: src/util.c:843 #, c-format msgid "%s: warning: font size is negative\n" msgstr "%s: warning: font size is negative\n" #: src/util.c:845 #, c-format msgid "%s: warning: font width is negative\n" msgstr "%s: warning: font width is negative\n" #: src/util.c:847 #, c-format msgid "%s: warning: font height is negative\n" msgstr "%s: warning: font height is negative\n" #: src/util.c:866 #, c-format msgid "reading AFM info for font \"%s\"\n" msgstr "reading AFM info for font \"%s\"\n" #: src/util.c:899 #, c-format msgid "couldn't open AFM file for font \"%s\", using default\n" msgstr "couldn't open AFM file for font \"%s\", using default\n" #: src/util.c:906 #, c-format msgid "couldn't open AFM file for the default font: %s" msgstr "couldn't open AFM file for the default font: %s" #: src/util.c:1095 #, c-format msgid "downloading font \"%s\"\n" msgstr "downloading font \"%s\"\n" #: src/util.c:1100 #, c-format msgid "couldn't open font description file \"%s\": %s\n" msgstr "couldn't open font description file \"%s\": %s\n" #: src/util.c:1392 #, c-format msgid "%s: too long format for %%D{} escape" msgstr "%s: too long format for %%D{} escape" #: src/util.c:1477 #, c-format msgid "%s: unknown `%%' escape `%c' (%d)" msgstr "%s: unknown `%%' escape `%c' (%d)" #: src/util.c:1515 #, c-format msgid "%s: no closing ')' for $() escape" msgstr "%s: no closing ')' for $() escape" #: src/util.c:1518 #, c-format msgid "%s: too long variable name for $() escape" msgstr "%s: too long variable name for $() escape" #: src/util.c:1545 #, c-format msgid "%s: too long format for $D{} escape" msgstr "%s: too long format for $D{} escape" #: src/util.c:1633 #, c-format msgid "%s: unknown `$' escape `%c' (%d)" msgstr "%s: unknown `$' escape `%c' (%d)" #: src/util.c:1824 #, c-format msgid "malformed float dimension: \"%s\"" msgstr "malformed float dimension: \"%s\"" #: src/util.c:1946 #, c-format msgid "couldn't open input filter \"%s\" for file \"%s\": %s" msgstr "couldn't open input filter \"%s\" for file \"%s\": %s" #: src/util.c:1963 #, c-format msgid "couldn't open input file \"%s\": %s" msgstr "couldn't open input file \"%s\": %s" #: src/mkafmmap.c:167 #, c-format msgid "file=%s\n" msgstr "file=%s\n" #: src/mkafmmap.c:167 msgid "stdout" msgstr "stdout" #: src/mkafmmap.c:175 #, c-format msgid "%s: couldn't open output file \"%s\"" msgstr "%s: couldn't open output file \"%s\"" #: src/mkafmmap.c:189 msgid "couldn't create AFM library" msgstr "couldn't create AFM library" #: src/mkafmmap.c:238 #, c-format msgid "" "Usage: %s [OPTION]... FILE...\n" "Mandatory arguments to long options are mandatory for short options too.\n" " -h, --help print this help and exit\n" " -p, --output-file=NAME print output to file NAME (default file is\n" " font.map). If FILE is `-', leavy output to\n" " stdout.\n" " -V, --version print version number\n" msgstr "" "Usage: %s [OPTION]... FILE...\n" "Mandatory arguments to long options are mandatory for short options too.\n" " -h, --help print this help and exit\n" " -p, --output-file=NAME print output to file NAME (default file is\n" " font.map). If FILE is `-', leave output on\n" " stdout.\n" " -V, --version print version number\n" #: states/lex.l:167 states/lex.l:173 msgid "error: EOF in comment" msgstr "error: EOF in comment" #: states/lex.l:204 msgid "error: EOF in string constant" msgstr "error: EOF in string constant" #: states/lex.l:311 msgid "error: EOF in regular expression" msgstr "error: EOF in regular expression" #: states/main.c:197 #, fuzzy, c-format msgid "states for %s" msgstr "states for GNU %s %s" #: states/main.c:252 #, c-format msgid "%s: malformed variable definition \"%s\"\n" msgstr "%s: malformed variable definition \"%s\"\n" #: states/main.c:280 #, c-format msgid "%s: couldn't create output file \"%s\": %s\n" msgstr "%s: couldn't create output file \"%s\": %s\n" #: states/main.c:311 #, c-format msgid "%s: unknown warning level `%s'\n" msgstr "%s: unknown warning level `%s'\n" #: states/main.c:360 states/main.c:396 states/prims.c:1375 states/utils.c:227 #, c-format msgid "%s: out of memory\n" msgstr "%s: out of memory\n" #: states/main.c:421 #, c-format msgid "%s: couldn't open input file `%s': %s\n" msgstr "%s: couldn't open input file `%s': %s\n" #: states/main.c:445 #, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Usage: %s [OPTION]... [FILE]...\n" "Mandatory arguments to long options are mandatory for short options too.\n" #: states/main.c:449 #, fuzzy, c-format msgid "" " -D, --define=VAR=VAL define variable VAR to have value VAL\n" " -f, --file=NAME read state definitions from file NAME\n" " -h, --help print this help and exit\n" " -o, --output=NAME save output to file NAME\n" " -p, --path=PATH set the load path to PATH\n" " -s, --state=NAME start from state NAME\n" " -v, --verbose increase the program verbosity\n" " -V, --version print version number\n" " -W, --warning=LEVEL set the warning level to LEVEL\n" msgstr "" " -D, --define=VAR=VAL define variable VAR to have value VAR\n" " -f, --file=NAME read state definitions from file NAME\n" " -h, --help print this help and exit\n" " -o, --output=NAME save output to file NAME\n" " -p, --path=PATH set the load path to PATH\n" " -s, --state=NAME start from state NAME\n" " -v, --verbose increase the program verbosity\n" " -V, --version print version number\n" " -W, --warning=LEVEL set the warning level to LEVEL\n" #: states/prims.c:44 #, fuzzy, c-format msgid "%s:%d: %s: too few arguments\n" msgstr "%s:%d: %s: illegal argument\n" #: states/prims.c:54 #, fuzzy, c-format msgid "%s:%d: %s: too many arguments\n" msgstr "%s:%d: %s: illegal argument\n" #: states/prims.c:107 states/prims.c:127 states/prims.c:253 states/prims.c:426 #: states/prims.c:901 #, c-format msgid "%s:%d: %s: illegal argument type\n" msgstr "%s:%d: %s: illegal argument type\n" #: states/prims.c:468 #, c-format msgid "%s: panic: " msgstr "%s: panic: " #: states/prims.c:502 #, c-format msgid "%s:%d: %s: malformed version string `%s'\n" msgstr "%s:%d: %s: malformed version string `%s'\n" #: states/prims.c:517 #, c-format msgid "" "%s: FATAL ERROR: States version %s or higher is required for this script\n" msgstr "" "%s: FATAL ERROR: States version %s or higher is required for this script\n" #: states/prims.c:608 states/prims.c:1274 #, c-format msgid "%s:%d: %s: start offset is bigger than end offset\n" msgstr "%s:%d: %s: start offset is bigger than end offset\n" #: states/prims.c:617 states/prims.c:633 states/prims.c:1280 #, c-format msgid "%s:%d: %s: offset out of range\n" msgstr "%s:%d: %s: offset out of range\n" #: states/prims.c:651 #, c-format msgid "%s:%d: %s: illegal argument\n" msgstr "%s:%d: %s: illegal argument\n" #: states/prims.c:698 #, c-format msgid "%s:%d: %s: illegal regexp character syntax: %c\n" msgstr "%s:%d: %s: illegal regexp character syntax: %c\n" #: states/prims.c:913 #, c-format msgid "%s:%d: %s: couldn't define state `%s'\n" msgstr "%s:%d: %s: couldn't define state `%s'\n" #: states/prims.c:1010 #, c-format msgid "%s: primitive `%s': too few arguments for format\n" msgstr "%s: primitive `%s': too few arguments for format\n" #: states/prims.c:1038 #, c-format msgid "%s:%d: %s: argument %d doesn't match format\n" msgstr "%s:%d: %s: argument %d doesn't match format\n" #: states/prims.c:1078 #, c-format msgid "%s:%d: %s: no extra options can be specified for %%s\n" msgstr "%s:%d: %s: no extra options can be specified for %%s\n" #: states/prims.c:1087 #, c-format msgid "%s:%d: %s: illegal type specifier `%c'\n" msgstr "%s:%d: %s: illegal type specifier `%c'\n" #: states/process.c:115 #, c-format msgid "%s: undefined state `%s'\n" msgstr "%s: undefined state `%s'\n" #: states/process.c:196 #, c-format msgid "%s: error: undefined variable `%s'\n" msgstr "%s: error: undefined variable `%s'\n" #: states/process.c:290 #, c-format msgid "%s: undefined super state `%s'\n" msgstr "%s: undefined super state `%s'\n" #: states/utils.c:260 #, c-format msgid "%s:%d: couldn't compile regular expression \"%s\": %s\n" msgstr "%s:%d: couldn't compile regular expression \"%s\": %s\n" #: states/utils.c:449 states/utils.c:477 #, c-format msgid "%s: ouf of memory" msgstr "%s: out of memory" #: states/utils.c:454 #, c-format msgid "warning: redefining state `%s'" msgstr "warning: redefining state `%s'" #: states/utils.c:481 #, c-format msgid "%s:%d: warning: redefining subroutine `%s'\n" msgstr "%s:%d: warning: redefining subroutine `%s'\n" #: states/utils.c:578 #, c-format msgid "%s:%d: error: undefined variable `%s'\n" msgstr "%s:%d: error: undefined variable `%s'\n" #: states/utils.c:616 #, c-format msgid "%s:%d: error: couldn't set variable `%s'\n" msgstr "%s:%d: error: couldn't set variable `%s'\n" #: states/utils.c:767 #, c-format msgid "%s:%d: error: expression between illegal types\n" msgstr "%s:%d: error: expression between illegal types\n" #: states/utils.c:865 #, c-format msgid "%s:%d: error: too few arguments for subroutine\n" msgstr "%s:%d: error: too few arguments for subroutine\n" #: states/utils.c:872 #, c-format msgid "%s:%d: error: too many arguments for subroutine\n" msgstr "%s:%d: error: too many arguments for subroutine\n" #: states/utils.c:926 #, c-format msgid "%s:%d: error: undefined procedure `%s'\n" msgstr "%s:%d: error: undefined procedure `%s'\n" #: states/utils.c:1018 #, c-format msgid "%s:%d: error: illegal lvalue for assignment\n" msgstr "%s:%d: error: illegal lvalue for assignment\n" #: states/utils.c:1026 states/utils.c:1110 #, c-format msgid "%s:%d: error: array reference index is not integer\n" msgstr "%s:%d: error: array reference index is not integer\n" #: states/utils.c:1032 #, c-format msgid "%s:%d: error: negative array reference index\n" msgstr "%s:%d: error: negative array reference index\n" #: states/utils.c:1083 #, c-format msgid "%s:%d: error: illegal rvalue for string assignment\n" msgstr "%s:%d: error: illegal rvalue for string assignment\n" #: states/utils.c:1102 #, c-format msgid "%s:%d: error: illegal type for array reference\n" msgstr "%s:%d: error: illegal type for array reference\n" #: states/utils.c:1119 #, fuzzy, c-format msgid "%s:%d: error: array reference index out of range\n" msgstr "%s:%d: error: array reference index out of rance\n" #: states/utils.c:1345 #, c-format msgid "%s: couldn't open definition file `%s': %s\n" msgstr "%s: couldn't open definition file `%s': %s\n" #: states/utils.c:1401 #, c-format msgid "%s: autoloading `%s' from `%s'\n" msgstr "%s: autoloading `%s' from `%s'\n" #~ msgid "library directory." #~ msgstr "library directory." #~ msgid "[ %d pages * %d copy ]" #~ msgstr "[ %d pages * %d copy ]" #~ msgid "epsf: couldn't open pipe to command \"%s\": %s\n" #~ msgstr "epsf: couldn't open pipe to command \"%s\": %s\n" enscript-1.6.5.90/po/enscript.pot0000644000175000017500000006304311606344231013521 00000000000000# 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: GNU enscript 1.6.5.90\n" "Report-Msgid-Bugs-To: bug-enscript@gnu.org\n" "POT-Creation-Date: 2011-07-10 16:43+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" #: compat/getopt.c:628 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "" #: compat/getopt.c:652 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "" #: compat/getopt.c:657 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "" #: compat/getopt.c:674 compat/getopt.c:847 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "" #: compat/getopt.c:703 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "" #: compat/getopt.c:707 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "" #: compat/getopt.c:733 #, c-format msgid "%s: illegal option -- %c\n" msgstr "" #: compat/getopt.c:736 #, c-format msgid "%s: invalid option -- %c\n" msgstr "" #: compat/getopt.c:766 compat/getopt.c:896 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "" #: compat/getopt.c:813 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "" #: compat/getopt.c:831 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "" #: compat/xalloc.c:70 #, c-format msgid "xmalloc(): couldn't allocate %d bytes\n" msgstr "" #: compat/xalloc.c:88 #, c-format msgid "xcalloc(): couldn't allocate %d bytes\n" msgstr "" #: compat/xalloc.c:109 #, c-format msgid "xrealloc(): couldn't reallocate %d bytes\n" msgstr "" #: compat/regex.c:996 msgid "Success" msgstr "" #: compat/regex.c:997 msgid "No match" msgstr "" #: compat/regex.c:998 msgid "Invalid regular expression" msgstr "" #: compat/regex.c:999 msgid "Invalid collation character" msgstr "" #: compat/regex.c:1000 msgid "Invalid character class name" msgstr "" #: compat/regex.c:1001 msgid "Trailing backslash" msgstr "" #: compat/regex.c:1002 msgid "Invalid back reference" msgstr "" #: compat/regex.c:1003 msgid "Unmatched [ or [^" msgstr "" #: compat/regex.c:1004 msgid "Unmatched ( or \\(" msgstr "" #: compat/regex.c:1005 msgid "Unmatched \\{" msgstr "" #: compat/regex.c:1006 msgid "Invalid content of \\{\\}" msgstr "" #: compat/regex.c:1007 msgid "Invalid range end" msgstr "" #: compat/regex.c:1008 msgid "Memory exhausted" msgstr "" #: compat/regex.c:1009 msgid "Invalid preceding regular expression" msgstr "" #: compat/regex.c:1010 msgid "Premature end of regular expression" msgstr "" #: compat/regex.c:1011 msgid "Regular expression too big" msgstr "" #: compat/regex.c:1012 msgid "Unmatched ) or \\)" msgstr "" #: compat/regex.c:5458 msgid "No previous regular expression" msgstr "" #: src/main.c:949 #, no-c-format msgid "$3v $-40N $3% pages $4L lines $E $C" msgstr "" #: src/main.c:979 #, c-format msgid "couldn't get passwd entry for uid=%d: %s" msgstr "" #: src/main.c:1071 #, c-format msgid "couldn't read config file \"%s/%s\": %s" msgstr "" #: src/main.c:1075 msgid "I did also try the following directories:" msgstr "" #: src/main.c:1076 src/main.c:1077 src/main.c:1078 #, c-format msgid "\t%s" msgstr "" #: src/main.c:1079 msgid "\t../lib" msgstr "" #: src/main.c:1080 msgid "\t../../lib" msgstr "" #: src/main.c:1082 msgid "This is probably an installation error. Please, try to rebuild:" msgstr "" #: src/main.c:1083 msgid "\tmake distclean" msgstr "" #: src/main.c:1084 msgid "\t./configure --prefix=PREFIX" msgstr "" #: src/main.c:1085 msgid "\tmake" msgstr "" #: src/main.c:1086 msgid "\tmake check" msgstr "" #: src/main.c:1087 msgid "\tmake install" msgstr "" #: src/main.c:1088 msgid "" "or set the environment variable `ENSCRIPT_LIBRARY' to point to your library " "directory." msgstr "" #: src/main.c:1161 #, c-format msgid "unknown encoding: %s" msgstr "" #: src/main.c:1180 #, c-format msgid "couldn't open AFM library: %s" msgstr "" #: src/main.c:1209 #, c-format msgid "" "known media:\n" "name width\theight\tllx\tlly\turx\tury\n" "------------------------------------------------------------\n" msgstr "" #: src/main.c:1228 #, c-format msgid "do not know anything about media \"%s\"" msgstr "" #: src/main.c:1272 #, c-format msgid "" "set new marginals for media `%s' (%dx%d): llx=%d, lly=%d, urx=%d, ury=%d\n" msgstr "" #: src/main.c:1283 #, c-format msgid "illegal page label format \"%s\"" msgstr "" #: src/main.c:1295 #, c-format msgid "illegal non-printable format \"%s\"" msgstr "" #: src/main.c:1309 #, c-format msgid "illegal style for wrapped line marker: \"%s\"" msgstr "" #: src/main.c:1319 #, c-format msgid "illegal N-up argument: %d" msgstr "" #: src/main.c:1324 #, c-format msgid "N-up argument must be power of 2: %d" msgstr "" #: src/main.c:1401 #, c-format msgid "malformed underlay position: %s" msgstr "" #: src/main.c:1424 #, c-format msgid "illegal underlay style: %s" msgstr "" #: src/main.c:1451 #, c-format msgid "" "Highlighting is supported for the following languages and file formats:\n" "\n" msgstr "" #: src/main.c:1632 #, c-format msgid "couldn't create temporary toc file: %s" msgstr "" #: src/main.c:1679 #, c-format msgid "couldn't stat input file \"%s\": %s" msgstr "" #: src/main.c:1699 #, c-format msgid "couldn't rewind toc file: %s" msgstr "" #: src/main.c:1705 msgid "Table of Contents" msgstr "" #: src/main.c:1731 msgid "no output generated\n" msgstr "" #: src/main.c:1736 #, c-format msgid "output sent to %s\n" msgstr "" #: src/main.c:1737 src/main.c:1768 msgid "printer" msgstr "" #: src/main.c:1739 #, c-format msgid "output left in %s\n" msgstr "" #: src/main.c:1760 #, c-format msgid "%d page" msgid_plural "%d pages" msgstr[0] "" msgstr[1] "" #: src/main.c:1762 #, c-format msgid "%d copy" msgid_plural "%d copies" msgstr[0] "" msgstr[1] "" #: src/main.c:1767 #, c-format msgid " sent to %s\n" msgstr "" #: src/main.c:1770 #, c-format msgid " left in %s\n" msgstr "" #: src/main.c:1776 #, c-format msgid "%d line was %s\n" msgid_plural "%d lines were %s\n" msgstr[0] "" msgstr[1] "" #: src/main.c:1781 msgid "truncated" msgstr "" #: src/main.c:1781 msgid "wrapped" msgstr "" #: src/main.c:1788 #, c-format msgid "%d character was missing\n" msgid_plural "%d characters were missing\n" msgstr[0] "" msgstr[1] "" #: src/main.c:1794 msgid "missing character codes (decimal):\n" msgstr "" #: src/main.c:1803 #, c-format msgid "%d non-printable character\n" msgid_plural "%d non-printable characters\n" msgstr[0] "" msgstr[1] "" #: src/main.c:1810 msgid "non-printable character codes (decimal):\n" msgstr "" #: src/main.c:1859 #, c-format msgid "couldn't open printer `%s': %s" msgstr "" #: src/main.c:1868 #, c-format msgid "couldn't create output file \"%s\": %s" msgstr "" #: src/main.c:1885 #, c-format msgid "couldn't close output file \"%s\": %s" msgstr "" #: src/main.c:1943 #, c-format msgid "" "syntax error in option string %s=\"%s\":\n" "missing end of quotation: %c" msgstr "" #: src/main.c:1975 #, c-format msgid "" "warning: didn't process following options from environment variable %s:\n" msgstr "" #: src/main.c:1979 #, c-format msgid " option %d = \"%s\"\n" msgstr "" #: src/main.c:2025 msgid "number of columns must be larger than zero" msgstr "" #: src/main.c:2083 msgid "file alignment must be larger than zero" msgstr "" #: src/main.c:2138 src/main.c:2144 src/main.c:2355 src/util.c:416 #, c-format msgid "malformed font spec: %s" msgstr "" #: src/main.c:2160 #, c-format msgid "couldn't find header definition file \"%s.hdr\"" msgstr "" #: src/main.c:2204 #, c-format msgid "must print at least one line per each page: %s" msgstr "" #: src/main.c:2224 #, c-format msgid "%s: illegal newline character specifier: '%s': expected 'n' or 'r'\n" msgstr "" #: src/main.c:2313 #, c-format msgid "malformed argument `%s' for option -W, --option: no comma found" msgstr "" #: src/main.c:2318 #, c-format msgid "helper application specification must be single character: %s" msgstr "" #: src/main.c:2414 msgid "slice must be greater than zero" msgstr "" #: src/main.c:2495 states/main.c:318 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "" #: src/main.c:2515 #, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" "Mandatory arguments to long options are mandatory for short options too.\n" " -# an alias for option -n, --copies\n" " -1 same as --columns=1\n" " -2 same as --columns=2\n" " --columns=NUM specify the number of columns per page\n" " -a, --pages=PAGES specify which pages are printed\n" " -A, --file-align=ALIGN align separate input files to ALIGN\n" " -b, --header=HEADER set page header\n" " -B, --no-header no page headers\n" " -c, --truncate-lines cut long lines (default is to wrap)\n" " -C[START], --line-numbers[=START]\n" " precede each line with its line number\n" " -d an alias for option --printer\n" " -D, --setpagedevice=KEY[:VALUE]\n" " pass a page device definition to output\n" " -e[CHAR], --escapes[=CHAR] enable special escape interpretation\n" msgstr "" #: src/main.c:2535 #, c-format msgid " -E[LANG], --highlight[=LANG] highlight source code\n" msgstr "" #: src/main.c:2538 #, c-format msgid "" " -f, --font=NAME use font NAME for body text\n" " -F, --header-font=NAME use font NAME for header texts\n" " -g, --print-anyway nothing (compatibility option)\n" " -G same as --fancy-header\n" " --fancy-header[=NAME] select fancy page header\n" " -h, --no-job-header suppress the job header page\n" " -H[NUM], --highlight-bars[=NUM] specify how high highlight bars are\n" " -i, --indent=NUM set line indent to NUM characters\n" " -I, --filter=CMD read input files through input filter CMD\n" " -j, --borders print borders around columns\n" " -J, an alias for option --title\n" " -k, --page-prefeed enable page prefeed\n" " -K, --no-page-prefeed disable page prefeed\n" " -l, --lineprinter simulate lineprinter, this is an alias for:\n" " --lines-per-page=66, --no-header, --" "portrait,\n" " --columns=1\n" msgstr "" #: src/main.c:2556 #, c-format msgid "" " -L, --lines-per-page=NUM specify how many lines are printed on each " "page\n" " -m, --mail send mail upon completion\n" " -M, --media=NAME use output media NAME\n" " -n, --copies=NUM print NUM copies of each page\n" " -N, --newline=NL select the newline character. Possible\n" " values for NL are: n (`\\n') and r (`\\r').\n" " -o an alias for option --output\n" " -O, --missing-characters list missing characters\n" " -p, --output=FILE leave output to file FILE. If FILE is `-',\n" " leave output to stdout.\n" " -P, --printer=NAME print output to printer NAME\n" " -q, --quiet, --silent be really quiet\n" " -r, --landscape print in landscape mode\n" " -R, --portrait print in portrait mode\n" msgstr "" #: src/main.c:2572 #, c-format msgid "" " -s, --baselineskip=NUM set baselineskip to NUM\n" " -S, --statusdict=KEY[:VALUE]\n" " pass a statusdict definition to the output\n" " -t, --title=TITLE set banner page's job title to TITLE. Option\n" " sets also the name of the input file stdin.\n" " -T, --tabsize=NUM set tabulator size to NUM\n" " -u[TEXT], --underlay[=TEXT] print TEXT under every page\n" " -U, --nup=NUM print NUM logical pages on each output page\n" " -v, --verbose tell what we are doing\n" " -V, --version print version number\n" " -w, --language=LANG set output language to LANG\n" " -W, --options=APP,OPTION pass option OPTION to helper application APP\n" " -X, --encoding=NAME use input encoding NAME\n" " -z, --no-formfeed do not interpret form feed characters\n" " -Z, --pass-through pass through PostScript and PCL files\n" " without any modifications\n" msgstr "" #: src/main.c:2590 #, c-format msgid "" "Long-only options:\n" " --color[=bool] create color outputs with states\n" " --continuous-page-numbers count page numbers across input files. Don't\n" " restart numbering at beginning of each file.\n" " --download-font=NAME download font NAME\n" " --extended-return-values enable extended return values\n" " --filter-stdin=NAME specify how stdin is shown to the input filter\n" " --footer=FOOTER set page footer\n" " --h-column-height=HEIGHT set the horizontal column height to HEIGHT\n" " --help print this help and exit\n" msgstr "" #: src/main.c:2601 #, c-format msgid "" " --help-highlight describe all supported --highlight languages\n" " and file formats\n" " --highlight-bar-gray=NUM print highlight bars with gray NUM (0 - 1)\n" " --list-media list names of all known media\n" " --margins=LEFT:RIGHT:TOP:BOTTOM\n" " adjust page marginals\n" " --mark-wrapped-lines[STYLE]\n" " mark wrapped lines in the output with STYLE\n" " --non-printable-format=FMT specify how non-printable chars are printed\n" msgstr "" #: src/main.c:2612 #, c-format msgid "" " --nup-columnwise layout pages in the N-up printing columnwise\n" " --nup-xpad=NUM set the page x-padding of N-up printing to NUM\n" " --nup-ypad=NUM set the page y-padding of N-up printing to NUM\n" " --page-label-format=FMT set page label format to FMT\n" " --ps-level=LEVEL set the PostScript language level that " "enscript\n" " should use\n" " --printer-options=OPTIONS pass extra options to the printer command\n" " --rotate-even-pages rotate even-numbered pages 180 degrees\n" msgstr "" #: src/main.c:2622 #, c-format msgid "" " --slice=NUM print vertical slice NUM\n" " --style=STYLE use highlight style STYLE\n" " --swap-even-page-margins swap left and right side margins for each even\n" " numbered page\n" " --toc print table of contents\n" " --ul-angle=ANGLE set underlay text's angle to ANGLE\n" " --ul-font=NAME print underlays with font NAME\n" " --ul-gray=NUM print underlays with gray value NUM\n" " --ul-position=POS set underlay's starting position to POS\n" " --ul-style=STYLE print underlays with style STYLE\n" " --word-wrap wrap long lines from word boundaries\n" msgstr "" #: src/main.c:2636 #, c-format msgid "" "\n" "Report bugs to <%s>.\n" msgstr "" #: src/psgen.c:331 #, c-format msgid "couldn't find prolog \"%s\": %s\n" msgstr "" #: src/psgen.c:339 #, c-format msgid "couldn't find encoding file \"%s.enc\": %s\n" msgstr "" #: src/psgen.c:471 #, c-format msgid "couldn't find header definition file \"%s.hdr\": %s\n" msgstr "" #: src/psgen.c:615 #, c-format msgid "processing file \"%s\"...\n" msgstr "" #: src/psgen.c:913 #, c-format msgid "EPS file \"%s\" is too large for page\n" msgstr "" #: src/psgen.c:986 msgid "user font encoding can be only the system's default or `ps'" msgstr "" #: src/psgen.c:1228 #, c-format msgid "unknown special escape: %s" msgstr "" #: src/psgen.c:1354 #, c-format msgid "illegal option %c for ^@epsf escape" msgstr "" #: src/psgen.c:1360 msgid "malformed ^@epsf escape: no ']' after options" msgstr "" #: src/psgen.c:1372 #, c-format msgid "" "too long file name for ^@epsf escape:\n" "%.*s" msgstr "" #: src/psgen.c:1376 msgid "unexpected EOF while scanning ^@epsf escape" msgstr "" #: src/psgen.c:1382 msgid "malformed ^@epsf escape: no '{' found" msgstr "" #: src/psgen.c:1440 #, c-format msgid "malformed %s escape: no '{' found" msgstr "" #: src/psgen.c:1454 #, c-format msgid "" "too long argument for %s escape:\n" "%.*s" msgstr "" #: src/psgen.c:1474 #, c-format msgid "malformed font spec for ^@font escape: %s" msgstr "" #: src/psgen.c:1511 #, c-format msgid "malformed color spec for ^@%s escape: %s" msgstr "" #: src/psgen.c:1535 #, c-format msgid "invalid value for ^@shade escape: %s" msgstr "" #: src/psgen.c:1543 #, c-format msgid "invalid value for ^@bggray escape: %s" msgstr "" #: src/psgen.c:2412 #, c-format msgid "couldn't open EPS file \"%s\": %s\n" msgstr "" #: src/psgen.c:2448 #, c-format msgid "EPS file \"%s\" does not start with \"%%!\" magic\n" msgstr "" #: src/psgen.c:2473 #, c-format msgid "" "EPS file \"%s\" contains malformed %%%%BoundingBox row:\n" "\"%.*s\"\n" msgstr "" #: src/psgen.c:2498 #, c-format msgid "EPS file \"%s\" is not a valid EPS file\n" msgstr "" #: src/psgen.c:2640 #, c-format msgid "passing through all input files for output language `%s'\n" msgstr "" #: src/psgen.c:2692 #, c-format msgid "passing through %s file \"%s\"\n" msgstr "" #: src/psgen.c:2795 #, c-format msgid "couldn't create temporary divert file: %s" msgstr "" #: src/psgen.c:2812 #, c-format msgid "couldn't rewind divert file: %s" msgstr "" #: src/util.c:93 #, c-format msgid "missing argument: %s" msgstr "" #: src/util.c:186 src/util.c:214 #, c-format msgid "illegal value \"%s\" for option %s" msgstr "" #: src/util.c:202 #, c-format msgid "invalid value \"%s\" for option %s" msgstr "" #: src/util.c:440 #, c-format msgid "illegal option: %s" msgstr "" #: src/util.c:619 #, c-format msgid "%s:%d: %%Format: no name" msgstr "" #: src/util.c:630 #, c-format msgid "%s:%d: %%Format: too long name, maxlen=%d" msgstr "" #: src/util.c:653 #, c-format msgid "%s:%d: %%Format: name \"%s\" is already defined" msgstr "" #: src/util.c:674 #, c-format msgid "%s:%d: %%HeaderHeight: no argument" msgstr "" #: src/util.c:696 #, c-format msgid "%s:%d: %%FooterHeight: no argument" msgstr "" #: src/util.c:843 #, c-format msgid "%s: warning: font size is negative\n" msgstr "" #: src/util.c:845 #, c-format msgid "%s: warning: font width is negative\n" msgstr "" #: src/util.c:847 #, c-format msgid "%s: warning: font height is negative\n" msgstr "" #: src/util.c:866 #, c-format msgid "reading AFM info for font \"%s\"\n" msgstr "" #: src/util.c:899 #, c-format msgid "couldn't open AFM file for font \"%s\", using default\n" msgstr "" #: src/util.c:906 #, c-format msgid "couldn't open AFM file for the default font: %s" msgstr "" #: src/util.c:1095 #, c-format msgid "downloading font \"%s\"\n" msgstr "" #: src/util.c:1100 #, c-format msgid "couldn't open font description file \"%s\": %s\n" msgstr "" #: src/util.c:1392 #, c-format msgid "%s: too long format for %%D{} escape" msgstr "" #: src/util.c:1477 #, c-format msgid "%s: unknown `%%' escape `%c' (%d)" msgstr "" #: src/util.c:1515 #, c-format msgid "%s: no closing ')' for $() escape" msgstr "" #: src/util.c:1518 #, c-format msgid "%s: too long variable name for $() escape" msgstr "" #: src/util.c:1545 #, c-format msgid "%s: too long format for $D{} escape" msgstr "" #: src/util.c:1633 #, c-format msgid "%s: unknown `$' escape `%c' (%d)" msgstr "" #: src/util.c:1824 #, c-format msgid "malformed float dimension: \"%s\"" msgstr "" #: src/util.c:1946 #, c-format msgid "couldn't open input filter \"%s\" for file \"%s\": %s" msgstr "" #: src/util.c:1963 #, c-format msgid "couldn't open input file \"%s\": %s" msgstr "" #: src/mkafmmap.c:167 #, c-format msgid "file=%s\n" msgstr "" #: src/mkafmmap.c:167 msgid "stdout" msgstr "" #: src/mkafmmap.c:175 #, c-format msgid "%s: couldn't open output file \"%s\"" msgstr "" #: src/mkafmmap.c:189 msgid "couldn't create AFM library" msgstr "" #: src/mkafmmap.c:238 #, c-format msgid "" "Usage: %s [OPTION]... FILE...\n" "Mandatory arguments to long options are mandatory for short options too.\n" " -h, --help print this help and exit\n" " -p, --output-file=NAME print output to file NAME (default file is\n" " font.map). If FILE is `-', leavy output to\n" " stdout.\n" " -V, --version print version number\n" msgstr "" #: states/lex.l:167 states/lex.l:173 msgid "error: EOF in comment" msgstr "" #: states/lex.l:204 msgid "error: EOF in string constant" msgstr "" #: states/lex.l:311 msgid "error: EOF in regular expression" msgstr "" #: states/main.c:197 #, c-format msgid "states for %s" msgstr "" #: states/main.c:252 #, c-format msgid "%s: malformed variable definition \"%s\"\n" msgstr "" #: states/main.c:280 #, c-format msgid "%s: couldn't create output file \"%s\": %s\n" msgstr "" #: states/main.c:311 #, c-format msgid "%s: unknown warning level `%s'\n" msgstr "" #: states/main.c:360 states/main.c:396 states/prims.c:1375 states/utils.c:227 #, c-format msgid "%s: out of memory\n" msgstr "" #: states/main.c:421 #, c-format msgid "%s: couldn't open input file `%s': %s\n" msgstr "" #: states/main.c:445 #, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" #: states/main.c:449 #, c-format msgid "" " -D, --define=VAR=VAL define variable VAR to have value VAL\n" " -f, --file=NAME read state definitions from file NAME\n" " -h, --help print this help and exit\n" " -o, --output=NAME save output to file NAME\n" " -p, --path=PATH set the load path to PATH\n" " -s, --state=NAME start from state NAME\n" " -v, --verbose increase the program verbosity\n" " -V, --version print version number\n" " -W, --warning=LEVEL set the warning level to LEVEL\n" msgstr "" #: states/prims.c:44 #, c-format msgid "%s:%d: %s: too few arguments\n" msgstr "" #: states/prims.c:54 #, c-format msgid "%s:%d: %s: too many arguments\n" msgstr "" #: states/prims.c:107 states/prims.c:127 states/prims.c:253 states/prims.c:426 #: states/prims.c:901 #, c-format msgid "%s:%d: %s: illegal argument type\n" msgstr "" #: states/prims.c:468 #, c-format msgid "%s: panic: " msgstr "" #: states/prims.c:502 #, c-format msgid "%s:%d: %s: malformed version string `%s'\n" msgstr "" #: states/prims.c:517 #, c-format msgid "" "%s: FATAL ERROR: States version %s or higher is required for this script\n" msgstr "" #: states/prims.c:608 states/prims.c:1274 #, c-format msgid "%s:%d: %s: start offset is bigger than end offset\n" msgstr "" #: states/prims.c:617 states/prims.c:633 states/prims.c:1280 #, c-format msgid "%s:%d: %s: offset out of range\n" msgstr "" #: states/prims.c:651 #, c-format msgid "%s:%d: %s: illegal argument\n" msgstr "" #: states/prims.c:698 #, c-format msgid "%s:%d: %s: illegal regexp character syntax: %c\n" msgstr "" #: states/prims.c:913 #, c-format msgid "%s:%d: %s: couldn't define state `%s'\n" msgstr "" #: states/prims.c:1010 #, c-format msgid "%s: primitive `%s': too few arguments for format\n" msgstr "" #: states/prims.c:1038 #, c-format msgid "%s:%d: %s: argument %d doesn't match format\n" msgstr "" #: states/prims.c:1078 #, c-format msgid "%s:%d: %s: no extra options can be specified for %%s\n" msgstr "" #: states/prims.c:1087 #, c-format msgid "%s:%d: %s: illegal type specifier `%c'\n" msgstr "" #: states/process.c:115 #, c-format msgid "%s: undefined state `%s'\n" msgstr "" #: states/process.c:196 #, c-format msgid "%s: error: undefined variable `%s'\n" msgstr "" #: states/process.c:290 #, c-format msgid "%s: undefined super state `%s'\n" msgstr "" #: states/utils.c:260 #, c-format msgid "%s:%d: couldn't compile regular expression \"%s\": %s\n" msgstr "" #: states/utils.c:449 states/utils.c:477 #, c-format msgid "%s: ouf of memory" msgstr "" #: states/utils.c:454 #, c-format msgid "warning: redefining state `%s'" msgstr "" #: states/utils.c:481 #, c-format msgid "%s:%d: warning: redefining subroutine `%s'\n" msgstr "" #: states/utils.c:578 #, c-format msgid "%s:%d: error: undefined variable `%s'\n" msgstr "" #: states/utils.c:616 #, c-format msgid "%s:%d: error: couldn't set variable `%s'\n" msgstr "" #: states/utils.c:767 #, c-format msgid "%s:%d: error: expression between illegal types\n" msgstr "" #: states/utils.c:865 #, c-format msgid "%s:%d: error: too few arguments for subroutine\n" msgstr "" #: states/utils.c:872 #, c-format msgid "%s:%d: error: too many arguments for subroutine\n" msgstr "" #: states/utils.c:926 #, c-format msgid "%s:%d: error: undefined procedure `%s'\n" msgstr "" #: states/utils.c:1018 #, c-format msgid "%s:%d: error: illegal lvalue for assignment\n" msgstr "" #: states/utils.c:1026 states/utils.c:1110 #, c-format msgid "%s:%d: error: array reference index is not integer\n" msgstr "" #: states/utils.c:1032 #, c-format msgid "%s:%d: error: negative array reference index\n" msgstr "" #: states/utils.c:1083 #, c-format msgid "%s:%d: error: illegal rvalue for string assignment\n" msgstr "" #: states/utils.c:1102 #, c-format msgid "%s:%d: error: illegal type for array reference\n" msgstr "" #: states/utils.c:1119 #, c-format msgid "%s:%d: error: array reference index out of range\n" msgstr "" #: states/utils.c:1345 #, c-format msgid "%s: couldn't open definition file `%s': %s\n" msgstr "" #: states/utils.c:1401 #, c-format msgid "%s: autoloading `%s' from `%s'\n" msgstr "" enscript-1.6.5.90/po/ca.po0000644000175000017500000012373111606344231012072 00000000000000# Catalan translation of GNU enscript. # Copyright (C) 2002 Free Software Foundation, Inc. # Ernest Adrogué Calveras , 2002. # msgid "" msgstr "" "Project-Id-Version: enscript 1.6.2\n" "Report-Msgid-Bugs-To: bug-enscript@gnu.org\n" "POT-Creation-Date: 2011-07-10 16:43+0100\n" "PO-Revision-Date: 2002-08-14 12:24+0200\n" "Last-Translator: Ernest Adrogué Calveras \n" "Language-Team: Catalan \n" "Language: ca\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=iso-8859-1\n" "Content-Transfer-Encoding: 8-bit\n" #: compat/getopt.c:628 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "%s: l'opció `%s' és ambigua\n" #: compat/getopt.c:652 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "%s: l'opció `--%s' no admet arguments\n" #: compat/getopt.c:657 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "%s: l'opció `%c%s' no admet arguments\n" #: compat/getopt.c:674 compat/getopt.c:847 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "%s: l'opció `%s' requereix un argument\n" #: compat/getopt.c:703 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "%s: opció no reconeguda `--%s'\n" #: compat/getopt.c:707 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "%s: opció no reconeguda `%c%s'\n" #: compat/getopt.c:733 #, c-format msgid "%s: illegal option -- %c\n" msgstr "%s: opció il·legal -- %c\n" #: compat/getopt.c:736 #, c-format msgid "%s: invalid option -- %c\n" msgstr "%s: opció no vàlida -- %c\n" #: compat/getopt.c:766 compat/getopt.c:896 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: l'opció requereix un argument -- %c\n" #: compat/getopt.c:813 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "%s: l'opció `-W %s' és ambigua\n" #: compat/getopt.c:831 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s: l'opció `-W %s' no admet arguments\n" #: compat/xalloc.c:70 #, c-format msgid "xmalloc(): couldn't allocate %d bytes\n" msgstr "xmalloc(): no s'han pogut assignar %d octets\n" #: compat/xalloc.c:88 #, c-format msgid "xcalloc(): couldn't allocate %d bytes\n" msgstr "xcalloc(): no s'han pogut assignar %d octets\n" #: compat/xalloc.c:109 #, c-format msgid "xrealloc(): couldn't reallocate %d bytes\n" msgstr "xrealloc(): no s'han pogut reassignar %d octets\n" #: compat/regex.c:996 msgid "Success" msgstr "Succés" #: compat/regex.c:997 msgid "No match" msgstr "Cap cas" #: compat/regex.c:998 msgid "Invalid regular expression" msgstr "Expressió regular no vàlida" #: compat/regex.c:999 msgid "Invalid collation character" msgstr "Caràcter de col·lació no vàlid" #: compat/regex.c:1000 msgid "Invalid character class name" msgstr "Classe de caràcter no vàlida" #: compat/regex.c:1001 msgid "Trailing backslash" msgstr "Barra invertida arrossegada" #: compat/regex.c:1002 msgid "Invalid back reference" msgstr "Referència enrera no vàlida" #: compat/regex.c:1003 msgid "Unmatched [ or [^" msgstr "Signe [ o [^ no correspost" #: compat/regex.c:1004 msgid "Unmatched ( or \\(" msgstr "Signe ( o \\( no correspost" #: compat/regex.c:1005 msgid "Unmatched \\{" msgstr "Signe \\{ no correspost" #: compat/regex.c:1006 msgid "Invalid content of \\{\\}" msgstr "Contingut de \\{\\} no vàlid" #: compat/regex.c:1007 msgid "Invalid range end" msgstr "Final d'interval no vàlid" #: compat/regex.c:1008 msgid "Memory exhausted" msgstr "Memòria esgotada" #: compat/regex.c:1009 msgid "Invalid preceding regular expression" msgstr "Operador de repetició incorrecte" #: compat/regex.c:1010 msgid "Premature end of regular expression" msgstr "Final prematur de l'expressió regular" #: compat/regex.c:1011 msgid "Regular expression too big" msgstr "Expressió regular massa gran" #: compat/regex.c:1012 msgid "Unmatched ) or \\)" msgstr "Signe ) o \\) no correspost" #: compat/regex.c:5458 msgid "No previous regular expression" msgstr "Cap expressió regular prèvia" # Comprovar si aquesta cadena és adequada. #: src/main.c:949 #, no-c-format msgid "$3v $-40N $3% pages $4L lines $E $C" msgstr "$3v $-40N pàgina $3% de $3= %D{%d/%m/%Y} %T" # buscar una manera resumida #: src/main.c:979 #, c-format msgid "couldn't get passwd entry for uid=%d: %s" msgstr "" "no s'ha pogut obtenir l'entrada de l'usuari uid=%d en el fitxer passwd: %s" #: src/main.c:1071 #, fuzzy, c-format msgid "couldn't read config file \"%s/%s\": %s" msgstr "no s'ha pogut obrir el fitxer de configuració \"%s/%s\": %s" #: src/main.c:1075 msgid "I did also try the following directories:" msgstr "" #: src/main.c:1076 src/main.c:1077 src/main.c:1078 #, c-format msgid "\t%s" msgstr "" #: src/main.c:1079 msgid "\t../lib" msgstr "" #: src/main.c:1080 msgid "\t../../lib" msgstr "" #: src/main.c:1082 msgid "This is probably an installation error. Please, try to rebuild:" msgstr "" #: src/main.c:1083 msgid "\tmake distclean" msgstr "" #: src/main.c:1084 msgid "\t./configure --prefix=PREFIX" msgstr "" #: src/main.c:1085 msgid "\tmake" msgstr "" #: src/main.c:1086 msgid "\tmake check" msgstr "" #: src/main.c:1087 msgid "\tmake install" msgstr "" #: src/main.c:1088 msgid "" "or set the environment variable `ENSCRIPT_LIBRARY' to point to your library " "directory." msgstr "" #: src/main.c:1161 #, c-format msgid "unknown encoding: %s" msgstr "codificació desconeguda: %s" #: src/main.c:1180 #, c-format msgid "couldn't open AFM library: %s" msgstr "no s'ha pogut obrir la biblioteca AFM: %s" # els paràmetres llx, llx, urx i ury són els quatre extrems que defineixen # la zona imprimible dins del paper, deuen ser l'abreviació d'alguna cosa # però de moment no ho tradueixo. #: src/main.c:1209 #, c-format msgid "" "known media:\n" "name width\theight\tllx\tlly\turx\tury\n" "------------------------------------------------------------\n" msgstr "" "suports coneguts:\n" "nom ample\talçada\tllx\tlly\turx\tury\n" "------------------------------------------------------------\n" #: src/main.c:1228 #, c-format msgid "do not know anything about media \"%s\"" msgstr "el suport \"%s\" és desconegut" #: src/main.c:1272 #, c-format msgid "" "set new marginals for media `%s' (%dx%d): llx=%d, lly=%d, urx=%d, ury=%d\n" msgstr "" "nous valors marginals pel suport `%s' (%dx%d): llx=%d, lly=%d, urx=%d, ury=" "%d\n" #: src/main.c:1283 #, c-format msgid "illegal page label format \"%s\"" msgstr "el format d'etiqueta de pàgina \"%s\" és il·legal" #: src/main.c:1295 #, c-format msgid "illegal non-printable format \"%s\"" msgstr "el format de caràcters no-imprimibles \"%s\" és il·legal" #: src/main.c:1309 #, c-format msgid "illegal style for wrapped line marker: \"%s\"" msgstr "l'estil de marca d'ajutstament de línia \"%s\" és il·legal" #: src/main.c:1319 #, c-format msgid "illegal N-up argument: %d" msgstr "nombre de pàgines lògiques il·legal: %d" #: src/main.c:1324 #, c-format msgid "N-up argument must be power of 2: %d" msgstr "el nombre de pàgines lògiques ha de ser una potència de 2: %d" #: src/main.c:1401 #, c-format msgid "malformed underlay position: %s" msgstr "la posició del peu de pàgina és incorrecta: %s" #: src/main.c:1424 #, c-format msgid "illegal underlay style: %s" msgstr "l'estil del peu de pàgina és incorrecte: %s" #: src/main.c:1451 #, c-format msgid "" "Highlighting is supported for the following languages and file formats:\n" "\n" msgstr "" "Els següents llenguatges i formats suporten ressalt:\n" "\n" #: src/main.c:1632 #, fuzzy, c-format msgid "couldn't create temporary toc file: %s" msgstr "no s'ha pogut crear el nom del fitxer índex: %s" #: src/main.c:1679 #, c-format msgid "couldn't stat input file \"%s\": %s" msgstr "no s'ha pogut obtenir l'estat del fitxer \"%s\": %s" #: src/main.c:1699 #, c-format msgid "couldn't rewind toc file: %s" msgstr "no s'ha pogut localitzar l'inici del fitxer índex: %s" # o «Taula de Continguts» #: src/main.c:1705 msgid "Table of Contents" msgstr "Índex" #: src/main.c:1731 msgid "no output generated\n" msgstr "no s'ha generat res\n" #: src/main.c:1736 #, c-format msgid "output sent to %s\n" msgstr "la sortida s'ha enviat a %s\n" #: src/main.c:1737 src/main.c:1768 msgid "printer" msgstr "l'impressora" #: src/main.c:1739 #, c-format msgid "output left in %s\n" msgstr "la sortida s'ha deixat a %s\n" #: src/main.c:1760 #, c-format msgid "%d page" msgid_plural "%d pages" msgstr[0] "" msgstr[1] "" #: src/main.c:1762 #, c-format msgid "%d copy" msgid_plural "%d copies" msgstr[0] "" msgstr[1] "" #: src/main.c:1767 #, c-format msgid " sent to %s\n" msgstr " enviades a %s\n" #: src/main.c:1770 #, c-format msgid " left in %s\n" msgstr " deixades a %s\n" #: src/main.c:1776 #, fuzzy, c-format msgid "%d line was %s\n" msgid_plural "%d lines were %s\n" msgstr[0] "%d línies han estat %s\n" msgstr[1] "%d línies han estat %s\n" #: src/main.c:1781 msgid "truncated" msgstr "tallades" #: src/main.c:1781 msgid "wrapped" msgstr "ajustades" #: src/main.c:1788 #, fuzzy, c-format msgid "%d character was missing\n" msgid_plural "%d characters were missing\n" msgstr[0] "s'han perdut %d caràcters\n" msgstr[1] "s'han perdut %d caràcters\n" #: src/main.c:1794 msgid "missing character codes (decimal):\n" msgstr "codis dels càracters que s'han perdut (en decimal):\n" #: src/main.c:1803 #, fuzzy, c-format msgid "%d non-printable character\n" msgid_plural "%d non-printable characters\n" msgstr[0] "%d caràcters no imprimibles\n" msgstr[1] "%d caràcters no imprimibles\n" #: src/main.c:1810 msgid "non-printable character codes (decimal):\n" msgstr "codis dels caràcters no imprimibles (en decimal):\n" #: src/main.c:1859 #, c-format msgid "couldn't open printer `%s': %s" msgstr "no s'ha pogut obrir l'impressora `%s': %s" #: src/main.c:1868 #, c-format msgid "couldn't create output file \"%s\": %s" msgstr "no s'ha pogut crear el fitxer de sortida \"%s\": %s" #: src/main.c:1885 #, fuzzy, c-format msgid "couldn't close output file \"%s\": %s" msgstr "no s'ha pogut crear el fitxer de sortida \"%s\": %s" #: src/main.c:1943 #, c-format msgid "" "syntax error in option string %s=\"%s\":\n" "missing end of quotation: %c" msgstr "" "error de sintaxi a la cadena %s=\"%s\":\n" "falta l'acabament de la cita: %c" #: src/main.c:1975 #, c-format msgid "" "warning: didn't process following options from environment variable %s:\n" msgstr "" "atenció: no es processaran les següents opcions de la variable d'entorn %s:\n" #: src/main.c:1979 #, c-format msgid " option %d = \"%s\"\n" msgstr " opció %d = \"%s\"\n" #: src/main.c:2025 #, fuzzy msgid "number of columns must be larger than zero" msgstr "l'aliniació de fitxer ha de ser un nombre positiu" #: src/main.c:2083 msgid "file alignment must be larger than zero" msgstr "l'aliniació de fitxer ha de ser un nombre positiu" #: src/main.c:2138 src/main.c:2144 src/main.c:2355 src/util.c:416 #, c-format msgid "malformed font spec: %s" msgstr "tipus de lletra incorrecte: %s" #: src/main.c:2160 #, c-format msgid "couldn't find header definition file \"%s.hdr\"" msgstr "no s'ha trobat el fitxer de definicions \"%s.hdr\"" #: src/main.c:2204 #, c-format msgid "must print at least one line per each page: %s" msgstr "s'ha d'imprimir almenys una línia per pàgina: %s" #: src/main.c:2224 #, c-format msgid "%s: illegal newline character specifier: '%s': expected 'n' or 'r'\n" msgstr "" "%s: el caràcter de salt-de-línia és il·legal: '%s': s'esperava 'n' o 'r'\n" #: src/main.c:2313 #, c-format msgid "malformed argument `%s' for option -W, --option: no comma found" msgstr "" #: src/main.c:2318 #, c-format msgid "helper application specification must be single character: %s" msgstr "" #: src/main.c:2414 msgid "slice must be greater than zero" msgstr "el punt d'inici de la secció vertical ha de ser un nombre positiu" #: src/main.c:2495 states/main.c:318 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Proveu `%s --help' per obtenir més informació.\n" #: src/main.c:2515 #, fuzzy, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" "Mandatory arguments to long options are mandatory for short options too.\n" " -# an alias for option -n, --copies\n" " -1 same as --columns=1\n" " -2 same as --columns=2\n" " --columns=NUM specify the number of columns per page\n" " -a, --pages=PAGES specify which pages are printed\n" " -A, --file-align=ALIGN align separate input files to ALIGN\n" " -b, --header=HEADER set page header\n" " -B, --no-header no page headers\n" " -c, --truncate-lines cut long lines (default is to wrap)\n" " -C[START], --line-numbers[=START]\n" " precede each line with its line number\n" " -d an alias for option --printer\n" " -D, --setpagedevice=KEY[:VALUE]\n" " pass a page device definition to output\n" " -e[CHAR], --escapes[=CHAR] enable special escape interpretation\n" msgstr "" "Sintaxi: %s [OPCIÓ]... [FITXER]...\n" "Els arguments obligatoris per les opcions llargues també ho són per les " "curtes.\n" " -# un àlies de l'opció -n, --copies\n" " -1 el mateix que --columns=1\n" " -2 el mateix que --columns=2\n" " --columns=NÚM especifica el nombre de columnes per pàgina\n" " -a, --pages=PÀG especifica quines pàgines imprimir\n" " -A, --file-align=ALINEACIÓ alinea diversos fitxers a ALINEACIÓ\n" " -b, --header=ENCAPÇALAMENT defineix l'encapçalament\n" " -B, --no-header omet l'encapçalament\n" " -c, --truncate-lines talla les línies llargues (per defecte les " "ajusta)\n" " -C, --line-numbers[=INICI]\n" " enumera cada una de les línies\n" " -d un àlies de l'opció --printer\n" " -D, --setpagedevice=NOM[:VALOR]\n" " passa una definició de dispositiu de pàgina al\n" " codi PostScript generat\n" " -e, --escapes[=CARÀCTER] interpreta les seqüències especials d'escapada\n" #: src/main.c:2535 #, fuzzy, c-format msgid " -E[LANG], --highlight[=LANG] highlight source code\n" msgstr "" " -E, --pretty-print[=LLENGUATGE]\n" " imprimeix codi font de manera vistosa\n" #: src/main.c:2538 #, fuzzy, c-format msgid "" " -f, --font=NAME use font NAME for body text\n" " -F, --header-font=NAME use font NAME for header texts\n" " -g, --print-anyway nothing (compatibility option)\n" " -G same as --fancy-header\n" " --fancy-header[=NAME] select fancy page header\n" " -h, --no-job-header suppress the job header page\n" " -H[NUM], --highlight-bars[=NUM] specify how high highlight bars are\n" " -i, --indent=NUM set line indent to NUM characters\n" " -I, --filter=CMD read input files through input filter CMD\n" " -j, --borders print borders around columns\n" " -J, an alias for option --title\n" " -k, --page-prefeed enable page prefeed\n" " -K, --no-page-prefeed disable page prefeed\n" " -l, --lineprinter simulate lineprinter, this is an alias for:\n" " --lines-per-page=66, --no-header, --" "portrait,\n" " --columns=1\n" msgstr "" " -f, --font=NOM usa NOM com a tipus de lletra pel document\n" " -F, --header-font=NOM usa NOM com a tipus de lletra per " "l'encapçalament\n" " -g, --print-anyway res (opció de compatibilitat)\n" " -G el mateix que --fancy-header\n" " --fancy-header[=NOM] fa un encapçalament de pàgina gràfic\n" " -h, --no-job-header omet la pàgina de tasca d'impressió\n" " -H, --highlight-bars=NÚM especifica l'alçada de les barres de ressalt\n" " -i, --indent=NÚM entra les línies NÚM caràcters\n" " -I, --filter=ORDRE llegeix l'entrada a través del filtre ORDRE\n" " -j, --borders imprimeix un marge al voltant de les columnes\n" " -J un àlies de l'opció --title\n" " -k, --page-prefeed activa la prealimentació de paper\n" " -K, --no-page-prefeed desactiva la prealimentació de paper\n" " -l, --lineprinter simula una impressora de línies; un àlies de:\n" " --lines-per-page=66, --no-header, --" "portrait,\n" " --columns=1\n" #: src/main.c:2556 #, c-format msgid "" " -L, --lines-per-page=NUM specify how many lines are printed on each " "page\n" " -m, --mail send mail upon completion\n" " -M, --media=NAME use output media NAME\n" " -n, --copies=NUM print NUM copies of each page\n" " -N, --newline=NL select the newline character. Possible\n" " values for NL are: n (`\\n') and r (`\\r').\n" " -o an alias for option --output\n" " -O, --missing-characters list missing characters\n" " -p, --output=FILE leave output to file FILE. If FILE is `-',\n" " leave output to stdout.\n" " -P, --printer=NAME print output to printer NAME\n" " -q, --quiet, --silent be really quiet\n" " -r, --landscape print in landscape mode\n" " -R, --portrait print in portrait mode\n" msgstr "" " -L, --lines-per-page=NÚM especifica quantes línies imprimir a cada " "pàgina\n" " -m, --mail envia un missatge electrònic en finalitzar\n" " -M, --media=NOM usa el suport de sortida NOM\n" " -n, --copies=NÚM imprimeix NÚM còpies de cada pàgina\n" " -N, --newline=SL selecciona el caràcter de salt-de-línia. Els\n" " valors possibles de SL són: n (`\\n') i r (`" "\\r').\n" " -o un àlies de l'opció --output\n" " -O, --missing-characters fa una llista amb els caràcters que s'han " "perdut\n" " -p, --output=FITXER deixa la sortida a FITXER. Si FITXER és `-',\n" " l'envia a la sortida estàndard.\n" " -P, --printer=NOM envia la sortida a l'impressora NOM\n" " -q, --quiet, --silent informa amb discreció\n" " -r, --landscape imprimeix en sentit apaïsat\n" " -R, --portrait imprimeix en sentit normal\n" #: src/main.c:2572 #, fuzzy, c-format msgid "" " -s, --baselineskip=NUM set baselineskip to NUM\n" " -S, --statusdict=KEY[:VALUE]\n" " pass a statusdict definition to the output\n" " -t, --title=TITLE set banner page's job title to TITLE. Option\n" " sets also the name of the input file stdin.\n" " -T, --tabsize=NUM set tabulator size to NUM\n" " -u[TEXT], --underlay[=TEXT] print TEXT under every page\n" " -U, --nup=NUM print NUM logical pages on each output page\n" " -v, --verbose tell what we are doing\n" " -V, --version print version number\n" " -w, --language=LANG set output language to LANG\n" " -W, --options=APP,OPTION pass option OPTION to helper application APP\n" " -X, --encoding=NAME use input encoding NAME\n" " -z, --no-formfeed do not interpret form feed characters\n" " -Z, --pass-through pass through PostScript and PCL files\n" " without any modifications\n" msgstr "" " -s, --baselineskip=NÚM fixa la distància entre línies en NÚM\n" " -S, --statusdict=NOM[:VALOR]\n" " passa una definició `statusdict' al codi " "generat.\n" " -t, --title=TÍTOL defineix el títol de la tasca d'impressió. " "També\n" " defineix el nom del fitxer d'entrada stdin.\n" " -T, --tabsize=NÚM fixa la distància de tabulació en NÚM\n" " -u, --underlay[=TEXT] imprimeix TEXT al peu de cada pàgina\n" " -U, --nup=NÚM imprimeix NÚM pàgines lògiques a cada pàgina\n" " -v, --verbose informa amb loquacitat\n" " -V, --version mostra la versió del programa\n" " -W, --language=LLENGUATGE especifica quin llenguatge generar\n" " -X, --encoding=NOM especifica la codificació de l'entrada\n" " -z, --no-formfeed no interpreta els caràcters de salt-de-pàgina\n" " -Z, --pass-through passa fitxers PostScript i PCL sense alterar-" "los\n" #: src/main.c:2590 #, c-format msgid "" "Long-only options:\n" " --color[=bool] create color outputs with states\n" " --continuous-page-numbers count page numbers across input files. Don't\n" " restart numbering at beginning of each file.\n" " --download-font=NAME download font NAME\n" " --extended-return-values enable extended return values\n" " --filter-stdin=NAME specify how stdin is shown to the input filter\n" " --footer=FOOTER set page footer\n" " --h-column-height=HEIGHT set the horizontal column height to HEIGHT\n" " --help print this help and exit\n" msgstr "" #: src/main.c:2601 #, fuzzy, c-format msgid "" " --help-highlight describe all supported --highlight languages\n" " and file formats\n" " --highlight-bar-gray=NUM print highlight bars with gray NUM (0 - 1)\n" " --list-media list names of all known media\n" " --margins=LEFT:RIGHT:TOP:BOTTOM\n" " adjust page marginals\n" " --mark-wrapped-lines[STYLE]\n" " mark wrapped lines in the output with STYLE\n" " --non-printable-format=FMT specify how non-printable chars are printed\n" msgstr "" "Opcions només llargues:\n" " --color[=bool] imprimeix en color\n" " --download-font=NOM inclou la descripció del tipus de lletra NOM\n" " --filter-stdin=NOM especifica com indicar stdin al filtre " "d'entrada\n" " --h-column-height=AMPLADA defineix l'amplada de les columnes\n" " --help mostra aquesta ajuda i surt\n" " --help-pretty-print descriu tots els llenguatges i formats " "suportats\n" " per l'opció --pretty-print\n" " --highlight-bar-gray=NÚM usa un gris NÚM (0 - 1) per les barres de " "ressalt\n" " --list-media mostra tots els suports coneguts\n" " --list-options mostra totes les opcions i els respectius " "valors\n" " --margins=ESQUERRA:DRETA:DALT:BAIX\n" " ajusta els marges\n" " --mark-wrapped-lines[ESTIL]\n" " marca les línies ajustades amb ESTIL\n" " --non-printable-format=FMT especifica quin format utilitzar per " "representar\n" " els caràcters no imprimibles\n" #: src/main.c:2612 #, fuzzy, c-format msgid "" " --nup-columnwise layout pages in the N-up printing columnwise\n" " --nup-xpad=NUM set the page x-padding of N-up printing to NUM\n" " --nup-ypad=NUM set the page y-padding of N-up printing to NUM\n" " --page-label-format=FMT set page label format to FMT\n" " --ps-level=LEVEL set the PostScript language level that " "enscript\n" " should use\n" " --printer-options=OPTIONS pass extra options to the printer command\n" " --rotate-even-pages rotate even-numbered pages 180 degrees\n" msgstr "" " --nup-xpad=NÚM fixa el marge x entre pàgines lògiques en NÚM\n" " --nup-ypad=NÚM fixa el marge y entre pàgiens lògiques en NÚM\n" " --page-label-format=FMT defineix el format de l'etiqueta de pàgina\n" " --ps-level=NIVELL indica quin nivell del llenguatge PostScript " "ha\n" " d'utilitzar l'enscript\n" " --printer-options=OPCIONS passa opcions addicionals a l'ordre " "d'impressió\n" " --rotate-even-pages gira les pàgines parell 180 graus\n" #: src/main.c:2622 #, fuzzy, c-format msgid "" " --slice=NUM print vertical slice NUM\n" " --style=STYLE use highlight style STYLE\n" " --swap-even-page-margins swap left and right side margins for each even\n" " numbered page\n" " --toc print table of contents\n" " --ul-angle=ANGLE set underlay text's angle to ANGLE\n" " --ul-font=NAME print underlays with font NAME\n" " --ul-gray=NUM print underlays with gray value NUM\n" " --ul-position=POS set underlay's starting position to POS\n" " --ul-style=STYLE print underlays with style STYLE\n" " --word-wrap wrap long lines from word boundaries\n" msgstr "" " --slice=NÚM imprimeix la secció vertical definida per NÚM\n" " --style=ESTIL usa l'estil de ressalt ESTIL\n" " --toc imprimeix un índex\n" " --ul-angle=ANGLE defineix l'inclinació del text del peu de " "pàgina\n" " --ul-font=NOM usa el tipus de lletra NOM pel peu de pàgina\n" " --ul-gray=NÚM imprimeix el peu de pàgina en gris de valor " "NÚM\n" " --ul-position=POSICIÓ defineix la posició inicial del peu de pàgina\n" " --ul-style=ESTIL imprimeix el peu de pàgina amb l'estil ESTIL\n" " --word-wrap ajusta les línies llargues a nivell de paraula\n" #: src/main.c:2636 #, fuzzy, c-format msgid "" "\n" "Report bugs to <%s>.\n" msgstr "" "\n" "Comuniqueu bugs a mtr@iki.fi.\n" #: src/psgen.c:331 #, c-format msgid "couldn't find prolog \"%s\": %s\n" msgstr "no s'ha trobat el prolog \"%s\": %s\n" #: src/psgen.c:339 #, c-format msgid "couldn't find encoding file \"%s.enc\": %s\n" msgstr "no s'ha trobat el fitxer de codificació \"%s.enc\": %s\n" #: src/psgen.c:471 #, c-format msgid "couldn't find header definition file \"%s.hdr\": %s\n" msgstr "no s'ha trobat el fitxer de definicions \"%s.hdr\": %s\n" #: src/psgen.c:615 #, c-format msgid "processing file \"%s\"...\n" msgstr "processant el fitxer \"%s\"...\n" #: src/psgen.c:913 #, c-format msgid "EPS file \"%s\" is too large for page\n" msgstr "el fitxer EPS \"%s\" no cap a la pàgina\n" #: src/psgen.c:986 msgid "user font encoding can be only the system's default or `ps'" msgstr "" "la codificació del tipus de lletra només pot ser la predeterminada o `ps'" #: src/psgen.c:1228 #, c-format msgid "unknown special escape: %s" msgstr "seqüència especial d'escapada desconeguda: %s" #: src/psgen.c:1354 #, c-format msgid "illegal option %c for ^@epsf escape" msgstr "l'opció %c a la seqüència ^@epsf és il·legal" #: src/psgen.c:1360 msgid "malformed ^@epsf escape: no ']' after options" msgstr "seqüència ^@epsf incorrecta: falta un ']' després de les opcions" #: src/psgen.c:1372 #, c-format msgid "" "too long file name for ^@epsf escape:\n" "%.*s" msgstr "" "la seqüència ^@epsf conté un nom de fitxer massa llarg:\n" "%.*s" #: src/psgen.c:1376 msgid "unexpected EOF while scanning ^@epsf escape" msgstr "final de fitxer inesperat quan s'analitzava la seqüència ^@epsf" #: src/psgen.c:1382 msgid "malformed ^@epsf escape: no '{' found" msgstr "seqüència ^@epsf incorrecta: no s'ha trobat cap '{'" #: src/psgen.c:1440 #, c-format msgid "malformed %s escape: no '{' found" msgstr "seqüència d'escapada %s incorrecta: no s'ha trobat cap '{'" #: src/psgen.c:1454 #, c-format msgid "" "too long argument for %s escape:\n" "%.*s" msgstr "" "la seqüència d'escapada %s conté un argument massa llarg:\n" "%.*s" #: src/psgen.c:1474 #, c-format msgid "malformed font spec for ^@font escape: %s" msgstr "especificació de tipus de lletra incorrecta a la seqüència ^@font: %s" #: src/psgen.c:1511 #, c-format msgid "malformed color spec for ^@%s escape: %s" msgstr "especificació de color incorrecta a la seqüència ^@%s: %s" #: src/psgen.c:1535 #, c-format msgid "invalid value for ^@shade escape: %s" msgstr "valor invàlid a la seqüència ^@shade: %s" #: src/psgen.c:1543 #, c-format msgid "invalid value for ^@bggray escape: %s" msgstr "valor invàlid a la seqüència ^@bggray: %s" #: src/psgen.c:2412 #, c-format msgid "couldn't open EPS file \"%s\": %s\n" msgstr "no s'ha pogut obrir el fitxer EPS \"%s\": %s\n" #: src/psgen.c:2448 #, c-format msgid "EPS file \"%s\" does not start with \"%%!\" magic\n" msgstr "el fitxer EPS \"%s\" no comença amb la combinació màgica \"%%!\"\n" #: src/psgen.c:2473 #, c-format msgid "" "EPS file \"%s\" contains malformed %%%%BoundingBox row:\n" "\"%.*s\"\n" msgstr "" "el fitxer EPS \"%s\" conté una línia %%%%BoundingBox incorrecta:\n" "\"%.*s\"\n" #: src/psgen.c:2498 #, c-format msgid "EPS file \"%s\" is not a valid EPS file\n" msgstr "el fitxer EPS \"%s\" no és un fitxer EPS vàlid\n" # estudiar detalladament l'opció -Z #: src/psgen.c:2640 #, c-format msgid "passing through all input files for output language `%s'\n" msgstr "passant tots els fitxers de l'entrada al llenguatge `%s'\n" # estudiar l'opció -Z #: src/psgen.c:2692 #, c-format msgid "passing through %s file \"%s\"\n" msgstr "passant el fitxer %s \"%s\"\n" #: src/psgen.c:2795 #, fuzzy, c-format msgid "couldn't create temporary divert file: %s" msgstr "no s'ha pogut crear el nom del fitxer temporal: %s" #: src/psgen.c:2812 #, c-format msgid "couldn't rewind divert file: %s" msgstr "no s'ha pogut localitzar l'inici del fitxer temporal: %s" #: src/util.c:93 #, fuzzy, c-format msgid "missing argument: %s" msgstr "nombre de pàgines lògiques il·legal: %d" #: src/util.c:186 src/util.c:214 #, c-format msgid "illegal value \"%s\" for option %s" msgstr "el valor \"%s\" de l'opció %s és il·legal" #: src/util.c:202 #, c-format msgid "invalid value \"%s\" for option %s" msgstr "el valor \"%s\" de l'opció %s no és vàlid" #: src/util.c:440 #, c-format msgid "illegal option: %s" msgstr "opció il·legal: %s" #: src/util.c:619 #, c-format msgid "%s:%d: %%Format: no name" msgstr "%s:%d: %%Format: cap nom" #: src/util.c:630 #, c-format msgid "%s:%d: %%Format: too long name, maxlen=%d" msgstr "%s:%d: %%Format: nom massa llarg, llargada màxima: %d caràcters" #: src/util.c:653 #, c-format msgid "%s:%d: %%Format: name \"%s\" is already defined" msgstr "%s:%d: %%Format: el nom \"%s\" ja estava definit" #: src/util.c:674 #, c-format msgid "%s:%d: %%HeaderHeight: no argument" msgstr "%s:%d: %%HeaderHeight: cap argument" #: src/util.c:696 #, c-format msgid "%s:%d: %%FooterHeight: no argument" msgstr "%s:%d: %%FooterHeight: cap argument" # sona estrany #: src/util.c:843 #, c-format msgid "%s: warning: font size is negative\n" msgstr "%s: atenció: la mida de lletra és un nombre negatiu\n" #: src/util.c:845 #, c-format msgid "%s: warning: font width is negative\n" msgstr "%s: atenció: l'amplada de lletra és un nombre negatiu\n" #: src/util.c:847 #, c-format msgid "%s: warning: font height is negative\n" msgstr "%s: atenció: l'alçada de lletra és un nombre negatiu\n" #: src/util.c:866 #, c-format msgid "reading AFM info for font \"%s\"\n" msgstr "llegint l'informació AFM pel tipus de lletra \"%s\"\n" #: src/util.c:899 #, c-format msgid "couldn't open AFM file for font \"%s\", using default\n" msgstr "" "no s'ha pogut obrir el fitxer AFM pel tipus de lletra \"%s\", s'usen els " "valors per defecte\n" #: src/util.c:906 #, c-format msgid "couldn't open AFM file for the default font: %s" msgstr "no s'ha pogut obrir el fitxer AFM pel tipus de lletra per defecte: %s" #: src/util.c:1095 #, c-format msgid "downloading font \"%s\"\n" msgstr "carregant el tipus de lletra \"%s\"\n" #: src/util.c:1100 #, c-format msgid "couldn't open font description file \"%s\": %s\n" msgstr "no s'ha pogut obrir la descripció de tipus de lletra \"%s\": %s\n" #: src/util.c:1392 #, c-format msgid "%s: too long format for %%D{} escape" msgstr "%s: format massa llarg a la seqüència d'escapada %%D{}" #: src/util.c:1477 #, c-format msgid "%s: unknown `%%' escape `%c' (%d)" msgstr "%s: seqüència d'escapada `%%' desconeguda `%c' (%d)" #: src/util.c:1515 #, c-format msgid "%s: no closing ')' for $() escape" msgstr "%s: falta el ')' final a la seqüència $()" #: src/util.c:1518 #, c-format msgid "%s: too long variable name for $() escape" msgstr "%s: nom de variable massa llarg a la seqüència $()" #: src/util.c:1545 #, c-format msgid "%s: too long format for $D{} escape" msgstr "%s: format massa llarg a la seqüència $D{}" #: src/util.c:1633 #, c-format msgid "%s: unknown `$' escape `%c' (%d)" msgstr "%s: seqüència d'escapada `$' desconeguda `%c' (%d)" #: src/util.c:1824 #, c-format msgid "malformed float dimension: \"%s\"" msgstr "dimensió de nombres reals incorrecta: \"%s\"" #: src/util.c:1946 #, c-format msgid "couldn't open input filter \"%s\" for file \"%s\": %s" msgstr "no s'ha pogut obrir el filtre d'entrada \"%s\" pel fitxer \"%s\": %s" #: src/util.c:1963 #, c-format msgid "couldn't open input file \"%s\": %s" msgstr "no s'ha pogut obrir el fitxer d'entrada \"%s\": %s" #: src/mkafmmap.c:167 #, c-format msgid "file=%s\n" msgstr "fitxer=%s\n" #: src/mkafmmap.c:167 msgid "stdout" msgstr "stdout (sortida estàndard)" #: src/mkafmmap.c:175 #, c-format msgid "%s: couldn't open output file \"%s\"" msgstr "%s: no s'ha pogut obrir el fitxer de sortida \"%s\"" #: src/mkafmmap.c:189 msgid "couldn't create AFM library" msgstr "no s'ha pogut crear la biblioteca AFM" #: src/mkafmmap.c:238 #, c-format msgid "" "Usage: %s [OPTION]... FILE...\n" "Mandatory arguments to long options are mandatory for short options too.\n" " -h, --help print this help and exit\n" " -p, --output-file=NAME print output to file NAME (default file is\n" " font.map). If FILE is `-', leavy output to\n" " stdout.\n" " -V, --version print version number\n" msgstr "" "Sintaxi: %s [OPCIÓ]... FITXER...\n" "Els arguments obligatoris per les opcions llargues també ho són per les " "curtes.\n" " -h, --help mostra aquesta ajuda i surt\n" " -p, --output-file=NOM escriu la sortida al fitxer NOM (el fitxer per\n" " defecte és font.map). Si NOM és `-', l'envia a la\n" " sortida estàndard.\n" " -V, --version mostra la versió del programa\n" #: states/lex.l:167 states/lex.l:173 msgid "error: EOF in comment" msgstr "error: final de fitxer en un comentari" #: states/lex.l:204 msgid "error: EOF in string constant" msgstr "error: final de fitxer en una cadena constant" #: states/lex.l:311 msgid "error: EOF in regular expression" msgstr "error: final de fitxer en una expressió regular" #: states/main.c:197 #, fuzzy, c-format msgid "states for %s" msgstr "states pel GNU %s %s" #: states/main.c:252 #, c-format msgid "%s: malformed variable definition \"%s\"\n" msgstr "%s: definició de variable incorrecta \"%s\"\n" #: states/main.c:280 #, c-format msgid "%s: couldn't create output file \"%s\": %s\n" msgstr "%s: no s'ha pogut crear el fitxer de sortida \"%s\": %s\n" #: states/main.c:311 #, c-format msgid "%s: unknown warning level `%s'\n" msgstr "%s: nivell d'alerta desconegut `%s'\n" #: states/main.c:360 states/main.c:396 states/prims.c:1375 states/utils.c:227 #, c-format msgid "%s: out of memory\n" msgstr "%s: memòria esgotada\n" #: states/main.c:421 #, c-format msgid "%s: couldn't open input file `%s': %s\n" msgstr "%s: no s'ha pogut obrir el fitxer d'entrada `%s': %s\n" #: states/main.c:445 #, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Sintaxi: %s [OPCIÓ]... [FITXER]...\n" "Els arguments obligatoris per les opcions llargues també ho són per les " "curtes.\n" # path #: states/main.c:449 #, fuzzy, c-format msgid "" " -D, --define=VAR=VAL define variable VAR to have value VAL\n" " -f, --file=NAME read state definitions from file NAME\n" " -h, --help print this help and exit\n" " -o, --output=NAME save output to file NAME\n" " -p, --path=PATH set the load path to PATH\n" " -s, --state=NAME start from state NAME\n" " -v, --verbose increase the program verbosity\n" " -V, --version print version number\n" " -W, --warning=LEVEL set the warning level to LEVEL\n" msgstr "" " -D, --define=VAR=VAL fixa el valor de la variable VAR en VAL\n" " -f, --file=NOM llegeix definicions d'estat del fitxer NOM\n" " -h, --help mostra aquesta ajuda i surt\n" " -o, --output=NOM desa la sortida al fitxer NOM\n" " -p, --path=CAMÍ defineix el camí d'accés\n" " -s, --state=NOM comença l'execució en estat NOM\n" " -v, --verbose incrementa la loquacitat\n" " -V, --version mostra la versió del programa\n" " -W, --warning=NIVELL fixa el nivell d'alerta en NIVELL\n" #: states/prims.c:44 #, fuzzy, c-format msgid "%s:%d: %s: too few arguments\n" msgstr "%s:%d: %s: argument il·legal\n" #: states/prims.c:54 #, fuzzy, c-format msgid "%s:%d: %s: too many arguments\n" msgstr "%s:%d: %s: argument il·legal\n" #: states/prims.c:107 states/prims.c:127 states/prims.c:253 states/prims.c:426 #: states/prims.c:901 #, c-format msgid "%s:%d: %s: illegal argument type\n" msgstr "%s:%d: %s: l'argument de tipus és il·legal\n" #: states/prims.c:468 #, c-format msgid "%s: panic: " msgstr "%s: pànic: " #: states/prims.c:502 #, c-format msgid "%s:%d: %s: malformed version string `%s'\n" msgstr "%s:%d: %s: la cadena de versió `%s' és incorrecta\n" #: states/prims.c:517 #, c-format msgid "" "%s: FATAL ERROR: States version %s or higher is required for this script\n" msgstr "" "%s: ERROR FATAL: Aquest script requereix la versió d'states %s o superior\n" #: states/prims.c:608 states/prims.c:1274 #, c-format msgid "%s:%d: %s: start offset is bigger than end offset\n" msgstr "%s:%d: %s: el desplaçamant inicial és major que el final\n" #: states/prims.c:617 states/prims.c:633 states/prims.c:1280 #, c-format msgid "%s:%d: %s: offset out of range\n" msgstr "%s:%d: %s: desplaçament fora d'abast\n" #: states/prims.c:651 #, c-format msgid "%s:%d: %s: illegal argument\n" msgstr "%s:%d: %s: argument il·legal\n" #: states/prims.c:698 #, c-format msgid "%s:%d: %s: illegal regexp character syntax: %c\n" msgstr "" "%s:%d: %s: la sintaxi del caràcter de l'expressió regular és il·legal: %c\n" #: states/prims.c:913 #, c-format msgid "%s:%d: %s: couldn't define state `%s'\n" msgstr "%s:%d: %s: no s'ha pogut definir l'estat `%s'\n" #: states/prims.c:1010 #, c-format msgid "%s: primitive `%s': too few arguments for format\n" msgstr "%s: primitiu `%s': falten arguments de format\n" #: states/prims.c:1038 #, c-format msgid "%s:%d: %s: argument %d doesn't match format\n" msgstr "%s:%d: %s: l'argument %d no lliga amb cap format\n" #: states/prims.c:1078 #, c-format msgid "%s:%d: %s: no extra options can be specified for %%s\n" msgstr "%s:%d: %s: no es poden definir opcions addicionals per %%s\n" #: states/prims.c:1087 #, c-format msgid "%s:%d: %s: illegal type specifier `%c'\n" msgstr "%s:%d: %s: l'especificació de tipus `%c' és il·legal\n" #: states/process.c:115 #, c-format msgid "%s: undefined state `%s'\n" msgstr "%s: estat indefinit `%s'\n" #: states/process.c:196 #, c-format msgid "%s: error: undefined variable `%s'\n" msgstr "%s: error: variable indefinida `%s'\n" #: states/process.c:290 #, c-format msgid "%s: undefined super state `%s'\n" msgstr "%s: superestat indefinit `%s'\n" #: states/utils.c:260 #, c-format msgid "%s:%d: couldn't compile regular expression \"%s\": %s\n" msgstr "%s:%d: no s'ha pogut compilar l'expressió regular \"%s\": %s\n" #: states/utils.c:449 states/utils.c:477 #, c-format msgid "%s: ouf of memory" msgstr "%s: memòria esgotada" #: states/utils.c:454 #, c-format msgid "warning: redefining state `%s'" msgstr "atenció: redefinint l'estat `%s'" #: states/utils.c:481 #, c-format msgid "%s:%d: warning: redefining subroutine `%s'\n" msgstr "%s:%d: atenció: redefinint la subrutina `%s'\n" #: states/utils.c:578 #, c-format msgid "%s:%d: error: undefined variable `%s'\n" msgstr "%s:%d: error: variable indefinida `%s'\n" #: states/utils.c:616 #, c-format msgid "%s:%d: error: couldn't set variable `%s'\n" msgstr "%s:%d: error: no s'ha pogut definir la variable `%s'\n" #: states/utils.c:767 #, c-format msgid "%s:%d: error: expression between illegal types\n" msgstr "%s:%d: error: expressió entre tipus il·legals\n" #: states/utils.c:865 #, fuzzy, c-format msgid "%s:%d: error: too few arguments for subroutine\n" msgstr "%s: falten arguments a la subrutina\n" #: states/utils.c:872 #, fuzzy, c-format msgid "%s:%d: error: too many arguments for subroutine\n" msgstr "%s: sobren arguments a la subrutina\n" #: states/utils.c:926 #, fuzzy, c-format msgid "%s:%d: error: undefined procedure `%s'\n" msgstr "%s: procediment indefinit `%s'\n" #: states/utils.c:1018 #, c-format msgid "%s:%d: error: illegal lvalue for assignment\n" msgstr "" "%s:%d: error: valor de l'esquerra il·legal a l'assignació\n" "\n" #: states/utils.c:1026 states/utils.c:1110 #, c-format msgid "%s:%d: error: array reference index is not integer\n" msgstr "%s:%d: error: l'índex de referència de la matriu no és un enter\n" #: states/utils.c:1032 #, c-format msgid "%s:%d: error: negative array reference index\n" msgstr "" "%s:%d: error: l'índex de referència de la matriu és un nombre negatiu\n" #: states/utils.c:1083 #, c-format msgid "%s:%d: error: illegal rvalue for string assignment\n" msgstr "%s:%d: error: valor de la dreta il·legal a l'assignació de cadena\n" #: states/utils.c:1102 #, c-format msgid "%s:%d: error: illegal type for array reference\n" msgstr "%s:%d: error: el tipus en la referència de la matriu és il·legal\n" #: states/utils.c:1119 #, fuzzy, c-format msgid "%s:%d: error: array reference index out of range\n" msgstr "%s:%d: error l'índex de referència de la matriu està fora d'abast\n" #: states/utils.c:1345 #, c-format msgid "%s: couldn't open definition file `%s': %s\n" msgstr "%s: no s'ha pogut obrir el fitxer de definicions `%s': %s\n" #: states/utils.c:1401 #, c-format msgid "%s: autoloading `%s' from `%s'\n" msgstr "%s: carregant `%s' de `%s'\n" #~ msgid "couldn't create toc file \"%s\": %s" #~ msgstr "no s'ha pogut crear el fitxer índex \"%s\": %s" #~ msgid "[ %d pages * %d copy ]" #~ msgstr "[ %d pàgines * %d còpies ]" # buscar alterncatives per `open pipe' #~ msgid "epsf: couldn't open pipe to command \"%s\": %s\n" #~ msgstr "epsf: no s'ha pogut reconduir a l'ordre \"%s\": %s\n" #~ msgid "couldn't create divert file \"%s\": %s" #~ msgstr "no s'ha pogut crear el fitxer temporal \"%s\": %s" enscript-1.6.5.90/po/fr.po0000644000175000017500000013070111606344231012111 00000000000000# Messages français pour GNU concernant enscript. # Copyright © 2004 Free Software Foundation, Inc. # Michel Robitaille , traducteur depuis/since 1996. # msgid "" msgstr "" "Project-Id-Version: GNU enscript 1.6.3\n" "Report-Msgid-Bugs-To: bug-enscript@gnu.org\n" "POT-Creation-Date: 2011-07-10 16:43+0100\n" "PO-Revision-Date: 2004-05-10 08:00-0500\n" "Last-Translator: Michel Robitaille \n" "Language-Team: French \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8-bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: compat/getopt.c:628 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "%s: l'option « %s » est ambiguë.\n" #: compat/getopt.c:652 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "%s: l'option « --%s » ne permet pas d'argument.\n" #: compat/getopt.c:657 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "%s: l'option « %c%s » ne permet pas d'argument.\n" #: compat/getopt.c:674 compat/getopt.c:847 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "%s: l'option « --%s » requiert un argument.\n" #: compat/getopt.c:703 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "%s: l'option « --%s » n'est pas reconnue.\n" #: compat/getopt.c:707 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "%s: l'option « %c%s » n'est pas reconnue.\n" #: compat/getopt.c:733 #, c-format msgid "%s: illegal option -- %c\n" msgstr "%s: l'option -- %c est illégale.\n" #: compat/getopt.c:736 #, c-format msgid "%s: invalid option -- %c\n" msgstr "%s: l'option -- %c est invalide.\n" #: compat/getopt.c:766 compat/getopt.c:896 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: l'option --%c requiert un argument.\n" #: compat/getopt.c:813 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "%s: l'option « -W %s » est ambiguë.\n" #: compat/getopt.c:831 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s: l'option « -W %s » ne permet pas de argument.\n" #: compat/xalloc.c:70 #, c-format msgid "xmalloc(): couldn't allocate %d bytes\n" msgstr "xmalloc(): ne peut allouer %d octets.\n" #: compat/xalloc.c:88 #, c-format msgid "xcalloc(): couldn't allocate %d bytes\n" msgstr "xcalloc(): ne peut allouer %d octets.\n" #: compat/xalloc.c:109 #, c-format msgid "xrealloc(): couldn't reallocate %d bytes\n" msgstr "xrealloc(): ne peut réallouer %d octets.\n" #: compat/regex.c:996 msgid "Success" msgstr "Succès." #: compat/regex.c:997 msgid "No match" msgstr "Aucune concordance." #: compat/regex.c:998 msgid "Invalid regular expression" msgstr "Expression régulière invalide." #: compat/regex.c:999 msgid "Invalid collation character" msgstr "Fusionnement invalide des caractères." #: compat/regex.c:1000 msgid "Invalid character class name" msgstr "Nom de classe de caractère invalide." #: compat/regex.c:1001 msgid "Trailing backslash" msgstr "Barre oblique inverse en suffixe." #: compat/regex.c:1002 msgid "Invalid back reference" msgstr "Adressage arrière invalide." #: compat/regex.c:1003 msgid "Unmatched [ or [^" msgstr "[ ou [^ non pairé." #: compat/regex.c:1004 msgid "Unmatched ( or \\(" msgstr "( ou \\( non pairé." #: compat/regex.c:1005 msgid "Unmatched \\{" msgstr "\\{ non pairé." #: compat/regex.c:1006 msgid "Invalid content of \\{\\}" msgstr "Le contenu entre \\{\\} est invalide." #: compat/regex.c:1007 msgid "Invalid range end" msgstr "Borne finale invalide." #: compat/regex.c:1008 msgid "Memory exhausted" msgstr "Mémoire épuisée." #: compat/regex.c:1009 msgid "Invalid preceding regular expression" msgstr "Expression réguliére précédente invalide." #: compat/regex.c:1010 msgid "Premature end of regular expression" msgstr "Fin prématurée de l'expression régulière." #: compat/regex.c:1011 msgid "Regular expression too big" msgstr "Expression régulière trop grande." #: compat/regex.c:1012 msgid "Unmatched ) or \\)" msgstr ") ou \\) non pairé." #: compat/regex.c:5458 msgid "No previous regular expression" msgstr "Aucune expression régulière précédente." #: src/main.c:949 #, no-c-format msgid "$3v $-40N $3% pages $4L lines $E $C" msgstr "$3v $-40N $3% pages $4L lignes $E $C" #: src/main.c:979 #, c-format msgid "couldn't get passwd entry for uid=%d: %s" msgstr "" "Ne peut retrouver une entrée dans le fichier « passwd »\n" "correspondant au Uid=%d: %s." #: src/main.c:1071 #, c-format msgid "couldn't read config file \"%s/%s\": %s" msgstr "Ne peut lire le fichier de configuration \"%s/%s\": %s" #: src/main.c:1075 msgid "I did also try the following directories:" msgstr "J'ai aussi essayer parmi les répertoires suivants:" #: src/main.c:1076 src/main.c:1077 src/main.c:1078 #, c-format msgid "\t%s" msgstr "\t%s" #: src/main.c:1079 msgid "\t../lib" msgstr "\t../lib" #: src/main.c:1080 msgid "\t../../lib" msgstr "\t../../lib" #: src/main.c:1082 msgid "This is probably an installation error. Please, try to rebuild:" msgstr "" "Cela est probablement une erreur d'installation. SVP, essayer de " "reconstruire:" #: src/main.c:1083 msgid "\tmake distclean" msgstr "\tmake distclean" #: src/main.c:1084 msgid "\t./configure --prefix=PREFIX" msgstr "\t./configure --prefix=PREFIX" #: src/main.c:1085 msgid "\tmake" msgstr "\tmake" #: src/main.c:1086 msgid "\tmake check" msgstr "\tmake check" #: src/main.c:1087 msgid "\tmake install" msgstr "\tmake install" #: src/main.c:1088 #, fuzzy msgid "" "or set the environment variable `ENSCRIPT_LIBRARY' to point to your library " "directory." msgstr "" "ou initialiser la variable d'environnement `ENSCRIPT_LIBRARY' pour pointer " "sur la vôtre" #: src/main.c:1161 #, c-format msgid "unknown encoding: %s" msgstr "Encodage inconnu: %s" #: src/main.c:1180 #, c-format msgid "couldn't open AFM library: %s" msgstr "Ne peut ouvrir la librairie « AFM »: %s" #: src/main.c:1209 #, c-format msgid "" "known media:\n" "name width\theight\tllx\tlly\turx\tury\n" "------------------------------------------------------------\n" msgstr "" "Liste des médias connus:\n" "nom largeur\thauteur\tllx\tlly\turx\tury\n" "------------------------------------------------------------\n" #: src/main.c:1228 #, c-format msgid "do not know anything about media \"%s\"" msgstr "Ne peut reconnaître ce type de médium « %s »." #: src/main.c:1272 #, c-format msgid "" "set new marginals for media `%s' (%dx%d): llx=%d, lly=%d, urx=%d, ury=%d\n" msgstr "" "utiliser les arguments pour le média « %s » (%dx%d): llx=%d, lly=%d, urx=%d, " "ury=%d\n" #: src/main.c:1283 #, c-format msgid "illegal page label format \"%s\"" msgstr "Le format d'étiquette de page « %s » est illégal." #: src/main.c:1295 #, c-format msgid "illegal non-printable format \"%s\"" msgstr "Le format de la chaîne non imprimable « %s » est illégal." #: src/main.c:1309 #, c-format msgid "illegal style for wrapped line marker: \"%s\"" msgstr "style illégal pour le marqueur de ligne bouclée: « %s »" #: src/main.c:1319 #, c-format msgid "illegal N-up argument: %d" msgstr "argument « N-up » illégal: %d" #: src/main.c:1324 #, c-format msgid "N-up argument must be power of 2: %d" msgstr "argument « N-up » doit être une puissance de 2: %d" #: src/main.c:1401 #, c-format msgid "malformed underlay position: %s" msgstr "La position sous-jacente de %s est mal composée." #: src/main.c:1424 #, c-format msgid "illegal underlay style: %s" msgstr "Le style sous-jacent %s est illégal." #: src/main.c:1451 #, c-format msgid "" "Highlighting is supported for the following languages and file formats:\n" "\n" msgstr "" "Le surlignage est supporté pour les langages et formats de fichiers " "suivants:\n" "\n" #: src/main.c:1632 #, c-format msgid "couldn't create temporary toc file: %s" msgstr "Ne peut créer un fichier temporarire de table des matières: %s" #: src/main.c:1679 #, c-format msgid "couldn't stat input file \"%s\": %s" msgstr "Ne peut évaluer à l'aide de stat() le fichier fourni « %s »: %s." #: src/main.c:1699 #, c-format msgid "couldn't rewind toc file: %s" msgstr "Ne peut ré-ouvrir le fichier de la table de matières: %s." #: src/main.c:1705 msgid "Table of Contents" msgstr "Table des matières" #: src/main.c:1731 msgid "no output generated\n" msgstr "Aucune sortie n'a été produite.\n" #: src/main.c:1736 #, c-format msgid "output sent to %s\n" msgstr "expédié à %s\n" #: src/main.c:1737 src/main.c:1768 msgid "printer" msgstr "l'imprimante" #: src/main.c:1739 #, c-format msgid "output left in %s\n" msgstr " placées dans %s\n" #: src/main.c:1760 #, c-format msgid "%d page" msgid_plural "%d pages" msgstr[0] "" msgstr[1] "" #: src/main.c:1762 #, c-format msgid "%d copy" msgid_plural "%d copies" msgstr[0] "" msgstr[1] "" #: src/main.c:1767 #, c-format msgid " sent to %s\n" msgstr "expédié à «%s\n" #: src/main.c:1770 #, c-format msgid " left in %s\n" msgstr " placées dans %s\n" #: src/main.c:1776 #, fuzzy, c-format msgid "%d line was %s\n" msgid_plural "%d lines were %s\n" msgstr[0] "%d lignes étaient %s\n" msgstr[1] "%d lignes étaient %s\n" #: src/main.c:1781 msgid "truncated" msgstr "tronquées" #: src/main.c:1781 msgid "wrapped" msgstr "enroulées" #: src/main.c:1788 #, fuzzy, c-format msgid "%d character was missing\n" msgid_plural "%d characters were missing\n" msgstr[0] "%d caractères étaient manquants.\n" msgstr[1] "%d caractères étaient manquants.\n" #: src/main.c:1794 msgid "missing character codes (decimal):\n" msgstr "Codes de caractère manquants (en décimal):\n" #: src/main.c:1803 #, fuzzy, c-format msgid "%d non-printable character\n" msgid_plural "%d non-printable characters\n" msgstr[0] "%d caractères non-imprimables\n" msgstr[1] "%d caractères non-imprimables\n" #: src/main.c:1810 msgid "non-printable character codes (decimal):\n" msgstr "Codes de caractère non imprimables (en décimal):\n" #: src/main.c:1859 #, c-format msgid "couldn't open printer `%s': %s" msgstr "Ne peut accéder à l'imprimante « %s »: %s." #: src/main.c:1868 #, c-format msgid "couldn't create output file \"%s\": %s" msgstr "Ne peut créer un fichier de sortie « %s »: %s." #: src/main.c:1885 #, c-format msgid "couldn't close output file \"%s\": %s" msgstr "Ne peut fermer le fichier de sortie « %s »: %s" #: src/main.c:1943 #, c-format msgid "" "syntax error in option string %s=\"%s\":\n" "missing end of quotation: %c" msgstr "" "Erreur de syntaxe rencontrée dans l'option %s=« %s »:\n" "L'apostrophe terminant la chaîne %c est manquante." #: src/main.c:1975 #, c-format msgid "" "warning: didn't process following options from environment variable %s:\n" msgstr "" "AVERTISSEMENT: ne peut traiter les options suivantes à partir\n" "des variables d'environnement %s:\n" #: src/main.c:1979 #, c-format msgid " option %d = \"%s\"\n" msgstr " option %d = « %s »\n" #: src/main.c:2025 msgid "number of columns must be larger than zero" msgstr "nombre de colonnes doit être plus grand que zéro" #: src/main.c:2083 msgid "file alignment must be larger than zero" msgstr "L'alignement de fichier doit être plus grand que zéro." #: src/main.c:2138 src/main.c:2144 src/main.c:2355 src/util.c:416 #, c-format msgid "malformed font spec: %s" msgstr "La spécification de la fonte est mal composée: %s." #: src/main.c:2160 #, c-format msgid "couldn't find header definition file \"%s.hdr\"" msgstr "Ne peut trouver le fichier de définition de l'en-tête \"%s.hdr\"." #: src/main.c:2204 #, c-format msgid "must print at least one line per each page: %s" msgstr "Imprimer au moins une ligne par page: %s" #: src/main.c:2224 #, c-format msgid "%s: illegal newline character specifier: '%s': expected 'n' or 'r'\n" msgstr "" "%s: la spécification d'un caractère de saut de ligne est illégale:\n" " « %s »: attendait « n » ou « r »\n" #: src/main.c:2313 #, c-format msgid "malformed argument `%s' for option -W, --option: no comma found" msgstr "argument mal composé « %s » pour l'option -W, --option: pas de virgule" #: src/main.c:2318 #, c-format msgid "helper application specification must be single character: %s" msgstr "" "spécification de l'application d'aire doit être un caractère simple: %s" #: src/main.c:2414 msgid "slice must be greater than zero" msgstr "la valeur de la tranche doit être plus grande que zéro" #: src/main.c:2495 states/main.c:318 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Pour en savoir davantage, faites: « %s --help ».\n" #: src/main.c:2515 #, fuzzy, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" "Mandatory arguments to long options are mandatory for short options too.\n" " -# an alias for option -n, --copies\n" " -1 same as --columns=1\n" " -2 same as --columns=2\n" " --columns=NUM specify the number of columns per page\n" " -a, --pages=PAGES specify which pages are printed\n" " -A, --file-align=ALIGN align separate input files to ALIGN\n" " -b, --header=HEADER set page header\n" " -B, --no-header no page headers\n" " -c, --truncate-lines cut long lines (default is to wrap)\n" " -C[START], --line-numbers[=START]\n" " precede each line with its line number\n" " -d an alias for option --printer\n" " -D, --setpagedevice=KEY[:VALUE]\n" " pass a page device definition to output\n" " -e[CHAR], --escapes[=CHAR] enable special escape interpretation\n" msgstr "" "Usage: %s [OPTIONS] [FICHIER] ...\n" "Les arguments obligatoires pour les options de formes longues \n" "le sont aussi pour les options de formes courtes.\n" " -# un alias de l'option -n, --copies\n" " -1 identique à --columns=1\n" " -2 identique à --columns=2\n" " --columns=NOMBRE spécifier le NOMBRE de colonnes par page\n" " -a, --pages=PAGES spécifier les PAGES à imprimer\n" " -A, --file-align=ALIGN aligner les fichiers selon l'ALIGNement\n" " -b --page-header=ENTÊTE afficher une EN-TÊTE sur chaque page\n" " -B, --no-header ne pas afficher l'en-tête sur chaque page\n" " -c, --truncate-lines couper les lignes trop longues\n" " (par défaut l'enroulement est automatique)\n" " -C, --line-numbers afficher le numéro de ligne au début\n" " -d identique à l'option --printer\n" " -D, --setpagedevice=CLÉ[:VALEUR]\n" " relayer une page de définition de\n" " périphérique d'imprimante directement\n" " à la sortie\n" " -e, --escapes[=CARAC] autoriser l'interprétation des\n" " CARACtères d'échappement (« \\ »)\n" #: src/main.c:2535 #, fuzzy, c-format msgid " -E[LANG], --highlight[=LANG] highlight source code\n" msgstr " -E, --highlight[=LANG] afficher le code source joliment\n" #: src/main.c:2538 #, fuzzy, c-format msgid "" " -f, --font=NAME use font NAME for body text\n" " -F, --header-font=NAME use font NAME for header texts\n" " -g, --print-anyway nothing (compatibility option)\n" " -G same as --fancy-header\n" " --fancy-header[=NAME] select fancy page header\n" " -h, --no-job-header suppress the job header page\n" " -H[NUM], --highlight-bars[=NUM] specify how high highlight bars are\n" " -i, --indent=NUM set line indent to NUM characters\n" " -I, --filter=CMD read input files through input filter CMD\n" " -j, --borders print borders around columns\n" " -J, an alias for option --title\n" " -k, --page-prefeed enable page prefeed\n" " -K, --no-page-prefeed disable page prefeed\n" " -l, --lineprinter simulate lineprinter, this is an alias for:\n" " --lines-per-page=66, --no-header, --" "portrait,\n" " --columns=1\n" msgstr "" " -f, --font=FONTE utiliser la FONTE pour le corps du texte\n" " -F, --header-font=FONTE utiliser la FONTE pour l'en-tête\n" " -g, --print-anyway ne rien faire (option de compatibilité)\n" " -G identique à --fancy-header\n" " --fancy-header[=NOM] sélectionner une jolie en-tête\n" " -h, --no-job-header supprimer la page de bannière\n" " -H, --highlight-bars=VAL spécifier la VALeur de la barre de surlignage\n" " -i, --indent=N utiliser une indentation de N caractères\n" " -I, --filter=FILTRE lire le fichier à l'aide du FILTRE\n" " -j, --borders imprimer une bordure autour des colonnes\n" " -J, un alias de l'option --title\n" " -k, --page-prefeed autoriser le pré-chargement de papier\n" " -K, --no-page-prefeed désactiver le pré-chargement\n" " -l, --lineprinter simuler une imprimante, un alias de:\n" " --lines-per-page=66, --no-header,\n" " --portrait, --columns=1\n" #: src/main.c:2556 #, c-format msgid "" " -L, --lines-per-page=NUM specify how many lines are printed on each " "page\n" " -m, --mail send mail upon completion\n" " -M, --media=NAME use output media NAME\n" " -n, --copies=NUM print NUM copies of each page\n" " -N, --newline=NL select the newline character. Possible\n" " values for NL are: n (`\\n') and r (`\\r').\n" " -o an alias for option --output\n" " -O, --missing-characters list missing characters\n" " -p, --output=FILE leave output to file FILE. If FILE is `-',\n" " leave output to stdout.\n" " -P, --printer=NAME print output to printer NAME\n" " -q, --quiet, --silent be really quiet\n" " -r, --landscape print in landscape mode\n" " -R, --portrait print in portrait mode\n" msgstr "" " -L, --lines-per-page=N imprimer N lignes par page\n" " -m, --mail expédier un message après exécution\n" " -M, --media=NOM utiliser le médium de sortie\n" " portant le NOM\n" " -n, --copies=N produire N copies\n" " -N, --newline=CAR utiliser le CARactère de saut de ligne\n" " parmi: (« \\n ») ou r (« \\r »).\n" " -o utiliser l'alias pour « -p », « --output »\n" " -O, --missing-characters indiquer les codes de caractères manquants\n" " -p, --output=FICHIER produire la sortie dans un FICHIER. Si\n" " « - » est utilisé, utiliser la sortie " "standard.\n" " -P, --printer=NOM produire la sortie sur l'imprimante\n" " portant le NOM\n" " -q, --quiet, --silent ne pas utiliser le mode bavard\n" " -r, --landscape imprimer en mode paysage\n" " -R, --portrait imprimer en mode portrait\n" #: src/main.c:2572 #, fuzzy, c-format msgid "" " -s, --baselineskip=NUM set baselineskip to NUM\n" " -S, --statusdict=KEY[:VALUE]\n" " pass a statusdict definition to the output\n" " -t, --title=TITLE set banner page's job title to TITLE. Option\n" " sets also the name of the input file stdin.\n" " -T, --tabsize=NUM set tabulator size to NUM\n" " -u[TEXT], --underlay[=TEXT] print TEXT under every page\n" " -U, --nup=NUM print NUM logical pages on each output page\n" " -v, --verbose tell what we are doing\n" " -V, --version print version number\n" " -w, --language=LANG set output language to LANG\n" " -W, --options=APP,OPTION pass option OPTION to helper application APP\n" " -X, --encoding=NAME use input encoding NAME\n" " -z, --no-formfeed do not interpret form feed characters\n" " -Z, --pass-through pass through PostScript and PCL files\n" " without any modifications\n" msgstr "" " -s, --baselineskip=N initialiser l'argument « baselineskip » à N\n" " -S, --statusdict=CLÉ[:VALEUR]\n" " relayer le dictionnaire d'état vers la\n" " sortie\n" " -t, --title=TITRE imprimer le TITRE sur la page de bannière.\n" " L'option initialise le nom du fichier à passer\n" " à stdin.\n" " -T, --tabsize=N utiliser une tabulation de N colonnes\n" " -u, --underlay[=TEXTE] imprimer le TEXTE en bas de chaque page\n" " -U, --nup=N imprimer N pages logiques sur chaque page\n" " physique\n" " -v, --verbose utiliser le mode bavard\n" " -V, --version afficher la version et quitter\n" " -w, --language=LANGAGE inialiser le LANGAGE\n" " -W, --options=APP,OPTION passer l'OPTION à l'APPlication d'aide\n" " -X, --encoding=MOT utiliser le MOT d'encodage\n" " -z, --no-formfeed ne pas effectuer de saut de page par\n" " interprétation des caractères de saut de page\n" " -Z, --pass-through traiter les fichiers Postscript et PCL\n" " sans les modifier\n" #: src/main.c:2590 #, c-format msgid "" "Long-only options:\n" " --color[=bool] create color outputs with states\n" " --continuous-page-numbers count page numbers across input files. Don't\n" " restart numbering at beginning of each file.\n" " --download-font=NAME download font NAME\n" " --extended-return-values enable extended return values\n" " --filter-stdin=NAME specify how stdin is shown to the input filter\n" " --footer=FOOTER set page footer\n" " --h-column-height=HEIGHT set the horizontal column height to HEIGHT\n" " --help print this help and exit\n" msgstr "" "Options de formes longues seulement:\n" " --color[=bool] créer les couleurs de sortie avec états\n" " --continuous-page-numbers compter les numéros de page lors du parcours\n" " du fichier d'entrée. Ne pas recommencer\n" " la numérotation à partir du début de chaque " "fichier.\n" " --download-font=NOM télécharger la fonte ayant le NOM\n" " --extended-return-values autoriser le retour des valeurs étendues\n" " --filter-stdin=NOM spécifier comment stdin est affiché sur le " "filtre d'entrée\n" " --footer=BAS-DE-PAGE initialiser le bas de page\n" " --h-column-height=HAUTEUR initialiser la HAUTEUR horizontale des " "colonnes\n" " --help afficher l'aide et quitter\n" #: src/main.c:2601 #, c-format msgid "" " --help-highlight describe all supported --highlight languages\n" " and file formats\n" " --highlight-bar-gray=NUM print highlight bars with gray NUM (0 - 1)\n" " --list-media list names of all known media\n" " --margins=LEFT:RIGHT:TOP:BOTTOM\n" " adjust page marginals\n" " --mark-wrapped-lines[STYLE]\n" " mark wrapped lines in the output with STYLE\n" " --non-printable-format=FMT specify how non-printable chars are printed\n" msgstr "" " --help-highlight afficher la liste de tous les\n" " langages où --highlight est supporté\n" " --highlight-bar-gray=N imprimer les barres en surlignant\n" " selon le niveau de gris N (0 - 1)\n" " --list-media afficher la liste des médiums connus\n" " --list-options afficher toutes les options et \n" " leurs valeurs possibles\n" " --margins=LEFT:RIGHT:TOP:BOTTOM\n" " ajuster les marges des pages\n" " --mark-wrapped-lines[STYLE]\n" " marquer les lignes bouclées à l'aide du STYLE\n" " --non-printable-format=FORMAT\n" " utiliser le FORMAT non imprimable\n" #: src/main.c:2612 #, c-format msgid "" " --nup-columnwise layout pages in the N-up printing columnwise\n" " --nup-xpad=NUM set the page x-padding of N-up printing to NUM\n" " --nup-ypad=NUM set the page y-padding of N-up printing to NUM\n" " --page-label-format=FMT set page label format to FMT\n" " --ps-level=LEVEL set the PostScript language level that " "enscript\n" " should use\n" " --printer-options=OPTIONS pass extra options to the printer command\n" " --rotate-even-pages rotate even-numbered pages 180 degrees\n" msgstr "" " --nup-columnwise diposer les pages sous la forme de N colonnes\n" " --nup-xpad=NOMBRE imprimer en remplissant la page en x de N " "jusqu'au NOMBRE\n" " --nup-ypad=NOMBRE imprimer en remplissant la page en y de N " "jusqu'au NOMBRE\n" " --page-label-format=FORMAT utiliser le FORMAT de l'étiquette de page\n" " --ps-level=NIVEAU utiliser le NIVEAU du langage PostScript\n" " que « enscript » peut utiliser\n" " --printer-options=OPTIONS relayer les options supplémentaires à la " "commande d'impression\n" " --rotate-even-pages faire la rotation des pages paires de 180 " "degrés\n" #: src/main.c:2622 #, c-format msgid "" " --slice=NUM print vertical slice NUM\n" " --style=STYLE use highlight style STYLE\n" " --swap-even-page-margins swap left and right side margins for each even\n" " numbered page\n" " --toc print table of contents\n" " --ul-angle=ANGLE set underlay text's angle to ANGLE\n" " --ul-font=NAME print underlays with font NAME\n" " --ul-gray=NUM print underlays with gray value NUM\n" " --ul-position=POS set underlay's starting position to POS\n" " --ul-style=STYLE print underlays with style STYLE\n" " --word-wrap wrap long lines from word boundaries\n" msgstr "" " --slice=N imprimer la tranche verticale N\n" " --style=STYLE utiliser le STYLE de surlignage\n" " --swap-even-page-margins interchanger les marges de gauche et de droite\n" " pour chaque page paire\n" " --toc imprimer la table des matières\n" " --ul-angle=ANGLE imprimer le texte sous-jacent à l'ANGLE\n" " --ul-font=FONTE imprimer le texte sous-jacent en utilisant\n" " la FONTE de caractères\n" " --ul-gray=NIVEAU imprimer le texte sous-jacent en utilisant\n" " le NIVEAU d'intensité de tons de gris (0 ou 1)\n" " --ul-position=POS débuter le texte sous-jacent à la\n" " POSition voulue\n" " --ul-style=STYLE imprimer le texte sous-jacent selon le STYLE\n" " --word-wrap boucler les lignes longues sur des\n" " frontières de mots\n" #: src/main.c:2636 #, fuzzy, c-format msgid "" "\n" "Report bugs to <%s>.\n" msgstr "" "\n" "Rapport toutes anomalies à : mtr@iki.fi\n" #: src/psgen.c:331 #, c-format msgid "couldn't find prolog \"%s\": %s\n" msgstr "Ne peut trouver le préambule « %s »: %s.\n" #: src/psgen.c:339 #, c-format msgid "couldn't find encoding file \"%s.enc\": %s\n" msgstr "Ne peut trouver le fichier d'encodage \"%s.enc\": %s.\n" #: src/psgen.c:471 #, c-format msgid "couldn't find header definition file \"%s.hdr\": %s\n" msgstr "Ne peut trouver le fichier de définition d'en-tête \"%s.hdr\": %s.\n" #: src/psgen.c:615 #, c-format msgid "processing file \"%s\"...\n" msgstr "Traitement du fichier « %s »...\n" #: src/psgen.c:913 #, c-format msgid "EPS file \"%s\" is too large for page\n" msgstr "Le fichier EPS « %s » est trop volumineux pour une page.\n" #: src/psgen.c:986 msgid "user font encoding can be only the system's default or `ps'" msgstr "" "L'encodage des fontes usagères ne peut être que celui du système par défaut " "ou « ps »" #: src/psgen.c:1228 #, c-format msgid "unknown special escape: %s" msgstr "Le caractère spécial d'échappement est inconnu: %s." #: src/psgen.c:1354 #, c-format msgid "illegal option %c for ^@epsf escape" msgstr "L'option %c est illégale pour un échappement ^@epsf." #: src/psgen.c:1360 msgid "malformed ^@epsf escape: no ']' after options" msgstr "" "L'échappement ^@epsf mal composée: « ] » non retrouvé après les options." #: src/psgen.c:1372 #, c-format msgid "" "too long file name for ^@epsf escape:\n" "%.*s" msgstr "" "Le nom de fichier est trop long pour un échappement ^@epsf:\n" "%.*s." #: src/psgen.c:1376 msgid "unexpected EOF while scanning ^@epsf escape" msgstr "" "Fin de fichier (EOF) inattendue lors de l'examen des échappements ^@epsf" #: src/psgen.c:1382 msgid "malformed ^@epsf escape: no '{' found" msgstr "L'échappement ^@epsf est mal composé: « } » n'a pas été retrouvé." #: src/psgen.c:1440 #, c-format msgid "malformed %s escape: no '{' found" msgstr "L'échappement %s est mal composé: « { » n'a pas été retrouvé." #: src/psgen.c:1454 #, c-format msgid "" "too long argument for %s escape:\n" "%.*s" msgstr "" "L'argument est trop long pour un échappement %s:\n" "%.*s." #: src/psgen.c:1474 #, c-format msgid "malformed font spec for ^@font escape: %s" msgstr "" "La spécification de la fonte de caractères est mal composée \n" "pour un échappement ^@font: %s" #: src/psgen.c:1511 #, c-format msgid "malformed color spec for ^@%s escape: %s" msgstr "" "La spécification de couleur est mal composée pour ^@%s\n" "l'échappement %s" #: src/psgen.c:1535 #, c-format msgid "invalid value for ^@shade escape: %s" msgstr "Valeur invalide pour ^@shade escape: %s." #: src/psgen.c:1543 #, c-format msgid "invalid value for ^@bggray escape: %s" msgstr "Valeur invalide pour ^@bggray escape: %s." #: src/psgen.c:2412 #, c-format msgid "couldn't open EPS file \"%s\": %s\n" msgstr "Ne peut ouvrir le fichier EPS « %s »: %s\n" #: src/psgen.c:2448 #, c-format msgid "EPS file \"%s\" does not start with \"%%!\" magic\n" msgstr "Le fichier EPS « %s » ne débute pas par « %%! » magic.\n" #: src/psgen.c:2473 #, c-format msgid "" "EPS file \"%s\" contains malformed %%%%BoundingBox row:\n" "\"%.*s\"\n" msgstr "" "Le fichier EPS « %s » contient une définition d'encadrement mal composée\n" "de type %%%%BoundingBox rangée:\"%.*s\".\n" #: src/psgen.c:2498 #, c-format msgid "EPS file \"%s\" is not a valid EPS file\n" msgstr "Le fichier EPS « %s » est un fichier EPS invalide.\n" #: src/psgen.c:2640 #, c-format msgid "passing through all input files for output language `%s'\n" msgstr "traitement de tout le fichier pour le langage de sortie « %s »\n" #: src/psgen.c:2692 #, c-format msgid "passing through %s file \"%s\"\n" msgstr "Traitement du fichier %s « %s ».\n" #: src/psgen.c:2795 #, c-format msgid "couldn't create temporary divert file: %s" msgstr "Ne peut créer le fichier temporaire de déviation: %s" #: src/psgen.c:2812 #, c-format msgid "couldn't rewind divert file: %s" msgstr "Ne peut ré-ouvrir le fichier de déviation: %s." #: src/util.c:93 #, fuzzy, c-format msgid "missing argument: %s" msgstr "argument « N-up » illégal: %d" #: src/util.c:186 src/util.c:214 #, c-format msgid "illegal value \"%s\" for option %s" msgstr "La valeur « %s » est illégale pour l'option %s." #: src/util.c:202 #, c-format msgid "invalid value \"%s\" for option %s" msgstr "La valeur « %s » est illégale pour l'option %s." #: src/util.c:440 #, c-format msgid "illegal option: %s" msgstr "L'option %s est illégale." #: src/util.c:619 #, c-format msgid "%s:%d: %%Format: no name" msgstr "" "%s:%d: %%Format:\n" "ERREUR de format: pas de nom." #: src/util.c:630 #, c-format msgid "%s:%d: %%Format: too long name, maxlen=%d" msgstr "" "%s:%d: %%Format:\n" "ERREUR de format: nom dépassant la longueur maximale=%d." #: src/util.c:653 #, c-format msgid "%s:%d: %%Format: name \"%s\" is already defined" msgstr "" "%s:%d: %%Format:\n" "ERREUR de format: le nom « %s » est déjà défini." #: src/util.c:674 #, c-format msgid "%s:%d: %%HeaderHeight: no argument" msgstr "" "%s:%d: %%HeaderHeight:\n" "ERREUR sur la hauteur de l'en-tête: pas d'argument" #: src/util.c:696 #, c-format msgid "%s:%d: %%FooterHeight: no argument" msgstr "" "%s:%d: %%FooterHeight:\n" "ERREUR sur la hauteur du bas de page: pas d'argument" #: src/util.c:843 #, c-format msgid "%s: warning: font size is negative\n" msgstr "%s: AVERTISSEMENT: la taille de la fonte est négative.\n" #: src/util.c:845 #, c-format msgid "%s: warning: font width is negative\n" msgstr "%s: AVERTISSEMENT: la largeur de la fonte est négative.\n" #: src/util.c:847 #, c-format msgid "%s: warning: font height is negative\n" msgstr "%s: AVERTISSEMENT: la hauteur de la fonte est négative.\n" #: src/util.c:866 #, c-format msgid "reading AFM info for font \"%s\"\n" msgstr "Lecture du fichier AFM pour la fonte de caractères « %s »\n" #: src/util.c:899 #, c-format msgid "couldn't open AFM file for font \"%s\", using default\n" msgstr "" "Ne peut ouvrir le fichier AFM pour la fonte de caractères « %s »,\n" "utilisera la fonte par défaut\n" #: src/util.c:906 #, c-format msgid "couldn't open AFM file for the default font: %s" msgstr "Ne peut ouvrir le fichier AFM des fontes de caractères par défaut: %s" #: src/util.c:1095 #, c-format msgid "downloading font \"%s\"\n" msgstr "Téléchargement de la fonte de caractères « %s »\n" #: src/util.c:1100 #, c-format msgid "couldn't open font description file \"%s\": %s\n" msgstr "Ne peut ouvrir le fichier de description des fontes « %s »: %s.\n" #: src/util.c:1392 #, c-format msgid "%s: too long format for %%D{} escape" msgstr "%s: format trop long l'échappement %%D{}." #: src/util.c:1477 #, c-format msgid "%s: unknown `%%' escape `%c' (%d)" msgstr "%s: séquence « %% » d'échappement inconnue « %c » (%d)." #: src/util.c:1515 #, c-format msgid "%s: no closing ')' for $() escape" msgstr "%s: « ) » manquante pour l'échappement $()." #: src/util.c:1518 #, c-format msgid "%s: too long variable name for $() escape" msgstr "%s: format trop long pour un échappement $()." #: src/util.c:1545 #, c-format msgid "%s: too long format for $D{} escape" msgstr "%s: format trop long pour un échappement $D{}." #: src/util.c:1633 #, c-format msgid "%s: unknown `$' escape `%c' (%d)" msgstr "%s: séquence « $ » d'échappement inconnue « %c » (%d)." #: src/util.c:1824 #, c-format msgid "malformed float dimension: \"%s\"" msgstr "La dimension en point flottant est mal composée: « %s »." #: src/util.c:1946 #, c-format msgid "couldn't open input filter \"%s\" for file \"%s\": %s" msgstr "Ne peut ouvrir le filtre « %s » pour le fichier « %s »: %s." #: src/util.c:1963 #, c-format msgid "couldn't open input file \"%s\": %s" msgstr "Ne peut ouvrir le fichier d'entrée « %s »: %s." #: src/mkafmmap.c:167 #, c-format msgid "file=%s\n" msgstr "fichier=%s\n" #: src/mkafmmap.c:167 msgid "stdout" msgstr "stdout" #: src/mkafmmap.c:175 #, c-format msgid "%s: couldn't open output file \"%s\"" msgstr "%s: ne peut ouvrir le fichier d'entrée « %s »." #: src/mkafmmap.c:189 msgid "couldn't create AFM library" msgstr "Ne peut ouvrir la librairie AFM." #: src/mkafmmap.c:238 #, c-format msgid "" "Usage: %s [OPTION]... FILE...\n" "Mandatory arguments to long options are mandatory for short options too.\n" " -h, --help print this help and exit\n" " -p, --output-file=NAME print output to file NAME (default file is\n" " font.map). If FILE is `-', leavy output to\n" " stdout.\n" " -V, --version print version number\n" msgstr "" "Usage: %s [OPTION]... FICHIER...\n" "Les arguments obligatoires pour les options de formes longues \n" "le sont aussi pour les options de formes courtes.\n" " -h, --help afficher l'aide-mémoire\n" " -p, --output-file=FICHIER expédier la sortie dans le FICHIER\n" " (par défaut dans le fichier font.map)\n" " Si le FICHIER est « - », la sortie demeure\n" " sur stdout\n" " -V, --version afficher le nom et la version du logiciel\n" #: states/lex.l:167 states/lex.l:173 msgid "error: EOF in comment" msgstr "ERREUR: fin de fichier EOF dans le commentaire." #: states/lex.l:204 msgid "error: EOF in string constant" msgstr "ERREUR: fin de fichier EOF dans une chaîne de constante" #: states/lex.l:311 msgid "error: EOF in regular expression" msgstr "ERREUR: fin de fichier EOF dans l'expression régulière." #: states/main.c:197 #, fuzzy, c-format msgid "states for %s" msgstr "états pout GNU %s %s" #: states/main.c:252 #, c-format msgid "%s: malformed variable definition \"%s\"\n" msgstr "%s: la définition de variable est mal composée: « %s ».\n" #: states/main.c:280 #, c-format msgid "%s: couldn't create output file \"%s\": %s\n" msgstr "%s: ne peut créer un fichier de sortie « %s »: %s.\n" #: states/main.c:311 #, c-format msgid "%s: unknown warning level `%s'\n" msgstr "%s: niveau d'avertissement « %s » inconnu.\n" #: states/main.c:360 states/main.c:396 states/prims.c:1375 states/utils.c:227 #, c-format msgid "%s: out of memory\n" msgstr "%s: mémoire épuisée.\n" #: states/main.c:421 #, c-format msgid "%s: couldn't open input file `%s': %s\n" msgstr "%s: ne peut ouvrir le fichier d'entrée « %s »: %s.\n" #: states/main.c:445 #, c-format msgid "" "Usage: %s [OPTION]... [FILE]...\n" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Usage: %s [OPTION]... [FICHIER]...\n" "Les arguments obligatoires pour les option de formes longues\n" "le sont aussi pour les options de formes courtes.\n" #: states/main.c:449 #, fuzzy, c-format msgid "" " -D, --define=VAR=VAL define variable VAR to have value VAL\n" " -f, --file=NAME read state definitions from file NAME\n" " -h, --help print this help and exit\n" " -o, --output=NAME save output to file NAME\n" " -p, --path=PATH set the load path to PATH\n" " -s, --state=NAME start from state NAME\n" " -v, --verbose increase the program verbosity\n" " -V, --version print version number\n" " -W, --warning=LEVEL set the warning level to LEVEL\n" msgstr "" " -D, --define=VAR=VALEUR définir la VARiable et lui affecter la VALEUR\n" " -f, --file=FICHIER lire la définition des états à partir du " "FICHIER\n" " -h, --help afficher l'aide-mémoire\n" " -o, --output=FICHIER sauvegarder la sortie dans le FICHIER\n" " -p, --path=CHEMIN initialiser le CHEMIN de chargement\n" " -s, --state=NAME débuter avec l'état fini ayant le NOM\n" " -v, --verbose augmenter le niveau de verbosité du logiciel\n" " -V, --version afficher le nom et la version du logiciel\n" " -W, --warning=NIVEAU initialiser le NIVEAU d'avertissement\n" #: states/prims.c:44 #, fuzzy, c-format msgid "%s:%d: %s: too few arguments\n" msgstr "%s:%d: %s: argument illégal.\n" #: states/prims.c:54 #, fuzzy, c-format msgid "%s:%d: %s: too many arguments\n" msgstr "%s:%d: %s: argument illégal.\n" #: states/prims.c:107 states/prims.c:127 states/prims.c:253 states/prims.c:426 #: states/prims.c:901 #, c-format msgid "%s:%d: %s: illegal argument type\n" msgstr "%s:%d: %s: argument illégal pour ce type.\n" #: states/prims.c:468 #, c-format msgid "%s: panic: " msgstr "%s: panique: " #: states/prims.c:502 #, c-format msgid "%s:%d: %s: malformed version string `%s'\n" msgstr "%s:%d: %s: la chaîne de version « %s » est mal composée.\n" #: states/prims.c:517 #, c-format msgid "" "%s: FATAL ERROR: States version %s or higher is required for this script\n" msgstr "" "%s: ERREUR FATALE: la version %s ou plus récente est requise pour ce " "script.\n" #: states/prims.c:608 states/prims.c:1274 #, c-format msgid "%s:%d: %s: start offset is bigger than end offset\n" msgstr "" "%s:%d: %s: l'adresse relative de départ est plus grande\n" "que l'adresse relative finale.\n" #: states/prims.c:617 states/prims.c:633 states/prims.c:1280 #, c-format msgid "%s:%d: %s: offset out of range\n" msgstr "%s:%d: %s: adresse relative hors limite.\n" #: states/prims.c:651 #, c-format msgid "%s:%d: %s: illegal argument\n" msgstr "%s:%d: %s: argument illégal.\n" #: states/prims.c:698 #, c-format msgid "%s:%d: %s: illegal regexp character syntax: %c\n" msgstr "" "%s:%d: %s: syntaxe illégale pour le caractère de l'expression régulière: %c\n" #: states/prims.c:913 #, c-format msgid "%s:%d: %s: couldn't define state `%s'\n" msgstr "%s:%d: %s: ne peut définit l'état « %s »\n" #: states/prims.c:1010 #, c-format msgid "%s: primitive `%s': too few arguments for format\n" msgstr "%s: primitive « %s »: trop peu de arguments pour le format.\n" #: states/prims.c:1038 #, c-format msgid "%s:%d: %s: argument %d doesn't match format\n" msgstr "%s:%d: %s: l'argument %d ne concorde pas avec le format.\n" #: states/prims.c:1078 #, c-format msgid "%s:%d: %s: no extra options can be specified for %%s\n" msgstr "" "%s:%d: %s: aucune option supplémentaire ne peut être spécifié avec %%s.\n" #: states/prims.c:1087 #, c-format msgid "%s:%d: %s: illegal type specifier `%c'\n" msgstr "%s:%d: %s: spécification de type illégal « %c ».\n" #: states/process.c:115 #, c-format msgid "%s: undefined state `%s'\n" msgstr "%s: état « %s » indéfini.\n" #: states/process.c:196 #, c-format msgid "%s: error: undefined variable `%s'\n" msgstr "%s: ERREUR: variable indéfinie « %s ».\n" #: states/process.c:290 #, c-format msgid "%s: undefined super state `%s'\n" msgstr "%s: super état indéfini « %s »\n" #: states/utils.c:260 #, c-format msgid "%s:%d: couldn't compile regular expression \"%s\": %s\n" msgstr "%s:%d: ne peut compiler l'expression régulière « %s »: %s\n" #: states/utils.c:449 states/utils.c:477 #, c-format msgid "%s: ouf of memory" msgstr "%s: mémoire épuisée." #: states/utils.c:454 #, c-format msgid "warning: redefining state `%s'" msgstr "AVERTISSEMENT: redéfinition de l'état « %s »." #: states/utils.c:481 #, c-format msgid "%s:%d: warning: redefining subroutine `%s'\n" msgstr "%s:%d: AVERTISSEMENT: redéfinition de la procédure « %s ».\n" #: states/utils.c:578 #, c-format msgid "%s:%d: error: undefined variable `%s'\n" msgstr "%s:%d: ERREUR: variable indéfinie « %s ».\n" #: states/utils.c:616 #, c-format msgid "%s:%d: error: couldn't set variable `%s'\n" msgstr "%s:%d: ERREUR: ne peut initialiser la variable « %s ».\n" #: states/utils.c:767 #, c-format msgid "%s:%d: error: expression between illegal types\n" msgstr "%s:%d: ERREUR: expression entre types différents.\n" #: states/utils.c:865 #, c-format msgid "%s:%d: error: too few arguments for subroutine\n" msgstr "%s:%d: erreur: trop peu d'arguments pour la sous-routine\n" #: states/utils.c:872 #, c-format msgid "%s:%d: error: too many arguments for subroutine\n" msgstr "%s:%d: erreur: trop d'arguments pour la sous-routine\n" #: states/utils.c:926 #, c-format msgid "%s:%d: error: undefined procedure `%s'\n" msgstr "%s:%d: erreur: procédure non définie « %s »\n" #: states/utils.c:1018 #, c-format msgid "%s:%d: error: illegal lvalue for assignment\n" msgstr "%s:%d: ERREUR: affectation illégale pour un type « lvalue ».\n" #: states/utils.c:1026 states/utils.c:1110 #, c-format msgid "%s:%d: error: array reference index is not integer\n" msgstr "%s:%d: ERREUR: l'indice du tableau n'est pas un entier.\n" #: states/utils.c:1032 #, c-format msgid "%s:%d: error: negative array reference index\n" msgstr "%s:%d: ERREUR: l'indice du tableau est négatif.\n" #: states/utils.c:1083 #, c-format msgid "%s:%d: error: illegal rvalue for string assignment\n" msgstr "" "%s:%d: ERREUR: affectation de chaîne illégale pour un type « rvalue ».\n" #: states/utils.c:1102 #, c-format msgid "%s:%d: error: illegal type for array reference\n" msgstr "%s:%d: ERREUR: type illégal pour un pointeur de tableau.\n" #: states/utils.c:1119 #, fuzzy, c-format msgid "%s:%d: error: array reference index out of range\n" msgstr "%s:%d: ERREUR: l'indice du tableau est hors borne.\n" #: states/utils.c:1345 #, c-format msgid "%s: couldn't open definition file `%s': %s\n" msgstr "%s: ne peut ouvrir le fichier définition « %s »: %s.\n" #: states/utils.c:1401 #, c-format msgid "%s: autoloading `%s' from `%s'\n" msgstr "%s: autochargement de « %s » à partir de « %s »\n" #~ msgid "library directory." #~ msgstr "répertoire de librairie" #~ msgid "[ %d pages * %d copy ]" #~ msgstr "[ %d pages x %d copies ]" #~ msgid "epsf: couldn't open pipe to command \"%s\": %s\n" #~ msgstr "" #~ "epsf: ne peut faire le relais pour exécuter la commande « %s »: %s\n" #~ msgid "couldn't create toc file name: %s" #~ msgstr "Ne peut créer un fichier de table des matières: %s." #~ msgid "couldn't create divert file \"%s\": %s" #~ msgstr "Ne peut créer le fichier de déviation « %s »: %s" enscript-1.6.5.90/po/ru.gmo0000644000175000017500000006333611606344232012306 00000000000000Þ•À ! %08U [g w…†›£;?{  œ$©IÎ)8+b&Ž"µ#ØCü@Z't!œ,¾ë% ,/-\ Š&«Òä ÷1#5$Y)~¨Â â!%Ee%…#«$Ï"ô- E )^ "ˆ ,« &Ø ÿ !!/>!'n!)–!5À!ö!2"4I"3~")²"/Ü", #39#/m#-#/Ë#0û#',$&T$+{$=§$.å$&%$;%I`%)ª%Ô%ë%&$&$<&a&s&HŽ&×($è( ))#5)Y)t)|)@Ž)Ï)&â) **-* ?*vL*iÃ+#-,Q,$m,)’,&¼,)ã,- -2;-n-(-4¶-/ë-. 9.-Z.!ˆ.1ª.Ü.%û.!/A/!^/%€/¦/½/ Ó/ô/'0:0=C00!›0#½0á0ô0+1?1 Z1 {1%œ1$Â1xç1!`2-‚2%°2?Ö2(3?3)_3‰3¡3#Á3.å34))4*S4~4‘4¤49Â4ü455I=5‡5§5C®5%ò5*6 C6+M6y6Ž6;©6Hå6.7M7&U7&|7)£7iÍ779 ;9F9N9l9 r9~9 Ž9Òœ9o;‚u>ˆø@D“D£D&¶DOÝD-E.LE6{E-²E)àE) FC4FxF•F+®F1ÚF4 GAG1^G4G5ÅGûG2H NH!oH‘H+ªH-ÖH.I43I hI&‰I%°I&ÖI7ýI5JRJ1oJ1¡J1ÓJ(K(.KWK:qK(¬K0ÕK0L!7L&YLC€LÄL+äL:M,KM/xM?¨M7èM> N6_N?–NFÖN5O,SO8€O9¹O,óO, P9MPC‡P9ËP,Q2QBOQ%’Q¸QÈQ"äQR, RMRfR®„R3U?PUU*ŸU+ÊU#öUV VB+V$nV@“VÔVîVW W|3Wn°X)Y!IY)kY%•Y&»Y6âY+Z0EZ!vZ8˜ZMÑZ7[%W[%}[1£[(Õ[9þ[#8\0\\,\,º\0ç\]/]E]"_]!‚]4¤]Ù]Câ]7&^0^^)^¹^'Ï^1÷^ )_'J_#r_,–_+Ã_~ï_,n`=›`0Ù`G a0Ra+ƒa3¯aãa(üa(%b>Nbb%¢b%Èbîbcc86cocwc&cY·c'd9dBKd/Žd4¾dód7ûd3e.Ke]zeMØe.&fUf']f'…f0­fÀªfše–04Pa$’+X¢Y8—‡1A`s™yg}N…‚|>£Ÿjq«•”-w †µ º9\I~k n]¼¬3d ¤O»¾!b'³u7r½¿›©#K¦. ‰5¯UœF€v´žJ(ŠD·,z^ZG&°Ž@=R²hoB; ‘:CŒH{Sƒxc)E/T?V"“L[ %±W¶i„­¹¨¸2˜mt§Q_6p‹ˆ¥M*l<®¡ %s ../../lib ../lib ./configure --prefix=PREFIX make make check make distclean make install --help-highlight describe all supported --highlight languages and file formats --highlight-bar-gray=NUM print highlight bars with gray NUM (0 - 1) --list-media list names of all known media --margins=LEFT:RIGHT:TOP:BOTTOM adjust page marginals --mark-wrapped-lines[STYLE] mark wrapped lines in the output with STYLE --non-printable-format=FMT specify how non-printable chars are printed --nup-columnwise layout pages in the N-up printing columnwise --nup-xpad=NUM set the page x-padding of N-up printing to NUM --nup-ypad=NUM set the page y-padding of N-up printing to NUM --page-label-format=FMT set page label format to FMT --ps-level=LEVEL set the PostScript language level that enscript should use --printer-options=OPTIONS pass extra options to the printer command --rotate-even-pages rotate even-numbered pages 180 degrees --slice=NUM print vertical slice NUM --style=STYLE use highlight style STYLE --swap-even-page-margins swap left and right side margins for each even numbered page --toc print table of contents --ul-angle=ANGLE set underlay text's angle to ANGLE --ul-font=NAME print underlays with font NAME --ul-gray=NUM print underlays with gray value NUM --ul-position=POS set underlay's starting position to POS --ul-style=STYLE print underlays with style STYLE --word-wrap wrap long lines from word boundaries -L, --lines-per-page=NUM specify how many lines are printed on each page -m, --mail send mail upon completion -M, --media=NAME use output media NAME -n, --copies=NUM print NUM copies of each page -N, --newline=NL select the newline character. Possible values for NL are: n (`\n') and r (`\r'). -o an alias for option --output -O, --missing-characters list missing characters -p, --output=FILE leave output to file FILE. If FILE is `-', leave output to stdout. -P, --printer=NAME print output to printer NAME -q, --quiet, --silent be really quiet -r, --landscape print in landscape mode -R, --portrait print in portrait mode option %d = "%s" left in %s sent to %s $3v $-40N $3% pages $4L lines $E $C%s: FATAL ERROR: States version %s or higher is required for this script %s: autoloading `%s' from `%s' %s: couldn't create output file "%s": %s %s: couldn't open definition file `%s': %s %s: couldn't open input file `%s': %s %s: couldn't open output file "%s"%s: error: undefined variable `%s' %s: illegal newline character specifier: '%s': expected 'n' or 'r' %s: illegal option -- %c %s: invalid option -- %c %s: malformed variable definition "%s" %s: no closing ')' for $() 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: ouf of memory%s: out of memory %s: panic: %s: primitive `%s': too few arguments for format %s: too long format for $D{} escape%s: too long format for %%D{} escape%s: too long variable name for $() escape%s: undefined state `%s' %s: undefined super state `%s' %s: unknown `$' escape `%c' (%d)%s: unknown `%%' escape `%c' (%d)%s: unknown warning level `%s' %s: unrecognized option `%c%s' %s: unrecognized option `--%s' %s: warning: font height is negative %s: warning: font size is negative %s: warning: font width is negative %s:%d: %%FooterHeight: no argument%s:%d: %%Format: name "%s" is already defined%s:%d: %%Format: no name%s:%d: %%Format: too long name, maxlen=%d%s:%d: %%HeaderHeight: no argument%s:%d: %s: argument %d doesn't match format %s:%d: %s: couldn't define state `%s' %s:%d: %s: illegal argument %s:%d: %s: illegal argument type %s:%d: %s: illegal regexp character syntax: %c %s:%d: %s: illegal type specifier `%c' %s:%d: %s: malformed version string `%s' %s:%d: %s: no extra options can be specified for %%s %s:%d: %s: offset out of range %s:%d: %s: start offset is bigger than end offset %s:%d: couldn't compile regular expression "%s": %s %s:%d: error: array reference index is not integer %s:%d: error: couldn't set variable `%s' %s:%d: error: expression between illegal types %s:%d: error: illegal lvalue for assignment %s:%d: error: illegal rvalue for string assignment %s:%d: error: illegal type for array reference %s:%d: error: negative array reference index %s:%d: error: too few arguments for subroutine %s:%d: error: too many arguments for subroutine %s:%d: error: undefined procedure `%s' %s:%d: error: undefined variable `%s' %s:%d: warning: redefining subroutine `%s' EPS file "%s" contains malformed %%%%BoundingBox row: "%.*s" EPS file "%s" does not start with "%%!" magic EPS file "%s" is not a valid EPS file EPS file "%s" is too large for page Highlighting is supported for the following languages and file formats: I did also try the following directories:Invalid back referenceInvalid character class nameInvalid collation characterInvalid content of \{\}Invalid preceding regular expressionInvalid range endInvalid regular expressionLong-only options: --color[=bool] create color outputs with states --continuous-page-numbers count page numbers across input files. Don't restart numbering at beginning of each file. --download-font=NAME download font NAME --extended-return-values enable extended return values --filter-stdin=NAME specify how stdin is shown to the input filter --footer=FOOTER set page footer --h-column-height=HEIGHT set the horizontal column height to HEIGHT --help print this help and exit Memory exhaustedN-up argument must be power of 2: %dNo matchNo previous regular expressionPremature end of regular expressionRegular expression too bigSuccessTable of ContentsThis is probably an installation error. Please, try to rebuild:Trailing backslashTry `%s --help' for more information. Unmatched ( or \(Unmatched ) or \)Unmatched [ or [^Unmatched \{Usage: %s [OPTION]... FILE... Mandatory arguments to long options are mandatory for short options too. -h, --help print this help and exit -p, --output-file=NAME print output to file NAME (default file is font.map). If FILE is `-', leavy output to stdout. -V, --version print version number Usage: %s [OPTION]... [FILE]... Mandatory arguments to long options are mandatory for short options too. couldn't close output file "%s": %scouldn't create AFM librarycouldn't create output file "%s": %scouldn't create temporary divert file: %scouldn't create temporary toc file: %scouldn't find encoding file "%s.enc": %s couldn't find header definition file "%s.hdr"couldn't find header definition file "%s.hdr": %s couldn't find prolog "%s": %s couldn't get passwd entry for uid=%d: %scouldn't open AFM file for font "%s", using default couldn't open AFM file for the default font: %scouldn't open AFM library: %scouldn't open EPS file "%s": %s couldn't open font description file "%s": %s couldn't open input file "%s": %scouldn't open input filter "%s" for file "%s": %scouldn't open printer `%s': %scouldn't read config file "%s/%s": %scouldn't rewind divert file: %scouldn't rewind toc file: %scouldn't stat input file "%s": %sdo not know anything about media "%s"downloading font "%s" error: EOF in commenterror: EOF in regular expressionerror: EOF in string constantfile alignment must be larger than zerofile=%s helper application specification must be single character: %sillegal N-up argument: %dillegal non-printable format "%s"illegal option %c for ^@epsf escapeillegal option: %sillegal page label format "%s"illegal style for wrapped line marker: "%s"illegal underlay style: %sillegal value "%s" for option %sinvalid value "%s" for option %sinvalid value for ^@bggray escape: %sinvalid value for ^@shade escape: %sknown media: name width height llx lly urx ury ------------------------------------------------------------ malformed %s escape: no '{' foundmalformed ^@epsf escape: no ']' after optionsmalformed ^@epsf escape: no '{' foundmalformed argument `%s' for option -W, --option: no comma foundmalformed color spec for ^@%s escape: %smalformed float dimension: "%s"malformed font spec for ^@font escape: %smalformed font spec: %smalformed underlay position: %smissing character codes (decimal): must print at least one line per each page: %sno output generated non-printable character codes (decimal): number of columns must be larger than zerooutput left in %s output sent to %s passing through %s file "%s" passing through all input files for output language `%s' printerprocessing file "%s"... reading AFM info for font "%s" set new marginals for media `%s' (%dx%d): llx=%d, lly=%d, urx=%d, ury=%d slice must be greater than zerostdoutsyntax error in option string %s="%s": missing end of quotation: %ctoo long argument for %s escape: %.*stoo long file name for ^@epsf escape: %.*struncatedunexpected EOF while scanning ^@epsf escapeunknown encoding: %sunknown special escape: %suser font encoding can be only the system's default or `ps'warning: didn't process following options from environment variable %s: warning: redefining state `%s'wrappedxcalloc(): couldn't allocate %d bytes xmalloc(): couldn't allocate %d bytes xrealloc(): couldn't reallocate %d bytes Project-Id-Version: enscript 1.6.3 Report-Msgid-Bugs-To: bug-enscript@gnu.org POT-Creation-Date: 2011-07-10 16:43+0100 PO-Revision-Date: 2003-02-20 13:35+0300 Last-Translator: Oleg S. Tihonov Language-Team: Russian Language: ru MIME-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Transfer-Encoding: 8bit %s ../../lib ../lib ./configure --prefix=ðòåæéëó make make check make distclean make install --help-highlight ÏÐÉÓÁÔØ ×ÓÅ ÑÚÙËÉ, ÐÏÄÄÅÒÖÉ×ÁÅÍÙÅ --highlight --highlight-bar-gray=þéóìï ÐÅÞÁÔÁÔØ ×ÙÄÅÌÑÀÝÉÅ ÐÏÌÏÓÙ ÚÁÄÁÎÎÙÍ ÏÔÔÅÎËÏÍ ÓÅÒÏÇÏ Ã×ÅÔÁ (0 - 1) --list-media ÐÅÒÅÞÉÓÌÉÔØ ×ÓÅ ÉÚ×ÅÓÔÎÙÅ ÆÏÒÍÁÔÙ --margins=ìå÷:ðòá÷:÷åòè:îéú ÎÁÓÔÒÁÉ×ÁÅÔ ÒÁÚÍÅÒÙ ÐÏÌÅÊ ÓÔÒÁÎÉÃÙ --mark-wrapped-lines[óôéìø] ÚÁÄÁÅÔ óôéìø ÐÏÍÅÔËÉ ÒÁÚÂÉÔÙÈ ÓÔÒÏË --non-printable-format=æíô ÕËÁÚÙ×ÁÅÔ, ËÁË ×Ù×ÏÄÉÔØ ÎÅÐÅÞÁÔÎÙÅ ÚÎÁËÉ --nup-columnwise ÒÁÚÍÅÝÁÔØ ÓÔÒÁÎÉÃÙ ÐÏ ÓÔÏÌÂÃÁÍ ÐÒÉ ÐÅÞÁÔÉ ÎÅÓËÏÌØËÉÈ ÓÔÒÁÎÉà ÎÁ ÌÉÓÔ --nup-xpad=þéóìï ÕÓÔÁÎÏ×ÉÔØ ÚÁÐÏÌÎÅÎÉÅ ÓÔÒÁÎÉÃÙ ÐÏ x ÐÒÉ ÐÅÞÁÔÉ ÎÅÓËÏÌØËÉÈ ÓÔÒÁÎÉà ÎÁ ÌÉÓÔ ÒÁ×ÎÙÍ þéóìõ --nup-ypad=þéóìï ÕÓÔÁÎÏ×ÉÔØ ÚÁÐÏÌÎÅÎÉÅ ÓÔÒÁÎÉÃÙ ÐÏ y ÐÒÉ ÐÅÞÁÔÉ ÎÅÓËÏÌØËÉÈ ÓÔÒÁÎÉà ÎÁ ÌÉÓÔ ÒÁ×ÎÙÍ þéóìõ --page-label-format=æíô ÕÓÔÁÎÁ×ÌÉ×ÁÅÔ ÆÏÒÍÁÔ ÍÅÔËÉ ÓÔÒÁÎÉÃÙ --ps-level=õòï÷åîø ÕÓÔÁÎÁ×ÌÉ×ÁÅÔ ÕÒÏ×ÅÎØ ÑÚÙËÁ PostScript, ËÏÔÏÒÙÊ ÄÏÌÖÅÎ ÉÓÐÏÌØÚÏ×ÁÔØ enscript --printer-options=ëìàþé ÐÅÒÅÄÁÅÔ ÄÏÐÏÌÎÉÔÅÌØÎÙÅ ÐÁÒÁÍÅÔÒÙ ËÏÍÁÎÄÅ ÐÅÞÁÔÉ --rotate-even-pages ÐÏ×ÏÒÁÞÉ×ÁÔØ ÞÅÔÎÙÅ ÓÔÒÁÎÉÃÙ ÎÁ 180 ÇÒÁÄÕÓÏ× --slice=þéóìï ÐÅÞÁÔÁÔØ ÚÁÄÁÎÎÙÊ ×ÅÒÔÉËÁÌØÎÙÊ ÆÒÁÇÍÅÎÔ --style=óôéìø ÉÓÐÏÌØÚÏ×ÁÔØ ÚÁÄÁÎÎÙÊ ÓÔÉÌØ ×ÙÄÅÌÅÎÉÑ --swap-even-page-margins ÍÅÎÑÔØ ÌÅ×ÏÅ É ÐÒÁ×ÏÅ ÐÏÌÑ ÄÌÑ ÞÅÔÎÙÈ ÓÔÒÁÎÉà --toc ÐÅÞÁÔÁÔØ ÓÏÄÅÒÖÁÎÉÅ --ul-angle=õçïì ÚÁÄÁÅÔ õçïì ÎÁËÌÏÎÁ ÔÅËÓÔÁ ÐÏÄËÌÁÄËÉ --ul-font=éíñ ÚÁÄÁÅÔ ÛÒÉÆÔ ÄÌÑ ÐÏÄËÌÁÄËÉ --ul-gray=þéóìï ÐÅÞÁÔÁÔØ ÐÏÄËÌÁÄËÕ ÚÁÄÁÎÎÙÍ ÓÅÒÙÍ Ã×ÅÔÏÍ --ul-position=ðïú ÚÁÄÁÅÔ ÎÁÞÁÌØÎÕÀ ÐÏÚÉÃÉÀ ÄÌÑ ÐÏÄËÌÁÄËÉ --ul-style=óôéìø ÚÁÄÁÅÔ óôéìø ÐÏÄËÌÁÄËÉ --word-wrap ÏÂÒÙ×ÁÔØ ÄÌÉÎÎÙÅ ÓÔÒÏËÉ ÎÁ ÇÒÁÎÉÃÁÈ ÓÌÏ× -L, --lines-per-page=þéóìï ÚÁÄÁÅÔ þéóìï ÐÅÞÁÔÁÅÍÙÈ ÓÔÒÏË ÎÁ ËÁÖÄÏÊ ÓÔÒÁÎÉÃÅ -m, --mail ÐÏÓÌÁÔØ ÓÏÏÂÝÅÎÉÅ ÐÏ ÏËÏÎÞÁÎÉÉ ÒÁÂÏÔÙ -M, --media=éíñ ÚÁÄÁÅÔ ÆÏÒÍÁÔ ÄÌÑ ÐÅÞÁÔÉ -n, --copies=þéóìï ÚÁÄÁÅÔ þéóìï ÐÅÞÁÔÁÅÍÙÈ ËÏÐÉÊ ËÁÖÄÏÊ ÓÔÒÁÎÉÃÙ -N, --newline=îó ÚÁÄÁÅÔ ÓÉÍ×ÏÌ ÎÏ×ÏÊ ÓÔÒÏËÉ, ÄÏÐÕÓÔÉÍÙÅ ÚÎÁÞÅÎÉÑ n (`\n') É r (`\r') -o ÓÉÎÏÎÉÍ --output -O, --missing-characters ÐÏËÁÚÁÔØ ÐÒÏÐÕÝÅÎÎÙÅ ÓÉÍ×ÏÌÙ -p, --output=æáêì ÚÁÐÉÓÁÔØ ×Ù×ÏÄ × ÕËÁÚÁÎÎÙÊ æáêì. åÓÌÉ æáêì ÚÁÄÁÎ ËÁË -, ÐÅÞÁÔÁÔØ ÎÁ ÓÔÁÎÄÁÒÔÎÙÊ ×Ù×ÏÄ -P, --printer=éíñ ÎÁÐÅÞÁÔÁÔØ ×Ù×ÏÄ ÎÁ ÕËÁÚÁÎÎÏÍ ÐÒÉÎÔÅÒÅ -q, --quiet, --silent ÎÅ ×Ù×ÏÄÉÔØ ÓÏÏÂÝÅÎÉÊ -r, --landscape ÐÅÞÁÔÁÔØ ÇÏÒÉÚÏÎÔÁÌØÎÏ (ÒÅÖÉÍ landscape) -R, --portrait ÐÅÞÁÔÁÔØ ×ÅÒÔÉËÁÌØÎÏ (ÒÅÖÉÍ portrait) ËÌÀÞ %d = "%s" ÚÁÐÉÓÁÎÏ × %s ÎÁÐÒÁ×ÌÅÎÏ ÎÁ %s $3v $-40N $3% ÓÔÒÁÎÉà $4L ÓÔÒÏË $E $C%s: ëòéôéþåóëáñ ïûéâëá: ÄÌÑ ÜÔÏÊ ÐÒÏÇÒÁÍÍÙ ÎÅÏÂÈÏÄÉÍ states ×ÅÒÓÉÉ %s ÉÌÉ ×ÙÛÅ %s: Á×ÔÏÚÁÇÒÕÚËÁ `%s' ÉÚ `%s' %s: ÎÅ×ÏÚÍÏÖÎÏ ÓÏÚÄÁÔØ ×ÙÈÏÄÎÏÊ ÆÁÊÌ "%s": %s %s: ÎÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÊ ÆÁÊÌ `%s': %s %s: ÎÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ ×ÈÏÄÎÏÊ ÆÁÊÌ `%s': %s %s: ÎÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ ×ÙÈÏÄÎÏÊ ÆÁÊÌ "%s"%s: ÏÛÉÂËÁ: ÐÅÒÅÍÅÎÎÁÑ `%s' ÎÅÏÐÒÅÄÅÌÅÎÁ %s: ÎÅ×ÅÒÎÏ ÚÁÄÁÎ ÓÉÍ×ÏÌ ÎÏ×ÏÊ ÓÔÒÏËÉ: '%s': ÄÏÐÕÓÔÉÍÙ 'n' ÉÌÉ 'r' %s: ÎÅÄÏÐÕÓÔÉÍÙÊ ËÌÀÞ -- %c %s: ÎÅ×ÅÒÎÙÊ ËÌÀÞ -- %c %s: ÐÅÒÅÍÅÎÎÁÑ "%s" ÏÐÒÅÄÅÌÅÎÁ ÎÅÐÒÁ×ÉÌØÎÏ %s: ÏÔÓÕÔÓÔ×ÕÅÔ ÚÁËÒÙ×ÁÀÝÁÑ ')' ÄÌÑ ÄÉÒÅËÔÉ×Ù $()%s: ËÌÀÞ `%c%s' ÄÏÌÖÅÎ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ ÂÅÚ ÁÒÇÕÍÅÎÔÁ %s: ÎÅÏÄÎÏÚÎÁÞÎÙÊ ËÌÀÞ `%s' %s: ËÌÀÞ `%s' ÄÏÌÖÅÎ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ c ÁÒÇÕÍÅÎÔÏÍ %s: ËÌÀÞ `--%s' ÄÏÌÖÅÎ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ ÂÅÚ ÁÒÇÕÍÅÎÔÁ %s: ËÌÀÞ `-W %s' ÄÏÌÖÅÎ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ ÂÅÚ ÁÒÇÕÍÅÎÔÁ %s: ÎÅÏÄÎÏÚÎÁÞÎÙÊ ËÌÀÞ `-W %s' %s: ËÌÀÞ %c ÄÏÌÖÅÎ ÂÙ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ c ÁÒÇÕÍÅÎÔÏÍ %s: ÏÐÅÒÁÔÉ×ÎÁÑ ÐÁÍÑÔØ ÉÓÞÅÒÐÁÎÁ%s: ÏÐÅÒÁÔÉ×ÎÁÑ ÐÁÍÑÔØ ÉÓÞÅÒÐÁÎÁ %s: Á×ÁÒÉÊÎÁÑ ÓÉÔÕÁÃÉÑ: %s: ÐÒÉÍÉÔÉ× `%s': ÎÅÄÏÓÔÁÔÏÞÎÏ ÁÒÇÕÍÅÎÔÏ× %s: ÓÌÉÛËÏÍ ÄÌÉÎÎÙÊ ÆÏÒÍÁÔ ÄÌÑ ÄÉÒÅËÔÉ×Ù $D{}%s: ÓÌÉÛËÏÍ ÄÌÉÎÎÙÊ ÆÏÒÍÁÔ ÄÌÑ ÄÉÒÅËÔÉ×Ù %%D{}%s: ÓÌÉÛËÏÍ ÄÌÉÎÎÏÅ ÉÍÑ ÐÅÒÅÍÅÎÎÏÊ ÄÌÑ ÄÉÒÅËÔÉ×Ù $()%s: ÓÏÓÔÏÑÎÉÅ `%s' ÎÅÏÐÒÅÄÅÌÅÎÏ %s: ÓÕÐÅÒ-ÓÏÓÔÏÑÎÉÅ `%s' ÎÅÏÐÒÅÄÅÌÅÎÏ %s: ÎÅÉÚ×ÅÓÔÎÁÑ $-ÄÉÒÅËÔÉ×Á `%c' (%d)%s: ÎÅÉÚ×ÅÓÔÎÁÑ %%-ÄÉÒÅËÔÉ×Á `%c' (%d)%s: ÕÒÏ×ÅÎØ ÐÏÄÒÏÂÎÏÓÔÉ ÐÒÅÄÕÐÒÅÖÄÅÎÉÊ `%s' ÎÅÉÚ×ÅÓÔÅÎ %s: ÎÅÉÚ×ÅÓÔÎÙÊ ËÌÀÞ `%c%s' %s: ÎÅÉÚ×ÅÓÔÎÙÊ ËÌÀÞ `--%s' %s: ÐÒÅÄÕÐÒÅÖÄÅÎÉÅ: ÏÔÒÉÃÁÔÅÌØÎÁÑ ×ÙÓÏÔÁ ÛÒÉÆÔÁ %s: ÐÒÅÄÕÐÒÅÖÄÅÎÉÅ: ÏÔÒÉÃÁÔÅÌØÎÙÊ ÒÁÚÍÅÒ ÛÒÉÆÔÁ %s: ÐÒÅÄÕÐÒÅÖÄÅÎÉÅ: ÏÔÒÉÃÁÔÅÌØÎÁÑ ÛÉÒÉÎÁ ÛÒÉÆÔÁ %s:%d: %%FooterHeight: ÁÒÇÕÍÅÎÔ ÎÅ ÚÁÄÁÎ%s:%d: %%Format: ÉÍÑ "%s" ÕÖÅ ÏÐÒÅÄÅÌÅÎÏ%s:%d: %%Format: ÎÅ ÚÁÄÁÎ%s:%d %%Format: ÓÌÉÛËÏÍ ÄÌÉÎÎÏÅ ÉÍÑ, ÍÁËÓÉÍÁÌØÎÁÑ ÄÌÉÎÁ %d%s:%d: %%HeaderHeight: ÁÒÇÕÍÅÎÔ ÎÅ ÚÁÄÁÎ%s:%d: %s: ÁÒÇÕÍÅÎÔ %d ÎÅ ÓÏÏÔ×ÅÔÓÔ×ÕÅÔ ÆÏÒÍÁÔÕ %s:%d: %s: ÎÅ×ÏÚÍÏÖÎÏ ÏÐÒÅÄÅÌÉÔØ ÓÏÓÔÏÑÎÉÅ `%s' %s:%d: %s: ÎÅÄÏÐÕÓÔÉÍÙÊ ÁÒÇÕÍÅÎÔ %s:%d: %s: ÎÅÄÏÐÕÓÔÉÍÙÊ ÔÉÐ ÁÒÇÕÍÅÎÔÁ %s:%d: %s: ÎÅÄÏÐÕÓÔÉÍÙÊ ÓÉÎÔÁËÓÉÓ ÚÎÁËÁ × ÒÅÇÕÌÑÒÎÏÍ ×ÙÒÁÖÅÎÉÉ: %c %s:%d: %s: ÔÉÐ `%c' ÎÅÄÏÐÕÓÔÉÍ %s:%d: %s: ÎÅÐÒÁ×ÉÌØÎÁÑ ÚÁÐÉÓØ ×ÅÒÓÉÉ `%s' %s:%d: %s: ÄÌÑ %%s ÎÅÌØÚÑ ÚÁÄÁÔØ ÄÏÐÏÌÎÉÔÅÌØÎÙÅ ÁÒÇÕÍÅÎÔÙ %s:%d: %s: ÓÍÅÝÅÎÉÅ ×ÎÅ ÄÏÐÕÓÔÉÍÙÈ ÐÒÅÄÅÌÏ× %s:%d: %s: ÎÁÞÁÌØÎÏÅ ÓÍÅÝÅÎÉÅ ÂÏÌØÛÅ ËÏÎÅÞÎÏÇÏ %s:%d: ÎÅ×ÏÚÍÏÖÎÏ ÓËÏÍÐÉÌÉÒÏ×ÁÔØ ÒÅÇÕÌÑÒÎÏÅ ×ÙÒÁÖÅÎÉÅ "%s": %s %s:%d: ÏÛÉÂËÁ: ÉÎÄÅËÓ ÍÁÓÓÉ×Á ÎÅ Ñ×ÌÑÅÔÓÑ ÃÅÌÙÍ ÞÉÓÌÏÍ %s:%d: ÏÛÉÂËÁ: ÎÅ×ÏÚÍÏÖÎÏ ÕÓÔÁÎÏ×ÉÔØ ÚÎÁÞÅÎÉÅ ÐÅÒÅÍÅÎÎÏÊ `%s' %s:%d: ÏÛÉÂËÁ: ÎÅÄÏÐÕÓÔÉÍÙÅ ÔÉÐÙ ÁÒÇÕÍÅÎÔÏ× ×ÙÒÁÖÅÎÉÑ %s:%d: ÏÛÉÂËÁ: ÎÅÄÏÐÕÓÔÉÍÁÑ ÌÅ×ÁÑ ÞÁÓÔØ ÏÐÅÒÁÔÏÒÁ ÐÒÉÓ×ÁÉ×ÁÎÉÑ %s:%d: ÏÛÉÂËÁ: ÎÅÄÏÐÕÓÔÉÍÁÑ ÐÒÁ×ÁÑ ÞÁÓÔØ ÏÐÅÒÁÔÏÒÁ ÐÒÉÓ×ÁÉ×ÁÎÉÑ ÓÔÒÏË %s%d: ÏÛÉÂËÁ: ÎÅÄÏÐÕÓÔÉÍÙÊ ÔÉÐ ÄÌÑ ÓÓÙÌËÉ ÐÏ ÉÎÄÅËÓÕ %s:%d: ÏÛÉÂËÁ: ÏÔÒÉÃÁÔÅÌØÎÙÊ ÉÎÄÅËÓ ÍÁÓÓÉ×Á %s:%d: ÏÛÉÂËÁ: ÎÅÄÏÓÔÁÔÏÞÎÏ ÁÒÇÕÍÅÎÔÏ× ÄÌÑ ÐÏÄÐÒÏÇÒÁÍÍÙ %s:%d: ÏÛÉÂËÁ: ÓÌÉÛËÏÍ ÍÎÏÇÏ ÁÒÇÕÍÅÎÔÏ× ÄÌÑ ÐÏÄÐÒÏÇÒÁÍÍÙ %s:%d: ÏÛÉÂËÁ: ÐÒÏÃÅÄÕÒÁ `%s' ÎÅ ÏÐÒÅÄÅÌÅÎÁ %s:%d: ÏÛÉÂËÁ: ÐÅÒÅÍÅÎÎÁÑ `%s' ÎÅÏÐÒÅÄÅÌÅÎÁ %s:%d: ÐÒÅÄÕÐÒÅÖÄÅÎÉÅ: ÐÅÒÅÏÐÒÅÄÅÌÅÎÉÅ ÐÏÄÐÒÏÇÒÁÍÍÙ `%s' EPS-ÆÁÊÌ "%s" ÓÏÄÅÒÖÉÔ ÎÅÐÒÁ×ÉÌØÎÕÀ ÓÔÒÏËÕ %%%%BoundingBox: "%.*s" EPS-ÆÁÊÌ "%s" ÎÅ ÎÁÞÉÎÁÅÔÓÑ ×ÏÌÛÅÂÎÙÍ ËÏÍÍÅÎÔÁÒÉÅÍ "%%!" EPS-ÆÁÊÌ "%s" ÎÅ Ñ×ÌÑÅÔÓÑ ×ÅÒÎÙÍ EPS-ÆÁÊÌÏÍ EPS-ÆÁÊÌ "%s" ÓÌÉÛËÏÍ ×ÅÌÉË ÷ÙÄÅÌÅÎÉÅ ÐÏÄÄÅÒÖÉ×ÁÅÔÓÑ ÄÌÑ ÓÌÅÄÕÀÝÉÈ ÑÚÙËÏ× É ÆÏÒÍÁÔÏ× ÆÁÊÌÏ×: ôÁËÖÅ ÐÒÏÂÏ×ÁÌÉÓØ ÓÌÅÄÕÀÝÉÅ ËÁÔÁÌÏÇÉ:îÅ×ÅÒÎÁÑ ÓÓÙÌËÁîÅ×ÅÒÎÏÅ ÉÍÑ ËÌÁÓÓÁ ÓÉÍ×ÏÌÁîÅÄÏÐÕÓÔÉÍÙÊ ÄÌÑ ÓÏÒÔÉÒÏ×ËÉ ÓÉÍ×ÏÌîÅ×ÅÒÎÏÅ ÓÏÄÅÒÖÉÍÏÅ \{\}îÅ×ÅÒÎÏÅ ÐÒÅÄÛÅÓÔ×ÕÀÝÅÅ ÒÅÇÕÌÑÒÎÏÅ ×ÙÒÁÖÅÎÉÅîÅ×ÅÒÎÏÅ ÓÏÄÅÒÖÉÍÏÅ \{\}îÅ×ÅÒÎÏÅ ÒÅÇÕÌÑÒÎÏÅ ×ÙÒÁÖÅÎÉÅäÌÉÎÎÙÅ ËÌÀÞÉ: --color[=bool] ×Ù×ÏÄÉÔØ × ÒÁÚÎÙÈ Ã×ÅÔÁÈ --continuous-page-numbers ÓÞÉÔÁÔØ ÎÏÍÅÒÁ ÓÔÒÁÎÉà ÎÅÐÒÅÒÙ×ÎÏ ÐÏ ×ÓÅÍ ×ÈÏÄÎÙÍ ÆÁÊÌÁÍ. îÅ ÎÁÞÉÎÁÔØ ÚÁÎÏ×Ï Ó ÎÁÞÁÌÁ ËÁÖÄÏÇÏ ÆÁÊÌÁ. --download-font=éíñ ×ËÌÀÞÉÔØ × ×Ù×ÏÄ ÛÒÉÆÔ Ó ÕËÁÚÁÎÎÙÍ éíåîåí --extended-return-values ×ËÌÀÞÉÔØ ÒÁÓÛÉÒÅÎÎÙÅ ËÏÄÙ ×ÏÚÒ×ÒÁÔÁ --filter-stdin=éíñ ÕËÁÚÙ×ÁÅÔ, ËÁË ÉÍÅÎÏ×ÁÔØ ÓÔÁÎÄÁÒÔÎÙÊ ××ÏÄ ÄÌÑ ×ÈÏÄÎÏÇÏ ÆÉÌØÔÒÁ --footer=úáçïìï÷ïë ÕÓÔÁÎÁ×ÌÉ×ÁÅÔ ÎÉÖÎÉÊ ÚÁÇÏÌÏ×ÏË ÓÔÒÁÎÉÃÙ --h-column-height=÷ùóïôá ÕÓÔÁÎÁ×ÌÉ×ÁÅÔ ÷ùóïôõ ÇÏÒÉÚÏÎÔÁÌØÎÏÊ ËÏÌÏÎËÉ --help ÐÏËÁÚÁÔØ ÜÔÕ ÓÐÒÁ×ËÕ É ×ÙÊÔÉ ïÐÅÒÁÔÉ×ÎÁÑ ÐÁÍÑÔØ ÉÓÞÅÒÐÁÎÁÞÉÓÌÏ ÌÏÇÉÞÅÓËÉÈ ÓÔÒÁÎÉà ÎÁ ÓÔÒÁÎÉÃÕ ÄÏÌÖÎÏ ÂÙÔØ ÓÔÅÐÅÎØÀ 2: %dóÏ×ÐÁÄÅÎÉÊ ÎÅÔòÅÇÕÌÑÒÎÏÅ ×ÙÒÁÖÅÎÉÅ ÎÅ ÂÙÌÏ ÚÁÄÁÎÏ ÒÁÎØÛÅðÒÅÖÄÅ×ÒÅÍÅÎÎÙÊ ËÏÎÅà ÒÅÇÕÌÑÒÎÏÇÏ ×ÙÒÁÖÅÎÉÑòÅÇÕÌÑÒÎÏÅ ×ÙÒÁÖÅÎÉÅ ÓÌÉÛËÏÍ ×ÅÌÉËÏõÓÐÅÈóÏÄÅÒÖÁÎÉÅ÷ÅÒÏÑÔÎÏ, ÜÔÏ ÉÚ-ÚÁ ÏÛÉÂËÉ ÐÒÉ ÕÓÔÁÎÏ×ËÅ. ðÏÐÒÏÂÕÊÔÅ ÐÅÒÅÓÏÂÒÁÔØ:ïÂÒÁÔÎÁÑ ËÏÓÁÑ ÞÅÒÔÁ ÓÔÏÉÔ ÐÏÓÌÅÄÎÅÊðÏÐÒÏÂÕÊÔÅ `%s --help' ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÂÏÌÅÅ ÐÏÄÒÏÂÎÏÇÏ ÏÐÉÓÁÎÉÑ. îÅ ÉÍÅÀÝÅÅ ÐÁÒÙ ( ÉÌÉ \\(îÅ ÉÍÅÀÝÅÅ ÐÁÒÙ ) ÉÌÉ \)îÅ ÉÍÅÀÝÅÅ ÐÁÒÙ [ ÉÌÉ [^îÅ ÉÍÅÀÝÅÅ ÐÁÒÙ \{éÓÐÏÌØÚÏ×ÁÎÉÅ: %s [ëìàþ]... æáêì áÒÇÕÍÅÎÔÙ, ÏÂÑÚÁÔÅÌØÎÙÅ ÄÌÑ ÄÌÉÎÎÙÈ ËÌÀÞÅÊ, ÏÂÑÚÁÔÅÌØÎÙ É ÄÌÑ ËÏÒÏÔËÉÈ. -h, --help ÐÏËÁÚÁÔØ ÜÔÕ ÓÐÒÁ×ËÕ É ×ÙÊÔÉ -p, --output-file=æáêì ×Ù×ÏÄÉÔØ × ÕËÁÚÁÎÎÙÊ æáêì (ÐÏ ÕÍÏÌÞÁÎÉÀ font.map). åÓÌÉ æáêì ÚÁÄÁÎ ËÁË -, ÐÅÞÁÔÁÔØ ÎÁ ÓÔÁÎÄÁÒÔÎÙÊ ×Ù×ÏÄ. -V, --version ÐÏËÁÚÁÔØ ÉÎÆÏÒÍÁÃÉÀ Ï ×ÅÒÓÉÉ É ×ÙÊÔÉ éÓÐÏÌØÚÏ×ÁÎÉÅ: %s [ëìàþ]... [æáêì]... áÒÇÕÍÅÎÔÙ, ÏÂÑÚÁÔÅÌØÎÙÅ ÄÌÑ ÄÌÉÎÎÙÈ ËÌÀÞÅÊ, ÏÂÑÚÁÔÅÌØÎÙ É ÄÌÑ ËÏÒÏÔËÉÈ. ÎÅ×ÏÚÍÏÖÎÏ ÚÁËÒÙÔØ ×ÙÈÏÄÎÏÊ ÆÁÊÌ "%s": %sÎÅ×ÏÚÍÏÖÎÏ ÓÏÚÄÁÔØ AFM-ÂÉÂÌÉÏÔÅËÕÎÅ×ÏÚÍÏÖÎÏ ÓÏÚÄÁÔØ ×ÙÈÏÄÎÏÊ ÆÁÊÌ "%s": %sÎÅ×ÏÚÍÏÖÎÏ ÓÏÚÄÁÔØ ×ÒÅÍÅÎÎÙÊ ÆÁÊÌ: %sÎÅ×ÏÚÍÏÖÎÏ ÓÏÚÄÁÔØ ÆÁÊÌ ÓÏÄÅÒÖÁÎÉÑ: %sÎÅ×ÏÚÍÏÖÎÏ ÎÁÊÔÉ ÆÁÊÌ ÏÐÉÓÁÎÉÑ ËÏÄÉÒÏ×ËÉ "%s.enc": %s ÎÅ×ÏÚÍÏÖÎÏ ÎÁÊÔÉ ÚÁÇÏÌÏ×ÏÞÎÙÊ ÆÁÊÌ "%s.hdr"ÎÅ×ÏÚÍÏÖÎÏ ÎÁÊÔÉ ÚÁÇÏÌÏ×ÏÞÎÙÊ ÆÁÊÌ "%s.hdr": %s ÎÅ×ÏÚÍÏÖÎÏ ÎÁÊÔÉ ÐÒÏÌÏÇ "%s": %s ÎÅ×ÏÚÍÏÖÎÏ ÐÏÌÕÞÉÔØ ÐÁÒÏÌØ ÄÌÑ ÐÏÌØÚÏ×ÁÔÅÌÑ Ó uid=%d: %sÎÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ AFM-ÆÁÊÌ ÄÌÑ ÛÒÉÆÔÁ "%s", ÉÓÐÏÌØÚÕÅÔÓÑ ÛÒÉÆÔ ÐÏ ÕÍÏÌÞÁÎÉÀ ÎÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ AFM-ÆÁÊÌ ÄÌÑ ÛÒÉÆÔÁ ÐÏ ÕÍÏÌÞÁÎÉÀ: %sÎÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ AFM-ÂÉÂÌÉÏÔÅËÕ: %sÎÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ EPS-ÆÁÊÌ "%s": %s ÎÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ ÆÁÊÌ ÏÐÉÓÁÎÉÑ ÛÒÉÆÔÁ "%s": %s ÎÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ ×ÈÏÄÎÏÊ ÆÁÊÌ "%s": %sÎÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ ×ÈÏÄÎÏÊ ÆÉÌØÔÒ "%s" ÄÌÑ ÆÁÊÌÁ "%s": %sÎÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ ÐÒÉÎÔÅÒ `%s': %sÎÅ×ÏÚÍÏÖÎÏ ÓÞÉÔÁÔØ ÆÁÊÌ ËÏÎÆÉÇÕÒÁÃÉÉ "%s/%s": %sÎÅ×ÏÚÍÏÖÎÏ ÓÍÅÓÔÉÔØÓÑ ×Ï ×ÒÅÍÅÎÎÏÍ ÆÁÊÌÅ: %sÎÅ×ÏÚÍÏÖÎÏ ÓÍÅÓÔÉÔØÓÑ × ÆÁÊÌÅ ÓÏÄÅÒÖÁÎÉÑ: %sÎÅ×ÏÚÍÏÖÎÏ ÕÚÎÁÔØ ÓÔÁÔÕÓ ×ÈÏÄÎÏÇÏ ÆÁÊÌÁ "%s": %sÆÏÒÍÁÔ "%s" ÎÅÉÚ×ÅÓÔÅÎÚÁÇÒÕÚËÁ ÛÒÉÆÔÁ "%s" ÏÛÉÂËÁ: EOF × ËÏÍÍÅÎÔÁÒÉÉÏÛÉÂËÁ: EOF × ÒÅÇÕÌÑÒÎÏÍ ×ÙÒÁÖÅÎÉÉÏÛÉÂËÁ: EOF × ÓÔÒÏËÏ×ÏÊ ËÏÎÓÔÁÎÔÅÁÒÇÕÍÅÎÔ ×ÙÒÁ×ÎÉ×ÁÎÉÑ ÆÁÊÌÏ× ÄÏÌÖÅÎ ÂÙÔØ ÂÏÌØÛÅ ÎÕÌÑÆÁÊÌ=%s ÓÐÅÃÉÆÉËÁÃÉÑ ×ÓÐÏÍÏÇÁÔÅÌØÎÏÊ ÐÒÏÇÒÁÍÍÙ ÄÏÌÖÎÁ ÂÙÔØ ÏÄÎÉÍ ÚÎÁËÏÍ: %sÎÅ×ÅÒÎÏ ÚÁÄÁÎÏ ÞÉÓÌÏ ÌÏÇÉÞÅÓËÉÈ ÓÔÒÁÎÉà ÎÁ ÓÔÒÁÎÉÃÕ: %dÎÅÄÏÐÕÓÔÉÍÙÊ ÆÏÒÍÁÔ ÄÌÑ ÎÅÐÅÞÁÔÎÙÈ ÓÉÍ×ÏÌÏ× "%s"ÎÅÄÏÐÕÓÔÉÍÙÊ ËÌÀÞ %c ÄÌÑ ÄÉÒÅËÔÉ×Ù ^@epsfÎÅÄÏÐÕÓÔÉÍÙÊ ËÌÀÞ: %sÎÅÄÏÐÕÓÔÉÍÙÊ ÆÏÒÍÁÔ ÍÅÔËÉ ÓÔÒÁÎÉÃÙ "%s"ÎÅÄÏÐÕÓÔÉÍÙÊ ÓÔÉÌØ ÐÏÍÅÔËÉ ÒÁÚÂÉÅÎÉÑ ÓÔÒÏËÉ: "%s"ÎÅÄÏÐÕÓÔÉÍÙÊ ÓÔÉÌØ ÐÏÄËÌÁÄËÉ: %sÎÅÄÏÐÕÓÔÉÍÏÅ ÚÎÁÞÅÎÉÅ "%s" ÄÌÑ ËÌÀÞÁ %sÎÅ×ÅÒÎÏÅ ÚÎÁÞÅÎÉÅ "%s" ÄÌÑ ËÌÀÞÁ %sÎÅ×ÅÒÎÏÅ ÚÎÁÞÅÎÉÅ ÄÌÑ ÄÉÒÅËÔÉ×Ù ^@bggray: %sÎÅ×ÅÒÎÏÅ ÚÎÁÞÅÎÉÅ ÄÌÑ ÄÉÒÅËÔÉ×Ù ^@shade: %sÉÚ×ÅÓÔÎÙÅ ÆÏÒÍÁÔÙ: ÉÍÑ ÛÉÒÉÎÁ ×ÙÓÏÔÁ ÌÎX ÌÎY Ð×X Ð×Y ------------------------------------------------------------ ÎÅ×ÅÒÎÏ ÚÁÄÁÎÁ ÄÉÒÅËÔÉ×Á %s: ÏÔÓÕÔÓÔ×ÕÅÔ '{'ÎÅ×ÅÒÎÏ ÚÁÄÁÎÁ ÄÉÒÅËÔÉ×Á ^@epsf: ÐÏÓÌÅ ËÌÀÞÅÊ ÏÔÓÕÔÓÔ×ÕÅÔ `]'ÎÅ×ÅÒÎÏ ÚÁÄÁÎÁ ÄÉÒÅËÔÉ×Á ^@epsf: ÏÔÓÕÔÓÔ×ÕÅÔ '{'ÎÅÐÒÁ×ÉÌØÎÏ ÓÏÓÔÁ×ÌÅÎ ÁÒÇÕÍÅÎÔ `%s' ÄÌÑ ËÌÀÞÁ -W, --option: ÎÅÔ ÚÁÐÑÔÏÊÎÅÐÒÁ×ÉÌØÎÏÅ ÏÐÉÓÁÎÉÅ Ã×ÅÔÁ × ÄÉÒÅËÔÉ×Å ^@%s: %sÎÅÐÒÁ×ÉÌØÎÏÅ ÞÉÓÌÏ Ó ÐÌÁ×ÁÀÝÅÊ ÔÏÞËÏÊ: "%s"ÎÅÐÒÁ×ÉÌØÎÏÅ ÏÐÉÓÁÎÉÅ ÛÒÉÆÔÁ × ÄÉÒÅËÔÉ×Å ^@font: %sÎÅ×ÅÒÎÏ ÏÐÉÓÁÎ ÛÒÉÆÔ: %sÎÅÐÒÁ×ÉÌØÎÏ ÚÁÄÁÎÁ ÐÏÚÉÃÉÑ ÐÏÄËÌÁÄËÉ: %sËÏÄÙ (ÄÅÓÑÔÉÞÎÙÅ) ÐÒÏÐÕÝÅÎÎÙÈ ÓÉÍ×ÏÌÏ×: ÎÅÏÂÈÏÄÉÍÏ ÐÅÞÁÔÁÔØ ÈÏÔÑ ÂÙ ÏÄÎÕ ÓÔÒÏËÕ ÎÁ ËÁÖÄÏÊ ÓÔÒÁÎÉÃÅ: %s×Ù×ÏÄ ÎÅ ÐÒÏÉÚ×ÅÄÅÎ ÄÅÓÑÔÉÞÎÙÅ ËÏÄÙ ÎÅÐÅÞÁÔÎÙÈ ÓÉÍ×ÏÌÏ×: ÞÉÓÌÏ ËÏÌÏÎÏË ÄÏÌÖÎÏ ÂÙÔØ ÂÏÌØÛÅ ÎÕÌÑ×Ù×ÏÄ ÚÁÐÉÓÁÎ × %s ×Ù×ÏÄ ÎÁÐÒÁ×ÌÅÎ ÎÁ %s ÏÂÒÁÂÁÔÙ×ÁÅÔÓÑ ÆÁÊÌ %s "%s" ÏÂÒÁÂÁÔÙ×ÁÀÔÓÑ ×ÓÅ ×ÈÏÄÎÙÅ ÆÁÊÌÙ Ó ×ÙÈÏÄÎÙÍ ÑÚÙËÏÍ `%s' ÐÒÉÎÔÅÒÏÂÒÁÂÏÔËÁ ÆÁÊÌÁ "%s"... ÞÔÅÎÉÅ AFM-ÉÎÆÏÒÍÁÃÉÉ ÄÌÑ ÛÒÉÆÔÁ "%s" ÕÓÔÁÎÏ×ÉÔØ ÎÏ×ÙÅ ÒÁÚÍÅÒÙ ÐÏÌÅÊ ÄÌÑ ÆÏÒÍÁÔÁ `%s' (%dx%d): ÌÎX=%d, ÌÎY=%d, Ð×X=%d, Ð×Y=%d ÎÏÍÅÒ ÆÒÁÇÍÅÎÔÁ ÄÏÌÖÅÎ ÂÙÔØ ÂÏÌØÛÅ ÎÕÌÑÓÔÁÎÄÁÒÔÎÙÊ ×Ù×ÏÄÓÉÎÔÁËÓÉÞÅÓËÁÑ ÏÛÉÂËÁ × ËÌÀÞÅ %s="%s": ÎÅÔ ÚÁËÒÙ×ÁÀÝÉÈ ËÁ×ÙÞÅË: %cÓÌÉÛËÏÍ ÄÌÉÎÎÙÊ ÁÒÇÕÍÅÎÔ ÄÌÑ ÄÉÒÅËÔÉ×Ù %s: %.*sÓÌÉÛËÏÍ ÄÌÉÎÎÏÅ ÉÍÑ ÆÁÊÌÁ ÄÌÑ ÄÉÒÅËÔÉ×Ù ^@epsf: %.*sÕÓÅÞÅÎÙÐÒÅÖÄÅ×ÒÅÍÅÎÎÙÊ ËÏÎÅà ÆÁÊÌÁ ÐÒÉ ÞÔÅÎÉÉ ÄÉÒÅËÔÉ×Ù ^@epsfËÏÄÉÒÏ×ËÁ %s ÎÅÉÚ×ÅÓÔÎÁÎÅÉÚ×ÅÓÔÎÁÑ ÕÐÒÁ×ÌÑÀÝÁÑ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ: %sÏÐÒÅÄÅÌÑÅÍÁÑ ÐÏÌØÚÏ×ÁÔÅÌÅÍ ËÏÄÉÒÏ×ËÁ ÛÒÉÆÔÁ ÍÏÖÅÔ ÂÙÔØ ÔÏÌØËÏ ÓÉÓÔÅÍÎÏÊ ÐÏ ÕÍÏÌÞÁÎÉÀ ÉÌÉ `ps'ÐÒÅÄÕÐÒÅÖÄÅÎÉÅ: ÓÌÅÄÕÀÝÉÅ ËÌÀÞÉ ÉÚ ÐÅÒÅÍÅÎÎÏÊ ÓÒÅÄÙ %s ÎÅ ÂÙÌÉ ÉÓÐÏÌØÚÏ×ÁÎÙ: ÐÒÅÄÕÐÒÅÖÄÅÎÉÅ: ÐÅÒÅÏÐÒÅÄÅÌÅÎÉÅ ÓÏÓÔÏÑÎÉÑ `%s'ÒÁÚÂÉÔÙxcalloc(): ÎÅ×ÏÚÍÏÖÎÏ ×ÙÄÅÌÉÔØ %d ÂÁÊÔ xmalloc(): ÎÅ×ÏÚÍÏÖÎÏ ×ÙÄÅÌÉÔØ %d ÂÁÊÔ xrealloc(): ÎÅ×ÏÚÍÏÖÎÏ ÐÅÒÅÒÁÓÐÒÅÄÅÌÉÔØ %d ÂÁÊÔ enscript-1.6.5.90/po/stamp-po0000644000175000017500000000001211606344232012615 00000000000000timestamp enscript-1.6.5.90/po/sv.gmo0000644000175000017500000006232111606344232012301 00000000000000Þ•Ã4L hi mx€ £¯ ¿ÍΛë;‡Ã × ä$ñI`)€+ª&Ö"ý# CDˆ¢'¼!ä,3%Q,w-¤ Ò&ó, ?1K#}$¡)Æð  *!Km­%Í#ó$ "< -_  )¦ "Ð ,ó & !G!!d!/†!'¶!)Þ!5">"2^"‘"¯"4Î"3#)7#/a#,‘#3¾#/ò#-"$/P$0€$'±$&Ù$+%=,%.j%&™%$À%Iå%)/&Y&p&&©&$Á&æ&ø&H'\)$m)’)›)#º)Þ)ù)*@*T*&g*Ž* *²* Ä*vÑ*iH,#²,Ö,$ò,)-&A-)h--’-2À-ó-(.4;./p. . ¾.-ß.! /1//a/%€/¦/Æ/!ã/%0+0B0 X0y0'—0¿0=È01! 1#B1f1y1+˜1Ä1 ß1 2%!2$G2xl2!å2-3%53?[3(›3Ä3)ä34&4F4#[4.4®4)Ã4*í45+5>59\5–5ž5·5I×5!6A6CH6%Œ6*²6 Ý6+ç67(7;C7H7È7ç7&ï7&8)=8pg8Ø9 Ü9ç9ï9 : :: .:<:`B<¾£>FbA©D ¾DÌD$ÞDNE(RE*{E/¦E*ÖE%F#'F9KF…F¡F(»F0äF0GFG%dG0ŠG1»G íG&H5HEH VH0bH-“H.ÁH2ðH#I$CI'hI(I¹IÖIïI(J+1J)]J$‡J0¬JÝJ,ùJ$&K-KK1yK«K!ÊK6ìK(#L+LL0xL'©L1ÑLMM<>M3{M/¯M+ßM- N39N-mN(›N+ÄN.ðN&O&FO.mOBœO*ßO) P%4P9ZP*”P¿PÕPîP Q%&QLQaQT|Q ÑS,ÝS T"T$:T_T{T„T=TËT'ëTU*UAUXU–gUrþV&qW˜W%·W.ÝW* X,7X-dX4’X#ÇX+ëXLY3dY"˜Y$»Y;àY%Z6BZ#yZ/Z0ÍZ,þZ,+['X[€[œ[#¸[ Ü[)ý['\@/\p\$\0²\ã\ ø\*]D]#`]"„]1§]0Ù]v ^0^=²^4ð^I%_<o_#¬_CÐ_&`!;`]` q`.’`Á`'Ù`*a,a@aXa7va®a·a*ÐaMûa$Ib nb>zb2¹b4ìb !c;+cgc"ycDœcBác'$d Ld'Vd'~d*¦dYp5 P‰lZ¥\~h{diE¶–'@¢‘1 M²kWA†zª)wT %.B©šCÁ›In‡(Ÿ;±º¯ÃÀf?£‚ž:27…°_}Q´+3¹!|m»`Š“R®UNœ•uŒ"^¦&x¼s8S=$e¬½ ™#­a‹«,D-¤ˆƒK¨bc¸’F¡<”V4r„t€Hj¿ 6]˜L/µ Žv*³g§9 [GXq¾·O>oJÂ0—y %s ../../lib ../lib ./configure --prefix=PREFIX make make check make distclean make install --help-highlight describe all supported --highlight languages and file formats --highlight-bar-gray=NUM print highlight bars with gray NUM (0 - 1) --list-media list names of all known media --margins=LEFT:RIGHT:TOP:BOTTOM adjust page marginals --mark-wrapped-lines[STYLE] mark wrapped lines in the output with STYLE --non-printable-format=FMT specify how non-printable chars are printed --nup-columnwise layout pages in the N-up printing columnwise --nup-xpad=NUM set the page x-padding of N-up printing to NUM --nup-ypad=NUM set the page y-padding of N-up printing to NUM --page-label-format=FMT set page label format to FMT --ps-level=LEVEL set the PostScript language level that enscript should use --printer-options=OPTIONS pass extra options to the printer command --rotate-even-pages rotate even-numbered pages 180 degrees --slice=NUM print vertical slice NUM --style=STYLE use highlight style STYLE --swap-even-page-margins swap left and right side margins for each even numbered page --toc print table of contents --ul-angle=ANGLE set underlay text's angle to ANGLE --ul-font=NAME print underlays with font NAME --ul-gray=NUM print underlays with gray value NUM --ul-position=POS set underlay's starting position to POS --ul-style=STYLE print underlays with style STYLE --word-wrap wrap long lines from word boundaries -L, --lines-per-page=NUM specify how many lines are printed on each page -m, --mail send mail upon completion -M, --media=NAME use output media NAME -n, --copies=NUM print NUM copies of each page -N, --newline=NL select the newline character. Possible values for NL are: n (`\n') and r (`\r'). -o an alias for option --output -O, --missing-characters list missing characters -p, --output=FILE leave output to file FILE. If FILE is `-', leave output to stdout. -P, --printer=NAME print output to printer NAME -q, --quiet, --silent be really quiet -r, --landscape print in landscape mode -R, --portrait print in portrait mode option %d = "%s" left in %s sent to %s $3v $-40N $3% pages $4L lines $E $C%s: FATAL ERROR: States version %s or higher is required for this script %s: autoloading `%s' from `%s' %s: couldn't create output file "%s": %s %s: couldn't open definition file `%s': %s %s: couldn't open input file `%s': %s %s: couldn't open output file "%s"%s: error: undefined variable `%s' %s: illegal newline character specifier: '%s': expected 'n' or 'r' %s: illegal option -- %c %s: invalid option -- %c %s: malformed variable definition "%s" %s: no closing ')' for $() 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: ouf of memory%s: out of memory %s: panic: %s: primitive `%s': too few arguments for format %s: too long format for $D{} escape%s: too long format for %%D{} escape%s: too long variable name for $() escape%s: undefined state `%s' %s: undefined super state `%s' %s: unknown `$' escape `%c' (%d)%s: unknown `%%' escape `%c' (%d)%s: unknown warning level `%s' %s: unrecognized option `%c%s' %s: unrecognized option `--%s' %s: warning: font height is negative %s: warning: font size is negative %s: warning: font width is negative %s:%d: %%FooterHeight: no argument%s:%d: %%Format: name "%s" is already defined%s:%d: %%Format: no name%s:%d: %%Format: too long name, maxlen=%d%s:%d: %%HeaderHeight: no argument%s:%d: %s: argument %d doesn't match format %s:%d: %s: couldn't define state `%s' %s:%d: %s: illegal argument %s:%d: %s: illegal argument type %s:%d: %s: illegal regexp character syntax: %c %s:%d: %s: illegal type specifier `%c' %s:%d: %s: malformed version string `%s' %s:%d: %s: no extra options can be specified for %%s %s:%d: %s: offset out of range %s:%d: %s: start offset is bigger than end offset %s:%d: %s: too few arguments %s:%d: %s: too many arguments %s:%d: couldn't compile regular expression "%s": %s %s:%d: error: array reference index is not integer %s:%d: error: couldn't set variable `%s' %s:%d: error: expression between illegal types %s:%d: error: illegal lvalue for assignment %s:%d: error: illegal rvalue for string assignment %s:%d: error: illegal type for array reference %s:%d: error: negative array reference index %s:%d: error: too few arguments for subroutine %s:%d: error: too many arguments for subroutine %s:%d: error: undefined procedure `%s' %s:%d: error: undefined variable `%s' %s:%d: warning: redefining subroutine `%s' EPS file "%s" contains malformed %%%%BoundingBox row: "%.*s" EPS file "%s" does not start with "%%!" magic EPS file "%s" is not a valid EPS file EPS file "%s" is too large for page Highlighting is supported for the following languages and file formats: I did also try the following directories:Invalid back referenceInvalid character class nameInvalid collation characterInvalid content of \{\}Invalid preceding regular expressionInvalid range endInvalid regular expressionLong-only options: --color[=bool] create color outputs with states --continuous-page-numbers count page numbers across input files. Don't restart numbering at beginning of each file. --download-font=NAME download font NAME --extended-return-values enable extended return values --filter-stdin=NAME specify how stdin is shown to the input filter --footer=FOOTER set page footer --h-column-height=HEIGHT set the horizontal column height to HEIGHT --help print this help and exit Memory exhaustedN-up argument must be power of 2: %dNo matchNo previous regular expressionPremature end of regular expressionRegular expression too bigSuccessTable of ContentsThis is probably an installation error. Please, try to rebuild:Trailing backslashTry `%s --help' for more information. Unmatched ( or \(Unmatched ) or \)Unmatched [ or [^Unmatched \{Usage: %s [OPTION]... FILE... Mandatory arguments to long options are mandatory for short options too. -h, --help print this help and exit -p, --output-file=NAME print output to file NAME (default file is font.map). If FILE is `-', leavy output to stdout. -V, --version print version number Usage: %s [OPTION]... [FILE]... Mandatory arguments to long options are mandatory for short options too. couldn't close output file "%s": %scouldn't create AFM librarycouldn't create output file "%s": %scouldn't create temporary divert file: %scouldn't create temporary toc file: %scouldn't find encoding file "%s.enc": %s couldn't find header definition file "%s.hdr"couldn't find header definition file "%s.hdr": %s couldn't find prolog "%s": %s couldn't get passwd entry for uid=%d: %scouldn't open AFM file for font "%s", using default couldn't open AFM file for the default font: %scouldn't open AFM library: %scouldn't open EPS file "%s": %s couldn't open font description file "%s": %s couldn't open input file "%s": %scouldn't open input filter "%s" for file "%s": %scouldn't open printer `%s': %scouldn't read config file "%s/%s": %scouldn't rewind divert file: %scouldn't rewind toc file: %scouldn't stat input file "%s": %sdo not know anything about media "%s"downloading font "%s" error: EOF in commenterror: EOF in regular expressionerror: EOF in string constantfile alignment must be larger than zerofile=%s helper application specification must be single character: %sillegal N-up argument: %dillegal non-printable format "%s"illegal option %c for ^@epsf escapeillegal option: %sillegal page label format "%s"illegal style for wrapped line marker: "%s"illegal underlay style: %sillegal value "%s" for option %sinvalid value "%s" for option %sinvalid value for ^@bggray escape: %sinvalid value for ^@shade escape: %sknown media: name width height llx lly urx ury ------------------------------------------------------------ malformed %s escape: no '{' foundmalformed ^@epsf escape: no ']' after optionsmalformed ^@epsf escape: no '{' foundmalformed argument `%s' for option -W, --option: no comma foundmalformed color spec for ^@%s escape: %smalformed float dimension: "%s"malformed font spec for ^@font escape: %smalformed font spec: %smalformed underlay position: %smissing argument: %smissing character codes (decimal): must print at least one line per each page: %sno output generated non-printable character codes (decimal): number of columns must be larger than zerooutput left in %s output sent to %s passing through %s file "%s" passing through all input files for output language `%s' printerprocessing file "%s"... reading AFM info for font "%s" set new marginals for media `%s' (%dx%d): llx=%d, lly=%d, urx=%d, ury=%d slice must be greater than zerostdoutsyntax error in option string %s="%s": missing end of quotation: %ctoo long argument for %s escape: %.*stoo long file name for ^@epsf escape: %.*struncatedunexpected EOF while scanning ^@epsf escapeunknown encoding: %sunknown special escape: %suser font encoding can be only the system's default or `ps'warning: didn't process following options from environment variable %s: warning: redefining state `%s'wrappedxcalloc(): couldn't allocate %d bytes xmalloc(): couldn't allocate %d bytes xrealloc(): couldn't reallocate %d bytes Project-Id-Version: enscript 1.6.4 Report-Msgid-Bugs-To: bug-enscript@gnu.org POT-Creation-Date: 2011-07-10 16:43+0100 PO-Revision-Date: 2008-01-17 08:20+0100 Last-Translator: Christer Andersson Language-Team: Swedish Language: sv MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit %s ../../lib ../lib ./configure --prefix=PREFIX make make check make distclean make install --help-highlight beskriv alla språk och filformat med stöd för --highlight --highlight-bar-gray=NUM skriv ut markeringsrader med grå NUM (0 - 1) --list-media lista namnen på alla kända media --margins=VÄNSTER:HÖGER:TOPP:BOTTEN justera sidmarginaler --mark-wrapped-lines[STIL] markera radbrutna rader i utdatan med STIL --non-printable-format=FMT ange hur ej utskrivbara tecken ska skrivas ut --nup-columnwise lägg ut sidor i kolumner i N-upp-utskrift --nup-xpad=NUM sätt sidans x-utfyllning för N-upp-utskrift till NUM --nup-ypad=NUM sätt sidans y-utfyllning för N-upp-utskrift till NUM --page-label-format=FMT sätt sidetikettsformatet till FMT --ps-level=NIVÅ sätt PostScript-språknivån som enscript ska använda --printer-options=FLAGGOR skicka med extra flaggor till utskriftskommandot --rotate-even-pages rotera sidor med jämnt nummer 180° --slice=NUM skriv ut vertikal skiva NUM --style=STIL använd markeringsstilen STIL --swap-even-page-margins Byt ut vänster- och högermarginaler för varje sida med jämnt nummer --toc skriv ut innehållsförteckning --ul-angle=VINKEL sätt underlagans textvinkel till VINKEL --ul-font=NAMN skriv ut underlagor med typsnittet NAMN --ul-gray=NUM skriv ut underlagor med gråvärde NUM --ul-position=POS sätt underlagans startposition till POS --ul-style=STIL skriv ut underlagor med stilen STIL --word-wrap radbryt långa rader vid ordgränser -L, --lines-per-page=NUM ange antalet rader som ska skrivas på varje sida -m, --mail skicka ett e-post när det är klart -M, --media=NAMN använd utdataformatet NAMN -n, --copies=NUM skriv ut NUM kopior av varje sida -N, --newline=NR välj nyradstecken. Möjliga värden för NR är: n ("\n") och r ("\r"). -o ett alias för flaggan --output -O, --missing-characters lista saknade tecken -p, --output=FIL lämna utdatan i filen FIL. Om FIL är "-", lämna utdatan till standard ut. -P, --printer=NAMN skriv ut på skrivaren NAMN -q, --quiet, --silent var väldigt tyst -r, --landscape skriv ut i landskapsläge -R, --portrait skriv ut i porträttläge flaggan %d = "%s" lämnad i %s skickad till %s $3v $-40N $3% sidor $4L rader $E $C%s: ÖDESDIGERT FEL: Tillstånd av version %s eller över krävs för detta skript %s: läser in "%s" automatiskt från "%s" %s: kunde inte skapa utdatafilen "%s": %s %s: kunde inte öppna definitionsfilen "%s": %s %s: kunde inte öppna indatafilen "%s": %s %s: kunde inte öppna utdatafilen "%s"%s: fel: odefinierad variabel "%s" %s: otillåtet nyradstecken: "%s"': väntade "n" eller "r" %s: otillåten flagga -- %c %s: ogiltig flagga -- %c %s: felutformad variabeldefinition "%s" %s: ingen avslutande ")" för $()-kontrollsekvens%s: flaggan "%c%s" tillåter inte något argument %s: flaggan "%s" är tvetydig %s: flaggan "%s" kräver ett argument %s: flaggan "--%s" tillåter inte något argument %s: flaggan "-W %s" tillåter inte något argument %s: flaggan "-W %s" är tvetydig %s: flaggan kräver ett argument -- %c %s: minnet slut%s: minnet slut %s: panik: %s: primitiv "%s": för få argument för formatet %s: för långt format för $D{}-kontrollsekvens%s: för långt format för %%D{}-kontrollsekvens%s: för långt variabelnamn för $()-kontrollsekvens%s: odefinierat tillstånd "%s" %s: odefinierat supertillstånd "%s" %s: okänd "$"-kontrollsekvens "%c" (%d)%s: okänd "%%"-kontrollsekvens "%c" (%d)%s: okänd varningsnivå "%s" %s: okänd flagga "%c%s" %s: okänd flagga "--%s" %s: varning: typsnittshöjden är negativ %s: varning: typsnittsstorleken är negativ %s: varning: typsnittsbredden är negativ %s:%d: %%FooterHeight: inga argument%s:%d: %%Format: namnet "%s" är redan definierat%s:%d: %%Format: inget namn%s:%d: %%Format: för långt namn, maxlängd=%d%s:%d: %%HeaderHeight: inga argument%s:%d: %s: argument %d matchar inte formatet %s:%d: %s: kunde inte definiera tillståndet "%s" %s:%d: %s: otillåtet argument %s:%d: %s: otillåten argumenttyp %s:%d: %s: otillåten reguljäruttrycksteckensyntax: %c %s:%d: %s: ogiltig typspecifierare "%c" %s:%d: %s: felutformad versionssträng "%s" %s:%d: %s: inga extra flaggor kan anges för %%s %s:%d: %s: avstånd utanför intervallet %s:%d: %s: startavstånd är större än slutavstånd %s:%d: %s: för få argument %s:%d: %s: för många argument %s:%d kunde inte kompilera det reguljära uttrycket "%s": %s %s:%d: fel: vektorreferensindex är inte ett heltal %s:%d: fel: kunde inte tilldela variabeln "%s" %s:%d: fel: uttryck mellan otillåtna typer %s:%d: fel: otillåtet vvärde för tilldelning %s:%d: fel: otillåtet hvärde för strängtilldelning %s:%d: fel: otillåten typ för vektorreferens %s:%d: fel: negativ vektorreferensindex %s:%d: fel: för få argument för subrutinen %s:%d: fel: för många argument för subrutinen %s:%d: fel: odefinierad procedur "%s" %s:%d: fel: odefinierad variabel "%s" %s:%d: varning: definierar om subrutinen "%s" EPS-filen "%s" innehåller felutformad %%%%BoundingBox-rad: "%.*s" EPS-filen "%s" börjar inte med "%%!"-magi EPS-filen "%s" är inte en giltig EPS-fil EPS-filen "%s" är för stor för sidan Syntaxmarkering stöds för följande språk och filformat: Jag försökte också med följande kataloger:Ogiltig bakåtreferensOgiltigt teckenklassnamnOgiltigt kollationeringsteckenOgiltigt innehåll i \{\}Ogiltigt föregående reguljärt uttryckOgiltigt omfångsslutOgiltigt reguljärt uttryckFlaggor med enbart långa namn: --color[=boolesk] skapa färgutdata med tillstånd --continuous-page-numbers räkna sidnummer över flera indatafiler. Börja inte om numreringen för nya filer. --download-font=NAMN hämta hem typsnittet NAMN --extended-return-values använd utökade returvärden --filter-stdin=NAMN ange hur standard in visas för indatafiltret --footer=SIDFOT sätt sidfoten --h-column-height=HÖJD sätt den horisontella kolumnhöjden till HÖJD --help visa denna hjälptexten och avsluta Minnet slutN-upp-argument måste vara en potens av 2: %dInga träffarInget föregående reguljärt uttryckFör tidigt slut på reguljärt uttryckReguljärt uttryck för stortLyckadesInnehållDet här är förmodligen ett installationsfel. Försök bygga om:Eftersläpande omvänt snedstreckProva "%s --help" för mer information. Obalanserad ( eller \(Obalanserad ) eller \)Obalanserad [ eller [^Obalanserad \{Användning: %s [FLAGGA]... FIL... Obligatoriska argument till långa flaggor är obligatoriska även för de korta. -h, --help visa den här hjälptexten och avsluta -p, --output-file=NAMN skriv utdatan till filen NAMN (standardvalet är font.map). Om FIL är "-" skicka utdatan till stdandard ut. -V, --version visa versionsnummer Användning: %s [FLAGGA]... [FIL]... Obligatoriska argument till långa flaggor är obligatoriska även för de korta. kunde inte stänga utdatafilen "%s": %skunde inte skapa AFM-bibliotekkunde inte skapa utdatafilen "%s": %skunde inte skapa temporär omdirigeringsfil: %skunde inte skapa temporär innehållsfil: %skunde inte hitta kodningsfilen "%s.enc": %s kunde inte hitta huvuddefinitionsfil "%s.hdr"kunde inte hitta huvuddefinitionsfilen "%s.hdr": %s kunde inte hitta prologen "%s": %s kunde inte hämta passwd-post för uid=%d: %skunde inte öppna AFM-fil för typsnittet "%s", använder standardalternativet kunde inte öppna AFM-fil för standardtypsnittet: %skunde inte öppna AFM-bibliotek: %skunde inte öppna EPS-filen "%s": %s kunde inte öppna beskrivningsfilen "%s" för typsnittet: %s kunde inte öppna indatafilen "%s": %skunde inte öppna indatafiltret "%s" för filen "%s": %skunde inte öppna skrivaren "%s": %skunde inte läsa konfigurationsfilen "%s/%s": %skunde inte spola tillbaks omdirigeringsfilen: %skunde inte spola tillbaks innehållsfilen: %skunde inte ta status på indatafilen "%s": %skänner inte till något om formatet "%s"hämtar hem typsnittet "%s" fel: filslut inom kommentarfel: filslut inom reguljärt uttryckfel: filslut inom strängkonstantfilgrupperingen måste vara större än nollfil=%s specifikation av hjälpapplikation måste vara ett enda tecken: %sotillåtet N-upp-argument: %dotillåtet ej utskrivbart-format "%s"otillåten flagga %c för kontrollsekvensen ^@epsfotillåten flagga: %sotillåtet sidetikettsformat "%s"otillåten stil på radbrytningstecken: "%s"otillåten underlagsstil: %sotillåtet värde "%s" för flaggan %sogiltigt värde "%s" för flaggan %sogiltigt värde för kontrollsekvensen ^@bggray: %sogiltigt värde för kontrollsekvensen ^@shade: %skända media: namn bredd höjd nvx nvy öhx öhy ------------------------------------------------------------ felutformad kontrollsekvens %s: ingen "{" hittadfelutformad kontrollsekvens ^@epsf: ingen "]" efter flaggornafelutformad kontrollsekvens ^@epsf: ingen "{" hittadfelformulerat argument "%s" till flaggan -W, --option: inget komma funnetfelutformad färgspecifikation för kontrollsekvensen ^@%s: %sfelutformad flyttalsdimension: "%s"felutformad typsnittsspecifikation för kontrollsekvensen ^@font: %sfelutformad typsnittsspecifikation: %sfelutformad underlagsposition: %sargument saknas: %ssaknade teckenkoder (decimalt): måste skriva ut åtminstone en rad per sida: %singen utdata genererad ej utskrivbara teckenkoder (decimalt): antalet kolumner måste vara större än nollutdata lämnad i %s utdata skickad till %s skickar vidare %s-filen "%s" skickar vidare alla indatafiler för utdataspråket "%s" skrivarebearbetar filen "%s"... läser AFM-information för typsnittet "%s" sätt nya marginaler för formatet "%s" (%d×%d): nvx=%d, nvy=%d, öhx=%d, öhy%d skivnumret måste vara större än nollstandard utsyntaxfel i flaggsträngen %s="%s": saknar slut på citering: %cför långt argument till kontrollsekvensen %s: %.*sför långt filnamn för kontrollsekvensen ^@epsf: %.*savkortadeoväntat filslut vid bearbetning av kontrollsekvensen ^@epsfokänd kodning: %sokänd speciell kontrollsekvens: %sanvändartypsnittskodning kan bara vara systemets standard eller "ps"varning: behandlade inte följande flaggor från miljövariabeln %s: varning: definierar om tillståndet "%s"radbrutnaxcalloc(): kunde inte allokera %d byte xmalloc(): kunde inte allokera %d byte xrealloc(): kunde inte omallokera %d byte enscript-1.6.5.90/po/POTFILES.in0000644000175000017500000000046211606306743012725 00000000000000# List of source files containing translatable strings. # Source files from the compat directory compat/getopt.c compat/xalloc.c compat/regex.c # Enscript source. src/main.c src/psgen.c src/util.c src/mkafmmap.c # States source. states/lex.l states/main.c states/prims.c states/process.c states/utils.c enscript-1.6.5.90/configure.ac0000644000175000017500000000646711606343624013032 00000000000000dnl Process this file with autoconf to produce a configure script. AC_INIT([GNU Enscript],[1.6.5.90],[bug-enscript@gnu.org]) AC_PREREQ([2.61]) AC_CONFIG_SRCDIR([src/gsint.h]) AC_CONFIG_HEADERS([config.h]) AM_INIT_AUTOMAKE AC_PROG_INSTALL AC_PROG_CC AC_USE_SYSTEM_EXTENSIONS AM_C_PROTOTYPES AC_C_CONST AC_FUNC_ALLOCA AC_HEADER_STDC AC_CHECK_HEADERS([string.h stdlib.h unistd.h stdarg.h math.h pwd.h]) AC_CHECK_HEADERS([sys/types.h sys/stat.h]) dnl Check some functions. AC_CHECK_FUNCS(strchr getcwd) AC_REPLACE_FUNCS(strerror memmove memcpy strtoul) AC_FUNC_VPRINTF dnl -lsun is needed on IRIX-4.0 to get the user passwd entry through dnl the yellow pages / NIS. AC_CHECK_LIB(sun, main) dnl Find out where the gethostname() is. AC_CHECK_FUNC(gethostname, , [ AC_CHECK_LIB(nsl, gethostname, LIBS="$LIBS -lnsl", [ AC_CHECK_LIB(socket, gethostname) ]) ]) AC_PROG_RANLIB AC_PROG_YACC AM_PROG_LEX AC_ARG_ENABLE(debug, [ --enable-debug enable debugging], [ echo enabling debugging if test -n "$GCC"; then CFLAGS="$CFLAGS -Wall" fi ]) dnl Define the default output media. AC_ARG_WITH(media, [ --with-media(=MEDIA) use output media Letter (MEDIA), default is A4], if test "X$withval" != "Xno"; then if test "X$withval" = "Xyes"; then ac_cv_value_media='Letter' else ac_cv_value_media=$withval fi else ac_cv_value_media=${MEDIA-A4} fi, ac_cv_value_media=${MEDIA-A4} ) MEDIA=$ac_cv_value_media AC_SUBST(MEDIA) dnl Find the printer spooler command. AC_CHECK_PROG(SPOOLER, lpr, lpr) AC_CHECK_PROG(SPOOLER, lp, lp) dnl user can overwrite this AC_ARG_WITH(spooler, [ --with-spooler=SPOOLER set the printer spooler command], if test "X$withval" != "Xno"; then SPOOLER=$withval fi ) dnl If SPOOLER is still empty, set it to `lpr'. After this, we should dnl be able to compile enscript on HURD. if test "X$SPOOLER" = "X"; then SPOOLER=lpr fi dnl The PostScript language level. PSLEVEL="2" AC_ARG_WITH(ps-level, [ --with-ps-level=LEVEL set the PostScript language level to LEVEL], if test "X$withval" != "Xno"; then PSLEVEL=$withval fi ) AC_SUBST(PSLEVEL) dnl Internationalization. AM_GNU_GETTEXT AM_GNU_GETTEXT_VERSION([0.17]) dnl Path separator character. AC_DEFINE_UNQUOTED([PATH_SEPARATOR], [':'], [Character used to separate path components.]) AC_DEFINE_UNQUOTED([PATH_SEPARATOR_STR], [":"], [Character used to separate path components, as string.]) dnl dnl Scripts dnl dnl diffpp AC_PATH_PROG(PERL, perl) dnl substitutions AC_SUBST(CFLAGS) AC_SUBST(LDFLAGS) AC_CONFIG_FILES([Makefile po/Makefile.in intl/Makefile po/Makefile \ compat/Makefile \ afm/Makefile \ afmlib/Makefile \ src/Makefile \ src/tests/Makefile \ lib/Makefile \ scripts/Makefile \ states/Makefile \ states/hl/Makefile \ states/tests/Makefile \ docs/Makefile \ w32/Makefile]) AC_OUTPUT echo "" echo "Enscript is now configured to your system with the following" echo "user-definable options. Please, check that they are correct and" echo "match to your system's properties." echo "" echo "Option Change with configure's option Current value" echo "---------------------------------------------------------" echo "Media --with-media=MEDIA $MEDIA" echo "Spooler --with-spooler=SPOOLER $SPOOLER" echo "PS level --with-ps-level=LEVEL $PSLEVEL" echo "" enscript-1.6.5.90/88593.txt0000644000175000017500000001522211132443251011761 00000000000000 ISO-8859-3 (ISO Latin3) character set octal hex PostScript HTML entity character ---------------------------------------------------------------------- 000 0x00 non-printable 001 0x01 non-printable 002 0x02 non-printable 003 0x03 non-printable 004 0x04 non-printable 005 0x05 non-printable 006 0x06 non-printable 007 0x07 non-printable 010 0x08 non-printable 011 0x09 non-printable 012 0x0a non-printable 013 0x0b non-printable 014 0x0c non-printable 015 0x0d non-printable 016 0x0e non-printable 017 0x0f non-printable 020 0x10 non-printable 021 0x11 non-printable 022 0x12 non-printable 023 0x13 non-printable 024 0x14 non-printable 025 0x15 non-printable 026 0x16 non-printable 027 0x17 non-printable 030 0x18 non-printable 031 0x19 non-printable 032 0x1a non-printable 033 0x1b non-printable 034 0x1c non-printable 035 0x1d non-printable 036 0x1e non-printable 037 0x1f non-printable 040 0x20 /space 041 0x21 /exclam ! 042 0x22 /quotedbl " " 043 0x23 /numbersign # 044 0x24 /dollar $ 045 0x25 /percent % 046 0x26 /ampersand & & 047 0x27 /quoteright ' 050 0x28 /parenleft ( 051 0x29 /parenright ) 052 0x2a /asterisk * 053 0x2b /plus + 054 0x2c /comma , 055 0x2d /hyphen - 056 0x2e /period . 057 0x2f /slash / 060 0x30 /zero 0 061 0x31 /one 1 062 0x32 /two 2 063 0x33 /three 3 064 0x34 /four 4 065 0x35 /five 5 066 0x36 /six 6 067 0x37 /seven 7 070 0x38 /eight 8 071 0x39 /nine 9 072 0x3a /colon : 073 0x3b /semicolon ; 074 0x3c /less < < 075 0x3d /equal = 076 0x3e /greater > > 077 0x3f /question ? 0100 0x40 /at @ 0101 0x41 /A A 0102 0x42 /B B 0103 0x43 /C C 0104 0x44 /D D 0105 0x45 /E E 0106 0x46 /F F 0107 0x47 /G G 0110 0x48 /H H 0111 0x49 /I I 0112 0x4a /J J 0113 0x4b /K K 0114 0x4c /L L 0115 0x4d /M M 0116 0x4e /N N 0117 0x4f /O O 0120 0x50 /P P 0121 0x51 /Q Q 0122 0x52 /R R 0123 0x53 /S S 0124 0x54 /T T 0125 0x55 /U U 0126 0x56 /V V 0127 0x57 /W W 0130 0x58 /X X 0131 0x59 /Y Y 0132 0x5a /Z Z 0133 0x5b /bracketleft [ 0134 0x5c /backslash \ 0135 0x5d /bracketright ] 0136 0x5e /asciicircum ^ 0137 0x5f /underscore _ 0140 0x60 /quoteleft ` 0141 0x61 /a a 0142 0x62 /b b 0143 0x63 /c c 0144 0x64 /d d 0145 0x65 /e e 0146 0x66 /f f 0147 0x67 /g g 0150 0x68 /h h 0151 0x69 /i i 0152 0x6a /j j 0153 0x6b /k k 0154 0x6c /l l 0155 0x6d /m m 0156 0x6e /n n 0157 0x6f /o o 0160 0x70 /p p 0161 0x71 /q q 0162 0x72 /r r 0163 0x73 /s s 0164 0x74 /t t 0165 0x75 /u u 0166 0x76 /v v 0167 0x77 /w w 0170 0x78 /x x 0171 0x79 /y y 0172 0x7a /z z 0173 0x7b /braceleft { 0174 0x7c /bar | 0175 0x7d /braceright } 0176 0x7e /tilde ~ 0177 0x7f non-printable 0200 0x80 non-printable 0201 0x81 non-printable 0202 0x82 non-printable 0203 0x83 non-printable 0204 0x84 non-printable 0205 0x85 non-printable 0206 0x86 non-printable 0207 0x87 non-printable 0210 0x88 non-printable 0211 0x89 non-printable 0212 0x8a non-printable 0213 0x8b non-printable 0214 0x8c non-printable 0215 0x8d non-printable 0216 0x8e non-printable 0217 0x8f non-printable 0220 0x90 non-printable 0221 0x91 non-printable 0222 0x92 non-printable 0223 0x93 non-printable 0224 0x94 non-printable 0225 0x95 non-printable 0226 0x96 non-printable 0227 0x97 non-printable 0230 0x98 non-printable 0231 0x99 non-printable 0232 0x9a non-printable 0233 0x9b non-printable 0234 0x9c non-printable 0235 0x9d non-printable 0236 0x9e non-printable 0237 0x9f non-printable 0240 0xa0 /space   0241 0xa1 /Hbar ¡ 0242 0xa2 /breve ¢ 0243 0xa3 /sterling £ 0244 0xa4 /currency ¤ 0245 0xa5 /yen ¥ 0246 0xa6 /Hcircumflex ¦ 0247 0xa7 /section § 0250 0xa8 /dieresis ¨ 0251 0xa9 /Idotaccent © 0252 0xaa /Scedilla ª 0253 0xab /Gbreve « 0254 0xac /Jcircumflex ¬ 0255 0xad /hyphen ­ 0256 0xae /registered ® 0257 0xaf /Zdotaccent ¯ 0260 0xb0 /degree ° 0261 0xb1 /hbar ± 0262 0xb2 /twosuperior ² 0263 0xb3 /threesuperior ³ 0264 0xb4 /acute ´ 0265 0xb5 /mu µ 0266 0xb6 /hcircumflex ¶ 0267 0xb7 /bullet · 0270 0xb8 /cedilla ¸ 0271 0xb9 /dotlessi ¹ 0272 0xba /scedilla º 0273 0xbb /gbreve » 0274 0xbc /jcircumflex ¼ 0275 0xbd /onehalf ½ 0276 0xbe /threequarters ¾ 0277 0xbf /zdotaccent ¿ 0300 0xc0 /Agrave À À 0301 0xc1 /Aacute Á Á 0302 0xc2 /Acircumflex   0303 0xc3 /Atilde à à 0304 0xc4 /Adieresis Ä Ä 0305 0xc5 /Cdotaccent Å 0306 0xc6 /Ccircumflex Æ 0307 0xc7 /Ccedilla Ç Ç 0310 0xc8 /Egrave È È 0311 0xc9 /Eacute É É 0312 0xca /Ecircumflex Ê Ê 0313 0xcb /Edieresis Ë Ë 0314 0xcc /Igrave Ì Ì 0315 0xcd /Iacute Í Í 0316 0xce /Icircumflex Î Î 0317 0xcf /Idieresis Ï Ï 0320 0xd0 /Eth Ð Ð 0321 0xd1 /Ntilde Ñ Ñ 0322 0xd2 /Ograve Ò Ò 0323 0xd3 /Oacute Ó Ó 0324 0xd4 /Ocircumflex Ô Ô 0325 0xd5 /Gdotaccent Õ 0326 0xd6 /Odieresis Ö Ö 0327 0xd7 /multiply × 0330 0xd8 /Gcircumflex Ø 0331 0xd9 /Ugrave Ù Ù 0332 0xda /Uacute Ú Ú 0333 0xdb /Ucircumflex Û Û 0334 0xdc /Udieresis Ü Ü 0335 0xdd /Ubreve Ý 0336 0xde /Scircumflex Þ 0337 0xdf /germandbls ß ß 0340 0xe0 /agrave à à 0341 0xe1 /aacute á á 0342 0xe2 /acircumflex â â 0343 0xe3 /atilde ã ã 0344 0xe4 /adieresis ä ä 0345 0xe5 /cdotaccent å 0346 0xe6 /ccircumflex æ 0347 0xe7 /ccedilla ç ç 0350 0xe8 /egrave è è 0351 0xe9 /eacute é é 0352 0xea /ecircumflex ê ê 0353 0xeb /edieresis ë ë 0354 0xec /igrave ì ì 0355 0xed /iacute í í 0356 0xee /icircumflex î î 0357 0xef /idieresis ï ï 0360 0xf0 /eth ð ð 0361 0xf1 /ntilde ñ ñ 0362 0xf2 /ograve ò ò 0363 0xf3 /oacute ó ó 0364 0xf4 /ocircumflex ô ô 0365 0xf5 /gdotaccent õ 0366 0xf6 /odieresis ö ö 0367 0xf7 /divide ÷ 0370 0xf8 /gcircumflex ø 0371 0xf9 /ugrave ù ù 0372 0xfa /uacute ú ú 0373 0xfb /ucircumflex û û 0374 0xfc /udieresis ü ü 0375 0xfd /ubreve ý 0376 0xfe /scircumflex þ 0377 0xff /dotaccent ÿ enscript-1.6.5.90/885910.txt0000644000175000017500000001447111132443251012044 00000000000000 ISO-8859-10 (ISO Latin6) character set octal hex PostScript HTML entity character ---------------------------------------------------------------------- 000 0x00 non-printable 001 0x01 non-printable 002 0x02 non-printable 003 0x03 non-printable 004 0x04 non-printable 005 0x05 non-printable 006 0x06 non-printable 007 0x07 non-printable 010 0x08 non-printable 011 0x09 non-printable 012 0x0a non-printable 013 0x0b non-printable 014 0x0c non-printable 015 0x0d non-printable 016 0x0e non-printable 017 0x0f non-printable 020 0x10 non-printable 021 0x11 non-printable 022 0x12 non-printable 023 0x13 non-printable 024 0x14 non-printable 025 0x15 non-printable 026 0x16 non-printable 027 0x17 non-printable 030 0x18 non-printable 031 0x19 non-printable 032 0x1a non-printable 033 0x1b non-printable 034 0x1c non-printable 035 0x1d non-printable 036 0x1e non-printable 037 0x1f non-printable 040 0x20 /space 041 0x21 /exclam ! 042 0x22 /quotedbl " " 043 0x23 /numbersign # 044 0x24 /dollar $ 045 0x25 /percent % 046 0x26 /ampersand & & 047 0x27 /quoteright ' 050 0x28 /parenleft ( 051 0x29 /parenright ) 052 0x2a /asterisk * 053 0x2b /plus + 054 0x2c /comma , 055 0x2d /hyphen - 056 0x2e /period . 057 0x2f /slash / 060 0x30 /zero 0 061 0x31 /one 1 062 0x32 /two 2 063 0x33 /three 3 064 0x34 /four 4 065 0x35 /five 5 066 0x36 /six 6 067 0x37 /seven 7 070 0x38 /eight 8 071 0x39 /nine 9 072 0x3a /colon : 073 0x3b /semicolon ; 074 0x3c /less < < 075 0x3d /equal = 076 0x3e /greater > > 077 0x3f /question ? 0100 0x40 /at @ 0101 0x41 /A A 0102 0x42 /B B 0103 0x43 /C C 0104 0x44 /D D 0105 0x45 /E E 0106 0x46 /F F 0107 0x47 /G G 0110 0x48 /H H 0111 0x49 /I I 0112 0x4a /J J 0113 0x4b /K K 0114 0x4c /L L 0115 0x4d /M M 0116 0x4e /N N 0117 0x4f /O O 0120 0x50 /P P 0121 0x51 /Q Q 0122 0x52 /R R 0123 0x53 /S S 0124 0x54 /T T 0125 0x55 /U U 0126 0x56 /V V 0127 0x57 /W W 0130 0x58 /X X 0131 0x59 /Y Y 0132 0x5a /Z Z 0133 0x5b /bracketleft [ 0134 0x5c /backslash \ 0135 0x5d /bracketright ] 0136 0x5e /asciicircum ^ 0137 0x5f /underscore _ 0140 0x60 /quoteleft ` 0141 0x61 /a a 0142 0x62 /b b 0143 0x63 /c c 0144 0x64 /d d 0145 0x65 /e e 0146 0x66 /f f 0147 0x67 /g g 0150 0x68 /h h 0151 0x69 /i i 0152 0x6a /j j 0153 0x6b /k k 0154 0x6c /l l 0155 0x6d /m m 0156 0x6e /n n 0157 0x6f /o o 0160 0x70 /p p 0161 0x71 /q q 0162 0x72 /r r 0163 0x73 /s s 0164 0x74 /t t 0165 0x75 /u u 0166 0x76 /v v 0167 0x77 /w w 0170 0x78 /x x 0171 0x79 /y y 0172 0x7a /z z 0173 0x7b /braceleft { 0174 0x7c /bar | 0175 0x7d /braceright } 0176 0x7e /tilde ~ 0177 0x7f non-printable 0200 0x80 non-printable 0201 0x81 non-printable 0202 0x82 non-printable 0203 0x83 non-printable 0204 0x84 non-printable 0205 0x85 non-printable 0206 0x86 non-printable 0207 0x87 non-printable 0210 0x88 non-printable 0211 0x89 non-printable 0212 0x8a non-printable 0213 0x8b non-printable 0214 0x8c non-printable 0215 0x8d non-printable 0216 0x8e non-printable 0217 0x8f non-printable 0220 0x90 non-printable 0221 0x91 non-printable 0222 0x92 non-printable 0223 0x93 non-printable 0224 0x94 non-printable 0225 0x95 non-printable 0226 0x96 non-printable 0227 0x97 non-printable 0230 0x98 non-printable 0231 0x99 non-printable 0232 0x9a non-printable 0233 0x9b non-printable 0234 0x9c non-printable 0235 0x9d non-printable 0236 0x9e non-printable 0237 0x9f non-printable 0240 0xa0 /space     0241 0xa1 /Aogonek ¡ 0242 0xa2 /Emacron ¢ 0243 0xa3 /Gcedilla £ 0244 0xa4 /Imacron ¤ 0245 0xa5 /Itilde ¥ 0246 0xa6 /Kcedilla ¦ 0247 0xa7 /section § § 0250 0xa8 /Lcedilla ¨ 0251 0xa9 /Dbar © 0252 0xaa /Scaron ª 0253 0xab /Tslash « 0254 0xac /Zcaron ¬ 0255 0xad /hyphen ­ ­ 0256 0xae /Ucaron ® 0257 0xaf /Eng ¯ 0260 0xb0 /degree ° ° 0261 0xb1 /aogonek ± 0262 0xb2 /emacron ² 0263 0xb3 /gacute ³ 0264 0xb4 /imacron ´ 0265 0xb5 /itilde µ 0266 0xb6 /kcedilla ¶ 0267 0xb7 /bullet · 0270 0xb8 /lcedilla ¸ 0271 0xb9 /dbar ¹ 0272 0xba /scaron º 0273 0xbb /tslash » 0274 0xbc /zcaron ¼ 0275 0xbd /bar ½ 0276 0xbe /ucaron ¾ 0277 0xbf /eng ¿ 0300 0xc0 /Amacron À 0301 0xc1 /Aacute Á Á 0302 0xc2 /Acircumflex   0303 0xc3 /Atilde à à 0304 0xc4 /Adieresis Ä Ä 0305 0xc5 /Aring Å Å 0306 0xc6 /AE Æ Æ 0307 0xc7 /Iogonek Ç 0310 0xc8 /Ccaron È 0311 0xc9 /Eacute É É 0312 0xca /Eogonek Ê 0313 0xcb /Edieresis Ë Ë 0314 0xcc /Edotaccent Ì 0315 0xcd /Iacute Í Í 0316 0xce /Icircumflex Î Î 0317 0xcf /Imacron Ï 0320 0xd0 /Eth Ð Ð 0321 0xd1 /Ncedilla Ñ 0322 0xd2 /Omacron Ò 0323 0xd3 /Oacute Ó Ó 0324 0xd4 /Ocircumflex Ô Ô 0325 0xd5 /Otilde Õ Õ 0326 0xd6 /Odieresis Ö Ö 0327 0xd7 /Utilde × 0330 0xd8 /Oslash Ø Ø 0331 0xd9 /Uogonek Ù 0332 0xda /Uacute Ú Ú 0333 0xdb /Ucircumflex Û Û 0334 0xdc /Udieresis Ü Ü 0335 0xdd /Yacute Ý Ý 0336 0xde /Thorn &Thorn; Þ 0337 0xdf /germandbls ß ß 0340 0xe0 /amacron à 0341 0xe1 /aacute á á 0342 0xe2 /acircumflex â â 0343 0xe3 /atilde ã ã 0344 0xe4 /adieresis ä ä 0345 0xe5 /aring å å 0346 0xe6 /ae æ æ 0347 0xe7 /iogonek ç 0350 0xe8 /ccaron è 0351 0xe9 /eacute é é 0352 0xea /eogonek ê 0353 0xeb /edieresis ë ë 0354 0xec /edotaccent ì 0355 0xed /iacute í í 0356 0xee /icircumflex î î 0357 0xef /idieresis ï ï 0360 0xf0 /eth ð 0361 0xf1 /ncedilla ñ 0362 0xf2 /omacron ò 0363 0xf3 /kcedilla ó 0364 0xf4 /ocircumflex ô ô 0365 0xf5 /otilde õ õ 0366 0xf6 /odieresis ö ö 0367 0xf7 /utilde ÷ 0370 0xf8 /oslash ø ø 0371 0xf9 /uogonek ù 0372 0xfa /uacute ú ú 0373 0xfb /ucircumflex û û 0374 0xfc /udieresis ü ü 0375 0xfd /yacute ý ý 0376 0xfe /thorn þ þ 0377 0xff /kgreenlandic ÿ enscript-1.6.5.90/ibmpc.txt0000644000175000017500000001371111132443251012354 00000000000000 IBM PC character set octal hex PostScript HTML entity character ---------------------------------------------------------------------- 000 0x00 non-printable 001 0x01 -  002 0x02 -  003 0x03 /heart  004 0x04 /diamond  005 0x05 /club  006 0x06 /spade  007 0x07 non-printable  010 0x08 non-printable  011 0x09 non-printable 012 0x0a non-printable 013 0x0b non-printable 014 0x0c non-printable 015 0x0d non-printable 016 0x0e non-printable  017 0x0f non-printable  020 0x10 -  021 0x11 -  022 0x12 -  023 0x13 -  024 0x14 /paragraph  025 0x15 /section  026 0x16 -  027 0x17 -  030 0x18 /arrowup  031 0x19 /arrowdown  032 0x1a non-printable 033 0x1b non-printable  034 0x1c -  035 0x1d /arrowboth  036 0x1e -  037 0x1f -  040 0x20 /space 041 0x21 /exclam ! 042 0x22 /quotedbl " " 043 0x23 /numbersign # 044 0x24 /dollar $ 045 0x25 /percent % 046 0x26 /ampersand & & 047 0x27 /quoteright ' 050 0x28 /parenleft ( 051 0x29 /parenright ) 052 0x2a /asterisk * 053 0x2b /plus + 054 0x2c /comma , 055 0x2d /hyphen - 056 0x2e /period . 057 0x2f /slash / 060 0x30 /zero 0 061 0x31 /one 1 062 0x32 /two 2 063 0x33 /three 3 064 0x34 /four 4 065 0x35 /five 5 066 0x36 /six 6 067 0x37 /seven 7 070 0x38 /eight 8 071 0x39 /nine 9 072 0x3a /colon : 073 0x3b /semicolon ; 074 0x3c /less < < 075 0x3d /equal = 076 0x3e /greater > > 077 0x3f /question ? 0100 0x40 /at @ 0101 0x41 /A A 0102 0x42 /B B 0103 0x43 /C C 0104 0x44 /D D 0105 0x45 /E E 0106 0x46 /F F 0107 0x47 /G G 0110 0x48 /H H 0111 0x49 /I I 0112 0x4a /J J 0113 0x4b /K K 0114 0x4c /L L 0115 0x4d /M M 0116 0x4e /N N 0117 0x4f /O O 0120 0x50 /P P 0121 0x51 /Q Q 0122 0x52 /R R 0123 0x53 /S S 0124 0x54 /T T 0125 0x55 /U U 0126 0x56 /V V 0127 0x57 /W W 0130 0x58 /X X 0131 0x59 /Y Y 0132 0x5a /Z Z 0133 0x5b /bracketleft [ 0134 0x5c /backslash \ 0135 0x5d /bracketright ] 0136 0x5e /asciicircum ^ 0137 0x5f /underscore _ 0140 0x60 /quoteleft ` 0141 0x61 /a a 0142 0x62 /b b 0143 0x63 /c c 0144 0x64 /d d 0145 0x65 /e e 0146 0x66 /f f 0147 0x67 /g g 0150 0x68 /h h 0151 0x69 /i i 0152 0x6a /j j 0153 0x6b /k k 0154 0x6c /l l 0155 0x6d /m m 0156 0x6e /n n 0157 0x6f /o o 0160 0x70 /p p 0161 0x71 /q q 0162 0x72 /r r 0163 0x73 /s s 0164 0x74 /t t 0165 0x75 /u u 0166 0x76 /v v 0167 0x77 /w w 0170 0x78 /x x 0171 0x79 /y y 0172 0x7a /z z 0173 0x7b /braceleft { 0174 0x7c /bar | 0175 0x7d /braceright } 0176 0x7e /tilde ~ 0177 0x7f -  0200 0x80 /Ccedilla Ç € 0201 0x81 /udieresis ü 0202 0x82 /eacute é ‚ 0203 0x83 /acircumflex â ƒ 0204 0x84 /adieresis ä „ 0205 0x85 /agrave à … 0206 0x86 /aring å † 0207 0x87 /ccedilla ç ‡ 0210 0x88 /ecircumflex ê ˆ 0211 0x89 /edieresis ë ‰ 0212 0x8a /egrave è Š 0213 0x8b /idieresis ï ‹ 0214 0x8c /icircumflex î Œ 0215 0x8d /igrave ì 0216 0x8e /Adieresis Ä Ž 0217 0x8f /Aring Å 0220 0x90 /Eacute É 0221 0x91 /ae æ ‘ 0222 0x92 /AE Æ ’ 0223 0x93 /ocircumflex ô “ 0224 0x94 /odieresis ö ” 0225 0x95 /ograve ò • 0226 0x96 /ucircumflex û – 0227 0x97 /ugrave ù — 0230 0x98 /ydieresis ÿ ˜ 0231 0x99 /Odieresis Ö ™ 0232 0x9a /Udieresis Ü š 0233 0x9b /cent › 0234 0x9c /sterling œ 0235 0x9d /yen 0236 0x9e - ž 0237 0x9f /florin Ÿ 0240 0xa0 /aacute á   0241 0xa1 /iacute í ¡ 0242 0xa2 /oacute ó ¢ 0243 0xa3 /uacute ú £ 0244 0xa4 /ntilde ñ ¤ 0245 0xa5 /Ntilde Ñ ¥ 0246 0xa6 /ordfeminine ¦ 0247 0xa7 /degree § 0250 0xa8 /questiondown ¨ 0251 0xa9 - © 0252 0xaa /logicalnot ª 0253 0xab /onehalf « 0254 0xac /onequarter ¬ 0255 0xad /exclamdown ­ 0256 0xae /guillemotleft ® 0257 0xaf /guillemotright ¯ 0260 0xb0 - ° 0261 0xb1 - ± 0262 0xb2 - ² 0263 0xb3 - ³ 0264 0xb4 - ´ 0265 0xb5 - µ 0266 0xb6 - ¶ 0267 0xb7 - · 0270 0xb8 - ¸ 0271 0xb9 - ¹ 0272 0xba - º 0273 0xbb - » 0274 0xbc - ¼ 0275 0xbd - ½ 0276 0xbe - ¾ 0277 0xbf - ¿ 0300 0xc0 - À 0301 0xc1 - Á 0302 0xc2 -  0303 0xc3 - à 0304 0xc4 - Ä 0305 0xc5 - Å 0306 0xc6 - Æ 0307 0xc7 - Ç 0310 0xc8 - È 0311 0xc9 - É 0312 0xca - Ê 0313 0xcb - Ë 0314 0xcc - Ì 0315 0xcd - Í 0316 0xce - Î 0317 0xcf - Ï 0320 0xd0 - Ð 0321 0xd1 - Ñ 0322 0xd2 - Ò 0323 0xd3 - Ó 0324 0xd4 - Ô 0325 0xd5 - Õ 0326 0xd6 - Ö 0327 0xd7 - × 0330 0xd8 - Ø 0331 0xd9 - Ù 0332 0xda - Ú 0333 0xdb - Û 0334 0xdc - Ü 0335 0xdd - Ý 0336 0xde - Þ 0337 0xdf - ß 0340 0xe0 /alpha à 0341 0xe1 /germandbls ß á 0342 0xe2 /Gamma â 0343 0xe3 /pi ã 0344 0xe4 /Sigma ä 0345 0xe5 /sigma å 0346 0xe6 /mu æ 0347 0xe7 /tau ç 0350 0xe8 /phi è 0351 0xe9 /theta é 0352 0xea /Omega ê 0353 0xeb /delta ë 0354 0xec /infinity ì 0355 0xed /oslash í 0356 0xee /epsilon î 0357 0xef /intersection ï 0360 0xf0 /equivalence ð 0361 0xf1 /plusminus ñ 0362 0xf2 /greaterequal ò 0363 0xf3 /lessequal ó 0364 0xf4 /integraltp ô 0365 0xf5 /integralbt õ 0366 0xf6 /divide ö 0367 0xf7 /approxequal ÷ 0370 0xf8 /degree ø 0371 0xf9 /dotaccent ù 0372 0xfa /dotaccent ú 0373 0xfb /radical û 0374 0xfc - ü 0375 0xfd /twosuperior ý 0376 0xfe - þ 0377 0xff - ÿ enscript-1.6.5.90/88591.txt0000644000175000017500000001434511132443251011764 00000000000000 ISO-8859-1 (ISO Latin1) character set octal hex PostScript HTML entity character ---------------------------------------------------------------------- 000 0x00 non-printable 001 0x01 non-printable 002 0x02 non-printable 003 0x03 non-printable 004 0x04 non-printable 005 0x05 non-printable 006 0x06 non-printable 007 0x07 non-printable 010 0x08 non-printable 011 0x09 non-printable 012 0x0a non-printable 013 0x0b non-printable 014 0x0c non-printable 015 0x0d non-printable 016 0x0e non-printable 017 0x0f non-printable 020 0x10 non-printable 021 0x11 non-printable 022 0x12 non-printable 023 0x13 non-printable 024 0x14 non-printable 025 0x15 non-printable 026 0x16 non-printable 027 0x17 non-printable 030 0x18 non-printable 031 0x19 non-printable 032 0x1a non-printable 033 0x1b non-printable 034 0x1c non-printable 035 0x1d non-printable 036 0x1e non-printable 037 0x1f non-printable 040 0x20 /space 041 0x21 /exclam ! 042 0x22 /quotedbl " " 043 0x23 /numbersign # 044 0x24 /dollar $ 045 0x25 /percent % 046 0x26 /ampersand & & 047 0x27 /quoteright ' 050 0x28 /parenleft ( 051 0x29 /parenright ) 052 0x2a /asterisk * 053 0x2b /plus + 054 0x2c /comma , 055 0x2d /hyphen - 056 0x2e /period . 057 0x2f /slash / 060 0x30 /zero 0 061 0x31 /one 1 062 0x32 /two 2 063 0x33 /three 3 064 0x34 /four 4 065 0x35 /five 5 066 0x36 /six 6 067 0x37 /seven 7 070 0x38 /eight 8 071 0x39 /nine 9 072 0x3a /colon : 073 0x3b /semicolon ; 074 0x3c /less < < 075 0x3d /equal = 076 0x3e /greater > > 077 0x3f /question ? 0100 0x40 /at @ 0101 0x41 /A A 0102 0x42 /B B 0103 0x43 /C C 0104 0x44 /D D 0105 0x45 /E E 0106 0x46 /F F 0107 0x47 /G G 0110 0x48 /H H 0111 0x49 /I I 0112 0x4a /J J 0113 0x4b /K K 0114 0x4c /L L 0115 0x4d /M M 0116 0x4e /N N 0117 0x4f /O O 0120 0x50 /P P 0121 0x51 /Q Q 0122 0x52 /R R 0123 0x53 /S S 0124 0x54 /T T 0125 0x55 /U U 0126 0x56 /V V 0127 0x57 /W W 0130 0x58 /X X 0131 0x59 /Y Y 0132 0x5a /Z Z 0133 0x5b /bracketleft [ 0134 0x5c /backslash \ 0135 0x5d /bracketright ] 0136 0x5e /asciicircum ^ 0137 0x5f /underscore _ 0140 0x60 /quoteleft ` 0141 0x61 /a a 0142 0x62 /b b 0143 0x63 /c c 0144 0x64 /d d 0145 0x65 /e e 0146 0x66 /f f 0147 0x67 /g g 0150 0x68 /h h 0151 0x69 /i i 0152 0x6a /j j 0153 0x6b /k k 0154 0x6c /l l 0155 0x6d /m m 0156 0x6e /n n 0157 0x6f /o o 0160 0x70 /p p 0161 0x71 /q q 0162 0x72 /r r 0163 0x73 /s s 0164 0x74 /t t 0165 0x75 /u u 0166 0x76 /v v 0167 0x77 /w w 0170 0x78 /x x 0171 0x79 /y y 0172 0x7a /z z 0173 0x7b /braceleft { 0174 0x7c /bar | 0175 0x7d /braceright } 0176 0x7e /tilde ~ 0177 0x7f non-printable 0200 0x80 non-printable 0201 0x81 non-printable 0202 0x82 non-printable 0203 0x83 non-printable 0204 0x84 non-printable 0205 0x85 non-printable 0206 0x86 non-printable 0207 0x87 non-printable 0210 0x88 non-printable 0211 0x89 non-printable 0212 0x8a non-printable 0213 0x8b non-printable 0214 0x8c non-printable 0215 0x8d non-printable 0216 0x8e non-printable 0217 0x8f non-printable 0220 0x90 non-printable 0221 0x91 non-printable 0222 0x92 non-printable 0223 0x93 non-printable 0224 0x94 non-printable 0225 0x95 non-printable 0226 0x96 non-printable 0227 0x97 non-printable 0230 0x98 non-printable 0231 0x99 non-printable 0232 0x9a non-printable 0233 0x9b non-printable 0234 0x9c non-printable 0235 0x9d non-printable 0236 0x9e non-printable 0237 0x9f non-printable 0240 0xa0 /space   0241 0xa1 /exclamdown ¡ 0242 0xa2 /cent ¢ 0243 0xa3 /sterling £ 0244 0xa4 /currency ¤ 0245 0xa5 /yen ¥ 0246 0xa6 /brokenbar ¦ 0247 0xa7 /section § 0250 0xa8 /dieresis ¨ 0251 0xa9 /copyright © 0252 0xaa /ordfeminine ª 0253 0xab /guillemotleft « 0254 0xac /logicalnot ¬ 0255 0xad /hyphen ­ 0256 0xae /registered ® 0257 0xaf /macron ¯ 0260 0xb0 /degree ° 0261 0xb1 /plusminus ± 0262 0xb2 /twosuperior ² 0263 0xb3 /threesuperior ³ 0264 0xb4 /acute ´ 0265 0xb5 /mu µ 0266 0xb6 /paragraph ¶ 0267 0xb7 /bullet · 0270 0xb8 /cedilla ¸ 0271 0xb9 /onesuperior ¹ 0272 0xba /ordmasculine º 0273 0xbb /guillemotright » 0274 0xbc /onequarter ¼ 0275 0xbd /onehalf ½ 0276 0xbe /threequarters ¾ 0277 0xbf /questiondown ¿ 0300 0xc0 /Agrave À À 0301 0xc1 /Aacute Á Á 0302 0xc2 /Acircumflex   0303 0xc3 /Atilde à à 0304 0xc4 /Adieresis Ä Ä 0305 0xc5 /Aring Å Å 0306 0xc6 /AE Æ Æ 0307 0xc7 /Ccedilla Ç Ç 0310 0xc8 /Egrave È È 0311 0xc9 /Eacute É É 0312 0xca /Ecircumflex Ê Ê 0313 0xcb /Edieresis Ë Ë 0314 0xcc /Igrave Ì Ì 0315 0xcd /Iacute Í Í 0316 0xce /Icircumflex Î Î 0317 0xcf /Idieresis Ï Ï 0320 0xd0 /Eth Ð Ð 0321 0xd1 /Ntilde Ñ Ñ 0322 0xd2 /Ograve Ò Ò 0323 0xd3 /Oacute Ó Ó 0324 0xd4 /Ocircumflex Ô Ô 0325 0xd5 /Otilde Õ Õ 0326 0xd6 /Odieresis Ö Ö 0327 0xd7 /multiply × 0330 0xd8 /Oslash Ø Ø 0331 0xd9 /Ugrave Ù Ù 0332 0xda /Uacute Ú Ú 0333 0xdb /Ucircumflex Û Û 0334 0xdc /Udieresis Ü Ü 0335 0xdd /Yacute Ý Ý 0336 0xde /Thorn Þ Þ 0337 0xdf /germandbls ß ß 0340 0xe0 /agrave à à 0341 0xe1 /aacute á á 0342 0xe2 /acircumflex â â 0343 0xe3 /atilde ã ã 0344 0xe4 /adieresis ä ä 0345 0xe5 /aring å å 0346 0xe6 /ae æ æ 0347 0xe7 /ccedilla ç ç 0350 0xe8 /egrave è è 0351 0xe9 /eacute é é 0352 0xea /ecircumflex ê ê 0353 0xeb /edieresis ë ë 0354 0xec /igrave ì ì 0355 0xed /iacute í í 0356 0xee /icircumflex î î 0357 0xef /idieresis ï ï 0360 0xf0 /eth ð ð 0361 0xf1 /ntilde ñ ñ 0362 0xf2 /ograve ò ò 0363 0xf3 /oacute ó ó 0364 0xf4 /ocircumflex ô ô 0365 0xf5 /otilde õ õ 0366 0xf6 /odieresis ö ö 0367 0xf7 /divide ÷ 0370 0xf8 /oslash ø ø 0371 0xf9 /ugrave ù ù 0372 0xfa /uacute ú ú 0373 0xfb /ucircumflex û û 0374 0xfc /udieresis ü ü 0375 0xfd /yacute ý ý 0376 0xfe /thorn þ þ 0377 0xff /ydieresis ÿ ÿ enscript-1.6.5.90/compat/0000755000175000017500000000000011606344227012072 500000000000000enscript-1.6.5.90/compat/Makefile.am0000644000175000017500000000243411606313015014040 00000000000000# # Makefile template for the compat libaray. # Copyright (c) 1995-1999 Markku Rossi. # # Author: Markku Rossi # # # This file is part of GNU Enscript. # # Enscript is free software: you can redistribute 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. # # Enscript is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Enscript. If not, see . # AUTOMAKE_OPTIONS = no-dependencies noinst_LIBRARIES = libcompat.a libcompat_a_SOURCES = getopt.c getopt1.c xalloc.c regex.c libcompat_a_LIBADD = @LIBOBJS@ @ALLOCA@ libcompat_a_DEPENDENCIES = @LIBOBJS@ @ALLOCA@ libcompat_a_SOURCES_windelta = \ +../w32/gethostname.c \ +../w32/getpwd.c \ +../w32/getuid.c noinst_HEADERS = getopt.h regex.h xalloc.h EXTRA_DIST = ChangeLog.old strerror.c memmove.c memcpy.c strtol.c \ strtoul.c gettext.h INCLUDES = -I$(srcdir)/../intl -I../intl INCLUDES_windelta = +-I../w32 enscript-1.6.5.90/compat/gettext.h0000644000175000017500000002311711606320671013650 00000000000000/* Convenience header for conditional use of GNU . Copyright (C) 1995-1998, 2000-2002, 2004-2006, 2009 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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 /* You can set the DEFAULT_TEXT_DOMAIN macro to specify the domain used by the gettext() and ngettext() macros. This is an alternative to calling textdomain(), and is useful for libraries. */ # ifdef DEFAULT_TEXT_DOMAIN # undef gettext # define gettext(Msgid) \ dgettext (DEFAULT_TEXT_DOMAIN, Msgid) # undef ngettext # define ngettext(Msgid1, Msgid2, N) \ dngettext (DEFAULT_TEXT_DOMAIN, Msgid1, Msgid2, N) # endif #else /* Solaris /usr/include/locale.h includes /usr/include/libintl.h, which chokes if dcgettext is defined as a macro. So include it now, to make later inclusions of 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 /* Many header files from the libstdc++ coming with g++ 3.3 or newer include , which chokes if dcgettext is defined as a macro. So include it now, to make later inclusions of a NOP. */ #if defined(__cplusplus) && defined(__GNUG__) && (__GNUC__ >= 3) # include # if (__GLIBC__ >= 2) || _GLIBCXX_HAVE_LIBINTL_H # include # endif #endif /* Disabled NLS. The casts to 'const char *' serve the purpose of producing warnings for invalid uses of the value returned from these functions. On pre-ANSI systems without 'const', the config.h file is supposed to contain "#define const". */ # undef gettext # define gettext(Msgid) ((const char *) (Msgid)) # undef dgettext # define dgettext(Domainname, Msgid) ((void) (Domainname), gettext (Msgid)) # undef dcgettext # define dcgettext(Domainname, Msgid, Category) \ ((void) (Category), dgettext (Domainname, Msgid)) # undef ngettext # define ngettext(Msgid1, Msgid2, N) \ ((N) == 1 \ ? ((void) (Msgid2), (const char *) (Msgid1)) \ : ((void) (Msgid1), (const char *) (Msgid2))) # undef dngettext # define dngettext(Domainname, Msgid1, Msgid2, N) \ ((void) (Domainname), ngettext (Msgid1, Msgid2, N)) # undef dcngettext # define dcngettext(Domainname, Msgid1, Msgid2, N, Category) \ ((void) (Category), dngettext(Domainname, Msgid1, Msgid2, N)) # undef textdomain # define textdomain(Domainname) ((const char *) (Domainname)) # undef bindtextdomain # define bindtextdomain(Domainname, Dirname) \ ((void) (Domainname), (const char *) (Dirname)) # undef bind_textdomain_codeset # define bind_textdomain_codeset(Domainname, Codeset) \ ((void) (Domainname), (const char *) (Codeset)) #endif /* A pseudo function call that serves as a marker for the automated extraction of messages, but does not call gettext(). The run-time translation is done at a different place in the code. The argument, String, should be a literal string. Concatenated strings and other string expressions won't work. The macro's expansion is not parenthesized, so that it is suitable as initializer for static 'char[]' or 'const char[]' variables. */ #define gettext_noop(String) String /* The separator between msgctxt and msgid in a .mo file. */ #define GETTEXT_CONTEXT_GLUE "\004" /* Pseudo function calls, taking a MSGCTXT and a MSGID instead of just a MSGID. MSGCTXT and MSGID must be string literals. MSGCTXT should be short and rarely need to change. The letter 'p' stands for 'particular' or 'special'. */ #ifdef DEFAULT_TEXT_DOMAIN # define pgettext(Msgctxt, Msgid) \ pgettext_aux (DEFAULT_TEXT_DOMAIN, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES) #else # define pgettext(Msgctxt, Msgid) \ pgettext_aux (NULL, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES) #endif #define dpgettext(Domainname, Msgctxt, Msgid) \ pgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES) #define dcpgettext(Domainname, Msgctxt, Msgid, Category) \ pgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, Category) #ifdef DEFAULT_TEXT_DOMAIN # define npgettext(Msgctxt, Msgid, MsgidPlural, N) \ npgettext_aux (DEFAULT_TEXT_DOMAIN, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES) #else # define npgettext(Msgctxt, Msgid, MsgidPlural, N) \ npgettext_aux (NULL, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES) #endif #define dnpgettext(Domainname, Msgctxt, Msgid, MsgidPlural, N) \ npgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES) #define dcnpgettext(Domainname, Msgctxt, Msgid, MsgidPlural, N, Category) \ npgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, Category) #ifdef __GNUC__ __inline #else #ifdef __cplusplus inline #endif #endif static const char * pgettext_aux (const char *domain, const char *msg_ctxt_id, const char *msgid, int category) { const char *translation = dcgettext (domain, msg_ctxt_id, category); if (translation == msg_ctxt_id) return msgid; else return translation; } #ifdef __GNUC__ __inline #else #ifdef __cplusplus inline #endif #endif static const char * npgettext_aux (const char *domain, const char *msg_ctxt_id, const char *msgid, const char *msgid_plural, unsigned long int n, int category) { const char *translation = dcngettext (domain, msg_ctxt_id, msgid_plural, n, category); if (translation == msg_ctxt_id || translation == msgid_plural) return (n == 1 ? msgid : msgid_plural); else return translation; } /* The same thing extended for non-constant arguments. Here MSGCTXT and MSGID can be arbitrary expressions. But for string literals these macros are less efficient than those above. */ #include #define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS \ (((__GNUC__ >= 3 || __GNUG__ >= 2) && !__STRICT_ANSI__) \ /* || __STDC_VERSION__ >= 199901L */ ) #if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS #include #endif #define pgettext_expr(Msgctxt, Msgid) \ dcpgettext_expr (NULL, Msgctxt, Msgid, LC_MESSAGES) #define dpgettext_expr(Domainname, Msgctxt, Msgid) \ dcpgettext_expr (Domainname, Msgctxt, Msgid, LC_MESSAGES) #ifdef __GNUC__ __inline #else #ifdef __cplusplus inline #endif #endif static const char * dcpgettext_expr (const char *domain, const char *msgctxt, const char *msgid, int category) { size_t msgctxt_len = strlen (msgctxt) + 1; size_t msgid_len = strlen (msgid) + 1; const char *translation; #if _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS char msg_ctxt_id[msgctxt_len + msgid_len]; #else char buf[1024]; char *msg_ctxt_id = (msgctxt_len + msgid_len <= sizeof (buf) ? buf : (char *) malloc (msgctxt_len + msgid_len)); if (msg_ctxt_id != NULL) #endif { memcpy (msg_ctxt_id, msgctxt, msgctxt_len - 1); msg_ctxt_id[msgctxt_len - 1] = '\004'; memcpy (msg_ctxt_id + msgctxt_len, msgid, msgid_len); translation = dcgettext (domain, msg_ctxt_id, category); #if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS if (msg_ctxt_id != buf) free (msg_ctxt_id); #endif if (translation != msg_ctxt_id) return translation; } return msgid; } #define npgettext_expr(Msgctxt, Msgid, MsgidPlural, N) \ dcnpgettext_expr (NULL, Msgctxt, Msgid, MsgidPlural, N, LC_MESSAGES) #define dnpgettext_expr(Domainname, Msgctxt, Msgid, MsgidPlural, N) \ dcnpgettext_expr (Domainname, Msgctxt, Msgid, MsgidPlural, N, LC_MESSAGES) #ifdef __GNUC__ __inline #else #ifdef __cplusplus inline #endif #endif static const char * dcnpgettext_expr (const char *domain, const char *msgctxt, const char *msgid, const char *msgid_plural, unsigned long int n, int category) { size_t msgctxt_len = strlen (msgctxt) + 1; size_t msgid_len = strlen (msgid) + 1; const char *translation; #if _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS char msg_ctxt_id[msgctxt_len + msgid_len]; #else char buf[1024]; char *msg_ctxt_id = (msgctxt_len + msgid_len <= sizeof (buf) ? buf : (char *) malloc (msgctxt_len + msgid_len)); if (msg_ctxt_id != NULL) #endif { memcpy (msg_ctxt_id, msgctxt, msgctxt_len - 1); msg_ctxt_id[msgctxt_len - 1] = '\004'; memcpy (msg_ctxt_id + msgctxt_len, msgid, msgid_len); translation = dcngettext (domain, msg_ctxt_id, msgid_plural, n, category); #if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS if (msg_ctxt_id != buf) free (msg_ctxt_id); #endif if (!(translation == msg_ctxt_id || translation == msgid_plural)) return translation; } return (n == 1 ? msgid : msgid_plural); } #endif /* _LIBGETTEXT_H */ enscript-1.6.5.90/compat/ChangeLog.old0000644000175000017500000000233211401303365014330 000000000000002008-01-01 Tim Retout * ChangeLog: Add copyright notice at end. 1998-10-20 Markku Rossi * strerror.c: Removed the inclusion of `stdio.h'. * regex.c: On Apple environment, add __private_extern__ before symbols that conflict with the system's libc. 1998-06-25 Markku Rossi * Makefile.am: Added strtoul() replacement. The source files strto{u,}l.c are borrowed from the glibc-2.0. 1997-08-27 Markku Rossi * regex.c (re_set_character_syntax): New function to modify the character syntax table. 1997-07-03 Markku Rossi * Updated regex.{c,h} and getopt*.{c,h} files to the latest versions found from GNU libc. 1997-01-23 Markku Rossi * Makefile.am: Added memmove and memcpy replacements (from textutils). 1996-05-06 Markku Rossi * Makefile.am (EXTRA_DIST): Added EXTRA_DIST files to the distribution. 1996-03-14 Markku Rossi * Created this file. Copyright (C) 1996, 1997, 1998, 2008 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. enscript-1.6.5.90/compat/memmove.c0000644000175000017500000000117211132443251013613 00000000000000/* memmove.c -- copy memory. Copy LENGTH bytes from SOURCE to DEST. Does not null-terminate. In the public domain. By David MacKenzie . */ #ifdef HAVE_CONFIG_H #include #endif void memmove (dest, source, length) char *dest; const char *source; unsigned length; { if (source < dest) /* Moving from low mem to hi mem; start at end. */ for (source += length, dest += length; length; --length) *--dest = *--source; else if (source != dest) /* Moving from hi mem to low mem; start at beginning. */ for (; length; --length) *dest++ = *source++; } enscript-1.6.5.90/compat/strtol.c0000644000175000017500000002066611132443251013506 00000000000000/* strtol - Convert string representation of a number into an integer value. Copyright (C) 1991, 92, 94, 95, 96, 97 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 2 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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 `strtouq', operating on unsigned integers. */ #ifndef UNSIGNED # define UNSIGNED 0 # define INT LONG int #else # define INT unsigned LONG int #endif /* Determine the name. */ #if UNSIGNED # ifdef USE_WIDE_CHAR # ifdef QUAD # define strtol wcstouq # else # define strtol wcstoul # endif # else # ifdef QUAD # define strtol strtouq # else # define strtol strtoul # endif # endif #else # ifdef USE_WIDE_CHAR # ifdef QUAD # define strtol wcstoq # else # define strtol wcstol # endif # else # ifdef QUAD # define strtol strtoq # endif # endif #endif /* If QUAD is defined, we are defining `strtoq' or `strtouq', operating on `long long int's. */ #ifdef QUAD # define LONG long long # undef LONG_MIN # define LONG_MIN LONG_LONG_MIN # undef LONG_MAX # define LONG_MAX LONG_LONG_MAX # undef ULONG_MAX # define ULONG_MAX ULONG_LONG_MAX # 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 ULONG_MAX # define 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 #endif #ifdef USE_WIDE_CHAR # include # include # define L_(Ch) L##Ch # define UCHAR_TYPE wint_t # define STRING_TYPE wchar_t # define ISSPACE(Ch) iswspace (Ch) # define ISALPHA(Ch) iswalpha (Ch) # define TOUPPER(Ch) towupper (Ch) #else # define L_(Ch) Ch # define UCHAR_TYPE unsigned char # define STRING_TYPE char # define ISSPACE(Ch) isspace (Ch) # define ISALPHA(Ch) isalpha (Ch) # define TOUPPER(Ch) toupper (Ch) #endif #ifdef __STDC__ # 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) const STRING_TYPE *nptr; STRING_TYPE **endptr; int base; int group; { 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 /* The thousands character of the current locale. */ wchar_t thousands; /* 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 (mbtowc (&thousands, _NL_CURRENT (LC_NUMERIC, THOUSANDS_SEP), strlen (_NL_CURRENT (LC_NUMERIC, THOUSANDS_SEP))) <= 0) thousands = (wchar_t) *_NL_CURRENT (LC_NUMERIC, THOUSANDS_SEP); 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; if (base == 16 && s[0] == L_('0') && TOUPPER (s[1]) == L_('X')) s += 2; /* If BASE is zero, figure it out ourselves. */ if (base == 0) if (*s == L_('0')) { if (TOUPPER (s[1]) == L_('X')) { s += 2; base = 16; } else base = 8; } else 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 = ULONG_MAX / (unsigned LONG int) base; cutlim = 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) (LONG_MIN + 1)) + 1 : (unsigned LONG int) LONG_MAX)) overflow = 1; #endif if (overflow) { __set_errno (ERANGE); #if UNSIGNED return ULONG_MAX; #else return negative ? LONG_MIN : 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) const STRING_TYPE *nptr; STRING_TYPE **endptr; int base; { return INTERNAL (strtol) (nptr, endptr, base, 0); } enscript-1.6.5.90/compat/xalloc.h0000644000175000017500000000242211132443251013434 00000000000000/* * Non-failing memory allocation routines. * 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 2, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; see the file COPYING. If not, write to * the Free Software Foundation, 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. */ #ifndef XALLOC_H #define XALLOC_H #ifndef ___P #if PROTOTYPES #define ___P(protos) protos #else /* no PROTOTYPES */ #define ___P(protos) () #endif /* no PROTOTYPES */ #endif void *xmalloc ___P ((size_t size)); void *xcalloc ___P ((size_t num, size_t size)); void *xrealloc ___P ((void *ptr, size_t size)); void xfree ___P ((void *ptr)); char *xstrdup ___P ((char *)); #endif /* XALLOC_H */ enscript-1.6.5.90/compat/alloca.c0000644000175000017500000003363211132443251013407 00000000000000/* 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 HAVE_STRING_H #include #endif #ifdef HAVE_STDLIB_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 (size) 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. */ if (new == 0) abort(); ((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 2 */ enscript-1.6.5.90/compat/memcpy.c0000644000175000017500000000052011132443251013434 00000000000000/* 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; } enscript-1.6.5.90/compat/getopt.c0000644000175000017500000007005411132443251013455 00000000000000/* Getopt for GNU. NOTE: getopt is now part of the C library, so if you don't know what "Keep this file name-space clean" means, talk to roland@gnu.ai.mit.edu before changing it! Copyright (C) 1987, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97 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 2 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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 #endif #if !defined (__STDC__) || !__STDC__ /* This is a separate conditional since some stdc systems reject `defined (const)'. */ #ifndef const #define const #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 #if defined (WIN32) && !defined (__CYGWIN32__) /* It's not Unix, really. See? Capital letters. */ #include #define getpid() GetCurrentProcessId() #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 = NULL; /* 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 = 0; /* 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 /* Avoid depending on library functions or files whose names are inconsistent. */ char *getenv (); 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__ /* gcc with -traditional declares the built-in strlen to return int, and has done so at least since version 2.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. */ static const char *nonoption_flags; 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 store_args (int argc, char *const *argv) __attribute__ ((unused)); static void store_args (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; } text_set_element (__libc_subinit, store_args); #endif /* 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. */ 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; } /* 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; } /* 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 = 1; 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) { /* Bash 2.0 puts a special variable in the environment for each command it runs, specifying which ARGV elements are the results of file name wildcard expansion and therefore should not be considered as options. */ char var[100]; sprintf (var, "_%d_GNU_nonoption_argv_flags_", getpid ()); nonoption_flags = getenv (var); if (nonoption_flags == NULL) nonoption_flags_len = 0; else nonoption_flags_len = strlen (nonoption_flags); } 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 (!__getopt_initialized || optind == 0) { optstring = _getopt_initialize (argc, argv, optstring); optind = 1; /* Don't scan ARGV[0], the program name. */ __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 \ && 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 */ enscript-1.6.5.90/compat/getopt.h0000644000175000017500000001112711132443251013456 00000000000000/* Declarations for getopt. Copyright (C) 1989,90,91,92,93,94,96,97 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 2 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef _GETOPT_H #define _GETOPT_H 1 #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; /* 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 #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__ */ 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); #else /* not __STDC__ */ extern int getopt (); extern int getopt_long (); extern int getopt_long_only (); extern int _getopt_internal (); #endif /* __STDC__ */ #ifdef __cplusplus } #endif #endif /* _GETOPT_H */ enscript-1.6.5.90/compat/getopt1.c0000644000175000017500000001105711132443251013534 00000000000000/* getopt_long and getopt_long_only entry points for GNU getopt. Copyright (C) 1987,88,89,90,91,92,93,94,96,97 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 2 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H #include #endif #include "getopt.h" #if !defined (__STDC__) || !__STDC__ /* This is a separate conditional since some stdc systems reject `defined (const)'. */ #ifndef const #define const #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__ #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 */ enscript-1.6.5.90/compat/regex.c0000644000175000017500000055026311132443251013272 00000000000000/* 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-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 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. */ /* 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 #if defined(STDC_HEADERS) && !defined(emacs) #include #else /* We need this for `regex.h', and perhaps for the Emacs include files. */ #include #endif /* For platform which support the ISO C amendement 1 functionality we support user defined character classes. */ #if defined _LIBC || (defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H) # include # include #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 bcmp #define bcmp(s1, s2, n) memcmp ((s1), (s2), (n)) #endif #ifndef bcopy #define bcopy(s, d, n) memcpy ((d), (s), (n)) #endif #ifndef bzero #define bzero(s, n) memset ((s), 0, (n)) #endif #else #include #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 #ifdef SYNTAX_TABLE extern char *re_syntax_table; #else /* not SYNTAX_TABLE */ /* How many characters in the character set. */ #define CHAR_SET_SIZE 256 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 "regex.h" /* 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." */ #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 #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)) #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 #else /* not __GNUC__ or HAVE_ALLOCA_H */ #if 0 /* It is a bad idea to declare alloca. We always cast the result. */ #ifndef _AIX /* Already did AIX, up at the top. */ char *alloca (); #endif /* not _AIX */ #endif #endif /* not 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), \ bcopy (source, destination, osize), \ destination) /* 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 (); /* 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; } void #if __STDC__ re_set_character_syntax (unsigned char ch, char syntax) #else re_set_character_syntax (ch, syntax) unsigned char ch; char syntax; #endif /* not __STDC__ */ { init_syntax_once (); switch (syntax) { case 'w': SYNTAX (ch) = Sword; break; case ' ': SYNTAX (ch) = 0; break; default: /* This is an error, but we don't care. */ break; } } /* 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)->integer = 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 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 */ \ s_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: %d\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: %d\n", this_reg); \ DEBUG_STATEMENT (num_regs_pushed++); \ \ DEBUG_PRINT2 (" start: 0x%x\n", regstart[this_reg]); \ PUSH_FAILURE_POINTER (regstart[this_reg]); \ \ DEBUG_PRINT2 (" end: 0x%x\n", regend[this_reg]); \ PUSH_FAILURE_POINTER (regend[this_reg]); \ \ DEBUG_PRINT2 (" info: 0x%x\n ", reg_info[this_reg]); \ 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: %d\n", lowest_active_reg);\ PUSH_FAILURE_INT (lowest_active_reg); \ \ DEBUG_PRINT2 (" Pushing high active reg: %d\n", highest_active_reg);\ PUSH_FAILURE_INT (highest_active_reg); \ \ DEBUG_PRINT2 (" Pushing pattern 0x%x:\n", pattern_place); \ DEBUG_PRINT_COMPILED_PATTERN (bufp, pattern_place, pend); \ PUSH_FAILURE_POINTER (pattern_place); \ \ DEBUG_PRINT2 (" Pushing string 0x%x: `", 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 (fail_stack_elt_t failure_id;) \ s_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 0x%x: `", str); \ DEBUG_PRINT_DOUBLE_STRING (str, string1, size1, string2, size2); \ DEBUG_PRINT1 ("'\n"); \ \ pat = (unsigned char *) POP_FAILURE_POINTER (); \ DEBUG_PRINT2 (" Popping pattern 0x%x:\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: %d\n", high_reg); \ \ low_reg = (active_reg_t) POP_FAILURE_INT (); \ DEBUG_PRINT2 (" Popping low active reg: %d\n", low_reg); \ \ if (1) \ for (this_reg = high_reg; this_reg >= low_reg; this_reg--) \ { \ DEBUG_PRINT2 (" Popping reg: %d\n", this_reg); \ \ reg_info[this_reg].word = POP_FAILURE_ELT (); \ DEBUG_PRINT2 (" info: 0x%x\n", reg_info[this_reg]); \ \ regend[this_reg] = (const char *) POP_FAILURE_POINTER (); \ DEBUG_PRINT2 (" end: 0x%x\n", regend[this_reg]); \ \ regstart[this_reg] = (const char *) POP_FAILURE_POINTER (); \ DEBUG_PRINT2 (" start: 0x%x\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 || (defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H) /* 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 # define IS_CHAR_CLASS(string) wctype (string) #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 == ':' || c == ']' || p == pend || c1 == CHAR_CLASS_MAX_LENGTH) break; str[c1++] = c; } 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 || (defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H) boolean is_lower = STREQ (str, "lower"); boolean is_upper = STREQ (str, "upper"); wctype_t wt; int ch; wt = wctype (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) { if (iswctype (btowc (ch), wt)) SET_LIST_BIT (ch); 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 (re_syntax_options & RE_NO_GNU_OPS) goto normal_char; laststart = b; BUF_PUSH (wordchar); break; case 'W': if (re_syntax_options & RE_NO_GNU_OPS) goto normal_char; laststart = b; BUF_PUSH (notwordchar); break; case '<': if (re_syntax_options & RE_NO_GNU_OPS) goto normal_char; BUF_PUSH (wordbeg); break; case '>': if (re_syntax_options & RE_NO_GNU_OPS) goto normal_char; BUF_PUSH (wordend); break; case 'b': if (re_syntax_options & RE_NO_GNU_OPS) goto normal_char; BUF_PUSH (wordbound); break; case 'B': if (re_syntax_options & RE_NO_GNU_OPS) goto normal_char; BUF_PUSH (notwordbound); break; case '`': if (re_syntax_options & RE_NO_GNU_OPS) goto normal_char; BUF_PUSH (begbuf); break; case '\'': if (re_syntax_options & 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 /* We don't push any register information onto the failure stack. */ unsigned num_regs = 0; 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 */ /* 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; } } /* 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); } /* 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 && (re_opcode_t) bufp->buffer[0] == begbuf && range > 0) { 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 */ /* 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; } #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; } /* 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) : bcmp (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 (0, 0, -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 (0, 0, -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]); } /* 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 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 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' and `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.) */ #ifdef __APPLE__ __private_extern__ #endif 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; /* Don't bother to use a fastmap when searching. This simplifies the REG_NEWLINE case: if we used a fastmap, we'd have to put all the characters after newlines into the fastmap. This way, we just try every character. */ preg->fastmap = 0; 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; return (int) ret; } /* 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. */ #ifdef __APPLE__ __private_extern__ #endif 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, regoff_t); regs.end = TALLOC (nmatch, regoff_t); if (regs.start == NULL || regs.end == NULL) return (int) REG_NOMATCH; } /* 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); free (regs.end); } /* We want zero return to mean success, unlike `re_search'. */ return ret >= 0 ? (int) REG_NOERROR : (int) REG_NOMATCH; } /* 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) { strncpy (errbuf, msg, errbuf_size - 1); errbuf[errbuf_size - 1] = 0; } else strcpy (errbuf, msg); } return msg_size; } /* Free dynamically allocated space used by PREG. */ #ifdef __APPLE__ __private_extern__ #endif 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; } #endif /* not emacs */ enscript-1.6.5.90/compat/strtoul.c0000644000175000017500000000156711132443251013672 00000000000000/* Copyright (C) 1991 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 2 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #define UNSIGNED 1 #include enscript-1.6.5.90/compat/regex.h0000644000175000017500000005010511132443251013265 00000000000000/* 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 Free Software Foundation, Inc. This program is free software; you can 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. */ #ifndef __REGEXP_LIBRARY_H__ #define __REGEXP_LIBRARY_H__ /* 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 { 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)); /* Sets the character syntax for character CH. Possible values for SYNTAX are 'w' for word characters and ' ' for non-word characters. */ extern void re_set_character_syntax _RE_ARGS ((unsigned char ch, char 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)); #ifdef _REGEX_RE_COMP #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 /* not __REGEXP_LIBRARY_H__ */ /* Local variables: make-backup-files: t version-control: t trim-versions-without-asking: nil End: */ enscript-1.6.5.90/compat/strerror.c0000644000175000017500000000211411132443251014025 00000000000000/* * Replacement for the strerror() function. * Copyright (c) 1995-1998 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 2, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; see the file COPYING. If not, write to * the Free Software Foundation, 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. */ extern char *sys_errlist[]; extern int sys_nerr; char * strerror (errnum) int errnum; { if (errnum < 0 || errnum >= sys_nerr) return "unknown error"; return sys_errlist[errnum]; } enscript-1.6.5.90/compat/xalloc.c0000644000175000017500000000440211132443251013427 00000000000000/* * Non-failing memory allocation routines. * Copyright (c) 1995-1999 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 2, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; see the file COPYING. If not, write to * the Free Software Foundation, 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. */ #include #ifdef HAVE_CONFIG_H #include #endif #if STDC_HEADERS #include #include #else /* no STDC_HEADERS */ #if HAVE_STDLIB_H #include #endif #if HAVE_STRING_H #include #endif #endif /* no STDC_HEADERS */ #if ENABLE_NLS #include #define _(String) gettext (String) #else #define _(String) String #endif /* * Global functions. */ void * xmalloc (size) size_t size; { void *ptr; ptr = malloc (size); if (ptr == NULL) { fprintf (stderr, _("xmalloc(): couldn't allocate %d bytes\n"), size); exit (1); } return ptr; } void * xcalloc (num, size) size_t num; size_t size; { void *ptr; ptr = calloc (num, size); if (ptr == NULL) { fprintf (stderr, _("xcalloc(): couldn't allocate %d bytes\n"), size); exit (1); } return ptr; } void * xrealloc (ptr, size) void *ptr; size_t size; { void *nptr; if (ptr == NULL) return xmalloc (size); nptr = realloc (ptr, size); if (nptr == NULL) { fprintf (stderr, _("xrealloc(): couldn't reallocate %d bytes\n"), size); exit (1); } return nptr; } void xfree (ptr) void *ptr; { if (ptr == NULL) return; free (ptr); } char * xstrdup (str) char *str; { char *tmp; tmp = xmalloc (strlen (str) + 1); strcpy (tmp, str); return tmp; } enscript-1.6.5.90/compat/Makefile.in0000644000175000017500000003621111606344073014061 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 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 template for the compat libaray. # Copyright (c) 1995-1999 Markku Rossi. # # Author: Markku Rossi # # # This file is part of GNU Enscript. # # Enscript is free software: you can redistribute 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. # # Enscript is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Enscript. If not, see . # VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = compat DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in alloca.c memcpy.c memmove.c strerror.c \ strtoul.c ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc2.m4 \ $(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intdiv0.m4 $(top_srcdir)/m4/intl.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/intmax.m4 \ $(top_srcdir)/m4/inttypes-pri.m4 \ $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/lcmessage.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/lock.m4 \ $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/printf-posix.m4 \ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/size_max.m4 \ $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/uintmax_t.m4 \ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/wchar_t.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xsize.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LIBRARIES = $(noinst_LIBRARIES) AR = ar ARFLAGS = cru libcompat_a_AR = $(AR) $(ARFLAGS) am_libcompat_a_OBJECTS = getopt.$(OBJEXT) getopt1.$(OBJEXT) \ xalloc.$(OBJEXT) regex.$(OBJEXT) libcompat_a_OBJECTS = $(am_libcompat_a_OBJECTS) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libcompat_a_SOURCES) DIST_SOURCES = $(libcompat_a_SOURCES) HEADERS = $(noinst_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GENCAT = @GENCAT@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GLIBC2 = @GLIBC2@ GLIBC21 = @GLIBC21@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ HAVE_ASPRINTF = @HAVE_ASPRINTF@ HAVE_POSIX_PRINTF = @HAVE_POSIX_PRINTF@ HAVE_SNPRINTF = @HAVE_SNPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WPRINTF = @HAVE_WPRINTF@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLBISON = @INTLBISON@ INTLLIBS = @INTLLIBS@ INTLOBJS = @INTLOBJS@ INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTHREAD = @LIBTHREAD@ LTLIBC = @LTLIBC@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ MAKEINFO = @MAKEINFO@ MEDIA = @MEDIA@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ POSUB = @POSUB@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ PSLEVEL = @PSLEVEL@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SPOOLER = @SPOOLER@ STRIP = @STRIP@ U = @U@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WINDRES = @WINDRES@ WOE32 = @WOE32@ WOE32DLL = @WOE32DLL@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ YACC = @YACC@ YFLAGS = @YFLAGS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ 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@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AUTOMAKE_OPTIONS = no-dependencies noinst_LIBRARIES = libcompat.a libcompat_a_SOURCES = getopt.c getopt1.c xalloc.c regex.c libcompat_a_LIBADD = @LIBOBJS@ @ALLOCA@ libcompat_a_DEPENDENCIES = @LIBOBJS@ @ALLOCA@ libcompat_a_SOURCES_windelta = \ +../w32/gethostname.c \ +../w32/getpwd.c \ +../w32/getuid.c noinst_HEADERS = getopt.h regex.h xalloc.h EXTRA_DIST = ChangeLog.old strerror.c memmove.c memcpy.c strtol.c \ strtoul.c gettext.h INCLUDES = -I$(srcdir)/../intl -I../intl INCLUDES_windelta = +-I../w32 all: all-am .SUFFIXES: .SUFFIXES: .c .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu compat/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu compat/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 $(am__aclocal_m4_deps): clean-noinstLIBRARIES: -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) libcompat.a: $(libcompat_a_OBJECTS) $(libcompat_a_DEPENDENCIES) -rm -f libcompat.a $(libcompat_a_AR) libcompat.a $(libcompat_a_OBJECTS) $(libcompat_a_LIBADD) $(RANLIB) libcompat.a mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c .c.o: $(COMPILE) -c $< .c.obj: $(COMPILE) -c `$(CYGPATH_W) '$<'` 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; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ 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; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) 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; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" 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)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LIBRARIES) $(HEADERS) 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) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-noinstLIBRARIES ctags distclean distclean-compile \ distclean-generic distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ uninstall-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: enscript-1.6.5.90/NEWS0000644000175000017500000002724111401312123011213 00000000000000 What's new in GNU enscript -------------------------- Summary of changes in enscript version 1.6.5.2: * Fix CFG_FATAL macro in util.c; this prevents a segmentation fault when the configuration file contains unknown parameters. (Savannah bug #28769) * Fix segmentation fault with line lengths over 90 characters. (Savannah bug #29198) Summary of changes in enscript version 1.6.5.1: * Typo corrections in the manual pages. * Reorganise source tree to use a single ChangeLog file. * Actually ship f90.st in the tarball. * Reorganise INSTALL and README. Noteworthy changes in enscript version 1.6.5: * New maintainer. * Licensing change: GNU Enscript is now distributed under version 3 or later of the GNU GPL. * Build system fixes - distcheck now passes. * At least four security bug fixes: - CAN-2004-1184 - CAN-2004-1185 - CAN-2004-1186 - CVE-2008-3863, CVE-2008-4306 * Syntax highlighting fixes. - shell escaping rules from Shawn McMahon. - JavaScript regexps now recognised. - New highlighting rules for Fortran 90 from David Bowler. See changelogs for more detailed notes. Noteworthy changes in enscript version 1.6.4: * Unknown - to be filled in at a later date. Noteworthy changes in enscript version 1.6.3: * Changes in the highlighting / pretty printing - The `States*' config file options have changed. The new options are: - StatesBinary specify an absolute path for `states' - StatesColor use colors in the highlighting outputs? - StatesConfigFile config file name (enscript.st) - StatesHighlightStyle highlighting style - StatesPath path from which the states is looking up the state definition files (.st) - Support for user defined local highlighting definitions and styles. - new option `--style=STYLE' to specify the highlighting style - Verbose highlighting for the C, C++, and Objective-C languages. In the verbose highlighting, some mathematical constructs (&&, ||, !=, etc.) are replaced with the corresponding mathematical symbols (logical and, logical or, not equal, etc.). The mode can be enabled with option `--style=emacs_verbose'. - renamed `--pretty-print' and `--help-pretty-print' options to `--highlight' and `--help-highlight' * states: - Support for state inheritance. * new highlighting rules: - bash, csh, ksh, tcsh, zsh Unix shells - m4 m4 macro preprocessor - skill Cadence Design Systems lispy language - vrml Virtual Reality Modeling Language (VRML97) - rfc fix broken page breaks in RFCs and in Internet Drafts - inf GUI INF Script language - matlab Matlab files - outline Emacs' outline text - tex TeX/LaTeX source files. - diffs side diff files - fortran_pp fortran 77 with preprocessor - wmlscript WMLScript language - new output language `ansi' to print color outputs on color xterm, etc. * new encodings: - 88599 ISO-8859-9 (ISO Latin5) - 885910 ISO-8859-10 (ISO Latin6) * new options: - -3, -4, -5, -6, -7, -8, -9 select 3-9 columns - --nup-columnwise layout pages in the N-up printing columnwise - --swap-even-page-margins swap left and right side margins for even numbered pages - --extended-return-values encode more status information in the return value of the program - --footer=STRING specify the page footer string * misc: - It is possible to specify the font encoding in the ^@font{} escape. But, it allows only `ps' or the enscript's global input encoding values. For example, ^@font{Symbol@7:ps}b^@font{default} prints the beta symbol - New escape ^@bgcolor{} to change the text background color. - New fancy headers `squeeze' and `enscript-color'. - Minor fixes in the 88593 and 88594 encodings. - New highlighting style `msvc'. - Support for the matrix printers. Try `enscript -fMatrix10' ;-) - Fixed some buffer overrun bugs. Now all buffer space for unknown items (filenames, user-supplied tokens, etc.) is allocated dynamically. - Removed the `--list-options' option. It was an old debugging option. I can remember when I have used or updated it. Noteworthy changes in enscript version 1.6.1: * new options: - --ps-level=LEVEL, PostScriptLevel set the PostScript language level that enscript should use for its output - --rotate-even-pages Rotate each even-numbered page 180 degrees. * misc - updated C, C++, and Objective-C highlighting - set the states to process the stdin if argument "-" is given - bug and portability fixes Noteworthy changes in enscript version 1.6: * new options: - StatesPath define absolute path for the states program - GeneratePageSize specify wheter the PageSize page device setting is generated to the output - -C, --line-numbers option takes an optional argument to specify the number of the first line in the input - -W, --language=LANG set ouput language to LANG - --h-column-height=HEIGHT set the horizontal column height to HEIGHT PostScript points - --mark-wrapped-lines[=STYLE], MarkWrappedLines mark wrapped lines in the printout with STYLE - --margins=LEFT:RIGHT:TOP:BOTTOM adjust page marginals - --nup-xpad=NUM set the page x-padding of N-up printing to NUM - --nup-ypad=NUM set the page y-padding of N-up printing to NUM - --word-wrap wrap long lines from word boundaries * new highlighting rules: - ada Ada95 programming language - asm assembler listings - awk awk scripting language - delphi Delphi programming language - diff diff files - diffu unified diff files - elisp Emacs Lisp - fortran Fortran77 programming language - haskell Haskell programming language - idl CORBA interface definition language - java Java programming language - javascript JavaScript language - pascal Pascal programming language - perl Perl programming language - postscript PostScript - python Python programming language - sh Bourne shell scripts - sql Sybase 11 SQL - vba Visual Basic (for Applications) - improved C, C++ and Objective-C highlighting * new special escapes: - ^@bggray{GRAY} change text's background color - ^@escape{CODE} changes the escape character * new encodings: - 88594 ISO-8859-4 (ISO Latin4) - 88597 ISO-8859-7 (ISO Greek) * misc: - interpret formatting escapes from the page header strings - page header string can contain left, center and right aligned fields - support for HTML, RTF (Rich Text Format) and overstrike output languages - fixed tabulator character handling with variable width fonts - added support for regular expression character syntax tables in the states program - generates the PageSize page device setting to the PostScript output -- this should make the printer to select the correct paper tray automatically - replaced all stdarg functions with macros - fixed N-up printing to cooperate with the page margins - renamed the ISO-8859-* input encoding names to conform their ISO names Noteworthy changes in enscript version 1.5: * new options: -A ALIGN, --file-align=ALIGN align separate input files to even ALIGN page count -E, --pretty-print pretty print program source files with states -U NUM, --nup=NUM print NUM logical pages on each output page (N-up printing) --help-pretty-print describe all supported --pretty-print languages and file formats --slice print vertical slices of input files --toc print table of contents * config file options: - TOCFormat set the table-of-contents line format - NoJobHeaderSwitch set the spooler switch which disables job header (-h) - OutputFirstLine set output's fist line - StatesColorModel define color model for states - StatesConfigFile set states' config file - StatesHighlightLevel define highlight level for states * new utilities: - sliceprint print documents with long lines - states awk like state machine to highlight program listings - many2html convert files to HTML. Program supports all file formats which can be pretty-printed with enscript. * new encodings: - koi8 Adobe Standard Cyrillic Font KOI8 charset - 88595 ISO-8859-5 (ISO Cyrillic) - asciifise 7 bit ascii with fi and se encodings for {|}[\] (old asciiscands) - asciidkno 7 bit ascii with dk and no encodings for {|}[\] * misc - ^@color{r g b} special escape - if input file (all input files) does not exist, enscript doesn't generate any output - -E, --pretty-print highlighting for: C, ChangeLog, C++, mail, Makefile, nroff output, Objective-C, Scheme, States, Synopsys, Tcl, Verilog, VHDL Noteworthy changes in enscript version 1.4: * new and changed options: -a, --pages select pages to print -e, --escapes option takes an optional argument which changes the escape character -h, --no-job-header supress the job header page --title sets the name of stdin -I, --filter set input filter -j, --borders print borders around columns -k, --page-prefeed enable page prefeed -K, --no-page-prefeed disable page prefeed --highlight-bars enable highlight bars --highlight-bar-gray set the gray-level for highlight bars --printer-options pass extra options to the printer command --ul-style specify how the underlay strings are printed - renamed option `--page-header' to `--header' - renamed option `--pass-through-ps-files' to `--pass-through' * config file options: - AcceptCompositeCharacters - AppendCtrlD - FormFeedType what to do when a formfeed character is encountered from input - EscapeChar specify the escape character - UnderlayStyle how underlays are printed: outline / filled * new fancy headers: mp, frame * escapes: - font works now over page boundaries - ps include raw PostScript code to the output - shade new escape to highlight text regions - setfilename - setpagenumber - newpage * new encodings: - hp8 HP Roman-8 * internationalization support with the GNU gettext * changed to use GNU Automake * program renamed from genscript to enscript * new utility scripts: - diffpp - pretty-print diff outputs Noteworthy changes in enscript version 1.3: * new encodings: - 88593 ISO-8859-3 - pslatin1 PostScript interpreter's ISOLatin1Encoding * new fancy header: edd, a2ps * option changes: - option -Z, --pass-through-ps-files no longer wraps PS document inside enscript prolog and epilog. - renamed some options to conform the GNU coding standards: --output-file => --output --queue => --printer --tab-size => --tabsize - new command line / config file options: -z, --no-formfeed --ul-angle UnderlayAngle --ul-position UnderlayPosition --non-printable-format NonPrintableFormat * added some customization options to header description files: %Format format and define string constants according to format string %HeaderHeight explicit set the fancy header height %FooterHeight allocate space for the page footer Note! If you have defined your own fancy header, it will probably not work on enscript-1.3 without modifications. Following constants are removed from the enscript prolog so you must define them with the `%Format' comment: usadatestr = %Format: usadatestr %W eurdatestr = %Format: eurdatestr %E findatestr = %Format: findatestr %F timestr = %Format: timestr %C fmodstr = %Format: fmodstr $D{%a %b %e %T %Y} Check `lib/*.hdr' to see them in action. * the library directory has changed from `/lib/enscript' to `/share/enscript' * new Makefile targets: check, uninstall * enscript must no longer be installed before it can be tested; you can print files directly after you have compiled enscript. * support for Windows95/NT via the Win32 api enscript-1.6.5.90/asciidkno.txt0000644000175000017500000001344211132443251013227 00000000000000 7 bit ASCII scands (dk, no) character set octal hex PostScript HTML entity character ---------------------------------------------------------------------- 000 0x00 non-printable 001 0x01 non-printable 002 0x02 non-printable 003 0x03 non-printable 004 0x04 non-printable 005 0x05 non-printable 006 0x06 non-printable 007 0x07 non-printable 010 0x08 non-printable 011 0x09 non-printable 012 0x0a non-printable 013 0x0b non-printable 014 0x0c non-printable 015 0x0d non-printable 016 0x0e non-printable 017 0x0f non-printable 020 0x10 non-printable 021 0x11 non-printable 022 0x12 non-printable 023 0x13 non-printable 024 0x14 non-printable 025 0x15 non-printable 026 0x16 non-printable 027 0x17 non-printable 030 0x18 non-printable 031 0x19 non-printable 032 0x1a non-printable 033 0x1b non-printable 034 0x1c non-printable 035 0x1d non-printable 036 0x1e non-printable 037 0x1f non-printable 040 0x20 /space 041 0x21 /exclam ! 042 0x22 /quotedbl " " 043 0x23 /numbersign # 044 0x24 /dollar $ 045 0x25 /percent % 046 0x26 /ampersand & & 047 0x27 /quoteright ' 050 0x28 /parenleft ( 051 0x29 /parenright ) 052 0x2a /asterisk * 053 0x2b /plus + 054 0x2c /comma , 055 0x2d /hyphen - 056 0x2e /period . 057 0x2f /slash / 060 0x30 /zero 0 061 0x31 /one 1 062 0x32 /two 2 063 0x33 /three 3 064 0x34 /four 4 065 0x35 /five 5 066 0x36 /six 6 067 0x37 /seven 7 070 0x38 /eight 8 071 0x39 /nine 9 072 0x3a /colon : 073 0x3b /semicolon ; 074 0x3c /less < < 075 0x3d /equal = 076 0x3e /greater > > 077 0x3f /question ? 0100 0x40 /at @ 0101 0x41 /A A 0102 0x42 /B B 0103 0x43 /C C 0104 0x44 /D D 0105 0x45 /E E 0106 0x46 /F F 0107 0x47 /G G 0110 0x48 /H H 0111 0x49 /I I 0112 0x4a /J J 0113 0x4b /K K 0114 0x4c /L L 0115 0x4d /M M 0116 0x4e /N N 0117 0x4f /O O 0120 0x50 /P P 0121 0x51 /Q Q 0122 0x52 /R R 0123 0x53 /S S 0124 0x54 /T T 0125 0x55 /U U 0126 0x56 /V V 0127 0x57 /W W 0130 0x58 /X X 0131 0x59 /Y Y 0132 0x5a /Z Z 0133 0x5b /AE [ 0134 0x5c /Oslash \ 0135 0x5d /Aring ] 0136 0x5e /asciicircum ^ 0137 0x5f /underscore _ 0140 0x60 /quoteleft ` 0141 0x61 /a a 0142 0x62 /b b 0143 0x63 /c c 0144 0x64 /d d 0145 0x65 /e e 0146 0x66 /f f 0147 0x67 /g g 0150 0x68 /h h 0151 0x69 /i i 0152 0x6a /j j 0153 0x6b /k k 0154 0x6c /l l 0155 0x6d /m m 0156 0x6e /n n 0157 0x6f /o o 0160 0x70 /p p 0161 0x71 /q q 0162 0x72 /r r 0163 0x73 /s s 0164 0x74 /t t 0165 0x75 /u u 0166 0x76 /v v 0167 0x77 /w w 0170 0x78 /x x 0171 0x79 /y y 0172 0x7a /z z 0173 0x7b /ae { 0174 0x7c /oslash | 0175 0x7d /aring } 0176 0x7e /tilde ~ 0177 0x7f non-printable 0200 0x80 non-printable 0201 0x81 non-printable 0202 0x82 non-printable 0203 0x83 non-printable 0204 0x84 non-printable 0205 0x85 non-printable 0206 0x86 non-printable 0207 0x87 non-printable 0210 0x88 non-printable 0211 0x89 non-printable 0212 0x8a non-printable 0213 0x8b non-printable 0214 0x8c non-printable 0215 0x8d non-printable 0216 0x8e non-printable 0217 0x8f non-printable 0220 0x90 non-printable 0221 0x91 non-printable 0222 0x92 non-printable 0223 0x93 non-printable 0224 0x94 non-printable 0225 0x95 non-printable 0226 0x96 non-printable 0227 0x97 non-printable 0230 0x98 non-printable 0231 0x99 non-printable 0232 0x9a non-printable 0233 0x9b non-printable 0234 0x9c non-printable 0235 0x9d non-printable 0236 0x9e non-printable 0237 0x9f non-printable 0240 0xa0 non-printable 0241 0xa1 non-printable 0242 0xa2 non-printable 0243 0xa3 non-printable 0244 0xa4 non-printable 0245 0xa5 non-printable 0246 0xa6 non-printable 0247 0xa7 non-printable 0250 0xa8 non-printable 0251 0xa9 non-printable 0252 0xaa non-printable 0253 0xab non-printable 0254 0xac non-printable 0255 0xad non-printable 0256 0xae non-printable 0257 0xaf non-printable 0260 0xb0 non-printable 0261 0xb1 non-printable 0262 0xb2 non-printable 0263 0xb3 non-printable 0264 0xb4 non-printable 0265 0xb5 non-printable 0266 0xb6 non-printable 0267 0xb7 non-printable 0270 0xb8 non-printable 0271 0xb9 non-printable 0272 0xba non-printable 0273 0xbb non-printable 0274 0xbc non-printable 0275 0xbd non-printable 0276 0xbe non-printable 0277 0xbf non-printable 0300 0xc0 non-printable 0301 0xc1 non-printable 0302 0xc2 non-printable 0303 0xc3 non-printable 0304 0xc4 non-printable 0305 0xc5 non-printable 0306 0xc6 non-printable 0307 0xc7 non-printable 0310 0xc8 non-printable 0311 0xc9 non-printable 0312 0xca non-printable 0313 0xcb non-printable 0314 0xcc non-printable 0315 0xcd non-printable 0316 0xce non-printable 0317 0xcf non-printable 0320 0xd0 non-printable 0321 0xd1 non-printable 0322 0xd2 non-printable 0323 0xd3 non-printable 0324 0xd4 non-printable 0325 0xd5 non-printable 0326 0xd6 non-printable 0327 0xd7 non-printable 0330 0xd8 non-printable 0331 0xd9 non-printable 0332 0xda non-printable 0333 0xdb non-printable 0334 0xdc non-printable 0335 0xdd non-printable 0336 0xde non-printable 0337 0xdf non-printable 0340 0xe0 non-printable 0341 0xe1 non-printable 0342 0xe2 non-printable 0343 0xe3 non-printable 0344 0xe4 non-printable 0345 0xe5 non-printable 0346 0xe6 non-printable 0347 0xe7 non-printable 0350 0xe8 non-printable 0351 0xe9 non-printable 0352 0xea non-printable 0353 0xeb non-printable 0354 0xec non-printable 0355 0xed non-printable 0356 0xee non-printable 0357 0xef non-printable 0360 0xf0 non-printable 0361 0xf1 non-printable 0362 0xf2 non-printable 0363 0xf3 non-printable 0364 0xf4 non-printable 0365 0xf5 non-printable 0366 0xf6 non-printable 0367 0xf7 non-printable 0370 0xf8 non-printable 0371 0xf9 non-printable 0372 0xfa non-printable 0373 0xfb non-printable 0374 0xfc non-printable 0375 0xfd non-printable 0376 0xfe non-printable 0377 0xff non-printable enscript-1.6.5.90/config.rpath0000755000175000017500000004364711606344056013055 00000000000000#! /bin/sh # Output a system dependent set of variables, describing how to set the # run time search path of shared libraries in an executable. # # Copyright 1996-2007 Free Software Foundation, Inc. # Taken from GNU libtool, 2001 # Originally by Gordon Matzigkeit , 1996 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # # The first argument passed to this file is the canonical host specification, # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld # should be set by the caller. # # The set of defined variables is at the end of this script. # Known limitations: # - On IRIX 6.5 with CC="cc", the run time search patch must not be longer # than 256 bytes, otherwise the compiler driver will dump core. The only # known workaround is to choose shorter directory names for the build # directory and/or the installation directory. # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a shrext=.so host="$1" host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` # Code taken from libtool.m4's _LT_CC_BASENAME. for cc_temp in $CC""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'` # Code taken from libtool.m4's AC_LIBTOOL_PROG_COMPILER_PIC. wl= if test "$GCC" = yes; then wl='-Wl,' else case "$host_os" in aix*) wl='-Wl,' ;; darwin*) case $cc_basename in xlc*) wl='-Wl,' ;; esac ;; mingw* | cygwin* | pw32* | os2*) ;; hpux9* | hpux10* | hpux11*) wl='-Wl,' ;; irix5* | irix6* | nonstopux*) wl='-Wl,' ;; newsos6) ;; linux* | k*bsd*-gnu) case $cc_basename in icc* | ecc*) wl='-Wl,' ;; pgcc | pgf77 | pgf90) wl='-Wl,' ;; ccc*) wl='-Wl,' ;; como) wl='-lopt=' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) wl='-Wl,' ;; esac ;; esac ;; osf3* | osf4* | osf5*) wl='-Wl,' ;; rdos*) ;; solaris*) wl='-Wl,' ;; sunos4*) wl='-Qoption ld ' ;; sysv4 | sysv4.2uw2* | sysv4.3*) wl='-Wl,' ;; sysv4*MP*) ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) wl='-Wl,' ;; unicos*) wl='-Wl,' ;; uts4*) ;; esac fi # Code taken from libtool.m4's AC_LIBTOOL_PROG_LD_SHLIBS. 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 ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs=yes if test "$with_gnu_ld" = yes; then # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. # Unlike libtool, we use -rpath here, not --rpath, since the documented # option of GNU ld is called -rpath, not --rpath. hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' case "$host_os" in aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs=no fi ;; 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 cannot use # them. ld_shlibs=no ;; beos*) if $LD --help 2>&1 | grep ': 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' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then : else ld_shlibs=no fi ;; interix[3-9]*) hardcode_direct=no hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; gnu* | linux* | k*bsd*-gnu) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; netbsd*) ;; solaris*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs=no elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs=no ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' else ld_shlibs=no fi ;; esac ;; sunos4*) hardcode_direct=yes ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = no; then hardcode_libdir_flag_spec= fi else case "$host_os" in aix3*) # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test "$GCC" = yes; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; 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 : else # We have old collect2 hardcode_direct=unsupported hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi ;; esac fi # Begin _LT_AC_SYS_LIBPATH_AIX. echo 'int main () { return 0; }' > conftest.c ${CC} ${LDFLAGS} conftest.c -o conftest aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` fi if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib" fi rm -f conftest.c conftest # End _LT_AC_SYS_LIBPATH_AIX. if test "$aix_use_runtimelinking" = yes; then hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' else hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" fi fi ;; amigaos*) 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]*) ;; 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=no if test "$GCC" = yes ; then : else case $cc_basename in xlc*) ;; *) ld_shlibs=no ;; esac fi ;; dgux*) hardcode_libdir_flag_spec='-L$libdir' ;; freebsd1*) ld_shlibs=no ;; freebsd2.2*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; freebsd2*) hardcode_direct=yes hardcode_minus_L=yes ;; freebsd* | dragonfly*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; hpux9*) hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; hpux10*) if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes fi ;; hpux11*) if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_direct=no ;; *) hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; netbsd*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; newsos6) hardcode_direct=yes hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct=yes if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then hardcode_libdir_flag_spec='${wl}-rpath,$libdir' else case "$host_os" in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) hardcode_libdir_flag_spec='-R$libdir' ;; *) hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; esac fi else ld_shlibs=no fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; osf3*) hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) if test "$GCC" = yes; then hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else # Both cc and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi hardcode_libdir_separator=: ;; solaris*) hardcode_libdir_flag_spec='-R$libdir' ;; sunos4*) hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes ;; sysv4) case $host_vendor in sni) hardcode_direct=yes # is this really true??? ;; siemens) hardcode_direct=no ;; motorola) hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac ;; sysv4.3*) ;; sysv4*MP*) if test -d /usr/nec; then ld_shlibs=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) ;; sysv5* | sco3.2v5* | sco5v6*) hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator=':' ;; uts4*) hardcode_libdir_flag_spec='-L$libdir' ;; *) ld_shlibs=no ;; esac fi # Check dynamic linker characteristics # Code taken from libtool.m4's AC_LIBTOOL_SYS_DYNAMIC_LINKER. # Unlike libtool.m4, here we don't care about _all_ names of the library, but # only about the one the linker finds when passed -lNAME. This is the last # element of library_names_spec in libtool.m4, or possibly two of them if the # linker has special search rules. library_names_spec= # the last element of library_names_spec in libtool.m4 libname_spec='lib$name' case "$host_os" in aix3*) library_names_spec='$libname.a' ;; aix4* | aix5*) library_names_spec='$libname$shrext' ;; amigaos*) library_names_spec='$libname.a' ;; beos*) library_names_spec='$libname$shrext' ;; bsdi[45]*) library_names_spec='$libname$shrext' ;; cygwin* | mingw* | pw32*) shrext=.dll library_names_spec='$libname.dll.a $libname.lib' ;; darwin* | rhapsody*) shrext=.dylib library_names_spec='$libname$shrext' ;; dgux*) library_names_spec='$libname$shrext' ;; freebsd1*) ;; freebsd* | dragonfly*) case "$host_os" in freebsd[123]*) library_names_spec='$libname$shrext$versuffix' ;; *) library_names_spec='$libname$shrext' ;; esac ;; gnu*) library_names_spec='$libname$shrext' ;; hpux9* | hpux10* | hpux11*) case $host_cpu in ia64*) shrext=.so ;; hppa*64*) shrext=.sl ;; *) shrext=.sl ;; esac library_names_spec='$libname$shrext' ;; interix[3-9]*) library_names_spec='$libname$shrext' ;; irix5* | irix6* | nonstopux*) library_names_spec='$libname$shrext' case "$host_os" in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;; *) libsuff= shlibsuff= ;; esac ;; esac ;; linux*oldld* | linux*aout* | linux*coff*) ;; linux* | k*bsd*-gnu) library_names_spec='$libname$shrext' ;; knetbsd*-gnu) library_names_spec='$libname$shrext' ;; netbsd*) library_names_spec='$libname$shrext' ;; newsos6) library_names_spec='$libname$shrext' ;; nto-qnx*) library_names_spec='$libname$shrext' ;; openbsd*) library_names_spec='$libname$shrext$versuffix' ;; os2*) libname_spec='$name' shrext=.dll library_names_spec='$libname.a' ;; osf3* | osf4* | osf5*) library_names_spec='$libname$shrext' ;; rdos*) ;; solaris*) library_names_spec='$libname$shrext' ;; sunos4*) library_names_spec='$libname$shrext$versuffix' ;; sysv4 | sysv4.3*) library_names_spec='$libname$shrext' ;; sysv4*MP*) library_names_spec='$libname$shrext' ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) library_names_spec='$libname$shrext' ;; uts4*) library_names_spec='$libname$shrext' ;; esac sed_quote_subst='s/\(["`$\\]\)/\\\1/g' escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"` shlibext=`echo "$shrext" | sed -e 's,^\.,,'` escaped_libname_spec=`echo "X$libname_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` escaped_library_names_spec=`echo "X$library_names_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by `PROGRAMS ARGS'. object Object file output by `PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when 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 cygpath_u="cygpath -u -f -" if test "$depmode" = msvcmsys; then # This is just like msvisualcpp but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 cygpath_u="sed s,\\\\\\\\,/,g" depmode=msvisualcpp fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. ## Unfortunately, FreeBSD c89 acceptance of flags depends upon ## the command line argument order; so add the flags where they ## appear in depend2.am. Note that the slowdown incurred here ## affects only configure: in makefiles, %FASTDEP% shortcuts this. for arg do case $arg in -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; *) set fnord "$@" "$arg" ;; esac shift # fnord shift # $arg done "$@" stat=$? if test $stat -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. 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 tmpdepfile1=$dir$base.u tmpdepfile2=$base.u tmpdepfile3=$dir.libs/$base.u "$@" -Wc,-M else tmpdepfile1=$dir$base.u tmpdepfile2=$dir$base.u tmpdepfile3=$dir$base.u "$@" -M fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then # 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,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$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" ;; hp2) # The "hp" stanza above does not work with aCC (C++) and HP's ia64 # compilers, which have integrated preprocessors. The correct option # to use with these is +Maked; it writes dependencies to a file named # 'foo.d', which lands next to the object file, wherever that # happens to be. # Much of this is similar to the tru64 case; see comments there. 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 tmpdepfile1=$dir$base.d tmpdepfile2=$dir.libs/$base.d "$@" -Wc,+Maked else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d "$@" +Maked fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" # Add `dependent.h:' lines. sed -ne '2,${ s/^ *// s/ \\*$// s/$/:/ p }' "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" "$tmpdepfile2" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in `foo.d' instead, so we check for that too. # Subdirectories are respected. 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 mechanism 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 $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 "X$1" != 'X--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for `:' # in the target name. This is to cope with DOS-style filenames: # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. "$@" $dashmflag | sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$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 "X$1" != 'X--mode=compile'; do shift done shift fi # X makedepend shift cleared=no eat=no for arg do case $cleared in no) set ""; shift cleared=yes ;; esac if test $eat = yes; then eat=no continue fi case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -arch) eat=yes ;; -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix=`echo "$object" | sed 's/^.*\././'` touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" 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 "X$1" != 'X--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi IFS=" " for arg do case "$arg" in -o) shift ;; $object) shift ;; "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E 2>/dev/null | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; msvcmsys) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: enscript-1.6.5.90/install-sh0000755000175000017500000003253711606344073012544 00000000000000#!/bin/sh # install - install a program, script, or datafile scriptversion=2009-04-28.21; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. nl=' ' IFS=" "" $nl" # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit=${DOITPROG-} if test -z "$doit"; then doit_exec=exec else doit_exec=$doit fi # Put in absolute file names if you don't have them in your path; # or use environment vars. chgrpprog=${CHGRPPROG-chgrp} chmodprog=${CHMODPROG-chmod} chownprog=${CHOWNPROG-chown} cmpprog=${CMPPROG-cmp} cpprog=${CPPROG-cp} mkdirprog=${MKDIRPROG-mkdir} mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} posix_glob='?' initialize_posix_glob=' test "$posix_glob" != "?" || { if (set -f) 2>/dev/null; then posix_glob= else posix_glob=: fi } ' posix_mkdir= # Desired mode of installed file. mode=0755 chgrpcmd= chmodcmd=$chmodprog chowncmd= mvcmd=$mvprog rmcmd="$rmprog -f" stripcmd= src= dst= dir_arg= dst_arg= copy_on_change=false 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: --help display this help and exit. --version display version info and exit. -c (ignored) -C install only if different (preserve the last data modification time) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test $# -ne 0; do case $1 in -c) ;; -C) copy_on_change=true;; -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 case $mode in *' '* | *' '* | *' '* | *'*'* | *'?'* | *'['*) echo "$0: invalid mode: $mode" >&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -s) stripcmd=$stripprog;; -t) dst_arg=$2 shift;; -T) no_target_directory=true;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dst_arg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dst_arg" shift # fnord fi shift # arg dst_arg=$arg done fi if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then trap '(exit $?); exit' 1 2 13 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. case $mode in # Optimize common cases. *644) cp_umask=133;; *755) cp_umask=22;; *[0-7]) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac fi for src do # Protect names starting with `-'. case $src in -*) src=./$src;; esac if test -n "$dir_arg"; then dst=$src dstdir=$dst test -d "$dstdir" dstdir_status=$? else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dst_arg # 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: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else # Prefer dirname, but fall back on a substitute if dirname fails. dstdir=` (dirname "$dst") 2>/dev/null || expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$dst" : 'X\(//\)[^/]' \| \ X"$dst" : 'X\(//\)$' \| \ X"$dst" : 'X\(/\)' \| . 2>/dev/null || echo X"$dst" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q' ` test -d "$dstdir" dstdir_status=$? fi fi obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') # Create intermediate dirs using mode 755 as modified by the umask. # This is like FreeBSD 'install' as of 1997-10-28. umask=`umask` case $stripcmd.$umask in # Optimize common cases. *[2367][2367]) mkdir_umask=$umask;; .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; *[0-7]) mkdir_umask=`expr $umask + 22 \ - $umask % 100 % 40 + $umask % 20 \ - $umask % 10 % 4 + $umask % 2 `;; *) mkdir_umask=$umask,go-w;; esac # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then mkdir_mode=-m$mode else mkdir_mode= fi posix_mkdir=false case $umask in *[123567][0-7][0-7]) # POSIX mkdir -p sets u+wx bits regardless of umask, which # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 if (umask $mkdir_umask && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writeable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ls_ld_tmpdir=`ls -ld "$tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/d" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null fi trap '' 0;; esac;; esac if $posix_mkdir && ( umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else # The umask is ridiculous, or mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in /*) prefix='/';; -*) prefix='./';; *) prefix='';; esac eval "$initialize_posix_glob" oIFS=$IFS IFS=/ $posix_glob set -f set fnord $dstdir shift $posix_glob set +f IFS=$oIFS prefixes= for d do test -z "$d" && continue prefix=$prefix$d if test -d "$prefix"; then prefixes= else if $posix_mkdir; then (umask=$mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 else case $prefix in *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; *) qprefix=$prefix;; esac prefixes="$prefixes '$qprefix'" fi fi prefix=$prefix/ done if test -n "$prefixes"; then # Don't fail if two instances are running concurrently. (umask $mkdir_umask && eval "\$doit_exec \$mkdirprog $prefixes") || test -d "$dstdir" || exit 1 obsolete_mkdir_used=true fi fi fi if test -n "$dir_arg"; then { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && eval "$initialize_posix_glob" && $posix_glob set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && $posix_glob set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then rm -f "$dsttmp" else # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. { # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { test ! -f "$dst" || $doit $rmcmd -f "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 } } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 trap '' 0 fi done # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: enscript-1.6.5.90/THANKS0000644000175000017500000000230311132443251011427 00000000000000GNU Enscript would not be what it is today without the invaluable help of these people: Kari Hiekkanen TonyK Lindstroom Juha Takala Andrzej Szyszkiewicz duncan@spd.eee.strath.ac.uk Dirk Eddelbuettel Wolfgang Friebel Joachim Schnitter Peter Seebach François Pinard Kaveh R. Ghazi Larry Schwimmer Greg J. Badros Gabriel Chen Bruce Albrecht Trent Fisher David E. Bakken Hagen Ross Ildar Khabibrakhmanov Tarjei T. Jensen Jochen Schwarze Dave Hylands Ricardas Cepas Keith Refson Manolis Lourakis Tait Cyrus Guentcho D. Skordev Shawn McMahon enscript-1.6.5.90/m4/0000755000175000017500000000000011606344225011125 500000000000000enscript-1.6.5.90/m4/glibc2.m40000644000175000017500000000135411606344062012453 00000000000000# glibc2.m4 serial 1 dnl Copyright (C) 2000-2002, 2004 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # Test for the GNU C Library, version 2.0 or newer. # From Bruno Haible. AC_DEFUN([gt_GLIBC2], [ AC_CACHE_CHECK(whether we are using the GNU C Library 2 or newer, ac_cv_gnu_library_2, [AC_EGREP_CPP([Lucky GNU user], [ #include #ifdef __GNU_LIBRARY__ #if (__GLIBC__ >= 2) Lucky GNU user #endif #endif ], ac_cv_gnu_library_2=yes, ac_cv_gnu_library_2=no) ] ) AC_SUBST(GLIBC2) GLIBC2="$ac_cv_gnu_library_2" ] ) enscript-1.6.5.90/m4/po.m40000644000175000017500000004460611606344063011737 00000000000000# po.m4 serial 15 (gettext-0.17) dnl Copyright (C) 1995-2007 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can 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-2003. AC_PREREQ(2.50) dnl Checks for all prerequisites of the po subdirectory. AC_DEFUN([AM_PO_SUBDIRS], [ AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake AC_REQUIRE([AM_NLS])dnl dnl Release version of the gettext macros. This is used to ensure that dnl the gettext macros and po/Makefile.in.in are in sync. AC_SUBST([GETTEXT_MACRO_VERSION], [0.17]) dnl Perform the following tests also if --disable-nls has been given, dnl because they are needed for "make dist" to work. dnl Search for GNU msgfmt in the PATH. dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions. dnl The second test excludes FreeBSD msgfmt. AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, [$ac_dir/$ac_word --statistics /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], :) AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) dnl Test whether it is GNU msgfmt >= 0.15. changequote(,)dnl case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;; *) MSGFMT_015=$MSGFMT ;; esac changequote([,])dnl AC_SUBST([MSGFMT_015]) changequote(,)dnl case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;; *) GMSGFMT_015=$GMSGFMT ;; esac changequote([,])dnl AC_SUBST([GMSGFMT_015]) dnl Search for GNU xgettext 0.12 or newer in the PATH. dnl The first test excludes Solaris xgettext and early GNU xgettext versions. dnl The second test excludes FreeBSD xgettext. AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], :) dnl Remove leftover from FreeBSD xgettext call. rm -f messages.po dnl Test whether it is GNU xgettext >= 0.15. changequote(,)dnl case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;; *) XGETTEXT_015=$XGETTEXT ;; esac changequote([,])dnl AC_SUBST([XGETTEXT_015]) dnl Search for GNU msgmerge 0.11 or newer in the PATH. AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge, [$ac_dir/$ac_word --update -q /dev/null /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1], :) dnl Installation directories. dnl Autoconf >= 2.60 defines localedir. For older versions of autoconf, we dnl have to define it here, so that it can be used in po/Makefile. test -n "$localedir" || localedir='${datadir}/locale' AC_SUBST([localedir]) dnl Support for AM_XGETTEXT_OPTION. test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS= AC_SUBST([XGETTEXT_EXTRA_OPTIONS]) AC_CONFIG_COMMANDS([po-directories], [[ for ac_file in $CONFIG_FILES; do # Support "outfile[:infile[:infile...]]" case "$ac_file" in *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; esac # PO directories have a Makefile.in generated from Makefile.in.in. case "$ac_file" in */Makefile.in) # Adjust a relative srcdir. ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` # In autoconf-2.13 it is called $ac_given_srcdir. # In autoconf-2.50 it is called $srcdir. test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" case "$ac_given_srcdir" in .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; /*) top_srcdir="$ac_given_srcdir" ;; *) top_srcdir="$ac_dots$ac_given_srcdir" ;; esac # Treat a directory as a PO directory if and only if it has a # POTFILES.in file. This allows packages to have multiple PO # directories under different names or in different locations. if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then rm -f "$ac_dir/POTFILES" test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" POMAKEFILEDEPS="POTFILES.in" # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend # on $ac_dir but don't depend on user-specified configuration # parameters. if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then # The LINGUAS file contains the set of available languages. if test -n "$OBSOLETE_ALL_LINGUAS"; then test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" fi ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` # Hide the ALL_LINGUAS assigment from automake < 1.5. eval 'ALL_LINGUAS''=$ALL_LINGUAS_' POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" else # The set of available languages was given in configure.in. # Hide the ALL_LINGUAS assigment from automake < 1.5. eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' fi # Compute POFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) # Compute UPDATEPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) # Compute DUMMYPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) # Compute GMOFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) case "$ac_given_srcdir" in .) srcdirpre= ;; *) srcdirpre='$(srcdir)/' ;; esac POFILES= UPDATEPOFILES= DUMMYPOFILES= GMOFILES= for lang in $ALL_LINGUAS; do POFILES="$POFILES $srcdirpre$lang.po" UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" DUMMYPOFILES="$DUMMYPOFILES $lang.nop" GMOFILES="$GMOFILES $srcdirpre$lang.gmo" done # CATALOGS depends on both $ac_dir and the user's LINGUAS # environment variable. INST_LINGUAS= if test -n "$ALL_LINGUAS"; then for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "$LINGUAS"; then desiredlanguages="$LINGUAS" else desiredlanguages="$ALL_LINGUAS" fi for desiredlang in $desiredlanguages; do # Use the presentlang catalog if desiredlang is # a. equal to presentlang, or # b. a variant of presentlang (because in this case, # presentlang can be used as a fallback for messages # which are not translated in the desiredlang catalog). case "$desiredlang" in "$presentlang"*) useit=yes;; esac done if test $useit = yes; then INST_LINGUAS="$INST_LINGUAS $presentlang" fi done fi CATALOGS= if test -n "$INST_LINGUAS"; then for lang in $INST_LINGUAS; do CATALOGS="$CATALOGS $lang.gmo" done fi test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do if test -f "$f"; then case "$f" in *.orig | *.bak | *~) ;; *) cat "$f" >> "$ac_dir/Makefile" ;; esac fi done fi ;; esac done]], [# Capture the value of obsolete ALL_LINGUAS because we need it to compute # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it # from automake < 1.5. eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' # Capture the value of LINGUAS because we need it to compute CATALOGS. LINGUAS="${LINGUAS-%UNSET%}" ]) ]) dnl Postprocesses a Makefile in a directory containing PO files. AC_DEFUN([AM_POSTPROCESS_PO_MAKEFILE], [ # When this code is run, in config.status, two variables have already been # set: # - OBSOLETE_ALL_LINGUAS is the value of LINGUAS set in configure.in, # - LINGUAS is the value of the environment variable LINGUAS at configure # time. changequote(,)dnl # Adjust a relative srcdir. ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` # In autoconf-2.13 it is called $ac_given_srcdir. # In autoconf-2.50 it is called $srcdir. test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" case "$ac_given_srcdir" in .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; /*) top_srcdir="$ac_given_srcdir" ;; *) top_srcdir="$ac_dots$ac_given_srcdir" ;; esac # Find a way to echo strings without interpreting backslash. if test "X`(echo '\t') 2>/dev/null`" = 'X\t'; then gt_echo='echo' else if test "X`(printf '%s\n' '\t') 2>/dev/null`" = 'X\t'; then gt_echo='printf %s\n' else echo_func () { cat < "$ac_file.tmp" if grep -l '@TCLCATALOGS@' "$ac_file" > /dev/null; then # Add dependencies that cannot be formulated as a simple suffix rule. for lang in $ALL_LINGUAS; do frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` cat >> "$ac_file.tmp" < /dev/null; then # Add dependencies that cannot be formulated as a simple suffix rule. for lang in $ALL_LINGUAS; do frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'` cat >> "$ac_file.tmp" <> "$ac_file.tmp" <, 1995-2000. dnl Bruno Haible , 2000-2006. 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], ifdef([AM_GNU_GETTEXT_][INTL_SUBDIR], [yes], [no]), [yes])) define([gt_libtool_suffix_prefix], ifelse([$1], [use-libtool], [l], [])) gt_NEEDS_INIT AM_GNU_GETTEXT_NEED([$2]) AC_REQUIRE([AM_PO_SUBDIRS])dnl ifelse(gt_included_intl, yes, [ AC_REQUIRE([AM_INTL_SUBDIR])dnl ]) dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) dnl Sometimes libintl requires libiconv, so first search for libiconv. dnl Ideally we would do this search only after the dnl if test "$USE_NLS" = "yes"; then dnl if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT dnl the configure script would need to contain the same shell code dnl again, outside any 'if'. There are two solutions: dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'. dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE. dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not dnl documented, we avoid it. ifelse(gt_included_intl, yes, , [ AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) ]) dnl Sometimes, on MacOS X, libintl requires linking with CoreFoundation. gt_INTL_MACOSX dnl Set USE_NLS. AC_REQUIRE([AM_NLS]) ifelse(gt_included_intl, yes, [ BUILD_INCLUDED_LIBINTL=no USE_INCLUDED_LIBINTL=no ]) LIBINTL= LTLIBINTL= POSUB= dnl Add a version number to the cache macros. case " $gt_needs " in *" need-formatstring-macros "*) gt_api_version=3 ;; *" need-ngettext "*) gt_api_version=2 ;; *) gt_api_version=1 ;; esac gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc" gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl" dnl If we use NLS figure out what method if test "$USE_NLS" = "yes"; then gt_use_preinstalled_gnugettext=no ifelse(gt_included_intl, yes, [ AC_MSG_CHECKING([whether included gettext is requested]) AC_ARG_WITH(included-gettext, [ --with-included-gettext use the GNU gettext library included here], nls_cv_force_use_gnu_gettext=$withval, nls_cv_force_use_gnu_gettext=no) AC_MSG_RESULT($nls_cv_force_use_gnu_gettext) nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" if test "$nls_cv_force_use_gnu_gettext" != "yes"; then ]) dnl User does not insist on using GNU NLS library. Figure out what dnl to use. If GNU gettext is available we use this. Else we have dnl to fall back to GNU NLS library. if test $gt_api_version -ge 3; then gt_revision_test_code=' #ifndef __GNU_GETTEXT_SUPPORTED_REVISION #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) #endif changequote(,)dnl typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; changequote([,])dnl ' else gt_revision_test_code= fi if test $gt_api_version -ge 2; then gt_expression_test_code=' + * ngettext ("", "", 0)' else gt_expression_test_code= fi AC_CACHE_CHECK([for GNU gettext in libc], [$gt_func_gnugettext_libc], [AC_TRY_LINK([#include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern int *_nl_domain_bindings;], [bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings], [eval "$gt_func_gnugettext_libc=yes"], [eval "$gt_func_gnugettext_libc=no"])]) if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then dnl Sometimes libintl requires libiconv, so first search for libiconv. ifelse(gt_included_intl, yes, , [ AM_ICONV_LINK ]) dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv]) dnl because that would add "-liconv" to LIBINTL and LTLIBINTL dnl even if libiconv doesn't exist. AC_LIB_LINKFLAGS_BODY([intl]) AC_CACHE_CHECK([for GNU gettext in libintl], [$gt_func_gnugettext_libintl], [gt_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $INCINTL" gt_save_LIBS="$LIBS" LIBS="$LIBS $LIBINTL" dnl Now see whether libintl exists and does not depend on libiconv. AC_TRY_LINK([#include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (const char *);], [bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")], [eval "$gt_func_gnugettext_libintl=yes"], [eval "$gt_func_gnugettext_libintl=no"]) dnl Now see whether libintl exists and depends on libiconv. if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then LIBS="$LIBS $LIBICONV" AC_TRY_LINK([#include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (const char *);], [bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")], [LIBINTL="$LIBINTL $LIBICONV" LTLIBINTL="$LTLIBINTL $LTLIBICONV" eval "$gt_func_gnugettext_libintl=yes" ]) fi CPPFLAGS="$gt_save_CPPFLAGS" LIBS="$gt_save_LIBS"]) fi dnl If an already present or preinstalled GNU gettext() is found, dnl use it. But if this macro is used in GNU gettext, and GNU dnl gettext is already preinstalled in libintl, we update this dnl libintl. (Cf. the install rule in intl/Makefile.in.) if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \ && test "$PACKAGE" != gettext-runtime \ && test "$PACKAGE" != gettext-tools; }; then gt_use_preinstalled_gnugettext=yes else dnl Reset the values set by searching for libintl. LIBINTL= LTLIBINTL= INCINTL= fi ifelse(gt_included_intl, yes, [ if test "$gt_use_preinstalled_gnugettext" != "yes"; then dnl GNU gettext is not found in the C library. dnl Fall back on included GNU gettext library. nls_cv_use_gnu_gettext=yes fi fi if test "$nls_cv_use_gnu_gettext" = "yes"; then dnl Mark actions used to generate GNU NLS library. BUILD_INCLUDED_LIBINTL=yes USE_INCLUDED_LIBINTL=yes LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV $LIBTHREAD" LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV $LTLIBTHREAD" LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` fi CATOBJEXT= if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then dnl Mark actions to use GNU gettext tools. CATOBJEXT=.gmo fi ]) if test -n "$INTL_MACOSX_LIBS"; then if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then dnl Some extra flags are needed during linking. LIBINTL="$LIBINTL $INTL_MACOSX_LIBS" LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS" fi fi if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then AC_DEFINE(ENABLE_NLS, 1, [Define to 1 if translation of program messages to the user's native language is requested.]) else USE_NLS=no fi fi AC_MSG_CHECKING([whether to use NLS]) AC_MSG_RESULT([$USE_NLS]) if test "$USE_NLS" = "yes"; then AC_MSG_CHECKING([where the gettext function comes from]) if test "$gt_use_preinstalled_gnugettext" = "yes"; then if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then gt_source="external libintl" else gt_source="libc" fi else gt_source="included intl directory" fi AC_MSG_RESULT([$gt_source]) fi if test "$USE_NLS" = "yes"; then if test "$gt_use_preinstalled_gnugettext" = "yes"; then if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then AC_MSG_CHECKING([how to link with libintl]) AC_MSG_RESULT([$LIBINTL]) AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL]) fi dnl For backward compatibility. Some packages may be using this. AC_DEFINE(HAVE_GETTEXT, 1, [Define if the GNU gettext() function is already present or preinstalled.]) AC_DEFINE(HAVE_DCGETTEXT, 1, [Define if the GNU dcgettext() function is already present or preinstalled.]) fi dnl We need to process the po/ directory. POSUB=po fi ifelse(gt_included_intl, yes, [ dnl 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-runtime || test "$PACKAGE" = gettext-tools; 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) 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 For backward compatibility. Some Makefiles may be using this. INTLOBJS= if test "$USE_INCLUDED_LIBINTL" = yes; then INTLOBJS="\$(GETTOBJS)" fi AC_SUBST(INTLOBJS) 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 gt_NEEDS_INIT ensures that the gt_needs variable is initialized. m4_define([gt_NEEDS_INIT], [ m4_divert_text([DEFAULTS], [gt_needs=]) m4_define([gt_NEEDS_INIT], []) ]) dnl Usage: AM_GNU_GETTEXT_NEED([NEEDSYMBOL]) AC_DEFUN([AM_GNU_GETTEXT_NEED], [ m4_divert_text([INIT_PREPARE], [gt_needs="$gt_needs $1"]) ]) dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version]) AC_DEFUN([AM_GNU_GETTEXT_VERSION], []) enscript-1.6.5.90/m4/lib-ld.m40000644000175000017500000000653111606344063012457 00000000000000# lib-ld.m4 serial 3 (gettext-0.13) dnl Copyright (C) 1996-2003 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Subroutines of libtool.m4, dnl with replacements s/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. case `$LD -v 2>&1 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 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. case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in *GNU* | *'with BFD'*) test "$with_gnu_ld" != no && break ;; *) test "$with_gnu_ld" != yes && break ;; esac fi done IFS="$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 ]) enscript-1.6.5.90/m4/stdint_h.m40000644000175000017500000000161411606344063013125 00000000000000# stdint_h.m4 serial 6 dnl Copyright (C) 1997-2004, 2006 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Paul Eggert. # Define HAVE_STDINT_H_WITH_UINTMAX if exists, # doesn't clash with , and declares uintmax_t. AC_DEFUN([gl_AC_HEADER_STDINT_H], [ AC_CACHE_CHECK([for stdint.h], gl_cv_header_stdint_h, [AC_TRY_COMPILE( [#include #include ], [uintmax_t i = (uintmax_t) -1; return !i;], gl_cv_header_stdint_h=yes, gl_cv_header_stdint_h=no)]) if test $gl_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 ]) enscript-1.6.5.90/m4/glibc21.m40000644000175000017500000000144511606344062012535 00000000000000# glibc21.m4 serial 3 dnl Copyright (C) 2000-2002, 2004 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # Test for the GNU C Library, version 2.1 or newer. # From Bruno Haible. AC_DEFUN([gl_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" ] ) enscript-1.6.5.90/m4/lib-prefix.m40000644000175000017500000001503611606344063013355 00000000000000# lib-prefix.m4 serial 5 (gettext-0.15) dnl Copyright (C) 2001-2005 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't dnl require excessive bracketing. ifdef([AC_HELP_STRING], [AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])], [AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])]) dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed dnl to access previously installed libraries. The basic assumption is that dnl a user will want packages to use other packages he previously installed dnl with the same --prefix option. dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate dnl libraries, but is otherwise very convenient. AC_DEFUN([AC_LIB_PREFIX], [ AC_BEFORE([$0], [AC_LIB_LINKFLAGS]) AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) dnl By default, look in $includedir and $libdir. use_additional=yes AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) AC_LIB_ARG_WITH([lib-prefix], [ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib --without-lib-prefix don't search for libraries in includedir and libdir], [ if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) else additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" fi fi ]) if test $use_additional = yes; then dnl Potentially add $additional_includedir to $CPPFLAGS. dnl But don't add it dnl 1. if it's the standard /usr/include, dnl 2. if it's already present in $CPPFLAGS, dnl 3. if it's /usr/local/include and we are using GCC on Linux, dnl 4. if it doesn't exist as a directory. if test "X$additional_includedir" != "X/usr/include"; then haveit= for x in $CPPFLAGS; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then if test -d "$additional_includedir"; then dnl Really add $additional_includedir to $CPPFLAGS. CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir" fi fi fi fi dnl Potentially add $additional_libdir to $LDFLAGS. dnl But don't add it dnl 1. if it's the standard /usr/lib, dnl 2. if it's already present in $LDFLAGS, dnl 3. if it's /usr/local/lib and we are using GCC on Linux, dnl 4. if it doesn't exist as a directory. if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then haveit= for x in $LDFLAGS; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then if test -n "$GCC"; then case $host_os in linux*) haveit=yes;; esac fi fi if test -z "$haveit"; then if test -d "$additional_libdir"; then dnl Really add $additional_libdir to $LDFLAGS. LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir" fi fi fi fi fi ]) dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix, dnl acl_final_exec_prefix, containing the values to which $prefix and dnl $exec_prefix will expand at the end of the configure script. AC_DEFUN([AC_LIB_PREPARE_PREFIX], [ dnl Unfortunately, prefix and exec_prefix get only finally determined dnl at the end of configure. if test "X$prefix" = "XNONE"; then acl_final_prefix="$ac_default_prefix" else acl_final_prefix="$prefix" fi if test "X$exec_prefix" = "XNONE"; then acl_final_exec_prefix='${prefix}' else acl_final_exec_prefix="$exec_prefix" fi acl_save_prefix="$prefix" prefix="$acl_final_prefix" eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" prefix="$acl_save_prefix" ]) dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the dnl variables prefix and exec_prefix bound to the values they will have dnl at the end of the configure script. AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX], [ acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" $1 exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" ]) dnl AC_LIB_PREPARE_MULTILIB creates a variable acl_libdirstem, containing dnl the basename of the libdir, either "lib" or "lib64". AC_DEFUN([AC_LIB_PREPARE_MULTILIB], [ dnl There is no formal standard regarding lib and lib64. The current dnl practice is that on a system supporting 32-bit and 64-bit instruction dnl sets or ABIs, 64-bit libraries go under $prefix/lib64 and 32-bit dnl libraries go under $prefix/lib. We determine the compiler's default dnl mode by looking at the compiler's library search path. If at least dnl of its elements ends in /lib64 or points to a directory whose absolute dnl pathname ends in /lib64, we assume a 64-bit ABI. Otherwise we use the dnl default, namely "lib". acl_libdirstem=lib searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` if test -n "$searchpath"; then acl_save_IFS="${IFS= }"; IFS=":" for searchdir in $searchpath; do if test -d "$searchdir"; then case "$searchdir" in */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; *) searchdir=`cd "$searchdir" && pwd` case "$searchdir" in */lib64 ) acl_libdirstem=lib64 ;; esac ;; esac fi done IFS="$acl_save_IFS" fi ]) enscript-1.6.5.90/m4/size_max.m40000644000175000017500000000513311606344063013130 00000000000000# size_max.m4 serial 6 dnl Copyright (C) 2003, 2005-2006 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. AC_DEFUN([gl_SIZE_MAX], [ AC_CHECK_HEADERS(stdint.h) dnl First test whether the system already has SIZE_MAX. AC_MSG_CHECKING([for SIZE_MAX]) AC_CACHE_VAL([gl_cv_size_max], [ gl_cv_size_max= AC_EGREP_CPP([Found it], [ #include #if HAVE_STDINT_H #include #endif #ifdef SIZE_MAX Found it #endif ], gl_cv_size_max=yes) if test -z "$gl_cv_size_max"; then dnl Define it ourselves. Here we assume that the type 'size_t' is not wider dnl than the type 'unsigned long'. Try hard to find a definition that can dnl be used in a preprocessor #if, i.e. doesn't contain a cast. AC_COMPUTE_INT([size_t_bits_minus_1], [sizeof (size_t) * CHAR_BIT - 1], [#include #include ], size_t_bits_minus_1=) AC_COMPUTE_INT([fits_in_uint], [sizeof (size_t) <= sizeof (unsigned int)], [#include ], fits_in_uint=) if test -n "$size_t_bits_minus_1" && test -n "$fits_in_uint"; then if test $fits_in_uint = 1; then dnl Even though SIZE_MAX fits in an unsigned int, it must be of type dnl 'unsigned long' if the type 'size_t' is the same as 'unsigned long'. AC_TRY_COMPILE([#include extern size_t foo; extern unsigned long foo; ], [], fits_in_uint=0) fi dnl We cannot use 'expr' to simplify this expression, because 'expr' dnl works only with 'long' integers in the host environment, while we dnl might be cross-compiling from a 32-bit platform to a 64-bit platform. if test $fits_in_uint = 1; then gl_cv_size_max="(((1U << $size_t_bits_minus_1) - 1) * 2 + 1)" else gl_cv_size_max="(((1UL << $size_t_bits_minus_1) - 1) * 2 + 1)" fi else dnl Shouldn't happen, but who knows... gl_cv_size_max='((size_t)~(size_t)0)' fi fi ]) AC_MSG_RESULT([$gl_cv_size_max]) if test "$gl_cv_size_max" != yes; then AC_DEFINE_UNQUOTED([SIZE_MAX], [$gl_cv_size_max], [Define as the maximum value of type 'size_t', if the system doesn't define it.]) fi ]) dnl Autoconf >= 2.61 has AC_COMPUTE_INT built-in. dnl Remove this when we can assume autoconf >= 2.61. m4_ifdef([AC_COMPUTE_INT], [], [ AC_DEFUN([AC_COMPUTE_INT], [_AC_COMPUTE_INT([$2],[$1],[$3],[$4])]) ]) enscript-1.6.5.90/m4/lib-link.m40000644000175000017500000007205511606344063013021 00000000000000# lib-link.m4 serial 13 (gettext-0.17) dnl Copyright (C) 2001-2007 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. AC_PREREQ(2.54) dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and dnl the libraries corresponding to explicit and implicit dependencies. dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and dnl augments the CPPFLAGS variable. dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem. AC_DEFUN([AC_LIB_LINKFLAGS], [ AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) 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" ac_cv_lib[]Name[]_prefix="$LIB[]NAME[]_PREFIX" ]) LIB[]NAME="$ac_cv_lib[]Name[]_libs" LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs" INC[]NAME="$ac_cv_lib[]Name[]_cppflags" LIB[]NAME[]_PREFIX="$ac_cv_lib[]Name[]_prefix" AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) AC_SUBST([LIB]NAME) AC_SUBST([LTLIB]NAME) AC_SUBST([LIB]NAME[_PREFIX]) dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the dnl results of this search when this library appears as a dependency. HAVE_LIB[]NAME=yes 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. dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem. AC_DEFUN([AC_LIB_HAVE_LINKFLAGS], [ AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) 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= LIB[]NAME[]_PREFIX= fi AC_SUBST([HAVE_LIB]NAME) AC_SUBST([LIB]NAME) AC_SUBST([LTLIB]NAME) AC_SUBST([LIB]NAME[_PREFIX]) undefine([Name]) undefine([NAME]) ]) dnl Determine the platform dependent parameters needed to use rpath: dnl acl_libext, dnl acl_shlibext, dnl acl_hardcode_libdir_flag_spec, dnl acl_hardcode_libdir_separator, dnl acl_hardcode_direct, dnl acl_hardcode_minus_L. AC_DEFUN([AC_LIB_RPATH], [ dnl Tell automake >= 1.10 to complain if config.rpath is missing. m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([config.rpath])]) AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [ CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh . ./conftest.sh rm -f ./conftest.sh acl_cv_rpath=done ]) wl="$acl_cv_wl" acl_libext="$acl_cv_libext" acl_shlibext="$acl_cv_shlibext" acl_libname_spec="$acl_cv_libname_spec" acl_library_names_spec="$acl_cv_library_names_spec" acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" acl_hardcode_direct="$acl_cv_hardcode_direct" acl_hardcode_minus_L="$acl_cv_hardcode_minus_L" dnl Determine whether the user wants rpath handling at all. AC_ARG_ENABLE(rpath, [ --disable-rpath do not hardcode runtime library paths], :, enable_rpath=yes) ]) dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and dnl the libraries corresponding to explicit and implicit dependencies. dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables. dnl Also, sets the LIB${NAME}_PREFIX variable to nonempty if libname was found dnl in ${LIB${NAME}_PREFIX}/$acl_libdirstem. AC_DEFUN([AC_LIB_LINKFLAGS_BODY], [ AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) dnl Autoconf >= 2.61 supports dots in --with options. define([N_A_M_E],[m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]),[2.61]),[-1],[translit([$1],[.],[_])],[$1])]) dnl By default, look in $includedir and $libdir. use_additional=yes AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) AC_LIB_ARG_WITH([lib]N_A_M_E[-prefix], [ --with-lib]N_A_M_E[-prefix[=DIR] search for lib$1 in DIR/include and DIR/lib --without-lib]N_A_M_E[-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/$acl_libdirstem" 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= LIB[]NAME[]_PREFIX= rpathdirs= ltrpathdirs= names_already_handled= names_next_round='$1 $2' while test -n "$names_next_round"; do names_this_round="$names_next_round" names_next_round= for name in $names_this_round; do already_handled= for n in $names_already_handled; do if test "$n" = "$name"; then already_handled=yes break fi done if test -z "$already_handled"; then names_already_handled="$names_already_handled $name" dnl See if it was already located by an earlier AC_LIB_LINKFLAGS dnl or AC_LIB_HAVE_LINKFLAGS call. uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` eval value=\"\$HAVE_LIB$uppername\" if test -n "$value"; then if test "$value" = yes; then eval value=\"\$LIB$uppername\" test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value" eval value=\"\$LTLIB$uppername\" test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value" else dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined dnl that this library doesn't exist. So just drop it. : fi else dnl Search the library lib$name in $additional_libdir and $LDFLAGS dnl and the already constructed $LIBNAME/$LTLIBNAME. found_dir= found_la= found_so= found_a= eval libname=\"$acl_libname_spec\" # typically: libname=lib$name if test -n "$acl_shlibext"; then shrext=".$acl_shlibext" # typically: shrext=.so else shrext= fi if test $use_additional = yes; then dir="$additional_libdir" dnl The same code as in the loop below: dnl First look for a shared library. if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi dnl Then look for a static library. if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi fi if test "X$found_dir" = "X"; then for x in $LDFLAGS $LTLIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` dnl First look for a shared library. if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi dnl Then look for a static library. if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi ;; esac if test "X$found_dir" != "X"; then break fi done fi if test "X$found_dir" != "X"; then dnl Found the library. LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name" if test "X$found_so" != "X"; then dnl Linking with a shared library. We attempt to hardcode its dnl directory into the executable's runpath, unless it's the dnl standard /usr/lib. if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/$acl_libdirstem"; then dnl No hardcoding is needed. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else dnl Use an explicit option to hardcode DIR into the resulting dnl binary. dnl Potentially add DIR to ltrpathdirs. dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. haveit= for x in $ltrpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $found_dir" fi dnl The hardcoding into $LIBNAME is system dependent. if test "$acl_hardcode_direct" = yes; then dnl Using DIR/libNAME.so during linking hardcodes DIR into the dnl resulting binary. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then dnl Use an explicit option to hardcode DIR into the resulting dnl binary. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" dnl Potentially add DIR to rpathdirs. dnl The rpathdirs will be appended to $LIBNAME at the end. haveit= for x in $rpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $found_dir" fi else dnl Rely on "-L$found_dir". dnl But don't add it if it's already contained in the LDFLAGS dnl or the already constructed $LIBNAME haveit= for x in $LDFLAGS $LIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir" fi if test "$acl_hardcode_minus_L" != no; then dnl FIXME: Not sure whether we should use dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" dnl here. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else dnl We cannot use $acl_hardcode_runpath_var and LD_RUN_PATH dnl here, because this doesn't fit in flags passed to the dnl compiler. So give up. No hardcoding. This affects only dnl very old systems. dnl FIXME: Not sure whether we should use dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" dnl here. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" fi fi fi fi else if test "X$found_a" != "X"; then dnl Linking with a static library. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a" else dnl We shouldn't come here, but anyway it's good to have a dnl fallback. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name" fi fi dnl Assume the include files are nearby. additional_includedir= case "$found_dir" in */$acl_libdirstem | */$acl_libdirstem/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` LIB[]NAME[]_PREFIX="$basedir" additional_includedir="$basedir/include" ;; esac if test "X$additional_includedir" != "X"; then dnl Potentially add $additional_includedir to $INCNAME. dnl But don't add it dnl 1. if it's the standard /usr/include, dnl 2. if it's /usr/local/include and we are using GCC on Linux, dnl 3. if it's already present in $CPPFLAGS or the already dnl constructed $INCNAME, dnl 4. if it doesn't exist as a directory. if test "X$additional_includedir" != "X/usr/include"; then haveit= if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then for x in $CPPFLAGS $INC[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_includedir"; then dnl Really add $additional_includedir to $INCNAME. INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir" fi fi fi fi fi dnl Look for dependencies. if test -n "$found_la"; then dnl Read the .la file. It defines the variables dnl dlname, library_names, old_library, dependency_libs, current, dnl age, revision, installed, dlopen, dlpreopen, libdir. save_libdir="$libdir" case "$found_la" in */* | *\\*) . "$found_la" ;; *) . "./$found_la" ;; esac libdir="$save_libdir" dnl We use only dependency_libs. for dep in $dependency_libs; do case "$dep" in -L*) 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/$acl_libdirstem"; then haveit= if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then haveit= for x in $LDFLAGS $LIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$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 "$acl_hardcode_libdir_separator"; then dnl Weird platform: only the last -rpath option counts, the user must dnl pass all path elements in one option. We can arrange that for a dnl single library, but not when more than one $LIBNAMEs are used. alldirs= for found_dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" done dnl Note: acl_hardcode_libdir_flag_spec uses $libdir and $wl. acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" else dnl The -rpath options are cumulative. for found_dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$found_dir" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" done fi fi if test "X$ltrpathdirs" != "X"; then dnl When using libtool, the option that works for both libraries and dnl executables is -R. The -R options are cumulative. for found_dir in $ltrpathdirs; do LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir" done fi ]) dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR, dnl unless already present in VAR. dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes dnl contains two or three consecutive elements that belong together. AC_DEFUN([AC_LIB_APPENDTOVAR], [ for element in [$2]; do haveit= for x in $[$1]; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X$element"; then haveit=yes break fi done if test -z "$haveit"; then [$1]="${[$1]}${[$1]:+ }$element" fi done ]) dnl For those cases where a variable contains several -L and -l options dnl referring to unknown libraries and directories, this macro determines the dnl necessary additional linker options for the runtime path. dnl AC_LIB_LINKFLAGS_FROM_LIBS([LDADDVAR], [LIBSVALUE], [USE-LIBTOOL]) dnl sets LDADDVAR to linker options needed together with LIBSVALUE. dnl If USE-LIBTOOL evaluates to non-empty, linking with libtool is assumed, dnl otherwise linking without libtool is assumed. AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS], [ AC_REQUIRE([AC_LIB_RPATH]) AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) $1= if test "$enable_rpath" != no; then if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then dnl Use an explicit option to hardcode directories into the resulting dnl binary. rpathdirs= next= for opt in $2; do if test -n "$next"; then dir="$next" dnl No need to hardcode the standard /usr/lib. if test "X$dir" != "X/usr/$acl_libdirstem"; then rpathdirs="$rpathdirs $dir" fi next= else case $opt in -L) next=yes ;; -L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'` dnl No need to hardcode the standard /usr/lib. if test "X$dir" != "X/usr/$acl_libdirstem"; then rpathdirs="$rpathdirs $dir" fi next= ;; *) next= ;; esac fi done if test "X$rpathdirs" != "X"; then if test -n ""$3""; then dnl libtool is used for linking. Use -R options. for dir in $rpathdirs; do $1="${$1}${$1:+ }-R$dir" done else dnl The linker is used for linking directly. if test -n "$acl_hardcode_libdir_separator"; then dnl Weird platform: only the last -rpath option counts, the user dnl must pass all path elements in one option. alldirs= for dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$dir" done acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" $1="$flag" else dnl The -rpath options are cumulative. for dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$dir" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" $1="${$1}${$1:+ }$flag" done fi fi fi fi fi AC_SUBST([$1]) ]) enscript-1.6.5.90/m4/iconv.m40000644000175000017500000001375311606344062012435 00000000000000# iconv.m4 serial AM6 (gettext-0.17) dnl Copyright (C) 2000-2002, 2007 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. AC_DEFUN([AM_ICONV_LINKFLAGS_BODY], [ dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV dnl accordingly. AC_LIB_LINKFLAGS_BODY([iconv]) ]) AC_DEFUN([AM_ICONV_LINK], [ dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and dnl those with the standalone portable GNU libiconv installed). AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV dnl accordingly. AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) dnl Add $INCICONV to CPPFLAGS before performing the following checks, dnl because if the user has installed libiconv and not disabled its use dnl via --without-libiconv-prefix, he wants to use it. The first dnl AC_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_CACHE_CHECK([for working iconv], am_cv_func_iconv_works, [ dnl This tests against bugs in AIX 5.1 and HP-UX 11.11. am_save_LIBS="$LIBS" if test $am_cv_lib_iconv = yes; then LIBS="$LIBS $LIBICONV" fi AC_TRY_RUN([ #include #include int main () { /* Test against AIX 5.1 bug: Failures are not distinguishable from successful returns. */ { iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8"); if (cd_utf8_to_88591 != (iconv_t)(-1)) { static const char input[] = "\342\202\254"; /* EURO SIGN */ char buf[10]; const char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_utf8_to_88591, (char **) &inptr, &inbytesleft, &outptr, &outbytesleft); if (res == 0) return 1; } } #if 0 /* This bug could be worked around by the caller. */ /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */ { iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591"); if (cd_88591_to_utf8 != (iconv_t)(-1)) { static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; char buf[50]; const char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_88591_to_utf8, (char **) &inptr, &inbytesleft, &outptr, &outbytesleft); if ((int)res > 0) return 1; } } #endif /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is provided. */ if (/* Try standardized names. */ iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1) /* Try IRIX, OSF/1 names. */ && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1) /* Try AIX names. */ && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1) /* Try HP-UX names. */ && iconv_open ("utf8", "eucJP") == (iconv_t)(-1)) return 1; return 0; }], [am_cv_func_iconv_works=yes], [am_cv_func_iconv_works=no], [case "$host_os" in aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; *) am_cv_func_iconv_works="guessing yes" ;; esac]) LIBS="$am_save_LIBS" ]) case "$am_cv_func_iconv_works" in *no) am_func_iconv=no am_cv_lib_iconv=no ;; *) am_func_iconv=yes ;; esac else am_func_iconv=no am_cv_lib_iconv=no fi if test "$am_func_iconv" = yes; then AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function and it works.]) fi if test "$am_cv_lib_iconv" = yes; then AC_MSG_CHECKING([how to link with libiconv]) AC_MSG_RESULT([$LIBICONV]) else dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV dnl either. CPPFLAGS="$am_save_CPPFLAGS" LIBICONV= LTLIBICONV= fi AC_SUBST(LIBICONV) AC_SUBST(LTLIBICONV) ]) 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 ]) enscript-1.6.5.90/m4/intdiv0.m40000644000175000017500000000443111606344062012665 00000000000000# intdiv0.m4 serial 2 (gettext-0.17) dnl Copyright (C) 2002, 2007 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. AC_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, [ gt_cv_int_divbyzero_sigfpe= changequote(,)dnl case "$host_os" in macos* | darwin[6-9]* | darwin[1-9][0-9]*) # On MacOS X 10.2 or newer, just assume the same as when cross- # compiling. If we were to perform the real test, 1 Crash Report # dialog window would pop up. case "$host_cpu" in i[34567]86 | x86_64) gt_cv_int_divbyzero_sigfpe="guessing yes" ;; esac ;; esac changequote([,])dnl if test -z "$gt_cv_int_divbyzero_sigfpe"; then AC_TRY_RUN([ #include #include static void sigfpe_handler (int sig) { /* 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. changequote(,)dnl case "$host_cpu" in alpha* | i[34567]86 | x86_64 | m68k | s390*) gt_cv_int_divbyzero_sigfpe="guessing yes";; *) gt_cv_int_divbyzero_sigfpe="guessing no";; esac changequote([,])dnl ]) fi ]) 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.]) ]) enscript-1.6.5.90/m4/codeset.m40000644000175000017500000000136611606344062012742 00000000000000# codeset.m4 serial 2 (gettext-0.16) dnl Copyright (C) 2000-2002, 2006 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. AC_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); return !cs;], am_cv_langinfo_codeset=yes, am_cv_langinfo_codeset=no) ]) if test $am_cv_langinfo_codeset = yes; then AC_DEFINE(HAVE_LANGINFO_CODESET, 1, [Define if you have and nl_langinfo(CODESET).]) fi ]) enscript-1.6.5.90/m4/lcmessage.m40000644000175000017500000000240411606344063013252 00000000000000# lcmessage.m4 serial 4 (gettext-0.14.2) dnl Copyright (C) 1995-2002, 2004-2005 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can 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([gt_LC_MESSAGES], [ AC_CACHE_CHECK([for LC_MESSAGES], gt_cv_val_LC_MESSAGES, [AC_TRY_LINK([#include ], [return LC_MESSAGES], gt_cv_val_LC_MESSAGES=yes, gt_cv_val_LC_MESSAGES=no)]) if test $gt_cv_val_LC_MESSAGES = yes; then AC_DEFINE(HAVE_LC_MESSAGES, 1, [Define if your file defines LC_MESSAGES.]) fi ]) enscript-1.6.5.90/m4/intl.m40000644000175000017500000002525011606344062012260 00000000000000# intl.m4 serial 8 (gettext-0.17) dnl Copyright (C) 1995-2007 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can 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-2006. AC_PREREQ(2.52) 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_PROG_MKDIR_P])dnl defined by automake AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([gt_GLIBC2])dnl AC_REQUIRE([AC_PROG_RANLIB])dnl AC_REQUIRE([gl_VISIBILITY])dnl AC_REQUIRE([gt_INTL_SUBDIR_CORE])dnl AC_REQUIRE([AC_TYPE_LONG_LONG_INT])dnl AC_REQUIRE([gt_TYPE_WCHAR_T])dnl AC_REQUIRE([gt_TYPE_WINT_T])dnl AC_REQUIRE([gl_AC_HEADER_INTTYPES_H]) AC_REQUIRE([gt_TYPE_INTMAX_T]) AC_REQUIRE([gt_PRINTF_POSIX]) AC_REQUIRE([gl_GLIBC21])dnl AC_REQUIRE([gl_XSIZE])dnl AC_REQUIRE([gt_INTL_MACOSX])dnl AC_CHECK_TYPE([ptrdiff_t], , [AC_DEFINE([ptrdiff_t], [long], [Define as the type of the result of subtracting two pointers, if the system doesn't define it.]) ]) AC_CHECK_HEADERS([stddef.h stdlib.h string.h]) AC_CHECK_FUNCS([asprintf fwprintf putenv setenv setlocale snprintf wcslen]) dnl Use the _snprintf function only if it is declared (because on NetBSD it dnl is defined as a weak alias of snprintf; we prefer to use the latter). gt_CHECK_DECL(_snprintf, [#include ]) gt_CHECK_DECL(_snwprintf, [#include ]) dnl Use the *_unlocked functions only if they are declared. dnl (because some of them were defined without being declared in Solaris dnl 2.5.1 but were removed in Solaris 2.6, whereas we want binaries built dnl on Solaris 2.5.1 to run on Solaris 2.6). dnl Don't use AC_CHECK_DECLS because it isn't supported in autoconf-2.13. gt_CHECK_DECL(getc_unlocked, [#include ]) case $gt_cv_func_printf_posix in *yes) HAVE_POSIX_PRINTF=1 ;; *) HAVE_POSIX_PRINTF=0 ;; esac AC_SUBST([HAVE_POSIX_PRINTF]) if test "$ac_cv_func_asprintf" = yes; then HAVE_ASPRINTF=1 else HAVE_ASPRINTF=0 fi AC_SUBST([HAVE_ASPRINTF]) if test "$ac_cv_func_snprintf" = yes; then HAVE_SNPRINTF=1 else HAVE_SNPRINTF=0 fi AC_SUBST([HAVE_SNPRINTF]) if test "$ac_cv_func_wprintf" = yes; then HAVE_WPRINTF=1 else HAVE_WPRINTF=0 fi AC_SUBST([HAVE_WPRINTF]) AM_LANGINFO_CODESET gt_LC_MESSAGES dnl Compilation on mingw and Cygwin needs special Makefile rules, because dnl 1. when we install a shared library, we must arrange to export dnl auxiliary pointer variables for every exported variable, dnl 2. when we install a shared library and a static library simultaneously, dnl the include file specifies __declspec(dllimport) and therefore we dnl must arrange to define the auxiliary pointer variables for the dnl exported variables _also_ in the static library. if test "$enable_shared" = yes; then case "$host_os" in mingw* | cygwin*) is_woe32dll=yes ;; *) is_woe32dll=no ;; esac else is_woe32dll=no fi WOE32DLL=$is_woe32dll AC_SUBST([WOE32DLL]) dnl On mingw and Cygwin, we can activate special Makefile rules which add dnl version information to the shared libraries and executables. case "$host_os" in mingw* | cygwin*) is_woe32=yes ;; *) is_woe32=no ;; esac WOE32=$is_woe32 AC_SUBST([WOE32]) if test $WOE32 = yes; then dnl Check for a program that compiles Windows resource files. AC_CHECK_TOOL([WINDRES], [windres]) fi dnl Determine whether when creating a library, "-lc" should be passed to dnl libtool or not. On many platforms, it is required for the libtool option dnl -no-undefined to work. On HP-UX, however, the -lc - stored by libtool dnl in the *.la files - makes it impossible to create multithreaded programs, dnl because libtool also reorders the -lc to come before the -pthread, and dnl this disables pthread_create() . case "$host_os" in hpux*) LTLIBC="" ;; *) LTLIBC="-lc" ;; esac AC_SUBST([LTLIBC]) dnl Rename some macros and functions used for locking. AH_BOTTOM([ #define __libc_lock_t gl_lock_t #define __libc_lock_define gl_lock_define #define __libc_lock_define_initialized gl_lock_define_initialized #define __libc_lock_init gl_lock_init #define __libc_lock_lock gl_lock_lock #define __libc_lock_unlock gl_lock_unlock #define __libc_lock_recursive_t gl_recursive_lock_t #define __libc_lock_define_recursive gl_recursive_lock_define #define __libc_lock_define_initialized_recursive gl_recursive_lock_define_initialized #define __libc_lock_init_recursive gl_recursive_lock_init #define __libc_lock_lock_recursive gl_recursive_lock_lock #define __libc_lock_unlock_recursive gl_recursive_lock_unlock #define glthread_in_use libintl_thread_in_use #define glthread_lock_init libintl_lock_init #define glthread_lock_lock libintl_lock_lock #define glthread_lock_unlock libintl_lock_unlock #define glthread_lock_destroy libintl_lock_destroy #define glthread_rwlock_init libintl_rwlock_init #define glthread_rwlock_rdlock libintl_rwlock_rdlock #define glthread_rwlock_wrlock libintl_rwlock_wrlock #define glthread_rwlock_unlock libintl_rwlock_unlock #define glthread_rwlock_destroy libintl_rwlock_destroy #define glthread_recursive_lock_init libintl_recursive_lock_init #define glthread_recursive_lock_lock libintl_recursive_lock_lock #define glthread_recursive_lock_unlock libintl_recursive_lock_unlock #define glthread_recursive_lock_destroy libintl_recursive_lock_destroy #define glthread_once libintl_once #define glthread_once_call libintl_once_call #define glthread_once_singlethreaded libintl_once_singlethreaded ]) ]) dnl Checks for the core files of the intl subdirectory: dnl dcigettext.c dnl eval-plural.h dnl explodename.c dnl finddomain.c dnl gettextP.h dnl gmo.h dnl hash-string.h hash-string.c dnl l10nflist.c dnl libgnuintl.h.in (except the *printf stuff) dnl loadinfo.h dnl loadmsgcat.c dnl localealias.c dnl log.c dnl plural-exp.h plural-exp.c dnl plural.y dnl Used by libglocale. AC_DEFUN([gt_INTL_SUBDIR_CORE], [ AC_REQUIRE([AC_C_INLINE])dnl AC_REQUIRE([AC_TYPE_SIZE_T])dnl AC_REQUIRE([gl_AC_HEADER_STDINT_H]) AC_REQUIRE([AC_FUNC_ALLOCA])dnl AC_REQUIRE([AC_FUNC_MMAP])dnl AC_REQUIRE([gt_INTDIV0])dnl AC_REQUIRE([gl_AC_TYPE_UINTMAX_T])dnl AC_REQUIRE([gt_INTTYPES_PRI])dnl AC_REQUIRE([gl_LOCK])dnl AC_TRY_LINK( [int foo (int a) { a = __builtin_expect (a, 10); return a == 10 ? 0 : 1; }], [], [AC_DEFINE([HAVE_BUILTIN_EXPECT], 1, [Define to 1 if the compiler understands __builtin_expect.])]) AC_CHECK_HEADERS([argz.h inttypes.h limits.h unistd.h sys/param.h]) AC_CHECK_FUNCS([getcwd getegid geteuid getgid getuid mempcpy munmap \ stpcpy strcasecmp strdup strtoul tsearch argz_count argz_stringify \ argz_next __fsetlocking]) dnl Use the *_unlocked functions only if they are declared. dnl (because some of them were defined without being declared in Solaris dnl 2.5.1 but were removed in Solaris 2.6, whereas we want binaries built dnl on Solaris 2.5.1 to run on Solaris 2.6). dnl Don't use AC_CHECK_DECLS because it isn't supported in autoconf-2.13. gt_CHECK_DECL(feof_unlocked, [#include ]) gt_CHECK_DECL(fgets_unlocked, [#include ]) AM_ICONV dnl glibc >= 2.4 has a NL_LOCALE_NAME macro when _GNU_SOURCE is defined, dnl and a _NL_LOCALE_NAME macro always. AC_CACHE_CHECK([for NL_LOCALE_NAME macro], gt_cv_nl_locale_name, [AC_TRY_LINK([#include #include ], [char* cs = nl_langinfo(_NL_LOCALE_NAME(LC_MESSAGES)); return !cs; ], gt_cv_nl_locale_name=yes, gt_cv_nl_locale_name=no) ]) if test $gt_cv_nl_locale_name = yes; then AC_DEFINE(HAVE_NL_LOCALE_NAME, 1, [Define if you have and it defines the NL_LOCALE_NAME macro if _GNU_SOURCE is defined.]) 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 ]) dnl gt_CHECK_DECL(FUNC, INCLUDES) dnl Check whether a function is declared. AC_DEFUN([gt_CHECK_DECL], [ AC_CACHE_CHECK([whether $1 is declared], ac_cv_have_decl_$1, [AC_TRY_COMPILE([$2], [ #ifndef $1 char *p = (char *) $1; #endif ], ac_cv_have_decl_$1=yes, ac_cv_have_decl_$1=no)]) if test $ac_cv_have_decl_$1 = yes; then gt_value=1 else gt_value=0 fi AC_DEFINE_UNQUOTED([HAVE_DECL_]translit($1, [a-z], [A-Z]), [$gt_value], [Define to 1 if you have the declaration of `$1', and to 0 if you don't.]) ]) enscript-1.6.5.90/m4/wchar_t.m40000644000175000017500000000132611606344063012740 00000000000000# wchar_t.m4 serial 1 (gettext-0.12) dnl Copyright (C) 2002-2003 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl Test whether has the 'wchar_t' type. dnl Prerequisite: AC_PROG_CC AC_DEFUN([gt_TYPE_WCHAR_T], [ AC_CACHE_CHECK([for wchar_t], gt_cv_c_wchar_t, [AC_TRY_COMPILE([#include wchar_t foo = (wchar_t)'\0';], , gt_cv_c_wchar_t=yes, gt_cv_c_wchar_t=no)]) if test $gt_cv_c_wchar_t = yes; then AC_DEFINE(HAVE_WCHAR_T, 1, [Define if you have the 'wchar_t' type.]) fi ]) enscript-1.6.5.90/m4/progtest.m40000644000175000017500000000555011606344063013163 00000000000000# progtest.m4 serial 4 (gettext-0.14.2) dnl Copyright (C) 1996-2003, 2005 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can 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. AC_PREREQ(2.50) # Search path for a program which passes the given test. dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) AC_DEFUN([AM_PATH_PROG_WITH_TEST], [ # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then 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 # Find out how to test for executable files. Don't use a zero-byte file, # as systems may use methods other than mode bits to determine executability. cat >conf$$.file <<_ASEOF #! /bin/sh exit 0 _ASEOF chmod +x conf$$.file if test -x conf$$.file >/dev/null 2>&1; then ac_executable_p="test -x" else ac_executable_p="test -f" fi rm -f conf$$.file # Extract the first word of "$2", so it can be a program name with args. set dummy $2; ac_word=[$]2 AC_MSG_CHECKING([for $ac_word]) AC_CACHE_VAL(ac_cv_path_$1, [case "[$]$1" in [[\\/]]* | ?:[[\\/]]*) ac_cv_path_$1="[$]$1" # Let the user override the test with a path. ;; *) ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in ifelse([$5], , $PATH, [$5]); do IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then echo "$as_me: trying $ac_dir/$ac_word..." >&AS_MESSAGE_LOG_FD if [$3]; then ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext" break 2 fi fi done done IFS="$ac_save_IFS" dnl If no 4th arg is given, leave the cache variable unset, dnl so AC_PATH_PROGS will keep looking. ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" ])dnl ;; esac])dnl $1="$ac_cv_path_$1" if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then AC_MSG_RESULT([$]$1) else AC_MSG_RESULT(no) fi AC_SUBST($1)dnl ]) enscript-1.6.5.90/m4/uintmax_t.m40000644000175000017500000000211211606344063013313 00000000000000# uintmax_t.m4 serial 10 dnl Copyright (C) 1997-2004, 2007 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Paul Eggert. AC_PREREQ(2.13) # Define uintmax_t to 'unsigned long' or 'unsigned long long' # if it is not already defined in or . AC_DEFUN([gl_AC_TYPE_UINTMAX_T], [ AC_REQUIRE([gl_AC_HEADER_INTTYPES_H]) AC_REQUIRE([gl_AC_HEADER_STDINT_H]) if test $gl_cv_header_inttypes_h = no && test $gl_cv_header_stdint_h = no; then AC_REQUIRE([AC_TYPE_UNSIGNED_LONG_LONG_INT]) test $ac_cv_type_unsigned_long_long_int = 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.]) else AC_DEFINE(HAVE_UINTMAX_T, 1, [Define if you have the 'uintmax_t' type in or .]) fi ]) enscript-1.6.5.90/m4/longlong.m40000644000175000017500000001005411606344063013126 00000000000000# longlong.m4 serial 13 dnl Copyright (C) 1999-2007 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Paul Eggert. # Define HAVE_LONG_LONG_INT if 'long long int' works. # This fixes a bug in Autoconf 2.61, but can be removed once we # assume 2.62 everywhere. # Note: If the type 'long long int' exists but is only 32 bits large # (as on some very old compilers), HAVE_LONG_LONG_INT will not be # defined. In this case you can treat 'long long int' like 'long int'. AC_DEFUN([AC_TYPE_LONG_LONG_INT], [ AC_CACHE_CHECK([for long long int], [ac_cv_type_long_long_int], [AC_LINK_IFELSE( [_AC_TYPE_LONG_LONG_SNIPPET], [dnl This catches a bug in Tandem NonStop Kernel (OSS) cc -O circa 2004. dnl If cross compiling, assume the bug isn't important, since dnl nobody cross compiles for this platform as far as we know. AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[@%:@include @%:@ifndef LLONG_MAX @%:@ define HALF \ (1LL << (sizeof (long long int) * CHAR_BIT - 2)) @%:@ define LLONG_MAX (HALF - 1 + HALF) @%:@endif]], [[long long int n = 1; int i; for (i = 0; ; i++) { long long int m = n << i; if (m >> i != n) return 1; if (LLONG_MAX / 2 < m) break; } return 0;]])], [ac_cv_type_long_long_int=yes], [ac_cv_type_long_long_int=no], [ac_cv_type_long_long_int=yes])], [ac_cv_type_long_long_int=no])]) if test $ac_cv_type_long_long_int = yes; then AC_DEFINE([HAVE_LONG_LONG_INT], 1, [Define to 1 if the system has the type `long long int'.]) fi ]) # Define HAVE_UNSIGNED_LONG_LONG_INT if 'unsigned long long int' works. # This fixes a bug in Autoconf 2.61, but can be removed once we # assume 2.62 everywhere. # Note: If the type 'unsigned long long int' exists but is only 32 bits # large (as on some very old compilers), AC_TYPE_UNSIGNED_LONG_LONG_INT # will not be defined. In this case you can treat 'unsigned long long int' # like 'unsigned long int'. AC_DEFUN([AC_TYPE_UNSIGNED_LONG_LONG_INT], [ AC_CACHE_CHECK([for unsigned long long int], [ac_cv_type_unsigned_long_long_int], [AC_LINK_IFELSE( [_AC_TYPE_LONG_LONG_SNIPPET], [ac_cv_type_unsigned_long_long_int=yes], [ac_cv_type_unsigned_long_long_int=no])]) if test $ac_cv_type_unsigned_long_long_int = yes; then AC_DEFINE([HAVE_UNSIGNED_LONG_LONG_INT], 1, [Define to 1 if the system has the type `unsigned long long int'.]) fi ]) # Expands to a C program that can be used to test for simultaneous support # of 'long long' and 'unsigned long long'. We don't want to say that # 'long long' is available if 'unsigned long long' is not, or vice versa, # because too many programs rely on the symmetry between signed and unsigned # integer types (excluding 'bool'). AC_DEFUN([_AC_TYPE_LONG_LONG_SNIPPET], [ AC_LANG_PROGRAM( [[/* Test preprocessor. */ #if ! (-9223372036854775807LL < 0 && 0 < 9223372036854775807ll) error in preprocessor; #endif #if ! (18446744073709551615ULL <= -1ull) error in preprocessor; #endif /* Test literals. */ long long int ll = 9223372036854775807ll; long long int nll = -9223372036854775807LL; unsigned long long int ull = 18446744073709551615ULL; /* Test constant expressions. */ typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll) ? 1 : -1)]; typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1 ? 1 : -1)]; int i = 63;]], [[/* Test availability of runtime routines for shift and division. */ long long int llmax = 9223372036854775807ll; unsigned long long int ullmax = 18446744073709551615ull; return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i) | (llmax / ll) | (llmax % ll) | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i) | (ullmax / ull) | (ullmax % ull));]]) ]) enscript-1.6.5.90/m4/xsize.m40000644000175000017500000000064511606344063012456 00000000000000# xsize.m4 serial 3 dnl Copyright (C) 2003-2004 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_XSIZE], [ dnl Prerequisites of lib/xsize.h. AC_REQUIRE([gl_SIZE_MAX]) AC_REQUIRE([AC_C_INLINE]) AC_CHECK_HEADERS(stdint.h) ]) enscript-1.6.5.90/m4/inttypes_h.m40000644000175000017500000000164411606344063013502 00000000000000# inttypes_h.m4 serial 7 dnl Copyright (C) 1997-2004, 2006 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Paul Eggert. # Define HAVE_INTTYPES_H_WITH_UINTMAX if exists, # doesn't clash with , and declares uintmax_t. AC_DEFUN([gl_AC_HEADER_INTTYPES_H], [ AC_CACHE_CHECK([for inttypes.h], gl_cv_header_inttypes_h, [AC_TRY_COMPILE( [#include #include ], [uintmax_t i = (uintmax_t) -1; return !i;], gl_cv_header_inttypes_h=yes, gl_cv_header_inttypes_h=no)]) if test $gl_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 ]) enscript-1.6.5.90/m4/inttypes-pri.m40000644000175000017500000000215211606344063013756 00000000000000# inttypes-pri.m4 serial 4 (gettext-0.16) dnl Copyright (C) 1997-2002, 2006 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. AC_PREREQ(2.52) # 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_CHECK_HEADERS([inttypes.h]) if test $ac_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.]) PRI_MACROS_BROKEN=1 else PRI_MACROS_BROKEN=0 fi AC_SUBST([PRI_MACROS_BROKEN]) ]) enscript-1.6.5.90/m4/lock.m40000644000175000017500000003022311606344063012237 00000000000000# lock.m4 serial 7 (gettext-0.17) dnl Copyright (C) 2005-2007 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl Tests for a multithreading library to be used. dnl Defines at most one of the macros USE_POSIX_THREADS, USE_SOLARIS_THREADS, dnl USE_PTH_THREADS, USE_WIN32_THREADS dnl Sets the variables LIBTHREAD and LTLIBTHREAD to the linker options for use dnl in a Makefile (LIBTHREAD for use without libtool, LTLIBTHREAD for use with dnl libtool). dnl Sets the variables LIBMULTITHREAD and LTLIBMULTITHREAD similarly, for dnl programs that really need multithread functionality. The difference dnl between LIBTHREAD and LIBMULTITHREAD is that on platforms supporting weak dnl symbols, typically LIBTHREAD="" whereas LIBMULTITHREAD="-lpthread". dnl Adds to CPPFLAGS the flag -D_REENTRANT or -D_THREAD_SAFE if needed for dnl multithread-safe programs. AC_DEFUN([gl_LOCK_EARLY], [ AC_REQUIRE([gl_LOCK_EARLY_BODY]) ]) dnl The guts of gl_LOCK_EARLY. Needs to be expanded only once. AC_DEFUN([gl_LOCK_EARLY_BODY], [ dnl Ordering constraints: This macro modifies CPPFLAGS in a way that dnl influences the result of the autoconf tests that test for *_unlocked dnl declarations, on AIX 5 at least. Therefore it must come early. AC_BEFORE([$0], [gl_FUNC_GLIBC_UNLOCKED_IO])dnl AC_BEFORE([$0], [gl_ARGP])dnl AC_REQUIRE([AC_CANONICAL_HOST]) dnl _GNU_SOURCE is needed for pthread_rwlock_t on glibc systems. dnl AC_USE_SYSTEM_EXTENSIONS was introduced in autoconf 2.60 and obsoletes dnl AC_GNU_SOURCE. m4_ifdef([AC_USE_SYSTEM_EXTENSIONS], [AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])], [AC_REQUIRE([AC_GNU_SOURCE])]) dnl Check for multithreading. AC_ARG_ENABLE(threads, AC_HELP_STRING([--enable-threads={posix|solaris|pth|win32}], [specify multithreading API]) AC_HELP_STRING([--disable-threads], [build without multithread safety]), [gl_use_threads=$enableval], [case "$host_os" in dnl Disable multithreading by default on OSF/1, because it interferes dnl with fork()/exec(): When msgexec is linked with -lpthread, its child dnl process gets an endless segmentation fault inside execvp(). osf*) gl_use_threads=no ;; *) gl_use_threads=yes ;; esac ]) if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then # For using : case "$host_os" in osf*) # On OSF/1, the compiler needs the flag -D_REENTRANT so that it # groks . cc also understands the flag -pthread, but # we don't use it because 1. gcc-2.95 doesn't understand -pthread, # 2. putting a flag into CPPFLAGS that has an effect on the linker # causes the AC_TRY_LINK test below to succeed unexpectedly, # leading to wrong values of LIBTHREAD and LTLIBTHREAD. CPPFLAGS="$CPPFLAGS -D_REENTRANT" ;; esac # Some systems optimize for single-threaded programs by default, and # need special flags to disable these optimizations. For example, the # definition of 'errno' in . case "$host_os" in aix* | freebsd*) CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE" ;; solaris*) CPPFLAGS="$CPPFLAGS -D_REENTRANT" ;; esac fi ]) dnl The guts of gl_LOCK. Needs to be expanded only once. AC_DEFUN([gl_LOCK_BODY], [ AC_REQUIRE([gl_LOCK_EARLY_BODY]) gl_threads_api=none LIBTHREAD= LTLIBTHREAD= LIBMULTITHREAD= LTLIBMULTITHREAD= if test "$gl_use_threads" != no; then dnl Check whether the compiler and linker support weak declarations. AC_MSG_CHECKING([whether imported symbols can be declared weak]) gl_have_weak=no AC_TRY_LINK([extern void xyzzy (); #pragma weak xyzzy], [xyzzy();], [gl_have_weak=yes]) AC_MSG_RESULT([$gl_have_weak]) if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then # On OSF/1, the compiler needs the flag -pthread or -D_REENTRANT so that # it groks . It's added above, in gl_LOCK_EARLY_BODY. AC_CHECK_HEADER(pthread.h, gl_have_pthread_h=yes, gl_have_pthread_h=no) if test "$gl_have_pthread_h" = yes; then # Other possible tests: # -lpthreads (FSU threads, PCthreads) # -lgthreads gl_have_pthread= # Test whether both pthread_mutex_lock and pthread_mutexattr_init exist # in libc. IRIX 6.5 has the first one in both libc and libpthread, but # the second one only in libpthread, and lock.c needs it. AC_TRY_LINK([#include ], [pthread_mutex_lock((pthread_mutex_t*)0); pthread_mutexattr_init((pthread_mutexattr_t*)0);], [gl_have_pthread=yes]) # Test for libpthread by looking for pthread_kill. (Not pthread_self, # since it is defined as a macro on OSF/1.) if test -n "$gl_have_pthread"; then # The program links fine without libpthread. But it may actually # need to link with libpthread in order to create multiple threads. AC_CHECK_LIB(pthread, pthread_kill, [LIBMULTITHREAD=-lpthread LTLIBMULTITHREAD=-lpthread # On Solaris and HP-UX, most pthread functions exist also in libc. # Therefore pthread_in_use() needs to actually try to create a # thread: pthread_create from libc will fail, whereas # pthread_create will actually create a thread. case "$host_os" in solaris* | hpux*) AC_DEFINE([PTHREAD_IN_USE_DETECTION_HARD], 1, [Define if the pthread_in_use() detection is hard.]) esac ]) else # Some library is needed. Try libpthread and libc_r. AC_CHECK_LIB(pthread, pthread_kill, [gl_have_pthread=yes LIBTHREAD=-lpthread LTLIBTHREAD=-lpthread LIBMULTITHREAD=-lpthread LTLIBMULTITHREAD=-lpthread]) if test -z "$gl_have_pthread"; then # For FreeBSD 4. AC_CHECK_LIB(c_r, pthread_kill, [gl_have_pthread=yes LIBTHREAD=-lc_r LTLIBTHREAD=-lc_r LIBMULTITHREAD=-lc_r LTLIBMULTITHREAD=-lc_r]) fi fi if test -n "$gl_have_pthread"; then gl_threads_api=posix AC_DEFINE([USE_POSIX_THREADS], 1, [Define if the POSIX multithreading library can be used.]) if test -n "$LIBMULTITHREAD" || test -n "$LTLIBMULTITHREAD"; then if test $gl_have_weak = yes; then AC_DEFINE([USE_POSIX_THREADS_WEAK], 1, [Define if references to the POSIX multithreading library should be made weak.]) LIBTHREAD= LTLIBTHREAD= fi fi # OSF/1 4.0 and MacOS X 10.1 lack the pthread_rwlock_t type and the # pthread_rwlock_* functions. AC_CHECK_TYPE([pthread_rwlock_t], [AC_DEFINE([HAVE_PTHREAD_RWLOCK], 1, [Define if the POSIX multithreading library has read/write locks.])], [], [#include ]) # glibc defines PTHREAD_MUTEX_RECURSIVE as enum, not as a macro. AC_TRY_COMPILE([#include ], [#if __FreeBSD__ == 4 error "No, in FreeBSD 4.0 recursive mutexes actually don't work." #else int x = (int)PTHREAD_MUTEX_RECURSIVE; return !x; #endif], [AC_DEFINE([HAVE_PTHREAD_MUTEX_RECURSIVE], 1, [Define if the defines PTHREAD_MUTEX_RECURSIVE.])]) fi fi fi if test -z "$gl_have_pthread"; then if test "$gl_use_threads" = yes || test "$gl_use_threads" = solaris; then gl_have_solaristhread= gl_save_LIBS="$LIBS" LIBS="$LIBS -lthread" AC_TRY_LINK([#include #include ], [thr_self();], [gl_have_solaristhread=yes]) LIBS="$gl_save_LIBS" if test -n "$gl_have_solaristhread"; then gl_threads_api=solaris LIBTHREAD=-lthread LTLIBTHREAD=-lthread LIBMULTITHREAD="$LIBTHREAD" LTLIBMULTITHREAD="$LTLIBTHREAD" AC_DEFINE([USE_SOLARIS_THREADS], 1, [Define if the old Solaris multithreading library can be used.]) if test $gl_have_weak = yes; then AC_DEFINE([USE_SOLARIS_THREADS_WEAK], 1, [Define if references to the old Solaris multithreading library should be made weak.]) LIBTHREAD= LTLIBTHREAD= fi fi fi fi if test "$gl_use_threads" = pth; then gl_save_CPPFLAGS="$CPPFLAGS" AC_LIB_LINKFLAGS(pth) gl_have_pth= gl_save_LIBS="$LIBS" LIBS="$LIBS -lpth" AC_TRY_LINK([#include ], [pth_self();], gl_have_pth=yes) LIBS="$gl_save_LIBS" if test -n "$gl_have_pth"; then gl_threads_api=pth LIBTHREAD="$LIBPTH" LTLIBTHREAD="$LTLIBPTH" LIBMULTITHREAD="$LIBTHREAD" LTLIBMULTITHREAD="$LTLIBTHREAD" AC_DEFINE([USE_PTH_THREADS], 1, [Define if the GNU Pth multithreading library can be used.]) if test -n "$LIBMULTITHREAD" || test -n "$LTLIBMULTITHREAD"; then if test $gl_have_weak = yes; then AC_DEFINE([USE_PTH_THREADS_WEAK], 1, [Define if references to the GNU Pth multithreading library should be made weak.]) LIBTHREAD= LTLIBTHREAD= fi fi else CPPFLAGS="$gl_save_CPPFLAGS" fi fi if test -z "$gl_have_pthread"; then if test "$gl_use_threads" = yes || test "$gl_use_threads" = win32; then if { case "$host_os" in mingw*) true;; *) false;; esac }; then gl_threads_api=win32 AC_DEFINE([USE_WIN32_THREADS], 1, [Define if the Win32 multithreading API can be used.]) fi fi fi fi AC_MSG_CHECKING([for multithread API to use]) AC_MSG_RESULT([$gl_threads_api]) AC_SUBST(LIBTHREAD) AC_SUBST(LTLIBTHREAD) AC_SUBST(LIBMULTITHREAD) AC_SUBST(LTLIBMULTITHREAD) ]) AC_DEFUN([gl_LOCK], [ AC_REQUIRE([gl_LOCK_EARLY]) AC_REQUIRE([gl_LOCK_BODY]) gl_PREREQ_LOCK ]) # Prerequisites of lib/lock.c. AC_DEFUN([gl_PREREQ_LOCK], [ AC_REQUIRE([AC_C_INLINE]) ]) dnl Survey of platforms: dnl dnl Platform Available Compiler Supports test-lock dnl flavours option weak result dnl --------------- --------- --------- -------- --------- dnl Linux 2.4/glibc posix -lpthread Y OK dnl dnl GNU Hurd/glibc posix dnl dnl FreeBSD 5.3 posix -lc_r Y dnl posix -lkse ? Y dnl posix -lpthread ? Y dnl posix -lthr Y dnl dnl FreeBSD 5.2 posix -lc_r Y dnl posix -lkse Y dnl posix -lthr Y dnl dnl FreeBSD 4.0,4.10 posix -lc_r Y OK dnl dnl NetBSD 1.6 -- dnl dnl OpenBSD 3.4 posix -lpthread Y OK dnl dnl MacOS X 10.[123] posix -lpthread Y OK dnl dnl Solaris 7,8,9 posix -lpthread Y Sol 7,8: 0.0; Sol 9: OK dnl solaris -lthread Y Sol 7,8: 0.0; Sol 9: OK dnl dnl HP-UX 11 posix -lpthread N (cc) OK dnl Y (gcc) dnl dnl IRIX 6.5 posix -lpthread Y 0.5 dnl dnl AIX 4.3,5.1 posix -lpthread N AIX 4: 0.5; AIX 5: OK dnl dnl OSF/1 4.0,5.1 posix -pthread (cc) N OK dnl -lpthread (gcc) Y dnl dnl Cygwin posix -lpthread Y OK dnl dnl Any of the above pth -lpth 0.0 dnl dnl Mingw win32 N OK dnl dnl BeOS 5 -- dnl dnl The test-lock result shows what happens if in test-lock.c EXPLICIT_YIELD is dnl turned off: dnl OK if all three tests terminate OK, dnl 0.5 if the first test terminates OK but the second one loops endlessly, dnl 0.0 if the first test already loops endlessly. enscript-1.6.5.90/m4/visibility.m40000644000175000017500000000413011606344063013474 00000000000000# visibility.m4 serial 1 (gettext-0.15) dnl Copyright (C) 2005 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl Tests whether the compiler supports the command-line option dnl -fvisibility=hidden and the function and variable attributes dnl __attribute__((__visibility__("hidden"))) and dnl __attribute__((__visibility__("default"))). dnl Does *not* test for __visibility__("protected") - which has tricky dnl semantics (see the 'vismain' test in glibc) and does not exist e.g. on dnl MacOS X. dnl Does *not* test for __visibility__("internal") - which has processor dnl dependent semantics. dnl Does *not* test for #pragma GCC visibility push(hidden) - which is dnl "really only recommended for legacy code". dnl Set the variable CFLAG_VISIBILITY. dnl Defines and sets the variable HAVE_VISIBILITY. AC_DEFUN([gl_VISIBILITY], [ AC_REQUIRE([AC_PROG_CC]) CFLAG_VISIBILITY= HAVE_VISIBILITY=0 if test -n "$GCC"; then AC_MSG_CHECKING([for simple visibility declarations]) AC_CACHE_VAL(gl_cv_cc_visibility, [ gl_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -fvisibility=hidden" AC_TRY_COMPILE( [extern __attribute__((__visibility__("hidden"))) int hiddenvar; extern __attribute__((__visibility__("default"))) int exportedvar; extern __attribute__((__visibility__("hidden"))) int hiddenfunc (void); extern __attribute__((__visibility__("default"))) int exportedfunc (void);], [], gl_cv_cc_visibility=yes, gl_cv_cc_visibility=no) CFLAGS="$gl_save_CFLAGS"]) AC_MSG_RESULT([$gl_cv_cc_visibility]) if test $gl_cv_cc_visibility = yes; then CFLAG_VISIBILITY="-fvisibility=hidden" HAVE_VISIBILITY=1 fi fi AC_SUBST([CFLAG_VISIBILITY]) AC_SUBST([HAVE_VISIBILITY]) AC_DEFINE_UNQUOTED([HAVE_VISIBILITY], [$HAVE_VISIBILITY], [Define to 1 or 0, depending whether the compiler supports simple visibility declarations.]) ]) enscript-1.6.5.90/m4/wint_t.m40000644000175000017500000000170711606344063012620 00000000000000# wint_t.m4 serial 2 (gettext-0.17) dnl Copyright (C) 2003, 2007 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl Test whether has the 'wint_t' type. dnl Prerequisite: AC_PROG_CC AC_DEFUN([gt_TYPE_WINT_T], [ AC_CACHE_CHECK([for wint_t], gt_cv_c_wint_t, [AC_TRY_COMPILE([ /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include wint_t foo = (wchar_t)'\0';], , gt_cv_c_wint_t=yes, gt_cv_c_wint_t=no)]) if test $gt_cv_c_wint_t = yes; then AC_DEFINE(HAVE_WINT_T, 1, [Define if you have the 'wint_t' type.]) fi ]) enscript-1.6.5.90/m4/intlmacosx.m40000644000175000017500000000456511606344062013501 00000000000000# intlmacosx.m4 serial 1 (gettext-0.17) dnl Copyright (C) 2004-2007 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can 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 Checks for special options needed on MacOS X. dnl Defines INTL_MACOSX_LIBS. AC_DEFUN([gt_INTL_MACOSX], [ dnl Check for API introduced in MacOS X 10.2. AC_CACHE_CHECK([for CFPreferencesCopyAppValue], gt_cv_func_CFPreferencesCopyAppValue, [gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" AC_TRY_LINK([#include ], [CFPreferencesCopyAppValue(NULL, NULL)], [gt_cv_func_CFPreferencesCopyAppValue=yes], [gt_cv_func_CFPreferencesCopyAppValue=no]) LIBS="$gt_save_LIBS"]) if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], 1, [Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in the CoreFoundation framework.]) fi dnl Check for API introduced in MacOS X 10.3. AC_CACHE_CHECK([for CFLocaleCopyCurrent], gt_cv_func_CFLocaleCopyCurrent, [gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" AC_TRY_LINK([#include ], [CFLocaleCopyCurrent();], [gt_cv_func_CFLocaleCopyCurrent=yes], [gt_cv_func_CFLocaleCopyCurrent=no]) LIBS="$gt_save_LIBS"]) if test $gt_cv_func_CFLocaleCopyCurrent = yes; then AC_DEFINE([HAVE_CFLOCALECOPYCURRENT], 1, [Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the CoreFoundation framework.]) fi INTL_MACOSX_LIBS= if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" fi AC_SUBST([INTL_MACOSX_LIBS]) ]) enscript-1.6.5.90/m4/printf-posix.m40000644000175000017500000000271111606344063013752 00000000000000# printf-posix.m4 serial 3 (gettext-0.17) dnl Copyright (C) 2003, 2007 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl Test whether the printf() function supports POSIX/XSI format strings with dnl positions. AC_DEFUN([gt_PRINTF_POSIX], [ AC_REQUIRE([AC_PROG_CC]) AC_CACHE_CHECK([whether printf() supports POSIX/XSI format strings], gt_cv_func_printf_posix, [ AC_TRY_RUN([ #include #include /* The string "%2$d %1$d", with dollar characters protected from the shell's dollar expansion (possibly an autoconf bug). */ static char format[] = { '%', '2', '$', 'd', ' ', '%', '1', '$', 'd', '\0' }; static char buf[100]; int main () { sprintf (buf, format, 33, 55); return (strcmp (buf, "55 33") != 0); }], gt_cv_func_printf_posix=yes, gt_cv_func_printf_posix=no, [ AC_EGREP_CPP(notposix, [ #if defined __NetBSD__ || defined __BEOS__ || defined _MSC_VER || defined __MINGW32__ || defined __CYGWIN__ notposix #endif ], gt_cv_func_printf_posix="guessing no", gt_cv_func_printf_posix="guessing yes") ]) ]) case $gt_cv_func_printf_posix in *yes) AC_DEFINE(HAVE_POSIX_PRINTF, 1, [Define if your printf() function supports format strings with positions.]) ;; esac ]) enscript-1.6.5.90/m4/nls.m40000644000175000017500000000226611606344063012111 00000000000000# nls.m4 serial 3 (gettext-0.15) dnl Copyright (C) 1995-2003, 2005-2006 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can 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-2003. AC_PREREQ(2.50) AC_DEFUN([AM_NLS], [ AC_MSG_CHECKING([whether NLS is requested]) dnl Default is enabled NLS AC_ARG_ENABLE(nls, [ --disable-nls do not use Native Language Support], USE_NLS=$enableval, USE_NLS=yes) AC_MSG_RESULT($USE_NLS) AC_SUBST(USE_NLS) ]) enscript-1.6.5.90/m4/intmax.m40000644000175000017500000000201111606344063012601 00000000000000# intmax.m4 serial 3 (gettext-0.16) dnl Copyright (C) 2002-2005 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl Test whether the system has the 'intmax_t' type, but don't attempt to dnl find a replacement if it is lacking. AC_DEFUN([gt_TYPE_INTMAX_T], [ AC_REQUIRE([gl_AC_HEADER_INTTYPES_H]) AC_REQUIRE([gl_AC_HEADER_STDINT_H]) AC_CACHE_CHECK(for intmax_t, gt_cv_c_intmax_t, [AC_TRY_COMPILE([ #include #include #if HAVE_STDINT_H_WITH_UINTMAX #include #endif #if HAVE_INTTYPES_H_WITH_UINTMAX #include #endif ], [intmax_t x = -1; return !x;], gt_cv_c_intmax_t=yes, gt_cv_c_intmax_t=no)]) if test $gt_cv_c_intmax_t = yes; then AC_DEFINE(HAVE_INTMAX_T, 1, [Define if you have the 'intmax_t' type in or .]) fi ]) enscript-1.6.5.90/vms.txt0000644000175000017500000001524411132443252012073 00000000000000 VMS multinational character set octal hex PostScript HTML entity character ---------------------------------------------------------------------- 000 0x00 non-printable 001 0x01 non-printable 002 0x02 non-printable 003 0x03 non-printable 004 0x04 non-printable 005 0x05 non-printable 006 0x06 non-printable 007 0x07 non-printable 010 0x08 non-printable 011 0x09 non-printable 012 0x0a non-printable 013 0x0b non-printable 014 0x0c non-printable 015 0x0d non-printable 016 0x0e non-printable 017 0x0f non-printable 020 0x10 non-printable 021 0x11 non-printable 022 0x12 non-printable 023 0x13 non-printable 024 0x14 non-printable 025 0x15 non-printable 026 0x16 non-printable 027 0x17 non-printable 030 0x18 non-printable 031 0x19 non-printable 032 0x1a non-printable 033 0x1b non-printable 034 0x1c non-printable 035 0x1d non-printable 036 0x1e non-printable 037 0x1f non-printable 040 0x20 /space 041 0x21 /exclam ! 042 0x22 /quotedbl " " 043 0x23 /numbersign # 044 0x24 /dollar $ 045 0x25 /percent % 046 0x26 /ampersand & & 047 0x27 /quoteright ' 050 0x28 /parenleft ( 051 0x29 /parenright ) 052 0x2a /asterisk * 053 0x2b /plus + 054 0x2c /comma , 055 0x2d /hyphen - 056 0x2e /period . 057 0x2f /slash / 060 0x30 /zero 0 061 0x31 /one 1 062 0x32 /two 2 063 0x33 /three 3 064 0x34 /four 4 065 0x35 /five 5 066 0x36 /six 6 067 0x37 /seven 7 070 0x38 /eight 8 071 0x39 /nine 9 072 0x3a /colon : 073 0x3b /semicolon ; 074 0x3c /less < < 075 0x3d /equal = 076 0x3e /greater > > 077 0x3f /question ? 0100 0x40 /at @ 0101 0x41 /A A 0102 0x42 /B B 0103 0x43 /C C 0104 0x44 /D D 0105 0x45 /E E 0106 0x46 /F F 0107 0x47 /G G 0110 0x48 /H H 0111 0x49 /I I 0112 0x4a /J J 0113 0x4b /K K 0114 0x4c /L L 0115 0x4d /M M 0116 0x4e /N N 0117 0x4f /O O 0120 0x50 /P P 0121 0x51 /Q Q 0122 0x52 /R R 0123 0x53 /S S 0124 0x54 /T T 0125 0x55 /U U 0126 0x56 /V V 0127 0x57 /W W 0130 0x58 /X X 0131 0x59 /Y Y 0132 0x5a /Z Z 0133 0x5b /bracketleft [ 0134 0x5c /backslash \ 0135 0x5d /bracketright ] 0136 0x5e /asciicircum ^ 0137 0x5f /underscore _ 0140 0x60 /quoteleft ` 0141 0x61 /a a 0142 0x62 /b b 0143 0x63 /c c 0144 0x64 /d d 0145 0x65 /e e 0146 0x66 /f f 0147 0x67 /g g 0150 0x68 /h h 0151 0x69 /i i 0152 0x6a /j j 0153 0x6b /k k 0154 0x6c /l l 0155 0x6d /m m 0156 0x6e /n n 0157 0x6f /o o 0160 0x70 /p p 0161 0x71 /q q 0162 0x72 /r r 0163 0x73 /s s 0164 0x74 /t t 0165 0x75 /u u 0166 0x76 /v v 0167 0x77 /w w 0170 0x78 /x x 0171 0x79 /y y 0172 0x7a /z z 0173 0x7b /braceleft { 0174 0x7c /bar | 0175 0x7d /braceright } 0176 0x7e /tilde ~ 0177 0x7f non-printable 0200 0x80 non-printable 0201 0x81 non-printable 0202 0x82 non-printable 0203 0x83 non-printable 0204 0x84 non-printable 0205 0x85 non-printable 0206 0x86 non-printable 0207 0x87 non-printable 0210 0x88 non-printable 0211 0x89 non-printable 0212 0x8a non-printable 0213 0x8b non-printable 0214 0x8c non-printable 0215 0x8d non-printable 0216 0x8e non-printable 0217 0x8f non-printable 0220 0x90 non-printable 0221 0x91 non-printable 0222 0x92 non-printable 0223 0x93 non-printable 0224 0x94 non-printable 0225 0x95 non-printable 0226 0x96 non-printable 0227 0x97 non-printable 0230 0x98 non-printable 0231 0x99 non-printable 0232 0x9a non-printable 0233 0x9b non-printable 0234 0x9c non-printable 0235 0x9d non-printable 0236 0x9e non-printable 0237 0x9f non-printable 0240 0xa0 /space   0241 0xa1 /exclamdown ¡ 0242 0xa2 /cent ¢ 0243 0xa3 /sterling £ 0244 0xa4 non-printable 0245 0xa5 /yen ¥ 0246 0xa6 non-printable 0247 0xa7 /section § 0250 0xa8 /currency ¨ 0251 0xa9 /copyright © 0252 0xaa /ordfeminine ª 0253 0xab /guillemotleft « 0254 0xac non-printable 0255 0xad non-printable 0256 0xae non-printable 0257 0xaf non-printable 0260 0xb0 /degree ° 0261 0xb1 /plusminus ± 0262 0xb2 /twosuperior ² 0263 0xb3 /threesuperior ³ 0264 0xb4 non-printable 0265 0xb5 /mu µ 0266 0xb6 /paragraph ¶ 0267 0xb7 /bullet · 0270 0xb8 non-printable 0271 0xb9 /dotlessi ¹ 0272 0xba /ordmasculine º 0273 0xbb /guillemotright » 0274 0xbc /onequarter ¼ 0275 0xbd /onehalf ½ 0276 0xbe non-printable 0277 0xbf /questiondown ¿ 0300 0xc0 /Agrave À À 0301 0xc1 /Aacute Á Á 0302 0xc2 /Acircumflex   0303 0xc3 /Atilde à à 0304 0xc4 /Adieresis Ä Ä 0305 0xc5 /Aring Å Å 0306 0xc6 /AE Æ Æ 0307 0xc7 /Ccedilla Ç Ç 0310 0xc8 /Egrave È È 0311 0xc9 /Eacute É É 0312 0xca /Ecircumflex Ê Ê 0313 0xcb /Edieresis Ë Ë 0314 0xcc /Igrave Ì Ì 0315 0xcd /Iacute Í Í 0316 0xce /Icircumflex Î Î 0317 0xcf /Idieresis Ï Ï 0320 0xd0 non-printable 0321 0xd1 /Ntilde Ñ Ñ 0322 0xd2 /Ograve Ò Ò 0323 0xd3 /Oacute Ó Ó 0324 0xd4 /Ocircumflex Ô Ô 0325 0xd5 /Otilde Õ Õ 0326 0xd6 /Odieresis Ö Ö 0327 0xd7 /OE × 0330 0xd8 /Oslash Ø Ø 0331 0xd9 /Ugrave Ù Ù 0332 0xda /Uacute Ú Ú 0333 0xdb /Ucircumflex Û Û 0334 0xdc /Udieresis Ü Ü 0335 0xdd /Ydieresis Ý 0336 0xde non-printable 0337 0xdf /germandbls ß ß 0340 0xe0 /agrave à à 0341 0xe1 /aacute á á 0342 0xe2 /acircumflex â â 0343 0xe3 /atilde ã ã 0344 0xe4 /adieresis ä ä 0345 0xe5 /aring å å 0346 0xe6 /ae æ æ 0347 0xe7 /ccedilla ç ç 0350 0xe8 /egrave è è 0351 0xe9 /eacute é é 0352 0xea /ecircumflex ê ê 0353 0xeb /edieresis ë ë 0354 0xec /igrave ì ì 0355 0xed /iacute í í 0356 0xee /icircumflex î î 0357 0xef /idieresis ï ï 0360 0xf0 non-printable 0361 0xf1 /ntilde ñ ñ 0362 0xf2 /ograve ò ò 0363 0xf3 /oacute ó ó 0364 0xf4 /ocircumflex ô ô 0365 0xf5 /otilde õ õ 0366 0xf6 /odieresis ö ö 0367 0xf7 /oe ÷ 0370 0xf8 /oslash ø ø 0371 0xf9 /ugrave ù ù 0372 0xfa /uacute ú ú 0373 0xfb /ucircumflex û û 0374 0xfc /udieresis ü ü 0375 0xfd /ydieresis ÿ ý 0376 0xfe non-printable 0377 0xff non-printable enscript-1.6.5.90/README0000644000175000017500000002021711401303365011400 00000000000000 GNU Enscript ============ SPECIAL NOTE TO ALL AMERICAN (USA) USERS. Enscript's default output media (paper size) is A4. It is *not* Letter. To change the default, give the configure script the option `--with-media=Letter'. It goes like this: $ ./configure --with-media=Letter GNU Enscript is a drop-in replacement for the enscript program. Enscript converts ASCII files to PostScript and stores generated output to a file or sends it directly to the printer. Enscript is free software: you can redistribute 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. Enscript is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Enscript. If not, see . * Configuring Enscript for your system There are some options in enscript you might want to modify to meet your system's needs. You can change them all after the compilation by editing the global configuration file `enscript.cfg' at the directory `PREFIX/etc/'. You can also change some of the during the `configure' step by giving the configure script appropriate options. Please, check the following things before reporting bugs; for the most cases these help: ** Paper size As a default enscript uses A4 paper. To change default paper to be for example `Letter', edit following line in the config file: # Default output media. DefaultMedia: A4 => DefaultMedia: Letter You can also select the default paper size during the configuration by giving the configure script option --with-media=MEDIA, where media is one of the media listed in the `lib/enscript.cfg.in' file: A3, A4, A5, Legal, Letter, A4dj or Letterdj. ** Default output device As a default (without any explicit options) enscript spools its output to the printer. If you want to send outputs to stdout, edit following line: # Where output goes as a default. DefaultOutputMethod: printer => DefaultOutputMethod: stdout ** Printer command Enscript's default printer command is `lpr'. To change it to be for example `lp', edit following line: # Printer spooler command name. Spooler: lpr => Spooler: lp You can also set the spooler command during the configuration by giving the configure script option `--with-spooler=SPOOLER'. On SystemV machines, you might also want to change the printer queue name switch from `-P' to `-d': # The spooler command switch to select the printer queue. QueueParam: -P => QueueParam: -d ** PostScript language level The PostScript language level that enscript uses for its output. The default values is 2 (PostScript 2). If your printer supports only level 1 PostScript, you can set it to default by giving the configure script option `--with-ps-level=1'. You can also set the level by editing the enscript.cfg file: # The PostScript language level that enscript should use. PostScriptLevel: 2 => PostScriptLevel: 1 Or, you can select it at the print time with the `--ps-level=LEVEL' option: $ enscript --ps-level=1 ... * Supported Character Sets Enscript supports following character sets: - ISO-8859-1 ISO Latin1 (default) - ISO-8859-2 ISO Latin2 - ISO-8859-3 ISO Latin3 - ISO-8859-4 ISO Latin4 - ISO-8859-5 ISO Cyrillic - ISO-8859-7 ISO Greek - ascii 7 bit ascii - ascii fi se 7 bit ascii with following encodings: '{' = ä (adieresis) '|' = ö (odieresis) '}' = å (aring) '[' = Ä (Adieresis) '\\' = Ö (Odieresis) ']' = Å (Aring) - ascii dk no 7 bit ascii with following encodings: '{' = æ (ae) '|' = ø (oslash) '}' = å (aring) '[' = Æ (AE) '\\' = Ø (Oslash) ']' = Å (Aring) - IBM/PC standard PC/DOS character set - Mac Macintosh character set - VMS VMS multinational charset - hp8 HP Roman-8 charset - koi8 Adobe Standard Cyrillic Font KOI8 charset - ps PostScript font's default encoding - pslatin1 PostScript interpreter's `ISOLatin1Encoding' * Special Escapes Enscript supports special escapes sequences that can be used to add simple page formatting commands to ASCII documents. User can inline EPS files, change font on-the-fly insert comments and shade regions of text. See file README.ESCAPES for details. * Language sensitive highlighting Enscript supports language sensitive code highlighting. Highlighting is implemented by a special `states' program which processes the input files and annotates them with enscript's special escapes. The states definition file `enscript.st' is a machine independent ASCII file and it can be updated without re-compilation of the enscript program. The most recent version of this file can be downloaded from the GNU enscript WWW home page: . New highlighting definitions for different languages are welcome, please send them to: * PostScript font support ** AFM files Enscript supports AFM (Adobe Font Metrics) files. AFM files contain font metrics information (character widths, etc); if there is an AFM file for the current font, enscript can count line widths and tab stops correctly. Enscript distribution contains AFM files for the most common PostScript fonts. These AFM files are installed to the directory /share/enscript/. ** Fonts (.pfa or .pfb) Enscript supports also additional PostScript fonts which are defined in the `.pfa' or `.pfb' font files. Enscript automatically down-loads font's description to your PostScript document whenever you use an external disk font. Font down-loading requires that you have both the `.afm' and `.pf{a,b}' files for you extra fonts and you have created a font mapping file called `font.map' to your font directory. These are the steps that are needed to make your extra fonts usable in enscript: 1) Install the `.afm' and `.pf{a,b}' files to some appropriate directory. Note! for a single font, both the .afm and .pf{a,b} files must have the same prefix, filenames can differ only from the suffix part. For example, if font `FooFont' is defined in the file `foo.pfa', then the AFM file must be named `foo.afm'. 2) Create a font map file for the font directory. Enscript's distribution has an utility called `mkafmmap' which does the job; just give command: mkafmmap *.afm in your font directory. This command creates a file called `font.map' to your font directory. File contains one row for each .afm file, each row has two columns: font's PostScript name and the prefix for the corresponding .afm file. 3) Notify enscript that it has new fonts to play with. This is done by editing the global configuration file `enscript.cfg' or the personal configuration file `$HOME/.enscriptrc'. Global configuration file has an entry called 'AFMPath' which contains the current font search path. Add your new font directory to this path: AFMPath: /usr/local/share/enscript/afm:/usr/local/lib/ps:/usr/lib/ps:/fonts/myfontdir where `/fonts/myfontdir' is the new font directory. So how does the font down-loading work? Enscript automatically down-loads font files for header and body fonts, if it can find the corresponding `.pfa' or `.pfb' files from the AFMPath. Enscript do *not* down-load fonts that are specified in `^@font' escapes, however you can down-load these font by specifying command line option `--download-font=name' for each font. You can also specify down-loadable fonts in the global configuration file `enscript.cfg' or in your personal configuration file `$HOME/.enscriptrc' by giving option `DownloadFont: name'. * What's different as compared to the Adobe's Enscript application? - Adobe enscript's option `-o' has been changed. In Adobe enscript option `-o' lists missing characters. In GNU enscript `-o' is an alias for `-p' and missing characters are listed with an option `-O'. enscript-1.6.5.90/mtr.eps0000644000175000017500000013251011132443251012033 00000000000000%!PS-Adobe-2.0 EPSF-2.0 %%Title: /home/mtr/myprogs/enscript/mtr.eps %%Creator: XV Version 3.10a Rev: 12/29/94 - by John Bradley %%BoundingBox: 259 374 337 467 %%Pages: 1 %%DocumentFonts: %%EndComments %%EndProlog %%Page: 1 1 % remember original state /origstate save def % build a temporary dictionary 20 dict begin % define string to hold a scanline's worth of data /pix 234 string def % define space for color conversions /grays 78 string def % space for gray scale line /npixls 0 def /rgbindx 0 def % lower left corner 259 374 translate % size of image (on paper, in 1/72inch coords) 77.97600 93.02400 scale % define 'colorimage' if it isn't defined % ('colortogray' and 'mergeprocs' come from xwd2ps % via xgrab) /colorimage where % do we know about 'colorimage'? { pop } % yes: pop off the 'dict' returned { % no: define one /colortogray { % define an RGB->I function /rgbdata exch store % call input 'rgbdata' rgbdata length 3 idiv /npixls exch store /rgbindx 0 store 0 1 npixls 1 sub { grays exch rgbdata rgbindx get 20 mul % Red rgbdata rgbindx 1 add get 32 mul % Green rgbdata rgbindx 2 add get 12 mul % Blue add add 64 idiv % I = .5G + .31R + .18B put /rgbindx rgbindx 3 add store } for grays 0 npixls getinterval } bind def % Utility procedure for colorimage operator. % This procedure takes two procedures off the % stack and merges them into a single procedure. /mergeprocs { % def dup length 3 -1 roll dup length dup 5 1 roll 3 -1 roll add array cvx dup 3 -1 roll 0 exch putinterval dup 4 2 roll putinterval } bind def /colorimage { % def pop pop % remove 'false 3' operands {colortogray} mergeprocs image } bind def } ifelse % end of 'false' case 78 93 8 % dimensions of data [78 0 0 -93 0 93] % mapping matrix {currentfile pix readhexstring pop} false 3 colorimage b5b5b5b8b8b8bababababababababababababcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbc bcbcbcbcbcbcbabababababababababababab9b9b9bcbcbcbabababababababababababa bcbcbcbcbcbcbabababababababababababababababababab6b6b6b6b6b6b6b6b6b6b6b6 b4b4b4b4b4b4b4b4b4b4b4b4b2b2b2b2b2b2a5a5a5808080828282979797b2b2b2a4a4a4 9d9d9d6e6e6e6b6b6b8d8d8d9191918181816b6b6b7a7a7aa8a8a8abababa3a3a3a3a3a3 a4a4a4a4a4a4afafafbbbbbbc4c4c4c9c9c9b7b7b73232321e1e1e1f1f1f202020202020 212121202020212121212121212121232323 b9b9b9bcbcbcbababababababababababababcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbc bcbcbcbcbcbcbababababababababababababcbcbcb9b9b9babababababababababababa bcbcbcbcbcbcbabababababababababababababababababab6b6b6b6b6b6b6b6b6b6b6b6 b4b4b4b4b4b4b4b4b4b4b4b4b2b2b2b2b2b2a5a5a5808080808080989898c0c0c0848484 6b6b6b8b8b8b9595959191918989898c8c8c9494949e9e9ebdbdbdc0c0c0cacacacacaca cacacacacacac8c8c8c5c5c5bcbcbcbebebea0a0a04848481f1f1f1e1e1e1f1f1f1f1f1f 1d1d1d232323212121212121232323212121 bababababababababababababcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbc bcbcbcbcbcbcbcbcbcbcbcbcbabababababababababababababababababababababababa babababababababababababab8b8b8b8b8b8b9b9b9b8b8b8b6b6b6b6b6b6b6b6b6b6b6b6 b4b4b4b4b4b4b4b4b4b4b4b4b2b2b2b2b2b29c9c9c7f7f7f8080807474746565656e6e6e 6f6f6f6f6f6f7070706969697070707676766f6f6f7272726565655e5e5e5757575b5b5b 5a5a5a5a5a5a4747474949495050505555556161617a7a7a7373737b7b7b7e7e7e8c8c8c 8181817474746b6b6b8181818383837f7f7f bababababababababababababcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbc bcbcbcbcbcbcbcbcbcbcbcbcbabababababababababababababababababababababababa babababababababababababab8b8b8b8b8b8b9b9b9b8b8b8b6b6b6b6b6b6b6b6b6b6b6b6 b4b4b4b4b4b4b4b4b4b4b4b4b2b2b2b2b2b29c9c9c7f7f7f8080807474746f6f6f6e6e6e 6c6c6c7171717373737070707272726d6d6d7373737676767575756d6d6d7e7e7e717171 7373737373736161616464646161616565656d6d6d7777776b6b6b8080807272726c6c6c 7272727070706969697b7b7b7070706f6f6f bababababababababababababcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbc bcbcbcbcbcbcbcbcbcbcbcbcbabababababababababababab8b8b8b8b8b8b8b8b8b8b8b8 b8b8b8b8b8b8b8b8b8b8b8b8b6b6b6b6b6b6b6b6b6b6b6b6b4b4b4b4b4b4b4b4b4b4b4b4 b4b4b4b4b4b4b2b2b2b2b2b2afafafadadad979797818181808080767676707070747474 7070707777777474746f6f6f7878787b7b7b767676787878767676757575757575797979 7676767575756b6b6b7070706b6b6b6b6b6b6f6f6f7777776d6d6d7272728383837b7b7b 7979797171716060607e7e7e7f7f7f7b7b7b bababababababababababababcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbc bcbcbcbcbcbcbcbcbcbcbcbcbabababababababababababab8b8b8b8b8b8b8b8b8b8b8b8 b8b8b8b8b8b8b8b8b8b8b8b8b6b6b6b6b6b6b6b6b6b6b6b6b4b4b4b4b4b4b4b4b4b4b4b4 b4b4b4b4b4b4b2b2b2b2b2b2afafafadadad9797978181817e7e7e7373736c6c6c6a6a6a 6d6d6d7070707474746f6f6f6f6f6f6c6c6c6d6d6d757575767676787878737373737373 8282828282827070706e6e6e6b6b6b6b6b6b6f6f6f777777767676686868717171797979 7b7b7b7373735f5f5f7171717979797b7b7b b9b9b9bcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbc bcbcbcbcbcbcbabababababab8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8 b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b7b7b7b3b3b3b8b8b8b2b2b2abababacacacadadad b0b0b0b0b0b0acacacafafafabababaaaaaa9595958181817b7b7b6c6c6c636363626262 6363636d6d6d7070706868685e5e5e6363636c6c6c7676767b7b7b7575757070706b6b6b 6c6c6c7979796c6c6c6969695d5d5d6161616b6b6b7777776d6d6d676767616161616161 6f6f6f7373735b5b5b676767616161686868 b9b9b9bcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbc bcbcbcbcbcbcbabababababab8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8 b6b6b6b6b6b6b6b6b6b6b6b6b8b8b8b5b5b5a6a6a68b8b8b7f7f7f8e8e8e959595909090 8a8a8a8787878989898c8c8c9494949999999797979595958d8d8d7070706d6d6d707070 6969696d6d6d7070706868686c6c6c6d6d6d6e6e6e7575757c7c7c7e7e7e7979797d7d7d 7272727979796c6c6c6969696969696767676e6e6e7474746e6e6e6e6e6e717171717171 7272727777775e5e5e6b6b6b707070707070 bababababababababababababcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbc bcbcbcbcbcbcbabababababab8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b6b6b6b6b6b6 b5b5b5b7b7b7b7b7b7b8b8b8a0a0a06d6d6d6969697e7e7e7f7f7f7c7c7c727272666666 6e6e6e8888888f8f8f8f8f8f8d8d8d8888888a8a8a8787878787878888887f7f7f6c6c6c 6767677272727878787878787b7b7b6d6d6d6969697474747373737b7b7b7474746f6f6f 7171717979796b6b6b6666665d5d5d6161617070707a7a7a676767707070656565686868 6e6e6e7373735757576b6b6b696969696969 bababababababababababababcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbc bcbcbcbcbcbcbabababababab8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8babababababa bcbcbca7a7a76464645151516161617b7b7b7a7a7a676767646464616161666666707070 7272726c6c6c6161615f5f5f6060606d6d6d7a7a7a7d7d7d858585888888858585858585 8989898989897c7c7c7c7c7c8080806c6c6c6262628686867878787474747878786b6b6b 6e6e6e7676766b6b6b6666665a5a5a5d5d5d6d6d6d777777676767707070616161646464 6c6c6c7777775757576b6b6b5d5d5d5d5d5d bcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbc babababababab8b8b8b8b8b8b9b9b9b8b8b8b6b6b6b6b6b6b2b2b2bababab5b5b5b7b7b7 7b7b7b5656565454546363636767676767675d5d5d6767676868686565656d6d6d646464 6161615252524949495a5a5a6161617575757575757474747070707070706f6f6f868686 7b7b7b6e6e6e7373737171716a6a6a7070707a7a7a5252526a6a6a6f6f6f757575747474 7171717575756a6a6a6969695b5b5b5b5b5b6868687878786969697171716a6a6a6a6a6a 6d6d6d7575755b5b5b7070705f5f5f626262 bcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbc babababababab8b8b8b8b8b8b9b9b9b8b8b8b6b6b6b6b6b6b6b6b6b4b4b47a7a7a4f4f4f 4a4a4a5b5b5b5a5a5a6f6f6f7272726161615c5c5c5b5b5b5959596c6c6c646464494949 5252526464647070707373738383837878786666665e5e5e686868696969676767858585 7d7d7d6f6f6f6868685959594d4d4d4343434545456060605959596d6d6d737373787878 7171717575756a6a6a6969695b5b5b5b5b5b6868687878786666666f6f6f6a6a6a6a6a6a 6d6d6d7575755b5b5b7070706868686b6b6b bcbcbcbcbcbcbababababababcbcbcbcbcbcbcbcbcbcbcbcbababababababcbcbcbcbcbc babababababab8b8b8b8b8b8b6b6b6b6b6b6b6b6b6b9b9b9b6b6b66e6e6e4848484f4f4f 4848485353536d6d6d6c6c6c5b5b5b5f5f5f5d5d5d5c5c5c606060616161555555606060 6464647171717474746f6f6f6060605959595555555454545b5b5b6565657070706f6f6f 7979796a6a6a5656564a4a4a3434344646463c3c3c494949595959686868737373777777 6e6e6e7474746666666767675a5a5a626262696969757575676767707070686868696969 6d6d6d7575755757576c6c6c626262626262 bcbcbcbcbcbcbababababababcbcbcbcbcbcbcbcbcbcbcbcbababababababcbcbcbcbcbc babababababab8b8b8b8b8b8b6b6b6b6b6b6bababaa7a7a76c6c6c4d4d4d4a4a4a464646 5656566060605151514f4f4f5151515858586262626464645b5b5b535353585858636363 6969696060605e5e5e5e5e5e4c4c4c4b4b4b4040405c5c5c6a6a6a7272726c6c6c505050 4a4a4a3838382d2d2d3333333737373939393c3c3c494949595959686868767676737373 6e6e6e7474746666666767675d5d5d626262656565767676676767707070686868696969 6d6d6d7575755757576c6c6c626262626262 bababababababcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbc babababababababababababab2b2b2bbbbbba4a4a44c4c4c404040363636414141505050 3f3f3f3a3a3a4242424b4b4b4646465050504848485757575c5c5c6262626666666d6d6d 5959593131312424242929292121214a4a4a6e6e6e7272725959595a5a5a6f6f6f7b7b7b 6060604949493636362f2f2f3535353838383c3c3c4646465c5c5c6c6c6c727272737373 6f6f6f7373736a6a6a6565655e5e5e5e5e5e6464647474746868687272726a6a6a686868 6b6b6b737373595959696969616161646464 bababababababcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbc babababababababababababab9b9b99d9d9d5151513e3e3e3535353939394444443d3d3d 3f3f3f4a4a4a4949494e4e4e4141413838384c4c4c4d4d4d4a4a4a4141413838382f2f2f 2424242929292b2b2b4444445a5a5a7373736262626868686d6d6d6868685d5d5d636363 4c4c4c3a3a3a3232323636363737373a3a3a4646465656566666666d6d6d7575756f6f6f 6f6f6f7373736a6a6a6565655e5e5e5e5e5e6464647474746868687272726c6c6c6a6a6a 6b6b6b7373735d5d5d6d6d6d616161646464 bababababababcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbabababababababababababa b8b8b8b8b8b8b3b3b3b8b8b8b5b5b54646463a3a3a3e3e3e3d3d3d3c3c3c3a3a3a333333 3d3d3d3f3f3f4a4a4a5252524949493434342424242727273030302c2c2c3333333a3a3a 4242424646464f4f4f5353535555555c5c5c4b4b4b5757576a6a6a5f5f5f424242404040 3b3b3b3a3a3a3737373b3b3b3e3e3e3d3d3d5151516464646a6a6a757575767676717171 6e6e6e7474746565656161615e5e5e5e5e5e6464647474746b6b6b6d6d6d6c6c6c6c6c6c 6b6b6b7373736363636c6c6c646464646464 bababababababcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbabababababababababababa b8b8b8b8b8b8b6b6b6b5b5b56a6a6a3f3f3f3939393737373838383737373636363b3b3b 3d3d3d3f3f3f3d3d3d3232323939394d4d4d5757575555554545454848484141413c3c3c 3b3b3b4f4f4f4848484f4f4f4444443c3c3c5555556767676767677777775f5f5f4f4f4f 4d4d4d4b4b4b4747474040403d3d3d4646466060607373737b7b7b7a7a7a767676717171 6e6e6e7474746969696565655e5e5e5e5e5e6464647474746b6b6b6d6d6d696969696969 6b6b6b7373736363636c6c6c646464646464 bcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbabababababababababababa b8b8b8b8b8b8c3c3c37272723333332e2e2e2a2a2a2d2d2d303030393939373737363636 3a3a3a4141413c3c3c3a3a3a3434343232323232323a3a3a3b3b3b4040404343434f4f4f 5353534444443636363737375454544a4a4a5a5a5a7272727171717171717676767b7b7b 7d7d7d7979796e6e6e5858584747475050505d5d5d7575757c7c7c7c7c7c7575756e6e6e 6d6d6d7070706868686262625d5d5d5d5d5d6565656e6e6e6a6a6a6e6e6e6a6a6a6b6b6b 6c6c6c7272726666666c6c6c616161656565 bcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbabababababababababababa b8b8b8b8b8b89999993333332828282e2e2e3434343c3c3c393939343434313131313131 3636363131313232323030303636363c3c3c3b3b3b4343434747474949494848483e3e3e 2c2c2c2b2b2b3e3e3e4d4d4d4f4f4f5d5d5d6e6e6e6e6e6e6f6f6f7575757c7c7c818181 8b8b8b8c8c8c8989897878785a5a5a4c4c4c5e5e5e7272727b7b7b808080797979727272 7171717474746868686262626363636363636363637070706a6a6a6e6e6e6a6a6a6b6b6b 6c6c6c7272726666666c6c6c676767646464 bababababababcbcbcbcbcbcbcbcbcbcbcbcbabababababababababababababababababa bcbcbca4a4a44242422c2c2c2a2a2a2b2b2b2d2d2d3131313939394141413b3b3b373737 3434343434343030303030302c2c2c3232322f2f2f2f2f2f2f2f2f2a2a2a2525252d2d2d 3636364747474444444747475555556b6b6b6e6e6e7777777d7d7d7d7d7d8383838d8d8d 949494a0a0a0a3a3a39393937b7b7b5e5e5e5a5a5a6b6b6b7c7c7c888888838383777777 7979797a7a7a6e6e6e6161616c6c6c7171717575757070706e6e6e6c6c6c7171716f6f6f 6f6f6f7272726969696c6c6c686868686868 bababababababcbcbcbcbcbcbcbcbcbcbcbcbabababababababababababababababababa b9b9b99494943737372828282828282929292828282b2b2b3535352b2b2b242424262626 2929292929292525252525252727272828282222222222222828282e2e2e313131393939 4242423a3a3a3d3d3d5252525959596a6a6a7474747d7d7d818181818181858585909090 9a9a9aa6a6a6aaaaaaababab8e8e8e5f5f5f5959596969697a7a7a8989898b8b8b9e9e9e b9b9b99898986e6e6e616161858585ababab9595957070706e6e6e6c6c6c777777a7a7a7 aaaaaa7b7b7b6969696c6c6c858585999999 bcbcbcbcbcbcbabababababababababababababababababababababababab8b8b8b8b8b8 c1c1c16767672c2c2c2a2a2a2828282b2b2b2a2a2a2d2d2d2a2a2a272727272727272727 2727272a2a2a2727272727272929292929292929292c2c2c323232333333333333363636 3232323e3e3e4545455050506464647171717878787e7e7e7f7f7f8383838c8c8c979797 a3a3a3aeaeaeb4b4b4b4b4b49d9d9d6363636060607070708282828c8c8c8e8e8e858585 7a7a7a7777776f6f6f5c5c5c6a6a6a6666666a6a6a6c6c6c737373686868717171757575 7676767878786d6d6d6f6f6f797979828282 bcbcbcbcbcbcbabababababababababababababababababababababababab8b8b8b8b8b8 bbbbbb3636362727272929292828282b2b2b2a2a2a2d2d2d2f2f2f2c2c2c2c2c2c2c2c2c 2d2d2d3030302b2b2b2b2b2b2626262626262f2f2f3232322d2d2d2e2e2e303030373737 4040404646464b4b4b5656566767677474747878787e7e7e8181818888888f8f8f9a9a9a a8a8a8b3b3b3babababfbfbfb7b7b77d7d7d5555557070707b7b7b9191919090908b8b8b 8080807d7d7d7272726060606f6f6f707070707070727272737373686868737373707070 7777777979796d6d6d6f6f6f737373707070 bcbcbcbcbcbcbcbcbcbcbcbcbabababababababababababab8b8b8b8b8b8b7b7b7b9b9b9 a5a5a53232322727272727272b2b2b2d2d2d2c2c2c2b2b2b2f2f2f2e2e2e313131313131 2e2e2e2c2c2c2727272c2c2c2b2b2b2828282b2b2b2e2e2e2e2e2e313131383838404040 4040404d4d4d5454546464646d6d6d7878787e7e7e7e7e7e8282828989898e8e8e949494 a3a3a3b1b1b1b9b9b9c0c0c0bdbdbd9090905454545a5a5a787878939393909090909090 8282827777776a6a6a6363636464646666666565656565656565656d6d6d727272727272 7474747474746969696c6c6c6d6d6d707070 bcbcbcbcbcbcbcbcbcbcbcbcbabababababababababababab8b8b8b8b8b8b9b9b9b8b8b8 5c5c5c2d2d2d2525252b2b2b2e2e2e3030302a2a2a2d2d2d3333333535353030302c2c2c 2f2f2f3030302828282424242828282a2a2a3131313434343636363939393c3c3c444444 4a4a4a5858586060607070707070707b7b7b7e7e7e7e7e7e8282828989898e8e8e949494 a4a4a4afafafb8b8b8c4c4c4c7c7c7ababab6565655151516b6b6b8b8b8b8e8e8e939393 9393938d8d8d8b8b8b8d8d8d8d8d8d9090908f8f8f8f8f8f8e8e8e8b8b8b8b8b8b8b8b8b 9191919191918d8d8d909090939393969696 babababababababababababababababababababababababab8b8b8b8b8b8b2b2b2b8b8b8 3838382b2b2b2727272929292d2d2d2d2d2d2c2c2c2e2e2e2a2a2a2929292a2a2a2c2c2c 2525252020202626262b2b2b2e2e2e3333333535353838383f3f3f424242414141494949 5050505f5f5f6767677272727171717b7b7b7e7e7e818181818181868686939393979797 9e9e9eaeaeaeb8b8b8c3c3c3cbcbcbb7b7b77272725757575d5d5d7a7a7a969696929292 9090907979796464646363636868686b6b6b6969696969696d6d6d707070717171717171 747474777777808080838383858585888888 babababababababababababababababababababababababab8b8b8b8b8b8b8b8b8959595 2222222a2a2a2727272929292a2a2a2a2a2a282828262626252525262626262626242424 2b2b2b2e2e2e2c2c2c3131313737373c3c3c4141414444444848484b4b4b4d4d4d555555 5656566565656a6a6a7575757171717b7b7b7b7b7b7e7e7e818181868686939393979797 9e9e9eaeaeaeb8b8b8c3c3c3c7c7c7bdbdbd8a8a8a515151595959797979858585838383 8686865959592f2f2f2727272020201d1d1d1b1b1b1b1b1b1b1b1b1e1e1e212121212121 2424242727272727272a2a2a2727272a2a2a babababababababababababababababababababababababab8b8b8b8b8b8b1b1b1777777 2424242a2a2a252525252525272727282828272727272727282828282828262626292929 2b2b2b3131313030303535353e3e3e4343434646464b4b4b4c4c4c5151515757575e5e5e 5f5f5f6868686e6e6e7171717575757575757979797c7c7c8080808787878e8e8e999999 a6a6a6b0b0b0b5b5b5bdbdbdc5c5c5c4c4c49696966767676060607777777272727e7e7e 8181815252524848482b2b2b3434343838383333333939393535353838383d3d3d404040 4646464b4b4b4a4a4a4d4d4d4c4c4c4f4f4f babababababababababababababababababababababababab8b8b8b8b8b8b0b0b0676767 2424242a2a2a2929292929292727272828282727272727272a2a2a2a2a2a2a2a2a2d2d2d 2f2f2f3434343939393f3f3f4444444949494f4f4f5555555555555b5b5b5f5f5f676767 6565656868686e6e6e7171717575757575757676767979798080808787878e8e8e999999 a6a6a6b0b0b0b5b5b5bdbdbdc5c5c5c4c4c4a0a0a07575756a6a6a767676737373676767 7e7e7e6666666565656d6d6d7171716f6f6f6f6f6f5e5e5e5757575a5a5a5b5b5b5e5e5e 6a6a6a5656564f4f4f5252525757575a5a5a babababababab8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b6b6b6b6b6b6b8b8b8666666 3131313131312c2c2c2a2a2a2727272d2d2d2a2a2a2a2a2a2c2c2c2f2f2f303030353535 3838383d3d3d4242424b4b4b4d4d4d5353535959595e5e5e5a5a5a616161666666696969 6969696969696767677171716e6e6e6f6f6f7575757a7a7a7d7d7d7f7f7f898989979797 a2a2a2b5b5b5b6b6b6bcbcbcc1c1c1c4c4c4a9a9a97979797e7e7e787878707070616161 7777776f6f6f6868686868686868686868686666665454546b6b6b727272747474747474 7676765757575353535959595757575d5d5d babababababab8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b6b6b6b6b6b6b8b8b8666666 3131313131312c2c2c2a2a2a2b2b2b3030303030303030303030303333333636363b3b3b 4141414747474848485151515656565656565959595e5e5e5a5a5a616161666666696969 6969696969696a6a6a6d6d6d6c6c6c6d6d6d7272727878787d7d7d7f7f7f7c7c7c898989 9c9c9cafafafb6b6b6bcbcbcc1c1c1c4c4c4b3b3b36c6c6c8383837070706c6c6c686868 7777776f6f6f6666666c6c6c6f6f6f6f6f6f6c6c6c595959707070797979747474747474 7575755656565353535959595757575d5d5d babababababab8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b6b6b6b6b6b6b7b7b7656565 2d2d2d2e2e2e2b2b2b2c2c2c3030303333333030303333333737373a3a3a3e3e3e434343 4545454848484e4e4e5151515656565959595b5b5b5b5b5b5b5b5b5b5b5b616161616161 6565656a6a6a6767676767676666666969697070707373737c7c7c7f7f7f7a7a7a868686 919191a6a6a6b0b0b0bdbdbdc1c1c1c7c7c7c3c3c36f6f6f7070706b6b6b6565656c6c6c 7373736e6e6e6868686565656767677171716d6d6d5656566e6e6e6e6e6e7878787b7b7b 7575755656564f4f4f565656595959585858 babababababab8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b6b6b6b6b6b6b7b7b7656565 3030303131312b2b2b2c2c2c3030303333333434343737373d3d3d404040444444494949 4b4b4b4e4e4e5252525555555656565959595b5b5b5b5b5b5b5b5b5b5b5b5e5e5e5e5e5e 6262626868686464646464646666666969696d6d6d707070737373767676727272737373 7e7e7e8b8b8b989898abababb6b6b6c3c3c3c4c4c4707070535353707070666666707070 6c6c6c6a6a6a6666666262626060606464646d6d6d5656567070706c6c6c6969696c6c6c 7575755656565d5d5d5858585b5b5b5a5a5a b8b8b8b8b8b8b8b8b8b8b8b8b6b6b6b6b6b6b8b8b8b8b8b8b6b6b6b6b6b6b4b4b46c6c6c 2a2a2a3030302727272a2a2a3030303333333737373d3d3d414141474747494949494949 4e4e4e4f4f4f5252525656565a5a5a5a5a5a5959595959595b5b5b5a5a5a5b5b5b5e5e5e 5d5d5d6666665d5d5d5e5e5e6464646666666868686565655f5f5f575757535353545454 5454546262626c6c6c7e7e7e969696babababcbcbc8989893d3d3d6969696f6f6f707070 7272726b6b6b6363636262626161616060606d6d6d5656567070707171716d6d6d707070 787878565656636363606060636363646464 b8b8b8b8b8b8b8b8b8b8b8b8b6b6b6b6b6b6b8b8b8b8b8b8b6b6b6b6b6b6b1b1b19a9a9a 3e3e3e2c2c2c3030303333333030303333333737373d3d3d4545454a4a4a4d4d4d4d4d4d 4e4e4e4c4c4c4747474444444545454545454343434343434949494d4d4d4d4d4d505050 5555555d5d5d5b5b5b6262626d6d6d6767675b5b5b5959594c4c4c444444373737383838 3b3b3b494949545454696969767676a1a1a1b8b8b89d9d9d4848486363636e6e6e717171 7171716f6f6f6363636565656666666767676d6d6d5656566e6e6e7373736f6f6f6e6e6e 7878785656566262626565656a6a6a676767 b8b8b8b8b8b8b8b8b8b8b8b8b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b2b2b2b2b2b2 7e7e7e2e2e2e3535353131313232323636363535354444444949494f4f4f4d4d4d4d4d4d 4646463e3e3e3b3b3b3d3d3d3838383131312a2a2a2b2b2b3232323838383e3e3e434343 4848485454545858586a6a6a8686868787876565655d5d5d505050444444333333383838 3939394848484f4f4f6767677575758c8c8cb2b2b2afafaf565656626262626262676767 7070706a6a6a6363635b5b5b5858586060606b6b6b5555556c6c6c6868686464646a6a6a 7575755656566666666262625d5d5d6c6c6c b8b8b8b8b8b8b8b8b8b8b8b8b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b2b2b2b2b2b2 9b9b9b2a2a2a3535353131313232323636363535354444444d4d4d525252515151515151 4242424545454646464444444343434848484040404141413b3b3b414141444444494949 4b4b4b5151515858586a6a6a8383839a9a9a7a7a7a4f4f4f3c3c3c373737383838353535 3232323c3c3c515151666666787878949494acacacb8b8b87575756f6f6f5d5d5d646464 6d6d6d6868686464646161615d5d5d6161616b6b6b5555556c6c6c6868686464646a6a6a 7878785454546464646666666262626e6e6e b8b8b8b8b8b8b8b8b8b8b8b8b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b4b4b4b4b4b4 afafaf4242422f2f2f3131313838383737373434344b4b4b5050505353535050504e4e4e 4c4c4c5151515050504646463333332f2f2f2f2f2f3434343d3d3d404040404040444444 4444444c4c4c4f4f4f6262627373739494946e6e6e4d4d4d4141414141413d3d3d2b2b2b 1a1a1a9494948888884545455f5f5f909090a3a3a3bbbbbb9494946d6d6d5f5f5f6e6e6e 6b6b6b6868685f5f5f5e5e5e5d5d5d6060606b6b6b5555556b6b6b6a6a6a6767676a6a6a 7373735252526464646a6a6a6363636a6a6a b8b8b8b8b8b8b8b8b8b8b8b8b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b4b4b4b4b4b4 b4b4b47d7d7d2b2b2b3535353a3a3a3434343434344b4b4b545454575757545454515151 5252525757574747473737372929292525252c2c2c4747474141413f3f3f4242423f3f3f 4141414949494f4f4f6262627676769191917e7e7e555555383838474747484848373737 1f1f1f7e7e7e9898987575756767678d8d8da6a6a6bfbfbf9c9c9c7575756b6b6b686868 6b6b6b6868685f5f5f5e5e5e5d5d5d6060606b6b6b5555556b6b6b6a6a6a6767676a6a6a 7373735252526464646a6a6a666666676767 b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b4b4b4b4b4b4b2b2b2b2b2b2 b1b1b1ababab6e6e6e3636363939393a3a3a3e3e3e505050555555555555535353535353 5353534545453838384141413333332626262a2a2a5151514b4b4b3a3a3a353535454545 4242424c4c4c4d4d4d5c5c5c7a7a7a8b8b8b9d9d9d7272725a5a5a5050505353535f5f5f 6969698080808c8c8cafafaf9a9a9a999999b0b0b0bbbbbb999999818181666666606060 6464646464646161615e5e5e5b5b5b5b5b5b6969695959596c6c6c6363636565656d6d6d 7373735555556161616a6a6a686868686868 b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b4b4b4b4b4b4b2b2b2b2b2b2 b0b0b0b4b4b49696963b3b3b4242423d3d3d3e3e3e505050525252525252535353535353 4e4e4e4545454040404545454343432d2d2d353535434343414141454545474747454545 4242424949494d4d4d5c5c5c7c7c7c8989899f9f9f7070705c5c5c5b5b5b5d5d5d686868 737373858585a2a2a2c4c4c4bcbcbcadadadb3b3b3b7b7b79898986f6f6f666666606060 6464646464646161615e5e5e5b5b5b5b5b5b6969695959596c6c6c6363636565656d6d6d 717171595959646464676767686868686868 b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b4b4b4b4b4b4b4b4b4b4b4b4b2b2b2b2b2b2 b0b0b0b0b0b08181813232323e3e3e3d3d3d4a4a4a515151555555555555535353535353 4949494141414949494c4c4c4a4a4a4a4a4a4949494c4c4c4c4c4c4a4a4a434343434343 4848485050505353535959597676768a8a8aaaaaaa8d8d8d6868685f5f5f6b6b6b737373 7c7c7c969696adadadbcbcbcb9b9b9b7b7b7b4b4b4b8b8b8a2a2a24141416f6f6f606060 6565656868685f5f5f5d5d5d5e5e5e5e5e5e6767675d5d5d6b6b6b6868686767676a6a6a 7373735b5b5b6060606b6b6b686868686868 b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b4b4b4b4b4b4b4b4b4b4b4b4b2b2b2b2b2b2 b0b0b0b0b0b07575752c2c2c3a3a3a4444444a4a4a515151555555555555575757575757 5252525858585252525555555757575757575c5c5c5f5f5f5555554d4d4d474747474747 4c4c4c5454545353535959597575758e8e8eb0b0b0adadad9b9b9b7979797474747d7d7d 868686a1a1a1afafafb7b7b7bdbdbdbababab4b4b4b2b2b29191915c5c5c6f6f6f606060 6565656868685e5e5e5c5c5c5e5e5e5e5e5e6767675d5d5d6b6b6b6868686767676a6a6a 7373735b5b5b5d5d5d686868686868686868 b6b6b6b6b6b6b6b6b6b6b6b6b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b2b2b2b2b2b2 aeaeaeaeaeae7474743131313e3e3e4949494b4b4b555555575757575757575757575757 5555555555555454545858585c5c5c5f5f5f5e5e5e5c5c5c565656535353505050505050 5151515151515252525a5a5a6e6e6e939393b2b2b2b1b1b1b3b3b3a0a0a07e7e7e797979 838383999999adadadbcbcbcbdbdbdb6b6b6bebebeb5b5b55959599090906969695e5e5e 6161616868686161615d5d5d5b5b5b5b5b5b6767676262626d6d6d6767676969696c6c6c 727272616161545454676767636363666666 b6b6b6b6b6b6b6b6b6b6b6b6b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b2b2b2b2b2b2 aeaeaeaeaeaea7a7a72e2e2e4444444f4f4f4b4b4b555555575757575757575757575757 5959595959595a5a5a5757575c5c5c5f5f5f5e5e5e5c5c5c555555575757565656565656 5151515151515252525a5a5a7171718c8c8cabababb5b5b5b6b6b6adadad9b9b9b8d8d8d 8585858f8f8fa3a3a3b1b1b1b9b9b9bdbdbdc1c1c1b1b1b14040409999995e5e5e5b5b5b 6161616868685f5f5f6161615b5b5b5b5b5b6767676262626d6d6d6767676969696c6c6c 7272726161618484848e8e8e9090908f8f8f b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b2b2b2b2b2b2b2b2b2b2b2b2 aeaeaeaeaeaea6a6a64343434a4a4a4b4b4b3c3c3c4c4c4c5959595959595858585b5b5b 5b5b5b5b5b5b5a5a5a5d5d5d5b5b5b5b5b5b5b5b5b5b5b5b565656595959545454525252 5353535353535353536161617e7e7e8a8a8a9f9f9fb2b2b2b8b8b8b0b0b09f9f9f999999 8989898a8a8a959595a7a7a7b3b3b3c1c1c1bcbcbcb0b0b04a4a4a939393585858585858 5f5f5f6363635d5d5d5d5d5d5d5d5d5d5d5d6868686161616c6c6c6565656666666c6c6c 6d6d6d6464648e8e8e9c9c9c9c9c9c919191 b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b2b2b2b2b2b2b2b2b2b2b2b2 aeaeaeaeaeaea7a7a78585854242423b3b3b3333335151515959595959595858585b5b5b 5b5b5b5b5b5b5d5d5d5a5a5a5b5b5b5b5b5b5b5b5b5b5b5b535353565656545454525252 5050505050505353536161617c7c7c8484849d9d9db6b6b6a9a9a9a5a5a5a0a0a0a0a0a0 979797919191989898a4a4a4acacacbababac1c1c1aaaaaa7676768e8e8e636363636363 6868686666665b5b5b6161616363636363636666666363636868686868686c6c6c6c6c6c 6d6d6d646464626262666666696969676767 b4b4b4b4b4b4b4b4b4b4b4b4b2b2b2b2b2b2b2b2b2b2b2b2b0b0b0b0b0b0b0b0b0b0b0b0 acacacacacacacacac9f9f9f4e4e4e3737373939395454545a5a5a595959595959595959 5858585858585959595959595858585b5b5b595959595959575757575757565656545454 4e4e4e5252525656566363637171717c7c7c9a9a9abdbdbda3a3a39494949c9c9c9f9f9f 9d9d9d9c9c9c9d9d9da1a1a1a0a0a0a9a9a9b5b5b5b9b9b98181817373735c5c5c5d5d5d 6d6d6d6a6a6a5d5d5d6666666666666b6b6b6464646262626666667070706565656a6a6a 7171716767675a5a5a6464646565656b6b6b b4b4b4b4b4b4b4b4b4b4b4b4b2b2b2b2b2b2b2b2b2b2b2b2b0b0b0b0b0b0b0b0b0b0b0b0 acacacacacacadadadacacac6767673737373131315555555d5d5d5c5c5c595959595959 5757575757575959595959595858585b5b5b5d5d5d5d5d5d5b5b5b5b5b5b565656545454 4f4f4f5a5a5a5959595f5f5f676767727272858585bbbbbbb6b6b69c9c9c939393a1a1a1 a4a4a4a9a9a9a6a6a6a3a3a3a0a0a0a3a3a3b5b5b5b9b9b99c9c9c7676769090909d9d9d 7b7b7b6666665d5d5d6666667b7b7b7d7d7d6464646161616868687b7b7ba6a6a6a1a1a1 7474746363635656567c7c7c9e9e9e8e8e8e b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b0b0b0b0b0b0aeaeaeaeaeae acacacacacacaaaaaaaaaaaa8888884a4a4a3636363e3e3e5d5d5d585858595959595959 5959595959595959595959595858585b5b5b6060605f5f5f595959595959585858525252 5050505c5c5c5b5b5b5d5d5d5f5f5f656565787878a0a0a07f7f7f909090919191a2a2a2 a4a4a4adadada9a9a9a8a8a89f9f9fa3a3a3b4b4b4b5b5b5a5a5a5686868676767646464 6b6b6b6868685959596666666464646565656767676464646666667272726868686b6b6b 7272725f5f5f6c6c6c7c7c7c7b7b7b7b7b7b b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b0b0b0b0b0b0aeaeaeaeaeae acacacacacacaaaaaaaaaaaa9a9a9a4848484d4d4d3131315a5a5a5e5e5e595959595959 5959595959595959595959595c5c5c5e5e5e6060605f5f5f5d5d5d5d5d5d585858525252 5050504747471f1f1f3535355959595b5b5b7c7c7c5050505050509d9d9d8888889a9a9a a7a7a7aaaaaaacacacabababa5a5a5a9a9a9b7b7b7b2b2b2ababab6c6c6c666666686868 6d6d6d6969695959596a6a6a6c6c6c6d6d6d6f6f6f6c6c6c6b6b6b767676747474777777 7878785656566767677676767b7b7b7b7b7b b2b2b2b2b2b2b2b2b2b2b2b2b4b4b4b4b4b4b0b0b0b0b0b0b0b0b0b0b0b0aeaeaeaeaeae acacacacacaca8a8a8a8a8a8a9a9a95050505959595858585757575e5e5e5b5b5b5b5b5b 5858585b5b5b5c5c5c5c5c5c5e5e5e5e5e5e5f5f5f5f5f5f5f5f5f5c5c5c585858575757 4d4d4d4040403c3c3c4242425555556262629a9a9a7e7e7e888888a0a0a09797979a9a9a a6a6a6b0b0b0afafafaeaeaeaaaaaab0b0b0b8b8b8a4a4a47c7c7c6a6a6a797979797979 6f6f6f6c6c6c5d5d5d6464644f4f4f4f4f4f4747474747475e5e5e676767636363666666 6565655454546868687f7f7f7d7d7d838383 b2b2b2b2b2b2b2b2b2b2b2b2b4b4b4b4b4b4b0b0b0b0b0b0b0b0b0b0b0b0aeaeaeaeaeae acacacacacaca8a8a8a8a8a8ababab7373735454545353535757575e5e5e5b5b5b5b5b5b 5858585b5b5b5f5f5f5f5f5f5e5e5e5e5e5e5f5f5f5f5f5f5d5d5d5f5f5f5d5d5d5d5d5d 5353534646464646464c4c4c555555717171a3a3a39c9c9c9f9f9f9e9e9ea1a1a19c9c9c a6a6a6b0b0b0b5b5b5b4b4b4b0b0b0b0b0b0bababa9292929d9d9da2a2a29a9a9a9a9a9a 9797979a9a9a9999999999999e9e9e9e9e9ea1a1a1a1a1a1a2a2a2a4a4a49e9e9ea1a1a1 9e9e9e9b9b9b9999999d9d9d9e9e9ea4a4a4 b2b2b2b2b2b2b2b2b2b2b2b2afafafb1b1b1b4b4b4b3b3b3b0b0b0b0b0b0aeaeaeaeaeae acacacacacacaaaaaaaaaaaaa3a3a39292924d4d4d4f4f4f5555556262625b5b5b5b5b5b 5858585b5b5b5f5f5f5f5f5f5e5e5e5e5e5e5e5e5e5d5d5d5c5c5c5f5f5f5e5e5e5e5e5e 5858584d4d4d4d4d4d575757535353707070a8a8a8adadada3a3a3a0a0a0a2a2a2adadad afafafb2b2b2b6b6b6b6b6b6b5b5b5b3b3b3b6b6b6363636333333393939404040424242 4444444747474c4c4c4c4c4c4f4f4f5353535757575d5d5d5f5f5f6262626b6b6b6b6b6b 6f6f6f727272737373767676717171717171 b2b2b2b2b2b2b2b2b2b2b2b2aeaeaea4a4a4a7a7a7b1b1b1b0b0b0b0b0b0aeaeaeaeaeae acacacacacacaaaaaaaaaaaaa5a5a5a5a5a57777774c4c4c5050505c5c5c5b5b5b5b5b5b 5c5c5c5f5f5f5f5f5f5f5f5f5e5e5e5e5e5e5e5e5e5d5d5d5c5c5c5f5f5f5e5e5e5e5e5e 5c5c5c5757575050505353534d4d4d6464649e9e9ea8a8a8a0a0a09e9e9ea2a2a2adadad b3b3b3b6b6b6babababababab5b5b5b3b3b3afafaf3737373333333939393e3e3e404040 3d3d3d4040404040404040404141413f3f3f4545454a4a4a454545484848474747474747 4d4d4d5050504d4d4d505050575757575757 b0b0b0b0b0b0b2b2b2b2b2b2afafafa9a9a9a9a9a9afafafaeaeaeaeaeaeacacacacacac aaaaaaaaaaaaa8a8a8a8a8a8a4a4a4a4a4a4a3a3a39c9c9ca5a5a56a6a6a595959595959 5a5a5a5d5d5d5e5e5e5e5e5e5c5c5c5c5c5c5f5f5f5f5f5f5e5e5e5e5e5e5f5f5f5f5f5f 5e5e5e6161615757575c5c5c6161616b6b6b8d8d8da5a5a5a6a6a6a5a5a5a1a1a1a7a7a7 b2b2b2b8b8b8b9b9b9bcbcbcb9b9b9b7b7b79090902a2a2a3a3a3a3c3c3c393939393939 3f3f3f3f3f3f4343434545454747474747474a4a4a4a4a4a4f4f4f525252535353535353 5555555555555757575757575959595c5c5c b0b0b0b0b0b0b2b2b2b2b2b2b0b0b0b0b0b0b3b3b3aeaeaeaeaeaeaeaeaeacacacacacac aaaaaaaaaaaaa8a8a8a8a8a8a4a4a4a4a4a4a1a1a1a2a2a2a7a7a7787878595959595959 5a5a5a5d5d5d5e5e5e5e5e5e5f5f5f5f5f5f5f5f5f5f5f5f5e5e5e5e5e5e5f5f5f5f5f5f 5e5e5e5b5b5b585858565656646464747474838383969696a6a6a6abababa2a2a2989898 b0b0b0bbbbbbb9b9b9bcbcbcb9b9b9b7b7b7a1a1a1929292a4a4a43f3f3f333333333333 3333333333333737373939394141414141414242424c4c4c555555585858575757575757 5959595959595b5b5b5b5b5b5f5f5f626262 b0b0b0b0b0b0b0b0b0b0b0b0aeaeaeaeaeaeaeaeaeaeaeaeacacacacacacacacacacacac aaaaaaaaaaaaa8a8a8a8a8a8a4a4a4a4a4a4a2a2a2a2a2a2a0a0a0888888585858585858 5b5b5b5b5b5b5e5e5e5e5e5e5f5f5f5f5f5f5d5d5d5d5d5d5b5b5b5b5b5b5d5d5d5d5d5d 5252524545454141414141414949495353535353535050504d4d4d6464648888887f7f7f 979797b4b4b4b8b8b8bebebebbbbbbb9b9b9979797878787a1a1a1484848414141434343 4b4b4b4949494f4f4f4a4a4a3f3f3f3a3a3a3434344545455353535959595c5c5c4d4d4d 5050505959595f5f5f5f5f5f626262686868 b0b0b0b0b0b0b0b0b0b0b0b0aeaeaeaeaeaeaeaeaeaeaeaeacacacacacacacacacacacac aaaaaaaaaaaaa8a8a8a8a8a8a4a4a4a4a4a4a2a2a2a2a2a2a0a0a0979797595959575757 5b5b5b5b5b5b5e5e5e5e5e5e5f5f5f5f5f5f5d5d5d5d5d5d5b5b5b5b5b5b5555554a4a4a 3e3e3e3131312a2a2a2a2a2a2b2b2b3232323737373e3e3e4141413b3b3b404040414141 7c7c7cb1b1b1b8b8b8bebebebbbbbbb9b9b9888888898989a2a2a2474747414141434343 4a4a4a4747474f4f4f4a4a4a3f3f3f3a3a3a343434454545535353595959575757383838 4b4b4b5858585656565c5c5c6666666b6b6b b0b0b0b0b0b0b0b0b0b0b0b0aeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaaaaaaaaaaaa aaaaaaaaaaaaa4a4a4a4a4a4a4a4a4a4a4a4a2a2a2a2a2a2a4a4a49b9b9b595959595959 5959595959595e5e5e6161616161616161615e5e5e5e5e5e5757575050503c3c3c2e2e2e 2d2d2d3232323131313636364444444d4d4d6767677979798383837f7f7f8686868a8a8a 7e7e7ea9a9a9b5b5b5bdbdbdb6b6b6b3b3b3878787828282a4a4a44a4a4a474747484848 5252525050505151514b4b4b4040404242423434344141414e4e4e5151514a4a4a474747 5656565f5f5f5959594949495b5b5b6c6c6c b0b0b0b0b0b0b0b0b0b0b0b0aeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaaaaaaaaaaaa aaaaaaaaaaaaa4a4a4a4a4a4a4a4a4a4a4a4a2a2a2a2a2a2a0a0a0a1a1a16767675b5b5b 5c5c5c5d5d5d5e5e5e6161616161616161615e5e5e5e5e5e5757574c4c4c454545494949 4747474949494d4d4d5353535d5d5d5f5f5f6e6e6e7f7f7f888888959595939393939393 9898989f9f9fb2b2b2bababab4b4b4a6a6a6969696919191aaaaaa4242424343434d4d4d 5252525050505858585555554040403c3c3c3434344141414b4b4b4e4e4e4949494a4a4a 4d4d4d5b5b5b616161515151646464727272 b0b0b0b0b0b0b0b0b0b0b0b0aeaeaeaeaeaeaeaeaeaeaeaeacacacacacacaaaaaaaaaaaa a6a6a6a6a6a6a4a4a4a4a4a4a2a2a2a2a2a2a0a0a0a0a0a0a0a0a0a0a0a06d6d6d5c5c5c 5c5c5c5e5e5e5b5b5b5e5e5e5e5e5e5e5e5e5b5b5b5b5b5b555555555555555555555555 5151515151514b4b4b4b4b4b5252525a5a5a6262626d6d6d7a7a7a818181888888969696 999999a5a5a5afafafb9b9b9b0b0b0a4a4a4999999989898aaaaaa4444444343434d4d4d 5454545252525c5c5c5c5c5c4242423a3a3a2f2f2f3e3e3e4a4a4a4949494b4b4b4b4b4b 4949495757575a5a5a606060727272727272 b0b0b0b0b0b0b0b0b0b0b0b0aeaeaeaeaeaeaeaeaeaeaeaeacacacacacacaaaaaaaaaaaa a6a6a6a6a6a6a4a4a4a4a4a4a2a2a2a2a2a2a0a0a0a0a0a0a0a0a0a0a0a06d6d6d5c5c5c 5c5c5c5e5e5e5f5f5f6262625e5e5e5e5e5e5b5b5b5b5b5b555555555555555555555555 5656565656565656565656565252525a5a5a5c5c5c6868687474747c7c7c7d7d7d898989 979797a2a2a2abababb5b5b5acacacaaaaaaafafafafafafababab434343474747505050 5454545252525c5c5c4a4a4a3939393131312f2f2f3e3e3e4a4a4a494949484848484848 4e4e4e5b5b5b5e5e5e6363636d6d6d737373 aeaeaeaeaeaeaeaeaeaeaeaeacacacacacacaeaeaeaeaeaeaaaaaaaaaaaaa8a8a8a8a8a8 a6a6a6a6a6a6a2a2a2a2a2a2a2a2a2a2a2a2a0a0a0a0a0a0a0a0a0a2a2a26d6d6d5a5a5a 6060606060606262626161616464646363635e5e5e5c5c5c575757575757555555555555 5353535353535555555555555454545959596060606868687272727878787979797e7e7e 919191a4a4a4adadadb1b1b1a9a9a9afafafb1b1b1b5b5b5a7a7a7414141434343525252 5454545252525a5a5a4747473333332c2c2c2828283838384444444747474c4c4c414141 4747474d4d4d545454666666686868777777 aeaeaeaeaeaeaeaeaeaeaeaeacacacacacacaeaeaeaeaeaeaaaaaaaaaaaaa8a8a8a8a8a8 a6a6a6a6a6a6a2a2a2a2a2a2a2a2a2a2a2a2a0a0a0a0a0a09c9c9c9999995c5c5c555555 5e5e5e6464646262626161616464646363635e5e5e5c5c5c5b5b5b5b5b5b555555555555 5353535353535555555555555b5b5b6565657575757d7d7d7a7a7a808080818181818181 909090a3a3a3b0b0b0adadada9a9a9afafafb1b1b1b5b5b5a2a2a2414141434343525252 5454545252525858583f3f3f2e2e2e2727272323233333334141415252526a6a6a6e6e6e 6060605a5a5a6666667272727070706f6f6f aeaeaeaeaeaeaeaeaeaeaeaeacacacacacacacacacacacacacacacacacaca8a8a8a8a8a8 a4a4a4a4a4a4a2a2a2a2a2a2a0a0a0a0a0a0a0a0a0a0a0a0a4a4a47a7a7a515151585858 5b5b5b6161616464646464646363636363635d5d5d5b5b5b5b5b5b5a5a5a575757575757 5555555555555353535353535858586363637b7b7b8585858787878f8f8f919191909090 9b9b9badadada8a8a8abababa9a9a9aeaeaeb1b1b1b4b4b4969696404040464646535353 5252525050504e4e4e313131212121212121222222343434464646646464828282939393 8d8d8d8f8f8f9d9d9d8585858484846d6d6d aeaeaeaeaeaeaeaeaeaeaeaeacacacacacacacacacacacacacacacacacaca8a8a8a8a8a8 a4a4a4a4a4a4a2a2a2a2a2a2a0a0a0a0a0a0a0a0a0a0a0a09c9c9c7070704c4c4c585858 5757575b5b5b6161616666666464646464646161615e5e5e5b5b5b5a5a5a575757575757 5555555555555353535353535252525d5d5d7575758585859292929a9a9aa0a0a0a4a4a4 a3a3a3a9a9a9ababababababa9a9a9aeaeaeb1b1b1b4b4b4919191414141464646535353 5252525050504949492b2b2b2121212121212b2b2b4e4e4e5a5a5a7878788989898d8d8d 909090919191848484747474a8a8a8777777 aeaeaeaeaeaeacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaa8a8a8a8a8a8 a4a4a4a4a4a4a2a2a2a2a2a2a0a0a0a0a0a09e9e9e9e9e9e919191747474565656545454 5757575757575a5a5a5a5a5a5f5f5f6262625e5e5e5e5e5e595959595959565656595959 5757575757575656565454544f4f4f5b5b5b6767677a7a7a9090909b9b9b9d9d9da4a4a4 a6a6a6b6b6b6b0b0b0acacacabababb0b0b0b1b1b1b4b4b47a7a7a434343474747525252 4e4e4e4c4c4c4040402828281f1f1f1f1f1f4040406969696161617777777b7b7b727272 6c6c6c797979888888888888b4b4b4787878 aeaeaeaeaeaeacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaa8a8a8a8a8a8 a4a4a4a4a4a4a2a2a2a2a2a2a0a0a0a0a0a0a1a1a19b9b9b9393937a7a7a5d5d5d515151 5656565b5b5b5858585858585c5c5c5f5f5f5e5e5e5e5e5e5c5c5c5c5c5c5a5a5a5d5d5d 5757575757575656565454545555555a5a5a6969697d7d7d8383838e8e8e9a9a9aa1a1a1 a8a8a8b4b4b4b0b0b0acacacabababb0b0b0b1b1b1b4b4b4787878404040474747525252 4e4e4e4c4c4c3e3e3e2525251f1f1f1f1f1f3333335a5a5a6666667878787a7a7a717171 6767676969696c6c6c686868a2a2a2727272 acacacacacacacacacacacacacacacacacacaaaaaaaaaaaaa8a8a8a8a8a8a6a6a6a6a6a6 a5a5a5a3a3a3a0a0a0a0a0a0a0a0a0a0a0a09b9b9b9292929090908585856f6f6f5f5f5f 4e4e4e5757575757575757575656565959595a5a5a5d5d5d6060606363636060605f5f5f 5555555555555757575757575858585b5b5b5f5f5f6e6e6e747474808080878787969696 b4b4b4b2b2b2adadada9a9a9aeaeaeaeaeaeb2b2b2b6b6b67d7d7d3f3f3f4040404c4c4c 4949494949493838381f1f1f1313131414141212123333337171715d5d5d5656565b5b5b 5d5d5d6060605757575b5b5b858585767676 acacacacacacacacacacacacacacacacacacaaaaaaaaaaaaa8a8a8a8a8a8a6a6a6a6a6a6 a5a5a5a3a3a3a0a0a0a0a0a0a0a0a0a0a0a08a8a8a8c8c8c929292919191727272666666 5555555353535757575757575656565959595a5a5a5d5d5d5d5d5d606060636363626262 5c5c5c5c5c5c5959595959595959595c5c5c6262626b6b6b7171717e7e7e858585a8a8a8 bababaa9a9a9ababab9494947171715757573d3d3d3b3b3b3a3a3a3a3a3a393939666666 6767676767675c5c5c5555555454544e4e4e4444445757575454544b4b4b444444444444 4e4e4e5151515353534c4c4c5959596d6d6d aeaeaeaeaeaeacacacacacacacacacacacacaaaaaaaaaaaaa8a8a8a8a8a8a4a4a4a4a4a4 a2a2a2a2a2a2a0a0a0a0a0a0a0a0a0a0a0a07c7c7c8282829696969c9c9c898989717171 7373734a4a4a5353535858585757575757575858585b5b5b5a5a5a5d5d5d5f5f5f686868 6969696969696868686868686b6b6b6e6e6e6b6b6b7575758383839b9b9bb5b5b5b8b8b8 b7b7b7b9b9b99f9f9f4a4a4a4444443a3a3a2a2a2a282828262626262626181818747474 9292929292929090909090909090909090909090909090908c8c8c8c8c8c949494494949 2222222222221f1f1f222222222222262626 aeaeaeaeaeaeacacacacacacacacacacacacaaaaaaaaaaaaa8a8a8a8a8a8a4a4a4a4a4a4 a2a2a2a2a2a2a0a0a0a0a0a0a0a0a0a0a0a08282828181819696969c9c9c9595956f6f6f 7777776464645050505656565757575757575858585b5b5b5a5a5a5d5d5d626262656565 6666666666666868686e6e6e7171717474747a7a7a9f9f9fa9a9a9b5b5b5bbbbbbb8b8b8 b9b9b9d3d3d38e8e8e2424244949494242423232322f2f2f2c2c2c2c2c2c212121777777 9292929292929090909090908d8d8d8d8d8d8d8d8d8d8d8d8c8c8c8c8c8c8e8e8e3b3b3b 2e2e2e2e2e2e2e2e2e313131404040393939 acacacacacacaaaaaaaaaaaaaaaaaaaaaaaaa8a8a8a8a8a8a6a6a6a6a6a6a4a4a4a4a4a4 a0a0a09f9f9fa7a7a7b6b6b6b3b3b3aaaaaa9898987e7e7ea1a1a19f9f9f9f9f9f8d8d8d 7474748080805151515252525757575858585757575757575a5a5a5d5d5d5e5e5e616161 6161616161616464646d6d6d7575758181818c8c8cabababb6b6b6bfbfbfb9b9b9b6b6b6 959595c0c0c08585852626264747473737373030303333333333333737372b2b2b767676 9292929292928f8f8f8f8f8f8f8f8f8f8f8f8a8a8a8a8a8a888888888888888888373737 2b2b2b2b2b2b2929293636364949495d5d5d acacacacacacaaaaaaaaaaaaaaaaaaaaaaaaa8a8a8a8a8a8a6a6a6a6a6a6a4a4a4a4a4a4 a1a1a1b8b8b8c7c7c7ababab9d9d9da5a5a5a1a1a1828282a1a1a19f9f9fa1a1a19d9d9d 7373737575757e7e7e4747475252525959595757575757575a5a5a5d5d5d5e5e5e616161 6161616161616464646d6d6d7f7f7f909090949494b3b3b3b9b9b9bcbcbcb6b6b6b4b4b4 7979798c8c8cd3d3d30606064040403434343030303333333d3d3d4545453131317c7c7c 9292929292928f8f8f8f8f8f8f8f8f8f8f8f8a8a8a8a8a8a858585858585868686353535 252525252525262626333333444444515151 aaaaaaaaaaaaaaaaaaaaaaaaa8a8a8a8a8a8a6a6a6a6a6a6a8a8a8a7a7a7a3a3a3b7b7b7 c5c5c5c2c2c29d9d9d8f8f8f929292acacaca1a1a1838383a3a3a3a4a4a4a2a2a2a2a2a2 8686867575758787877b7b7b4a4a4a5757575454545757575757575757575b5b5b616161 6262626565656666666d6d6d9898989f9f9f9e9e9eb3b3b3b1b1b1b4b4b4b2b2b2b8b8b8 4343437c7c7ce8e8e80f0f0f2f2f2f2f2f2f3030303e3e3e4545454545453535357e7e7e 9191918f8f8f8e8e8e8d8d8d8b8b8b8b8b8b8989898787878383838181818181813b3b3b 2121212121212323232727273a3a3a464646 aaaaaaaaaaaaaaaaaaaaaaaaa8a8a8a8a8a8a6a6a6a6a6a6a0a0a0a6a6a6c5c5c5dddddd d2d2d2a4a4a4909090aeaeaea1a1a1adadada5a5a5848484a0a0a0abababa2a2a2a2a2a2 a1a1a17b7b7b6d6d6d9999996b6b6b4d4d4d5454545757575757575757575f5f5f646464 6262626565656666666d6d6da0a0a0a3a3a3a6a6a6afafafaeaeaeb1b1b1b2b2b2b8b8b8 272727888888d3d3d34444442d2d2d2c2c2c363636444444494949494949404040868686 9191918f8f8f8e8e8e8d8d8d8b8b8b8b8b8b898989878787838383818181838383484848 212121212121232323272727353535414141 aaaaaaaaaaaaa8a8a8a8a8a8a6a6a6a2a2a2a2a2a2a9a9a9c3c3c3d9d9d9d5d5d5bebebe a1a1a1939393a8a8a8b4b4b4a1a1a1a9a9a9acacac969696848484a7a7a7a4a4a4a4a4a4 a5a5a59999996c6c6c7f7f7fa4a4a45e5e5e4848485555555c5c5c5f5f5f606060636363 6363636363636262626a6a6a8f8f8fabababaeaeaea9a9a9b0b0b0b0b0b0aaaaaab7b7b7 1f1f1f7d7d7dafafafafafaf2525252525253c3c3c4747474949494545454d4d4d929292 8f8f8f8f8f8f8b8b8b8b8b8b8b8b8b8b8b8b8888888888888282828282828080805f5f5f 2222222121212121212121212c2c2c3a3a3a aaaaaaaaaaaaa8a8a8a8a8a8a8a8a8bebebecacacad4d4d4d8d8d8d0d0d0b7b7b78a8a8a 898989abababb3b3b3aeaeaea6a6a6a2a2a2adadad9d9d9d737373999999a4a4a4a4a4a4 a2a2a2a5a5a5868686797979a2a2a2a8a8a84b4b4b5757575c5c5c5f5f5f606060636363 6363636363636262626a6a6a7a7a7aabababafafafa8a8a8b0b0b0b0b0b0b2b2b2949494 0e0e0e919191b6b6b6dcdcdc6767672424243b3b3b4646464949494545456b6b6b959595 8f8f8f8f8f8f8b8b8b8b8b8b8b8b8b8b8b8b8888888888888282828282827c7c7c737373 2b2b2b2222222121212121212c2c2c3a3a3a a8a8a8aaaaaaa7a7a7adadadc3c3c3c7c7c7d4d4d4d5d5d5d4d4d4c9c9c99a9a9a878787 a9a9a9b9b9b9b7b7b7b7b7b7aeaeae999999aaaaaaa1a1a1767676868686a4a4a4a4a4a4 a2a2a2a2a2a29c9c9c7c7c7c838383b2b2b27b7b7b5353536161615f5f5f626262656565 6666666969696565656565656f6f6fa4a4a4a4a4a4a7a7a7aeaeaeacacacafafaf6c6c6c 222222959595afafafe8e8e8f5f5f59a9a9a2626263d3d3d4343433e3e3e7c7c7c929292 8d8d8d8d8d8d8b8b8b8b8b8b8989898989898686868686868181817f7f7f7b7b7b797979 3b3b3b2323231f1f1f1f1f1f2b2b2b353535 a7a7a7b4b4b4c0c0c0bfbfbfbbbbbbd2d2d2dadadad5d5d5a7a7a79696969f9f9fb9b9b9 bdbdbdb3b3b3979797afafafa5a5a59393939a9a9aacacac9a9a9a7878788f8f8fa7a7a7 a2a2a2a2a2a2a2a2a29292927676769b9b9bbfbfbf7c7c7c5a5a5a656565666666696969 6666666969696969696969696a6a6a8c8c8c9b9b9bafafafb0b0b0aeaeae8a8a8a434343 2e2e2ea0a0a0b0b0b0e7e7e7d1d1d1c4c4c4e1e1e15a5a5a3939394c4c4c8f8f8f919191 8d8d8d8d8d8d8b8b8b8b8b8b8989898989898686868686868181817f7f7f7f7f7f7c7c7c 6363632020201f1f1f1f1f1f282828323232 c2c2c2c5c5c5d1d1d1bdbdbdc5c5c5d2d2d2dadadabbbbbba0a0a09f9f9fb9b9b9c5c5c5 c2c2c29b9b9b808080a0a0a0a0a0a09595958a8a8aadadadacacac8383837373739e9e9e a7a7a7a4a4a4a2a2a2a2a2a27c7c7c828282abababbcbcbc6b6b6b6363636868686b6b6b 6b6b6b6b6b6b6767676a6a6a7373738c8c8c9e9e9eaeaeaeabababa9a9a97070703c3c3c 3c3c3ca1a1a1b0b0b0e0e0e0eaeaeacacacad1d1d1c7c7c73232326c6c6c8b8b8b8e8e8e 8d8d8d8d8d8d8686868686868686868686868282828282828080808080807d7d7d7a7a7a 6d6d6d2d2d2d1c1c1c222222232323292929 e2e2e2ddddddbebebec0c0c0cacacac5c5c5b3b3b3bcbcbcd8d8d8dadadacccccccccccc c8c8c8b6b6b68484849999999e9e9e989898898989a8a8a8b1b1b1a4a4a47f7f7f828282 a6a6a6a9a9a9a6a6a6a6a6a69f9f9f767676878787c6c6c6cbcbcb6b6b6b6c6c6c6f6f6f 6f6f6f6f6f6f7373737676767c7c7c8f8f8fa1a1a1abababa6a6a6888888565656323232 5c5c5ca7a7a7b3b3b3ddddddf1f1f1efefeff0f0f0f2f2f2f6f6f6a1a1a1868686898989 8a8a8a8a8a8a8383838383838383838383837f7f7f7f7f7f7e7e7e7e7e7e7a7a7a787878 7575755a5a5a2222221c1c1c232323292929 d2d2d2bababac4c4c4d2d2d2c5c5c5b2b2b2c1c1c1dddddde2e2e2cacacad4d4d4d1d1d1 cbcbcbaeaeae8a8a8a8a8a8aa2a2a29797979a9a9aa7a7a7adadadb0b0b08f8f8f7c7c7c 9c9c9cabababa4a4a4a4a4a4a5a5a58d8d8d757575a6a6a6d5d5d5bdbdbd6d6d6d6d6d6d 6e6e6e6f6f6f7272727979797c7c7c8c8c8c9d9d9da1a1a19999996e6e6e4c4c4c282828 636363999999b7b7b7ddddddefefefedededebebebececece9e9e9e6e6e68d8d8d7c7c7c 8080807d7d7d8080808080808080808080807d7d7d7d7d7d7d7d7d7d7d7d747474747474 6f6f6f6c6c6c3535351c1c1c212121212121 c1c1c1d3d3d3dadadad0d0d0aeaeaebcbcbce6e6e6e9e9e9e3e3e3cfcfcfc3c3c3cbcbcb b6b6b6b0b0b0a1a1a18181819e9e9e9f9f9f9191919f9f9fadadadb0b0b0afafaf8a8a8a 828282a3a3a3a8a8a8a8a8a8a6a6a6a2a2a28686867f7f7fa6a6a6e6e6e6bababa6b6b6b 6e6e6e6f6f6f7878787e7e7e7e7e7e8989899696969494947f7f7f5a5a5a444444323232 7474749a9a9abdbdbdddddddefefefedededd5d5d5dadadae4e4e4c1c1c1edededd2d2d2 8383837373737b7b7b7b7b7b7b7b7b7b7b7b7a7a7a7a7a7a7474747474746e6e6e6e6e6e 6c6c6c6a6a6a5b5b5b303030212121212121 dcdcdcdcdcdcdbdbdbc6c6c6a3a3a3c3c3c3e2e2e2e4e4e4d1d1d1c1c1c1a0a0a0c2c2c2 bcbcbcb1b1b1a8a8a87e7e7e878787a3a3a39d9d9d8f8f8fadadadacacacb1b1b1a7a7a7 8080808e8e8eaaaaaaa8a8a8a5a5a5a9a9a99b9b9b7c7c7c828282ccccccefefef939393 6d6d6d6c6c6c7373737878787c7c7c8787878989898484846767675252523a3a3a4f4f4f 797979a2a2a2c4c4c4dbdbdbf0f0f0f0f0f0d7d7d7dbdbdbedededb4b4b4e3e3e3f0f0f0 e7e7e78d8d8d6666666c6c6c7474747474747070707070706e6e6e6d6d6d6a6a6a676767 6464646161615f5f5f5353532323231c1c1c e0e0e0e0e0e0cbcbcbbfbfbfc1c1c1b8b8b8cbcbcbdededecececec3c3c3919191a0a0a0 cacacabbbbbbb0b0b0919191888888afafaf9a9a9a949494949494b3b3b3b3b3b3b3b3b3 979797838383999999b0b0b0aeaeaeabababaaaaaa8f8f8f757575999999c3c3c3e5e5e5 b6b6b66969697070707676767878787878787979797474745e5e5e4a4a4a444444838383 7c7c7c9f9f9fd3d3d3e4e4e4f0f0f0f0f0f0d9d9d9d1d1d1efefefbcbcbcc9c9c9e6e6e6 f1f1f1f0f0f0d3d3d38080806161617272726a6a6a6a6a6a696969686868646464626262 5e5e5e5c5c5c5a5a5a5858584949492a2a2a e3e3e3d4d4d4d4d4d4e9e9e9d6d6d6b9b9b9b7b7b7dfdfdfd3d3d3c8c8c89a9a9a8b8b8b cacacac8c8c8b8b8b89d9d9d818181aaaaaaa6a6a69a9a9a787878b1b1b1b4b4b4b6b6b6 b1b1b18a8a8a858585acacacb3b3b3b1b1b1aaaaaaaaaaaa8383837b7b7ba8a8a8d2d2d2 f2f2f2b0b0b06161616666667676766d6d6d6b6b6b6c6c6c5252524545455c5c5c8e8e8e 8282829a9a9abdbdbdd0d0d0efefeff1f1f1e8e8e8dddddde6e6e6c2c2c2c1c1c1cecece ecececedededf0f0f0f0f0f0b1b1b14c4c4c5a5a5a5858585f5f5f5d5d5d5c5c5c5c5c5c 535353535353525252525252555555464646 cfcfcfcececedfdfdfe4e4e4d3d3d3cdcdcdafafafdadadad6d6d6cccccca9a9a9949494 c6c6c6d0d0d0bebebea7a7a77f7f7f909090a8a8a8989898818181979797b4b4b4b6b6b6 bbbbbba8a8a88888889a9a9ab3b3b3b2b2b2aeaeaeaeaeae9d9d9d7e7e7e8d8d8dc1c1c1 d6d6d6aaaaaad3d3d3d2d2d27f7f7f6262626969696a6a6a515151404040767676a7a7a7 7d7d7db1b1b18d8d8da9a9a9d8d8d8eeeeeeeeeeeee3e3e3eaeaeaccccccc1c1c1c8c8c8 e6e6e6edededf0f0f0f0f0f0f5f5f5d1d1d1505050565656555555545454515151515151 4d4d4d4d4d4d4c4c4c4c4c4c4b4b4b4f4f4f aeaeaedadadad7d7d7cccccccfcfcfdbdbdbbbbbbbd3d3d3dcdcdcd4d4d4bcbcbc9c9c9c abababd0d0d0ccccccbbbbbb979797888888c2c2c29f9f9f8f8f8f717171b6b6b6bdbdbd c0c0c0c3c3c3a3a3a3868686aeaeaebababab5b5b5b0b0b0afafaf9292927a7a7aa0a0a0 929292949494a0a0a08d8d8da3a3a36868686b6b6b5e5e5e4343436a6a6a929292a7a7a7 8787878d8d8d787878eeeeee717171f3f3f3f0f0f0efefefe8e8e8dededec0c0c0c1c1c1 cdcdcdeaeaeaedededf0f0f0ebebebe9e9e9f3f3f3676767333333464646454545424242 3c3c3c3c3c3c383838383838383838484848 b0b0b0b4b4b4d8d8d8d6d6d6cfcfcfdbdbdbcbcbcbc4c4c4ddddddd7d7d7c0c0c08f8f8f a0a0a0c4c4c4cdcdcdc7c7c7acacac848484b4b4b4aaaaaa9494947a7a7a8d8d8dc8c8c8 c6c6c6c9c9c9bababa8f8f8f979797bcbcbcbbbbbbb6b6b6b0b0b0ababab8c8c8c838383 7777779090909b9b9b8d8d8d7c7c7c6c6c6c6969695a5a5a5c5c5c8c8c8c9f9f9fadadad b3b3b36969697c7c7cececec818181e7e7e7f0f0f0efefefe9e9e9e3e3e3c3c3c3c4c4c4 cacacae1e1e1edededf0f0f0f0f0f0d9d9d9edededf1f1f13030302727272d2d2d353535 3232323737372f2f2f3434343d3d3d444444 bdbdbda6a6a6c1c1c1cecececcccccdbdbdbddddddc2c2c2d9d9d9dbdbdbcccccc8b8b8b 909090b7b7b7c0c0c0c9c9c9cacaca9a9a9aa4a4a4b5b5b59e9e9e9696965e5e5ea1a1a1 d0d0d0cbcbcbcfcfcfb7b7b78f8f8faeaeaec2c2c2bfbfbfb6b6b6bdbdbdaeaeae999999 9d9d9d656565919191a8a8a87d7d7d6a6a6a5c5c5c626262858585a6a6a6a4a4a49f9f9f 7f7f7f5c5c5c7e7e7ee6e6e6c5c5c5e5e5e5f0f0f0f0f0f0ececececececbfbfbfcacaca bdbdbdc9c9c9dddddde9e9e9f1f1f1ebebebe6e6e6f1f1f1eeeeee7070703636363d3d3d 3f3f3f4949495252525252524d4d4d464646 showpage % stop using temporary dictionary end % restore original state origstate restore %%Trailer enscript-1.6.5.90/scripts/0000755000175000017500000000000011606344230012270 500000000000000enscript-1.6.5.90/scripts/Makefile.am0000644000175000017500000000215511401303365014244 00000000000000# # Makefile for scripts directory. # Copyright (c) 1996, 1997 Markku Rossi # # Author: Markku Rossi # # # This file is part of GNU Enscript. # # Enscript is free software: you can redistribute 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. # # Enscript is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Enscript. If not, see . # man_MANS = diffpp.1 sliceprint.1 bin_SCRIPTS = diffpp sliceprint diffpp: $(srcdir)/diffpp.in sed 's%@PERLPROG@%@PERL@%g' $(srcdir)/diffpp.in >diffpp sliceprint: $(srcdir)/sliceprint.in sed 's%@PERLPROG@%@PERL@%g' $(srcdir)/sliceprint.in >sliceprint EXTRA_DIST = ChangeLog.old diffpp.in sliceprint.in $(man_MANS) CLEANFILES = diffpp sliceprint enscript-1.6.5.90/scripts/ChangeLog.old0000644000175000017500000000231711401303365014537 000000000000002008-01-01 Tim Retout * ChangeLog: Run M-x change-log-redate. Add copyright notice at end. 1999-09-13 Markku Rossi * sliceprint.in: Added option `--extended-return-values' since it is not needed to get the extended return values. 1998-05-18 Markku Rossi * diffpp.in: Updated. Thanks to Tait Cyrus for the updated version. 1997-07-17 Markku Rossi * Makefile.am: Updated changes needed by Automake-1.2. 1996-08-23 Markku Rossi * sliceprint.in: sliceprint - slice documents with long lines to separate printouts. 1996-07-28 Markku Rossi * diffpp.in: Changed diamond <> to to make diffpp to work with some older perls. 1996-06-30 Markku Rossi * diffpp.in: diffpp - pretty-print diff outputs. 1996-06-13 Markku Rossi * New directory to hold some handy utility scripts for enscript. Copyright (C) 1996, 1997, 1998, 1999, 2008 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. enscript-1.6.5.90/scripts/sliceprint.10000644000175000017500000000232311606154030014443 00000000000000.\" .\" sliceprint manual page. .\" Copyright (c) 1996 Markku Rossi. .\" Author: Markku Rossi .\" .\" .\" Enscript is free software: you can redistribute 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. .\" .\" Enscript is distributed in the hope that it will be useful, .\" but WITHOUT ANY WARRANTY; without even the implied warranty of .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the .\" GNU General Public License for more details. .\" .\" You should have received a copy of the GNU General Public License .\" along with Enscript. If not, see . .\" .TH SLICEPRINT 1 "Aug 23, 1996" "SLICEPRINT" "SLICEPRINT" .SH NAME sliceprint \- slice documents with long lines. .SH SYNOPSIS .B sliceprint \f1[\-o\f2file\f1]\f3 \f1[\f2enscript_options\f1]\f3 \f1[\f2files\f1]\f3 .SH DESCRIPTION \f3Sliceprint\f1 is a wrapper around the \f3enscript(1)\f1\ \-\-slice option. Output slices are written to \f2file\f1.1, \f2file\f1.2 and so on. .SH SEE ALSO enscript(1) .SH AUTHOR Markku Rossi enscript-1.6.5.90/scripts/diffpp.10000644000175000017500000000410711133214772013546 00000000000000.\" .\" diffpp manual page. .\" Copyright (c) 1996 Markku Rossi. .\" Author: Markku Rossi .\" .\" .\" Enscript is free software: you can redistribute 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. .\" .\" Enscript is distributed in the hope that it will be useful, .\" but WITHOUT ANY WARRANTY; without even the implied warranty of .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the .\" GNU General Public License for more details. .\" .\" You should have received a copy of the GNU General Public License .\" along with Enscript. If not, see . .\" .TH DIFFPP 1 "Jan 29, 1997" "DIFFPP" "DIFFPP" .SH NAME diffpp \- pretty\-print diff outputs with GNU enscript .SH SYNOPSIS .B diffpp \f2currentfile\f1 < \f2diff\-file\f1 .SH DESCRIPTION \f3Diffpp\f1 converts \f3diff(1)\f1\-program's output files to a format suitable to be printed with GNU \f3enscript(1)\f1. Program annotates the changes with enscript's special escapes so enscript can highlight the modified portions of the file. All changed and added lines are printed with gray\-background, deleted lines are marked with minus (`\-') characters; \f3diffpp\f1 prints one minus character for each deleted line. .SH EXAMPLES The easiest way to use \f3diffpp\f1 is to use it as an input filter for enscript. If an input filter is specified for enscript it is used to pre\-process the incoming data\-stream. Filtering does not alter any header strings or file\-timestamps which might be printed on enscript headers; only the incoming data is modified. .TP 8 \f3enscript \-G2re \-\-filter='rcsdiff %s | diffpp %s' *.c *.h\f1 Print the changes between current source files and their latest RCS\-versions. .TP 8 \f3enscript \-G2re \-\-filter='diff %s~ %s | diffpp %s' *.c *.h\f1 Print changes between source files and the corresponding backup\-files. .SH SEE ALSO diff(1), enscript(1) .SH AUTHOR Markku Rossi enscript-1.6.5.90/scripts/sliceprint.in0000644000175000017500000000376411606154030014723 00000000000000#!@PERLPROG@ # -*- perl -*- # # Print documents with long lines. # Copyright (c) 1996-1999 Markku Rossi # # Author: Markku Rossi # # # This file is part of GNU Enscript. # # Enscript is free software: you can redistribute 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. # # Enscript is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Enscript. If not, see . # $enscript = "enscript"; $ENV{LC_ALL} = "C"; # we parse enscript's output $program = $0; $program =~ s/.*\///g; sub usage { warn "Usage: $program [-oFILE] [ENSCRIPT_OPTION]... [FILE]...\n"; } # Handle arguments. $args = "--extended-return-values"; $files = ""; while ($arg = shift(@ARGV)) { if ($arg eq "--help") { &usage; exit 0; } elsif ($arg eq "--version") { warn "sliceprint 1.0\n"; exit 0; } elsif ($arg =~ /^-p(.+)$/ || $arg =~ /^-o(.+)$/ || $arg =~ /^--output=(.+)$/) { $output_file = $1; } elsif ($arg eq "-p" || $arg eq "-o") { $output_file = shift(@ARGV); } elsif ($arg =~ /^-/) { $args .= " $arg"; } else { $files .= " $arg"; } } # Check if output file is "-". if (defined($output_file) && $output_file eq "-") { die "$program: output file can't be stdout\n"; } $slice = 0; while (1) { $slice++; if (defined($output_file)) { $cmd = "$enscript " . $args . " --slice=$slice -p" . $output_file . "." . $slice . " " . $files; } else { $cmd = "$enscript " . $args . " --slice=$slice" . $files; } print "printing slice $slice...\n"; $result = `$cmd 2>&1`; print $result; if ($result !~ ".*line.* were wrapped.*") { last; } } enscript-1.6.5.90/scripts/Makefile.in0000644000175000017500000004210111606344074014261 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 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 scripts directory. # Copyright (c) 1996, 1997 Markku Rossi # # Author: Markku Rossi # # # This file is part of GNU Enscript. # # Enscript is free software: you can redistribute 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. # # Enscript is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Enscript. If not, see . # VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = scripts DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc2.m4 \ $(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intdiv0.m4 $(top_srcdir)/m4/intl.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/intmax.m4 \ $(top_srcdir)/m4/inttypes-pri.m4 \ $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/lcmessage.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/lock.m4 \ $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/printf-posix.m4 \ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/size_max.m4 \ $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/uintmax_t.m4 \ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/wchar_t.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xsize.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)" SCRIPTS = $(bin_SCRIPTS) SOURCES = DIST_SOURCES = man1dir = $(mandir)/man1 NROFF = nroff MANS = $(man_MANS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GENCAT = @GENCAT@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GLIBC2 = @GLIBC2@ GLIBC21 = @GLIBC21@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ HAVE_ASPRINTF = @HAVE_ASPRINTF@ HAVE_POSIX_PRINTF = @HAVE_POSIX_PRINTF@ HAVE_SNPRINTF = @HAVE_SNPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WPRINTF = @HAVE_WPRINTF@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLBISON = @INTLBISON@ INTLLIBS = @INTLLIBS@ INTLOBJS = @INTLOBJS@ INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTHREAD = @LIBTHREAD@ LTLIBC = @LTLIBC@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ MAKEINFO = @MAKEINFO@ MEDIA = @MEDIA@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ POSUB = @POSUB@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ PSLEVEL = @PSLEVEL@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SPOOLER = @SPOOLER@ STRIP = @STRIP@ U = @U@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WINDRES = @WINDRES@ WOE32 = @WOE32@ WOE32DLL = @WOE32DLL@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ YACC = @YACC@ YFLAGS = @YFLAGS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ 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@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ man_MANS = diffpp.1 sliceprint.1 bin_SCRIPTS = diffpp sliceprint EXTRA_DIST = ChangeLog.old diffpp.in sliceprint.in $(man_MANS) CLEANFILES = diffpp sliceprint all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu scripts/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu scripts/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 $(am__aclocal_m4_deps): install-binSCRIPTS: $(bin_SCRIPTS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n' \ -e 'h;s|.*|.|' \ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) { files[d] = files[d] " " $$1; \ if (++n[d] == $(am__install_max)) { \ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ else { print "f", d "/" $$4, $$1 } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binSCRIPTS: @$(NORMAL_UNINSTALL) @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 's,.*/,,;$(transform)'`; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files install-man1: $(man_MANS) @$(NORMAL_INSTALL) test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)" @list=''; test -n "$(man1dir)" || exit 0; \ { for i in $$list; do echo "$$i"; done; \ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ sed -n '/\.1[a-z]*$$/p'; \ } | while read p; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; echo "$$p"; \ done | \ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ sed 'N;N;s,\n, ,g' | { \ list=; while read file base inst; do \ if test "$$base" = "$$inst"; then list="$$list $$file"; else \ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \ fi; \ done; \ for i in $$list; do echo "$$i"; done | $(am__base_list) | \ while read files; do \ test -z "$$files" || { \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \ done; } uninstall-man1: @$(NORMAL_UNINSTALL) @list=''; test -n "$(man1dir)" || exit 0; \ files=`{ for i in $$list; do echo "$$i"; done; \ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ sed -n '/\.1[a-z]*$$/p'; \ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ test -z "$$files" || { \ echo " ( cd '$(DESTDIR)$(man1dir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(man1dir)" && rm -f $$files; } tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @list='$(MANS)'; if test -n "$$list"; then \ list=`for p in $$list; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \ if test -n "$$list" && \ grep 'ab help2man is required to generate this page' $$list >/dev/null; then \ echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \ grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \ echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \ echo " typically \`make maintainer-clean' will remove them" >&2; \ exit 1; \ else :; fi; \ else :; fi @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(SCRIPTS) $(MANS) installdirs: for dir in "$(DESTDIR)$(bindir)" "$(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: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-man install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binSCRIPTS install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-man1 install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: 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-binSCRIPTS uninstall-man uninstall-man: uninstall-man1 .MAKE: install-am install-strip .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-binSCRIPTS install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-man1 install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-binSCRIPTS \ uninstall-man uninstall-man1 diffpp: $(srcdir)/diffpp.in sed 's%@PERLPROG@%@PERL@%g' $(srcdir)/diffpp.in >diffpp sliceprint: $(srcdir)/sliceprint.in sed 's%@PERLPROG@%@PERL@%g' $(srcdir)/sliceprint.in >sliceprint # 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: enscript-1.6.5.90/scripts/diffpp.in0000644000175000017500000001070111133214772014011 00000000000000#!@PERLPROG@ # -*- perl -*- # # Pretty-print diff outputs with GNU enscript. # Copyright (c) 1996-1998 Markku Rossi # # Author: Markku Rossi # # # This file is part of GNU Enscript. # # Enscript is free software: you can redistribute 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. # # Enscript is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Enscript. If not, see . # # # Original idea by Trent Fisher # Thanks to: # - Tero Kivinen for the first prototype # - Tait Cyrus for fixes and cleanups # $file = shift(@ARGV); $add_gray = ".80"; $del_gray = ".60"; $program = $0; $program =~ s/.*\///g; sub usage { warn "Usage: $program ORIGINAL_FILE < DIFF\n\n"; warn "Program reads a diff file from its standard input and annotates ORIGINAL_FILE to show the changes made to the file. The easiest way to use this program is to use it as an input filter for GNU enscript: \$ enscript -G2re --filter='rcsdiff %s | diffpp %s' *.c *.h \$ enscript -G2re --filter='diff %s~ %s | diffpp %s' *.c *.h "; } if (!defined($file) || defined($ARGV[0])) { &usage; exit 1; } if ($file eq "--help") { &usage; exit 0; } if ($file eq "--version") { warn "diffpp 1.0\n"; exit 0; } # Read in original file into internal array. open(FP, $file) || die "$program: couldn't open file `$file' for input: $!\n"; @orig_file = ; close(FP); $[ = 1; $orig_line_num = 1; $orig_num_lines = @orig_file; # Now read in file of diffs into internal array. @diffs = ; $diff_line_num = 1; $diff_num_lines = @diffs; while ($diff_line_num <= $diff_num_lines) { $_ = $diffs[$diff_line_num]; if (/a/) { do_add($_); } elsif (/d/) { do_delete($_); } elsif (/c/) { do_change($_); } } while ($orig_line_num <= $orig_num_lines) { print $orig_file[$orig_line_num++]; } # Handle new/added lines # # Formats used: # #a# # #a#,# sub do_add { ($line) = @_; if ($line =~ /(\d+)a(\d+),(\d+)/) { $insert_at_line = $1; $num_new_lines = $3 - $2 + 1; } elsif ($line =~ /(\d+)a(\d+)/) { $insert_at_line = $1; $num_new_lines = 1; } &skip_to_line($insert_at_line); printf("\000shade{$add_gray}"); &mark_to_line($num_new_lines, "+"); printf("\000shade{1.0}"); } # Handle deleted/removed lines # # Formats used: # #d# # #,#d# sub do_delete { ($line) = @_; if ($line =~ /(\d+),(\d+)d(\d+)/) { $num_del_lines = $2 - $1 + 1; } elsif ($line =~ /(\d+)d(\d+)/) { $num_del_lines = 1; } $del_from = $1; &skip_to_line($del_from - 1); printf("\000shade{$del_gray}"); &mark_to_line($num_del_lines, "-"); printf("\000shade{1.0}"); $orig_line_num += $num_del_lines; } # Handle changed/modified lines # # Formats used: # #,#c#,# # #,#c# # #c#,# # #c# sub do_change { ($line) = @_; if ($line =~ /(\d+),(\d+)c(\d+),(\d+)/) { $num_old_lines = $2 - $1 + 1; $num_new_lines = $4 - $3 + 1; $change_at_line = $1; } elsif ($line =~ /(\d+),(\d+)c(\d+)/) { $num_old_lines = $2 - $1 + 1; $num_new_lines = 1; $change_at_line = $1; } elsif ($line =~ /(\d+)c(\d+),(\d+)/) { $num_old_lines = 1; $num_new_lines = $3 - $2 + 1; $change_at_line = $1; } elsif ($line =~ /(\d+)c(\d+)/) { $num_old_lines = 1; $num_new_lines = 1; $change_at_line = $1; } # Mark old lines &skip_to_line($change_at_line - 1); $orig_line_num += $num_old_lines; # skip over changed lines printf("\000shade{$del_gray}"); &mark_to_line($num_old_lines, "-"); printf("\000shade{1.0}"); # Mark new lines printf("\000shade{$add_gray}"); &mark_to_line($num_new_lines, "+"); printf("\000shade{1.0}"); } sub skip_to_line { ($line) = @_; while ($orig_line_num <= $line) { print $orig_file[$orig_line_num]; $orig_line_num++; } } sub mark_to_line { ($num_lines, $marker) = @_; $diff_line_num++; # skip over diff command while ($num_lines > 0) { $diff_line = substr($diffs[$diff_line_num++],3); print "\000ps{gsave -5 0 rmoveto ($marker) show grestore}"; print $diff_line; $num_lines--; } } enscript-1.6.5.90/mtr_tiny.eps0000644000175000017500000001126511132443251013101 00000000000000%!PS-Adobe-2.0 EPSF-2.0 %%Title: /home/mtr/myprogs/enscript/mtr_tiny.eps %%Creator: XV Version 3.10a Rev: 12/29/94 - by John Bradley %%BoundingBox: 279 421 298 443 %%Pages: 1 %%DocumentFonts: %%EndComments %%EndProlog %%Page: 1 1 % remember original state /origstate save def % build a temporary dictionary 20 dict begin % define string to hold a scanline's worth of data /pix 57 string def % define space for color conversions /grays 19 string def % space for gray scale line /npixls 0 def /rgbindx 0 def % lower left corner 279 421 translate % size of image (on paper, in 1/72inch coords) 19.00800 22.03200 scale % define 'colorimage' if it isn't defined % ('colortogray' and 'mergeprocs' come from xwd2ps % via xgrab) /colorimage where % do we know about 'colorimage'? { pop } % yes: pop off the 'dict' returned { % no: define one /colortogray { % define an RGB->I function /rgbdata exch store % call input 'rgbdata' rgbdata length 3 idiv /npixls exch store /rgbindx 0 store 0 1 npixls 1 sub { grays exch rgbdata rgbindx get 20 mul % Red rgbdata rgbindx 1 add get 32 mul % Green rgbdata rgbindx 2 add get 12 mul % Blue add add 64 idiv % I = .5G + .31R + .18B put /rgbindx rgbindx 3 add store } for grays 0 npixls getinterval } bind def % Utility procedure for colorimage operator. % This procedure takes two procedures off the % stack and merges them into a single procedure. /mergeprocs { % def dup length 3 -1 roll dup length dup 5 1 roll 3 -1 roll add array cvx dup 3 -1 roll 0 exch putinterval dup 4 2 roll putinterval } bind def /colorimage { % def pop pop % remove 'false 3' operands {colortogray} mergeprocs image } bind def } ifelse % end of 'false' case 19 22 8 % dimensions of data [19 0 0 -22 0 22] % mapping matrix {currentfile pix readhexstring pop} false 3 colorimage b5b5b5babababcbcbcbcbcbcbababababababcbcbcbababab6b6b6b4b4b4b2b2b2a0a0a0 6262626c6c6ca3a3a3adadadd4d4d4202020212121 babababcbcbcbcbcbcbcbcbcbababab8b8b8b8b8b8b6b6b6b4b4b4b4b4b4adadad737373 7878787575756d6d6d6c6c6c6d6d6d838383606060 babababcbcbcbcbcbcbcbcbcb8b8b8b8b8b8bababa6868688282828a8a8a7e7e7e7c7c7c 7979796969697979797272726c6c6c636363575757 bcbcbcbcbcbcbabababababab6b6b66e6e6e5454545d5d5d5959596868685d5d5d737373 4c4c4c3d3d3d6f6f6f6f6f6f636363686868575757 babababcbcbcbababab8b8b84c4c4c3a3a3a3f3f3f3c3c3c4b4b4b4e4e4e3c3c3c6f6f6f 4444445656567878787070706161616a6a6a636363 babababcbcbcbababab6b6b62727273333332929292a2a2a2e2e2e3a3a3a6a6a6a818181 a7a7a75959598c8c8c7676769e9e9e777777696969 bcbcbcbababab8b8b83030303131313232322f2f2f2b2b2b3b3b3b5858587c7c7c8a8a8a b2b2b27a7a7a9696968b8b8b9191918e8e8e919191 babababababab8b8b82222222626262e2e2e3232324a4a4a5c5c5c686868757575868686 b0b0b0bdbdbd7979796969696e6e6e7b7b7b525252 b8b8b8b6b6b6b6b6b63131313131314343434d4d4d5c5c5c5a5a5a6666666565655d5d5d 6a6a6ab6b6b66e6e6e6363636e6e6e6c6c6c616161 b8b8b8b6b6b6b6b6b6a1a1a13a3a3a5151514f4f4f2f2f2f4040404c4c4c949494424242 a8a8a89b9b9b5353535e5e5e666666676767646464 b6b6b6b6b6b6b4b4b4b0b0b04141415555554444444d4d4d4c4c4c5151518a8a8a616161 9d9d9db4b4b47b7b7b5c5c5c6363636767675f5f5f b4b4b4b4b4b4b2b2b2aeaeae4545455959595b5b5b5b5b5b575757525252898989adadad 8c8c8cbfbfbf5b5b5b555555606060696969777777 b2b2b2b2b2b2b0b0b0acacac6363636161615959595d5d5d5b5b5b5353535e5e5e8c8c8c adadadb1b1b16c6c6c5050506b6b6b6f6f6f6c6c6c b2b2b2aeaeaeb0b0b0acacaca8a8a85858585b5b5b5e5e5e5f5f5f5353536868689e9e9e b5b5b5c2c2c23a3a3a3e3e3e3e3e3e444444474747 b0b0b0aeaeaeacacacaaaaaaa4a4a4a5a5a55b5b5b5f5f5f5b5b5b3131313232323a3a3a b5b5b59292924545454d4d4d353535575757565656 b0b0b0aeaeaeacacaca6a6a6a2a2a2a0a0a05d5d5d5e5e5e5555555555555a5a5a7a7a7a a3a3a3acacac4c4c4c5f5f5f2e2e2e4848485e5e5e aeaeaeacacacacacaca4a4a4a0a0a08f8f8f5858586161615a5a5a5555555d5d5d9a9a9a a9a9a9b0b0b04545454e4e4e242424868686949494 aeaeaeacacaca8a8a8a2a2a2a0a0a09999994c4c4c5757575d5d5d6969696d6d6d898989 aaaaaa2828281e1e1e9090909090909595951d1d1d aaaaaaa8a8a8a8a8a8c9c9c99b9b9ba2a2a27575755757575757576565659f9f9fb4b4b4 7f7f7f2c2c2c4040408d8d8d8a8a8a818181232323 a8a8a8c4c4c4d2d2d2b8b8b8aeaeae797979a2a2a2a2a2a25f5f5f6969699e9e9eadadad a2a2a24848486565658b8b8b8686867c7c7c1f1f1f b9b9b9bfbfbfe5e5e5bebebea5a5a5aeaeaea4a4a49e9e9edddddd6f6f6f8b8b8b5d5d5d a8a8a8e1e1e1e8e8e87e7e7e7c7c7c7272724c4c4c dadadad3d3d3d5d5d5cccccc828282767676b6b6b6b1b1b17b7b7bb9b9b96a6a6a3f3f3f afafafefefefc0c0c0f0f0f04d4d4d5454544d4d4d showpage % stop using temporary dictionary end % restore original state origstate restore %%Trailer enscript-1.6.5.90/COPYING0000644000175000017500000010437411133214772011567 00000000000000 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 . enscript-1.6.5.90/TODO0000644000175000017500000001255211132443251011213 00000000000000 TODO enscript epsf[r n y-1]{Construction.eps} * Defaults.py.in => strip the `.in' before the highlight rule detection. * Fix config file parsing so that it is possible to set the value to an empty string. For example, on HP-UX 9.x/10.x there are no NoJobHeaderSwitch, so the users might want to set: NoJobHeaderSwitch: * > - The --help string should say something like `Convert plain text, > possibly with embedded formatting codes, to PostScript' after the Usage: > line, so users can know what the program does. * The states program should be called gstates if the enscript was configured with option "--program-prefix=g". * Option to include PS stuffs to the enscript.pro. This allows users to define an image at the enscript.pro and to use it in the headers, instead of defining the image at every page. * It might be nice if there were a method for which people could define their own options to genscript which would be aliases for other commands. Perhaps defined in the enscript.cfg file or the .enscriptrc file. What I mean, is it would be nice to be able to define an alias for something like: UserOption: tray1 -DMediaPosition:1 perhaps: -otray1 * New option to to process its argument as if it was read from the configuration file. * It would be nice if the AFM directory could be located using an environment variable. * Bugs ** Automake First, you need to update to the latest copies of ansi2knr.[c1] from automake-1.3 and put them in the afmlib and src directories. Second, I believe there is a bug in automake-1.3 and the following untested patch to automake-1.3 *might* fix it. Essentially, automake generates Makefiles which do: --- clip ------ clip ------ clip ------ clip ------ clip ------ clip --- --- automake.in~ Mon Apr 6 00:47:00 1998 +++ automake.in Sat Jul 4 10:31:59 1998 @@ -1014,7 +1014,7 @@ . '`if test -f $(srcdir)/' . $base . '.c' . '; then echo $(srcdir)/' . $base . '.c' . '; else echo ' . $base . '.c; fi` ' - . '| $(ANSI2KNR) ' . $base . "_.c\n"); + . '| $(ANSI2KNR) > ' . $base . "_.c\n"); push (@objects, $base . '_.o'); push (@objects, $base . '_.lo') if $seen_libtool; } --- clip ------ clip ------ clip ------ clip ------ clip ------ clip --- ** Misc - configure.in: add check for gethostname() function and if not found, use the version found from compat subdirectory. - strftime() on SCO, need to add AC_FUNC_STRFTIME to configure.in - -lc on SCO: > gcc -o enscript main.o psgen.o util.o xalloc.o prt_lpr.o > ../afmlib/libafm.a ../intl/libintl.a ../compat/libcompat.a -lm > undefined first referenced > symbol in file > __unlink psgen.o > strftime util.o > gethostname util.o > __filbuf ../afmlib/libafm.a > ld fatal: Symbol referencing errors. No output written to enscript > make: *** [enscript] Error 1 * High priority - Kanji support - Unicode support * Low priority - convert escape chars to escape strings: \%font{Courier5} - allow some options for the pass-through files: -a, -D, -S, -1, -2, -r - read AFM and .pf{a,b} files from the stdouts of the named commands - ^@epsf{}: options to rotate the image. - -r, --landscape, check if the page is rotated to the correct direction - --tocfont to set the font which is used for table of contents (TOCFont) - right justify the end of lines that are wrapped so that it's easy to find out which lines have been wrapped - specify the font size by giving the number of characters per line or lines per page - specify the margins used and in particular being able to swap left and right margin to print on double sided printers while keeping a margin on the left of the sheet to make holes - support for PPD files - make options compatible with the latest version of Adobe enscript - options: - --characters-per-line - -#, --page-numbers print page numbers to every page, even in the --no-header mode. - input encodings: - IBM ebdic * PPD information Transcript V4.x: -Sfeature=value chooses a printer feature, such as manual feed or duplex. If value is omitted, a value of true is assumed. These features must match a keyword in the Printer Description file. For example, "enscript -S ManualFeed" turns on manual feed. Other PPD options include: -ssize chooses a paper size for printing. This size must match one of the *PaperSize keywords in the Printer Description file, such as Letter, Legal, or A4. -Pprinter causes the output to be sent to the named printer unless -pfile is specified. In that case, the printer name is used to access the printer's Printer Description file for information, and the output is written to the specified file instead of being spooled for printing. -ddest causes the output to be sent to the named printer or printer class unless -pfile is specified. In that case, the printer name is used to access the printer's Printer Description file for information, and the output is written to the specified file instead of being spooled for printing. enscript-1.6.5.90/aclocal.m40000644000175000017500000010753511606344070012376 00000000000000# generated automatically by aclocal 1.11.1 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.68],, [m4_warning([this file was generated for autoconf 2.68. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically `autoreconf'.])]) # Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.11' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. m4_if([$1], [1.11.1], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) # _AM_AUTOCONF_VERSION(VERSION) # ----------------------------- # aclocal traces this macro to find the Autoconf version. # This is a private macro too. Using m4_define simplifies # the logic in aclocal, which can simply ignore this definition. m4_define([_AM_AUTOCONF_VERSION], []) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.11.1])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001, 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, 2006, 2008 # 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_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])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl _AM_SUBST_NOTMAKE([$1_FALSE])dnl m4_define([_AM_COND_VALUE_$1], [$2])dnl if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then AC_MSG_ERROR([[conditional "$1" was never defined. Usually this means the macro was only invoked conditionally.]]) fi])]) # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009 # 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 10 # 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], UPC, [depcc="$UPC" am_compiler_list=], [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_$1_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` fi am__universal=false m4_case([$1], [CC], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac], [CXX], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac]) for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_$1_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_$1_dependencies_compiler_type=none fi ]) AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) AM_CONDITIONAL([am__fastdep$1], [ test "x$enable_dependency_tracking" != xno \ && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) ]) # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. # This macro is AC_REQUIREd in _AM_DEPENDENCIES AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl ]) # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE(dependency-tracking, [ --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])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008 # 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 5 # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ # Autoconf 2.62 quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf 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. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/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, 2006, 2008, 2009 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 16 # 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.62])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl # test to see if srcdir already configured if test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) AM_MISSING_PROG(AUTOCONF, autoconf) AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) AM_MISSING_PROG(AUTOHEADER, autoheader) AM_MISSING_PROG(MAKEINFO, makeinfo) AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl AC_REQUIRE([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 AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES(OBJC)], [define([AC_PROG_OBJC], defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl ]) _AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl dnl The `parallel-tests' driver may need to know about EXEEXT, so add the dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl ]) dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_arg=$1 _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi AC_SUBST(install_sh)]) # Copyright (C) 2003, 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) 1998, 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 5 # AM_PROG_LEX # ----------- # Autoconf leaves LEX=: if lex or flex can't be found. Change that to a # "missing" invocation, for better error output. AC_DEFUN([AM_PROG_LEX], [AC_PREREQ(2.50)dnl AC_REQUIRE([AM_MISSING_HAS_RUN])dnl AC_REQUIRE([AC_PROG_LEX])dnl if test "$LEX" = :; then LEX=${am_missing_run}flex fi]) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 2009 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_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .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 # Ignore all kinds of additional output from `make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac 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, 2004, 2005, 2008 # 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 6 # 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 AC_REQUIRE_AUX_FILE([missing])dnl if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # 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, 2006 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 for `mkdir -p'. AC_DEFUN([AM_PROG_MKDIR_P], [AC_PREREQ([2.60])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, dnl while keeping a definition of mkdir_p for backward compatibility. dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of dnl Makefile.ins that do not define MKDIR_P, so we do our own dnl adjustment using top_builddir (which is defined more often than dnl MKDIR_P). AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl case $mkdir_p in [[\\/$]]* | ?:[[\\/]]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac ]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 2008 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_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # ------------------------------ # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), 1)]) # _AM_SET_OPTIONS(OPTIONS) # ---------------------------------- # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # Copyright (C) 1996, 1997, 1998, 2000, 2001, 2002, 2003, 2005, 2006 # 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 5 AC_DEFUN([AM_C_PROTOTYPES], [AC_REQUIRE([AC_C_PROTOTYPES]) if test "$ac_cv_prog_cc_stdc" != no; then U= ANSI2KNR= else U=_ ANSI2KNR=./ansi2knr fi # Ensure some checks needed by ansi2knr itself. AC_REQUIRE([AC_HEADER_STDC]) AC_CHECK_HEADERS([string.h]) AC_SUBST([U])dnl AC_SUBST([ANSI2KNR])dnl _AM_SUBST_NOTMAKE([ANSI2KNR])dnl ]) AU_DEFUN([fp_C_PROTOTYPES], [AM_C_PROTOTYPES]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008 # 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 5 # 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 # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[[\\\"\#\$\&\'\`$am_lf]]*) AC_MSG_ERROR([unsafe absolute working directory name]);; esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);; esac # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( 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="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Copyright (C) 2006, 2008 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_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. AC_DEFUN([_AM_SUBST_NOTMAKE]) # AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Public sister of _AM_SUBST_NOTMAKE. AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004, 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/codeset.m4]) m4_include([m4/gettext.m4]) m4_include([m4/glibc2.m4]) m4_include([m4/glibc21.m4]) m4_include([m4/iconv.m4]) m4_include([m4/intdiv0.m4]) m4_include([m4/intl.m4]) m4_include([m4/intlmacosx.m4]) m4_include([m4/intmax.m4]) m4_include([m4/inttypes-pri.m4]) m4_include([m4/inttypes_h.m4]) m4_include([m4/lcmessage.m4]) m4_include([m4/lib-ld.m4]) m4_include([m4/lib-link.m4]) m4_include([m4/lib-prefix.m4]) m4_include([m4/lock.m4]) m4_include([m4/longlong.m4]) m4_include([m4/nls.m4]) m4_include([m4/po.m4]) m4_include([m4/printf-posix.m4]) m4_include([m4/progtest.m4]) m4_include([m4/size_max.m4]) m4_include([m4/stdint_h.m4]) m4_include([m4/uintmax_t.m4]) m4_include([m4/visibility.m4]) m4_include([m4/wchar_t.m4]) m4_include([m4/wint_t.m4]) m4_include([m4/xsize.m4]) enscript-1.6.5.90/ascii.txt0000644000175000017500000001345111132443251012353 00000000000000 7 bit ASCII character set octal hex PostScript HTML entity character ---------------------------------------------------------------------- 000 0x00 non-printable 001 0x01 non-printable 002 0x02 non-printable 003 0x03 non-printable 004 0x04 non-printable 005 0x05 non-printable 006 0x06 non-printable 007 0x07 non-printable 010 0x08 non-printable 011 0x09 non-printable 012 0x0a non-printable 013 0x0b non-printable 014 0x0c non-printable 015 0x0d non-printable 016 0x0e non-printable 017 0x0f non-printable 020 0x10 non-printable 021 0x11 non-printable 022 0x12 non-printable 023 0x13 non-printable 024 0x14 non-printable 025 0x15 non-printable 026 0x16 non-printable 027 0x17 non-printable 030 0x18 non-printable 031 0x19 non-printable 032 0x1a non-printable 033 0x1b non-printable 034 0x1c non-printable 035 0x1d non-printable 036 0x1e non-printable 037 0x1f non-printable 040 0x20 /space 041 0x21 /exclam ! 042 0x22 /quotedbl " " 043 0x23 /numbersign # 044 0x24 /dollar $ 045 0x25 /percent % 046 0x26 /ampersand & & 047 0x27 /quoteright ' 050 0x28 /parenleft ( 051 0x29 /parenright ) 052 0x2a /asterisk * 053 0x2b /plus + 054 0x2c /comma , 055 0x2d /hyphen - 056 0x2e /period . 057 0x2f /slash / 060 0x30 /zero 0 061 0x31 /one 1 062 0x32 /two 2 063 0x33 /three 3 064 0x34 /four 4 065 0x35 /five 5 066 0x36 /six 6 067 0x37 /seven 7 070 0x38 /eight 8 071 0x39 /nine 9 072 0x3a /colon : 073 0x3b /semicolon ; 074 0x3c /less < < 075 0x3d /equal = 076 0x3e /greater > > 077 0x3f /question ? 0100 0x40 /at @ 0101 0x41 /A A 0102 0x42 /B B 0103 0x43 /C C 0104 0x44 /D D 0105 0x45 /E E 0106 0x46 /F F 0107 0x47 /G G 0110 0x48 /H H 0111 0x49 /I I 0112 0x4a /J J 0113 0x4b /K K 0114 0x4c /L L 0115 0x4d /M M 0116 0x4e /N N 0117 0x4f /O O 0120 0x50 /P P 0121 0x51 /Q Q 0122 0x52 /R R 0123 0x53 /S S 0124 0x54 /T T 0125 0x55 /U U 0126 0x56 /V V 0127 0x57 /W W 0130 0x58 /X X 0131 0x59 /Y Y 0132 0x5a /Z Z 0133 0x5b /bracketleft [ 0134 0x5c /backslash \ 0135 0x5d /bracketright ] 0136 0x5e /asciicircum ^ 0137 0x5f /underscore _ 0140 0x60 /quoteleft ` 0141 0x61 /a a 0142 0x62 /b b 0143 0x63 /c c 0144 0x64 /d d 0145 0x65 /e e 0146 0x66 /f f 0147 0x67 /g g 0150 0x68 /h h 0151 0x69 /i i 0152 0x6a /j j 0153 0x6b /k k 0154 0x6c /l l 0155 0x6d /m m 0156 0x6e /n n 0157 0x6f /o o 0160 0x70 /p p 0161 0x71 /q q 0162 0x72 /r r 0163 0x73 /s s 0164 0x74 /t t 0165 0x75 /u u 0166 0x76 /v v 0167 0x77 /w w 0170 0x78 /x x 0171 0x79 /y y 0172 0x7a /z z 0173 0x7b /braceleft { 0174 0x7c /bar | 0175 0x7d /braceright } 0176 0x7e /tilde ~ 0177 0x7f non-printable 0200 0x80 non-printable 0201 0x81 non-printable 0202 0x82 non-printable 0203 0x83 non-printable 0204 0x84 non-printable 0205 0x85 non-printable 0206 0x86 non-printable 0207 0x87 non-printable 0210 0x88 non-printable 0211 0x89 non-printable 0212 0x8a non-printable 0213 0x8b non-printable 0214 0x8c non-printable 0215 0x8d non-printable 0216 0x8e non-printable 0217 0x8f non-printable 0220 0x90 non-printable 0221 0x91 non-printable 0222 0x92 non-printable 0223 0x93 non-printable 0224 0x94 non-printable 0225 0x95 non-printable 0226 0x96 non-printable 0227 0x97 non-printable 0230 0x98 non-printable 0231 0x99 non-printable 0232 0x9a non-printable 0233 0x9b non-printable 0234 0x9c non-printable 0235 0x9d non-printable 0236 0x9e non-printable 0237 0x9f non-printable 0240 0xa0 non-printable 0241 0xa1 non-printable 0242 0xa2 non-printable 0243 0xa3 non-printable 0244 0xa4 non-printable 0245 0xa5 non-printable 0246 0xa6 non-printable 0247 0xa7 non-printable 0250 0xa8 non-printable 0251 0xa9 non-printable 0252 0xaa non-printable 0253 0xab non-printable 0254 0xac non-printable 0255 0xad non-printable 0256 0xae non-printable 0257 0xaf non-printable 0260 0xb0 non-printable 0261 0xb1 non-printable 0262 0xb2 non-printable 0263 0xb3 non-printable 0264 0xb4 non-printable 0265 0xb5 non-printable 0266 0xb6 non-printable 0267 0xb7 non-printable 0270 0xb8 non-printable 0271 0xb9 non-printable 0272 0xba non-printable 0273 0xbb non-printable 0274 0xbc non-printable 0275 0xbd non-printable 0276 0xbe non-printable 0277 0xbf non-printable 0300 0xc0 non-printable 0301 0xc1 non-printable 0302 0xc2 non-printable 0303 0xc3 non-printable 0304 0xc4 non-printable 0305 0xc5 non-printable 0306 0xc6 non-printable 0307 0xc7 non-printable 0310 0xc8 non-printable 0311 0xc9 non-printable 0312 0xca non-printable 0313 0xcb non-printable 0314 0xcc non-printable 0315 0xcd non-printable 0316 0xce non-printable 0317 0xcf non-printable 0320 0xd0 non-printable 0321 0xd1 non-printable 0322 0xd2 non-printable 0323 0xd3 non-printable 0324 0xd4 non-printable 0325 0xd5 non-printable 0326 0xd6 non-printable 0327 0xd7 non-printable 0330 0xd8 non-printable 0331 0xd9 non-printable 0332 0xda non-printable 0333 0xdb non-printable 0334 0xdc non-printable 0335 0xdd non-printable 0336 0xde non-printable 0337 0xdf non-printable 0340 0xe0 non-printable 0341 0xe1 non-printable 0342 0xe2 non-printable 0343 0xe3 non-printable 0344 0xe4 non-printable 0345 0xe5 non-printable 0346 0xe6 non-printable 0347 0xe7 non-printable 0350 0xe8 non-printable 0351 0xe9 non-printable 0352 0xea non-printable 0353 0xeb non-printable 0354 0xec non-printable 0355 0xed non-printable 0356 0xee non-printable 0357 0xef non-printable 0360 0xf0 non-printable 0361 0xf1 non-printable 0362 0xf2 non-printable 0363 0xf3 non-printable 0364 0xf4 non-printable 0365 0xf5 non-printable 0366 0xf6 non-printable 0367 0xf7 non-printable 0370 0xf8 non-printable 0371 0xf9 non-printable 0372 0xfa non-printable 0373 0xfb non-printable 0374 0xfc non-printable 0375 0xfd non-printable 0376 0xfe non-printable 0377 0xff non-printable enscript-1.6.5.90/config.guess0000755000175000017500000012673011606344073013057 00000000000000#! /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, 2007, 2008, 2009, 2010, # 2011 Free Software Foundation, Inc. timestamp='2011-05-11' # 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 (context # diff format) to and include a 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. # # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD 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, 2006, 2007, 2008, 2009, 2010, 2011 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 -q __ELF__ then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # 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'` # Reset EXIT trap before exiting to avoid spurious non-zero exit code. exitcode=$? trap '' 0 exit $exitcode ;; 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 ;; s390x:SunOS:*:*) echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; 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:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) echo i386-pc-auroraux${UNAME_RELEASE} exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) eval $set_cc_for_build SUN_ARCH="i386" # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then SUN_ARCH="x86_64" fi fi echo ${SUN_ARCH}-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:*:[4567]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -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 -q __LP64__ 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*:*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; authenticamd | genuineintel | EM64T) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; IA64) echo ia64-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 ;; 8664:Windows_NT:*) echo x86_64-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 ;; 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 -q ld.so.1 if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then echo ${UNAME_MACHINE}-unknown-linux-gnu else if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then echo ${UNAME_MACHINE}-unknown-linux-gnueabi else echo ${UNAME_MACHINE}-unknown-linux-gnueabihf fi fi 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 ;; i*86:Linux:*:*) LIBC=gnu eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` echo "${UNAME_MACHINE}-pc-linux-${LIBC}" 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:*:* | mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef ${UNAME_MACHINE} #undef ${UNAME_MACHINE}el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=${UNAME_MACHINE}el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=${UNAME_MACHINE} #else CPU= #endif #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo or32-unknown-linux-gnu exit ;; padre:Linux:*:*) echo sparc-unknown-linux-gnu exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu 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 ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit ;; ppc:Linux:*:*) echo powerpc-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 ;; tile*:Linux:*:*) echo ${UNAME_MACHINE}-tilera-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 ${UNAME_MACHINE}-unknown-linux-gnu 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.[02]*:*) 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 i586. # Note: whatever this is, it MUST be the same as what config.sub # prints for the "djgpp" host, or else GDB configury will decide that # this is a cross-build. echo i586-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; } ;; NCR*:*:4.2:* | MPRAS*:*:4.2:*) OS_REL='.3' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) 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.[02]*:*) 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 ;; BePC:Haiku:*:*) # Haiku running on Intel PC compatible. echo i586-pc-haiku 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 i386) eval $set_cc_for_build if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then UNAME_PROCESSOR="x86_64" fi fi ;; 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 ;; NEO-?:NONSTOP_KERNEL:*:*) echo neo-tandem-nsk${UNAME_RELEASE} 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 ;; i*86:AROS:*:*) echo ${UNAME_MACHINE}-pc-aros 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: enscript-1.6.5.90/88592.txt0000644000175000017500000001440111132443251011756 00000000000000 ISO-8859-2 (ISO Latin2) character set octal hex PostScript HTML entity character ---------------------------------------------------------------------- 000 0x00 non-printable 001 0x01 non-printable 002 0x02 non-printable 003 0x03 non-printable 004 0x04 non-printable 005 0x05 non-printable 006 0x06 non-printable 007 0x07 non-printable 010 0x08 non-printable 011 0x09 non-printable 012 0x0a non-printable 013 0x0b non-printable 014 0x0c non-printable 015 0x0d non-printable 016 0x0e non-printable 017 0x0f non-printable 020 0x10 non-printable 021 0x11 non-printable 022 0x12 non-printable 023 0x13 non-printable 024 0x14 non-printable 025 0x15 non-printable 026 0x16 non-printable 027 0x17 non-printable 030 0x18 non-printable 031 0x19 non-printable 032 0x1a non-printable 033 0x1b non-printable 034 0x1c non-printable 035 0x1d non-printable 036 0x1e non-printable 037 0x1f non-printable 040 0x20 /space 041 0x21 /exclam ! 042 0x22 /quotedbl " " 043 0x23 /numbersign # 044 0x24 /dollar $ 045 0x25 /percent % 046 0x26 /ampersand & & 047 0x27 /quoteright ' 050 0x28 /parenleft ( 051 0x29 /parenright ) 052 0x2a /asterisk * 053 0x2b /plus + 054 0x2c /comma , 055 0x2d /hyphen - 056 0x2e /period . 057 0x2f /slash / 060 0x30 /zero 0 061 0x31 /one 1 062 0x32 /two 2 063 0x33 /three 3 064 0x34 /four 4 065 0x35 /five 5 066 0x36 /six 6 067 0x37 /seven 7 070 0x38 /eight 8 071 0x39 /nine 9 072 0x3a /colon : 073 0x3b /semicolon ; 074 0x3c /less < < 075 0x3d /equal = 076 0x3e /greater > > 077 0x3f /question ? 0100 0x40 /at @ 0101 0x41 /A A 0102 0x42 /B B 0103 0x43 /C C 0104 0x44 /D D 0105 0x45 /E E 0106 0x46 /F F 0107 0x47 /G G 0110 0x48 /H H 0111 0x49 /I I 0112 0x4a /J J 0113 0x4b /K K 0114 0x4c /L L 0115 0x4d /M M 0116 0x4e /N N 0117 0x4f /O O 0120 0x50 /P P 0121 0x51 /Q Q 0122 0x52 /R R 0123 0x53 /S S 0124 0x54 /T T 0125 0x55 /U U 0126 0x56 /V V 0127 0x57 /W W 0130 0x58 /X X 0131 0x59 /Y Y 0132 0x5a /Z Z 0133 0x5b /bracketleft [ 0134 0x5c /backslash \ 0135 0x5d /bracketright ] 0136 0x5e /asciicircum ^ 0137 0x5f /underscore _ 0140 0x60 /quoteleft ` 0141 0x61 /a a 0142 0x62 /b b 0143 0x63 /c c 0144 0x64 /d d 0145 0x65 /e e 0146 0x66 /f f 0147 0x67 /g g 0150 0x68 /h h 0151 0x69 /i i 0152 0x6a /j j 0153 0x6b /k k 0154 0x6c /l l 0155 0x6d /m m 0156 0x6e /n n 0157 0x6f /o o 0160 0x70 /p p 0161 0x71 /q q 0162 0x72 /r r 0163 0x73 /s s 0164 0x74 /t t 0165 0x75 /u u 0166 0x76 /v v 0167 0x77 /w w 0170 0x78 /x x 0171 0x79 /y y 0172 0x7a /z z 0173 0x7b /braceleft { 0174 0x7c /bar | 0175 0x7d /braceright } 0176 0x7e /tilde ~ 0177 0x7f non-printable 0200 0x80 non-printable 0201 0x81 non-printable 0202 0x82 non-printable 0203 0x83 non-printable 0204 0x84 non-printable 0205 0x85 non-printable 0206 0x86 non-printable 0207 0x87 non-printable 0210 0x88 non-printable 0211 0x89 non-printable 0212 0x8a non-printable 0213 0x8b non-printable 0214 0x8c non-printable 0215 0x8d non-printable 0216 0x8e non-printable 0217 0x8f non-printable 0220 0x90 non-printable 0221 0x91 non-printable 0222 0x92 non-printable 0223 0x93 non-printable 0224 0x94 non-printable 0225 0x95 non-printable 0226 0x96 non-printable 0227 0x97 non-printable 0230 0x98 non-printable 0231 0x99 non-printable 0232 0x9a non-printable 0233 0x9b non-printable 0234 0x9c non-printable 0235 0x9d non-printable 0236 0x9e non-printable 0237 0x9f non-printable 0240 0xa0 /space   0241 0xa1 /Aogonek ¡ 0242 0xa2 /breve ¢ 0243 0xa3 /Lslash £ 0244 0xa4 /currency ¤ 0245 0xa5 /Lcaron ¥ 0246 0xa6 /Sacute ¦ 0247 0xa7 /section § 0250 0xa8 /dieresis ¨ 0251 0xa9 /Scaron © 0252 0xaa /Scedilla ª 0253 0xab /Tcaron « 0254 0xac /Zacute ¬ 0255 0xad /hyphen ­ 0256 0xae /Zcaron ® 0257 0xaf /Zdotaccent ¯ 0260 0xb0 /degree ° 0261 0xb1 /aogonek ± 0262 0xb2 /ogonek ² 0263 0xb3 /lslash ³ 0264 0xb4 /acute ´ 0265 0xb5 /lcaron µ 0266 0xb6 /sacute ¶ 0267 0xb7 /caron · 0270 0xb8 /cedilla ¸ 0271 0xb9 /scaron ¹ 0272 0xba /scedilla º 0273 0xbb /tcaron » 0274 0xbc /zacute ¼ 0275 0xbd /hungarumlaut ½ 0276 0xbe /zcaron ¾ 0277 0xbf /zdotaccent ¿ 0300 0xc0 /Racute À 0301 0xc1 /Aacute Á Á 0302 0xc2 /Acircumflex   0303 0xc3 /Abreve à 0304 0xc4 /Adieresis Ä Ä 0305 0xc5 /Lacute Å 0306 0xc6 /Cacute Æ 0307 0xc7 /Ccedilla Ç Ç 0310 0xc8 /Ccaron È 0311 0xc9 /Eacute É É 0312 0xca /Eogonek Ê 0313 0xcb /Edieresis Ë Ë 0314 0xcc /Ecaron Ì 0315 0xcd /Iacute Í Í 0316 0xce /Icircumflex Î Î 0317 0xcf /Dcaron Ï 0320 0xd0 /Eth Ð Ð 0321 0xd1 /Nacute Ñ 0322 0xd2 /Ncaron Ò 0323 0xd3 /Oacute Ó Ó 0324 0xd4 /Ocircumflex Ô Ô 0325 0xd5 /Ohungarumlaut Õ 0326 0xd6 /Odieresis Ö Ö 0327 0xd7 /multiply × 0330 0xd8 /Rcaron Ø 0331 0xd9 /Uring Ù 0332 0xda /Uacute Ú Ú 0333 0xdb /Uhungarumlaut Û 0334 0xdc /Udieresis Ü Ü 0335 0xdd /Yacute Ý Ý 0336 0xde /Tcedilla Þ 0337 0xdf /germandbls ß ß 0340 0xe0 /racute à 0341 0xe1 /aacute á á 0342 0xe2 /acircumflex â â 0343 0xe3 /abreve ã 0344 0xe4 /adieresis ä ä 0345 0xe5 /lacute å 0346 0xe6 /cacute æ 0347 0xe7 /ccedilla ç ç 0350 0xe8 /ccaron è 0351 0xe9 /eacute é é 0352 0xea /eogonek ê 0353 0xeb /edieresis ë ë 0354 0xec /ecaron ì 0355 0xed /iacute í í 0356 0xee /icircumflex î î 0357 0xef /dcaron ï 0360 0xf0 /dbar ð 0361 0xf1 /nacute ñ 0362 0xf2 /ncaron ò 0363 0xf3 /oacute ó ó 0364 0xf4 /ocircumflex ô ô 0365 0xf5 /ohungarumlaut õ 0366 0xf6 /odieresis ö ö 0367 0xf7 /divide ÷ 0370 0xf8 /rcaron ø 0371 0xf9 /uring ù 0372 0xfa /uacute ú ú 0373 0xfb /uhungarumlaut û 0374 0xfc /udieresis ü ü 0375 0xfd /yacute ý ý 0376 0xfe /tcedilla þ 0377 0xff /dotaccent ÿ enscript-1.6.5.90/Makefile.in0000644000175000017500000006147511606344074012611 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 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@ # # Top level Makefile for enscript. # Copyright (c) 1995-1999 Markku Rossi # # Author: Markku Rossi # # # This file is part of GNU Enscript. # # Enscript is free software: you can redistribute 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. # # Enscript is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Enscript. If not, see . # VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = . DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/config.h.in \ $(top_srcdir)/configure $(top_srcdir)/intl/Makefile.in \ ABOUT-NLS AUTHORS COPYING ChangeLog INSTALL NEWS THANKS TODO \ config.guess config.rpath config.sub depcomp install-sh \ missing ylwrap ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc2.m4 \ $(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intdiv0.m4 $(top_srcdir)/m4/intl.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/intmax.m4 \ $(top_srcdir)/m4/inttypes-pri.m4 \ $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/lcmessage.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/lock.m4 \ $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/printf-posix.m4 \ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/size_max.m4 \ $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/uintmax_t.m4 \ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/wchar_t.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xsize.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(install_sh) -d CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = intl/Makefile CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir dist dist-all distcheck 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)"; }; } am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GENCAT = @GENCAT@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GLIBC2 = @GLIBC2@ GLIBC21 = @GLIBC21@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ HAVE_ASPRINTF = @HAVE_ASPRINTF@ HAVE_POSIX_PRINTF = @HAVE_POSIX_PRINTF@ HAVE_SNPRINTF = @HAVE_SNPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WPRINTF = @HAVE_WPRINTF@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLBISON = @INTLBISON@ INTLLIBS = @INTLLIBS@ INTLOBJS = @INTLOBJS@ INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTHREAD = @LIBTHREAD@ LTLIBC = @LTLIBC@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ MAKEINFO = @MAKEINFO@ MEDIA = @MEDIA@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ POSUB = @POSUB@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ PSLEVEL = @PSLEVEL@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SPOOLER = @SPOOLER@ STRIP = @STRIP@ U = @U@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WINDRES = @WINDRES@ WOE32 = @WOE32@ WOE32DLL = @WOE32DLL@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ YACC = @YACC@ YFLAGS = @YFLAGS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ 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@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = intl compat afm afmlib lib scripts src po states docs w32 EXTRA_DIST = README.ESCAPES README.DOS ascii.txt \ asciifise.txt asciidkno.txt 88591.txt 88592.txt 88593.txt 88594.txt \ 88595.txt 88597.txt 88599.txt 885910.txt ibmpc.txt mac.txt vms.txt \ hp8.txt koi8.txt mtr.eps mtr_small.eps mtr_tiny.eps po/ChangeLog.old ACLOCAL_AMFLAGS = -I m4 all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: 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) --gnu'; \ $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu 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) $(am__cd) $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): $(am__aclocal_m4_deps) $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) $(am__aclocal_m4_deps): config.h: stamp-h1 @if test ! -f $@; then \ rm -f stamp-h1; \ $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \ else :; fi stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status config.h $(srcdir)/config.h.in: $(am__configure_deps) ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) rm -f stamp-h1 touch $@ distclean-hdr: -rm -f config.h stamp-h1 intl/Makefile: $(top_builddir)/config.status $(top_srcdir)/intl/Makefile.in cd $(top_builddir) && $(SHELL) ./config.status $@ # 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): @fail= 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; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= 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; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__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; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ 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; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) 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; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(am__remove_distdir) test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done -test -n "$(am__skip_mode_fix)" \ || find "$(distdir)" -type d ! -perm -755 \ -exec chmod u+rwx,go+rx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r "$(distdir)" dist-gzip: distdir tardir=$(distdir) && $(am__tar) | 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-lzma: distdir tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma $(am__remove_distdir) dist-xz: distdir tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz $(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) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lzma*) \ lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(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) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ --with-included-gettext \ $(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 \ && cd "$$am__cwd" \ || exit 1 $(am__remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: @$(am__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 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) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-generic distclean-hdr distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: 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: .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \ ctags-recursive install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am am--refresh check check-am clean clean-generic \ ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \ dist-lzma dist-shar dist-tarZ dist-xz dist-zip distcheck \ distclean distclean-generic distclean-hdr distclean-tags \ distcleancheck distdir distuninstallcheck dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags tags-recursive uninstall uninstall-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: enscript-1.6.5.90/lib/0000755000175000017500000000000011606344230011347 500000000000000enscript-1.6.5.90/lib/Makefile.am0000644000175000017500000000303111606327142013323 00000000000000# # Automakefile for the library files. # Copyright (c) 1995-1998 Markku Rossi # # Author: Markku Rossi # # # This file is part of GNU Enscript. # # Enscript is free software: you can redistribute 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. # # Enscript is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Enscript. If not, see . # pkgdata_DATA = ascii.enc asciifise.enc asciidkno.enc hp8.enc ibmpc.enc \ koi8.enc 88591.enc 88592.enc 88593.enc 88594.enc 88595.enc 88597.enc \ 88599.enc 885910.enc mac.enc ps.enc pslatin1.enc vms.enc a2ps.hdr \ edd.hdr emacs.hdr enscript.hdr enscript-color.hdr frame.hdr mp.hdr \ simple.hdr squeeze.hdr enscript.pro sysconf_DATA = enscript.cfg CLEANFILES = $(sysconf_DATA) EXTRA_DIST = ChangeLog.old enscript.cfg.in $(pkgdata_DATA) \ Makefile-encodings make-encoding.pl do_subst = sed -e 's%@DATADIR@%$(datadir)%g' \ -e 's%@media@%@MEDIA@%g' \ -e 's%@BINDIR@%$(bindir)%g' \ -e 's%@spooler@%@SPOOLER@%g' \ -e 's%@pslevel@%@PSLEVEL@%g' enscript.cfg: enscript.cfg.in Makefile $(do_subst) < $(srcdir)/enscript.cfg.in > enscript.cfg enscript-1.6.5.90/lib/88595.enc0000644000175000017500000001130411133214772012461 00000000000000% % 88595 encoding vector. % % This file is automatically generated from file `88595.txt'. If you % have any corrections to this file, please, edit file `88595.txt' instead. % % % This file is part of GNU Enscript. % % Enscript is free software: you can redistribute 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. % % Enscript is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License % along with Enscript. If not, see . % % -- code follows this line -- /encoding_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 ] def enscript-1.6.5.90/lib/ChangeLog.old0000644000175000017500000001645511401303365013626 000000000000002008-02-03 Tim Retout * Makefile.am (install-data-local): Remove. (Note that a backup of the config file will no longer be taken during installation.) (uninstall-local): Likewise. (all-local): Likewise. (sysconf_DATA): New variable for location of config file. (CLEANFILES): Reference $(sysconf_DATA) variable. (do_subst): New variable to hold the variable substitution command. (enscript.cfg): Use $(do_subst). Remove unnecessary $(srcdir) prefix from enscript.cfg.in dependency. 2008-01-29 Tim Retout * Makefile.am (install-data-local): Prefix installation paths with $(DESTDIR), to avoid breaking `make distcheck'. (uninstall-local): Likewise. 2008-01-01 Tim Retout * ChangeLog: Run M-x change-log-redate. Add copyright notice at end. 1999-08-26 Markku Rossi * a2ps.hdr: Some updates by John Hutchison . 1998-12-29 Markku Rossi * enscript-color.hdr: New enscript-styled header for color printers. 1998-12-23 Markku Rossi * Makefile.am: Added ISO-8859-{9,10} encodings. 1998-11-25 Markku Rossi * squeeze.hdr: New header to maximize the amount of code that can be printed on a page. 1998-10-26 Markku Rossi * enscript.cfg.in (StatesPath): As a default, do not define. Enscript gives us a better default. 1998-10-23 Markku Rossi * enscript.cfg.in: Changed to use the new highlighting style. 1998-10-16 Markku Rossi * enscript.pro: New procedures MF_PS and SUF_PS to define a new user font preserving the font's default encoding. 1998-07-31 Markku Rossi * enscript.cfg.in: Added 0.5 cm to left and right margins in the Letter media. 1998-06-23 Markku Rossi * enscript.cfg.in (PostScriptLevel): Added option to control the PostScript language level that enscript uses for its output. 1998-06-11 Markku Rossi * Renamed ISO-8859-* encodings. 1998-03-25 Markku Rossi * Makefile.am (EXTRA_DIST): Added Makefile-encodings and make-encoding.pl. * latin7.enc: Added ISO-8859/7 encoding. Thanks to Manolis Lourakis . 1998-01-02 Markku Rossi * enscript.cfg.in (GeneratePageSize): Added option to control whether the PageSize page device setting is generated to the output. 1997-09-30 Markku Rossi * latin4.enc: Added ISO-8859/4 encoding. Thanks to Ricardas Cepas . 1997-08-27 Markku Rossi * enscript.pro (wrapped_line_mark): fixed `arrow' marker, now it looks good. 1997-07-16 Markku Rossi * edd.hdr: Added total number of pages. 1997-06-10 Markku Rossi * enscript.pro: New primitives SF and SUF to optimize the size of the generated PostScript output. New primitive bgs to show text with background color. 1997-05-28 Markku Rossi * enscript.pro: New procedure `wrapped_line_mark' to mark wrapped lines. 1997-03-04 Markku Rossi * enscript.cfg.in (StatesPath): New variable to specify the absolute path for the states program. 1997-03-03 Markku Rossi * Implemented user escapes for user defined header strings: {simple,enscript}.hdr 1997-02-21 Markku Rossi * asciidkno.enc: New encoding asciidkno for 7 bit ascii with dk and no extensions. * asciifise.enc: Renamed asciiscands.enc to asciifise.enc. 1997-01-21 Markku Rossi * enscript.cfg.in (StatesColorModel): Added States dependant config file variables. 1996-11-05 Markku Rossi * latin5.enc: New encoding vector for ISO-8859/5 (ISO latin5). 1996-09-07 Markku Rossi * koi8.enc: New encoding vector for Adobe's Standard Cyrillic Font KOI8. 1996-08-30 Markku Rossi * enscript.pro: Fixed a float / integer conversion bug from hightlight bar printing. Fixed underlays to work with the width/height font point sizes. 1996-08-05 Markku Rossi * Removed hopefully all GNU extensions from strftime()'s format strings in {simple,edd}.hdr files 1996-07-28 Markku Rossi * Makefile.am (install-data-local): Added `else :;' branch to fix the bug caused by ultrix's broken /bin/sh. 1996-07-24 Markku Rossi * Added `--toc' option's volume number to all headers to which it fits: a2ps, edd, emacs, simple * Changed all `%2d' formats to `%e'. Now it should work in all normal Unixes. 1996-06-30 Markku Rossi * Cleaned up headers' strftime() strings. Now there shouldn't be any AIX dependencies. 1996-06-13 Markku Rossi * Makefile.am (install-data-local): take a backup copy of `enscript.cfg' before installing the new one. (uninstall-local): New target to uninstall `enscript.cfg'. 1996-05-10 Markku Rossi * enscript.pro: New procedure `line_highlight' for ^@shade{} escape. 1996-05-07 Markku Rossi * enscript.pro: New procedure `column_borders' to print borders around columns. Added support for underlay styles. 1996-04-30 Markku Rossi * Makefile.am (install-data-local): Check whether `enscript.cfg' is already installed. (uninstall-local): Uninstall `enscript.cfg'. 1996-03-26 Markku Rossi * mp.hdr: New header. 1996-03-14 Markku Rossi * frame.hdr: New header. 1996-03-12 Markku Rossi * enscript.pro: new procedure: page_prefeed 1996-03-05 Markku Rossi * enscript.pro: new procedure: highlight_bars 1996-02-20 Markku Rossi * new encoding: hp8 1996-01-30 Markku Rossi * genscript.cfg: Fixed output media sizes. * a2ps.hdr: Made margins smaller so more text can be seen on each page. 1996-01-25 Markku Rossi * a2ps.hdr: New header. 1996-01-05 Markku Rossi * all headers: changed to use the new `%format' directive * enscript.hdr: changed to be exactly identical with the enscript's gaudy header: date strings are now formatted according to file's modification time instead of the printing time. 1996-01-04 Markku Rossi * genscript.pro: Inlined epsf-import.ps file. (MF): changed to use new encoding vectors. Removed ReEncodeSmall procedure. * make-encoding.pl: Changed to generate new encoding vectors. 1995-11-27 Markku Rossi * Added ChangeLog to lib subdirectory (to this directory). All underlaying entries are stripped from the ../ChangeLog. 1995-11-21 Markku Rossi * lib: new header: edd.hdr * lib/genscript.cfg.in: added new media: Letterdj 1995-10-30 Markku Rossi * lib/enscript.hdr: print user supplied header if it is given. 1995-10-11 Markku Rossi * lib/genscript.cfg.in: added new media: A3 and A4dj. 1995-10-10 Markku Rossi * lib/enscript.hdr: moved filename text ~2 points down. Fixed font point sizes and date string positions. * lib/emacs.hdr: changed fontsize from 13 to 12 points. Copyright (C) 1995, 1996, 1997, 1998, 1999, 2008 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. enscript-1.6.5.90/lib/asciifise.enc0000644000175000017500000001132011133214772013714 00000000000000% % asciifise encoding vector. % % This file is automatically generated from file `asciifise.txt'. If you % have any corrections to this file, please, edit file `asciifise.txt' instead. % % % This file is part of GNU Enscript. % % Enscript is free software: you can redistribute 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. % % Enscript is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License % along with Enscript. If not, see . % % -- code follows this line -- /encoding_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 /Adieresis /Odieresis /Aring /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 /adieresis /odieresis /aring /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 enscript-1.6.5.90/lib/pslatin1.enc0000644000175000017500000000153011133214772013512 00000000000000% % PostScript printer's ISOLatin1Encoding. % Copyright (c) 1995 Markku Rossi. % Author: Markku Rossi % % % This file is part of GNU Enscript. % % Enscript is free software: you can redistribute 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. % % Enscript is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License % along with Enscript. If not, see . % % -- code follows this line -- /encoding_vector ISOLatin1Encoding def enscript-1.6.5.90/lib/asciidkno.enc0000644000175000017500000001132011133214772013721 00000000000000% % asciidkno encoding vector. % % This file is automatically generated from file `asciidkno.txt'. If you % have any corrections to this file, please, edit file `asciidkno.txt' instead. % % % This file is part of GNU Enscript. % % Enscript is free software: you can redistribute 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. % % Enscript is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License % along with Enscript. If not, see . % % -- code follows this line -- /encoding_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 /AE /Oslash /Aring /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 /ae /oslash /aring /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 enscript-1.6.5.90/lib/enscript.hdr0000644000175000017500000000531311133214772013621 00000000000000% % Enscript styled header. % Copyright (c) 1995 Markku Rossi. % Author: Markku Rossi % % % This file is part of GNU Enscript. % % Enscript is free software: you can redistribute 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. % % Enscript is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License % along with Enscript. If not, see . % % -- code follows this line -- %%DocumentNeededResources: font Times-Bold Times-Roman %Format: moddatestr $W %Format: modtimestr $C %Format: pagenumstr $% % Fonts. /Times-Bold /HeaderFont-Bold MF /HeaderDateF /HeaderFont-Bold findfont 12 scalefont def /Times-Roman /HeaderFont-Times MF /HeaderHDRF /HeaderFont-Times findfont 14 scalefont def /HeaderPageNumF /Helvetica-Bold findfont 28.8 scalefont def /do_header { % print enscript header gsave d_header_x d_header_y translate % light bar 0 0 d_header_w d_header_h 2 div Box .95 setgray fill % dark gray boxes /dbw d_header_h 2 mul def % dark box width /dbc .7 def % dark box color % left dark box. 0 0 dbw d_header_h Box dbc setgray fill 0 setgray HeaderDateF setfont moddatestr dup stringwidth pop dbw exch sub 2 div d_header_h 2 div 2 add moveto show modtimestr dup stringwidth pop dbw exch sub 2 div d_header_h 5 div moveto show % right dark box d_header_w dbw sub 0 dbw d_header_h Box dbc setgray fill HeaderPageNumF setfont 1 setgray pagenumstr dup stringwidth pop dbw exch sub 2 div d_header_w dbw sub add d_header_h .2 mul moveto show % filename 0 setgray HeaderHDRF setfont d_header_w fname stringwidth pop sub 2 div d_header_h 8 div moveto fname show % user supplied header string. user_header_p { /h d_header_h 8 div 5 mul def % Implement strict enscript compatibility. user_header_center_str () eq user_header_right_str () eq and { d_header_w user_header_left_str stringwidth pop sub 2 div h moveto user_header_left_str show } { dbw 5 add h moveto user_header_left_str show d_header_w user_header_center_str stringwidth pop sub 2 div h moveto user_header_center_str show d_header_w dbw sub 5 sub user_header_right_str stringwidth pop sub h moveto user_header_right_str show } ifelse } if grestore } def enscript-1.6.5.90/lib/ps.enc0000644000175000017500000000154311133214772012405 00000000000000% % Empty encoding vector to use PostScript font's default encoding. % Copyright (c) 1995 Markku Rossi. % Author: Markku Rossi % % % This file is part of GNU Enscript. % % Enscript is free software: you can redistribute 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. % % Enscript is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License % along with Enscript. If not, see . % % -- code follows this line -- /encoding_vector [ ] def enscript-1.6.5.90/lib/koi8.enc0000644000175000017500000001130211133214772012627 00000000000000% % koi8 encoding vector. % % This file is automatically generated from file `koi8.txt'. If you % have any corrections to this file, please, edit file `koi8.txt' instead. % % % This file is part of GNU Enscript. % % Enscript is free software: you can redistribute 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. % % Enscript is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License % along with Enscript. If not, see . % % -- code follows this line -- /encoding_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 ] def enscript-1.6.5.90/lib/enscript-color.hdr0000644000175000017500000000677011133214772014745 00000000000000% % Enscript styled header for color printers % Copyright (c) 1995 Markku Rossi. % Copyright (C) 1998 Stig Hackvän % Original Author: Markku Rossi % Author: Stig Hackvän % % % This file is part of GNU Enscript. % % Enscript is free software: you can redistribute 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. % % Enscript is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License % along with Enscript. If not, see . % % -- code follows this line -- %%DocumentNeededResources: font Times-Bold Times-Roman %Format: moddatestr $W %Format: modtimestr $C %Format: pagenumstr $% %Format: pagecountstr /$= % Fonts. /Times-Bold /HeaderFont-Bold MF /HeaderDateF /HeaderFont-Bold findfont 12 scalefont def /Times-Roman /HeaderFont-Times MF /HeaderHDRF /HeaderFont-Times findfont 14 scalefont def /HeaderPageNumF /Helvetica-Bold findfont 28.8 scalefont def /HeaderPageCountF /Helvetica-Bold findfont 18 scalefont def /do_header { % print enscript header gsave d_header_x d_header_y translate /dhw d_header_w 4 sub def /linecolor {.5 0 .2 0 setcmykcolor} bind def % line color /txcolor {.7 .5 0 0 setcmykcolor} bind def % text color /fncolor {0 1 1 0 setcmykcolor} bind def % filename line color .5 setlinewidth % line across bottom of the header area linecolor 0 0 moveto dhw 0 lineto % side boxes /sbw d_header_h 2 mul def % side box width % left side box 0 0 sbw d_header_h Box linecolor stroke % date/time in left box txcolor HeaderDateF setfont moddatestr dup stringwidth pop sbw exch sub 2 div d_header_h 2 div 2 add moveto show modtimestr dup stringwidth pop sbw exch sub 2 div d_header_h 5 div moveto show % right side box dhw sbw sub 0 sbw d_header_h Box linecolor stroke % get width of pagecount HeaderPageCountF setfont pagecountstr stringwidth pop txcolor HeaderPageNumF setfont pagenumstr stringwidth pop add % add to width of pagecount sbw exch sub 2 div dhw sbw sub add d_header_h .2 mul moveto pagenumstr show HeaderPageCountF setfont pagecountstr show % filename fncolor HeaderHDRF setfont dhw fname stringwidth pop sub 2 div d_header_h 8 div moveto fname show % user supplied header string. user_header_p { /h d_header_h 8 div 5 mul def % HACK around a bug in enscript 1.6.0: % for some reason this is getting set to "(null)" and % user_header_center_str (\(null\)) eq { /user_header_center_str () def } if % Implement strict enscript compatibility. user_header_center_str () eq user_header_right_str () eq and { dhw user_header_left_str stringwidth pop sub 2 div h moveto user_header_left_str show } { sbw 5 add h moveto user_header_left_str show dhw user_header_center_str stringwidth pop sub 2 div h moveto user_header_center_str show dhw sbw sub 5 sub user_header_right_str stringwidth pop sub h moveto user_header_right_str show } ifelse } if grestore } bind def enscript-1.6.5.90/lib/enscript.cfg.in0000644000175000017500000001124411133214772014210 00000000000000# # GNU Enscript configuration file. # Copyright (c) 1995-1998 Markku Rossi. # # Author: Markku Rossi # # # # This file is part of GNU Enscript. # # Enscript is free software: you can redistribute 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. # # Enscript is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Enscript. If not, see . # # Do we accept PostScript font's composite characters? As a default, # this is false because I think this is GhostScript dependant. AcceptCompositeCharacters: 0 # Lookup path for the AFM files. AFMPath: @DATADIR@/enscript/afm:/usr/local/lib/ps:/usr/lib/ps # Append ^D character to the end of the output. Some printers like HP # LaserJet 5 require this but the default is `false'. AppendCtrlD: 0 # How characters greater than 127 are printed: # 1 generate clean 7-bit code; print characters greater than 127 # in the backslash-octal notation `\xxx' (default) # 0 generate 8-bit code Clean7Bit: 1 # Default input encoding. DefaultEncoding: latin1 # Default fancy header. DefaultFancyHeader: enscript # Default output media. DefaultMedia: @media@ # Where output goes as a default: `printer' or `stdout' DefaultOutputMethod: printer # Include following font files to all PostScript outputs. # # DownloadFont: FooFont1 # DownloadFont: FooFont2 # The escape character for special escapes. EscapeChar: 0 # What to do when a formfeed character is encountered from input: # column move to the beginning of the next column # page move to the beginning of the next page FormFeedType: column # Specify whether the PageSize page device option is generated to the # output. GeneratePageSize: 1 # The gray level which is used to print highlight bars. HighlightBarGray: .97 # How high highlight bars are in lines. The default is 0 so no # highlight bars are printed. # HighlightBars: 2 # Library path. Let's use built-in default. # LibraryPath: # How wrapped lines are marked in printout. Possible values are: `none', # `plus', `box' and `arrow'. As a default, we do not mark them. MarkWrappedLines: none # Media definitions: # name width height llx lly urx ury Media: A3 842 1190 24 24 818 1166 Media: A4 595 842 24 24 571 818 Media: A5 420 595 24 24 396 571 Media: Legal 612 1008 24 24 588 984 Media: Letter 612 792 38 24 574 768 # HP DeskJet media (DeskJet can't print on the bottom 1/2" of the paper). Media: A4dj 595 842 24 50 571 818 Media: Letterdj 612 792 24 40 588 768 # Spooler option to suppress the job header. NoJobHeaderSwitch: -h # How non-printable characters are printed: `caret', `octal', # `questionmark' or `space'. NonPrintableFormat: octal # PostScript output's first line. OutputFirstLine: %!PS-Adobe-3.0 # Default page label format: `short' or `long'. PageLabelFormat: short # Enable / disable page prefeed. PagePrefeed: 0 # The PostScript language level that enscript should use. PostScriptLevel: @pslevel@ # Printer name to spool to. As a default we want to use system's # default printer. # Printer: ps # The spooler command switch to select the printer queue. This option # can also be used to pass other flags to the spooler command but they # must be given bofore the queue switch. QueueParam: -P # Pass following Page Device options to the generated output. # # Duplex printing. # SetPageDevice: Duplex:true # Printer spooler command name. Spooler: @spooler@ # An absolute path to the states program. StatesBinary: @BINDIR@/states # Create color outputs with States? StatesColor: 0 # The name of the States configuration file. StatesConfigFile: @DATADIR@/enscript/hl/enscript.st # States' default highlight style. StatesHighlightStyle: emacs # Path for the States program. # StatesPath: @DATADIR@/enscript/hl # Pass following statusdict options to the generated output. # # Use always paper tray 1. # StatusDict: setpapertray:1 # Format string for table-of-contents entries. # # TOCFormat: $3v $-40N $3% pages $4L lines $E $C # As a default, print this underlay text to all document. # Underlay: mtr's printout # Underlay text angle. # UnderlayAngle: 45 # Select underlay font. UnderlayFont: Times-Roman200 # Select underlay gray. UnderlayGray: .8 # Underlay text starting position. # UnderlayPosition: +0-0 # Underlay style: `outline' or `filled' UnderlayStyle: outline # EOF enscript-1.6.5.90/lib/vms.enc0000644000175000017500000001127711133214772012575 00000000000000% % vms encoding vector. % % This file is automatically generated from file `vms.txt'. If you % have any corrections to this file, please, edit file `vms.txt' instead. % % % This file is part of GNU Enscript. % % Enscript is free software: you can redistribute 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. % % Enscript is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License % along with Enscript. If not, see . % % -- code follows this line -- /encoding_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 /space /exclamdown /cent /sterling /.notdef /yen /.notdef /section /currency /copyright /ordfeminine /guillemotleft /.notdef /.notdef /.notdef /.notdef /degree /plusminus /twosuperior /threesuperior /.notdef /mu /paragraph /bullet /.notdef /dotlessi /ordmasculine /guillemotright /onequarter /onehalf /.notdef /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /.notdef /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /OE /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Ydieresis /.notdef /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /.notdef /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /oe /oslash /ugrave /uacute /ucircumflex /udieresis /ydieresis /.notdef /.notdef ] def enscript-1.6.5.90/lib/squeeze.hdr0000644000175000017500000000245511133214772013457 00000000000000% % Squeezed `Emacs ps-print-buffer' styled header. % Copyright (c) 1998 Markku Rossi. % Author: Markku Rossi % % % This file is part of GNU Enscript. % % Enscript is free software: you can redistribute 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. % % Enscript is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License % along with Enscript. If not, see . % % -- code follows this line -- %%DocumentNeededResources: font Helvetica %HeaderHeight: 20 %Format: eurdatestr %E %Format: pagenumstr $V$%/$= % Fonts. /Helvetica /HeaderFont-Large MF /HeaderLF /HeaderFont-Large findfont 12 1.3 mul scalefont def /do_header { % print the header gsave d_header_x d_header_y translate 0 setgray % Horizontal line. 0 1 moveto d_header_w 0 rlineto stroke % texts HeaderLF setfont /y 6 def 5 y moveto ftail show 72 0 rmoveto pagenumstr show grestore } def enscript-1.6.5.90/lib/ascii.enc0000644000175000017500000001130411133214772013047 00000000000000% % ascii encoding vector. % % This file is automatically generated from file `ascii.txt'. If you % have any corrections to this file, please, edit file `ascii.txt' instead. % % % This file is part of GNU Enscript. % % Enscript is free software: you can redistribute 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. % % Enscript is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License % along with Enscript. If not, see . % % -- code follows this line -- /encoding_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 /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.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 enscript-1.6.5.90/lib/mac.enc0000644000175000017500000001130211133214772012515 00000000000000% % mac encoding vector. % % This file is automatically generated from file `mac.txt'. If you % have any corrections to this file, please, edit file `mac.txt' instead. % % % This file is part of GNU Enscript. % % Enscript is free software: you can redistribute 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. % % Enscript is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License % along with Enscript. If not, see . % % -- code follows this line -- /encoding_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 ] def enscript-1.6.5.90/lib/a2ps.hdr0000644000175000017500000000454711133214772012647 00000000000000% % a2ps styled header. % Copyright (c) 1996-1999 Markku Rossi. % Author: Markku Rossi % % % This file is part of GNU Enscript. % % Enscript is free software: you can redistribute 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. % % Enscript is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License % along with Enscript. If not, see . % % -- code follows this line -- %Format: userstr Printed by %N %Format: datestr %D{%d %b %Y %H:%M} %Format: fmodstr $D{%d %b %Y %H:%M} %Format: upperpagestr Page $V$%/$= %Format: lowerpagestr page $p %HeaderHeight: 36 %FooterHeight: 12 % Fonts. /Helvetica /helvetica-encoded MF /SmallFont /helvetica-encoded findfont 10 scalefont def /Helvetica-Bold /helvetica-bold-encoded MF /BigFont /helvetica-bold-encoded findfont 12 scalefont def /a2ps_marg 10 def /do_header { % print a2ps header gsave % lowerpagestr SmallFont setfont d_footer_x d_footer_w add lowerpagestr stringwidth pop sub a2ps_marg sub d_footer_y moveto lowerpagestr show % current date in footer SmallFont setfont d_footer_x a2ps_marg add d_footer_y moveto datestr show % full filename in footer SmallFont setfont d_footer_x d_footer_w 2 div add fname stringwidth pop 2 div sub d_footer_y moveto fname show % gray box to header .95 setgray d_header_x d_header_y d_header_w 24 Box fill 0 setgray % borders. .5 setlinewidth d_header_x d_header_y d_header_w 24 Box stroke % userstr d_header_x d_header_w add userstr stringwidth pop sub a2ps_marg sub d_header_y 29 add moveto userstr show % datestr d_header_x a2ps_marg add d_header_y 6 add moveto fmodstr show % upperpagestr d_header_x d_header_w add upperpagestr stringwidth pop sub a2ps_marg sub d_header_y 6 add moveto upperpagestr show % filename BigFont setfont d_header_x d_header_w 2 div add ftail stringwidth pop 2 div sub d_header_y 6 add moveto ftail show grestore } def enscript-1.6.5.90/lib/88599.enc0000644000175000017500000001130511133214772012466 00000000000000% % 88599 encoding vector. % % This file is automatically generated from file `88599.txt'. If you % have any corrections to this file, please, edit file `88599.txt' instead. % % % This file is part of GNU Enscript. % % Enscript is free software: you can redistribute 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. % % Enscript is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License % along with Enscript. If not, see . % % -- code follows this line -- /encoding_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 /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 enscript-1.6.5.90/lib/edd.hdr0000644000175000017500000000363311133214772012531 00000000000000% % `emacs.hdr' with file modification time and current time % Copyright (c) 1995, 1996, 1997 Markku Rossi. % Author: Markku Rossi % % This file is part of GNU Enscript. % % Enscript is free software: you can redistribute 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. % % Enscript is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License % along with Enscript. If not, see . % % -- code follows this line -- %%DocumentNeededResources: font Helvetica %Format: fmodstr $D{%a %b %d %H:%M:%S %Y} %Format: datestr %D{%a %b %d %H:%M:%S %Y} %Format: pagenumstr $V$%/$= % Fonts. /Helvetica /HeaderFont-Bold MF /HeaderF /HeaderFont-Bold findfont 13 scalefont def /Helvetica /HeaderFont-Large MF /HeaderLF /HeaderFont-Large findfont 13 1.3 mul scalefont def /do_header { % print emacs header gsave d_header_x d_header_y translate 0 setgray .5 setlinewidth % black shadow 1 0 d_header_w 1 sub d_header_h 1 sub Box fill % gray box with black frames 0 1 d_header_w 1 sub d_header_h 1 sub Box gsave .9 setgray fill grestore stroke % texts /xmarg 5 def % Top line. HeaderLF setfont /y d_header_h 12 div d_header_h 2 div add def xmarg y moveto fname show pagenumstr dup stringwidth pop d_header_w exch sub 1 sub xmarg sub y moveto show % Bottom line HeaderF setfont /y d_header_h 6 div def xmarg y moveto fmodstr show datestr dup stringwidth pop d_header_w exch sub 1 sub xmarg sub y moveto show grestore } def enscript-1.6.5.90/lib/88597.enc0000644000175000017500000001130611133214772012465 00000000000000% % 88597 encoding vector. % % This file is automatically generated from file `88597.txt'. If you % have any corrections to this file, please, edit file `88597.txt' instead. % % % This file is part of GNU Enscript. % % Enscript is free software: you can redistribute 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. % % Enscript is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License % along with Enscript. If not, see . % % -- code follows this line -- /encoding_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 /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 ] def enscript-1.6.5.90/lib/Makefile-encodings0000644000175000017500000000412011133214772014675 00000000000000# # Makefile to create the encoding vectors. # Copyright (c) 1995-1998 Markku Rossi # # Author: Markku Rossi # # # This file is part of GNU Enscript. # # Enscript is free software: you can redistribute 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. # # Enscript is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Enscript. If not, see . # ENCODINGS = ascii.enc asciifise.enc asciidkno.enc ibmpc.enc mac.enc \ vms.enc hp8.enc koi8.enc 88591.enc 88592.enc 88593.enc 88594.enc \ 88595.enc 88597.enc 88599.enc 885910.enc all: $(ENCODINGS) ascii.enc: ../ascii.txt ./make-encoding.pl ../ascii.txt >ascii.enc asciifise.enc: ../asciifise.txt ./make-encoding.pl ../asciifise.txt >asciifise.enc asciidkno.enc: ../asciidkno.txt ./make-encoding.pl ../asciidkno.txt >asciidkno.enc ibmpc.enc: ../ibmpc.txt ./make-encoding.pl ../ibmpc.txt >ibmpc.enc 88591.enc: ../88591.txt ./make-encoding.pl ../88591.txt >88591.enc 88592.enc: ../88592.txt ./make-encoding.pl ../88592.txt >88592.enc 88593.enc: ../88593.txt ./make-encoding.pl ../88593.txt >88593.enc 88594.enc: ../88594.txt ./make-encoding.pl ../88594.txt >88594.enc 88595.enc: ../88595.txt ./make-encoding.pl ../88595.txt >88595.enc 88597.enc: ../88597.txt ./make-encoding.pl ../88597.txt >88597.enc 88599.enc: ../88599.txt ./make-encoding.pl ../88599.txt >88599.enc 885910.enc: ../885910.txt ./make-encoding.pl ../885910.txt >885910.enc mac.enc: ../mac.txt ./make-encoding.pl ../mac.txt >mac.enc vms.enc: ../vms.txt ./make-encoding.pl ../vms.txt >vms.enc hp8.enc: ../hp8.txt ./make-encoding.pl ../hp8.txt >hp8.enc koi8.enc: ../koi8.txt ./make-encoding.pl ../koi8.txt >koi8.enc clean: rm -f $(ENCODINGS) enscript-1.6.5.90/lib/emacs.hdr0000644000175000017500000000351411133214772013063 00000000000000% % Emacs ps-print-buffer styled header. % Copyright (c) 1995 Markku Rossi. % Author: Markku Rossi % % % This file is part of GNU Enscript. % % Enscript is free software: you can redistribute 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. % % Enscript is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License % along with Enscript. If not, see . % % -- code follows this line -- %%DocumentNeededResources: font Helvetica %Format: eurdatestr %E %Format: pagenumstr $V$%/$= % Fonts. /Helvetica /HeaderFont-Bold MF /HeaderF /HeaderFont-Bold findfont 12 scalefont def /Helvetica /HeaderFont-Large MF /HeaderLF /HeaderFont-Large findfont 12 1.3 mul scalefont def /do_header { % print emacs header gsave d_header_x d_header_y translate 0 setgray .5 setlinewidth % black shadow 1 0 d_header_w 1 sub d_header_h 1 sub Box fill % gray box with black frames 0 1 d_header_w 1 sub d_header_h 1 sub Box gsave .9 setgray fill grestore stroke % texts /xmarg 5 def % Top line. HeaderLF setfont /y d_header_h 12 div d_header_h 2 div add def xmarg y moveto ftail show pagenumstr dup stringwidth pop d_header_w exch sub 1 sub xmarg sub y moveto show % Bottom line HeaderF setfont /y d_header_h 6 div def xmarg y moveto fdir show eurdatestr dup stringwidth pop d_header_w exch sub 1 sub xmarg sub y moveto show grestore } def enscript-1.6.5.90/lib/ibmpc.enc0000644000175000017500000001130511133214772013052 00000000000000% % ibmpc encoding vector. % % This file is automatically generated from file `ibmpc.txt'. If you % have any corrections to this file, please, edit file `ibmpc.txt' instead. % % % This file is part of GNU Enscript. % % Enscript is free software: you can redistribute 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. % % Enscript is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License % along with Enscript. If not, see . % % -- code follows this line -- /encoding_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 ] def enscript-1.6.5.90/lib/88593.enc0000644000175000017500000001130411133214772012457 00000000000000% % 88593 encoding vector. % % This file is automatically generated from file `88593.txt'. If you % have any corrections to this file, please, edit file `88593.txt' instead. % % % This file is part of GNU Enscript. % % Enscript is free software: you can redistribute 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. % % Enscript is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License % along with Enscript. If not, see . % % -- code follows this line -- /encoding_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 /space /Hbar /breve /sterling /currency /yen /Hcircumflex /section /dieresis /Idotaccent /Scedilla /Gbreve /Jcircumflex /hyphen /registered /Zdotaccent /degree /hbar /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 enscript-1.6.5.90/lib/enscript.pro0000644000175000017500000001542211133214772013646 00000000000000% % PostScript prolog. % Copyright (c) 1995-1998 Markku Rossi. % % Author: Markku Rossi % % % This file is part of GNU Enscript. % % Enscript is free software: you can redistribute 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. % % Enscript is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License % along with Enscript. If not, see . % % -- code follows this line -- % % Procedures. % /_S { % save current state /_s save def } def /_R { % restore from saved state _s restore } def /S { % showpage protecting gstate gsave showpage grestore } bind def /MF { % fontname newfontname -> - make a new encoded font /newfontname exch def /fontname exch def /fontdict fontname findfont def /newfont fontdict maxlength dict def fontdict { exch dup /FID eq { % skip FID pair pop pop } { % copy to the new font dictionary exch newfont 3 1 roll put } ifelse } forall newfont /FontName newfontname put % insert only valid encoding vectors encoding_vector length 256 eq { newfont /Encoding encoding_vector put } if newfontname newfont definefont pop } def /MF_PS { % fontname newfontname -> - make a new font preserving its enc /newfontname exch def /fontname exch def /fontdict fontname findfont def /newfont fontdict maxlength dict def fontdict { exch dup /FID eq { % skip FID pair pop pop } { % copy to the new font dictionary exch newfont 3 1 roll put } ifelse } forall newfont /FontName newfontname put newfontname newfont definefont pop } def /SF { % fontname width height -> - set a new font /height exch def /width exch def findfont [width 0 0 height 0 0] makefont setfont } def /SUF { % fontname width height -> - set a new user font /height exch def /width exch def /F-gs-user-font MF /F-gs-user-font width height SF } def /SUF_PS { % fontname width height -> - set a new user font preserving its enc /height exch def /width exch def /F-gs-user-font MF_PS /F-gs-user-font width height SF } def /M {moveto} bind def /s {show} bind def /Box { % x y w h -> - define box path /d_h exch def /d_w exch def /d_y exch def /d_x exch def d_x d_y moveto d_w 0 rlineto 0 d_h rlineto d_w neg 0 rlineto closepath } def /bgs { % x y height blskip gray str -> - show string with bg color /str exch def /gray exch def /blskip exch def /height exch def /y exch def /x exch def gsave x y blskip sub str stringwidth pop height Box gray setgray fill grestore x y M str s } def /bgcs { % x y height blskip red green blue str -> - show string with bg color /str exch def /blue exch def /green exch def /red exch def /blskip exch def /height exch def /y exch def /x exch def gsave x y blskip sub str stringwidth pop height Box red green blue setrgbcolor fill grestore x y M str s } def % Highlight bars. /highlight_bars { % nlines lineheight output_y_margin gray -> - gsave setgray /ymarg exch def /lineheight exch def /nlines exch def % This 2 is just a magic number to sync highlight lines to text. 0 d_header_y ymarg sub 2 sub translate /cw d_output_w cols div def /nrows d_output_h ymarg 2 mul sub lineheight div cvi def % for each column 0 1 cols 1 sub { cw mul /xp exch def % for each rows 0 1 nrows 1 sub { /rn exch def rn lineheight mul neg /yp exch def rn nlines idiv 2 mod 0 eq { % Draw highlight bar. 4 is just a magic indentation. xp 4 add yp cw 8 sub lineheight neg Box fill } if } for } for grestore } def % Line highlight bar. /line_highlight { % x y width height gray -> - gsave /gray exch def Box gray setgray fill grestore } def % Column separator lines. /column_lines { gsave .1 setlinewidth 0 d_footer_h translate /cw d_output_w cols div def 1 1 cols 1 sub { cw mul 0 moveto 0 d_output_h rlineto stroke } for grestore } def % Column borders. /column_borders { gsave .1 setlinewidth 0 d_footer_h moveto 0 d_output_h rlineto d_output_w 0 rlineto 0 d_output_h neg rlineto closepath stroke grestore } def % Do the actual underlay drawing /draw_underlay { ul_style 0 eq { ul_str true charpath stroke } { ul_str show } ifelse } def % Underlay /underlay { % - -> - gsave 0 d_page_h translate d_page_h neg d_page_w atan rotate ul_gray setgray ul_font setfont /dw d_page_h dup mul d_page_w dup mul add sqrt def ul_str stringwidth pop dw exch sub 2 div ul_h_ptsize -2 div moveto draw_underlay grestore } def /user_underlay { % - -> - gsave ul_x ul_y translate ul_angle rotate ul_gray setgray ul_font setfont 0 0 ul_h_ptsize 2 div sub moveto draw_underlay grestore } def % Page prefeed /page_prefeed { % bool -> - statusdict /prefeed known { statusdict exch /prefeed exch put } { pop } ifelse } def % Wrapped line markers /wrapped_line_mark { % x y charwith charheight type -> - /type exch def /h exch def /w exch def /y exch def /x exch def type 2 eq { % Black boxes (like TeX does) gsave 0 setlinewidth x w 4 div add y M 0 h rlineto w 2 div 0 rlineto 0 h neg rlineto closepath fill grestore } { type 3 eq { % Small arrows gsave .2 setlinewidth x w 2 div add y h 2 div add M w 4 div 0 rlineto x w 4 div add y lineto stroke x w 4 div add w 8 div add y h 4 div add M x w 4 div add y lineto w 4 div h 8 div rlineto stroke grestore } { % do nothing } ifelse } ifelse } def % EPSF import. /BeginEPSF { /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 /showpage { } def 0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin 10 setmiterlimit [ ] 0 setdash newpath /languagelevel where { pop languagelevel 1 ne { false setstrokeadjust false setoverprint } if } if } bind def /EndEPSF { count op_count sub { pos } repeat % Clean up stacks countdictstack dict_count sub { end } repeat b4_Inc_state restore } bind def % Check PostScript language level. /languagelevel where { pop /gs_languagelevel languagelevel def } { /gs_languagelevel 1 def } ifelse enscript-1.6.5.90/lib/88591.enc0000644000175000017500000001130511133214772012456 00000000000000% % 88591 encoding vector. % % This file is automatically generated from file `88591.txt'. If you % have any corrections to this file, please, edit file `88591.txt' instead. % % % This file is part of GNU Enscript. % % Enscript is free software: you can redistribute 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. % % Enscript is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License % along with Enscript. If not, see . % % -- code follows this line -- /encoding_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 /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 enscript-1.6.5.90/lib/88592.enc0000644000175000017500000001130411133214772012456 00000000000000% % 88592 encoding vector. % % This file is automatically generated from file `88592.txt'. If you % have any corrections to this file, please, edit file `88592.txt' instead. % % % This file is part of GNU Enscript. % % Enscript is free software: you can redistribute 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. % % Enscript is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License % along with Enscript. If not, see . % % -- code follows this line -- /encoding_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 /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 /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 enscript-1.6.5.90/lib/frame.hdr0000644000175000017500000000162411133214772013065 00000000000000% % A simple frame around the page. % Copyright (c) 1996 Markku Rossi. % Author: Markku Rossi % % % This file is part of GNU Enscript. % % Enscript is free software: you can redistribute 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. % % Enscript is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License % along with Enscript. If not, see . % % -- code follows this line -- %HeaderHeight: 0 %FooterHeight: 0 /do_header { d_footer_x d_footer_y d_page_w d_page_h Box stroke } def enscript-1.6.5.90/lib/simple.hdr0000644000175000017500000000257311133214772013270 00000000000000% % Default simple header. % Copyright (c) 1995 Markku Rossi. % Author: Markku Rossi % % % This file is part of GNU Enscript. % % Enscript is free software: you can redistribute 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. % % Enscript is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License % along with Enscript. If not, see . % % -- code follows this line -- %Format: fmodstr $D{%a %b %d %H:%M:%S %Y} %Format: pagenumstr $V$% /do_header { % print default simple header gsave d_header_x d_header_y HFpt_h 3 div add translate HF setfont user_header_p { 5 0 moveto user_header_left_str show d_header_w user_header_center_str stringwidth pop sub 2 div 0 moveto user_header_center_str show d_header_w user_header_right_str stringwidth pop sub 5 sub 0 moveto user_header_right_str show } { 5 0 moveto fname show 45 0 rmoveto fmodstr show 45 0 rmoveto pagenumstr show } ifelse grestore } def enscript-1.6.5.90/lib/88594.enc0000644000175000017500000001130411133214772012460 00000000000000% % 88594 encoding vector. % % This file is automatically generated from file `88594.txt'. If you % have any corrections to this file, please, edit file `88594.txt' instead. % % % This file is part of GNU Enscript. % % Enscript is free software: you can redistribute 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. % % Enscript is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License % along with Enscript. If not, see . % % -- code follows this line -- /encoding_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 /space /Aogonek /kgreenlandic /Rcedilla /currency /Itilde /Lcedilla /section /dieresis /Scaron /Emacron /Gcedilla /Tbar /hyphen /Zcaron /macron /degree /aogonek /ogonek /rcedilla /acute /itilde /lcedilla /caron /cedilla /scaron /emacron /gacute /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 enscript-1.6.5.90/lib/make-encoding.pl0000755000175000017500000000563311133214772014341 00000000000000#!/usr/local/bin/perl # # Create encoding vectors from the `*.txt' encoding files. # Copyright (c) 1995-1998 Markku Rossi # # Author: Markku Rossi # # # This file is part of GNU Enscript. # # Enscript is free software: you can redistribute 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. # # Enscript is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Enscript. If not, see . # # # Handle arguments # if (@ARGV != 1) { print "usage: $0 encfile\n"; exit(1); } $file = shift(@ARGV); open(FP, $file) || die "couldn't open input file `$file': $!\n"; # Find the start of the table. $found = 0; while () { if ($_ =~ /^-+$/) { $found = 1; last; } } if (!$found) { die "file `$file' is not a valid encoding file: couldn't find table\n"; } $file =~ s/\.txt$//g; $file =~ s/.*\///g; # Print header. print <<"EOF"; % % $file encoding vector. % % This file is automatically generated from file \`$file.txt\'. If you % have any corrections to this file, please, edit file \`$file.txt\' instead. % % % This file is part of GNU Enscript. % % Enscript is free software: you can redistribute 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. % % Enscript is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License % along with Enscript. If not, see . % % -- code follows this line -- /encoding_vector [ EOF $inum = 0; $names_per_row = 4; sub print_item { ($name) = @_; printf("%-14s\t", $name); if ((++$inum % $names_per_row) == 0) { printf("\n"); } } # Process file. while () { @cols = split; if ($_ =~ /^\s*$/) { next; } elsif ($_ =~ /non-printable/) { $fields{hex(@cols[1])} = "/.notdef"; } elsif (@cols[2] =~ /-/) { $fields{hex(@cols[1])} = "/.notdef"; } else { $fields{hex(@cols[1])} = @cols[2]; } } # Dump mapping. for ($i = 0; $i < 256; $i++) { if (!defined($fields{$i})) { print "* code $i is not defined, assuming `.notdef'\n"; $name = "/.notdef"; } else { $name = $fields{$i}; } print_item($name); } # Print trailer. if (($inum % $names_per_row) != 0) { printf("\n"); } print "\] def\n"; close(FP); enscript-1.6.5.90/lib/885910.enc0000644000175000017500000001130711133214772012540 00000000000000% % 885910 encoding vector. % % This file is automatically generated from file `885910.txt'. If you % have any corrections to this file, please, edit file `885910.txt' instead. % % % This file is part of GNU Enscript. % % Enscript is free software: you can redistribute 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. % % Enscript is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License % along with Enscript. If not, see . % % -- code follows this line -- /encoding_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 /space /Aogonek /Emacron /Gcedilla /Imacron /Itilde /Kcedilla /section /Lcedilla /Dbar /Scaron /Tslash /Zcaron /hyphen /Ucaron /Eng /degree /aogonek /emacron /gacute /imacron /itilde /kcedilla /bullet /lcedilla /dbar /scaron /tslash /zcaron /bar /ucaron /eng /Amacron /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Iogonek /Ccaron /Eacute /Eogonek /Edieresis /Edotaccent /Iacute /Icircumflex /Imacron /Eth /Ncedilla /Omacron /Oacute /Ocircumflex /Otilde /Odieresis /Utilde /Oslash /Uogonek /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls /amacron /aacute /acircumflex /atilde /adieresis /aring /ae /iogonek /ccaron /eacute /eogonek /edieresis /edotaccent /iacute /icircumflex /idieresis /eth /ncedilla /omacron /kcedilla /ocircumflex /otilde /odieresis /utilde /oslash /uogonek /uacute /ucircumflex /udieresis /yacute /thorn /kgreenlandic ] def enscript-1.6.5.90/lib/hp8.enc0000644000175000017500000001130011133214772012452 00000000000000% % hp8 encoding vector. % % This file is automatically generated from file `hp8.txt'. If you % have any corrections to this file, please, edit file `hp8.txt' instead. % % % This file is part of GNU Enscript. % % Enscript is free software: you can redistribute 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. % % Enscript is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License % along with Enscript. If not, see . % % -- code follows this line -- /encoding_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 ] def enscript-1.6.5.90/lib/Makefile.in0000644000175000017500000003654711606344073013360 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 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@ # # Automakefile for the library files. # Copyright (c) 1995-1998 Markku Rossi # # Author: Markku Rossi # # # This file is part of GNU Enscript. # # Enscript is free software: you can redistribute 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. # # Enscript is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Enscript. If not, see . # VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = lib DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc2.m4 \ $(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intdiv0.m4 $(top_srcdir)/m4/intl.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/intmax.m4 \ $(top_srcdir)/m4/inttypes-pri.m4 \ $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/lcmessage.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/lock.m4 \ $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/printf-posix.m4 \ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/size_max.m4 \ $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/uintmax_t.m4 \ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/wchar_t.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xsize.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_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 = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(pkgdatadir)" "$(DESTDIR)$(sysconfdir)" DATA = $(pkgdata_DATA) $(sysconf_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GENCAT = @GENCAT@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GLIBC2 = @GLIBC2@ GLIBC21 = @GLIBC21@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ HAVE_ASPRINTF = @HAVE_ASPRINTF@ HAVE_POSIX_PRINTF = @HAVE_POSIX_PRINTF@ HAVE_SNPRINTF = @HAVE_SNPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WPRINTF = @HAVE_WPRINTF@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLBISON = @INTLBISON@ INTLLIBS = @INTLLIBS@ INTLOBJS = @INTLOBJS@ INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTHREAD = @LIBTHREAD@ LTLIBC = @LTLIBC@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ MAKEINFO = @MAKEINFO@ MEDIA = @MEDIA@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ POSUB = @POSUB@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ PSLEVEL = @PSLEVEL@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SPOOLER = @SPOOLER@ STRIP = @STRIP@ U = @U@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WINDRES = @WINDRES@ WOE32 = @WOE32@ WOE32DLL = @WOE32DLL@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ YACC = @YACC@ YFLAGS = @YFLAGS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ 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@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ pkgdata_DATA = ascii.enc asciifise.enc asciidkno.enc hp8.enc ibmpc.enc \ koi8.enc 88591.enc 88592.enc 88593.enc 88594.enc 88595.enc 88597.enc \ 88599.enc 885910.enc mac.enc ps.enc pslatin1.enc vms.enc a2ps.hdr \ edd.hdr emacs.hdr enscript.hdr enscript-color.hdr frame.hdr mp.hdr \ simple.hdr squeeze.hdr enscript.pro sysconf_DATA = enscript.cfg CLEANFILES = $(sysconf_DATA) EXTRA_DIST = ChangeLog.old enscript.cfg.in $(pkgdata_DATA) \ Makefile-encodings make-encoding.pl do_subst = sed -e 's%@DATADIR@%$(datadir)%g' \ -e 's%@media@%@MEDIA@%g' \ -e 's%@BINDIR@%$(bindir)%g' \ -e 's%@spooler@%@SPOOLER@%g' \ -e 's%@pslevel@%@PSLEVEL@%g' all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu lib/Makefile'; \ $(am__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 $(am__aclocal_m4_deps): install-pkgdataDATA: $(pkgdata_DATA) @$(NORMAL_INSTALL) test -z "$(pkgdatadir)" || $(MKDIR_P) "$(DESTDIR)$(pkgdatadir)" @list='$(pkgdata_DATA)'; test -n "$(pkgdatadir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgdatadir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgdatadir)" || exit $$?; \ done uninstall-pkgdataDATA: @$(NORMAL_UNINSTALL) @list='$(pkgdata_DATA)'; test -n "$(pkgdatadir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(pkgdatadir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(pkgdatadir)" && rm -f $$files install-sysconfDATA: $(sysconf_DATA) @$(NORMAL_INSTALL) test -z "$(sysconfdir)" || $(MKDIR_P) "$(DESTDIR)$(sysconfdir)" @list='$(sysconf_DATA)'; test -n "$(sysconfdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(sysconfdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(sysconfdir)" || exit $$?; \ done uninstall-sysconfDATA: @$(NORMAL_UNINSTALL) @list='$(sysconf_DATA)'; test -n "$(sysconfdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(sysconfdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(sysconfdir)" && rm -f $$files tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(pkgdatadir)" "$(DESTDIR)$(sysconfdir)"; 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) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-pkgdataDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-sysconfDATA install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-pkgdataDATA uninstall-sysconfDATA .MAKE: install-am install-strip .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-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-pkgdataDATA install-ps \ install-ps-am install-strip install-sysconfDATA installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-pkgdataDATA \ uninstall-sysconfDATA enscript.cfg: enscript.cfg.in Makefile $(do_subst) < $(srcdir)/enscript.cfg.in > enscript.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: enscript-1.6.5.90/lib/mp.hdr0000644000175000017500000000464511133214772012415 00000000000000% % OPENWINDOWS' mp header % Copyright (c) 1996 Markku Rossi. % Author: Markku Rossi % % % This file is part of GNU Enscript. % % Enscript is free software: you can redistribute 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. % % Enscript is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License % along with Enscript. If not, see . % % -- code follows this line -- %Format: userstr %n %Format: datestr %D{%d/%m/%y %Hh%M} %Format: pagestr $%/$= %HeaderHeight: 48 %FooterHeight: 48 % Fonts. /Helvetica-BoldOblique /helvetica-encoded MF /SmallFont /helvetica-encoded findfont 10 scalefont def /BigFont /helvetica-encoded findfont 16 scalefont def /RBox { % x y w h r -> - /r exch def /h exch def /w exch def /y exch def /x exch def x y r add moveto x y h add x w add y h add r arcto 4 {pop} repeat x w add y h add x w add y r arcto 4 {pop} repeat x w add y x y r arcto 4 {pop} repeat x y x y h add r arcto 4 {pop} repeat closepath } def /radius 10 def /do_header { % print mp header gsave .5 setlinewidth % footer d_footer_x d_footer_y d_footer_w 40 radius RBox gsave .9 setgray fill grestore stroke BigFont setfont ftail dup stringwidth pop d_footer_w exch sub 2 div d_footer_y 14 add moveto show % header d_header_x d_header_y 8 add d_header_w 65 sub 40 radius RBox gsave .9 setgray fill grestore stroke SmallFont setfont datestr dup stringwidth pop d_header_x d_header_w 75 sub add exch sub d_header_y 22 add moveto show d_header_x 10 add d_header_y 22 add moveto (printed by: ) show BigFont setfont userstr show d_header_x d_header_w add 60 sub d_header_y 8 add 60 40 radius RBox stroke SmallFont setfont (Page) dup stringwidth pop 60 exch sub 2 div d_header_x d_header_w add 60 sub add d_header_y 33 add moveto show BigFont setfont pagestr dup stringwidth pop 60 exch sub 2 div d_header_x d_header_w add 60 sub add d_header_y 13 add moveto show grestore } def enscript-1.6.5.90/koi8.txt0000644000175000017500000001537411132443251012143 00000000000000 Adobe Standard Cyrillic Font KOI8 character set octal hex PostScript HTML entity character ---------------------------------------------------------------------- 000 0x00 non-printable \000 001 0x01 non-printable \001 002 0x02 non-printable \002 003 0x03 non-printable \003 004 0x04 non-printable \004 005 0x05 non-printable \005 006 0x06 non-printable \006 007 0x07 non-printable \007 010 0x08 non-printable \010 011 0x09 non-printable \011 012 0x0a non-printable \012 013 0x0b non-printable \013 014 0x0c non-printable \014 015 0x0d non-printable \015 016 0x0e non-printable \016 017 0x0f non-printable \017 020 0x10 non-printable \020 021 0x11 non-printable \021 022 0x12 non-printable \022 023 0x13 non-printable \023 024 0x14 non-printable \024 025 0x15 non-printable \025 026 0x16 non-printable \026 027 0x17 non-printable \027 030 0x18 non-printable \030 031 0x19 non-printable \031 032 0x1a non-printable \032 033 0x1b non-printable \033 034 0x1c non-printable \034 035 0x1d non-printable \035 036 0x1e non-printable \036 037 0x1f non-printable \037 040 0x20 /space 041 0x21 /exclam ! 042 0x22 /quotedbl " " 043 0x23 /numbersign # 044 0x24 /dollar $ 045 0x25 /percent % 046 0x26 /ampersand & & 047 0x27 /quoteright ' 050 0x28 /parenleft ( 051 0x29 /parenright ) 052 0x2a /asterisk * 053 0x2b /plus + 054 0x2c /comma , 055 0x2d /hyphen - 056 0x2e /period . 057 0x2f /slash / 060 0x30 /zero 0 061 0x31 /one 1 062 0x32 /two 2 063 0x33 /three 3 064 0x34 /four 4 065 0x35 /five 5 066 0x36 /six 6 067 0x37 /seven 7 070 0x38 /eight 8 071 0x39 /nine 9 072 0x3a /colon : 073 0x3b /semicolon ; 074 0x3c /less < < 075 0x3d /equal = 076 0x3e /greater > > 077 0x3f /question ? 0100 0x40 /at @ 0101 0x41 /A A 0102 0x42 /B B 0103 0x43 /C C 0104 0x44 /D D 0105 0x45 /E E 0106 0x46 /F F 0107 0x47 /G G 0110 0x48 /H H 0111 0x49 /I I 0112 0x4a /J J 0113 0x4b /K K 0114 0x4c /L L 0115 0x4d /M M 0116 0x4e /N N 0117 0x4f /O O 0120 0x50 /P P 0121 0x51 /Q Q 0122 0x52 /R R 0123 0x53 /S S 0124 0x54 /T T 0125 0x55 /U U 0126 0x56 /V V 0127 0x57 /W W 0130 0x58 /X X 0131 0x59 /Y Y 0132 0x5a /Z Z 0133 0x5b /bracketleft [ 0134 0x5c /backslash \ 0135 0x5d /bracketright ] 0136 0x5e /asciicircum ^ 0137 0x5f /underscore _ 0140 0x60 /quoteleft ` 0141 0x61 /a a 0142 0x62 /b b 0143 0x63 /c c 0144 0x64 /d d 0145 0x65 /e e 0146 0x66 /f f 0147 0x67 /g g 0150 0x68 /h h 0151 0x69 /i i 0152 0x6a /j j 0153 0x6b /k k 0154 0x6c /l l 0155 0x6d /m m 0156 0x6e /n n 0157 0x6f /o o 0160 0x70 /p p 0161 0x71 /q q 0162 0x72 /r r 0163 0x73 /s s 0164 0x74 /t t 0165 0x75 /u u 0166 0x76 /v v 0167 0x77 /w w 0170 0x78 /x x 0171 0x79 /y y 0172 0x7a /z z 0173 0x7b /braceleft { 0174 0x7c /bar | 0175 0x7d /braceright } 0176 0x7e /tilde ~ 0177 0x7f non-printable \177 0200 0x80 non-printable \200 0201 0x81 non-printable \201 0202 0x82 non-printable \202 0203 0x83 non-printable \203 0204 0x84 /guillmotleft \204 0205 0x85 /guillmotright \205 0206 0x86 /afii61352 \206 0207 0x87 non-printable \207 0210 0x88 non-printable \210 0211 0x89 non-printable \211 0212 0x8a non-printable \212 0213 0x8b non-printable \213 0214 0x8c non-printable \214 0215 0x8d non-printable \215 0216 0x8e non-printable \216 0217 0x8f non-printable \217 0220 0x90 non-printable \220 0221 0x91 non-printable \221 0222 0x92 non-printable \222 0223 0x93 non-printable \223 0224 0x94 non-printable \224 0225 0x95 non-printable \225 0226 0x96 non-printable \226 0227 0x97 non-printable \227 0230 0x98 non-printable \230 0231 0x99 non-printable \231 0232 0x9a non-printable \232 0233 0x9b non-printable \233 0234 0x9c non-printable \234 0235 0x9d non-printable \235 0236 0x9e non-printable \236 0237 0x9f non-printable \237 0240 0xa0 /space   0241 0xa1 /exclamdown ¡ 0242 0xa2 /cent ¢ 0243 0xa3 /afii10071 £ 0244 0xa4 /currency ¤ 0245 0xa5 /yen ¥ 0246 0xa6 /brokenbar ¦ 0247 0xa7 /section § 0250 0xa8 /dieresis ¨ 0251 0xa9 /copyright © 0252 0xaa /ordfeminine ª 0253 0xab /guillemotleft « 0254 0xac /logicalnot ¬ 0255 0xad /hyphen ­ 0256 0xae /registered ® 0257 0xaf /macron ¯ 0260 0xb0 /degree ° 0261 0xb1 /plusminus ± 0262 0xb2 /twosuperior ² 0263 0xb3 /afii10023 ³ 0264 0xb4 /acute ´ 0265 0xb5 /mu µ 0266 0xb6 /paragraph ¶ 0267 0xb7 /bullet · 0270 0xb8 /cedilla ¸ 0271 0xb9 /dotlessi ¹ 0272 0xba /ordmasculine º 0273 0xbb /guillemotright » 0274 0xbc /onequarter ¼ 0275 0xbd /onehalf ½ 0276 0xbe /threequarters ¾ 0277 0xbf /questiondown ¿ 0300 0xc0 /afii10096 À À 0301 0xc1 /afii10065 Á Á 0302 0xc2 /afii10066   0303 0xc3 /afii10088 à à 0304 0xc4 /afii10069 Ä Ä 0305 0xc5 /afii10070 Å Å 0306 0xc6 /afii10086 Æ Æ 0307 0xc7 /afii10068 Ç Ç 0310 0xc8 /afii10087 È È 0311 0xc9 /afii10074 É É 0312 0xca /afii10075 Ê Ê 0313 0xcb /afii10076 Ë Ë 0314 0xcc /afii10077 Ì Ì 0315 0xcd /afii10078 Í Í 0316 0xce /afii10079 Î Î 0317 0xcf /afii10080 Ï Ï 0320 0xd0 /afii10081 Ð Ð 0321 0xd1 /afii10097 Ñ Ñ 0322 0xd2 /afii10082 Ò Ò 0323 0xd3 /afii10083 Ó Ó 0324 0xd4 /afii10084 Ô Ô 0325 0xd5 /afii10085 Õ Õ 0326 0xd6 /afii10072 Ö Ö 0327 0xd7 /afii10067 × 0330 0xd8 /afii10094 Ø Ø 0331 0xd9 /afii10093 Ù Ù 0332 0xda /afii10073 Ú Ú 0333 0xdb /afii10090 Û Û 0334 0xdc /afii10095 Ü Ü 0335 0xdd /afii10091 Ý Ý 0336 0xde /afii10089 Þ Þ 0337 0xdf /afii10092 ß ß 0340 0xe0 /afii10048 à à 0341 0xe1 /afii10017 á á 0342 0xe2 /afii10018 â â 0343 0xe3 /afii10040 ã ã 0344 0xe4 /afii10021 ä ä 0345 0xe5 /afii10022 å å 0346 0xe6 /afii10038 æ æ 0347 0xe7 /afii10020 ç ç 0350 0xe8 /afii10039 è è 0351 0xe9 /afii10026 é é 0352 0xea /afii10027 ê ê 0353 0xeb /afii10028 ë ë 0354 0xec /afii10029 ì ì 0355 0xed /afii10030 í í 0356 0xee /afii10031 î î 0357 0xef /afii10032 ï ï 0360 0xf0 /afii10033 ð ð 0361 0xf1 /afii10049 ñ ñ 0362 0xf2 /afii10034 ò ò 0363 0xf3 /afii10035 ó ó 0364 0xf4 /afii10036 ô ô 0365 0xf5 /afii10037 õ õ 0366 0xf6 /afii10024 ö ö 0367 0xf7 /afii10019 ÷ 0370 0xf8 /afii10046 ø ø 0371 0xf9 /afii10045 ù ù 0372 0xfa /afii10025 ú ú 0373 0xfb /afii10042 û û 0374 0xfc /afii10047 ü ü 0375 0xfd /afii10043 ý ý 0376 0xfe /afii10041 þ þ 0377 0xff /afii10044 ÿ ÿ enscript-1.6.5.90/hp8.txt0000644000175000017500000001554411132443251011767 00000000000000 HP Roman-8 character set octal hex PostScript HTML entity character ---------------------------------------------------------------------- 000 0x00 non-printable 001 0x01 non-printable 002 0x02 non-printable 003 0x03 non-printable 004 0x04 non-printable 005 0x05 non-printable 006 0x06 non-printable 007 0x07 non-printable 010 0x08 non-printable 011 0x09 non-printable 012 0x0a non-printable 013 0x0b non-printable 014 0x0c non-printable 015 0x0d non-printable 016 0x0e non-printable 017 0x0f non-printable 020 0x10 non-printable 021 0x11 non-printable 022 0x12 non-printable 023 0x13 non-printable 024 0x14 non-printable 025 0x15 non-printable 026 0x16 non-printable 027 0x17 non-printable 030 0x18 non-printable 031 0x19 non-printable 032 0x1a non-printable 033 0x1b non-printable 034 0x1c non-printable 035 0x1d non-printable 036 0x1e non-printable 037 0x1f non-printable 040 0x20 /space 041 0x21 /exclam ! 042 0x22 /quotedbl " " 043 0x23 /numbersign # 044 0x24 /dollar $ 045 0x25 /percent % 046 0x26 /ampersand & & 047 0x27 /quoteright ' 050 0x28 /parenleft ( 051 0x29 /parenright ) 052 0x2a /asterisk * 053 0x2b /plus + 054 0x2c /comma , 055 0x2d /hyphen - 056 0x2e /period . 057 0x2f /slash / 060 0x30 /zero 0 061 0x31 /one 1 062 0x32 /two 2 063 0x33 /three 3 064 0x34 /four 4 065 0x35 /five 5 066 0x36 /six 6 067 0x37 /seven 7 070 0x38 /eight 8 071 0x39 /nine 9 072 0x3a /colon : 073 0x3b /semicolon ; 074 0x3c /less < < 075 0x3d /equal = 076 0x3e /greater > > 077 0x3f /question ? 0100 0x40 /at @ 0101 0x41 /A A 0102 0x42 /B B 0103 0x43 /C C 0104 0x44 /D D 0105 0x45 /E E 0106 0x46 /F F 0107 0x47 /G G 0110 0x48 /H H 0111 0x49 /I I 0112 0x4a /J J 0113 0x4b /K K 0114 0x4c /L L 0115 0x4d /M M 0116 0x4e /N N 0117 0x4f /O O 0120 0x50 /P P 0121 0x51 /Q Q 0122 0x52 /R R 0123 0x53 /S S 0124 0x54 /T T 0125 0x55 /U U 0126 0x56 /V V 0127 0x57 /W W 0130 0x58 /X X 0131 0x59 /Y Y 0132 0x5a /Z Z 0133 0x5b /bracketleft [ 0134 0x5c /backslash \ 0135 0x5d /bracketright ] 0136 0x5e /asciicircum ^ 0137 0x5f /underscore _ 0140 0x60 /quoteleft ` 0141 0x61 /a a 0142 0x62 /b b 0143 0x63 /c c 0144 0x64 /d d 0145 0x65 /e e 0146 0x66 /f f 0147 0x67 /g g 0150 0x68 /h h 0151 0x69 /i i 0152 0x6a /j j 0153 0x6b /k k 0154 0x6c /l l 0155 0x6d /m m 0156 0x6e /n n 0157 0x6f /o o 0160 0x70 /p p 0161 0x71 /q q 0162 0x72 /r r 0163 0x73 /s s 0164 0x74 /t t 0165 0x75 /u u 0166 0x76 /v v 0167 0x77 /w w 0170 0x78 /x x 0171 0x79 /y y 0172 0x7a /z z 0173 0x7b /braceleft { 0174 0x7c /bar | 0175 0x7d /braceright } 0176 0x7e /tilde ~ 0177 0x7f non-printable 0200 0x80 non-printable 0201 0x81 non-printable 0202 0x82 non-printable 0203 0x83 non-printable 0204 0x84 non-printable 0205 0x85 non-printable 0206 0x86 non-printable 0207 0x87 non-printable 0210 0x88 non-printable 0211 0x89 non-printable 0212 0x8a non-printable 0213 0x8b non-printable 0214 0x8c non-printable 0215 0x8d non-printable 0216 0x8e non-printable 0217 0x8f non-printable 0220 0x90 non-printable 0221 0x91 non-printable 0222 0x92 non-printable 0223 0x93 non-printable 0224 0x94 non-printable 0225 0x95 non-printable 0226 0x96 non-printable 0227 0x97 non-printable 0230 0x98 non-printable 0231 0x99 non-printable 0232 0x9a non-printable 0233 0x9b non-printable 0234 0x9c non-printable 0235 0x9d non-printable 0236 0x9e non-printable 0237 0x9f non-printable 0240 0xa0 non-printable 0241 0xa1 /Agrave À ¡ 0242 0xa2 /Acircumflex  ¢ 0243 0xa3 /Egrave È £ 0244 0xa4 /Ecircumflex Ê ¤ 0245 0xa5 /Edieresis Ë ¥ 0246 0xa6 /Icircumflex Î ¦ 0247 0xa7 /Idieresis Ï § 0250 0xa8 /acute ¨ 0251 0xa9 /grave © 0252 0xaa /circumflex ª 0253 0xab /dieresis « 0254 0xac /tilde ¬ 0255 0xad /Ugrave Ù ­ 0256 0xae /Ucircumflex Û ® 0257 0xaf /sterling ¯ 0260 0xb0 /macron ° 0261 0xb1 /Yacute Ý ± 0262 0xb2 /yacute ý ² 0263 0xb3 /degree ³ 0264 0xb4 /Ccedilla Ç ´ 0265 0xb5 /ccedilla ç µ 0266 0xb6 /Ntilde Ñ ¶ 0267 0xb7 /ntilde ñ · 0270 0xb8 /exclamdown ¸ 0271 0xb9 /questiondown ¹ 0272 0xba /currency º 0273 0xbb /sterling » 0274 0xbc /yen ¼ 0275 0xbd /section ½ 0276 0xbe /florin ¾ 0277 0xbf /cent ¿ 0300 0xc0 /acircumflex â À 0301 0xc1 /ecircumflex ê Á 0302 0xc2 /ocircumflex ô  0303 0xc3 /ucircumflex û à 0304 0xc4 /aacute á Ä 0305 0xc5 /eacute é Å 0306 0xc6 /oacute ó Æ 0307 0xc7 /uacute ú Ç 0310 0xc8 /agrave à È 0311 0xc9 /egrave è É 0312 0xca /ograve ò Ê 0313 0xcb /ugrave ù Ë 0314 0xcc /adieresis ä Ì 0315 0xcd /edieresis ë Í 0316 0xce /odieresis ö Î 0317 0xcf /udieresis ü Ï 0320 0xd0 /Aring Å Ð 0321 0xd1 /icircumflex î Ñ 0322 0xd2 /Oslash Ø Ò 0323 0xd3 /AE Æ Ó 0324 0xd4 /aring å Ô 0325 0xd5 /iacute í Õ 0326 0xd6 /oslash Ö Ö 0327 0xd7 /ae æ × 0330 0xd8 /Adieresis Ä Ø 0331 0xd9 /igrave ì Ù 0332 0xda /Odieresis Ö Ú 0333 0xdb /Udieresis Ü Û 0334 0xdc /Eacute É Ü 0335 0xdd /idieresis ï Ý 0336 0xde /germandbls ß Þ 0337 0xdf /Ocircumflex Ô ß 0340 0xe0 /Aacute Á à 0341 0xe1 /Atilde à á 0342 0xe2 /atilde ã â 0343 0xe3 /Eth Ð ã 0344 0xe4 /eth ð ä 0345 0xe5 /Iacute Í å 0346 0xe6 /Igrave Ì æ 0347 0xe7 /Oacute Ó ç 0350 0xe8 /Ograve Ò è 0351 0xe9 /Otilde Õ é 0352 0xea /otilde õ ê 0353 0xeb /Scaron ë ë 0354 0xec /scaron ì ì 0355 0xed /Uacute Ú í 0356 0xee /Ydieresis î î 0357 0xef /ydieresis ÿ ï 0360 0xf0 /Thorn Þ ð 0361 0xf1 /thorn þ ñ 0362 0xf2 /periodcentered ò ò 0363 0xf3 /mu ó ó 0364 0xf4 /paragraph ô ô 0365 0xf5 /threequarters õ õ 0366 0xf6 /emdash ö ö 0367 0xf7 /onequarter ÷ 0370 0xf8 /onehalf ø ø 0371 0xf9 /ordfeminine ù ù 0372 0xfa /ordmasculine ú ú 0373 0xfb /guillemotleft û û 0374 0xfc /filledbox ü ü 0375 0xfd /guillemotright ý ý 0376 0xfe /plusminus þ þ 0377 0xff non-printable enscript-1.6.5.90/src/0000755000175000017500000000000011606344230011370 500000000000000enscript-1.6.5.90/src/tests/0000755000175000017500000000000011606344231012533 500000000000000enscript-1.6.5.90/src/tests/Makefile.am0000644000175000017500000000211411401303365014501 00000000000000# # Makefile.am for enscript tests. # Copyright (c) 1997 Markku Rossi # # Author: Markku Rossi # # # This file is part of GNU Enscript. # # Enscript is free software: you can redistribute 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. # # Enscript is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Enscript. If not, see . # AUTOMAKE_OPTIONS = TESTS = ascii.test binary.test font.test columns.test pages.test \ linenums.test hlbars.test indent.test filter.test borders.test \ underlay.test toc.test falign.test slice.test escapes.test \ headers.test media.test encodings.test passthrough.test \ nup.test EXTRA_DIST = ChangeLog.old defs $(TESTS) enscript-1.6.5.90/src/tests/binary.test0000755000175000017500000000020011132443251014627 00000000000000#!/bin/sh # # Test binary file printing. # . $srcdir/defs || exit 1 $enscript --quiet -G2r -p$output $binaryfiles rm $output enscript-1.6.5.90/src/tests/ChangeLog.old0000644000175000017500000000064111401303365014777 000000000000002008-01-01 Tim Retout * ChangeLog: Add copyright notice at end. 1998-06-23 Markku Rossi * headers.test: Added checks for the `--header' option. Copyright (C) 1998, 2008 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. enscript-1.6.5.90/src/tests/indent.test0000755000175000017500000000016311132443251014634 00000000000000#!/bin/sh # # --indent # . $srcdir/defs || exit 1 $enscript --quiet --indent=5 -p$output $asciifiles rm $output enscript-1.6.5.90/src/tests/borders.test0000755000175000017500000000016311132443251015013 00000000000000#!/bin/sh # # --borders # . $srcdir/defs || exit 1 $enscript --quiet --borders -p$output $asciifiles rm $output enscript-1.6.5.90/src/tests/escapes.test0000755000175000017500000000042011132443251014772 00000000000000#!/bin/sh # # Special escapes. # . $srcdir/defs || exit 1 links="README.ESCAPES mtr.eps mtr_small.eps mtr_tiny.eps" for i in $links; do ln -s $srcdir/../../$i . done $enscript --quiet -G2r -p$output -e README.ESCAPES for i in $links; do rm -f $i done rm $output enscript-1.6.5.90/src/tests/ascii.test0000755000175000017500000000017611132443251014447 00000000000000#!/bin/sh # # Test ASCII file printing. # . $srcdir/defs || exit 1 $enscript --quiet -G2r -p$output $asciifiles rm $output enscript-1.6.5.90/src/tests/filter.test0000755000175000017500000000017211132443251014640 00000000000000#!/bin/sh # # --filter # . $srcdir/defs || exit 1 $enscript --quiet --filter="cat %s" -p$output $asciifiles rm $output enscript-1.6.5.90/src/tests/font.test0000755000175000017500000000040411132443251014317 00000000000000#!/bin/sh # # Test font selection. # . $srcdir/defs || exit 1 $enscript --quiet -G2r -p$output -fTimes-Roman7 $asciifiles $enscript --quiet -G2r -p$output -fTimes-Roman@7 $asciifiles $enscript --quiet -G2r -p$output -fTimes-Roman@7/6 $asciifiles rm $output enscript-1.6.5.90/src/tests/headers.test0000755000175000017500000000065011132443251014767 00000000000000#!/bin/sh # # Fancy and standard headers. # . $srcdir/defs || exit 1 # Standard. $enscript -2r --quiet --header='Hello, world!' -p$output $asciifiles $enscript -2r --quiet --header='Left|Center' -p$output $asciifiles $enscript -2r --quiet --header='Left|Center|Right' -p$output $asciifiles # Fancy. for i in a2ps edd emacs enscript frame mp; do $enscript -2r --quiet --fancy=$i -p$output $asciifiles done rm $output enscript-1.6.5.90/src/tests/columns.test0000755000175000017500000000016511132443251015035 00000000000000#!/bin/sh # # --columns # . $srcdir/defs || exit 1 $enscript --quiet --columns=5 -p$output $asciifiles rm $output enscript-1.6.5.90/src/tests/nup.test0000755000175000017500000000040511132443251014154 00000000000000#!/bin/sh # # --nup # . $srcdir/defs || exit 1 $enscript --quiet -G --nup=2 -p$output $asciifiles $enscript --quiet -G2r -U2 -p$output $asciifiles $enscript --quiet -G --nup=4 -p$output $asciifiles $enscript --quiet -G2r -U4 -p$output $asciifiles rm $output enscript-1.6.5.90/src/tests/slice.test0000755000175000017500000000016111132443251014450 00000000000000#!/bin/sh # # --slice # . $srcdir/defs || exit 1 $enscript --quiet --slice=2 -p$output $asciifiles rm $output enscript-1.6.5.90/src/tests/defs0000644000175000017500000000071411132443251013315 00000000000000#!/bin/sh # # Definitions for GNU Enscript testing environment. # # Set ENSCRIPT_LIBRARY so enscript knows where the library files are. ENSCRIPT_LIBRARY="$srcdir/../../lib" export ENSCRIPT_LIBRARY output=testout.ps asciifiles="$srcdir/defs $srcdir/ascii.test $srcdir/../psgen.c" binaryfiles="../enscript ../mkafmmap" enscript="../enscript" # Check that $srcdir is set correctly. test -f $srcdir/defs || { echo "defs: installation error" 1>&2 exit 1 } enscript-1.6.5.90/src/tests/pages.test0000755000175000017500000000050211132443251014447 00000000000000#!/bin/sh # # --pages # . $srcdir/defs || exit 1 $enscript --quiet --pages=2-3 -p$output $asciifiles $enscript --quiet --pages=-3 -p$output $asciifiles $enscript --quiet --pages=2- -p$output $asciifiles $enscript --quiet --pages=odd -p$output $asciifiles $enscript --quiet --pages=even -p$output $asciifiles rm $output enscript-1.6.5.90/src/tests/media.test0000755000175000017500000000026511132443251014435 00000000000000#!/bin/sh # # Output media. # . $srcdir/defs || exit 1 for i in A3 A4 A5 Letter Legal A4dj Letterdj; do $enscript -G2r --quiet --media=$i -p$output $asciifiles done rm $output enscript-1.6.5.90/src/tests/toc.test0000755000175000017500000000015311132443251014137 00000000000000#!/bin/sh # # --toc # . $srcdir/defs || exit 1 $enscript --quiet --toc -p$output $asciifiles rm $output enscript-1.6.5.90/src/tests/encodings.test0000755000175000017500000000036411132443251015327 00000000000000#!/bin/sh # # Input encodings # . $srcdir/defs || exit 1 for i in ascii asciifise asciidkno ibmpc 88591 88592 88593 88594 88595 88597 mac vms hp8 koi8; do $enscript -G2r --quiet --encoding=$i -p$output $srcdir/../../$i.txt done rm $output enscript-1.6.5.90/src/tests/linenums.test0000755000175000017500000000017511132443251015210 00000000000000#!/bin/sh # # --line-numbers # . $srcdir/defs || exit 1 $enscript --quiet --line-numbers -p$output $asciifiles rm $output enscript-1.6.5.90/src/tests/Makefile.in0000644000175000017500000003542111606344074014532 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 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.am for enscript tests. # Copyright (c) 1997 Markku Rossi # # Author: Markku Rossi # # # This file is part of GNU Enscript. # # Enscript is free software: you can redistribute 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. # # Enscript is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Enscript. If not, see . # VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = src/tests DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc2.m4 \ $(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intdiv0.m4 $(top_srcdir)/m4/intl.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/intmax.m4 \ $(top_srcdir)/m4/inttypes-pri.m4 \ $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/lcmessage.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/lock.m4 \ $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/printf-posix.m4 \ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/size_max.m4 \ $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/uintmax_t.m4 \ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/wchar_t.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xsize.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__tty_colors = \ red=; grn=; lgn=; blu=; std= DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GENCAT = @GENCAT@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GLIBC2 = @GLIBC2@ GLIBC21 = @GLIBC21@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ HAVE_ASPRINTF = @HAVE_ASPRINTF@ HAVE_POSIX_PRINTF = @HAVE_POSIX_PRINTF@ HAVE_SNPRINTF = @HAVE_SNPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WPRINTF = @HAVE_WPRINTF@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLBISON = @INTLBISON@ INTLLIBS = @INTLLIBS@ INTLOBJS = @INTLOBJS@ INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTHREAD = @LIBTHREAD@ LTLIBC = @LTLIBC@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ MAKEINFO = @MAKEINFO@ MEDIA = @MEDIA@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ POSUB = @POSUB@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ PSLEVEL = @PSLEVEL@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SPOOLER = @SPOOLER@ STRIP = @STRIP@ U = @U@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WINDRES = @WINDRES@ WOE32 = @WOE32@ WOE32DLL = @WOE32DLL@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ YACC = @YACC@ YFLAGS = @YFLAGS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ 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@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AUTOMAKE_OPTIONS = TESTS = ascii.test binary.test font.test columns.test pages.test \ linenums.test hlbars.test indent.test filter.test borders.test \ underlay.test toc.test falign.test slice.test escapes.test \ headers.test media.test encodings.test passthrough.test \ nup.test EXTRA_DIST = ChangeLog.old defs $(TESTS) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/tests/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/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 $(am__aclocal_m4_deps): 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) '; \ $(am__tty_colors); \ 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`; \ col=$$red; res=XPASS; \ ;; \ *) \ col=$$grn; res=PASS; \ ;; \ esac; \ elif test $$? -ne 77; then \ all=`expr $$all + 1`; \ case " $(XFAIL_TESTS) " in \ *[\ \ ]$$tst[\ \ ]*) \ xfail=`expr $$xfail + 1`; \ col=$$lgn; res=XFAIL; \ ;; \ *) \ failed=`expr $$failed + 1`; \ col=$$red; res=FAIL; \ ;; \ esac; \ else \ skip=`expr $$skip + 1`; \ col=$$blu; res=SKIP; \ fi; \ echo "$${col}$$res$${std}: $$tst"; \ done; \ if test "$$all" -eq 1; then \ tests="test"; \ All=""; \ else \ tests="tests"; \ All="All "; \ fi; \ if test "$$failed" -eq 0; then \ if test "$$xfail" -eq 0; then \ banner="$$All$$all $$tests passed"; \ else \ if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ 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 \ if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ fi; \ fi; \ dashes="$$banner"; \ skipped=""; \ if test "$$skip" -ne 0; then \ if test "$$skip" -eq 1; then \ skipped="($$skip test was not run)"; \ else \ skipped="($$skip tests were not run)"; \ fi; \ 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`; \ if test "$$failed" -eq 0; then \ echo "$$grn$$dashes"; \ else \ echo "$$red$$dashes"; \ fi; \ echo "$$banner"; \ test -z "$$skipped" || echo "$$skipped"; \ test -z "$$report" || echo "$$report"; \ echo "$$dashes$$std"; \ test "$$failed" -eq 0; \ else :; fi distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am $(MAKE) $(AM_MAKEFLAGS) check-TESTS check: check-am all-am: Makefile 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) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: check-am install-am install-strip .PHONY: all all-am check check-TESTS 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-dvi install-dvi-am install-exec install-exec-am \ install-html install-html-am install-info install-info-am \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic pdf pdf-am ps ps-am uninstall \ uninstall-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: enscript-1.6.5.90/src/tests/hlbars.test0000755000175000017500000000020111132443251014617 00000000000000#!/bin/sh # # --highlight-bars # . $srcdir/defs || exit 1 $enscript --quiet --highlight-bars -p$output $asciifiles rm $output enscript-1.6.5.90/src/tests/falign.test0000755000175000017500000000017311132443251014614 00000000000000#!/bin/sh # # --file-align # . $srcdir/defs || exit 1 $enscript --quiet --file-align=2 -p$output $asciifiles rm $output enscript-1.6.5.90/src/tests/underlay.test0000755000175000017500000000020511132443251015173 00000000000000#!/bin/sh # # --underlay # . $srcdir/defs || exit 1 $enscript --quiet --underlay="Hello, world!" -p$output $asciifiles rm $output enscript-1.6.5.90/src/tests/passthrough.test0000755000175000017500000000302311132443251015720 00000000000000#!/bin/sh # # Test pass through files. # . $srcdir/defs || exit 1 cat >test_input.ps <$output result=`tail +2 test_input.ps | cmp - $output` if test "X$result" != "X"; then exit 1 fi rm test_input.ps ### } echo 'D%!' | tr 'D' '\4' >test_input.ps cat >>test_input.ps <$output result=`tail +2 test_input.ps | cmp - $output` if test "X$result" != "X"; then exit 1 fi rm test_input.ps ### } echo '@E' | tr '@' '\33' >test_input.pcl cat >>test_input.pcl <$output result=`tail +2 test_input.pcl | cmp - $output` if test "X$result" != "X"; then exit 1 fi rm test_input.pcl ### } echo '@%' | tr '@' '\33' >test_input.pcl cat >>test_input.pcl <$output result=`tail +2 test_input.pcl | cmp - $output` if test "X$result" != "X"; then exit 1 fi rm test_input.pcl ### } rm $output enscript-1.6.5.90/src/Makefile.am0000644000175000017500000000316011606317210013342 00000000000000# # Makefile for enscript. # Copyright (c) 1995-2003 Markku Rossi # # Author: Markku Rossi # # # This file is part of GNU Enscript. # # Enscript is free software: you can redistribute 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. # # Enscript is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Enscript. If not, see . # SUBDIRS = tests bin_PROGRAMS = enscript mkafmmap enscript_SOURCES = main.c psgen.c util.c prt_lpr.c enscript_SOURCES_windelta = \ -prt_lpr.c \ +prt_dos.c mkafmmap_SOURCES = mkafmmap.c LDADD = ../afmlib/libafm.a @LIBINTL@ ../compat/libcompat.a -lm enscript_DEPENDENCIES = ../afmlib/libafm.a ../compat/libcompat.a mkafmmap_DEPENDENCIES = ../afmlib/libafm.a ../compat/libcompat.a noinst_HEADERS = gsint.h localedir = $(datadir)/locale INCLUDES = -I$(srcdir)/../compat -I$(srcdir)/../afmlib \ -I$(srcdir)/../intl -I../intl -DLOCALEDIR=\"$(localedir)\" \ -DLIBRARY=\"$(datadir)/enscript\" -DSYSCONFDIR=\"$(sysconfdir)\" INCLUDES_windelta = \ +-I../w32 \ --DLOCALEDIR=\"$(localedir)\" \ --DLIBRARY=\"$(datadir)/enscript\" \ --DSYSCONFDIR=\"$(sysconfdir)\" \ +-DLIBRARY=\"c:\\enscript\" \ +-DSYSCONFDIR=\"c:\\enscript\" EXTRA_DIST = ChangeLog.old prt_dos.c enscript-1.6.5.90/src/ChangeLog.old0000644000175000017500000006700011401303365013637 000000000000002009-12-30 Tim Retout * main.c (main): Use ngettext for messages about truncated lines, missing characters and non-printable characters. 2009-12-27 Tim Retout Apply patch from Debian Security Team for CAN-2004-1184. * gsint.h: Add shell_escape prototype. * util.c (shell_escape): New function to escape filenames for shell usage. * util.c (is_open): Use shell_escape to expand command buffer. * main.c (main): Use single quotes when building command string, and use shell_escape to quote contents. * util.c (escape_string): Check return code of xmalloc. Apply patch from Werner Fink to address CVE-2008-3863, CVE-2008-4306. * psgen.c: Use PATH_MAX for various buffer sizes. Replace several strcpy calls with memset and strncpy. 2009-03-28 Tim Retout * psgen.c (recognize_eps_file): Remove ability to read EPS data from a pipe, as this executes arbitrary commands. It has been disabled in most distros for five years anyway. See CAN-2004-1185. * psgen.c (dump_ps_page_header): Use basename() and dirname() to split path. Fixes a buffer overflow - see CAN-2004-1186. 2009-01-25 Tim Retout * main.c (main): Respect $HOME when searching for ~/.enscriptrc 2008-01-01 Tim Retout * ChangeLog: Run M-x change-log-redate. Add copyright notice at end. * main.c (usage): Use PACKAGE_BUGREPORT instead of hardcoding the bug report address. * main.c (main) : Remove an unnecessary fclose of the toc temporary file, which was breaking the --toc option. 1999-09-17 Markku Rossi * main.c (handle_options): New option --footer to set the page footer string. (main): Modified the config file reading to be more user-tolerant. If the config file reading still fails, the enscript prints a verbose error message describing the situation. Enscript also suggest some workarounds for the problem. Hopefully this helps users to overcome their problems concerning the installation of the program. * psgen.c (dump_ps_page_header): Added support for user supplied footer strings. * main.c: Removed the obsolete --list-options option. 1999-09-13 Markku Rossi * main.c (handle_options): New option --extended-return-values to enable the extended return values. 1999-09-07 Markku Rossi * psgen.c (process_file): Added an argument `is_toc' to specify whether the file to process is a table of contents file. 1999-08-26 Markku Rossi * util.c (format_user_string): New escape `$p' for number of pages processed so far. 1999-07-16 Markku Rossi * Finished the static to dynamic memory buffer conversion. Now the enscript sources should not have any buffer overrun bugs. 1999-07-13 Markku Rossi * Converted many static buffers to dynamically allocated buffers. There are still more work in this area. 1999-07-09 Markku Rossi * main.c: Started to fix some possible buffer overflows. This needs still more work. * util.c: Implemented buffer_clear(). 1999-07-08 Markku Rossi * prt_lpr.c: Fixed to use the new memory buffer routines. * util.c: Implemented new dynamic memory buffer handling routines buffer_{{un,}init,alloc,free,append{,_len},ptr,len}(). 1999-07-05 Markku Rossi * main.c (handle_options): New option `--nup-columnwise' to layout pages in the N-up printing columnwise. (handle_options): New option `--swap-even-page-margins' to swap left and right side page marginals for even numbered pages. 1999-03-29 Markku Rossi * main.c (close_output_file): Check the return value of fclose on a written file, and warn if necessary. (John Bley, jbb6@acpub.duke.edu) 1999-03-12 Markku Rossi * main.c: Renamed all `pretty-print' options to the corresponding `highlight' ones. 1999-01-07 Markku Rossi * util.c (parse_font_spec): Cleaned up the font specification parsing. * main.c (main): Fixed the non-installation runs to preserve the PATH_SEPARATOR. (handle_options): New options -3, -4, -5, -6, -7, -8, -9 to select 3-9 columns. 1998-12-23 Markku Rossi * main.c (encodings): Added ISO-8859-{9,10} encodings. * psgen.c (process_file): Swapped the order in which the line numbers and line shading are printed. Now the line numbers won't be overwritten by the shading. 1998-12-07 Markku Rossi * main.c (main): Added a xgettext `no-c-format' string. 1998-10-29 Markku Rossi * main.c (main): Fixed the `--help-pretty-print' option to work with the new highlighting scheme. 1998-10-23 Markku Rossi * util.c (read_font_info): Added the `encoding' value to the font info cache key. * psgen.c (process_file): New special escape ^@bgcolor{} to set the text background color. * main.c: Changed enscript to use the new highlighting style. All states related options were changed. 1998-10-16 Markku Rossi * psgen.c: Added support for the user specified input encoding in the ^@font{} escapes. * util.c (parse_font_spec): Added support for the encoding specification in the font spec. All uses changed. * gsint.h: New the EncodingRegistry to hold the known input encodings. Made the encodings a global variable. 1998-09-07 Markku Rossi * main.c (main): Fixed to honor the HOME environment variable. 1998-06-25 Markku Rossi * main.c (handle_options): New option `--rotate-even-pages' to rotate each even-numbered page 180 degrees. (usage): Moved `--word-wrap' to correct position. 1998-06-24 Markku Rossi * psgen.c (dump_ps_page_header): Fixed N-up printing in the portrait mode. It used to work, but I have broke it sometime in the past. Now it is fixed again. * util.c (format_user_string): Fixed a bug from the `$n' formatting. We do not want to show the leading '/' in the result string. 1998-06-23 Markku Rossi * main.c (encodings): Fixed a typo where the ISO-8859-7 was called "creek" instead of "greek". * psgen.c (dump_ps_header): Fixed to obey the `pslevel' option; generate PostScript level 2 features only if the requested level is 2 or above. * main.c (handle_options): New option `--ps-level' to set the PS level that enscript should use. (main): Changed to pass the stdin to states as "-". * util.c (read_config): New config file option `PostScriptLevel' to set the PS level that enscript should use. 1998-06-22 Markku Rossi * psgen.c (dump_ps_page_header): Fixed a NULL-reference bug from the `--header' handling. 1998-06-17 Markku Rossi * main.c (usage): Added a missing `\n\' sequence in the usage text. 1998-06-11 Markku Rossi * main.c: Renamed ISO-8859-* encodings. 1998-05-26 Markku Rossi * util.c (format_user_string): Changed `$%' to format the page number as `2B' in the slicing mode. * main.c (main): Added double quotes around all file names in the pipe command strings. Now we can cooperate with file names with spaces. 1998-05-18 Markku Rossi * main.c (handle_options): Changed the way how the escape character code can be set. Now we accept decimals, octals, hexadecimals, and characters as-is. 1998-03-25 Markku Rossi * main.c: Added ISO-8859/7 (ISO latin7) encoding. 1998-03-09 Markku Rossi * main.c (handle_options): Option -C, --line-numbers takes now an optional argument that specifies the number of the first line of the input. 1998-02-23 Markku Rossi * psgen.c (process_file): Implemented horizontal columns. The option --h-column-height is used to set the column height and to activate the horizontal columns. 1998-01-14 Markku Rossi * psgen.c (get_next_token): Implemented word wrapping to be used instead of truncating `-c', `--truncate-lines' or character wrapping. Cleaned up statistics about truncated and wrapped lines. Now it obeys `--pages' and it works for both truncated and wrapped lines. 1998-01-13 Markku Rossi * util.c (is_ungetc): Implemented unlimited ungetc support to the InputStream interface. This is needed for the word wrap support. * main.c: New options --nup-xpad and --nup-ypad to change the page padding in N-up printing. (main): Cleaned up N-up printing. 1998-01-12 Markku Rossi * gsint.h: Replaced all stdarg functions with corresponding macros. Changed all calls of `error', `fatal', `cfg_fatal' and `message' to use the new macros. Now there should be no more errors on HP-SUX. 1998-01-02 Markku Rossi * main.c (main): Changed to lookup the enscript.st file from enscript_library instead of using the hard-coded `PREFIX/share' directory. Now it obeys the ENSCRIPT_LIBRARY environment variable. * psgen.c (dump_ps_header): Generate PageSize page device setting if it is requested. This should make the printer to select the correct paper tray automatically. * main.c (handle_options): Changed option -l, --lineprinter to set only --lines-per-page=66 and --no-header (removed --portrait and --columns=1). Now it conforms to Adobe's version. 1997-11-26 Markku Rossi * util.c (format_user_string): Fixed y2k bugs. 1997-09-30 Markku Rossi * main.c: Added ISO-8859/4 encoding, thanks to Ricardas Cepas . 1997-09-16 Markku Rossi * main.c (version): Updated to conform the latest GNU coding standard. 1997-08-28 Markku Rossi * main.c: New option `--margins=LEFT:RIGHT:TOP:BOTTOM' to adjust page marginals. 1997-08-11 Markku Rossi * psgen.c (divert): Changed to use tempnam() instead of tmpnam(). (get_next_token): Fixed tabulator character handling with variable width fonts. Now it really works; the left margins is really pretty. 1997-07-03 Markku Rossi * psgen.c (read_special_escape): Implemented new `escape' special escape to change the escape character. 1997-06-10 Markku Rossi * psgen.c: Optimized the size of the generated PostScript output. (print_line_number): Fixed to print the line number with the default body font, not with the currently active font which might have been selected with font escapes. (process_file): New special escape ^@bggray{} to set the text background color. 1997-06-06 Markku Rossi * psgen.c: Fixed lineskip to work better when changing the font at the beginning of the line. 1997-06-05 Markku Rossi * psgen.c (dump_empty_page): Fixed --file-align option to work even if we cross the page boundary in N-up mode. 1997-05-28 Markku Rossi * main.c: New option --mark-wrapped-lines[=STYLE], MarkWrappedLines to mark wrapped lines in the printout. 1997-05-22 Markku Rossi * main.c (main): Coded more information to the return value. 1997-03-19 Markku Rossi * main.c: New option -W, --language to specify the output language. New option --color to change the States color model from the command line. Made option -J to be an alias for -t, --title. Make option -# to be an alias for -n, --copies. 1997-03-04 Markku Rossi * util.c (read_config): New config file option `StatesPath' to specify the path for the states program. * psgen.c: Fixed --file-align option which was broken with the --nup option. 1997-03-03 Markku Rossi * psgen.c (dump_ps_page_header): Implemented user escapes for user defined header strings. 1997-02-26 Markku Rossi * Release enscript-1.5.0. 1997-02-21 Markku Rossi * util.c (read_font_info): Optimized AFM caching, this speeds up enscript when using ^@font{} escapes a lot (-E). (read_font_info): New input encoding asciidkno. Renamed asciiscands to asciifise. 1997-02-18 Markku Rossi * main.c: New option -U NUM, --nup=NUM to specify how many logical output pages are printed on each physical output page. 1997-02-06 Markku Rossi * util.c (parse_font_spec): Added a warning about negative font sizes. 1997-02-03 Markku Rossi * main.c: New option `--help-pretty-print' to describe all supported --pretty-print languages and file formats. 1997-01-24 Markku Rossi * main.c (main): Changed the output file creation to be demand-driven. If the input file (all input files) could not be opened, enscript doesn't generate any output. This is a good thing. 1997-01-23 Markku Rossi * gsint.h: Changed the way how memmove() and memcpy() are defined handled. Not replacements can be found form compat lib so we do not need any #define kludges. 1997-01-21 Markku Rossi * Makefile.am: Removed testcase.sh and moved all tests to ../tests directory. * util.c (read_config): Added states dependant config file options: `StatesColorModel', `StatesConfigFile' and `StatesHighlightLevel'. 1997-01-13 Markku Rossi * mkafmmap.c: Internationalized mkafmmap program. * util.c (read_config): New option `OutputFirstLine' to set the PostScript output's first line. 1996-11-28 Markku Rossi * main.c: New option `--E', `--pretty-print' to pretty print source codes with `states'. * psgen.c: New special escape ^@color{r g b}. * util.c (format_user_string): Fixed bug from the `$n' escape formatting. (read_config): New option `NoJobHeaderSwitch' to specify the spooler option to suppress the job header. 1996-11-05 Markku Rossi * psgen.c: fixed line number spacing bug which occured when using line numbers with escapes. * main.c: Added ISO-8859/5 (ISO latin5) encoding. 1996-09-07 Markku Rossi * main.c: Added Adobe's Standard cyrillic Font KOI8 encoding. 1996-08-30 Markku Rossi * util.c (parse_font_spec): Accept font point size in width/height format. 1996-08-23 Markku Rossi * util.c (read_config): New config file option TOCFormat. * psgen.c (process_file): Implemented user-definable format strings for TOC entries. * main.c: New option --slice to print vertical slices of input files. 1996-08-05 Markku Rossi * main.c: New option --file-align=ALIGN to align separate input files to even ALIGN page count. 1996-07-24 Markku Rossi * main.c: New option --toc to print the Table of Contents. 1996-07-17 Markku Rossi * Release enscript-1.4.0. 1996-06-16 Markku Rossi * psgen.c (get_next_token): Fixed line number counting for truncated lines. (paste_epsf): Fixed a bug which printed EPS images to pages which didn't belong to any of the requested page ranges. * main.c (main): Added new configuration file: SYSCONFDIR/enscriptsite.cfg. This is intended for the site-specific configuration whereas the global configuration file SYSCONFDIR/enscript.cfg is for the global defaults. Site-configuration file is never overwritten by installing a new version of enscript so it is a safe place to store site-specific media etc. definitions. 1996-06-13 Markku Rossi * main.c (handle_options): New option `--printer-options' to pass extra options to the printer command. * psgen.c (process_file): Count shade-box's position from the font's FontBBox value. (process_file): New escape `ps' to add raw PostScript code to the output. * main.c: New option --filter=STR, -I STR which sets the input filter for source files. 1996-05-24 Markku Rossi * util.c (read_config): New config file option `FormFeedType' to specify what to do when a formfeed character is encountered from input. * psgen.c (read_special_escape): Cleaned up special escapes parsing. (read_special_escape): New escapes: `newpage', `setfilename' and `setpagenumber'. * util.c (read_config): New config option `AcceptCompositeCharacters' to specify whatever we accept PostScript font's composite characters or should we consider them as non-existent. (download_font): Added support for binary-coded .pfb fonts, thanks to Bruce Albrecht . * main.c (long_options): Renamed option --pass-through-ps-files to --pass-through. 1996-05-22 Markku Rossi * psgen.c (process_file): Fixed carriage return character handling. 1996-05-10 Markku Rossi * psgen.c (read_special_escape): New special escape `shade' to highlight regions of text. * main.c (usage): Cleaned up --help messages. 1996-05-09 Markku Rossi * util.c (read_config): New configuration file option: EscapeChar. 1996-05-07 Markku Rossi * util.c (read_config): New config file option `UnderlayStyle' to specify the underlay printing style. * main.c: New option: -j, --borders to print borders around columns. (long_options): New option --ul-style to specify the underlay printing style. 1996-05-02 Markku Rossi * util.c (read_font_info): Added AFM cache to speedup font-escape processing. * psgen.c (print_line_number): Don't print line numbers for wrapped lines. 1996-04-22 Markku Rossi * util.c (format_user_string): New directive `%H' for the document title. * main.c: Changed option -e, --escapes to take an optional argument which specifies the escape character. 1996-04-01 Markku Rossi * psgen.c (process_file): Now ^@font{} escapes work over page boundaries. 1996-03-27 Markku Rossi * main.c (main): New option -a, --pages to select which pages are printed. 1996-03-26 Markku Rossi * util.c (format_user_string): New option: `$=' number of pages in the current input file. * psgen.c (process_file): Added diversions to count the total pages within a file (%Format: $=). 1996-03-12 Markku Rossi * main.c (handle_options): Changed option -l, --lineprinter to print 66 lines per page instead of 65 lines. * util.c (read_config): New config file option: PagePrefeed. * main.c (main): New options: -k, --page-prefeed, -K, --no-page-prefeed. 1996-03-07 Markku Rossi * util.c (format_user_string): New escape: $(ENVVAR). 1996-03-05 Markku Rossi * util.c (read_config): New config file options: HighlightBars and HighLightBarGray. * main.c: New option: -H, --highlight-bars and --highlight-bar-gray to control the highlight bar printing. 1996-03-01 Markku Rossi * main.c: New option: -h, --no-job-header to suppress the job header page. (main): Changed option --title to set the name of stdin. 1996-02-29 Markku Rossi * Added support for the automatic de-ANSI-fication. * Renamed package to enscript. 1996-02-25 Markku Rossi * main.c (main): changed stdin's name to be an empty string instead of "(stdin)". This is how Adobe's enscript does it. 1996-02-23 Markku Rossi * main.c (main): Added environment variable GENSCRIPT_LIBRARY which can be used to overwrite the build-in library path. * psgen.c (read_special_escape): fixed a bug which caused pipes to the EPS files to be closed with fclose(). 1996-02-21 Markku Rossi * Makefile.in (exec_prefix): fixed to honor the value given by the configure script. 1996-02-20 Markku Rossi * Added hp8 (HP Roman-8) encoding. 1996-02-19 Markku Rossi * Release genscript-1.3.0. * main.c (main): New config file option `AppendCtrlD' which can be used to append the ^D character to the end of the output. * psgen.c (do_pass_through_ps_file): added pass-through for the PCL files. 1996-02-08 Markku Rossi * util.c (read_config): New config file option `Clean7Bit' to specify how characters greater than 127 are handled. 1996-02-07 Markku Rossi * gsint.h: Implemented unit selection for the `--indent' option. 1996-01-30 Markku Rossi * main.c (main): Now genscript can be used even if it is not installed. * Makefile.in (check): new target 1996-01-25 Markku Rossi * util.c (paste_file): Implemented `%HeaderHeight' and `%FooterHeight' directives. 1996-01-09 Markku Rossi * Finished Win-95/NT port. 1996-01-08 Markku Rossi * First Win-95/NT port with MSC 2.00. * util.c (format_user_string): New options: %N and $%. 1996-01-05 Markku Rossi * psgen.c (dump_ps_header): Removed date and time ps-constants which can now be formatted with the `%Format' directive: - usadatestr = %W - eurdatestr = %E - findatestr = %F - timestr = %C (dump_ps_page_header): Removed fmodstr ps-constant which can now be formatted with the `%Format' directive: - fmodstr = $D{%a %b %e %T %Y} * util.c (format_user_string): Implemented `%Format' directive which can be used to format user defined strings in fancy headers. 1996-01-04 Markku Rossi * main.c: Added pslatin1 encoding (PostScript interpreter's ISOLatin1Encoding). 1996-01-03 Markku Rossi * Created a new Makefile to the compat subdirectory; now genscript does not need a make with the VPATH feature. * main.c (usage): Split usage string to smaller parts wich are printed separately. 1996-01-02 Markku Rossi * main.c: New option: --non-printable-format, NonPrintableFormat. 1995-12-20 Markku Rossi * Added statistics about non-printable character codes. * main.c: New option: -z, --no-formfeed to disable form feed character interpretation. * util.c (do_list_missing_characters): Changed output to go to stderr instead of stdout. 1995-12-19 Markku Rossi * util.c (read_config): New config file options: UnderlayAngle and UnderlayPosition. * main.c (main): New options: --ul-angle and --ul-position. 1995-12-18 Markku Rossi * configure.in (PATH_SEPARATOR): Defined a new constant PATH_SEPARATOR to specify the character which separates path components. Fixed also all uses. * prt_lpr.c: Isolated printer related stuffs to a separate C file to help micro ports. * Makefile.in: Removed pre-defined eps images from the distribution. * util.c (parse_font_spec): Added support for the new `name@ptsize' font specification. 1995-11-28 Markku Rossi * main.c (handle_options): Option -u, --underlay was changed to take an optional argument. If no argument is given, underlay is not printed. * util.c (read_config): New config file option `Underlay' to specify the underlay text. * Makefile.in: Fixed Makefile to obey the GNU Coding Standards. Changed datadir from `prefix/lib' to `prefix/share'. 1995-11-27 Markku Rossi * util.c (read_config): New config file options: UnderlayFont and UnderlayGray * main.c: Renamed long options: --output-file => --output --queue => --printer --tab-size => --tabsize (long_options): made --silent to be an alias for --quiet * utils.c: Renamed config file option `Queue' to `Printer'. 1995-11-08 Markku Rossi * Added latin3 encoding (from the latin3.txt file by Duncan C Thomson). 1995-11-02 Markku Rossi * psgen.c: Fixed a bug which added document headers and trailers to pass-through PostScript files. 1995-10-31 Markku Rossi * Release genscript-1.2.20. 1995-10-27 Markku Rossi * Added option -C, --line-numbers. 1995-10-26 Markku Rossi * Added option -Z, --pass-through-ps-files. 1995-10-24 Markku Rossi * Cleaned up some HTML entity codes in encoding tables. 1995-10-18 Markku Rossi * Added latin2 encoding. 1995-10-10 Markku Rossi * main.c (main): changed fancy header's height from 40 to 36 points. 1995-10-05 Markku Rossi * New config file options: Queue and QueueParam. * genscript.man: minor cleanups. 1995-10-02 Markku Rossi * Release genscript-1.2.1. 1995-09-29 Markku Rossi * main.c: read default options from the GENSCRIPT (and ENSCRIPT) environment variable 1995-09-26 Markku Rossi * font size and baselineskip can be given as a decimal number * psgen.c: Fixed DSC comments, now generated output is DSC 3.0 conforming. 1995-09-21 Markku Rossi * Implemented .pf{a,b} file downloading. 1995-09-20 Markku Rossi * psgen.c (read_special_escape): new option 's' (scale) to specify an explicit scale for an eps image. * psgen.c: fixed epsf escape to start a new column if the specified image does not fit to the current one. 1995-09-18 Markku Rossi * main.c: Fixed some typos. * Added backspace handling. 1995-09-09 Markku Rossi * main.c (main): fixed typos that broke -o and -X options. 1995-09-04 Markku Rossi * Release genscript-1.1.4. * Added option --page-label-format. * psgen.c (dump_ps_header): Added findatestr. (paste_epsf): Fixed paste_epsf()'s EPS file recognization. 1995-08-30 Markku Rossi * Added options -u, --underlay, --ul-gray and --ul-font. * psgen.c (read_float): now dimensions can be specified in different units. 1995-08-29 Markku Rossi * Changed PostScript font's default encoding name from 'default' to 'ps'. * New config file option: DefaultOutputMethod. * Added option --indent, -i. * Cleaned up options in manual page, help and code. * Replaced StringSet module with StringHash. * psgen.c (paste_epsf): Now EPS images can be read from command's standard output. 1995-08-24 Markku Rossi * vms.txt: Added VMS multinational input encoding. * mac.txt: Cleaned up character table. * Added options -S, --statusdict and -D, --setpagedevice. 1995-08-23 Markku Rossi * Improved configure to handle more non-ANSI features. * Fixed a declaration bug from compat/strerror.c. * psgen.c (read_float): replaced strtod() with atof(). * xalloc.c (xrealloc): do an explicit malloc() if old pointer is NULL. * ibmpc.txt: Cleaned up character table. * psgen.c (get_next_token): control characters are now printed in the escaped form. 1995-08-21 Markku Rossi * Release genscript-1.0.1. 1995-08-17 Markku Rossi * Minor cleanups. 1995-08-15 Markku Rossi * Added option --baseline. * Fixed epsf escape's options. 1995-08-14 Markku Rossi * Added support for AFM files. 1995-08-09 Markku Rossi * Added option --newline to select the newline character. * Cleaned up character set tables. 1995-08-07 Markku Rossi * Added Mac input encoding. 1995-08-03 Markku Rossi * New special escapes: 'font' and 'comment'. * New option --tab-size=NUM, -T NUM to define tab expansion size. * General code and document cleanups. 1995-07-31 Markku Rossi * Added support for --copies option. Now it really works. * util.c (paste_file): parses '%%DocumentNeededResources:' comments * Added options --font and --header-font. 1995-07-27 Markku Rossi * psgen.c (paste_epsf): now eps files are also looked up from libpath. (read_special_escape): epsf: added option 'r'. 1995-07-26 Markku Rossi * psgen.c: added support for inlined EPS-files. 1995-07-25 Markku Rossi * Added IBM PC input encoding. Copyright (C) 1995, 1996, 1997, 1998, 1999, 2008 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. enscript-1.6.5.90/src/mkafmmap.c0000644000175000017500000001106111606320460013243 00000000000000/* * Create font map for AFM files. * Copyright (c) 1995, 1996, 1997 Markku Rossi. * * Author: Markku Rossi */ /* * This file is part of GNU Enscript. * * Enscript is free software: you can redistribute 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. * * Enscript is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Enscript. If not, see . */ #ifdef HAVE_CONFIG_H #include #endif #include #if HAVE_STDLIB_H #include #endif #if HAVE_STRING_H #include #endif #include "gettext.h" #define _(String) gettext (String) #if HAVE_LC_MESSAGES #include #endif #include "afm.h" #include "getopt.h" /* * Definitions. */ #define HANDLE_ERROR(msg) \ if (error != AFM_SUCCESS) \ { \ char buf[256]; \ afm_error_to_string (error, buf); \ fprintf (stderr, "%s: %s: %s\n", program, msg, buf); \ exit (1); \ } /* * Prototypes for static functions. */ static void usage (); /* * Static variables. */ /* Options. */ /* * --output-file, -p * * The name of the file to which font map is stored. If name is NULL, * leaves output to stdout. */ static char *fname = "font.map"; static char *program; static struct option long_options[] = { {"output-file", required_argument, 0, 'p'}, {"help", no_argument, 0, 'h'}, {"version", no_argument, 0, 'V'}, {NULL, 0, 0, 0}, }; /* * Global functions. */ int main (int argc, char *argv[]) { AFMError error; AFMHandle afm; AFMFont font; int i; FILE *ofp; FILE *mfp; program = strrchr (argv[0], '/'); if (program == NULL) program = argv[0]; else program++; /* Make getopt_long() to use our modified programname. */ argv[0] = program; /* Internationalization. */ #if HAVE_SETLOCALE #if HAVE_LC_MESSAGES setlocale (LC_MESSAGES, ""); #endif #endif #if ENABLE_NLS bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); #endif /* Handle arguments. */ while (1) { int option_index = 0; int c; c = getopt_long (argc, argv, "p:h", long_options, &option_index); if (c == -1) break; switch (c) { case 'h': /* help */ usage (); exit (0); case 'p': /* output file */ /* Check output file "-". */ if (strcmp (optarg, "-") == 0) fname = NULL; else fname = optarg; break; case 'V': /* version number */ printf ("%s for GNU %s %s\n", program, PACKAGE, VERSION); exit (0); break; case '?': /* errors in arguments */ usage (); exit (1); break; } } /* Open output file. */ printf (_("file=%s\n"), fname ? fname : _("stdout")); if (fname) { ofp = fopen (fname, "w"); if (ofp == NULL) { char buf[256]; sprintf (buf, _("%s: couldn't open output file \"%s\""), program, fname); perror (buf); exit (1); } mfp = stdout; } else { ofp = stdout; mfp = stderr; } error = afm_create (NULL, 0, &afm); HANDLE_ERROR (_("couldn't create AFM library")); for (i = optind; i < argc; i++) { fprintf (mfp, "%s...\n", argv[i]); error = afm_open_file (afm, AFM_I_MINIMUM, argv[i], &font); if (error == AFM_SUCCESS) { char *cp; char *sf; int len; cp = strrchr (argv[i], '/'); if (cp == NULL) cp = argv[i]; else cp++; sf = strrchr (argv[i], '.'); if (sf) len = sf - cp; else len = strlen (cp); fprintf (ofp, "%-30s\t%.*s\n", font->global_info.FontName, len, cp); (void) afm_close_font (font); } else { char buf[256]; afm_error_to_string (error, buf); fprintf (mfp, "%s: %s\n", program, buf); } } if (fname) fclose (ofp); return 0; } /* * Static functions. */ static void usage () { printf (_("\ Usage: %s [OPTION]... FILE...\n\ Mandatory arguments to long options are mandatory for short options too.\n\ -h, --help print this help and exit\n\ -p, --output-file=NAME print output to file NAME (default file is\n\ font.map). If FILE is `-', leavy output to\n\ stdout.\n\ -V, --version print version number\n"), program); } enscript-1.6.5.90/src/prt_dos.c0000644000175000017500000000644111133214772013135 00000000000000/* * Printer interface for DOS. * Copyright (c) 1996-2001 Markku Rossi. * * Author: Markku Rossi */ /* * This file is part of GNU Enscript. * * Enscript is free software: you can redistribute 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. * * Enscript is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Enscript. If not, see . */ #include "gsint.h" /************************** Types and definitions ***************************/ struct PrinterCtxRec { /* Output stream. */ FILE *fp; /* If using temporary file, this is its name. */ char tmpfile[512]; /* Command to spool the temporary output. This is NULL if we already spooled the output to `fp' and there is no post-processing to do. */ Buffer *command; }; typedef struct PrinterCtxRec PrinterCtxStruct; typedef struct PrinterCtxRec *PrinterCtx; /***************************** Global functions *****************************/ FILE * printer_open(char *cmd, char *options, char *queue_param, char *printer_name, void **context_return) { PrinterCtx ctx; ctx = xcalloc(1, sizeof(*ctx)); if (cmd && cmd[0]) { if (tmpnam(ctx->tmpfile) == NULL) FATAL((stderr, _("could not create temporary spool file name: %s"), strerror(errno))); /* Spool output to a temporary file and spool with with command when the printer is closed. */ ctx->command = buffer_alloc(); buffer_append(ctx->command, cmd); buffer_append(ctx->command, " "); if (options) { buffer_append(ctx->command, options); buffer_append(ctx->command, " "); } if (printer_name) { buffer_append(ctx->command, queue_param); buffer_append(ctx->command, printer_name); buffer_append(ctx->command, " "); } buffer_append(ctx->command, ctx->tmpfile); /* Open the temporary spool file. */ ctx->fp = fopen(ctx->tmpfile, "wb"); if (ctx->fp == NULL) FATAL((stderr, _("Could not open temporary spool file `%s': %s"), ctx->tmpfile, strerror(errno))); } else { /* Just open file pointer to the printer. */ ctx->fp = fopen(printer_name, "wb"); if (ctx->fp == NULL) FATAL((stderr, _("Could not open printer `%s': %s"), printer_name, strerror(errno))); } *context_return = ctx; return ctx->fp; } void printer_close(void *context) { PrinterCtx ctx = (PrinterCtx) context; /* Close the output stream. */ fclose(ctx->fp); /* Do we need to do post-processing (read spooling). */ if (ctx->command) { /* Yes. */ if (system(buffer_ptr(ctx->command)) == -1) FATAL((stderr, _("Could not spool temporary output `%s': %s"), ctx->tmpfile, strerror(errno))); /* We do not need the spool command anymore. */ buffer_free(ctx->command); /* Unlink the temporary output file. */ (void) remove(ctx->tmpfile); } /* Free context. */ xfree(ctx); } enscript-1.6.5.90/src/prt_lpr.c0000644000175000017500000000300211133214772013133 00000000000000/* * Printer interface for popen() / lpr systems. * Copyright (c) 1995-1999 Markku Rossi. * * Author: Markku Rossi */ /* * This file is part of GNU Enscript. * * Enscript is free software: you can redistribute 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. * * Enscript is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Enscript. If not, see . */ #include "gsint.h" /* * Global functions. */ FILE * printer_open(char *cmd, char *options, char *queue_param, char *printer_name, void **context_return) { Buffer pipe_cmd; FILE *fp; buffer_init(&pipe_cmd); buffer_append(&pipe_cmd, cmd); buffer_append(&pipe_cmd, " "); if (options) { buffer_append(&pipe_cmd, options); buffer_append(&pipe_cmd, " "); } if (printer_name) { buffer_append(&pipe_cmd, queue_param); buffer_append(&pipe_cmd, printer_name); } fp = popen(buffer_ptr(&pipe_cmd), "w"); buffer_uninit(&pipe_cmd); *context_return = fp; return fp; } void printer_close(void *context) { FILE *fp = (FILE *) context; pclose(fp); } enscript-1.6.5.90/src/psgen.c0000644000175000017500000020077011401303365012573 00000000000000/* * Convert ASCII to PostScript. * Copyright (c) 1995-2002 Markku Rossi. * * Author: Markku Rossi */ /* * This file is part of GNU Enscript. * * Enscript is free software: you can redistribute 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. * * Enscript is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Enscript. If not, see . */ #include #include "gsint.h" #include /* * Types and definitions. */ /* Values for token flags. */ /* EPSF. */ #define F_EPSF_CENTER 0x01 #define F_EPSF_RIGHT 0x02 #define M_EPSF_JUSTIFICATION 0x03 #define F_EPSF_NO_CPOINT_UPDATE_X 0x04 #define F_EPSF_NO_CPOINT_UPDATE_Y 0x08 #define F_EPSF_ABSOLUTE_X 0x10 #define F_EPSF_ABSOLUTE_Y 0x20 #define F_EPSF_SCALE_X 0x40 #define F_EPSF_SCALE_Y 0x80 /* Predicate to check if we are at the correct slice. */ #define CORRECT_SLICE() (slicing == 0 || current_slice == slice) /* Predicates for the current body font. */ /* Is character printable. */ #define ISPRINT(ch) (font_ctype[(unsigned char) (ch)] != ' ') /* Does character exist in current body font? */ #define EXISTS(ch) (font_ctype[(unsigned char) (ch)] == '*') #define RESOURCE_LINE_WIDTH 75 /* Token types. */ typedef enum { tNONE, tEOF, tSTRING, tFORMFEED, tNEWLINE, tCARRIAGE_RETURN, tWRAPPED_NEWLINE, tEPSF, tSETFILENAME, tSETPAGENUMBER, tNEWPAGE, tFONT, tCOLOR, tBGCOLOR, tSAVEX, tLOADX, tPS } TokenType; /* Special escape tokens. */ typedef enum { ESC_COMMENT, ESC_EPSF, ESC_FONT, ESC_COLOR, ESC_BGCOLOR, ESC_NEWPAGE, ESC_SETFILENAME, ESC_SETPAGENUMBER, ESC_SHADE, ESC_BGGRAY, ESC_ESCAPE, ESC_SAVEX, ESC_LOADX, ESC_PS } SpecialEscape; /* Token structure. */ struct gs_token_st { TokenType type; unsigned int flags; double new_x; /* Current point x after this token. */ double new_y; /* Current point y after this token. */ int new_col; /* Line column after this token. */ union { int i; char *str; struct { double x; /* x-offset */ double y; /* y-offset */ double w; /* width */ double h; /* height */ double xscale; double yscale; int llx, lly, urx, ury; /* Bounding box. */ char filename[PATH_MAX]; char *skipbuf; unsigned int skipbuf_len; unsigned int skipbuf_pos; FILE *fp; /* File from which eps image is read. */ int pipe; /* Is opened to pipe? */ } epsf; Color color; Color bgcolor; struct { char name[PATH_MAX]; FontPoint size; InputEncoding encoding; } font; char filename[PATH_MAX]; } u; }; typedef struct gs_token_st Token; /* * Prototypes for static functions. */ static void get_next_token ___P ((InputStream *is, double linestart, double linepos, unsigned int col, double linew, Token *token)); static void dump_ps_page_header ___P ((char *fname, int empty)); static void dump_ps_page_trailer (); static void dump_empty_page (); /* * Recognize a EPS file described by . Returns 1 if file was a * valid EPS file or 0 otherwise. File is accepted if it starts with * the PostScript magic `%!' and it has a valid `%%BoundingBox' DSC * comment. */ static int recognize_eps_file ___P ((Token *token)); /* * Insert EPS file described by to the output stream. */ static void paste_epsf ___P ((Token *token)); /* * Check if InputStream contains a file which can be passed * through without any modifications. Returns 1 if file was passed or * 0 otherwise. */ static int do_pass_through ___P ((char *fname, InputStream *is)); /* * Read one float dimension from InputStream . If is * true, number can be followed by an optional unit specifier. If * is true, dimension is horizontal, otherwise it is * vertical (this is used to find out how big `line' units are). */ static double read_float ___P ((InputStream *is, int units, int horizontal)); /* * Print linenumber to the beginning of the current line. * Current line start is specified by point (x, y). */ static void print_line_number ___P ((double x, double y, double space, double margin, unsigned int linenum)); /* Send PostScript to the output file. */ #define OUTPUT(body) \ do { \ if (cofp == NULL) \ cofp = ofp; \ if (do_print) \ fprintf body; \ } while (0) /* Divert output to tmp file so the total page count can be counted. */ static void divert (); /* Paste diverted data to the output and patch the total page counts. */ static void undivert (); /* * Handle two-side printing related binding options. This function is * called once for each even-numbered page. */ static void handle_two_side_options (); /* * Global variables. */ unsigned int current_pagenum = 0; /* The number of the current page. */ unsigned int total_pages_in_file; unsigned int input_filenum = 0; unsigned int current_file_linenum; int first_pagenum_for_file; char *fname = NULL; /* The name of the current input file. */ /* * Static variables */ /* Have we dumped PS header? */ static int ps_header_dumped = 0; /* Divert file. */ static FILE *divertfp = NULL; /* Current output() file. */ static FILE *cofp = NULL; /* To print or not to print, that's a question. */ static int do_print = 1; /* Is ^@font{}-defined font active? */ static int user_fontp = 0; /* The user ^@font{}-defined font. */ static char user_font_name[PATH_MAX]; static FontPoint user_font_pt; static InputEncoding user_font_encoding; /* Is ^@color{}-defined color active? */ static int user_colorp = 0; /* The user ^@color{}-defined color. */ static Color user_color; /* Is ^@bgcolor{}-defined color active? */ static int user_bgcolorp = 0; /* The user ^@bgcolor{}-defined color. */ static Color user_bgcolor; /* The last linenumber printed by print_line_number(). */ static unsigned int print_line_number_last; /* Registers to store X-coordinates with the ^@savex{} escape. Initially these are uninitialized. */ static double xstore[256]; /* * Global functions. */ void dump_ps_header () { char *cp, *cp2; int i, j, got; char *ps_version_string; /* Version string for PS procsets. */ /* Dump PS header only once. */ if (ps_header_dumped) return; ps_header_dumped = 1; /* Create version string. */ ps_version_string = xstrdup (VERSION); cp = strrchr (ps_version_string, '.'); *cp = ' '; /* * Header. */ OUTPUT ((cofp, "%s\n", output_first_line)); OUTPUT ((cofp, "%%%%BoundingBox: %d %d %d %d\n", media->llx, media->lly, media->urx, media->ury)); OUTPUT ((cofp, "%%%%Title: %s\n", title)); OUTPUT ((cofp, "%%%%For: %s\n", passwd->pw_gecos)); OUTPUT ((cofp, "%%%%Creator: %s\n", PACKAGE_STRING)); OUTPUT ((cofp, "%%%%CreationDate: %s\n", date_string)); OUTPUT ((cofp, "%%%%Orientation: %s\n", ((nup > 1) && nup_landscape) || ((nup == 1) && landscape) ? "Landscape" : "Portrait")); OUTPUT ((cofp, "%%%%Pages: (atend)\n")); OUTPUT ((cofp, "%%%%DocumentMedia: %s %d %d 0 () ()\n", media->name, media->w, media->h)); OUTPUT ((cofp, "%%%%DocumentNeededResources: (atend)\n")); if (count_key_value_set (pagedevice) > 0) OUTPUT ((cofp, "%%%%LanguageLevel: 2\n")); OUTPUT ((cofp, "%%%%EndComments\n")); /* * Procedure Definitions. */ OUTPUT ((cofp, "%%%%BeginProlog\n")); /* Prolog. */ OUTPUT ((cofp, "%%%%BeginResource: procset Enscript-Prolog %s\n", ps_version_string)); if (!paste_file ("enscript", ".pro")) FATAL ((stderr, _("couldn't find prolog \"%s\": %s\n"), "enscript.pro", strerror (errno))); OUTPUT ((cofp, "%%%%EndResource\n")); /* Encoding vector. */ OUTPUT ((cofp, "%%%%BeginResource: procset Enscript-Encoding-%s %s\n", encoding_name, ps_version_string)); if (!paste_file (encoding_name, ".enc")) FATAL ((stderr, _("couldn't find encoding file \"%s.enc\": %s\n"), encoding_name, strerror (errno))); OUTPUT ((cofp, "%%%%EndResource\n")); OUTPUT ((cofp, "%%%%EndProlog\n")); /* * Document Setup. */ OUTPUT ((cofp, "%%%%BeginSetup\n")); /* Download fonts. */ for (got = strhash_get_first (download_fonts, &cp, &j, (void **) &cp2); got; got = strhash_get_next (download_fonts, &cp, &j, (void **) &cp2)) download_font (cp); /* For each required font, emit %%IncludeResouce comment. */ for (got = strhash_get_first (res_fonts, &cp, &j, (void **) &cp2); got; got = strhash_get_next (res_fonts, &cp, &j, (void **) &cp2)) OUTPUT ((cofp, "%%%%IncludeResource: font %s\n", cp)); OUTPUT ((cofp, "/HFpt_w %g def\n", HFpt.w)); OUTPUT ((cofp, "/HFpt_h %g def\n", HFpt.h)); /* Select our fonts. */ /* Header font HF. */ OUTPUT ((cofp, "/%s /HF-gs-font MF\n", HFname)); OUTPUT ((cofp, "/HF /HF-gs-font findfont [HFpt_w 0 0 HFpt_h 0 0] makefont def\n")); /* Our default typing font F. */ OUTPUT ((cofp, "/%s /F-gs-font MF\n", Fname)); OUTPUT ((cofp, "/F-gs-font %g %g SF\n", Fpt.w, Fpt.h)); /* Underlay. */ if (underlay != NULL) { OUTPUT ((cofp, "/ul_str (%s) def\n", underlay)); OUTPUT ((cofp, "/ul_w_ptsize %g def\n", ul_ptsize.w)); OUTPUT ((cofp, "/ul_h_ptsize %g def\n", ul_ptsize.h)); OUTPUT ((cofp, "/ul_gray %g def\n", ul_gray)); OUTPUT ((cofp, "/ul_x %g def\n", ul_x)); OUTPUT ((cofp, "/ul_y %g def\n", ul_y)); OUTPUT ((cofp, "/ul_angle %g def\n", ul_angle)); OUTPUT ((cofp, "/ul_style %d def\n", ul_style)); OUTPUT ((cofp, "/%s /F-ul-font MF\n", ul_font)); OUTPUT ((cofp, "/ul_font /F-ul-font findfont \ [ul_w_ptsize 0 0 ul_h_ptsize 0 0] makefont def\n")); } /* Number of copies. */ OUTPUT ((cofp, "/#copies %d def\n", num_copies)); /* Page prefeed. */ if (page_prefeed) OUTPUT ((cofp, "true page_prefeed\n")); /* Statusdict definitions. */ if (count_key_value_set (statusdict) > 0) { OUTPUT ((cofp, "%% Statustdict definitions:\nstatusdict begin\n ")); i = 2; for (got = strhash_get_first (statusdict, &cp, &j, (void **) &cp2); got; got = strhash_get_next (statusdict, &cp, &j, (void **) &cp2)) { j = strlen (cp) + 1 + strlen (cp2) + 1; if (i + j > RESOURCE_LINE_WIDTH) { OUTPUT ((cofp, "\n ")); i = 2; } OUTPUT ((cofp, "%s %s ", cp2, cp)); i += j; } OUTPUT ((cofp, "\nend\n")); } /* Page device definitions. */ if (pslevel >= 2 && (count_key_value_set (pagedevice) > 0 || generate_PageSize)) { OUTPUT ((cofp, "%% Pagedevice definitions:\n")); OUTPUT ((cofp, "gs_languagelevel 1 gt {\n <<\n ")); i = 4; for (got = strhash_get_first (pagedevice, &cp, &j, (void **) &cp2); got; got = strhash_get_next (pagedevice, &cp, &j, (void **) &cp2)) { j = strlen (cp2) + 1 + strlen (cp) + 2; if (i + j > RESOURCE_LINE_WIDTH) { OUTPUT ((cofp, "\n ")); i = 4; } OUTPUT ((cofp, "/%s %s ", cp, cp2)); i += j; } if (generate_PageSize) { if (i + 21 > RESOURCE_LINE_WIDTH) { OUTPUT ((cofp, "\n ")); i = 4; } OUTPUT ((cofp, "/PageSize [%d %d] ", media->w, media->h)); i += 21; } OUTPUT ((cofp, "\n >> setpagedevice\n} if\n")); } /* * Dump header procset. Header must come after all font inclusions * and enscript's dynamic state definition. */ if (header != HDR_NONE) { char *hdr; if (header == HDR_SIMPLE) hdr = "simple"; else hdr = fancy_header_name; OUTPUT ((cofp, "%%%%BeginResource: procset Enscript-Header-%s %s\n", hdr, ps_version_string)); if (!paste_file (hdr, ".hdr")) FATAL ((stderr, _("couldn't find header definition file \"%s.hdr\": %s\n"), hdr, strerror (errno))); OUTPUT ((cofp, "%%%%EndResource\n")); } /* * Count output width and height here; we can't do it earlier because * header might have just allocated some extra space. */ d_output_w = d_page_w; d_output_h = d_page_h - d_header_h - d_footer_h; /* Dump our current dynamic state. */ OUTPUT ((cofp, "/d_page_w %d def\n", d_page_w)); OUTPUT ((cofp, "/d_page_h %d def\n", d_page_h)); OUTPUT ((cofp, "/d_header_x %d def\n", 0)); OUTPUT ((cofp, "/d_header_y %d def\n", d_output_h + d_footer_h)); OUTPUT ((cofp, "/d_header_w %d def\n", d_header_w)); OUTPUT ((cofp, "/d_header_h %d def\n", d_header_h)); OUTPUT ((cofp, "/d_footer_x %d def\n", 0)); OUTPUT ((cofp, "/d_footer_y %d def\n", 0)); OUTPUT ((cofp, "/d_footer_w %d def\n", d_header_w)); OUTPUT ((cofp, "/d_footer_h %d def\n", d_footer_h)); OUTPUT ((cofp, "/d_output_w %d def\n", d_output_w)); OUTPUT ((cofp, "/d_output_h %d def\n", d_output_h)); OUTPUT ((cofp, "/cols %d def\n", num_columns)); OUTPUT ((cofp, "%%%%EndSetup\n")); } void dump_ps_trailer () { int i, j, got; char *cp; void *value; unsigned int nup_subpage; if (!ps_header_dumped) /* No header, let's be consistent and forget trailer also. */ return; /* The possible pending N-up showpage. */ nup_subpage = (total_pages - 1) % nup; if (nup > 1 && nup_subpage + 1 != nup) /* N-up showpage missing. */ OUTPUT ((cofp, "_R\nS\n")); /* Trailer. */ OUTPUT ((cofp, "%%%%Trailer\n")); if (page_prefeed) OUTPUT ((cofp, "false page_prefeed\n")); OUTPUT ((cofp, "%%%%Pages: %d\n", total_pages)); /* Document needed resources. */ /* fonts. */ OUTPUT ((cofp, "%%%%DocumentNeededResources: font ")); i = 32; /* length of the previous string. */ for (got = strhash_get_first (res_fonts, &cp, &j, &value); got; got = strhash_get_next (res_fonts, &cp, &j, &value)) { if (i + strlen (cp) + 1 > RESOURCE_LINE_WIDTH) { OUTPUT ((cofp, "\n%%%%+ font ")); i = 9; /* length of the previous string. */ } OUTPUT ((cofp, "%s ", cp)); i += strlen (cp) + 1; } OUTPUT ((cofp, "\n%%%%EOF\n")); } void process_file (char *fname_arg, InputStream *is, int is_toc) { int col; double x, y; double lx, ly; double linewidth; /* Line width in points. */ double lineend; int done = 0; int page_clear = 1; unsigned int line_column; unsigned int current_linenum; double linenumber_space = 0; double linenumber_margin = 0; Token token; int reuse_last_token = 0; unsigned int current_slice = 1; int last_wrapped_line = -1; int last_spaced_file_linenum = -1; int save_current_pagenum; int toc_pagenum = 0; /* Save filename. */ xfree (fname); fname = xstrdup (fname_arg); /* Init page number and line counters. */ if (!continuous_page_numbers) current_pagenum = 0; total_pages_in_file = 0; current_file_linenum = start_line_number; /* * Count possible line number spaces. This should be enought for 99999 * lines */ linenumber_space = CHAR_WIDTH ('0') * 5 + 1.0; linenumber_margin = CHAR_WIDTH (':') + CHAR_WIDTH ('m'); /* We got a new input file. */ input_filenum++; /* We haven't printed any line numbers yet. */ print_line_number_last = (unsigned int) -1; if (pass_through || output_language_pass_through) if (do_pass_through (fname, is)) /* All done. */ return; /* We have work to do, let's give header a chance to dump itself. */ dump_ps_header (); /* * Align files to the file_align boundary, this is handy for two-side * printing. */ while ((total_pages % file_align) != 0) { total_pages++; dump_empty_page (); } MESSAGE (1, (stderr, _("processing file \"%s\"...\n"), fname)); linewidth = d_output_w / num_columns - 2 * d_output_x_margin - line_indent; /* Save the current running page number for possible toc usage. */ first_pagenum_for_file = total_pages + 1; /* * Divert our output to a temp file. We will re-process it * afterwards to patch, for example, the number of pages in the * document. */ divert (); /* Process this input file. */ while (!done) { /* Start a new page. */ page_clear = 1; for (col = 0; !done && col < num_columns; col++) { /* Move to the beginning of the column . */ lx = x = col * d_output_w / (float) num_columns + d_output_x_margin + line_indent; lineend = lx + linewidth; ly = y = d_footer_h + d_output_h - d_output_y_margin - LINESKIP; current_linenum = 0; line_column = 0; while (1) { if (line_numbers && line_column == 0 && (current_file_linenum != last_spaced_file_linenum)) { /* Forward x by the amount needed by our line numbers. */ x += linenumber_space + linenumber_margin; last_spaced_file_linenum = current_file_linenum; } /* Get token. */ if (!reuse_last_token) get_next_token (is, lx, x, line_column, lineend, &token); reuse_last_token = 0; /* * Page header printing is delayed to this point because * we want to handle files ending with a newline character * with care. If the last newline would cause a pagebreak, * otherwise we would print page header to the non-existent * next page and that would be ugly ;) */ if (token.type == tEOF) { done = 1; goto end_of_page; } /* * Now we know that we are going to make marks to this page * => print page header. */ if (page_clear) { PageRange *pr; current_pagenum++; total_pages_in_file++; /* Check page ranges. */ if (page_ranges == NULL) do_print = 1; else { do_print = 0; for (pr = page_ranges; pr; pr = pr->next) { if (pr->odd || pr->even) { if ((pr->odd && (current_pagenum % 2) == 1) || (pr->even && (current_pagenum % 2) == 0)) { do_print = 1; break; } } else { if (pr->start <= current_pagenum && current_pagenum <= pr->end) { do_print = 1; break; } } } } if (do_print) total_pages++; if (is_toc) { save_current_pagenum = current_pagenum; toc_pagenum--; current_pagenum = toc_pagenum; } dump_ps_page_header (fname, 0); page_clear = 0; if (is_toc) current_pagenum = save_current_pagenum; } /* Print line highlight. */ if (line_column == 0 && line_highlight_gray < 1.0) OUTPUT ((cofp, "%g %g %g %g %g line_highlight\n", lx, (y - baselineskip + (font_bbox_lly * Fpt.h / UNITS_PER_POINT)), linewidth, Fpt.h + baselineskip, line_highlight_gray)); /* Print line numbers if needed. */ if (line_numbers && line_column == 0 && token.type != tFORMFEED) print_line_number (lx, y, linenumber_space, linenumber_margin, current_file_linenum); /* Check rest of tokens. */ switch (token.type) { case tFORMFEED: switch (formfeed_type) { case FORMFEED_COLUMN: goto end_of_column; break; case FORMFEED_PAGE: goto end_of_page; break; case FORMFEED_HCOLUMN: /* * Advance y-coordinate to the next even * `horizontal_column_height' position. */ { int current_row; current_row = (ly - y) / horizontal_column_height; y = ly - (current_row + 1) * horizontal_column_height; /* Check the end of the page. */ if (y < d_footer_h + d_output_y_margin) goto end_of_column; } break; } break; case tSTRING: if (CORRECT_SLICE ()) { if (bggray < 1.0) { OUTPUT ((cofp, "%g %g %g %g %g (%s) bgs\n", x, y, Fpt.h + baselineskip, baselineskip - (font_bbox_lly * Fpt.h / UNITS_PER_POINT), bggray, token.u.str)); } else if (user_bgcolorp) { OUTPUT ((cofp, "%g %g %g %g %g %g %g (%s) bgcs\n", x, y, Fpt.h + baselineskip, baselineskip - (font_bbox_lly * Fpt.h / UNITS_PER_POINT), user_bgcolor.r, user_bgcolor.g, user_bgcolor.b, token.u.str)); } else { OUTPUT ((cofp, "%g %g M\n(%s) s\n", x, y, token.u.str)); } } x = token.new_x; line_column = token.new_col; break; case tCARRIAGE_RETURN: /* Just reset the x-coordinate. */ x = col * d_output_w / (float) num_columns + d_output_x_margin + line_indent; line_column = 0; break; case tNEWLINE: case tWRAPPED_NEWLINE: if (token.type == tNEWLINE) { current_file_linenum++; current_slice = 1; y -= LINESKIP; } else { current_slice++; if (!slicing) { /* Mark wrapped line marks. */ switch (mark_wrapped_lines_style) { case MWLS_NONE: /* nothing */ break; case MWLS_PLUS: OUTPUT ((cofp, "%g %g M (+) s\n", x, y)); break; default: /* Print some fancy graphics. */ OUTPUT ((cofp, "%g %g %g %g %d wrapped_line_mark\n", x, y, Fpt.w, Fpt.h, mark_wrapped_lines_style)); break; } /* * For wrapped newlines, decrement y only if * we are not slicing the input. */ y -= LINESKIP; } /* Count the wrapped lines here. */ if (!slicing || current_slice > slice) if (current_file_linenum != last_wrapped_line) { if (do_print) num_truncated_lines++; last_wrapped_line = current_file_linenum; } } current_linenum++; if (current_linenum >= lines_per_page || y < d_footer_h + d_output_y_margin) goto end_of_column; x = col * d_output_w / (float) num_columns + d_output_x_margin + line_indent; line_column = 0; break; case tEPSF: /* Count current point movement. */ if (token.flags & F_EPSF_ABSOLUTE_Y) token.new_y = ly; else token.new_y = y; token.new_y += token.u.epsf.y - token.u.epsf.h; if (token.flags & F_EPSF_ABSOLUTE_X) token.new_x = lx; else token.new_x = x; token.new_x += token.u.epsf.x; /* Check flags. */ /* Justification flags overwrite . */ if (token.flags & F_EPSF_CENTER) token.new_x = lx + (linewidth - token.u.epsf.w) / 2; if (token.flags & F_EPSF_RIGHT) token.new_x = lx + (linewidth - token.u.epsf.w); /* Check if eps file does not fit to this column. */ if ((token.flags & F_EPSF_NO_CPOINT_UPDATE_Y) == 0 && token.new_y < d_footer_h + d_output_y_margin) { if (current_linenum == 0) { /* * At the beginning of the column, warn user * and print image. */ MESSAGE (0, (stderr, _("EPS file \"%s\" is too \ large for page\n"), token.u.epsf.filename)); } else { /* Must start a new column. */ reuse_last_token = 1; goto end_of_column; } } /* Do paste. */ if (CORRECT_SLICE ()) paste_epsf (&token); /* Update current point? */ if (!(token.flags & F_EPSF_NO_CPOINT_UPDATE_Y)) y = token.new_y; if (!(token.flags & F_EPSF_NO_CPOINT_UPDATE_X)) x = token.new_x + token.u.epsf.w; if (y < d_footer_h + d_output_y_margin) goto end_of_column; break; case tFONT: /* Select a new current font. */ if (line_column == 0) { double newh; /* Check for possible line skip change. */ if (token.u.font.name[0] == '\0') newh = default_Fpt.h; else newh = token.u.font.size.h; if (newh != Fpt.h) { /* We need a different line skip value. */ y -= (newh - Fpt.h); } /* * We must check for page overflow after we have * set the new font. */ } MESSAGE (2, (stderr, "^@font=")); if (token.u.font.name[0] == '\0') { /* Select the default font. */ Fpt.w = default_Fpt.w; Fpt.h = default_Fpt.h; Fname = default_Fname; encoding = default_Fencoding; OUTPUT ((cofp, "/F-gs-font %g %g SF\n", Fpt.w, Fpt.h)); user_fontp = 0; } else { strhash_put (res_fonts, token.u.font.name, strlen (token.u.font.name) + 1, NULL, NULL); if (token.u.font.encoding == default_Fencoding) OUTPUT ((cofp, "/%s %g %g SUF\n", token.u.font.name, token.u.font.size.w, token.u.font.size.h)); else if (token.u.font.encoding == ENC_PS) OUTPUT ((cofp, "/%s %g %g SUF_PS\n", token.u.font.name, token.u.font.size.w, token.u.font.size.h)); else FATAL ((stderr, _("user font encoding can be only the system's default or `ps'"))); memset (user_font_name, 0, sizeof(user_font_name)); strncpy (user_font_name, token.u.font.name, sizeof(user_font_name) - 1); user_font_pt.w = token.u.font.size.w; user_font_pt.h = token.u.font.size.h; user_font_encoding = token.u.font.encoding; user_fontp = 1; Fpt.w = user_font_pt.w; Fpt.h = user_font_pt.h; Fname = user_font_name; encoding = user_font_encoding; } MESSAGE (2, (stderr, "%s %g/%gpt\n", Fname, Fpt.w, Fpt.h)); read_font_info (); /* * Check for page overflow in that case that we were * at the first column and font were changed to a bigger * one. */ if (y < d_footer_h + d_output_y_margin) goto end_of_column; break; case tCOLOR: /* Select a new color. */ MESSAGE (2, (stderr, "^@color{%f %f %f}\n", token.u.color.r, token.u.color.g, token.u.color.b)); if (token.u.color.r == token.u.color.g && token.u.color.g == token.u.color.b && token.u.color.b == 0.0) { /* Select the default color (black). */ OUTPUT ((cofp, "0 setgray\n")); user_colorp = 0; } else { OUTPUT ((cofp, "%g %g %g setrgbcolor\n", token.u.color.r, token.u.color.g, token.u.color.b)); user_color.r = token.u.color.r; user_color.g = token.u.color.g; user_color.b = token.u.color.b; user_colorp = 1; } break; case tBGCOLOR: /* Select a new background color. */ MESSAGE (2, (stderr, "^@bgcolor{%f %f %f}\n", token.u.color.r, token.u.color.g, token.u.color.b)); if (token.u.color.r == token.u.color.g && token.u.color.g == token.u.color.b && token.u.color.b == 1.0) { /* Select the default bgcolor (white). */ user_bgcolorp = 0; } else { user_bgcolor.r = token.u.color.r; user_bgcolor.g = token.u.color.g; user_bgcolor.b = token.u.color.b; user_bgcolorp = 1; } break; case tSETFILENAME: xfree (fname); fname = xstrdup (token.u.filename); break; case tSETPAGENUMBER: current_pagenum = token.u.i - 1; break; case tNEWPAGE: if (current_linenum >= token.u.i) goto end_of_page; break; case tSAVEX: xstore[(unsigned char) token.u.i] = x; break; case tLOADX: x = xstore[(unsigned char) token.u.i]; break; case tPS: OUTPUT ((cofp, "%g %g M\n%s\n", x, y, token.u.str)); xfree (token.u.str); break; case tNONE: default: FATAL ((stderr, "process_file(): got illegal token %d", token.type)); break; } } end_of_column: ; /* ULTRIX's cc needs this line. */ } end_of_page: if (!page_clear) dump_ps_page_trailer (); } /* * Reset print flag to true so all the required document trailers * etc. get printed properly. */ do_print = 1; /* Undivert our output from the temp file to our output stream. */ undivert (); /* Table of contents? */ if (toc) { char *cp; int save_total_pages = total_pages; /* use first pagenum in file for toc */ total_pages = first_pagenum_for_file; cp = format_user_string ("TOC", toc_fmt_string); fprintf (toc_fp, "%s\n", cp); xfree (cp); total_pages = save_total_pages; } } /* * Static functions. */ /* Help macros. */ /* Check if character fits to current line. */ #define FITS_ON_LINE(ch) ((linepos + CHAR_WIDTH (ch) < linew) || col == 0) /* Is line buffer empty? */ #define BUFFER_EMPTY() (bufpos == 0) /* Unconditionally append character to the line buffer. */ #define APPEND_CHAR(ch) \ do { \ if (bufpos >= buflen) \ { \ buflen += 4096; \ buffer = xrealloc (buffer, buflen); \ } \ buffer[bufpos++] = ch; \ } while (0) /* * Copy character (it fits to this line) to output buffer and * update current point counters. */ #define EMIT(ch) \ do { \ APPEND_CHAR (ch); \ linepos += CHAR_WIDTH (ch); \ col++; \ } while (0) #define UNEMIT(ch) \ do { \ linepos -= CHAR_WIDTH (ch); \ col--; \ } while (0) #define ISSPACE(ch) ((ch) == ' ' || (ch) == '\t') #define ISOCTAL(ch) ('0' <= (ch) && (ch) <= '7') /* Read one special escape from input . */ static struct { char *name; SpecialEscape escape; } escapes[] = { {"comment", ESC_COMMENT}, {"epsf", ESC_EPSF}, {"font", ESC_FONT}, {"color", ESC_COLOR}, {"bgcolor", ESC_BGCOLOR}, {"newpage", ESC_NEWPAGE}, {"ps", ESC_PS}, {"setfilename", ESC_SETFILENAME}, {"setpagenumber", ESC_SETPAGENUMBER}, {"shade", ESC_SHADE}, {"bggray", ESC_BGGRAY}, {"escape", ESC_ESCAPE}, {"savex", ESC_SAVEX}, {"loadx", ESC_LOADX}, {NULL, 0}, }; static void read_special_escape (InputStream *is, Token *token) { char escname[256]; char buf[4096]; int i, e; int ch; /* Get escape name. */ for (i = 0; i < sizeof (escname) - 1 && (ch = is_getc (is)) != EOF; i++) { if (!isalnum (ch)) { is_ungetc (ch, is); break; } else escname[i] = ch; } escname[i] = '\0'; /* Lookup escape. */ for (e = 0; escapes[e].name; e++) if (strcmp (escname, escapes[e].name) == 0) break; if (escapes[e].name == NULL) FATAL ((stderr, _("unknown special escape: %s"), escname)); /* * The epsf escape takes optional arguments so it must be handled * differently. */ if (escapes[e].escape == ESC_EPSF) { int i; int pw, ph; double scale; token->flags = 0; token->u.epsf.x = 0.0; token->u.epsf.y = 0.0; token->u.epsf.h = 0.0; token->u.epsf.pipe = 0; ch = is_getc (is); if (ch == '[') { /* Read options. */ while ((ch = is_getc (is)) != EOF && ch != ']') { switch (ch) { case 'c': /* center justification */ token->flags &= ~M_EPSF_JUSTIFICATION; token->flags |= F_EPSF_CENTER; break; case 'n': /* no current point update */ /* Check the next character. */ ch = is_getc (is); switch (ch) { case 'x': token->flags |= F_EPSF_NO_CPOINT_UPDATE_X; break; case 'y': token->flags |= F_EPSF_NO_CPOINT_UPDATE_Y; break; default: is_ungetc (ch, is); token->flags |= F_EPSF_NO_CPOINT_UPDATE_X; token->flags |= F_EPSF_NO_CPOINT_UPDATE_Y; break; } break; case 'r': /* right justification */ token->flags &= ~M_EPSF_JUSTIFICATION; token->flags |= F_EPSF_RIGHT; break; case 's': /* scale */ /* Check the next character. */ ch = is_getc (is); switch (ch) { case 'x': token->flags |= F_EPSF_SCALE_X; token->u.epsf.xscale = read_float (is, 0, 1); break; case 'y': token->flags |= F_EPSF_SCALE_Y; token->u.epsf.yscale = read_float (is, 0, 0); break; default: is_ungetc (ch, is); token->flags |= F_EPSF_SCALE_X; token->flags |= F_EPSF_SCALE_Y; token->u.epsf.xscale = token->u.epsf.yscale = read_float (is, 0, 1); break; } break; case 'x': /* x-position */ token->u.epsf.x = read_float (is, 1, 1); /* Check the next character. */ ch = is_getc (is); switch (ch) { case 'a': token->flags |= F_EPSF_ABSOLUTE_X; break; default: is_ungetc (ch, is); break; } break; case 'y': /* y-position */ token->u.epsf.y = - read_float (is, 1, 0); /* Check the next character. */ ch = is_getc (is); switch (ch) { case 'a': token->flags |= F_EPSF_ABSOLUTE_Y; break; default: is_ungetc (ch, is); break; } break; case 'h': /* height */ token->u.epsf.h = read_float (is, 1, 0); break; case ' ': case '\t': break; default: FATAL ((stderr, _("illegal option %c for ^@epsf escape"), ch)); } } if (ch != ']') FATAL ((stderr, _("malformed ^@epsf escape: no ']' after options"))); ch = is_getc (is); } if (ch == '{') { /* Read filename. */ for (i = 0; (ch = is_getc (is)) != EOF && ch != '}'; i++) { token->u.epsf.filename[i] = ch; if (i + 1 >= sizeof (token->u.epsf.filename)) FATAL ((stderr, _("too long file name for ^@epsf escape:\n%.*s"), i, token->u.epsf.filename)); } if (ch == EOF) FATAL ((stderr, _("unexpected EOF while scanning ^@epsf escape"))); token->u.epsf.filename[i] = '\0'; token->type = tEPSF; } else FATAL ((stderr, _("malformed ^@epsf escape: no '{' found"))); /* * Now we have a valid epsf-token in . Let's read BoundingBox * and do some calculations. */ if (!recognize_eps_file (token)) /* Recognize eps has already printed error message so we are done. */ token->type = tNONE; else { /* Some fixups for x and y dimensions. */ token->u.epsf.y += LINESKIP - 1; if (token->u.epsf.h != 0.0) token->u.epsf.h -= 1.0; /* Count picture's width and height. */ pw = token->u.epsf.urx - token->u.epsf.llx; ph = token->u.epsf.ury - token->u.epsf.lly; /* The default scale. */ if (token->u.epsf.h == 0.0) scale = 1.0; else scale = token->u.epsf.h / ph; if ((token->flags & F_EPSF_SCALE_X) == 0) token->u.epsf.xscale = scale; if ((token->flags & F_EPSF_SCALE_Y) == 0) token->u.epsf.yscale = scale; pw *= token->u.epsf.xscale; ph *= token->u.epsf.yscale; token->u.epsf.w = pw; token->u.epsf.h = ph; } } else if (escapes[e].escape == ESC_COMMENT) { /* Comment the rest of this line. */ while ((ch = is_getc (is)) != EOF && ch != nl) ; token->type = tNONE; } else { char *cp; int parenlevel; /* * Handle the rest of the escapes. */ /* Read argument. */ ch = is_getc (is); if (ch != '{') FATAL ((stderr, _("malformed %s escape: no '{' found"), escapes[e].name)); parenlevel = 0; for (i = 0; (ch = is_getc (is)) != EOF && (parenlevel > 0 || ch != '}'); i++) { if (ch == '{') parenlevel++; else if (ch == '}') parenlevel--; buf[i] = ch; if (i + 1 >= sizeof (buf)) FATAL ((stderr, _("too long argument for %s escape:\n%.*s"), escapes[e].name, i, buf)); } buf[i] = '\0'; /* And now handle the escape. */ switch (escapes[e].escape) { case ESC_FONT: memset (token->u.font.name, 0, sizeof(token->u.font.name)); strncpy (token->u.font.name, buf, sizeof(token->u.font.name) - 1); /* Check for the default font. */ if (strcmp (token->u.font.name, "default") == 0) token->u.font.name[0] = '\0'; else { if (!parse_font_spec (token->u.font.name, &cp, &token->u.font.size, &token->u.font.encoding)) FATAL ((stderr, _("malformed font spec for ^@font escape: %s"), token->u.font.name)); memset (token->u.font.name, 0, sizeof(token->u.font.name)); strncpy (token->u.font.name, cp, sizeof(token->u.font.name) - 1); xfree (cp); } token->type = tFONT; break; case ESC_COLOR: case ESC_BGCOLOR: /* Check for the default color. */ if (strcmp (buf, "default") == 0) { double val = 0; if (escapes[e].escape == ESC_BGCOLOR) val = 1; token->u.color.r = val; token->u.color.g = val; token->u.color.b = val; } else { int got; got = sscanf (buf, "%g %g %g", &token->u.color.r, &token->u.color.g, &token->u.color.b); switch (got) { case 0: case 2: FATAL ((stderr, _("malformed color spec for ^@%s escape: %s"), escapes[e].escape == ESC_COLOR ? "color" : "bgcolor", buf)); break; case 1: token->u.color.g = token->u.color.b = token->u.color.r; break; default: /* Got all three components. */ break; } } if (escapes[e].escape == ESC_COLOR) token->type = tCOLOR; else token->type = tBGCOLOR; break; case ESC_SHADE: line_highlight_gray = atof (buf); if (line_highlight_gray < 0.0 || line_highlight_gray > 1.0) FATAL ((stderr, _("invalid value for ^@shade escape: %s"), buf)); token->type = tNONE; break; case ESC_BGGRAY: bggray = atof (buf); if (bggray < 0.0 || bggray > 1.0) FATAL ((stderr, _("invalid value for ^@bggray escape: %s"), buf)); token->type = tNONE; break; case ESC_ESCAPE: if (strcmp (buf, "default") == 0) escape_char = default_escape_char; else escape_char = atoi (buf); token->type = tNONE; break; case ESC_SETFILENAME: memset (token->u.filename, 0, sizeof(token->u.filename)); strncpy (token->u.filename, buf, sizeof(token->u.filename) - 1); token->type = tSETFILENAME; break; case ESC_SETPAGENUMBER: token->u.i = atoi (buf); token->type = tSETPAGENUMBER; break; case ESC_NEWPAGE: if (i == 0) token->u.i = 1; /* The default is the first line. */ else token->u.i = atoi (buf); token->type = tNEWPAGE; break; case ESC_SAVEX: token->type = tSAVEX; token->u.i = atoi (buf); break; case ESC_LOADX: token->type = tLOADX; token->u.i = atoi (buf); break; case ESC_PS: token->u.str = xstrdup (buf); token->type = tPS; break; default: /* NOTREACHED */ abort (); break; } } } /* Get next token from input file . */ static void get_next_token (InputStream *is, double linestart, double linepos, unsigned int col, double linew, Token *token) { static unsigned char *buffer = NULL; /* output buffer */ static unsigned int buflen = 0; /* output buffer's length */ unsigned int bufpos = 0; /* current position in output buffer */ int ch = 0; int done = 0; int i; static int pending_token = tNONE; unsigned int original_col = col; if (pending_token != tNONE) { token->type = pending_token; pending_token = tNONE; return; } #define DONE_DONE 1 #define DONE_WRAP 2 while (!done) { ch = is_getc (is); switch (ch) { case EOF: if (BUFFER_EMPTY ()) { token->type = tEOF; return; } done = DONE_DONE; break; case '\r': case '\n': /* * One of these is the newline character and the other one * is carriage return. */ if (ch == nl) { /* The newline character. */ if (BUFFER_EMPTY ()) { token->type = tNEWLINE; return; } else { is_ungetc (ch, is); done = DONE_DONE; } } else { /* The carriage return character. */ if (BUFFER_EMPTY ()) { token->type = tCARRIAGE_RETURN; return; } else { is_ungetc (ch, is); done = DONE_DONE; } } break; case '\t': if (font_is_fixed) { i = tabsize - (col % tabsize); for (; i > 0; i--) { if (FITS_ON_LINE (' ')) EMIT (' '); else { done = DONE_WRAP; break; } } } else { /* Proportional font. */ double grid = tabsize * CHAR_WIDTH (' '); col++; /* Move linepos to the next multiple of . */ linepos = (((int) ((linepos - linestart) / grid) + 1) * grid + linestart); if (linepos >= linew) done = DONE_WRAP; else done = DONE_DONE; } break; case '\f': if (BUFFER_EMPTY ()) { if (interpret_formfeed) token->type = tFORMFEED; else token->type = tNEWLINE; return; } else { is_ungetc (ch, is); done = DONE_DONE; } break; default: /* Handle special escapes. */ if (special_escapes && ch == escape_char) { if (BUFFER_EMPTY ()) { /* Interpret special escapes. */ read_special_escape (is, token); if (token->type != tNONE) return; /* * Got tNONE special escape => read_special_escape() * has already done what was needed. Just read more. */ break; } else { is_ungetc (ch, is); done = DONE_DONE; break; } } /* Handle backspace character. */ if (ch == bs) { if (BUFFER_EMPTY () || !EXISTS (buffer[bufpos - 1])) linepos -= CHAR_WIDTH ('m'); else linepos -= CHAR_WIDTH (buffer[bufpos - 1]); done = DONE_DONE; break; } /* Check normal characters. */ if (EXISTS (ch)) { if (FITS_ON_LINE (ch)) { /* * Print control characters (and optionally * characters greater than 127) in the escaped form * so PostScript interpreter will not hang on them. */ if (ch < 040 || (clean_7bit && ch >= 0200)) { char buf[10]; sprintf (buf, "\\%03o", ch); for (i = 0; buf[i]; i++) APPEND_CHAR (buf[i]); /* Update current point counters manually. */ linepos += CHAR_WIDTH (ch); col++; } else if (ch == '(' || ch == ')' || ch == '\\') { /* These must be quoted in PostScript strings. */ APPEND_CHAR ('\\'); EMIT (ch); } else EMIT (ch); } else { is_ungetc (ch, is); done = DONE_WRAP; } } else if (ISPRINT (ch)) { /* Printable, but do not exists in this font. */ if (FITS_ON_LINE ('?')) { EMIT ('?'); if (missing_chars[ch]++ == 0) num_missing_chars++; } else { is_ungetc (ch, is); done = DONE_WRAP; } } else { char buf[20]; double len = 0.0; /* * Non-printable and does not exist in current font, print * it in the format specified by non_printable_format. */ if (non_printable_chars[ch]++ == 0) num_non_printable_chars++; switch (non_printable_format) { case NPF_SPACE: strcpy (buf, " "); break; case NPF_QUESTIONMARK: strcpy (buf, "?"); break; case NPF_CARET: if (ch < 0x20) { buf[0] = '^'; buf[1] = '@' + ch; buf[2] = '\0'; break; } /* FALLTHROUGH */ case NPF_OCTAL: sprintf (buf, "\\%03o", ch); break; } /* Count length. */ for (i = 0; buf[i]; i++) len += CHAR_WIDTH (buf[i]); if (linepos + len < linew || col == 0) { /* Print it. */ for (i = 0; buf[i]; i++) { if (buf[i] == '\\') APPEND_CHAR ('\\'); /* Escape '\\' characters. */ EMIT (buf[i]); } } else { is_ungetc (ch, is); done = DONE_WRAP; } } break; } } /* Got a string. */ /* Check for wrapped line. */ if (done == DONE_WRAP) { /* This line is too long. */ ch = nl; if (line_end == LE_TRUNCATE) { /* Truncate this line. */ while ((ch = is_getc (is)) != EOF && ch != nl) ; } else if (!BUFFER_EMPTY () && line_end == LE_WORD_WRAP) { int w; if (ISSPACE (buffer[bufpos - 1])) { /* Skip all whitespace from the end of the wrapped line. */ while ((w = is_getc (is)) != EOF && ISSPACE (w)) ; is_ungetc (w, is); } else { /* Find the previous word boundary for the wrap. */ for (w = bufpos - 1; w >= 0 && !ISSPACE (buffer[w]); w--) ; w++; if (w > 0 || original_col > 0) { /* * Ok, we found a word boundary. Now we must unemit * characters from the buffer to the intput stream. * * Note: * - bufpos is unsigned integer variable * - some characters are escaped with '\\' * - some characters are printed in octal notation */ do { bufpos--; /* Check for '(', ')' and '\\'. */ if (bufpos > w && (buffer[bufpos] == '(' || buffer[bufpos] == ')' || buffer[bufpos] == '\\') && buffer[bufpos - 1] == '\\') { is_ungetc (buffer[bufpos], is); UNEMIT (buffer[bufpos]); bufpos--; } /* Check the octal notations "\\%03o". */ else if (bufpos - 2 > w && ISOCTAL (buffer[bufpos]) && ISOCTAL (buffer[bufpos - 1]) && ISOCTAL (buffer[bufpos - 2]) && buffer[bufpos - 3] == '\\') { unsigned int ti; /* * It is a potential octal character. Now we * must process the buffer from the beginning * and see if `bufpos - 3' really starts a character. */ for (ti = w; ti < bufpos - 3; ti++) { if (buffer[ti] == '\\') { if (ISOCTAL (buffer[ti + 1])) { unsigned int tti; for (tti = 0; tti < 3 && ISOCTAL (buffer[ti + 1]); tti++, ti++) ; } else /* Simple escape. */ ti++; } } /* * If is equal to , we found * an octal character, otherwise the leading * backslash at belongs to the * previous character. */ if (ti == bufpos - 3) { int tch; tch = (((buffer[bufpos - 2] - '0') << 6) + ((buffer[bufpos - 1] - '0') << 3) + (buffer[bufpos] - '0')); is_ungetc (tch, is); UNEMIT (tch); bufpos -= 3; } else /* Normal character. */ goto unemit_normal; } else { /* Normal character, just unget it. */ unemit_normal: is_ungetc (buffer[bufpos], is); UNEMIT (buffer[bufpos]); } } while (bufpos > w); } } } if (ch == nl) { if (line_end == LE_TRUNCATE) { if (do_print) num_truncated_lines++; pending_token = tNEWLINE; } else pending_token = tWRAPPED_NEWLINE; } else pending_token = tEOF; } APPEND_CHAR ('\0'); token->type = tSTRING; token->u.str = (char *) buffer; token->new_x = linepos; token->new_col = col; } static void dump_ps_page_header (char *fname, int empty) { char *dirc, *basec, *fdir, *ftail; int got, i; char *cp, *cp2; char *cstr = "%%"; unsigned int nup_subpage; /* The N-up printing sub-page. */ nup_subpage = (total_pages - 1) % nup; /* Split fname into fdir and ftail. */ dirc = strdup(fname); basec = strdup(fname); fdir = dirname(dirc); ftail = basename(basec); if (nup > 1) { /* N-up printing is active. */ cstr = "%"; if (nup_subpage == 0) { /* This is a real page start. */ switch (page_label) { case LABEL_SHORT: OUTPUT ((cofp, "%%%%Page: (%d-%d) %d\n", current_pagenum, current_pagenum + nup - 1, total_pages / nup + 1)); break; case LABEL_LONG: OUTPUT ((cofp, "%%%%Page: (%s:%3d-%3d) %d\n", ftail, current_pagenum, current_pagenum + nup - 1, total_pages / nup + 1)); break; } /* Page setup. */ OUTPUT ((cofp, "%%%%BeginPageSetup\n_S\n")); if ((total_pages / nup + 1) % 2 == 0) /* Two-side binding options for the even pages. */ handle_two_side_options (); #define PRINT_BOUNDING_BOXES 0 #if PRINT_BOUNDING_BOXES OUTPUT ((cofp, "%d %d moveto %d %d lineto %d %d lineto %d %d lineto closepath stroke\n", media->llx, media->lly, media->llx, media->ury, media->urx, media->ury, media->urx, media->lly)); #endif if (landscape) { if (nup_landscape) OUTPUT ((cofp, "90 rotate\n%d %d translate\n", media->lly, -media->urx)); else OUTPUT ((cofp, "%d %d translate\n", media->llx, media->lly)); } else { if (nup_landscape) OUTPUT ((cofp, "90 rotate\n%d %d translate\n", media->lly, -media->llx)); else OUTPUT ((cofp, "%d %d translate\n", media->llx, media->ury)); } } } /* Page start comment. */ switch (page_label) { case LABEL_SHORT: OUTPUT ((cofp, "%sPage: (%d) %d\n", cstr, current_pagenum, total_pages)); break; case LABEL_LONG: OUTPUT ((cofp, "%sPage: (%s:%3d) %d\n", cstr, ftail, current_pagenum, total_pages)); break; } /* * Page Setup. */ OUTPUT ((cofp, "%sBeginPageSetup\n_S\n", cstr)); if (nup > 1) { int xm, ym; OUTPUT ((cofp, "%% N-up sub-page %d/%d\n", nup_subpage + 1, nup)); if (landscape) { if (nup_columnwise) { xm = nup_subpage % nup_columns; ym = nup_subpage / nup_columns; } else { xm = nup_subpage / nup_rows; ym = nup_subpage % nup_rows; } OUTPUT ((cofp, "%d %d translate\n", xm * (nup_width + nup_xpad), ym * (nup_height + nup_ypad))); } else { if (nup_columnwise) { xm = nup_subpage / nup_rows; ym = nup_subpage % nup_rows; } else { xm = nup_subpage % nup_columns; ym = nup_subpage / nup_columns; } OUTPUT ((cofp, "%d %d translate\n", xm * (nup_width + nup_xpad), -((int) (ym * (nup_height + nup_ypad) + nup_height)))); } OUTPUT ((cofp, "%g dup scale\n", nup_scale)); /* And finally, the real page setup. */ if (landscape) OUTPUT ((cofp, "90 rotate\n%d %d translate\n", 0, -d_page_h)); } else { /* No N-up printing. */ if (total_pages % 2 == 0) /* Two-side binding options for the even pages. */ handle_two_side_options (); if (landscape) OUTPUT ((cofp, "90 rotate\n%d %d translate\n", media->lly, -media->urx)); else OUTPUT ((cofp, "%d %d translate\n", media->llx, media->lly)); } /* Some constants etc. */ OUTPUT ((cofp, "/pagenum %d def\n", current_pagenum)); cp = escape_string (fname); OUTPUT ((cofp, "/fname (%s) def\n", cp)); xfree (cp); cp = escape_string (fdir); OUTPUT ((cofp, "/fdir (%s) def\n", cp)); xfree (cp); xfree (dirc); cp = escape_string (ftail); OUTPUT ((cofp, "/ftail (%s) def\n", cp)); xfree (cp); xfree (basec); /* Do we have a pending ^@font{} font? */ if (user_fontp) { if (encoding == default_Fencoding) OUTPUT ((cofp, "/%s %g %g SUF\n", Fname, Fpt.w, Fpt.h)); else /* This must be the case. */ OUTPUT ((cofp, "/%s %g %g SUF_PS\n", Fname, Fpt.w, Fpt.h)); } /* Dump user defined strings. */ if (count_key_value_set (user_strings) > 0) { OUTPUT ((cofp, "%% User defined strings:\n")); for (got = strhash_get_first (user_strings, &cp, &i, (void **) &cp2); got; got = strhash_get_next (user_strings, &cp, &i, (void **) &cp2)) { cp2 = format_user_string ("%Format", cp2); OUTPUT ((cofp, "/%s (%s) def\n", cp, cp2)); xfree (cp2); } } /* User supplied header? */ if (page_header) { char *h_left; char *h_center; char *h_right = NULL; h_left = format_user_string ("page header", page_header); h_center = strchr (h_left, '|'); if (h_center) { *h_center = '\0'; h_center++; h_right = strchr (h_center, '|'); if (h_right) { *h_right = '\0'; h_right++; } } OUTPUT ((cofp, "/user_header_p true def\n")); OUTPUT ((cofp, "/user_header_left_str (%s) def\n", h_left)); OUTPUT ((cofp, "/user_header_center_str (%s) def\n", h_center ? h_center : "")); OUTPUT ((cofp, "/user_header_right_str (%s) def\n", h_right ? h_right : "")); xfree (h_left); } else OUTPUT ((cofp, "/user_header_p false def\n")); /* User supplied footer? */ if (page_footer) { char *f_left; char *f_center; char *f_right = NULL; f_left = format_user_string ("page footer", page_footer); f_center = strchr (f_left, '|'); if (f_center) { *f_center = '\0'; f_center++; f_right = strchr (f_center, '|'); if (f_right) { *f_right = '\0'; f_right++; } } OUTPUT ((cofp, "/user_footer_p true def\n")); OUTPUT ((cofp, "/user_footer_left_str (%s) def\n", f_left)); OUTPUT ((cofp, "/user_footer_center_str (%s) def\n", f_center ? f_center : "")); OUTPUT ((cofp, "/user_footer_right_str (%s) def\n", f_right ? f_right : "")); xfree (f_left); } else OUTPUT ((cofp, "/user_footer_p false def\n")); OUTPUT ((cofp, "%%%%EndPageSetup\n")); /* * Mark standard page decorations. */ if (!empty) { /* Highlight bars. */ if (highlight_bars) OUTPUT ((cofp, "%d %f %d %f highlight_bars\n", highlight_bars, LINESKIP, d_output_y_margin, highlight_bar_gray)); /* Underlay. */ if (underlay != NULL) { if (ul_position_p || ul_angle_p) OUTPUT ((cofp, "user_underlay\n")); else OUTPUT ((cofp, "underlay\n")); } /* Column lines. */ if (num_columns > 1 && (header == HDR_FANCY || borders)) OUTPUT ((cofp, "column_lines\n")); /* Borders around columns. */ if (borders) OUTPUT ((cofp, "column_borders\n")); /* Header. */ switch (header) { case HDR_NONE: break; case HDR_SIMPLE: case HDR_FANCY: OUTPUT ((cofp, "do_header\n")); break; } } /* Do we have a pending ^@color{} color? */ if (user_colorp) OUTPUT ((cofp, "%g %g %g setrgbcolor\n", user_color.r, user_color.g, user_color.b)); } static void dump_ps_page_trailer () { unsigned int nup_subpage = (total_pages - 1) % nup; OUTPUT ((cofp, "_R\n")); if (nup > 1) { if (nup_subpage + 1 == nup) /* Real end of page. */ OUTPUT ((cofp, "_R\nS\n")); } else OUTPUT ((cofp, "S\n")); } static void dump_empty_page () { if (nup > 1) { unsigned int nup_subpage = (total_pages - 1) % nup; if (nup_subpage == 0) { /* Real start of the page, must do it the harder way. */ dump_ps_page_header ("", 1); OUTPUT ((cofp, "_R\n")); } else OUTPUT ((cofp, "%%Page: (-) %d\n", total_pages)); if (nup_subpage + 1 == nup) /* This is the last page on this sheet, dump us. */ OUTPUT ((cofp, "_R\nS\n")); } else OUTPUT ((cofp, "%%%%Page: (-) %d\nS\n", total_pages)); } static int recognize_eps_file (Token *token) { int i; char buf[4096]; char *filename; int line; int valid_epsf; float llx, lly, urx, ury; MESSAGE (2, (stderr, "^@epsf=\"%s\"\n", token->u.epsf.filename)); i = strlen (token->u.epsf.filename); /* Read EPS data from file. */ filename = tilde_subst (token->u.epsf.filename); token->u.epsf.fp = fopen (filename, "rb"); xfree (filename); if (token->u.epsf.fp == NULL) { if (token->u.epsf.filename[0] != '/') { /* Name is not absolute, let's lookup path. */ FileLookupCtx ctx; ctx.name = token->u.epsf.filename; ctx.suffix = ""; ctx.fullname = buffer_alloc (); if (pathwalk (libpath, file_lookup, &ctx)) token->u.epsf.fp = fopen (buffer_ptr (ctx.fullname), "rb"); buffer_free (ctx.fullname); } if (token->u.epsf.fp == NULL) { MESSAGE (0, (stderr, _("couldn't open EPS file \"%s\": %s\n"), token->u.epsf.filename, strerror (errno))); return 0; } } /* Find BoundingBox DSC comment. */ line = 0; valid_epsf = 0; token->u.epsf.skipbuf = NULL; token->u.epsf.skipbuf_len = 0; token->u.epsf.skipbuf_pos = 0; while (fgets (buf, sizeof (buf), token->u.epsf.fp)) { line++; /* Append data to the skip buffer. */ i = strlen (buf); if (i + token->u.epsf.skipbuf_pos >= token->u.epsf.skipbuf_len) { token->u.epsf.skipbuf_len += 8192; token->u.epsf.skipbuf = xrealloc (token->u.epsf.skipbuf, token->u.epsf.skipbuf_len); } memcpy (token->u.epsf.skipbuf + token->u.epsf.skipbuf_pos, buf, i); token->u.epsf.skipbuf_pos += i; /* Check the "%!" magic cookie. */ if (line == 1) { if (buf[0] != '%' || buf[1] != '!') { MESSAGE (0, (stderr, _("EPS file \"%s\" does not start with \"%%!\" magic\n"), token->u.epsf.filename)); break; } } #define BB_DSC "%%BoundingBox:" if (strncmp (buf, BB_DSC, strlen (BB_DSC)) == 0) { i = sscanf (buf + strlen (BB_DSC), "%f %f %f %f", &llx, &lly, &urx, &ury); if (i != 4) { /* (atend) ? */ /* Skip possible whitespace. */ for (i = strlen (BB_DSC); buf[i] && (buf[i] == ' ' || buf[i] == '\t'); i++) ; #define BB_DSC_ATEND "(atend)" if (strncmp (buf + i, BB_DSC_ATEND, strlen (BB_DSC_ATEND)) != 0) { /* No, this BoundingBox comment is corrupted. */ MESSAGE (0, (stderr, _("EPS file \"%s\" contains malformed \ %%%%BoundingBox row:\n\"%.*s\"\n"), token->u.epsf.filename, strlen (buf) - 1, buf)); break; } } else { /* It was a valid EPS file. */ /* We store bounding box in int format. */ token->u.epsf.llx = llx; token->u.epsf.lly = lly; token->u.epsf.urx = urx; token->u.epsf.ury = ury; valid_epsf = 1; break; } } } /* Check that we found the BoundingBox comment. */ if (!valid_epsf) { MESSAGE (0, (stderr, _("EPS file \"%s\" is not a valid EPS file\n"), token->u.epsf.filename)); if (token->u.epsf.pipe) pclose (token->u.epsf.fp); else fclose (token->u.epsf.fp); xfree (token->u.epsf.skipbuf); return 0; } MESSAGE (2, (stderr, "BoundingBox: %d %d %d %d\n", token->u.epsf.llx, token->u.epsf.lly, token->u.epsf.urx, token->u.epsf.ury)); return 1; } static void paste_epsf (Token *token) { char buf[4096]; int i; /* EPSF import header. */ OUTPUT ((cofp, "BeginEPSF\n")); OUTPUT ((cofp, "%g %g translate\n", token->new_x, token->new_y)); OUTPUT ((cofp, "%g %g scale\n", token->u.epsf.xscale, token->u.epsf.yscale)); OUTPUT ((cofp, "%d %d translate\n", -token->u.epsf.llx, -token->u.epsf.lly)); OUTPUT ((cofp, "%d %d %d %d Box clip newpath\n", token->u.epsf.llx - 1, token->u.epsf.lly - 1, token->u.epsf.urx - token->u.epsf.llx + 2, token->u.epsf.ury - token->u.epsf.lly + 2)); OUTPUT ((cofp, "%%%%BeginDocument: %s%s\n", token->u.epsf.filename, token->u.epsf.pipe ? "|" : "")); if (do_print) { /* Dump skip buffer. */ fwrite (token->u.epsf.skipbuf, 1, token->u.epsf.skipbuf_pos, cofp); /* Dump file. */ while ((i = fread (buf, 1, sizeof (buf), token->u.epsf.fp)) != 0) fwrite (buf, 1, i, cofp); } /* Add a newline to keep comments correct */ OUTPUT ((cofp, "\n")); /* EPSF import trailer. */ OUTPUT ((cofp, "%%%%EndDocument\nEndEPSF\n")); /* Cleanup. */ if (token->u.epsf.pipe) pclose (token->u.epsf.fp); else fclose (token->u.epsf.fp); xfree (token->u.epsf.skipbuf); } static double read_float (InputStream *is, int units, int horizontal) { char buf[256]; int i, ch; double val; for (i = 0; (i < sizeof (buf) - 1 && (ch = is_getc (is)) != EOF && ISNUMBERDIGIT (ch)); i++) buf[i] = ch; buf[i] = '\0'; if (ch != EOF) is_ungetc (ch, is); val = atof (buf); if (units) { /* Get unit. */ ch = is_getc (is); switch (ch) { case 'c': /* centimeters */ val *= 72 / 2.54; break; case 'p': /* PostScript points */ break; case 'i': /* inches */ val *= 72; break; default: is_ungetc (ch, is); /* FALLTHROUGH */ case 'l': /* lines or characters */ if (horizontal) val *= CHAR_WIDTH ('m'); else val *= LINESKIP; break; } } return val; } /* Magics used to recognize different pass-through files. */ static struct { char *magic; unsigned int magiclen; char *name; int revert_delta; } pass_through_magics[] = { {"%!", 2, "PostScript", -2}, {"\004%!", 3, "PostScript", -2}, {"\033E", 2, "PCL", -2}, {"\033%", 2, "PCL", -2}, {NULL, 0, NULL, 0}, }; static int do_pass_through (char *fname, InputStream *is) { int ch; unsigned long saved_pos = is->bufpos; int i, j; if (output_language_pass_through) MESSAGE (1, (stderr, _("passing through all input files for output language `%s'\n"), output_language)); else { /* * Try to recognize pass-through files. */ for (i = 0; pass_through_magics[i].magic; i++) { for (j = 0; j < pass_through_magics[i].magiclen; j++) { ch = is_getc (is); if (ch == EOF || ch != (unsigned char) pass_through_magics[i].magic[j]) break; } if (j >= pass_through_magics[i].magiclen) /* The th one matched. */ break; /* * Try the next one, but first, seek the input stream to its * start. */ is->bufpos = saved_pos; } /* Did we find any? */ if (pass_through_magics[i].magic == NULL) /* No we didn't. */ return 0; /* Yes, it really is a pass-through file. Now do the pass through. */ is->bufpos += pass_through_magics[i].revert_delta; if (ps_header_dumped) { /* A pass-through file between normal ASCII files, obey DSC. */ /* * XXX I don't know how to handle PCL files... Let's hope none * mixes them with the normal ASCII files. */ OUTPUT ((cofp, "%%%%Page: (%s) -1\n_S\n%%%%BeginDocument: %s\n", fname, fname)); } MESSAGE (1, (stderr, _("passing through %s file \"%s\"\n"), pass_through_magics[i].name, fname)); } /* And now, do the actual pass-through. */ do { /* Note: this will be written directly to the . */ fwrite (is->buf + is->bufpos, 1, is->data_in_buf - is->bufpos, ofp); is->bufpos = is->data_in_buf; /* Read more data to the input buffer. */ ch = is_getc (is); is->bufpos = 0; } while (ch != EOF); if (!output_language_pass_through) { if (ps_header_dumped) /* * XXX How to end a PCL file mixed between ASCII files? */ OUTPUT ((cofp, "%%%%EndDocument\n_R\n")); } return 1; } static void print_line_number (double x, double y, double space, double margin, unsigned int linenum) { double len = 0.0; char buf[20]; int i; char *saved_Fname = ""; FontPoint saved_Fpt; InputEncoding saved_Fencoding; saved_Fpt.w = 0.0; saved_Fpt.h = 0.0; /* Do not print linenumbers for wrapped lines. */ if (linenum == print_line_number_last) return; print_line_number_last = linenum; if (user_fontp) { /* Re-select our default typing font. */ saved_Fname = Fname; saved_Fpt.w = Fpt.w; saved_Fpt.h = Fpt.h; saved_Fencoding = encoding; Fname = default_Fname; Fpt.w = default_Fpt.w; Fpt.h = default_Fpt.h; encoding = default_Fencoding; OUTPUT ((cofp, "/F-gs-font %g %g SF\n", Fpt.w, Fpt.h)); read_font_info (); } /* Count linenumber string length. */ sprintf (buf, "%d", linenum); for (i = 0; buf[i]; i++) len += CHAR_WIDTH (buf[i]); /* Print line numbers. */ OUTPUT ((cofp, "%g %g M (%s:) s\n", x + space - len, y, buf)); if (user_fontp) { /* Switch back to the user font. */ Fname = saved_Fname; Fpt.w = saved_Fpt.w; Fpt.h = saved_Fpt.h; encoding = saved_Fencoding; OUTPUT ((cofp, "/%s %g %g SUF\n", Fname, Fpt.w, Fpt.h)); read_font_info (); } } /* * The name of the divert file, shared between divert() and undivert() * functions. */ static char divertfname[512]; static void divert () { assert (divertfp == NULL); /* Open divert file. */ divertfp = tmpfile (); if (divertfp == NULL) FATAL ((stderr, _("couldn't create temporary divert file: %s"), strerror (errno))); cofp = divertfp; } static void undivert () { char buf[1024]; int doc_level = 0; char *cp; assert (divertfp != NULL); if (fseek (divertfp, 0, SEEK_SET) != 0) FATAL ((stderr, _("couldn't rewind divert file: %s"), strerror (errno))); while (fgets (buf, sizeof (buf), divertfp)) { if (strncmp (buf, "%%BeginDocument", 15) == 0) doc_level++; else if (strncmp (buf, "%%EndDocument", 13) == 0) doc_level--; if (doc_level == 0) { if (strncmp (buf, "% User defined strings", 22) == 0) { fputs (buf, ofp); while (fgets (buf, sizeof (buf), divertfp)) { if (strncmp (buf, "%%EndPageSetup", 14) == 0) break; /* Patch total pages to the user defined strings. */ cp = strchr (buf, '\001'); if (cp) { *cp = '\0'; fputs (buf, ofp); fprintf (ofp, "%d", total_pages_in_file); fputs (cp + 1, ofp); } else fputs (buf, ofp); } } } fputs (buf, ofp); } fclose (divertfp); divertfp = NULL; cofp = ofp; } static void handle_two_side_options () { if (rotate_even_pages) /* Rotate page 180 degrees. */ OUTPUT ((cofp, "180 rotate\n%d %d translate\n", -media->w, -media->h)); if (swap_even_page_margins) OUTPUT ((cofp, "%d 0 translate\n", -(media->llx - (media->w - media->urx)))); } enscript-1.6.5.90/src/main.c0000644000175000017500000020344611606312073012411 00000000000000/* * Argument handling and main. * Copyright (c) 1995-2003 Markku Rossi. * * Author: Markku Rossi */ /* * This file is part of GNU Enscript. * * Enscript is free software: you can redistribute 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. * * Enscript is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Enscript. If not, see . */ #include "gsint.h" #include "getopt.h" /* * Prototypes for static functions. */ /* * Open output file according to user options. Void if output file * has already been opened. */ static void open_output_file (); /* Close output file. */ static void close_output_file (); /* Handle options from environment variable */ static void handle_env_options ___P ((char *var)); /* Handle options from array. */ static void handle_options ___P ((int argc, char *argv[])); /* Print usage info. */ static void usage (); /* Print version info. */ static void version (); /* * Global variables. */ char *program; /* Program's name, used for messages. */ FILE *ofp = NULL; /* Output file. */ void *printer_context; /* Context for the printer. */ char *date_string = NULL; /* Preformatted time string. */ struct tm run_tm; /* Time when program is run. */ struct tm mod_tm; /* Last modification time for current file. */ struct passwd *passwd; /* Passwd entry for the user running this program. */ /* Path to our library. */ char *enscript_library = LIBRARY; /* Library lookup path. */ char *libpath = NULL; /* AFM library lookup path. */ char *afm_path = NULL; MediaEntry *media_names = NULL; /* List of known media. */ MediaEntry *media = NULL; /* Entry for used media. */ int bs = 8; /* The backspace character. */ /* Statistics. */ int total_pages = 0; /* Total number of pages printed. */ int num_truncated_lines = 0; /* Number of lines truncated. */ int num_missing_chars = 0; /* Number of unknown characters. */ int missing_chars[256] = {0}; /* Table of unknown characters. */ int num_non_printable_chars = 0; /* Number of non-printable characters. */ int non_printable_chars[256] = {0}; /* Table of non-printable characters. */ /* Output media dimensions that are used during PostScript emission. */ int d_page_w = 0; /* page's width */ int d_page_h = 0; /* page's height */ int d_header_w = 0; /* fancy header's width */ int d_header_h = 0; /* fancy header's height */ int d_footer_h = 0; /* fancy footer's height */ int d_output_w = 0; /* output area's width */ int d_output_h = 0; /* output area's height */ int d_output_x_margin = 5; /* output area's x marginal */ int d_output_y_margin = 2; /* output area's y marginal */ /* Document needed resources. */ StringHashPtr res_fonts; /* fonts */ /* Fonts to download. */ StringHashPtr download_fonts; /* Additional key-value pairs, passed to the generated PostScript code. */ StringHashPtr pagedevice; /* for setpagedevice */ StringHashPtr statusdict; /* for statusdict */ /* User defined strings. */ StringHashPtr user_strings; /* Cache for AFM files. */ StringHashPtr afm_cache = NULL; StringHashPtr afm_info_cache = NULL; /* AFM library handle. */ AFMHandle afm = NULL; /* Options. */ /* * Free single-letter options are: Q, x, y, Y */ /* * -# * * An alias for -n, --copies. */ /* * -1, -2, -3, -4, -5, -6, -7, -8, -9, --columns=NUM * * Number of columns per page. The default is 1 column. */ int num_columns = 1; /* * -a PAGES, --pages=PAGES * * Specify which pages are printed. */ PageRange *page_ranges = NULL; /* * -A ALIGN, --file-align=ALIGN * * Align input files to start from ALIGN page count. This is handy * for two-side printings. */ unsigned int file_align = 1; /* * -b STRING, --header=STRING * * Set the string that is used as the page header. As a default, page * header is constructed from filename, date and page number. */ char *page_header = NULL; /* * -B, --no-header * * Do not print page headers. */ /* * -c, --truncate-lines * * Truncate lines that are longer than the page width. Default is character * wrap. */ LineEndType line_end = LE_CHAR_WRAP; /* * -C [START], --line-numbers[=START] * * Precede each line with its line number. As a default, do not mark * line numbers. If the optional argument START is given, it * specifies the number from which the line numbers are assumed to * start in the file. This is useful if the file contains a region * of a bigger file. */ int line_numbers = 0; unsigned int start_line_number = 1; /* * -d, -P, --printer * * Name of the printer to which output is send. Defaults to system's * default printer. */ char *printer = NULL; /* * -e [CHAR], --escapes[=CHAR] * * Enable special escape ('\000') interpretation. If option CHAR is given * it is assumed to specify the escape character. */ int special_escapes = 0; int escape_char = '\0'; int default_escape_char; /* * -E [LANG], --highlight=[LANG] (deprecated --pretty-print[=LANG]) * * Highlight program source code. Highlighting is handled by creating * an input filter with the states-program. States makes an educated * guess about the start state but sometimes it fails, so the start * state can also be specified to be LANG. This option overwrites * input filter and enables special escapes. */ int highlight = 0; char *hl_start_state = NULL; /* * -f, --font * * Select body font. */ char *Fname = "Courier"; FontPoint Fpt = {10.0, 10.0}; FontPoint default_Fpt; /* Point size of the original font. */ char *default_Fname; /* Name of the original font. */ InputEncoding default_Fencoding; /* The encoding of the original font. */ int user_body_font_defined = 0; /* Has user defined new body font? */ double font_widths[256]; /* Width array for body font. */ char font_ctype[256]; /* Font character types. */ int font_is_fixed; /* Is body font a fixed pitch font? */ double font_bbox_lly; /* Font's bounding box's lly-coordinate. */ /* * -F, --header-font * * Select font to be used to print the standard simple header. */ char *HFname = "Courier-Bold"; FontPoint HFpt = {10.0, 10.0}; /* * -g, --print-anyway * * Print document even it contains binary data. This does nothing * since enscript prints files anyway. */ /* * -G, --fancy-header * * Add a fancy header to top of every page. There are several header styles * but the default is 'no fancy header'. */ HeaderType header = HDR_SIMPLE; char *fancy_header_name = NULL; char *fancy_header_default = NULL; /* * -h, --no-job-header * * Supress the job header page. */ static int no_job_header = 0; /* * -H num, --highlight-bars=num * * Print highlight bars under text. Bars will be lines high. * As a default, do not print bars. */ unsigned int highlight_bars = 0; /* * -i, --indent * * Indent every line this many characters. */ double line_indent = 0.0; char *line_indent_spec = "0"; /* * -I CMD, --filter=CMD * * Read input files through input filter CMD. */ char *input_filter = NULL; /* * -j, --borders * * Print borders around columns. */ int borders = 0; /* * -J * * An alias for -t, --title. */ /* * -k, --page-prefeed * -K, --no-page-prefeed * * Control page prefeed. */ int page_prefeed = 0; /* * -l, --lineprinter * * Emulate lineprinter - make pages 66 lines long and omit headers. */ /* * -L, --lines-per-page * * Specify how many lines should be printed on a single page. Normally * enscript counts it from font point sizes. */ unsigned int lines_per_page = (unsigned int) -1; /* * -m, --mail * * Send mail notification to user after print job has been completed. */ int mail = 0; /* * -M, --media * * Name of the output media. Default is A4. */ char *media_name = NULL; /* * -n, --copies * * Number of copies to print. */ int num_copies = 1; /* * -N, --newline * * Set the newline character: '\n' or '\r'. As a default, the newline * character is specified by the input encoding. */ int nl = -1; /* * -o, -p, --output * * Leave output to the specified file. As a default result is spooled to * printer. */ char *output_file = OUTPUT_FILE_NONE; /* * -O, --missing-characters * * List all missing characters. Default is no listing. */ int list_missing_characters = 0; /* * -q, --quiet * * Do not tell what we are doing. Default is to tell something but * not --verbose. */ int quiet = 0; /* * -r, --landscape * -R, --portrait * * Print with page rotated 90 degrees (landscape mode). Default is * portrait. */ int landscape = 0; /* * -s, --baselineskip * * Specify baselineskip value that is used when enscript moves to * a new line. Current point movement is font_point_size + baselineskip. */ double baselineskip = 1.0; /* * -t, --title * * Title which is printed to the banner page. If this option is given * from the command line, this sets also the name of the stdin which * is by the default "". */ char *title = "Enscript Output"; int title_given = 0; /* * -T, --tabsize * * Specify tabulator size. */ int tabsize = 8; /* * -u, --underlay * * Place text under every page. Default is no underlay. */ double ul_gray = .8; FontPoint ul_ptsize = {200.0, 200.0}; char *ul_font = "Times-Roman"; char *underlay = NULL; char *ul_position = NULL; /* Position info as a string. */ double ul_x; /* Position x-coordinate. */ double ul_y; /* Position y-coordinate. */ double ul_angle; unsigned int ul_style = UL_STYLE_OUTLINE; char *ul_style_str = NULL; int ul_position_p = 0; /* Is ul-position given? */ int ul_angle_p = 0; /* Is ul-angle given? */ /* * -U NUM, --nup=NUM * * Print NUM PostScript pages on each output page (n-up printing). */ unsigned int nup = 1; unsigned int nup_exp = 0; unsigned int nup_rows = 1; unsigned int nup_columns = 1; int nup_landscape = 0; unsigned int nup_width; unsigned int nup_height; double nup_scale; /* * -v, --verbose * * Tell what we are doing. Default is no verbose outputs. */ int verbose = 0; /* * -V, --version * * Print version information. */ /* * -w LANGUAGE, --language=LANGUAGE * * Generate output for language LANGUAGE. The default is PostScript. */ char *output_language = "PostScript"; int output_language_pass_through = 0; /* * -W APP,option, --options=APP,OPTION * * Pass additional option to enscript's helper applications. The * first part of the option's argument (APP) specifies the * helper application to which the options are added. Currently the * following helper application are defined: * * s states */ Buffer *helper_options[256] = {0}; /* * -X, --encoding * * Specifies input encoding. Default is ISO-8859.1. */ InputEncoding encoding = ENC_ISO_8859_1; char *encoding_name = NULL; /* * -z, --no-formfeed * * Do not interpret form feed characters. As a default, form feed * characters are interpreted. */ int interpret_formfeed = 1; /* * -Z, --pass-through * * Pass through all PostScript and PCL files without any modifications. * As a default, don't. */ int pass_through = 0; /* * --color[=bool] * * Create color output with states? */ /* * --continuous-page-numbers * * Count page numbers across input files. Don't restart numbering * at beginning of each file. */ int continuous_page_numbers = 0; /* * --download-font=FONT * * Download font FONT to printer. */ /* * --extended-return-values * * Enable extended return values. */ int extended_return_values = 0; /* * --filter-stdin=STR * * How stdin is shown to the filter command. The default is "" but * some utilities might want it as "-". */ char *input_filter_stdin = ""; /* * --footer=STRING * * Set the string that is used as the page footer. As a default, the * page has no footer. Setting this option does not necessary show * any footer strings in the output. It depends on the selected * header (`.hdr' file) whether it supports footer strings or not. */ char *page_footer = NULL; /* * --h-column-height=HEIGHT * * Set the horizontal column (channel) height to be HEIGHT. This option * also sets the FormFeedType to `hcolumn'. The default value is set to be * big enough to cause a jump to the next vertical column (100m). */ double horizontal_column_height = 283465.0; /* * --help-highlight (deprecated --help-pretty-print) * * Descript all supported -E, --highlight languages and file formats. */ int help_highlight = 0; /* * --highlight-bar-gray=val * * Specify the gray level for highlight bars. */ double highlight_bar_gray = .97; /* * --list-media * * List all known media. As a default do not list media names. */ int list_media = 0; /* * --margins=LEFT:RIGHT:TOP:BOTTOM * * Adjust page marginals. */ char *margins_spec = NULL; /* * --mark-wrapped-lines[=STYLE] * * Mark wrapped lines so that they can be easily detected from the printout. * Optional parameter STYLE specifies the marking style, the system default * is black box. */ char *mark_wrapped_lines_style_name = NULL; MarkWrappedLinesStyle mark_wrapped_lines_style = MWLS_NONE; /* * --non-printable-format=FORMAT * * Format in which non-printable characters are printed. */ char *npf_name = NULL; NonPrintableFormat non_printable_format = NPF_OCTAL; /* * --nup-columnwise * * Layout N-up pages colunwise instead of row-wise. */ int nup_columnwise = 0; /* * --nup-xpad=NUM * * The x-padding between N-up subpages. */ unsigned int nup_xpad = 10; /* * --nup-ypad=NUM * * The y-padding between N-up subpages. */ unsigned int nup_ypad = 10; /* * --page-label-format=FORMAT * * Format in which page labels are printed; the default is "short". */ char *page_label_format = NULL; PageLabelFormat page_label; /* * --ps-level=LEVEL * * The PostScript language level that enscript should use; the default is 2. */ unsigned int pslevel = 2; /* * --printer-options=OPTIONS * * Pass extra options OPTIONS to the printer spooler. */ char *printer_options = NULL; /* * --rotate-even-pages * * Rotate each even-numbered page 180 degrees. This might be handy in * two-side printing when the resulting pages are bind from some side. * Greetings to Jussi-Pekka Sairanen. */ int rotate_even_pages = 0; /* * --slice=NUM * * Horizontal input slicing. Print only NUMth wrapped input pages. */ int slicing = 0; unsigned int slice = 1; /* * --swap-even-page-margins * * Swap left and right side margins for each even numbered page. This * might be handy in two-side printing. */ int swap_even_page_margins = 0; /* * --toc * * Print Table of Contents page. */ int toc = 0; FILE *toc_fp; char *toc_fmt_string; /* * --word-wrap * * Wrap long lines from word boundaries. The default is character wrap. */ /* * AcceptCompositeCharacters: bool * * Specify whatever we accept composite characters or should them be * considered as non-existent. As a default, do not accept them. */ int accept_composites = 0; /* * AppendCtrlD: bool * * Append ^D character to the end of the output. Some printers require this * but the default is false. */ int append_ctrl_D = 0; /* * Clean7Bit: bool * * Specify how characters greater than 127 are printed. */ int clean_7bit = 1; /* * FormFeedType: type * * Specify what to do when a formfeed character is encountered from the * input stream. The default action is to jump to the beginning of the * next column. */ FormFeedType formfeed_type = FORMFEED_COLUMN; /* * GeneratePageSize: bool * * Specify whether the `PageSize' pagedevice definitions should be * generated to the output. */ int generate_PageSize = 1; /* * NoJobHeaderSwitch: switch * * Spooler switch to suppress the job header (-h). */ char *no_job_header_switch = NULL; /* * OutputFirstLine: line * * Set the PostScript output's first line to something your system can handle. * The default is "%!PS-Adobe-3.0" */ char *output_first_line = NULL; /* * QueueParam: param * * The spooler command switch to select the printer queue (-P). */ char *queue_param = NULL; /* * Spooler: command * * The spooler command name (lpr). */ char *spooler_command = NULL; /* * StatesBinary: path * * An absolute path to the `states' binary. */ char *states_binary = NULL; /* * StatesColor: bool * * Should the States program generate color outputs. */ int states_color = 0; /* * StatesConfigFile: file * * The name of the states' configuration file. */ char *states_config_file = NULL; /* * StatesHighlightStyle: style * * The highlight style. */ char *states_highlight_style = NULL; /* * StatesPath: path * * Define the path for the states program. The states program will * lookup its state definition files from this path. */ char *states_path = NULL; /* ^@shade{GRAY}, set the line highlight gray. */ double line_highlight_gray = 1.0; /* ^@bggray{GRAY}, set the text background gray. */ double bggray = 1.0; EncodingRegistry encodings[] = { {{"88591", "latin1", NULL}, ENC_ISO_8859_1, '\n', 8}, {{"88592", "latin2", NULL}, ENC_ISO_8859_2, '\n', 8}, {{"88593", "latin3", NULL}, ENC_ISO_8859_3, '\n', 8}, {{"88594", "latin4", NULL}, ENC_ISO_8859_4, '\n', 8}, {{"88595", "cyrillic", NULL}, ENC_ISO_8859_5, '\n', 8}, {{"88597", "greek", NULL}, ENC_ISO_8859_7, '\n', 8}, {{"88599", "latin5", NULL}, ENC_ISO_8859_9, '\n', 8}, {{"885910", "latin6", NULL}, ENC_ISO_8859_10, '\n', 8}, {{"ascii", NULL, NULL}, ENC_ASCII, '\n', 8}, {{"asciifise", "asciifi", "asciise"}, ENC_ASCII_FISE, '\n', 8}, {{"asciidkno", "asciidk", "asciino"}, ENC_ASCII_DKNO, '\n', 8}, {{"ibmpc", "pc", "dos"}, ENC_IBMPC, '\n', 8}, {{"mac", NULL, NULL}, ENC_MAC, '\r', 8}, {{"vms", NULL, NULL}, ENC_VMS, '\n', 8}, {{"hp8", NULL, NULL}, ENC_HP8, '\n', 8}, {{"koi8", NULL, NULL}, ENC_KOI8, '\n', 8}, {{"ps", "PS", NULL}, ENC_PS, '\n', 8}, {{"pslatin1", "ISOLatin1Encoding", NULL}, ENC_ISO_8859_1, '\n', 8}, {{NULL, NULL, NULL}, 0, 0, 0}, }; /* * Static variables. */ static struct option long_options[] = { {"columns", required_argument, 0, 0}, {"pages", required_argument, 0, 'a'}, {"file-align", required_argument, 0, 'A'}, {"header", required_argument, 0, 'b'}, {"no-header", no_argument, 0, 'B'}, {"truncate-lines", no_argument, 0, 'c'}, {"line-numbers", optional_argument, 0, 'C'}, {"printer", required_argument, 0, 'd'}, {"setpagedevice", required_argument, 0, 'D'}, {"escapes", optional_argument, 0, 'e'}, {"highlight", optional_argument, 0, 'E'}, {"font", required_argument, 0, 'f'}, {"header-font", required_argument, 0, 'F'}, {"print-anyway", no_argument, 0, 'g'}, {"fancy-header", optional_argument, 0, 'G'}, {"no-job-header", no_argument, 0, 'h'}, {"highlight-bars", optional_argument, 0, 'H'}, {"indent", required_argument, 0, 'i'}, {"filter", required_argument, 0, 'I'}, {"borders", no_argument, 0, 'j'}, {"page-prefeed", no_argument, 0, 'k'}, {"no-page-prefeed", no_argument, 0, 'K'}, {"lineprinter", no_argument, 0, 'l'}, {"lines-per-page", required_argument, 0, 'L'}, {"mail", no_argument, 0, 'm'}, {"media", required_argument, 0, 'M'}, {"copies", required_argument, 0, 'n'}, {"newline", required_argument, 0, 'N'}, {"output", required_argument, 0, 'p'}, {"missing-characters", no_argument, 0, 'O'}, {"quiet", no_argument, 0, 'q'}, {"silent", no_argument, 0, 'q'}, {"landscape", no_argument, 0, 'r'}, {"portrait", no_argument, 0, 'R'}, {"baselineskip", required_argument, 0, 's'}, {"statusdict", required_argument, 0, 'S'}, {"title", required_argument, 0, 't'}, {"tabsize", required_argument, 0, 'T'}, {"underlay", optional_argument, 0, 'u'}, {"nup", required_argument, 0, 'U'}, {"verbose", optional_argument, 0, 'v'}, {"version", no_argument, 0, 'V'}, {"language", required_argument, 0, 'w'}, {"option", required_argument, 0, 'W'}, {"encoding", required_argument, 0, 'X'}, {"no-formfeed", no_argument, 0, 'z'}, {"pass-through", no_argument, 0, 'Z'}, /* Long options without short counterparts. Next free is 157. */ {"color", optional_argument, 0, 142}, {"continuous-page-numbers", no_argument, 0, 156}, {"download-font", required_argument, 0, 131}, {"extended-return-values", no_argument, 0, 154}, {"filter-stdin", required_argument, 0, 138}, {"footer", required_argument, 0, 155}, {"h-column-height", required_argument, 0, 148}, {"help", no_argument, 0, 135}, {"help-highlight", no_argument, 0, 141}, {"highlight-bar-gray", required_argument, 0, 136}, {"list-media", no_argument, &list_media, 1}, {"margins", required_argument, 0, 144}, {"mark-wrapped-lines", optional_argument, 0, 143}, {"non-printable-format", required_argument, 0, 134}, {"nup-columnwise", no_argument, 0, 152}, {"nup-xpad", required_argument, 0, 145}, {"nup-ypad", required_argument, 0, 146}, {"page-label-format", required_argument, 0, 130}, {"ps-level", required_argument, 0, 149}, {"printer-options", required_argument, 0, 139}, {"rotate-even-pages", no_argument, 0, 150}, {"slice", required_argument, 0, 140}, {"style", required_argument, 0, 151}, {"swap-even-page-margins", no_argument, 0, 153}, {"toc", no_argument, &toc, 1}, {"word-wrap", no_argument, 0, 147}, {"ul-angle", required_argument, 0, 132}, {"ul-font", required_argument, 0, 128}, {"ul-gray", required_argument, 0, 129}, {"ul-position", required_argument, 0, 133}, {"ul-style", required_argument, 0, 137}, /* Backwards compatiblity options. */ {"pretty-print", optional_argument, 0, 'E'}, {"help-pretty-print", no_argument, 0, 141}, {NULL, 0, 0, 0}, }; /* * Global functions. */ int main (int argc, char *argv[]) { InputStream is; time_t tim; struct tm *tm; int i, j, found; unsigned int ui; MediaEntry *mentry; AFMError afm_error; char *cp, *cp2; int retval = 0; Buffer buffer; /* Init our dynamic memory buffer. */ buffer_init (&buffer); /* Get program's name. */ program = strrchr (argv[0], '/'); if (program == NULL) program = argv[0]; else program++; /* Make getopt_long() to use our modified programname. */ argv[0] = program; /* Create the default TOC format string. Wow, this is cool! */ /* xgettext:no-c-format */ toc_fmt_string = _("$3v $-40N $3% pages $4L lines $E $C"); /* Internationalization. */ #if HAVE_SETLOCALE /* * We want to change only messages (gs do not like decimals in 0,1 * format ;) */ #if HAVE_LC_MESSAGES setlocale (LC_MESSAGES, ""); #endif #endif #if ENABLE_NLS bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); #endif /* Create date string. */ tim = time (NULL); tm = localtime (&tim); memcpy (&run_tm, tm, sizeof (*tm)); date_string = xstrdup (asctime (&run_tm)); i = strlen (date_string); date_string[i - 1] = '\0'; /* Get user's passwd entry. */ passwd = getpwuid (getuid ()); if (passwd == NULL) FATAL ((stderr, _("couldn't get passwd entry for uid=%d: %s"), getuid (), strerror (errno))); /* Defaults for some options. */ media_name = xstrdup ("A4"); encoding_name = xstrdup ("88591"); npf_name = xstrdup ("octal"); page_label_format = xstrdup ("short"); ul_style_str = xstrdup ("outline"); ul_position = xstrdup ("+0-0"); spooler_command = xstrdup ("lpr"); queue_param = xstrdup ("-P"); no_job_header_switch = xstrdup ("-h"); fancy_header_default = xstrdup ("enscript"); output_first_line = xstrdup ("%!PS-Adobe-3.0"); /* Check ENSCRIPT_LIBRARY for custom library location. */ cp = getenv ("ENSCRIPT_LIBRARY"); if (cp) enscript_library = cp; /* Fill up build-in libpath. */ cp = getenv ("HOME"); if (cp == NULL) cp = passwd->pw_dir; buffer_clear (&buffer); buffer_append (&buffer, enscript_library); buffer_append (&buffer, PATH_SEPARATOR_STR); buffer_append (&buffer, cp); buffer_append (&buffer, "/.enscript"); libpath = buffer_copy (&buffer); /* Defaults for the states filter. */ states_binary = xstrdup ("states"); /* Take it from the user path. */ buffer_clear (&buffer); buffer_append (&buffer, enscript_library); buffer_append (&buffer, "/hl/enscript.st"); states_config_file = buffer_copy (&buffer); states_highlight_style = xstrdup ("emacs"); /* The holds the user's home directory. */ buffer_clear (&buffer); buffer_append (&buffer, cp); buffer_append (&buffer, "/.enscript"); buffer_append (&buffer, PATH_SEPARATOR_STR); buffer_append (&buffer, enscript_library); buffer_append (&buffer, "/hl"); states_path = buffer_copy (&buffer); /* Initialize resource sets. */ res_fonts = strhash_init (); download_fonts = strhash_init (); pagedevice = strhash_init (); statusdict = strhash_init (); user_strings = strhash_init (); /* * Read configuration files. */ /* Global config. */ #define CFG_FILE_NAME "enscript.cfg" if (!read_config (SYSCONFDIR, CFG_FILE_NAME)) { int saved_errno = errno; /* Try to read it from our library directory. This is mostly the case for the micro ports. */ if (!read_config (enscript_library, CFG_FILE_NAME)) { /* Try `enscript_library/../../etc/'. This is the case for installations which set the prefix after the compilation and our SYSCONFDIR points to wrong directory. */ buffer_clear (&buffer); buffer_append (&buffer, enscript_library); buffer_append (&buffer, "/../../etc"); if (!read_config (buffer_ptr (&buffer), CFG_FILE_NAME)) { /* Maybe we are not installed yet, let's try `../lib' and `../../lib'. */ if (!read_config ("../lib", CFG_FILE_NAME) && !read_config ("../../lib", CFG_FILE_NAME)) { /* No luck, report error from the original config file. */ ERROR ((stderr, _("couldn't read config file \"%s/%s\": %s"), enscript_library, CFG_FILE_NAME, strerror (saved_errno))); ERROR ((stderr, _("I did also try the following directories:"))); ERROR ((stderr, _("\t%s"), SYSCONFDIR)); ERROR ((stderr, _("\t%s"), enscript_library)); ERROR ((stderr, _("\t%s"), buffer_ptr (&buffer))); ERROR ((stderr, _("\t../lib"))); ERROR ((stderr, _("\t../../lib"))); ERROR ((stderr, _("This is probably an installation error. Please, try to rebuild:"))); ERROR ((stderr, _("\tmake distclean"))); ERROR ((stderr, _("\t./configure --prefix=PREFIX"))); ERROR ((stderr, _("\tmake"))); ERROR ((stderr, _("\tmake check"))); ERROR ((stderr, _("\tmake install"))); ERROR ((stderr, _("or set the environment variable `ENSCRIPT_LIBRARY'" " to point to your library directory."))); exit (1); } /* Ok, we are not installed yet. Here is a small kludge to conform the GNU coding standards: we must be able to run without being installed, so we must append the `../lib' and `../../lib' directories to the libpath. The later allows us to be run form the `src/tests' directory. */ buffer_clear (&buffer); buffer_append (&buffer, libpath); buffer_append (&buffer, PATH_SEPARATOR_STR); buffer_append (&buffer, "../lib"); buffer_append (&buffer, PATH_SEPARATOR_STR); buffer_append (&buffer, "../../lib"); xfree (libpath); libpath = buffer_copy (&buffer); } } } /* Site config. */ read_config (SYSCONFDIR, "enscriptsite.cfg"); /* Personal config. */ read_config (cp, ".enscriptrc"); /* * Options. */ /* Environment variables. */ handle_env_options ("ENSCRIPT"); handle_env_options ("GENSCRIPT"); /* Command line arguments. */ handle_options (argc, argv); /* * Check options which have some validity conditions. */ /* * Save the user-specified escape char so ^@escape{default} knows * what to set. */ default_escape_char = escape_char; /* Input encoding. */ found = 0; for (i = 0; !found && encodings[i].names[0]; i++) for (j = 0; j < 3; j++) if (encodings[i].names[j] != NULL && MATCH (encodings[i].names[j], encoding_name)) { /* Found a match for this encoding. Use the first "official" name. */ encoding = encodings[i].encoding; xfree (encoding_name); encoding_name = xstrdup (encodings[i].names[0]); if (nl < 0) nl = encodings[i].nl; bs = encodings[i].bs; found = 1; break; } if (!found) FATAL ((stderr, _("unknown encoding: %s"), encoding_name)); /* Fonts. */ /* Default font for landscape, 2 column printing is Courier 7. */ if (!user_body_font_defined && landscape && num_columns > 1) Fpt.w = Fpt.h = 7.0; /* Cache for font AFM information. */ afm_cache = strhash_init (); afm_info_cache = strhash_init (); /* Open AFM library. */ afm_error = afm_create (afm_path, verbose, &afm); if (afm_error != AFM_SUCCESS) { char buf[256]; afm_error_to_string (afm_error, buf); FATAL ((stderr, _("couldn't open AFM library: %s"), buf)); } /* * Save default Fpt and Fname since special escape 'font' can change * it and later we might want to switch back to the "default" font. */ default_Fpt.w = Fpt.w; default_Fpt.h = Fpt.h; default_Fname = Fname; default_Fencoding = encoding; /* Register that document uses at least these fonts. */ strhash_put (res_fonts, Fname, strlen (Fname) + 1, NULL, NULL); strhash_put (res_fonts, HFname, strlen (HFname) + 1, NULL, NULL); /* As a default, download both named fonts. */ strhash_put (download_fonts, Fname, strlen (Fname) + 1, NULL, NULL); strhash_put (download_fonts, HFname, strlen (HFname) + 1, NULL, NULL); /* Read font's character widths and character types. */ read_font_info (); /* Count the line indentation. */ line_indent = parse_float (line_indent_spec, 1, 1); /* List media names. */ if (list_media) { printf (_("known media:\n\ name width\theight\tllx\tlly\turx\tury\n\ ------------------------------------------------------------\n")); for (mentry = media_names; mentry; mentry = mentry->next) printf ("%-16s %d\t%d\t%d\t%d\t%d\t%d\n", mentry->name, mentry->w, mentry->h, mentry->llx, mentry->lly, mentry->urx, mentry->ury); /* Exit after listing. */ exit (0); } /* Output media. */ for (mentry = media_names; mentry; mentry = mentry->next) if (strcmp (media_name, mentry->name) == 0) { media = mentry; break; } if (media == NULL) FATAL ((stderr, _("do not know anything about media \"%s\""), media_name)); if (margins_spec) { /* Adjust marginals. */ for (i = 0; i < 4; i++) { if (*margins_spec == '\0') /* All done. */ break; if (*margins_spec == ':') { margins_spec++; continue; } j = atoi (margins_spec); for (; *margins_spec != ':' && *margins_spec != '\0'; margins_spec++) ; if (*margins_spec == ':') margins_spec++; switch (i) { case 0: /* left */ media->llx = j; break; case 1: /* right */ media->urx = media->w - j; break; case 2: /* top */ media->ury = media->h - j; break; case 3: /* bottom */ media->lly = j; break; } } MESSAGE (1, (stderr, _("set new marginals for media `%s' (%dx%d): llx=%d, lly=%d, urx=%d, ury=%d\n"), media->name, media->w, media->h, media->llx, media->lly, media->urx, media->ury)); } /* Page label format. */ if (MATCH (page_label_format, "short")) page_label = LABEL_SHORT; else if (MATCH (page_label_format, "long")) page_label = LABEL_LONG; else FATAL ((stderr, _("illegal page label format \"%s\""), page_label_format)); /* Non-printable format. */ if (MATCH (npf_name, "space")) non_printable_format = NPF_SPACE; else if (MATCH (npf_name, "questionmark")) non_printable_format = NPF_QUESTIONMARK; else if (MATCH (npf_name, "caret")) non_printable_format = NPF_CARET; else if (MATCH (npf_name, "octal")) non_printable_format = NPF_OCTAL; else FATAL ((stderr, _("illegal non-printable format \"%s\""), npf_name)); /* Mark wrapped lines style. */ if (mark_wrapped_lines_style_name) { if (MATCH (mark_wrapped_lines_style_name, "none")) mark_wrapped_lines_style = MWLS_NONE; else if (MATCH (mark_wrapped_lines_style_name, "plus")) mark_wrapped_lines_style = MWLS_PLUS; else if (MATCH (mark_wrapped_lines_style_name, "box")) mark_wrapped_lines_style = MWLS_BOX; else if (MATCH (mark_wrapped_lines_style_name, "arrow")) mark_wrapped_lines_style = MWLS_ARROW; else FATAL ((stderr, _("illegal style for wrapped line marker: \"%s\""), mark_wrapped_lines_style_name)); } /* Count N-up stuffs. */ for (i = 0; ; i++) { ui = nup >> i; if (ui == 0) FATAL ((stderr, _("illegal N-up argument: %d"), nup)); if (ui & 0x1) { if (ui != 1) FATAL ((stderr, _("N-up argument must be power of 2: %d"), nup)); nup_exp = i; break; } } nup_rows = nup_exp / 2 * 2; if (nup_rows == 0) nup_rows = 1; nup_columns = (nup_exp + 1) / 2 * 2; if (nup_columns == 0) nup_columns = 1; nup_landscape = nup_exp & 0x1; /* * Count output media dimensions. */ if (landscape) { d_page_w = media->ury - media->lly; d_page_h = media->urx - media->llx; } else { d_page_w = media->urx - media->llx; d_page_h = media->ury - media->lly; } /* * Count N-up page width, height and scale. */ if (nup_landscape) { nup_width = media->ury - media->lly; nup_height = media->urx - media->llx; } else { nup_width = media->urx - media->llx; nup_height = media->ury - media->lly; } { double w, h; w = ((double) nup_width - (nup_columns - 1) * nup_xpad) / nup_columns; h = ((double) nup_height - (nup_rows - 1) * nup_ypad) / nup_rows; nup_width = w; nup_height = h; w = w / (media->urx - media->llx); h = h / (media->ury - media->lly); nup_scale = w < h ? w : h; } /* * Underlay (this must come after output media dimensions, because * `underlay position' needs them). */ if (underlay != NULL) { strhash_put (res_fonts, ul_font, strlen (ul_font) + 1, NULL, NULL); underlay = escape_string (underlay); } /* Underlay X-coordinate. */ ul_x = strtod (ul_position, &cp); if (cp == ul_position) { malformed_position: FATAL ((stderr, _("malformed underlay position: %s"), ul_position)); } if (ul_position[0] == '-') ul_x += d_page_w; /* Underlay Y-coordinate. */ ul_y = strtod (cp, &cp2); if (cp2 == cp) goto malformed_position; if (cp[0] == '-') ul_y += d_page_h; /* Underlay Angle. */ if (!ul_angle_p) /* No angle given, count the default. */ ul_angle = (atan2 (-d_page_h, d_page_w) / 3.14159265 * 180); /* Underlay style. */ if (strcmp (ul_style_str, "outline") == 0) ul_style = UL_STYLE_OUTLINE; else if (strcmp (ul_style_str, "filled") == 0) ul_style = UL_STYLE_FILLED; else FATAL ((stderr, _("illegal underlay style: %s"), ul_style_str)); /* * Header. Note! The header attributes can be changed from * the `.hdr' files, these are only the defaults. */ d_header_w = d_page_w; switch (header) { case HDR_NONE: d_header_h = 0; break; case HDR_SIMPLE: d_header_h = HFpt.h * 1.5; break; case HDR_FANCY: d_header_h = 36; break; } /* Help highlight. */ if (help_highlight) { /* Create description with states. */ printf (_("Highlighting is supported for the following languages and file formats:\n\n")); fflush (stdout); buffer_clear (&buffer); buffer_append (&buffer, states_binary); buffer_append (&buffer, " -f \""); buffer_append (&buffer, states_config_file); buffer_append (&buffer, "\" -p \""); buffer_append (&buffer, states_path); buffer_append (&buffer, "\" -s describe_languages "); buffer_append (&buffer, enscript_library); buffer_append (&buffer, "/hl/*.st"); system (buffer_ptr (&buffer)); exit (0); } /* * And now to the main business. The actual input file processing * is divided to two parts: PostScript generation and everything else. * The PostScript generation is handled in the conventional way, we * process the input and generate PostScript. However all other input * languages will be handled with States, we only pass enscript's * options to the states pre-filter and dump output. */ if (output_language_pass_through) { char *start_state; Buffer cmd; char intbuf[256]; /* The States output generation. */ /* Resolve the start state. */ if (hl_start_state) start_state = hl_start_state; else if (highlight) start_state = NULL; else start_state = "passthrough"; /* Create the states command. */ buffer_init (&cmd); buffer_append (&cmd, states_binary); buffer_append (&cmd, " -f \""); buffer_append (&cmd, states_config_file); buffer_append (&cmd, "\" -p \""); buffer_append (&cmd, states_path); buffer_append (&cmd, "\" "); if (verbose > 0) buffer_append (&cmd, "-v "); if (start_state) { buffer_append (&cmd, "-s"); buffer_append (&cmd, start_state); buffer_append (&cmd, " "); } buffer_append (&cmd, "-Dcolor="); buffer_append (&cmd, states_color ? "1" : "0"); buffer_append (&cmd, " "); buffer_append (&cmd, "-Dstyle="); buffer_append (&cmd, states_highlight_style); buffer_append (&cmd, " "); buffer_append (&cmd, "-Dlanguage="); buffer_append (&cmd, output_language); buffer_append (&cmd, " "); buffer_append (&cmd, "-Dnum_input_files="); sprintf (intbuf, "%d", optind == argc ? 1 : argc - optind); buffer_append (&cmd, intbuf); buffer_append (&cmd, " "); buffer_append (&cmd, "-Ddocument_title=\'"); if ((cp = shell_escape (title)) != NULL) { buffer_append (&cmd, cp); free (cp); } buffer_append (&cmd, "\' "); buffer_append (&cmd, "-Dtoc="); buffer_append (&cmd, toc ? "1" : "0"); /* Additional options for states? */ if (helper_options['s']) { Buffer *opts = helper_options['s']; buffer_append (&cmd, " "); buffer_append_len (&cmd, buffer_ptr (opts), buffer_len (opts)); } /* Append input files. */ for (i = optind; i < argc; i++) { char *cp; if ((cp = shell_escape (argv[i])) != NULL) { buffer_append (&cmd, " \'"); buffer_append (&cmd, cp); buffer_append (&cmd, "\'"); free (cp); } } /* And do the job. */ if (is_open (&is, stdin, NULL, buffer_ptr (&cmd))) { open_output_file (); process_file ("unused", &is, 0); is_close (&is); } buffer_uninit (&cmd); } else { /* The conventional way. */ /* Highlighting. */ if (highlight) { char fbuf[256]; /* Create a highlight input filter. */ buffer_clear (&buffer); buffer_append (&buffer, states_binary); buffer_append (&buffer, " -f \""); buffer_append (&buffer, states_config_file); buffer_append (&buffer, "\" -p \""); buffer_append (&buffer, states_path); buffer_append (&buffer, "\""); if (verbose > 0) buffer_append (&buffer, " -v"); if (hl_start_state) { buffer_append (&buffer, " -s "); buffer_append (&buffer, hl_start_state); } buffer_append (&buffer, " -Dcolor="); buffer_append (&buffer, states_color ? "1" : "0"); buffer_append (&buffer, " -Dstyle="); buffer_append (&buffer, states_highlight_style); buffer_append (&buffer, " -Dfont_spec="); buffer_append (&buffer, Fname); sprintf (fbuf, "@%g/%g", Fpt.w, Fpt.h); buffer_append (&buffer, fbuf); /* Additional options for states? */ if (helper_options['s']) { Buffer *opts = helper_options['s']; buffer_append (&buffer, " "); buffer_append_len (&buffer, buffer_ptr (opts), buffer_len (opts)); } buffer_append (&buffer, " \'%s\'"); input_filter = buffer_copy (&buffer); input_filter_stdin = "-"; } /* Table of Contents. */ if (toc) { toc_fp = tmpfile (); if (toc_fp == NULL) FATAL ((stderr, _("couldn't create temporary toc file: %s"), strerror (errno))); } /* * Process files. */ if (optind == argc) { /* stdin's modification time is the current time. */ memcpy (&mod_tm, &run_tm, sizeof (run_tm)); if (is_open (&is, stdin, NULL, input_filter)) { /* Open output file. */ open_output_file (); process_file (title_given ? title : "", &is, 0); is_close (&is); } } else { for (; optind < argc; optind++) { if (is_open (&is, NULL, argv[optind], input_filter)) { struct stat stat_st; /* Get modification time. */ if (stat (argv[optind], &stat_st) == 0) { tim = stat_st.st_mtime; tm = localtime (&tim); memcpy (&mod_tm, tm, sizeof (*tm)); /* * Open output file. Output file opening is delayed to * this point so we can optimize the case when a * non-existing input file is printed => we do nothing. */ open_output_file (); process_file (argv[optind], &is, 0); } else ERROR ((stderr, _("couldn't stat input file \"%s\": %s"), argv[optind], strerror (errno))); is_close (&is); } } } /* Table of Contents. */ if (toc) { /* This is really cool... */ /* Set the printing options for toc. */ toc = 0; special_escapes = 1; line_numbers = 0; if (fseek (toc_fp, 0, SEEK_SET) != 0) FATAL ((stderr, _("couldn't rewind toc file: %s"), strerror (errno))); memcpy (&mod_tm, &run_tm, sizeof (run_tm)); if (is_open (&is, toc_fp, NULL, NULL)) { process_file (_("Table of Contents"), &is, 1); is_close (&is); } } /* Give trailer a chance to dump itself. */ dump_ps_trailer (); /* * Append ^D to the end of the output? Note! It must be ^D followed * by a newline. */ if (ofp != NULL && append_ctrl_D) fprintf (ofp, "\004\n"); } /* Close output file. */ close_output_file (); /* Tell how things went. */ if (ofp == NULL) { /* * The value of is not reset in close_output_file(), * this is ugly but it saves one flag. */ MESSAGE (0, (stderr, _("no output generated\n"))); } else if (output_language_pass_through) { if (output_file == OUTPUT_FILE_NONE) MESSAGE (0, (stderr, _("output sent to %s\n"), printer ? printer : _("printer"))); else MESSAGE (0, (stderr, _("output left in %s\n"), output_file == OUTPUT_FILE_STDOUT ? "-" : output_file)); } else { unsigned int real_total_pages; if (nup > 1) { if (total_pages > 0) real_total_pages = (total_pages - 1) / nup + 1; else real_total_pages = 0; } else real_total_pages = total_pages; /* We did something, tell what. */ char message[80]; snprintf(message, sizeof message, "%s%s%s%s%s", "[ ", ngettext("%d page", "%d pages", real_total_pages), " * ", ngettext("%d copy", "%d copies", num_copies), " ]"); MESSAGE (0, (stderr, message, real_total_pages, num_copies)); if (output_file == OUTPUT_FILE_NONE) MESSAGE (0, (stderr, _(" sent to %s\n"), printer ? printer : _("printer"))); else MESSAGE (0, (stderr, _(" left in %s\n"), output_file == OUTPUT_FILE_STDOUT ? "-" : output_file)); if (num_truncated_lines) { retval |= 2; MESSAGE (0, (stderr, ngettext("%d line was %s\n", "%d lines were %s\n", num_truncated_lines), num_truncated_lines, line_end == LE_TRUNCATE ? _("truncated") : _("wrapped"))); } if (num_missing_chars) { retval |= 4; MESSAGE (0, (stderr, ngettext("%d character was missing\n", "%d characters were missing\n", num_missing_chars), num_missing_chars)); if (list_missing_characters) { MESSAGE (0, (stderr, _("missing character codes (decimal):\n"))); do_list_missing_characters (missing_chars); } } if (num_non_printable_chars) { retval |= 8; MESSAGE (0, (stderr, ngettext("%d non-printable character\n", "%d non-printable characters\n", num_non_printable_chars), num_non_printable_chars)); if (list_missing_characters) { MESSAGE (0, (stderr, _("non-printable character codes (decimal):\n"))); do_list_missing_characters (non_printable_chars); } } } /* Uninit our dynamic memory buffer. */ buffer_uninit (&buffer); /* Return the extended return values only if requested. */ if (!extended_return_values) retval = 0; /* This is the end. */ return retval; } /* * Static functions. */ static void open_output_file () { if (ofp) /* Output file has already been opened, do nothing. */ return; if (output_file == OUTPUT_FILE_NONE) { char spooler_options[512]; /* Format spooler options. */ spooler_options[0] = '\0'; if (mail) strcat (spooler_options, "-m "); if (no_job_header) { strcat (spooler_options, no_job_header_switch); strcat (spooler_options, " "); } if (printer_options) strcat (spooler_options, printer_options); /* Open printer. */ ofp = printer_open (spooler_command, spooler_options, queue_param, printer, &printer_context); if (ofp == NULL) FATAL ((stderr, _("couldn't open printer `%s': %s"), printer, strerror (errno))); } else if (output_file == OUTPUT_FILE_STDOUT) ofp = stdout; else { ofp = fopen (output_file, "w"); if (ofp == NULL) FATAL ((stderr, _("couldn't create output file \"%s\": %s"), output_file, strerror (errno))); } } static void close_output_file () { if (ofp == NULL) /* Output file hasn't been opened, we are done. */ return; if (output_file == OUTPUT_FILE_NONE) printer_close (printer_context); else if (output_file != OUTPUT_FILE_STDOUT) if (fclose (ofp)) FATAL ((stderr, _("couldn't close output file \"%s\": %s"), output_file, strerror (errno))); /* We do not reset since its value is needed in diagnostigs. */ } static void handle_env_options (char *var) { int argc; char **argv; char *string; char *str; int i; string = getenv (var); if (string == NULL) return; MESSAGE (2, (stderr, "handle_env_options(): %s=\"%s\"\n", var, string)); /* Copy string so we can modify it in place. */ str = xstrdup (string); /* * We can count this, each option takes at least 1 character and one * space. We also need one for program's name and one for the * trailing NULL. */ argc = (strlen (str) + 1) / 2 + 2; argv = xcalloc (argc, sizeof (char *)); /* Set program name. */ argc = 0; argv[argc++] = program; /* Split string and set arguments to argv array. */ i = 0; while (str[i]) { /* Skip leading whitespace. */ for (; str[i] && isspace (str[i]); i++) ; if (!str[i]) break; /* Check for quoted arguments. */ if (str[i] == '"' || str[i] == '\'') { int endch = str[i++]; argv[argc++] = str + i; /* Skip until we found the end of the quotation. */ for (; str[i] && str[i] != endch; i++) ; if (!str[i]) FATAL ((stderr, _("syntax error in option string %s=\"%s\":\n\ missing end of quotation: %c"), var, string, endch)); str[i++] = '\0'; } else { argv[argc++] = str + i; /* Skip until whitespace if found. */ for (; str[i] && !isspace (str[i]); i++) ; if (str[i]) str[i++] = '\0'; } } /* argv[argc] must be NULL. */ argv[argc] = NULL; MESSAGE (2, (stderr, "found following options (argc=%d):\n", argc)); for (i = 0; i < argc; i++) MESSAGE (2, (stderr, "%3d = \"%s\"\n", i, argv[i])); /* Process options. */ handle_options (argc, argv); /* Check that all got processed. */ if (optind != argc) { MESSAGE (0, (stderr, _("warning: didn't process following options from \ environment variable %s:\n"), var)); for (; optind < argc; optind++) MESSAGE (0, (stderr, _(" option %d = \"%s\"\n"), optind, argv[optind])); } /* Cleanup. */ xfree (argv); /* * must not be freed, since some global variables can point to * its elements */ } static void handle_options (int argc, char *argv[]) { int c; PageRange *prange; /* Reset optind. */ optind = 0; while (1) { int option_index = 0; const char *cp; int i; c = getopt_long (argc, argv, "#:123456789a:A:b:BcC::d:D:e::E::f:F:gGhH::i:I:jJ:kKlL:mM:n:N:o:Op:P:qrRs:S:t:T:u::U:vVw:W:X:zZ", long_options, &option_index); if (c == -1) break; switch (c) { case 0: /* Long option found. */ cp = long_options[option_index].name; if (strcmp (cp, "columns") == 0) { num_columns = atoi (optarg); if (num_columns < 1) FATAL ((stderr, _("number of columns must be larger than zero"))); } break; /* Short options. */ case '1': /* 1 column */ case '2': /* 2 columns */ case '3': /* 3 columns */ case '4': /* 4 columns */ case '5': /* 5 columns */ case '6': /* 6 columns */ case '7': /* 7 columns */ case '8': /* 8 columns */ case '9': /* 9 columns */ num_columns = c - '0'; break; case 'a': /* pages */ prange = (PageRange *) xcalloc (1, sizeof (PageRange)); if (strcmp (optarg, "odd") == 0) prange->odd = 1; else if (strcmp (optarg, "even") == 0) prange->even = 1; else { cp = strchr (optarg, '-'); if (cp) { if (optarg[0] == '-') /* -end */ prange->end = atoi (optarg + 1); else if (cp[1] == '\0') { /* begin- */ prange->start = atoi (optarg); prange->end = (unsigned int) -1; } else { /* begin-end */ prange->start = atoi (optarg); prange->end = atoi (cp + 1); } } else /* pagenumber */ prange->start = prange->end = atoi (optarg); } prange->next = page_ranges; page_ranges = prange; break; case 'A': /* file alignment */ file_align = atoi (optarg); if (file_align == 0) FATAL ((stderr, _("file alignment must be larger than zero"))); break; case 'b': /* page header */ page_header = optarg; break; case 'B': /* no page headers */ header = HDR_NONE; break; case 'c': /* truncate (cut) long lines */ line_end = LE_TRUNCATE; break; case 'C': /* line numbers */ line_numbers = 1; if (optarg) start_line_number = atoi (optarg); break; case 'd': /* specify printer */ case 'P': xfree (printer); printer = xstrdup (optarg); output_file = OUTPUT_FILE_NONE; break; case 'D': /* setpagedevice */ parse_key_value_pair (pagedevice, optarg); break; case 'e': /* special escapes */ special_escapes = 1; if (optarg) { /* Specify the escape character. */ if (isdigit (optarg[0])) /* As decimal, octal, or hexadicimal number. */ escape_char = (int) strtoul (optarg, NULL, 0); else /* As character directly. */ escape_char = ((unsigned char *) optarg)[0]; } break; case 'E': /* highlight */ highlight = 1; special_escapes = 1; escape_char = '\0'; hl_start_state = optarg; break; case 'f': /* font */ if (!parse_font_spec (optarg, &Fname, &Fpt, NULL)) FATAL ((stderr, _("malformed font spec: %s"), optarg)); user_body_font_defined = 1; break; case 'F': /* header font */ if (!parse_font_spec (optarg, &HFname, &HFpt, NULL)) FATAL ((stderr, _("malformed font spec: %s"), optarg)); break; case 'g': /* print anyway */ /* nothing. */ break; case 'G': /* fancy header */ header = HDR_FANCY; if (optarg) fancy_header_name = optarg; else fancy_header_name = fancy_header_default; if (!file_existsp (fancy_header_name, ".hdr")) FATAL ((stderr, _("couldn't find header definition file \"%s.hdr\""), fancy_header_name)); break; case 'h': /* no job header */ no_job_header = 1; break; case 'H': /* highlight bars */ if (optarg) highlight_bars = atoi (optarg); else highlight_bars = 2; break; case 'i': /* line indent */ line_indent_spec = optarg; break; case 'I': /* input filter */ input_filter = optarg; break; case 'j': /* borders */ borders = 1; break; case 'k': /* enable page prefeed */ page_prefeed = 1; break; case 'K': /* disable page prefeed */ page_prefeed = 0; break; case 'l': /* emulate lineprinter */ lines_per_page = 66; header = HDR_NONE; break; case 'L': /* lines per page */ lines_per_page = atoi (optarg); if (lines_per_page <= 0) FATAL ((stderr, _("must print at least one line per each page: %s"), argv[optind])); break; case 'm': /* send mail upon completion */ mail = 1; break; case 'M': /* select output media */ media_name = xstrdup (optarg); break; case 'n': /* num copies */ case '#': num_copies = atoi (optarg); break; case 'N': /* newline character */ if (!(optarg[0] == 'n' || optarg[0] == 'r') || optarg[1] != '\0') { fprintf (stderr, _("%s: illegal newline character specifier: \ '%s': expected 'n' or 'r'\n"), program, optarg); goto option_error; } if (optarg[0] == 'n') nl = '\n'; else nl = '\r'; break; case 'o': case 'p': /* output file */ /* Check output file "-". */ if (strcmp (optarg, "-") == 0) output_file = OUTPUT_FILE_STDOUT; else output_file = optarg; break; case 'O': /* list missing characters */ list_missing_characters = 1; break; case 'q': /* quiet */ quiet = 1; verbose = 0; break; case 'r': /* landscape */ landscape = 1; break; case 'R': /* portrait */ landscape = 0; break; case 's': /* baselineskip */ baselineskip = atof (optarg); break; case 'S': /* statusdict */ parse_key_value_pair (statusdict, optarg); break; case 't': /* title */ case 'J': title = optarg; title_given = 1; break; case 'T': /* tabulator size */ tabsize = atoi (optarg); if (tabsize <= 0) tabsize = 1; break; case 'u': /* underlay */ underlay = optarg; break; case 'U': /* nup */ nup = atoi (optarg); break; case 'v': /* verbose */ if (optarg) verbose = atoi (optarg); else verbose++; quiet = 0; break; case 'V': /* version */ version (); exit (0); break; case 'w': /* output language */ output_language = optarg; if (strcmp (output_language, "PostScript") != 0) /* Other output languages are handled with states. */ output_language_pass_through = 1; break; case 'W': /* a helper application option */ cp = strchr (optarg, ','); if (cp == NULL) FATAL ((stderr, _("malformed argument `%s' for option -W, --option: \ no comma found"), optarg)); if (cp - optarg != 1) FATAL ((stderr, _("helper application specification must be \ single character: %s"), optarg)); /* Take the index of the helper application and update `cp' to point to the beginning of the option. */ i = *optarg; cp++; if (helper_options[i] == NULL) helper_options[i] = buffer_alloc (); else { /* We already had some options for this helper application. Let's separate these arguments. */ buffer_append (helper_options[i], " "); } /* Add this new option. */ buffer_append (helper_options[i], cp); break; case 'X': /* input encoding */ xfree (encoding_name); encoding_name = xstrdup (optarg); break; case 'z': /* no form feeds */ interpret_formfeed = 0; break; case 'Z': /* pass through */ pass_through = 1; break; case 128: /* underlay font */ if (!parse_font_spec (optarg, &ul_font, &ul_ptsize, NULL)) FATAL ((stderr, _("malformed font spec: %s"), optarg)); break; case 129: /* underlay gray */ ul_gray = atof (optarg); break; case 130: /* page label format */ xfree (page_label_format); page_label_format = xstrdup (optarg); break; case 131: /* download font */ strhash_put (download_fonts, optarg, strlen (optarg) + 1, NULL, NULL); break; case 132: /* underlay angle */ ul_angle = atof (optarg); ul_angle_p = 1; break; case 133: /* underlay position */ xfree (ul_position); ul_position = xstrdup (optarg); ul_position_p = 1; break; case 134: /* non-printable format */ xfree (npf_name); npf_name = xstrdup (optarg); break; case 135: /* help */ usage (); exit (0); break; case 136: /* highlight bar gray */ highlight_bar_gray = atof (optarg); break; case 137: /* underlay style */ xfree (ul_style_str); ul_style_str = xstrdup (optarg); break; case 138: /* filter stdin */ input_filter_stdin = optarg; break; case 139: /* extra options for the printer spooler */ printer_options = optarg; break; case 140: /* slicing */ slicing = 1; slice = atoi (optarg); if (slice <= 0) FATAL ((stderr, _("slice must be greater than zero"))); break; case 141: /* help-highlight */ help_highlight = 1; break; case 142: /* States color? */ if (optarg == NULL) states_color = 1; else states_color = atoi (optarg); break; case 143: /* mark-wrapped-lines */ if (optarg) { xfree (mark_wrapped_lines_style_name); mark_wrapped_lines_style_name = xstrdup (optarg); } else /* Set the system default. */ mark_wrapped_lines_style = MWLS_BOX; break; case 144: /* adjust margins */ margins_spec = optarg; break; case 145: /* N-up x-pad */ nup_xpad = atoi (optarg); break; case 146: /* N-up y-pad */ nup_ypad = atoi (optarg); break; case 147: /* word wrap */ line_end = LE_WORD_WRAP; break; case 148: /* horizontal column height */ horizontal_column_height = atof (optarg); formfeed_type = FORMFEED_HCOLUMN; break; case 149: /* PostScript language level */ pslevel = atoi (optarg); break; case 150: /* rotate even-numbered pages */ rotate_even_pages = 1; break; case 151: /* highlight style */ xfree (states_highlight_style); states_highlight_style = xstrdup (optarg); break; case 152: /* N-up colunwise */ nup_columnwise = 1; break; case 153: /* swap even page margins */ swap_even_page_margins = 1; break; case 154: /* extended return values */ extended_return_values = 1; break; case 155: /* footer */ page_footer = optarg; break; case 156: /* continuous page numbers */ continuous_page_numbers = 1; break; case '?': /* Errors found during getopt_long(). */ option_error: fprintf (stderr, _("Try `%s --help' for more information.\n"), program); exit (1); break; default: printf ("Hey! main() didn't handle option \"%c\" (%d)", c, c); if (optarg) printf (" with arg %s", optarg); printf ("\n"); FATAL ((stderr, "This is a bug!")); break; } } } static void usage () { printf (_("\ Usage: %s [OPTION]... [FILE]...\n\ Mandatory arguments to long options are mandatory for short options too.\n\ -# an alias for option -n, --copies\n\ -1 same as --columns=1\n\ -2 same as --columns=2\n\ --columns=NUM specify the number of columns per page\n\ -a, --pages=PAGES specify which pages are printed\n\ -A, --file-align=ALIGN align separate input files to ALIGN\n\ -b, --header=HEADER set page header\n\ -B, --no-header no page headers\n\ -c, --truncate-lines cut long lines (default is to wrap)\n\ -C[START], --line-numbers[=START]\n\ precede each line with its line number\n\ -d an alias for option --printer\n\ -D, --setpagedevice=KEY[:VALUE]\n\ pass a page device definition to output\n\ -e[CHAR], --escapes[=CHAR] enable special escape interpretation\n"), program); printf (_("\ -E[LANG], --highlight[=LANG] highlight source code\n")); printf (_("\ -f, --font=NAME use font NAME for body text\n\ -F, --header-font=NAME use font NAME for header texts\n\ -g, --print-anyway nothing (compatibility option)\n\ -G same as --fancy-header\n\ --fancy-header[=NAME] select fancy page header\n\ -h, --no-job-header suppress the job header page\n\ -H[NUM], --highlight-bars[=NUM] specify how high highlight bars are\n\ -i, --indent=NUM set line indent to NUM characters\n\ -I, --filter=CMD read input files through input filter CMD\n\ -j, --borders print borders around columns\n\ -J, an alias for option --title\n\ -k, --page-prefeed enable page prefeed\n\ -K, --no-page-prefeed disable page prefeed\n\ -l, --lineprinter simulate lineprinter, this is an alias for:\n\ --lines-per-page=66, --no-header, --portrait,\n\ --columns=1\n")); printf (_("\ -L, --lines-per-page=NUM specify how many lines are printed on each page\n\ -m, --mail send mail upon completion\n\ -M, --media=NAME use output media NAME\n\ -n, --copies=NUM print NUM copies of each page\n\ -N, --newline=NL select the newline character. Possible\n\ values for NL are: n (`\\n') and r (`\\r').\n\ -o an alias for option --output\n\ -O, --missing-characters list missing characters\n\ -p, --output=FILE leave output to file FILE. If FILE is `-',\n\ leave output to stdout.\n\ -P, --printer=NAME print output to printer NAME\n\ -q, --quiet, --silent be really quiet\n\ -r, --landscape print in landscape mode\n\ -R, --portrait print in portrait mode\n")); printf (_("\ -s, --baselineskip=NUM set baselineskip to NUM\n\ -S, --statusdict=KEY[:VALUE]\n\ pass a statusdict definition to the output\n\ -t, --title=TITLE set banner page's job title to TITLE. Option\n\ sets also the name of the input file stdin.\n\ -T, --tabsize=NUM set tabulator size to NUM\n\ -u[TEXT], --underlay[=TEXT] print TEXT under every page\n\ -U, --nup=NUM print NUM logical pages on each output page\n\ -v, --verbose tell what we are doing\n\ -V, --version print version number\n\ -w, --language=LANG set output language to LANG\n\ -W, --options=APP,OPTION pass option OPTION to helper application APP\n\ -X, --encoding=NAME use input encoding NAME\n\ -z, --no-formfeed do not interpret form feed characters\n\ -Z, --pass-through pass through PostScript and PCL files\n\ without any modifications\n")); printf (_("Long-only options:\n\ --color[=bool] create color outputs with states\n\ --continuous-page-numbers count page numbers across input files. Don't\n\ restart numbering at beginning of each file.\n\ --download-font=NAME download font NAME\n\ --extended-return-values enable extended return values\n\ --filter-stdin=NAME specify how stdin is shown to the input filter\n\ --footer=FOOTER set page footer\n\ --h-column-height=HEIGHT set the horizontal column height to HEIGHT\n\ --help print this help and exit\n")); printf (_("\ --help-highlight describe all supported --highlight languages\n\ and file formats\n\ --highlight-bar-gray=NUM print highlight bars with gray NUM (0 - 1)\n\ --list-media list names of all known media\n\ --margins=LEFT:RIGHT:TOP:BOTTOM\n\ adjust page marginals\n\ --mark-wrapped-lines[STYLE]\n\ mark wrapped lines in the output with STYLE\n\ --non-printable-format=FMT specify how non-printable chars are printed\n")); printf (_("\ --nup-columnwise layout pages in the N-up printing columnwise\n\ --nup-xpad=NUM set the page x-padding of N-up printing to NUM\n\ --nup-ypad=NUM set the page y-padding of N-up printing to NUM\n\ --page-label-format=FMT set page label format to FMT\n\ --ps-level=LEVEL set the PostScript language level that enscript\n\ should use\n\ --printer-options=OPTIONS pass extra options to the printer command\n\ --rotate-even-pages rotate even-numbered pages 180 degrees\n")); printf (_("\ --slice=NUM print vertical slice NUM\n\ --style=STYLE use highlight style STYLE\n\ --swap-even-page-margins swap left and right side margins for each even\n\ numbered page\n\ --toc print table of contents\n\ --ul-angle=ANGLE set underlay text's angle to ANGLE\n\ --ul-font=NAME print underlays with font NAME\n\ --ul-gray=NUM print underlays with gray value NUM\n\ --ul-position=POS set underlay's starting position to POS\n\ --ul-style=STYLE print underlays with style STYLE\n\ --word-wrap wrap long lines from word boundaries\n\ ")); printf (_("\nReport bugs to <%s>.\n"), PACKAGE_BUGREPORT); } static void version () { printf ("%s\n\ Copyright (C) 1995-2003, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.\n\ %s comes with NO WARRANTY, to the extent permitted by law.\n\ You may redistribute copies of %s under the terms of the GNU\n\ General Public License, version 3 or, at your option, any later version.\n\ For more information about these matters, see the files named COPYING.\n", PACKAGE_STRING, PACKAGE_NAME, PACKAGE_NAME); } enscript-1.6.5.90/src/gsint.h0000644000175000017500000003663411606320472012623 00000000000000/* * Internal header file. * Copyright (c) 1995-2000 Markku Rossi. * * Author: Markku Rossi */ /* * This file is part of GNU Enscript. * * Enscript is free software: you can redistribute 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. * * Enscript is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Enscript. If not, see . */ #ifndef GSINT_H #define GSINT_H /* * Config stuffs. */ #ifdef HAVE_CONFIG_H #include #endif #include #include #include #ifndef ___P #if PROTOTYPES #define ___P(protos) protos #else /* no PROTOTYPES */ #define ___P(protos) () #endif /* no PROTOTYPES */ #endif #if STDC_HEADERS #include #include #else /* no STDC_HEADERS */ #if HAVE_STDLIB_H #include #endif #if HAVE_STRING_H #include #endif #ifndef HAVE_STRCHR #define strchr index #define strrchr rindex #endif char *strchr (); char *strrchr (); #ifndef HAVE_STRERROR extern char *strerror ___P ((int)); #endif #ifndef HAVE_MEMMOVE extern void *memmove ___P ((void *, void *, size_t)); #endif #ifndef HAVE_MEMCPY extern void *memcpy ___P ((void *, void *, size_t)); #endif #endif /* no STDC_HEADERS */ #if HAVE_UNISTD_H #include #endif #if HAVE_MATH_H #include #else extern double atan2 ___P ((double, double)); #endif #include #include #include #include #if HAVE_PWD_H #include #else #include "dummypwd.h" #endif #include "gettext.h" #define _(String) gettext (String) #if HAVE_LC_MESSAGES #include #endif #ifndef HAVE_GETCWD #if HAVE_GETWD #define getcwd(buf, len) getwd(buf) #endif /* HAVE_GETWD */ #endif /* not HAVE_GETCWD */ #include "afm.h" #include "strhash.h" #include "xalloc.h" /* * Types and definitions. */ #define MATCH(a, b) (strcmp (a, b) == 0) #define ISNUMBERDIGIT(ch) \ (('0' <= (ch) && (ch) <= '9') || (ch) == '.' || (ch) == '-' || (ch) == '+') /* Return the width of the character */ #define CHAR_WIDTH(ch) (font_widths[(unsigned char) (ch)]) /* Current point y movement from line to line. */ #define LINESKIP (Fpt.h + baselineskip) /* Constants for output files. */ #define OUTPUT_FILE_NONE NULL #define OUTPUT_FILE_STDOUT ((char *) 1) /* Underlay styles. */ #define UL_STYLE_OUTLINE 0 #define UL_STYLE_FILLED 1 struct media_entry_st { struct media_entry_st *next; char *name; int w; int h; int llx; int lly; int urx; int ury; }; typedef struct media_entry_st MediaEntry; typedef enum { HDR_NONE, HDR_SIMPLE, HDR_FANCY } HeaderType; typedef enum { ENC_ISO_8859_1, ENC_ISO_8859_2, ENC_ISO_8859_3, ENC_ISO_8859_4, ENC_ISO_8859_5, ENC_ISO_8859_7, ENC_ISO_8859_9, ENC_ISO_8859_10, ENC_ASCII, ENC_ASCII_FISE, ENC_ASCII_DKNO, ENC_IBMPC, ENC_MAC, ENC_VMS, ENC_HP8, ENC_KOI8, ENC_PS } InputEncoding; struct encoding_registry_st { char *names[3]; InputEncoding encoding; int nl; int bs; }; typedef struct encoding_registry_st EncodingRegistry; typedef enum { LABEL_SHORT, LABEL_LONG } PageLabelFormat; typedef enum { MWLS_NONE = 0, MWLS_PLUS = 1, MWLS_BOX = 2, MWLS_ARROW = 3 } MarkWrappedLinesStyle; typedef enum { NPF_SPACE, NPF_QUESTIONMARK, NPF_CARET, NPF_OCTAL } NonPrintableFormat; typedef enum { FORMFEED_COLUMN, FORMFEED_PAGE, FORMFEED_HCOLUMN } FormFeedType; typedef enum { LE_TRUNCATE, LE_CHAR_WRAP, LE_WORD_WRAP } LineEndType; struct buffer_st { char *data; size_t allocated; size_t len; }; typedef struct buffer_st Buffer; struct file_lookup_ctx_st { /* The name of the file to lookup. */ char *name; /* The suffix of the file. This string is appended to . */ char *suffix; /* Buffer to which the name of the file is constructed. If the file_lookup() returns 1, the name of the file is here. The caller of the file_lookup() must allocate this buffer. */ Buffer *fullname; }; typedef struct file_lookup_ctx_st FileLookupCtx; typedef int (*PathWalkProc) ___P ((char *path, void *context)); struct input_stream_st { int is_pipe; /* Is opened to pipe? */ FILE *fp; unsigned char buf[4096]; unsigned int data_in_buf; unsigned int bufpos; unsigned int nreads; unsigned char *unget_ch; unsigned int unget_pos; unsigned int unget_alloc; }; typedef struct input_stream_st InputStream; struct page_range_st { struct page_range_st *next; int odd; int even; unsigned int start; unsigned int end; }; typedef struct page_range_st PageRange; struct font_point_st { double w; /* width */ double h; /* height */ }; typedef struct font_point_st FontPoint; struct color_st { float r; float g; float b; }; typedef struct color_st Color; struct cached_font_info_st { double font_widths[256]; char font_ctype[256]; AFMBoolean font_is_fixed; AFMNumber font_bbox_lly; }; typedef struct cached_font_info_st CachedFontInfo; /* * Global variables. */ extern char *program; extern FILE *ofp; extern char *date_string; extern struct tm run_tm; extern struct tm mod_tm; extern struct passwd *passwd; extern char *libpath; extern char *afm_path; extern MediaEntry *media_names; extern MediaEntry *media; extern char *no_job_header_switch; extern char *output_first_line; extern char *queue_param; extern char *spooler_command; extern int nl; extern int bs; extern unsigned int current_pagenum; extern unsigned int input_filenum; extern unsigned int current_file_linenum; extern char *fname; /* Statistics. */ extern int total_pages; extern int num_truncated_lines; extern int num_missing_chars; extern int missing_chars[]; extern int num_non_printable_chars; extern int non_printable_chars[]; /* Dimensions that are used during PostScript generation. */ extern int d_page_w; extern int d_page_h; extern int d_header_w; extern int d_header_h; extern int d_footer_h; extern int d_output_w; extern int d_output_h; extern int d_output_x_margin; extern int d_output_y_margin; extern unsigned int nup_xpad; extern unsigned int nup_ypad; /* Document needed resources. */ extern StringHashPtr res_fonts; /* Fonts to download. */ extern StringHashPtr download_fonts; /* Additional key-value pairs, passed to the generated PostScript code. */ extern StringHashPtr pagedevice; extern StringHashPtr statusdict; /* User defined strings. */ extern StringHashPtr user_strings; /* Cache for AFM files. */ extern StringHashPtr afm_cache; extern StringHashPtr afm_info_cache; /* AFM library handle. */ extern AFMHandle afm; /* Fonts. */ extern char *HFname; extern FontPoint HFpt; extern char *Fname; extern FontPoint Fpt; extern FontPoint default_Fpt; extern char *default_Fname; extern InputEncoding default_Fencoding; extern double font_widths[]; extern char font_ctype[]; extern int font_is_fixed; extern double font_bbox_lly; /* Known input encodings. */ extern EncodingRegistry encodings[]; /* Options. */ extern char *printer; extern int verbose; extern int num_copies; extern char *title; extern int num_columns; extern LineEndType line_end; extern int quiet; extern int landscape; extern HeaderType header; extern char *fancy_header_name; extern char *fancy_header_default; extern double line_indent; extern char *page_header; extern char *page_footer; extern char *output_file; extern unsigned int lines_per_page; extern InputEncoding encoding; extern char *media_name; extern char *encoding_name; extern int special_escapes; extern int escape_char; extern int default_escape_char; extern int tabsize; extern double baselineskip; extern FontPoint ul_ptsize; extern double ul_gray; extern char *ul_font; extern char *underlay; extern char *ul_position; extern double ul_x; extern double ul_y; extern double ul_angle; extern unsigned int ul_style; extern char *ul_style_str; extern int ul_position_p; extern int ul_angle_p; extern PageLabelFormat page_label; extern char *page_label_format; extern int pass_through; extern int line_numbers; extern unsigned int start_line_number; extern int interpret_formfeed; extern NonPrintableFormat non_printable_format; extern MarkWrappedLinesStyle mark_wrapped_lines_style; extern char *mark_wrapped_lines_style_name; extern char *npf_name; extern int clean_7bit; extern int append_ctrl_D; extern unsigned int highlight_bars; extern double highlight_bar_gray; extern int page_prefeed; extern PageRange *page_ranges; extern int borders; extern double line_highlight_gray; extern double bggray; extern int accept_composites; extern FormFeedType formfeed_type; extern char *input_filter_stdin; extern int toc; extern FILE *toc_fp; extern char *toc_fmt_string; extern unsigned int file_align; extern int slicing; extern unsigned int slice; extern char *states_binary; extern int states_color; extern char *states_config_file; extern char *states_highlight_style; extern char *states_path; extern unsigned int nup; extern unsigned int nup_rows; extern unsigned int nup_columns; extern int nup_landscape; extern unsigned int nup_width; extern unsigned int nup_height; extern double nup_scale; extern int nup_columnwise; extern char *output_language; extern int output_language_pass_through; extern int generate_PageSize; extern double horizontal_column_height; extern unsigned int pslevel; extern int rotate_even_pages; extern int swap_even_page_margins; extern int continuous_page_numbers; /* * Prototypes for global functions. */ /* Print message if is >= . */ #define MESSAGE(verbose_level, body) \ do { \ if (!quiet && verbose >= (verbose_level)) \ fprintf body; \ } while (0) /* Report continuable error. */ #define ERROR(body) \ do { \ fprintf (stderr, "%s: ", program); \ fprintf body; \ fprintf (stderr, "\n"); \ fflush (stderr); \ } while (0) /* Report fatal error and exit with status 1. Function never returns. */ #define FATAL(body) \ do { \ fprintf (stderr, "%s: ", program); \ fprintf body; \ fprintf (stderr, "\n"); \ fflush (stderr); \ exit (1); \ } while (0) /* * Read config file . Returns bool. If function fails, error * is found from errno. */ int read_config ___P ((char *path, char *name)); /* Print PostScript header to our output stream. */ void dump_ps_header ___P ((void)); /* Print PostScript trailer to our output stream. */ void dump_ps_trailer ___P ((void)); /* * Open InputStream to or . If is given * it is used to pre-filter the incoming data stream. Function returns * 1 if stream could be opened or 0 otherwise. */ int is_open ___P ((InputStream *is, FILE *fp, char *fname, char *input_filter)); /* Close InputStream . */ void is_close ___P ((InputStream *is)); /* * Read next character from the InputStream . Returns EOF if * EOF was reached. */ int is_getc ___P ((InputStream *is)); /* * Put character back to the InputStream . Function returns EOF * if character couldn't be unget. */ int is_ungetc ___P ((int ch, InputStream *is)); void buffer_init ___P ((Buffer *buffer)); void buffer_uninit ___P ((Buffer *buffer)); Buffer *buffer_alloc (); void buffer_free ___P ((Buffer *buffer)); void buffer_append ___P ((Buffer *buffer, const char *data)); void buffer_append_len ___P ((Buffer *buffer, const char *data, size_t len)); char *buffer_copy ___P ((Buffer *buffer)); void buffer_clear ___P ((Buffer *buffer)); char *buffer_ptr ___P ((Buffer *buffer)); size_t buffer_len ___P ((Buffer *buffer)); /* * Process single input file . File's name is given in and * it is used to print headers. The argument specifies whether * the file is a table of contents file or not. */ void process_file ___P ((char *fname, InputStream *fp, int is_toc)); /* Add a new media to the list of known media. */ void add_media ___P ((char *name, int w, int h, int llx, int lly, int urx, int ury)); /* Print a listing of missing characters. */ void do_list_missing_characters ___P ((int *array)); /* * Check if file exists. Returns bool. If function fails * error can be found from errno. */ int file_existsp ___P ((char *name, char *suffix)); /* * Paste file to output stream. Returns bool. If * function fails, error can be found from errno. */ int paste_file ___P ((char *name, char *suffix)); /* * Do tilde substitution for filename . The function returns a * xmalloc()ated result that must be freed by the caller. */ char *tilde_subst ___P ((char *fname)); /* * Parse one float dimension from string . If is true, * then number can be followed by an optional unit specifier. If * is true, then dimension is horizontal, otherwise it * is vertical. */ double parse_float ___P ((char *string, int units, int horizontal)); /* * Parse font spec and return font's name, size, and encoding * in variables , , and . * Returns 1 if was a valid font spec or 0 otherwise. Returned * name is allocated with xcalloc() and must be freed by * caller. */ int parse_font_spec ___P ((char *spec, char **name_return, FontPoint *size_return, InputEncoding *encoding_return)); /* * Read body font's character widths and character codes from AFM files. */ void read_font_info ___P ((void)); /* * Try to download font . */ void download_font ___P ((char *name)); /* * Escape all PostScript string's special characters from string . * Returns a xmalloc()ated result. */ char *escape_string ___P ((char *string)); /* * Expand user escapes from string . Returns a xmalloc()ated * result. */ char *format_user_string ___P ((char *context_name, char *string)); /* * Parses key-value pair and inserts/deletes key from . */ void parse_key_value_pair ___P ((StringHashPtr set, char *kv)); /* * Count how many non-empty items there are in the key-value set . */ int count_key_value_set ___P ((StringHashPtr set)); /* * Walk through path and call once for each of its * components. Function returns 0 if all components were accessed. * Callback can interrupt walking by returning a non zero * return value. In that case value is returned as the return value * of the pathwalk(). */ int pathwalk ___P ((char *path, PathWalkProc proc, void *context)); /* Lookup file from path. must point to FileLookupCtx. */ int file_lookup ___P ((char *path, void *context)); /* * Portable printer interface. */ /* * Open and initialize printer , , and * . Function returns a FILE pointer to which enscript * can generate its PostScript output or NULL if printer * initialization failed. Command can store its context information * to variable wich is passed as an argument to the * printer_close() function. */ FILE *printer_open ___P ((char *cmd, char *options, char *queue_param, char *printer_name, void **context_return)); /* * Flush all pending output to printer and close it. */ void printer_close ___P ((void *context)); /* * Escape filenames for shell usage */ char *shell_escape ___P ((const char *fn)); #endif /* not GSINT_H */ enscript-1.6.5.90/src/util.c0000644000175000017500000013156411401310547012440 00000000000000/* * Help utilities. * Copyright (c) 1995-1999 Markku Rossi. * * Author: Markku Rossi */ /* * This file is part of GNU Enscript. * * Enscript is free software: you can redistribute 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. * * Enscript is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Enscript. If not, see . */ #include "gsint.h" /* * Types and definitions. */ #define CFG_FATAL(body) \ do { \ fprintf (stderr, "%s:%s:%d: ", program, buffer_ptr(&fname), line); \ fprintf body; \ fprintf (stderr, "\n"); \ fflush (stderr); \ exit (1); \ } while (0) /* * Static variables. */ /* * 7bit ASCII fi(nland), se (sweden) scand encodings (additions to 7bit ASCII * enc). */ static struct { int code; char *name; } enc_7bit_ascii_fise[] = { {'{', "adieresis"}, {'|', "odieresis"}, {'}', "aring"}, {'[', "Adieresis"}, {'\\', "Odieresis"}, {']', "Aring"}, {0, NULL}, }; /* * 7bit ASCII dk (denmark), no(rway) scand encodings (additions to 7bit ASCII * enc). */ static struct { int code; char *name; } enc_7bit_ascii_dkno[] = { {'{', "ae"}, {'|', "oslash"}, {'}', "aring"}, {'[', "AE"}, {'\\', "Oslash"}, {']', "Aring"}, {0, NULL}, }; /* * Global functions. */ #define GET_TOKEN(from) (strtok ((from), " \t\n")) #define GET_LINE_TOKEN(from) (strtok ((from), "\n")) #define CHECK_TOKEN() \ if (token2 == NULL) \ CFG_FATAL ((stderr, _("missing argument: %s"), token)); int read_config (char *path, char *file) { FILE *fp; Buffer fname; char buf[4096]; char *token, *token2; int line = 0; buffer_init (&fname); buffer_append (&fname, path); buffer_append (&fname, "/"); buffer_append (&fname, file); fp = fopen (buffer_ptr (&fname), "r"); /* We wait to uninit the buffer so that CFG_FATAL can use it. */ if (fp == NULL) { buffer_uninit (&fname); return 0; } while (fgets (buf, sizeof (buf), fp)) { line++; if (buf[0] == '#') continue; token = GET_TOKEN (buf); if (token == NULL) /* Empty line. */ continue; if (MATCH (token, "AcceptCompositeCharacters:")) { token2 = GET_TOKEN (NULL); CHECK_TOKEN (); accept_composites = atoi (token2); } else if (MATCH (token, "AFMPath:")) { token2 = GET_TOKEN (NULL); CHECK_TOKEN (); xfree (afm_path); afm_path = xstrdup (token2); } else if (MATCH (token, "AppendCtrlD:")) { token2 = GET_TOKEN (NULL); CHECK_TOKEN (); append_ctrl_D = atoi (token2); } else if (MATCH (token, "Clean7Bit:")) { token2 = GET_TOKEN (NULL); CHECK_TOKEN (); clean_7bit = atoi (token2); } else if (MATCH (token, "DefaultEncoding:")) { token2 = GET_TOKEN (NULL); CHECK_TOKEN (); xfree (encoding_name); encoding_name = xstrdup (token2); } else if (MATCH (token, "DefaultFancyHeader:")) { token2 = GET_TOKEN (NULL); CHECK_TOKEN (); xfree (fancy_header_default); fancy_header_default = xstrdup (token2); } else if (MATCH (token, "DefaultMedia:")) { token2 = GET_TOKEN (NULL); CHECK_TOKEN (); xfree (media_name); media_name = xstrdup (token2); } else if (MATCH (token, "DefaultOutputMethod:")) { token2 = GET_TOKEN (NULL); CHECK_TOKEN (); if (MATCH (token2, "printer")) output_file = OUTPUT_FILE_NONE; else if (MATCH (token2, "stdout")) output_file = OUTPUT_FILE_STDOUT; else CFG_FATAL ((stderr, _("illegal value \"%s\" for option %s"), token2, token)); } else if (MATCH (token, "DownloadFont:")) { token2 = GET_TOKEN (NULL); CHECK_TOKEN (); strhash_put (download_fonts, token2, strlen (token2) + 1, NULL, NULL); } else if (MATCH (token, "EscapeChar:")) { token2 = GET_TOKEN (NULL); CHECK_TOKEN (); escape_char = atoi (token2); if (escape_char < 0 || escape_char > 255) CFG_FATAL ((stderr, _("invalid value \"%s\" for option %s"), token2, token)); } else if (MATCH (token, "FormFeedType:")) { token2 = GET_TOKEN (NULL); CHECK_TOKEN (); if (MATCH (token2, "column")) formfeed_type = FORMFEED_COLUMN; else if (MATCH (token2, "page")) formfeed_type = FORMFEED_PAGE; else CFG_FATAL ((stderr, _("illegal value \"%s\" for option %s"), token2, token)); } else if (MATCH (token, "GeneratePageSize:")) { token2 = GET_TOKEN (NULL); CHECK_TOKEN (); generate_PageSize = atoi (token2); } else if (MATCH (token, "HighlightBarGray:")) { token2 = GET_TOKEN (NULL); CHECK_TOKEN (); highlight_bar_gray = atof (token2); } else if (MATCH (token, "HighlightBars:")) { token2 = GET_TOKEN (NULL); CHECK_TOKEN (); highlight_bars = atoi (token2); } else if (MATCH (token, "LibraryPath:")) { token2 = GET_TOKEN (NULL); CHECK_TOKEN (); xfree (libpath); libpath = xstrdup (token2); } else if (MATCH (token, "MarkWrappedLines:")) { token2 = GET_TOKEN (NULL); CHECK_TOKEN (); xfree (mark_wrapped_lines_style_name); mark_wrapped_lines_style_name = xstrdup (token2); } else if (MATCH (token, "Media:")) { char *name; int w, h, llx, lly, urx, ury; token2 = GET_TOKEN (NULL); CHECK_TOKEN (); name = token2; token2 = GET_TOKEN (NULL); CHECK_TOKEN (); w = atoi (token2); token2 = GET_TOKEN (NULL); CHECK_TOKEN (); h = atoi (token2); token2 = GET_TOKEN (NULL); CHECK_TOKEN (); llx = atoi (token2); token2 = GET_TOKEN (NULL); CHECK_TOKEN (); lly = atoi (token2); token2 = GET_TOKEN (NULL); CHECK_TOKEN (); urx = atoi (token2); token2 = GET_TOKEN (NULL); CHECK_TOKEN (); ury = atoi (token2); add_media (name, w, h, llx, lly, urx, ury); } else if (MATCH (token, "NoJobHeaderSwitch:")) { token2 = GET_LINE_TOKEN (NULL); CHECK_TOKEN (); xfree (no_job_header_switch); no_job_header_switch = xstrdup (token2); } else if (MATCH (token, "NonPrintableFormat:")) { token2 = GET_TOKEN (NULL); CHECK_TOKEN (); xfree (npf_name); npf_name = xstrdup (token2); } else if (MATCH (token, "OutputFirstLine:")) { token2 = GET_LINE_TOKEN (NULL); CHECK_TOKEN (); xfree (output_first_line); output_first_line = xstrdup (token2); } else if (MATCH (token, "PageLabelFormat:")) { token2 = GET_TOKEN (NULL); CHECK_TOKEN (); xfree (page_label_format); page_label_format = xstrdup (token2); } else if (MATCH (token, "PagePrefeed:")) { token2 = GET_TOKEN (NULL); CHECK_TOKEN (); page_prefeed = atoi (token2); } else if (MATCH (token, "PostScriptLevel:")) { token2 = GET_TOKEN (NULL); CHECK_TOKEN (); pslevel = atoi (token2); } else if (MATCH (token, "Printer:")) { token2 = GET_TOKEN (NULL); CHECK_TOKEN (); xfree (printer); printer = xstrdup (token2); } else if (MATCH (token, "QueueParam:")) { token2 = GET_LINE_TOKEN (NULL); CHECK_TOKEN (); xfree (queue_param); queue_param = xstrdup (token2); } else if (MATCH (token, "SetPageDevice:")) { token2 = GET_LINE_TOKEN (NULL); CHECK_TOKEN (); parse_key_value_pair (pagedevice, token2); } else if (MATCH (token, "Spooler:")) { token2 = GET_TOKEN (NULL); CHECK_TOKEN (); xfree (spooler_command); spooler_command = xstrdup (token2); } else if (MATCH (token, "StatesBinary:")) { token2 = GET_TOKEN (NULL); CHECK_TOKEN (); xfree (states_binary); states_binary = xstrdup (token2); } else if (MATCH (token, "StatesColor:")) { token2 = GET_TOKEN (NULL); CHECK_TOKEN (); states_color = atoi (token2); } else if (MATCH (token, "StatesConfigFile:")) { token2 = GET_LINE_TOKEN (NULL); CHECK_TOKEN (); xfree (states_config_file); states_config_file = xstrdup (token2); } else if (MATCH (token, "StatesHighlightStyle:")) { token2 = GET_TOKEN (NULL); CHECK_TOKEN (); xfree (states_highlight_style); states_highlight_style = xstrdup (token2); } else if (MATCH (token, "StatesPath:")) { token2 = GET_LINE_TOKEN (NULL); CHECK_TOKEN (); xfree (states_path); states_path = xstrdup (token2); } else if (MATCH (token, "StatusDict:")) { token2 = GET_TOKEN (NULL); CHECK_TOKEN (); parse_key_value_pair (statusdict, token2); } else if (MATCH (token, "TOCFormat:")) { token2 = GET_LINE_TOKEN (NULL); CHECK_TOKEN (); toc_fmt_string = xstrdup (token2); } else if (MATCH (token, "Underlay:")) { token2 = GET_LINE_TOKEN (NULL); CHECK_TOKEN (); underlay = xmalloc (strlen (token2) + 1); strcpy (underlay, token2); } else if (MATCH (token, "UnderlayAngle:")) { token2 = GET_TOKEN (NULL); CHECK_TOKEN (); ul_angle = atof (token2); ul_angle_p = 1; } else if (MATCH (token, "UnderlayFont:")) { token2 = GET_TOKEN (NULL); CHECK_TOKEN (); if (!parse_font_spec (token2, &ul_font, &ul_ptsize, NULL)) CFG_FATAL ((stderr, _("malformed font spec: %s"), token2)); } else if (MATCH (token, "UnderlayGray:")) { token2 = GET_TOKEN (NULL); CHECK_TOKEN (); ul_gray = atof (token2); } else if (MATCH (token, "UnderlayPosition:")) { token2 = GET_TOKEN (NULL); CHECK_TOKEN (); xfree (ul_position); ul_position = xstrdup (token2); ul_position_p = 1; } else if (MATCH (token, "UnderlayStyle:")) { token2 = GET_TOKEN (NULL); CHECK_TOKEN (); xfree (ul_style_str); ul_style_str = xstrdup (token2); } else CFG_FATAL ((stderr, _("illegal option: %s"), token)); } buffer_uninit (&fname); return 1; } void add_media (char *name, int w, int h, int llx, int lly, int urx, int ury) { MediaEntry *entry; MESSAGE (2, (stderr, "add_media: name=%s, w=%d, h=%d, llx=%d, lly=%d, urx=%d, ury=%d\n", name, w, h, llx, lly, urx, ury)); entry = xcalloc (1, sizeof (*entry)); entry->name = xmalloc (strlen (name) + 1); strcpy (entry->name, name); entry->w = w; entry->h = h; entry->llx = llx; entry->lly = lly; entry->urx = urx; entry->ury = ury; entry->next = media_names; media_names = entry; } void do_list_missing_characters (int *array) { int i; int count = 0; for (i = 0; i < 256; i++) if (array[i]) { fprintf (stderr, "%3d ", i); count++; if (count % 15 == 0) fprintf (stderr, "\n"); } if (count % 15 != 0) fprintf (stderr, "\n"); } int file_existsp (char *name, char *suffix) { FileLookupCtx ctx; int result; ctx.name = name; ctx.suffix = suffix ? suffix : ""; ctx.fullname = buffer_alloc (); result = pathwalk (libpath, file_lookup, &ctx); buffer_free (ctx.fullname); return result; } int paste_file (char *name, char *suffix) { char buf[512]; char resources[512]; FILE *fp; FileLookupCtx ctx; int pending_comment = 0; int line = 0; ctx.name = name; ctx.suffix = suffix ? suffix : ""; ctx.fullname = buffer_alloc (); if (!pathwalk (libpath, file_lookup, &ctx)) { buffer_free (ctx.fullname); return 0; } fp = fopen (buffer_ptr (ctx.fullname), "r"); if (fp == NULL) { buffer_free (ctx.fullname); return 0; } /* Find the end of the header. */ #define HDR_TAG "% -- code follows this line --" while ((fgets (buf, sizeof (buf), fp))) { line++; if (strncmp (buf, HDR_TAG, strlen (HDR_TAG)) == 0) break; } /* Dump rest of file. */ while ((fgets (buf, sizeof (buf), fp))) { line++; /* * Document needed resources? */ #define RESOURCE_DSC "%%DocumentNeededResources:" #define CONT_DSC "%%+" if (strncmp (buf, RESOURCE_DSC, strlen (RESOURCE_DSC)) == 0) { char *cp, *cp2; strcpy (resources, buf + strlen (RESOURCE_DSC)); pending_comment = 1; parse_resources: /* Register needed resources. */ cp = GET_TOKEN (resources); if (cp == NULL) /* Get the next line. */ continue; if (MATCH (cp, "font")) { for (cp = GET_TOKEN (NULL); cp; cp = GET_TOKEN (NULL)) /* Is this font already known? */ if (!strhash_get (res_fonts, cp, strlen (cp) + 1, (void **) &cp2)) { /* Not it is not, we must include this resource. */ fprintf (ofp, "%%%%IncludeResource: font %s\n", cp); /* * And register that this resource is needed in * this document. */ strhash_put (res_fonts, cp, strlen (cp) + 1, NULL, NULL); } /* Do not pass this DSC row to the output. */ continue; } else /* Unknown resource, ignore. */ continue; } else if (pending_comment && strncmp (buf, CONT_DSC, strlen (CONT_DSC)) == 0) { strcpy (resources, buf + strlen (CONT_DSC)); goto parse_resources; } else pending_comment = 0; /* * `%Format' directive? */ #define DIRECTIVE_FORMAT "%Format:" if (strncmp (buf, DIRECTIVE_FORMAT, strlen (DIRECTIVE_FORMAT)) == 0) { int i, j; char name[256]; char *cp, *cp2; errno = 0; /* Skip the leading whitespace. */ for (i = strlen (DIRECTIVE_FORMAT); buf[i] && isspace (buf[i]); i++) ; if (!buf[i]) FATAL ((stderr, _("%s:%d: %%Format: no name"), buffer_ptr (ctx.fullname), line)); /* Copy name. */ for (j = 0; j < sizeof (name) - 1 && buf[i] && !isspace (buf[i]); i++) name[j++] = buf[i]; name[j] = '\0'; if (j >= sizeof (name) - 1) FATAL ((stderr, _("%s:%d: %%Format: too long name, maxlen=%d"), buffer_ptr (ctx.fullname), line, sizeof (name) - 1)); /* Find the start of the format string. */ for (; buf[i] && isspace (buf[i]); i++) ; /* Find the end. */ j = strlen (buf); for (j--; isspace (buf[j]) && j > i; j--) ; j++; MESSAGE (2, (stderr, "%%Format: %s %.*s\n", name, j - i, buf + i)); cp = xmalloc (j - i + 1); memcpy (cp, buf + i, j - i); cp[j - i] = '\0'; strhash_put (user_strings, name, strlen (name) + 1, cp, (void **) &cp2); if (cp2) FATAL ((stderr, _("%s:%d: %%Format: name \"%s\" is already defined"), buffer_ptr (ctx.fullname), line, name)); /* All done with the `%Format' directive. */ continue; } /* * `%HeaderHeight' directive? */ #define DIRECTIVE_HEADERHEIGHT "%HeaderHeight:" if (strncmp (buf, DIRECTIVE_HEADERHEIGHT, strlen (DIRECTIVE_HEADERHEIGHT)) == 0) { int i; /* Find the start of the pts argument. */ for (i = strlen (DIRECTIVE_HEADERHEIGHT); buf[i] && !isspace (buf[i]); i++) ; if (!buf[i]) FATAL ((stderr, _("%s:%d: %%HeaderHeight: no argument"), buffer_ptr (ctx.fullname), line)); d_header_h = atoi (buf + i); MESSAGE (2, (stderr, "%%HeaderHeight: %d\n", d_header_h)); continue; } /* * `%FooterHeight' directive? */ #define DIRECTIVE_FOOTERHEIGHT "%FooterHeight:" if (strncmp (buf, DIRECTIVE_FOOTERHEIGHT, strlen (DIRECTIVE_FOOTERHEIGHT)) == 0) { int i; /* Find the start of the pts argument. */ for (i = strlen (DIRECTIVE_FOOTERHEIGHT); buf[i] && !isspace (buf[i]); i++) ; if (!buf[i]) FATAL ((stderr, _("%s:%d: %%FooterHeight: no argument"), buffer_ptr (ctx.fullname), line)); d_footer_h = atoi (buf + i); MESSAGE (2, (stderr, "%%FooterHeight: %d\n", d_footer_h)); continue; } /* Nothing special, just copy it to the output. */ fputs (buf, ofp); } fclose (fp); buffer_free (ctx.fullname); return 1; } int parse_font_spec (char *spec_a, char **name_return, FontPoint *size_return, InputEncoding *encoding_return) { int i, j; char *cp, *cp2; char *spec; char *encp; spec = xstrdup (spec_a); /* Check for the `namesize:encoding' format. */ encp = strrchr (spec, ':'); if (encp) { *encp = '\0'; encp++; } /* The `name@ptsize' format? */ cp = strchr (spec, '@'); if (cp) { i = cp - spec; if (cp[1] == '\0') { /* No ptsize after '@'. */ xfree (spec); return 0; } cp++; } else { /* The old `nameptsize' format. */ i = strlen (spec) - 1; if (i <= 0 || !ISNUMBERDIGIT (spec[i])) { xfree (spec); return 0; } for (i--; i >= 0 && ISNUMBERDIGIT (spec[i]); i--) ; if (i < 0) { xfree (spec); return 0; } if (spec[i] == '/') { /* We accept one slash for the `pt/pt' format. */ for (i--; i >= 0 && ISNUMBERDIGIT (spec[i]); i--) ; if (i < 0) { xfree (spec); return 0; } } i++; /* Now, points to the end of the name. Let's set the to the beginning of the point size and share a little code with the other format. */ cp = spec + i; } /* Check the font point size. */ cp2 = strchr (cp, '/'); if (cp2) { *cp2++ = '\0'; size_return->w = atof (cp); size_return->h = atof (cp2); } else size_return->w = size_return->h = atof (cp); /* Extract the font name. */ *name_return = (char *) xcalloc (1, i + 1); strncpy (*name_return, spec, i); /* Check the input encoding. */ if (encp) { int found = 0; if (encoding_return == NULL) { /* We don't allow it here. */ xfree (spec); return 0; } for (i = 0; !found && encodings[i].names[0]; i++) for (j = 0; j < 3; j++) if (encodings[i].names[j] != NULL && MATCH (encodings[i].names[j], encp)) { /* Found a match. */ *encoding_return = encodings[i].encoding; encp = encodings[i].names[0]; found = 1; break; } if (!found) { xfree (spec); return 0; } } else { /* The spec didn't contain the encoding part. Use our global default. */ encp = encoding_name; if (encoding_return) *encoding_return = encoding; } xfree (spec); MESSAGE (2, (stderr, "parse_font_spec(): name=%.*s, size=%g/%g, encoding=%s\n", i, *name_return, size_return->w, size_return->h, encp)); if (size_return->w < 0.0 && size_return->h < 0.0) MESSAGE (0, (stderr, _("%s: warning: font size is negative\n"), program)); else if (size_return->w < 0.0) MESSAGE (0, (stderr, _("%s: warning: font width is negative\n"), program)); else if (size_return->h < 0.0) MESSAGE (0, (stderr, _("%s: warning: font height is negative\n"), program)); return 1; } void read_font_info (void) { CachedFontInfo *font_info; AFMFont font; int font_info_cached = 1; int font_cached = 1; int i; unsigned int enc_flags = 0; char buf[256]; Buffer fkey; MESSAGE (2, (stderr, _("reading AFM info for font \"%s\"\n"), Fname)); if (accept_composites) enc_flags = AFM_ENCODE_ACCEPT_COMPOSITES; /* Open font */ buffer_init (&fkey); buffer_append (&fkey, Fname); sprintf (buf, "@%f:%d", Fpt.w, encoding); buffer_append (&fkey, buf); if (!strhash_get (afm_info_cache, buffer_ptr (&fkey), strlen (buffer_ptr (&fkey)), (void **) &font_info)) { AFMError error; /* Couldn't find it from our cache, open open AFM file. */ if (!strhash_get (afm_cache, Fname, strlen (Fname), (void **) &font)) { /* AFM file was not cached, open it from disk. */ error = afm_open_font (afm, AFM_I_COMPOSITES, Fname, &font); if (error != AFM_SUCCESS) { #define COUR "Courier" /* * Do not report failures for "Courier*" fonts because * AFM library's default font will fix them. */ if (strncmp (Fname, COUR, strlen (COUR)) != 0) MESSAGE (0, (stderr, _("couldn't open AFM file for font \"%s\", using default\n"), Fname)); error = afm_open_default_font (afm, &font); if (error != AFM_SUCCESS) { afm_error_to_string (error, buf); FATAL ((stderr, _("couldn't open AFM file for the default font: %s"), buf)); } } /* Apply encoding. */ switch (encoding) { case ENC_ISO_8859_1: (void) afm_font_encoding (font, AFM_ENCODING_ISO_8859_1, enc_flags); break; case ENC_ISO_8859_2: (void) afm_font_encoding (font, AFM_ENCODING_ISO_8859_2, enc_flags); break; case ENC_ISO_8859_3: (void) afm_font_encoding (font, AFM_ENCODING_ISO_8859_3, enc_flags); break; case ENC_ISO_8859_4: (void) afm_font_encoding (font, AFM_ENCODING_ISO_8859_4, enc_flags); break; case ENC_ISO_8859_5: (void) afm_font_encoding (font, AFM_ENCODING_ISO_8859_5, enc_flags); break; case ENC_ISO_8859_7: (void) afm_font_encoding (font, AFM_ENCODING_ISO_8859_7, enc_flags); break; case ENC_ISO_8859_9: (void) afm_font_encoding (font, AFM_ENCODING_ISO_8859_9, enc_flags); break; case ENC_ISO_8859_10: (void) afm_font_encoding (font, AFM_ENCODING_ISO_8859_10, enc_flags); break; case ENC_ASCII: (void) afm_font_encoding (font, AFM_ENCODING_ASCII, enc_flags); break; case ENC_ASCII_FISE: /* First apply standard 7bit ASCII encoding. */ (void) afm_font_encoding (font, AFM_ENCODING_ASCII, enc_flags); /* Then add those scand characters. */ for (i = 0; enc_7bit_ascii_fise[i].name; i++) (void) afm_font_encode (font, enc_7bit_ascii_fise[i].code, enc_7bit_ascii_fise[i].name, enc_flags); break; case ENC_ASCII_DKNO: /* First apply standard 7bit ASCII encoding. */ (void) afm_font_encoding (font, AFM_ENCODING_ASCII, enc_flags); /* Then add those scand characters. */ for (i = 0; enc_7bit_ascii_dkno[i].name; i++) (void) afm_font_encode (font, enc_7bit_ascii_dkno[i].code, enc_7bit_ascii_dkno[i].name, enc_flags); break; case ENC_IBMPC: (void) afm_font_encoding (font, AFM_ENCODING_IBMPC, enc_flags); break; case ENC_MAC: (void) afm_font_encoding (font, AFM_ENCODING_MAC, enc_flags); break; case ENC_VMS: (void) afm_font_encoding (font, AFM_ENCODING_VMS, enc_flags); break; case ENC_HP8: (void) afm_font_encoding (font, AFM_ENCODING_HP8, enc_flags); break; case ENC_KOI8: (void) afm_font_encoding (font, AFM_ENCODING_KOI8, enc_flags); break; case ENC_PS: /* Let's use font's default encoding -- nothing here. */ break; } /* Put it to the AFM cache. */ if (!strhash_put (afm_cache, Fname, strlen (Fname), font, NULL)) font_cached = 0; } font_info = (CachedFontInfo *) xcalloc (1, sizeof (*font_info)); /* Read character widths and types. */ for (i = 0; i < 256; i++) { AFMNumber w0x, w0y; (void) afm_font_charwidth (font, Fpt.w, i, &w0x, &w0y); font_info->font_widths[i] = w0x; if (font->encoding[i] == AFM_ENC_NONE) font_info->font_ctype[i] = ' '; else if (font->encoding[i] == AFM_ENC_NON_EXISTENT) font_info->font_ctype[i] = '.'; else font_info->font_ctype[i] = '*'; } font_info->font_is_fixed = font->writing_direction_metrics[0].IsFixedPitch; font_info->font_bbox_lly = font->global_info.FontBBox_lly; if (!font_cached) (void) afm_close_font (font); /* Store font information to the AFM information cache. */ if (!strhash_put (afm_info_cache, buffer_ptr (&fkey), strlen (buffer_ptr (&fkey)), font_info, NULL)) font_info_cached = 0; } /* Select character widths and types. */ memcpy (font_widths, font_info->font_widths, 256 * sizeof (double)); memcpy (font_ctype, font_info->font_ctype, 256); font_is_fixed = font_info->font_is_fixed; font_bbox_lly = font_info->font_bbox_lly; if (!font_info_cached) xfree (font_info); buffer_uninit (&fkey); } void download_font (char *name) { AFMError error; const char *prefix; struct stat stat_st; Buffer fname; unsigned char buf[4096]; FILE *fp; int i; char *cp; /* Get font prefix. */ error = afm_font_prefix (afm, name, &prefix); if (error != AFM_SUCCESS) /* Font is unknown, nothing to download. */ return; /* Check if we have a font description file. */ buffer_init (&fname); /* .pfa */ buffer_append (&fname, prefix); buffer_append (&fname, ".pfa"); if (stat (buffer_ptr (&fname), &stat_st) != 0) { /* .pfb */ buffer_clear (&fname); buffer_append (&fname, prefix); buffer_append (&fname, ".pfb"); if (stat (buffer_ptr (&fname), &stat_st) != 0) { /* Couldn't find font description file, nothing to download. */ buffer_uninit (&fname); return; } } /* Ok, fine. Font was found. */ MESSAGE (1, (stderr, _("downloading font \"%s\"\n"), name)); fp = fopen (buffer_ptr (&fname), "rb"); if (fp == NULL) { MESSAGE (0, (stderr, _("couldn't open font description file \"%s\": %s\n"), buffer_ptr (&fname), strerror (errno))); buffer_uninit (&fname); return; } buffer_uninit (&fname); /* Dump file. */ fprintf (ofp, "%%%%BeginResource: font %s\n", name); /* Check file type. */ i = fgetc (fp); if (i == EOF) { /* Not much to do here. */ ; } else if (i == 128) { int done = 0; unsigned int chunk; unsigned int to_read; int last_was_cr; int j; /* IBM PC Format */ ungetc (i, fp); while (!done) { /* Read 6-byte long header. */ i = fread (buf, 1, 6, fp); if (i != 6) break; chunk = buf[2] | (buf[3] << 8) | (buf[4] << 16) | (buf[5] << 24); /* Check chunk type. */ switch (buf[1]) { case 1: /* ASCII */ last_was_cr = 0; while (chunk > 0) { to_read = sizeof (buf) < chunk ? sizeof (buf) : chunk; i = fread (buf, 1, to_read, fp); if (i == 0) { done = 1; break; } /* Check and fix Mac-newlines. */ for (j = 0; j < i; j++) { if (j == 0 && last_was_cr && buf[0] != '\n') { fputc ('\n', ofp); fputc (buf[0], ofp); } else if (buf[j] == '\r' && j + 1 < i && buf[j + 1] != '\n') { fputc ('\n', ofp); } else if (buf[j] != '\r') fputc (buf[j], ofp); } chunk -= i; last_was_cr = (buf[i - 1] == '\r'); } break; case 2: /* binary data */ while (chunk > 0) { to_read = sizeof (buf) < chunk ? sizeof (buf) : chunk; i = fread (buf, 1, to_read, fp); if (i == 0) { done = 1; break; } for (j = 0; j < i; j++) { fprintf (ofp, "%02X", buf[j]); if ((j + 1) % 32 == 0) fprintf (ofp, "\n"); } chunk -= i; } break; case 3: /* EOF */ done = 1; break; } /* Force a linebreak after each chunk. */ fprintf (ofp, "\n"); } } else { /* Plain ASCII. */ ungetc (i, fp); while ((i = fread (buf, 1, sizeof (buf), fp)) != 0) fwrite (buf, 1, i, ofp); } fprintf (ofp, "%%%%EndResource\n"); /* Remove font from needed resources. */ (void) strhash_delete (res_fonts, name, strlen (name) + 1, (void **) &cp); fclose (fp); } char * escape_string (char *string) { int i, j; int len; char *cp; /* Count the length of the result string. */ for (len = 0, i = 0; string[i]; i++) switch (string[i]) { case '(': case ')': case '\\': len += 2; break; default: len++; } /* Create result. */ cp = xmalloc (len + 1); if (cp == NULL) return NULL; for (i = 0, j = 0; string[i]; i++) switch (string[i]) { case '(': case ')': case '\\': cp[j++] = '\\'; /* FALLTHROUGH */ default: cp[j++] = string[i]; break; } cp[j++] = '\0'; return cp; } /* * Help macros for the format_user_string() function. */ #define NEED_NBYTES(n) \ do { \ if (rbufpos + (n) >= rbuflen) \ { \ rbuflen += (n) + 1024; \ rbuf = xrealloc (rbuf, rbuflen); \ } \ } while (0) #define APPEND_CH(ch) \ do { \ int a; \ NEED_NBYTES (width); \ if (width && justification < 0) \ rbuf[rbufpos++] = (ch); \ for (a = 0; a < width - 1; a++) \ rbuf[rbufpos++] = ' '; \ if (!width || justification > 0) \ rbuf[rbufpos++] = (ch); \ } while (0) #define APPEND_STR(str) \ do { \ int len = strlen ((str)); \ int nspace; \ \ if (len > width) \ nspace = 0; \ else \ nspace = width - len; \ \ NEED_NBYTES (nspace + len); \ if (width && justification > 0) \ for (; nspace; nspace--) \ rbuf[rbufpos++] = ' '; \ \ memcpy (rbuf + rbufpos, str, len); \ rbufpos += len; \ \ if (width && justification < 0) \ for (; nspace; nspace--) \ rbuf[rbufpos++] = ' '; \ } while (0) char * format_user_string (char *context_name, char *str) { char *cp; char *rbuf = NULL; int rbuflen = 0; int rbufpos = 0; int i = 0; int j; char buf[512]; char buf2[512]; int width = 0; int justification = 1; /* Format string. */ for (i = 0; str[i] != '\0'; i++) { int type; type = str[i]; if (type == '%' || type == '$') { i++; width = 0; justification = 1; /* Get optional width and justification. */ if (str[i] == '-') { i++; justification = -1; } while (isdigit (str[i])) width = width * 10 + str[i++] - '0'; /* Handle escapes. */ if (type == '%') { /* General state related %-escapes. */ switch (str[i]) { case '%': /* `%%' character `%' */ APPEND_CH ('%'); break; case 'c': /* `%c' trailing component of pwd. */ getcwd (buf, sizeof (buf)); cp = strrchr (buf, '/'); if (cp) cp++; else cp = buf; APPEND_STR (cp); break; case 'C': /* `%C' runtime in `hh:mm:ss' format */ sprintf (buf, "%02d:%02d:%02d", run_tm.tm_hour, run_tm.tm_min, run_tm.tm_sec); APPEND_STR (buf); break; case 'd': /* `%d' current working directory */ getcwd (buf, sizeof (buf)); APPEND_STR (buf); 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] != '}') FATAL ((stderr, _("%s: too long format for %%D{} escape"), context_name)); buf2[j] = '\0'; strftime (buf, sizeof (buf), buf2, &run_tm); } else { /* `%D' run date in `yy-mm-dd' format */ sprintf (buf, "%02d-%02d-%02d", run_tm.tm_year % 100, run_tm.tm_mon + 1, run_tm.tm_mday); } APPEND_STR (buf); break; case 'E': /* `%E' run date in `yy/mm/dd' format */ sprintf (buf, "%02d/%02d/%02d", run_tm.tm_year % 100, run_tm.tm_mon + 1, run_tm.tm_mday); APPEND_STR (buf); break; case 'F': /* `%F' run date in `dd.mm.yyyy' format */ sprintf (buf, "%d.%d.%d", run_tm.tm_mday, run_tm.tm_mon + 1, run_tm.tm_year + 1900); APPEND_STR (buf); break; case 'H': /* `%H' document title */ APPEND_STR (title); break; case 'm': /* `%m' the hostname up to the first `.' */ (void) gethostname (buf, sizeof (buf)); cp = strchr (buf, '.'); if (cp) *cp = '\0'; APPEND_STR (buf); break; case 'M': /* `%M' the full hostname */ (void) gethostname (buf, sizeof (buf)); APPEND_STR (buf); break; case 'n': /* `%n' username */ APPEND_STR (passwd->pw_name); break; case 'N': /* `%N' pw_gecos up to the first `,' char */ strcpy (buf, passwd->pw_gecos); cp = strchr (buf, ','); if (cp) *cp = '\0'; APPEND_STR (buf); break; case 't': /* `%t' runtime in 12-hour am/pm format */ sprintf (buf, "%d:%d%s", run_tm.tm_hour > 12 ? run_tm.tm_hour - 12 : run_tm.tm_hour, run_tm.tm_min, run_tm.tm_hour > 12 ? "pm" : "am"); APPEND_STR (buf); break; case 'T': /* `%T' runtime in 24-hour format */ sprintf (buf, "%d:%d", run_tm.tm_hour, run_tm.tm_min); APPEND_STR (buf); break; case '*': /* `%*' runtime in 24-hour format with secs */ sprintf (buf, "%d:%d:%d", run_tm.tm_hour, run_tm.tm_min, run_tm.tm_sec); APPEND_STR (buf); break; case 'W': /* `%W' run date in `mm/dd/yy' format */ sprintf (buf, "%02d/%02d/%02d", run_tm.tm_mon + 1, run_tm.tm_mday, run_tm.tm_year % 100); APPEND_STR (buf); break; default: FATAL ((stderr, _("%s: unknown `%%' escape `%c' (%d)"), context_name, str[i], str[i])); break; } } else { /* Input file related $-escapes. */ switch (str[i]) { case '$': /* `$$' character `$' */ APPEND_CH ('$'); break; case '%': /* `$%' current page number */ if (slicing) sprintf (buf, "%d%c", current_pagenum, slice - 1 + 'A'); else sprintf (buf, "%d", current_pagenum); APPEND_STR (buf); break; case '=': /* `$=' number of pages in this file */ APPEND_CH ('\001'); break; case 'p': /* `$p' number of pages processed so far */ sprintf (buf, "%d", total_pages); APPEND_STR (buf); break; case '(': /* $(ENVVAR) */ for (j = 0, i++; str[i] && str[i] != ')' && j < sizeof (buf) - 1; i++) buf[j++] = str[i]; if (str[i] == '\0') FATAL ((stderr, _("%s: no closing ')' for $() escape"), context_name)); if (str[i] != ')') FATAL ((stderr, _("%s: too long variable name for $() escape"), context_name)); buf[j] = '\0'; cp = getenv (buf); if (cp == NULL) cp = ""; APPEND_STR (cp); break; case 'C': /* `$C' modtime in `hh:mm:ss' format */ sprintf (buf, "%02d:%02d:%02d", mod_tm.tm_hour, mod_tm.tm_min, mod_tm.tm_sec); APPEND_STR (buf); 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] != '}') FATAL ((stderr, _("%s: too long format for $D{} escape"), context_name)); buf2[j] = '\0'; strftime (buf, sizeof (buf), buf2, &mod_tm); } else { /* `$D' mod date in `yy-mm-dd' format */ sprintf (buf, "%02d-%02d-%02d", mod_tm.tm_year % 100, mod_tm.tm_mon + 1, mod_tm.tm_mday); } APPEND_STR (buf); break; case 'E': /* `$E' mod date in `yy/mm/dd' format */ sprintf (buf, "%02d/%02d/%02d", mod_tm.tm_year % 100, mod_tm.tm_mon + 1, mod_tm.tm_mday); APPEND_STR (buf); break; case 'F': /* `$F' run date in `dd.mm.yyyy' format */ sprintf (buf, "%d.%d.%d", mod_tm.tm_mday, mod_tm.tm_mon + 1, mod_tm.tm_year + 1900); APPEND_STR (buf); break; case 't': /* `$t' runtime in 12-hour am/pm format */ sprintf (buf, "%d:%d%s", mod_tm.tm_hour > 12 ? mod_tm.tm_hour - 12 : mod_tm.tm_hour, mod_tm.tm_min, mod_tm.tm_hour > 12 ? "pm" : "am"); APPEND_STR (buf); break; case 'T': /* `$T' runtime in 24-hour format */ sprintf (buf, "%d:%d", mod_tm.tm_hour, mod_tm.tm_min); APPEND_STR (buf); break; case '*': /* `$*' runtime in 24-hour format with secs */ sprintf (buf, "%d:%d:%d", mod_tm.tm_hour, mod_tm.tm_min, mod_tm.tm_sec); APPEND_STR (buf); break; case 'v': /* `$v': input file number */ sprintf (buf, "%d", input_filenum); APPEND_STR (buf); break; case 'V': /* `$V': input file number in --toc format */ if (toc) { sprintf (buf, "%d-", input_filenum); APPEND_STR (buf); } break; case 'W': /* `$W' run date in `mm/dd/yy' format */ sprintf (buf, "%02d/%02d/%02d", mod_tm.tm_mon + 1, mod_tm.tm_mday, mod_tm.tm_year % 100); APPEND_STR (buf); break; case 'N': /* `$N' the full name of the printed file */ APPEND_STR (fname); break; case 'n': /* `$n' input file name without directory */ cp = strrchr (fname, '/'); if (cp) cp++; else cp = fname; APPEND_STR (cp); break; case 'L': /* `$L' number of lines in this file. */ /* This is valid only for TOC-strings. */ sprintf (buf, "%d", current_file_linenum - 1); APPEND_STR (buf); break; default: FATAL ((stderr, _("%s: unknown `$' escape `%c' (%d)"), context_name, str[i], str[i])); break; } } /* Reset width so the else-arm goes ok at the next round. */ width = 0; justification = 1; } else APPEND_CH (str[i]); } APPEND_CH ('\0'); /* Escape PS specials. */ cp = escape_string (rbuf); xfree (rbuf); return cp; } void parse_key_value_pair (StringHashPtr set, char *kv) { char *cp; Buffer key; cp = strchr (kv, ':'); if (cp == NULL) { if (strhash_delete (set, kv, strlen (kv) + 1, (void **) &cp)) xfree (cp); } else { buffer_init (&key); buffer_append_len (&key, kv, cp - kv); strhash_put (set, buffer_ptr (&key), strlen (buffer_ptr (&key)) + 1, xstrdup (cp + 1), (void **) &cp); if (cp) xfree (cp); buffer_uninit (&key); } } int count_key_value_set (StringHashPtr set) { int i = 0, got, j; char *cp; void *value; for (got = strhash_get_first (set, &cp, &j, &value); got; got = strhash_get_next (set, &cp, &j, &value)) i++; return i; } int pathwalk (char *path, PathWalkProc proc, void *context) { char buf[512]; char *cp; char *cp2; int len, i; for (cp = path; cp; cp = strchr (cp, PATH_SEPARATOR)) { if (cp != path) cp++; cp2 = strchr (cp, PATH_SEPARATOR); if (cp2) len = cp2 - cp; else len = strlen (cp); memcpy (buf, cp, len); buf[len] = '\0'; i = (*proc) (buf, context); if (i != 0) return i; } return 0; } int file_lookup (char *path, void *context) { int len; FileLookupCtx *ctx = context; struct stat stat_st; int i; MESSAGE (2, (stderr, "file_lookup(): %s/%s%s\t", path, ctx->name, ctx->suffix)); len = strlen (path); if (len && path[len - 1] == '/') len--; buffer_clear (ctx->fullname); buffer_append_len (ctx->fullname, path, len); buffer_append (ctx->fullname, "/"); buffer_append (ctx->fullname, ctx->name); buffer_append (ctx->fullname, ctx->suffix); i = stat (buffer_ptr (ctx->fullname), &stat_st) == 0; MESSAGE (2, (stderr, "#%c\n", i ? 't' : 'f')); return i; } char * tilde_subst (char *fname) { char *cp; int i; struct passwd *pswd; Buffer buffer; char *result; if (fname[0] != '~') return xstrdup (fname); if (fname[1] == '/' || fname[1] == '\0') { /* The the user's home directory from the `HOME' environment variable. */ cp = getenv ("HOME"); if (cp == NULL) return xstrdup (fname); buffer_init (&buffer); buffer_append (&buffer, cp); buffer_append (&buffer, fname + 1); result = buffer_copy (&buffer); buffer_uninit (&buffer); return result; } /* Get user's login name. */ for (i = 1; fname[i] && fname[i] != '/'; i++) ; buffer_init (&buffer); buffer_append_len (&buffer, fname + 1, i - 1); pswd = getpwnam (buffer_ptr (&buffer)); buffer_uninit (&buffer); if (pswd) { /* Found passwd entry. */ buffer_init (&buffer); buffer_append (&buffer, pswd->pw_dir); buffer_append (&buffer, fname + i); result = buffer_copy (&buffer); buffer_uninit (&buffer); return result; } /* No match found. */ return xstrdup (fname); } double parse_float (char *string, int units, int horizontal) { double val; char *end; val = strtod (string, &end); if (end == string) malformed_float: ERROR ((stderr, _("malformed float dimension: \"%s\""), string)); if (units) { switch (*end) { case 'c': val *= 72 / 2.54; break; case 'p': break; case 'i': val *= 72; break; case '\0': /* FALLTHROUGH */ case 'l': if (horizontal) val *= CHAR_WIDTH ('m'); else val *= LINESKIP; break; default: goto malformed_float; break; } } else { if (*end != '\0') goto malformed_float; } return val; } /* * InputStream functions. */ int is_open (InputStream *is, FILE *fp, char *fname, char *input_filter) { /* Init stream variables. */ is->data_in_buf = 0; is->bufpos = 0; is->nreads = 0; is->unget_ch = NULL; is->unget_pos = 0; is->unget_alloc = 0; /* Input filter? */ if (input_filter) { char *cmd = NULL; int cmdlen; int i, pos; char *cp; is->is_pipe = 1; if (fname == NULL) fname = input_filter_stdin; /* * Count the initial command length, this will grow dynamically * when file specifier `%s' is encountered from . */ cmdlen = strlen (input_filter) + 1; cmd = xmalloc (cmdlen); /* Create filter command. */ pos = 0; for (i = 0; input_filter[i]; i++) { if (input_filter[i] == '%') { switch (input_filter[i + 1]) { case 's': /* Expand cmd-buffer. */ if ((cp = shell_escape (fname)) != NULL) { cmdlen += strlen (cp); cmd = xrealloc (cmd, cmdlen); /* Paste filename. */ strcpy (cmd + pos, cp); pos += strlen (cp); free (cp); } i++; break; case '%': cmd[pos++] = '%'; i++; break; default: cmd[pos++] = input_filter[i]; break; } } else cmd[pos++] = input_filter[i]; } cmd[pos++] = '\0'; is->fp = popen (cmd, "r"); xfree (cmd); if (is->fp == NULL) { ERROR ((stderr, _("couldn't open input filter \"%s\" for file \"%s\": %s"), input_filter, fname ? fname : "(stdin)", strerror (errno))); return 0; } } else { /* Just open the stream. */ is->is_pipe = 0; if (fp) is->fp = fp; else { is->fp = fopen (fname, "rb"); if (is->fp == NULL) { ERROR ((stderr, _("couldn't open input file \"%s\": %s"), fname, strerror (errno))); return 0; } } } return 1; } void is_close (InputStream *is) { if (is->is_pipe) pclose (is->fp); else fclose (is->fp); if (is->unget_ch) xfree (is->unget_ch); } int is_getc (InputStream *is) { int ch; if (is->unget_pos > 0) { ch = is->unget_ch[--is->unget_pos]; return ch; } retry: /* Do we have any data left? */ if (is->bufpos >= is->data_in_buf) { /* At the EOF? */ if (is->nreads > 0 && is->data_in_buf < sizeof (is->buf)) /* Yes. */ return EOF; /* Read more data. */ is->data_in_buf = fread (is->buf, 1, sizeof (is->buf), is->fp); is->bufpos = 0; is->nreads++; goto retry; } return is->buf[is->bufpos++]; } int is_ungetc (int ch, InputStream *is) { if (is->unget_pos >= is->unget_alloc) { is->unget_alloc += 1024; is->unget_ch = xrealloc (is->unget_ch, is->unget_alloc); } is->unget_ch[is->unget_pos++] = ch; return 1; } /* * Buffer Functions. */ void buffer_init (Buffer *buffer) { buffer->allocated = 128; buffer->data = xmalloc (buffer->allocated); buffer->data[0] = '\0'; buffer->len = 0; } void buffer_uninit (Buffer *buffer) { xfree (buffer->data); } Buffer * buffer_alloc () { Buffer *buffer = (Buffer *) xcalloc (1, sizeof (Buffer)); buffer_init (buffer); return buffer; } void buffer_free (Buffer *buffer) { buffer_uninit (buffer); xfree (buffer); } void buffer_append (Buffer *buffer, const char *data) { buffer_append_len (buffer, data, strlen (data)); } void buffer_append_len (Buffer *buffer, const char *data, size_t len) { if (buffer->len + len + 1 >= buffer->allocated) { buffer->allocated = buffer->len + len + 1024; buffer->data = xrealloc (buffer->data, buffer->allocated); } memcpy (buffer->data + buffer->len, data, len); buffer->len += len; buffer->data[buffer->len] = '\0'; } char * buffer_copy (Buffer *buffer) { char *copy = xmalloc (buffer->len + 1); memcpy (copy, buffer->data, buffer->len + 1); return copy; } void buffer_clear (Buffer *buffer) { buffer->len = 0; buffer->data[0] = '\0'; } char * buffer_ptr (Buffer *buffer) { return buffer->data; } size_t buffer_len (Buffer *buffer) { return buffer->len; } /* * Escapes the name of a file so that the shell groks it in 'single' * quotation 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; } enscript-1.6.5.90/src/Makefile.in0000644000175000017500000005724311606344074013376 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 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 enscript. # Copyright (c) 1995-2003 Markku Rossi # # Author: Markku Rossi # # # This file is part of GNU Enscript. # # Enscript is free software: you can redistribute 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. # # Enscript is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Enscript. If not, see . # VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ bin_PROGRAMS = enscript$(EXEEXT) mkafmmap$(EXEEXT) subdir = src DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc2.m4 \ $(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intdiv0.m4 $(top_srcdir)/m4/intl.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/intmax.m4 \ $(top_srcdir)/m4/inttypes-pri.m4 \ $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/lcmessage.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/lock.m4 \ $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/printf-posix.m4 \ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/size_max.m4 \ $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/uintmax_t.m4 \ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/wchar_t.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xsize.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(bindir)" PROGRAMS = $(bin_PROGRAMS) am_enscript_OBJECTS = main.$(OBJEXT) psgen.$(OBJEXT) util.$(OBJEXT) \ prt_lpr.$(OBJEXT) enscript_OBJECTS = $(am_enscript_OBJECTS) enscript_LDADD = $(LDADD) am_mkafmmap_OBJECTS = mkafmmap.$(OBJEXT) mkafmmap_OBJECTS = $(am_mkafmmap_OBJECTS) mkafmmap_LDADD = $(LDADD) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(enscript_SOURCES) $(mkafmmap_SOURCES) DIST_SOURCES = $(enscript_SOURCES) $(mkafmmap_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive HEADERS = $(noinst_HEADERS) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GENCAT = @GENCAT@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GLIBC2 = @GLIBC2@ GLIBC21 = @GLIBC21@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ HAVE_ASPRINTF = @HAVE_ASPRINTF@ HAVE_POSIX_PRINTF = @HAVE_POSIX_PRINTF@ HAVE_SNPRINTF = @HAVE_SNPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WPRINTF = @HAVE_WPRINTF@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLBISON = @INTLBISON@ INTLLIBS = @INTLLIBS@ INTLOBJS = @INTLOBJS@ INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTHREAD = @LIBTHREAD@ LTLIBC = @LTLIBC@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ MAKEINFO = @MAKEINFO@ MEDIA = @MEDIA@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ POSUB = @POSUB@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ PSLEVEL = @PSLEVEL@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SPOOLER = @SPOOLER@ STRIP = @STRIP@ U = @U@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WINDRES = @WINDRES@ WOE32 = @WOE32@ WOE32DLL = @WOE32DLL@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ YACC = @YACC@ YFLAGS = @YFLAGS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = $(datadir)/locale 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@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = tests enscript_SOURCES = main.c psgen.c util.c prt_lpr.c enscript_SOURCES_windelta = \ -prt_lpr.c \ +prt_dos.c mkafmmap_SOURCES = mkafmmap.c LDADD = ../afmlib/libafm.a @LIBINTL@ ../compat/libcompat.a -lm enscript_DEPENDENCIES = ../afmlib/libafm.a ../compat/libcompat.a mkafmmap_DEPENDENCIES = ../afmlib/libafm.a ../compat/libcompat.a noinst_HEADERS = gsint.h INCLUDES = -I$(srcdir)/../compat -I$(srcdir)/../afmlib \ -I$(srcdir)/../intl -I../intl -DLOCALEDIR=\"$(localedir)\" \ -DLIBRARY=\"$(datadir)/enscript\" -DSYSCONFDIR=\"$(sysconfdir)\" INCLUDES_windelta = \ +-I../w32 \ --DLOCALEDIR=\"$(localedir)\" \ --DLIBRARY=\"$(datadir)/enscript\" \ --DSYSCONFDIR=\"$(sysconfdir)\" \ +-DLIBRARY=\"c:\\enscript\" \ +-DSYSCONFDIR=\"c:\\enscript\" EXTRA_DIST = ChangeLog.old prt_dos.c all: all-recursive .SUFFIXES: .SUFFIXES: .c .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \ $(am__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 $(am__aclocal_m4_deps): install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p; \ then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) enscript$(EXEEXT): $(enscript_OBJECTS) $(enscript_DEPENDENCIES) @rm -f enscript$(EXEEXT) $(LINK) $(enscript_OBJECTS) $(enscript_LDADD) $(LIBS) mkafmmap$(EXEEXT): $(mkafmmap_OBJECTS) $(mkafmmap_DEPENDENCIES) @rm -f mkafmmap$(EXEEXT) $(LINK) $(mkafmmap_OBJECTS) $(mkafmmap_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mkafmmap.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prt_lpr.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/psgen.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/util.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @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@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @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) '$<'` # 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): @fail= 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; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= 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; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__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; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ 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; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) 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; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" 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)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(PROGRAMS) $(HEADERS) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(bindir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(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 . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-binPROGRAMS clean-generic mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-binPROGRAMS install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-binPROGRAMS .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-binPROGRAMS \ clean-generic ctags ctags-recursive distclean \ distclean-compile distclean-generic distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-binPROGRAMS install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \ ps ps-am tags tags-recursive uninstall uninstall-am \ uninstall-binPROGRAMS # 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: enscript-1.6.5.90/w32/0000755000175000017500000000000011606344235011221 500000000000000enscript-1.6.5.90/w32/Makefile.am0000644000175000017500000000153111133214772013172 00000000000000# # Makefile for the w32 stuffs. # Copyright (c) 1999 Markku Rossi # # Author: Markku Rossi # # # This file is part of GNU Enscript. # # Enscript is free software: you can redistribute 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. # # Enscript is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Enscript. If not, see . # noinst_HEADERS = dummypwd.h EXTRA_DIST = config.h gethostname.c getpwd.c getuid.c enscript-1.6.5.90/w32/getuid.c0000644000175000017500000000155411133214772012570 00000000000000/* * Replacement for the getuid functions for micro ports. * Copyright (c) 1996 Markku Rossi. * * Author: Markku Rossi */ /* * This file is part of GNU Enscript. * * Enscript is free software: you can redistribute 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. * * Enscript is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Enscript. If not, see . */ #include int getuid () { return 0; } enscript-1.6.5.90/w32/dummypwd.h0000644000175000017500000000210711133214772013155 00000000000000/* * 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. * * Enscript is free software: you can redistribute 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. * * Enscript is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Enscript. If not, see . */ #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 */ enscript-1.6.5.90/w32/config.h0000644000175000017500000001240711132443252012554 00000000000000/* config.h. Generated automatically by configure. */ /* config.h.in. Generated automatically from configure.in by autoheader. */ /* Prototypes and definitions for some compatibility code. */ /* This is really strange. I don't understand why they had to include those leading underscores to the function names. */ #define popen(program, mode) _popen((program), (mode)) #define pclose(fp) _pclose((fp)) #define getcwd(buf, len) _getcwd((buf), (len)) #define alloca(size) _alloca((size)) int getuid(); /* * Configure definitions follow. */ /* Define if using alloca.c. */ /* #undef C_ALLOCA */ /* Define to empty if the keyword does not work. */ /* #undef const */ /* 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 you have alloca, as a function or macro. */ /* #undef HAVE_ALLOCA */ /* Define if you have and it should be used (not on Ultrix). */ /* #undef HAVE_ALLOCA_H */ /* Define if you don't have vprintf but do have _doprnt. */ /* #undef HAVE_DOPRNT */ /* Define if you have a working `mmap' system call. */ /* #undef HAVE_MMAP */ /* Define if you have the vprintf function. */ #define HAVE_VPRINTF 1 /* Define as __inline if that's what the C compiler calls it. */ /* #undef inline */ /* Define to `long' if doesn't define. */ /* #undef off_t */ /* Define if you need to in order for stat and other things to work. */ /* #undef _POSIX_SOURCE */ /* Define to `unsigned' if doesn't define. */ /* #undef size_t */ /* 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 you have the ANSI C header files. */ #define STDC_HEADERS 1 /* Define if lex declares yytext as a char * by default, not a char[]. */ #define YYTEXT_POINTER 1 /* Character which is used to separate path components. */ #define PATH_SEPARATOR ';' #define PATH_SEPARATOR_STR ";" /* Have strerror() function. */ #define HAVE_STRERROR 1 /* Have memmove() function. */ #define HAVE_MEMMOVE 1 /* Have memcpy() function. */ #define HAVE_MEMCPY 1 /* Have strtoul() function. */ #define HAVE_STRTOUL 1 /* How to retrieve the current working directory? */ #define HAVE_GETCWD 1 /* #undef HAVE_GETWD */ /* #undef ENABLE_NLS */ /* #undef HAVE_CATGETS */ /* #undef HAVE_GETTEXT */ /* #undef HAVE_LC_MESSAGES */ /* #undef HAVE_STPCPY */ /* 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 have the dcgettext function. */ /* #undef HAVE_DCGETTEXT */ /* Define if you have the getcwd function. */ /* #undef HAVE_GETCWD */ /* Define if you have the getpagesize function. */ /* #undef HAVE_GETPAGESIZE */ /* Define if you have the munmap function. */ /* #undef HAVE_MUNMAP */ /* Define if you have the putenv function. */ #define HAVE_PUTENV 1 /* Define if you have the setenv function. */ #define HAVE_SETENV 1 /* Define if you have the setlocale function. */ /* #undef HAVE_SETLOCALE */ /* Define if you have the stpcpy function. */ /* #undef HAVE_STPCPY */ /* Define if you have the strcasecmp function. */ #define HAVE_STRCASECMP 1 /* 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 header file. */ /* #undef HAVE_ARGZ_H */ /* Define if you have the header file. */ #define HAVE_LIMITS_H 1 /* Define if you have the header file. */ /* #undef HAVE_LOCALE_H */ /* 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 header file. */ /* #undef HAVE_NL_TYPES_H */ /* Define if you have the header file. */ /* #undef HAVE_PWD_H */ /* Define if you have the header file. */ #define HAVE_STDARG_H 1 /* Define if you have the header file. */ #define HAVE_STDLIB_H 1 /* Define if you have the header file. */ #define HAVE_STRING_H 1 /* Define if you have the header file. */ #define HAVE_SYS_PARAM_H 1 /* Define if you have the header file. */ #define HAVE_SYS_STAT_H 1 /* Define if you have the header file. */ #define HAVE_SYS_TYPES_H 1 /* Define if you have the header file. */ /* #undef HAVE_UNISTD_H */ /* Define if you have the i library (-li). */ /* #undef HAVE_LIBI */ /* Define if you have the socket library (-lsocket). */ /* #undef HAVE_LIBSOCKET */ /* Define if you have the sun library (-lsun). */ /* #undef HAVE_LIBSUN */ /* Name of package */ #define PACKAGE "enscript" /* Version number of package */ #define VERSION "1.6.3" /* Define if compiler has function prototypes */ #define PROTOTYPES 1 enscript-1.6.5.90/w32/gethostname.c0000644000175000017500000000301011133214772013612 00000000000000/* * Replacement for the gethostname function for micro ports. * Copyright (c) 1996, 1996, 1997 Markku Rossi. * * Author: Markku Rossi * * WIN32 changes by Dave Hylands */ /* * This file is part of GNU Enscript. * * Enscript is free software: you can redistribute 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. * * Enscript is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Enscript. If not, see . */ #include #include #if defined( WIN32 ) /* * Define WIN32_LEAN_AND_MEAN so that we don't include WINSOCK.H which * has a conflicting definition of gethostname. */ #define WIN32_LEAN_AND_MEAN #include #endif int gethostname (name, namelen) char *name; int namelen; { #if defined( WIN32 ) char computerName[ MAX_COMPUTERNAME_LENGTH + 1 ]; DWORD len = sizeof computerName; if ( GetComputerName (computerName, &len)) { strncpy (name, computerName, namelen); } else { strncpy (name, "pc", namelen); } name[ namelen - 1 ] = 0; #else strncpy (name, "pc", namelen); #endif return 0; } enscript-1.6.5.90/w32/Makefile.in0000644000175000017500000003304011606344074013207 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 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 the w32 stuffs. # Copyright (c) 1999 Markku Rossi # # Author: Markku Rossi # # # This file is part of GNU Enscript. # # Enscript is free software: you can redistribute 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. # # Enscript is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Enscript. If not, see . # VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = w32 DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc2.m4 \ $(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intdiv0.m4 $(top_srcdir)/m4/intl.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/intmax.m4 \ $(top_srcdir)/m4/inttypes-pri.m4 \ $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/lcmessage.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/lock.m4 \ $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/printf-posix.m4 \ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/size_max.m4 \ $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/uintmax_t.m4 \ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/wchar_t.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xsize.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = HEADERS = $(noinst_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GENCAT = @GENCAT@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GLIBC2 = @GLIBC2@ GLIBC21 = @GLIBC21@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ HAVE_ASPRINTF = @HAVE_ASPRINTF@ HAVE_POSIX_PRINTF = @HAVE_POSIX_PRINTF@ HAVE_SNPRINTF = @HAVE_SNPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WPRINTF = @HAVE_WPRINTF@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLBISON = @INTLBISON@ INTLLIBS = @INTLLIBS@ INTLOBJS = @INTLOBJS@ INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTHREAD = @LIBTHREAD@ LTLIBC = @LTLIBC@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ MAKEINFO = @MAKEINFO@ MEDIA = @MEDIA@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ POSUB = @POSUB@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ PSLEVEL = @PSLEVEL@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SPOOLER = @SPOOLER@ STRIP = @STRIP@ U = @U@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WINDRES = @WINDRES@ WOE32 = @WOE32@ WOE32DLL = @WOE32DLL@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ YACC = @YACC@ YFLAGS = @YFLAGS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ 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@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ noinst_HEADERS = dummypwd.h EXTRA_DIST = config.h gethostname.c getpwd.c getuid.c all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu w32/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu w32/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 $(am__aclocal_m4_deps): 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; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ 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; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) 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; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" 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)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) 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) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ ctags distclean distclean-generic distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags uninstall uninstall-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: enscript-1.6.5.90/w32/getpwd.c0000644000175000017500000000275211133214772012602 00000000000000/* * Replacement for the passwd related functions for micro ports. * Copyright (c) 1996 Markku Rossi. * * Author: Markku Rossi */ /* * This file is part of GNU Enscript. * * Enscript is free software: you can redistribute 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. * * Enscript is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Enscript. If not, see . */ #include #include #if defined(WIN32) #include #endif #include "dummypwd.h" /* * Static variables */ static struct passwd dummy_passwd = { "dos", "Dos User", "/home", }; /* * Global functions */ struct passwd * getpwuid () { #if defined(WIN32) static char userName[32]; DWORD userNameLen = sizeof (userName); if (GetUserName (userName, &userNameLen)) { dummy_passwd.pw_name = userName; dummy_passwd.pw_gecos = userName; } return &dummy_passwd; #else /* not WIN32 */ return &dummy_passwd; #endif /* not WIN32 */ } struct passwd * getpwnam (name) char *name; { return getpwuid (); } enscript-1.6.5.90/ylwrap0000755000175000017500000001404311606344074011775 00000000000000#! /bin/sh # ylwrap - wrapper for lex/yacc invocations. scriptversion=2009-04-28.21; # UTC # Copyright (C) 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2004, 2005, # 2007, 2009 Free Software Foundation, Inc. # # Written by Tom Tromey . # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # This file is maintained in Automake, please report # bugs to or send patches to # . 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-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: enscript-1.6.5.90/afmlib/0000755000175000017500000000000011606344230012033 500000000000000enscript-1.6.5.90/afmlib/Makefile.am0000644000175000017500000000222411606136537014020 00000000000000# # Automakefile for AFM library. # Copyright (c) 1995-1999 Markku Rossi # # Author: Markku Rossi # # # Enscript is free software: you can redistribute 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. # # Enscript is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # # along with Enscript. If not, see . # noinst_LIBRARIES = libafm.a libafm_a_SOURCES = afm.c afmparse.c strhash.c e_88591.c e_88592.c \ e_88593.c e_88594.c e_88595.c e_88597.c e_88599.c e_885910.c e_pc.c \ e_mac.c e_vms.c e_hp8.c e_koi8.c deffont.c noinst_HEADERS = afm.h afmint.h strhash.h INCLUDES_windelta = +-I../w32/ EXTRA_DIST = ChangeLog.old Makefile-encodings make-encoding.pl noinst_PROGRAMS = afmtest afmtest_SOURCES = afmtest.c afmtest_LDADD = libafm.a enscript-1.6.5.90/afmlib/ChangeLog.old0000644000175000017500000000645211401303365014306 000000000000002008-01-01 Tim Retout * ChangeLog: Run M-x change-log-redate. Add copyright notice at end. 1998-12-23 Markku Rossi * afm.h: Added ISO-8859-{9,10} encodings. Thanks to Donald Page . 1998-06-23 Markku Rossi * afmparse.c (afm_parse_file): Added +1's to the memory allocations to avoid zero allocations. There are some AFM files available that say, for example, "StartComposites 0". That used to fail on some systems which memory allocation routines do not like zero allocations. 1998-06-11 Markku Rossi * afm.c (afm_font_encoding): Renamed ISO-8859-* encodings. 1998-03-25 Markku Rossi * Makefile.am (EXTRA_DIST): Added Makefile-encodings and make-encoding.pl. * afm.h: Added ISO-8859/7 encoding. Thanks to Manolis Lourakis . * afmint.h: Removed all vararg functions. This should remove the compilation problems from this library. 1997-12-30 Markku Rossi * afm.c (afm_font_stringwidth): Fixed cast bug where char was cast to unsigned int. (afm_font_charwidth): Changed argument's type to `char' and changed the cast to `unsigned char'. * afm.h: Changed argument's type of afm_font_charwidth() to `char'. 1997-09-30 Markku Rossi * afm.h: Added ISO-8859/4 encoding. Thanks to Ricardas Cepas . 1997-07-18 Markku Rossi * Changed AFM library's copying policy from the GNU Library General Public License (LGPL) to GNU General Public License (GPL). 1997-04-14 Markku Rossi * COPYING.LIB: Updated to the latest version. * Updated FSF's address to all source files. 1996-11-05 Markku Rossi * afm.h: New input encoding LATIN5 for ISO-8859/5 (ISO latin5). 1996-09-07 Markku Rossi * afm.h: New input encoding KOI8 for Adobe's Standard Cyrillic Font KOI8. 1996-05-24 Markku Rossi * Added encoding support for PostScript font's composite characters. * Added encoding flags to the encoding functions. 1996-02-29 Markku Rossi * Added support for the automatic non-ANSI-defication. 1996-02-20 Markku Rossi * Added hp8 (HP Roman-8) encoding. 1996-01-03 Markku Rossi * Makefile.in: Do not require make which can handle string substitutions. 1995-12-20 Markku Rossi * afm.c (afm_message): Changed output to go to stderr instead of stdout. 1995-10-20 Markku Rossi * afmparse.c (read_character_metrics): some AFM files give too big count for the StartCharMetrics keyword, do not concider it as a syntax error. 1995-08-24 Markku Rossi * Added VMS multinational encoding. 1995-08-22 Markku Rossi * afm.c (afm_error_to_string): Fixed errno printing bug. 1995-08-21 Markku Rossi * Fixed the default AFM path. Now /usr/local/lib/ps is searched first since we know what there is. * Cleaned up afmtest. Now it can be used to retrieve different font information. Copyright (C) 1995, 1996, 1997, 1998, 2008 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. enscript-1.6.5.90/afmlib/e_hp8.c0000644000175000017500000001406111133214772013126 00000000000000/* * AFM hp8 encoding. * * This file is automatically generated from file `hp8.txt'. If you * have any corrections to this file, please, edit file `hp8.txt' instead. */ /* * Enscript is free software: you can redistribute 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. * * Enscript is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Enscript. If not, see . */ #include "afmint.h" AFMEncodingTable afm_hp8_encoding[] = { {0x00, AFM_ENC_NONE}, {0x01, AFM_ENC_NONE}, {0x02, AFM_ENC_NONE}, {0x03, AFM_ENC_NONE}, {0x04, AFM_ENC_NONE}, {0x05, AFM_ENC_NONE}, {0x06, AFM_ENC_NONE}, {0x07, AFM_ENC_NONE}, {0x08, AFM_ENC_NONE}, {0x09, AFM_ENC_NONE}, {0x0a, AFM_ENC_NONE}, {0x0b, AFM_ENC_NONE}, {0x0c, AFM_ENC_NONE}, {0x0d, AFM_ENC_NONE}, {0x0e, AFM_ENC_NONE}, {0x0f, AFM_ENC_NONE}, {0x10, AFM_ENC_NONE}, {0x11, AFM_ENC_NONE}, {0x12, AFM_ENC_NONE}, {0x13, AFM_ENC_NONE}, {0x14, AFM_ENC_NONE}, {0x15, AFM_ENC_NONE}, {0x16, AFM_ENC_NONE}, {0x17, AFM_ENC_NONE}, {0x18, AFM_ENC_NONE}, {0x19, AFM_ENC_NONE}, {0x1a, AFM_ENC_NONE}, {0x1b, AFM_ENC_NONE}, {0x1c, AFM_ENC_NONE}, {0x1d, AFM_ENC_NONE}, {0x1e, AFM_ENC_NONE}, {0x1f, AFM_ENC_NONE}, {0x20, "space"}, {0x21, "exclam"}, {0x22, "quotedbl"}, {0x23, "numbersign"}, {0x24, "dollar"}, {0x25, "percent"}, {0x26, "ampersand"}, {0x27, "quoteright"}, {0x28, "parenleft"}, {0x29, "parenright"}, {0x2a, "asterisk"}, {0x2b, "plus"}, {0x2c, "comma"}, {0x2d, "hyphen"}, {0x2e, "period"}, {0x2f, "slash"}, {0x30, "zero"}, {0x31, "one"}, {0x32, "two"}, {0x33, "three"}, {0x34, "four"}, {0x35, "five"}, {0x36, "six"}, {0x37, "seven"}, {0x38, "eight"}, {0x39, "nine"}, {0x3a, "colon"}, {0x3b, "semicolon"}, {0x3c, "less"}, {0x3d, "equal"}, {0x3e, "greater"}, {0x3f, "question"}, {0x40, "at"}, {0x41, "A"}, {0x42, "B"}, {0x43, "C"}, {0x44, "D"}, {0x45, "E"}, {0x46, "F"}, {0x47, "G"}, {0x48, "H"}, {0x49, "I"}, {0x4a, "J"}, {0x4b, "K"}, {0x4c, "L"}, {0x4d, "M"}, {0x4e, "N"}, {0x4f, "O"}, {0x50, "P"}, {0x51, "Q"}, {0x52, "R"}, {0x53, "S"}, {0x54, "T"}, {0x55, "U"}, {0x56, "V"}, {0x57, "W"}, {0x58, "X"}, {0x59, "Y"}, {0x5a, "Z"}, {0x5b, "bracketleft"}, {0x5c, "backslash"}, {0x5d, "bracketright"}, {0x5e, "asciicircum"}, {0x5f, "underscore"}, {0x60, "quoteleft"}, {0x61, "a"}, {0x62, "b"}, {0x63, "c"}, {0x64, "d"}, {0x65, "e"}, {0x66, "f"}, {0x67, "g"}, {0x68, "h"}, {0x69, "i"}, {0x6a, "j"}, {0x6b, "k"}, {0x6c, "l"}, {0x6d, "m"}, {0x6e, "n"}, {0x6f, "o"}, {0x70, "p"}, {0x71, "q"}, {0x72, "r"}, {0x73, "s"}, {0x74, "t"}, {0x75, "u"}, {0x76, "v"}, {0x77, "w"}, {0x78, "x"}, {0x79, "y"}, {0x7a, "z"}, {0x7b, "braceleft"}, {0x7c, "bar"}, {0x7d, "braceright"}, {0x7e, "tilde"}, {0x7f, AFM_ENC_NONE}, {0x80, AFM_ENC_NONE}, {0x81, AFM_ENC_NONE}, {0x82, AFM_ENC_NONE}, {0x83, AFM_ENC_NONE}, {0x84, AFM_ENC_NONE}, {0x85, AFM_ENC_NONE}, {0x86, AFM_ENC_NONE}, {0x87, AFM_ENC_NONE}, {0x88, AFM_ENC_NONE}, {0x89, AFM_ENC_NONE}, {0x8a, AFM_ENC_NONE}, {0x8b, AFM_ENC_NONE}, {0x8c, AFM_ENC_NONE}, {0x8d, AFM_ENC_NONE}, {0x8e, AFM_ENC_NONE}, {0x8f, AFM_ENC_NONE}, {0x90, AFM_ENC_NONE}, {0x91, AFM_ENC_NONE}, {0x92, AFM_ENC_NONE}, {0x93, AFM_ENC_NONE}, {0x94, AFM_ENC_NONE}, {0x95, AFM_ENC_NONE}, {0x96, AFM_ENC_NONE}, {0x97, AFM_ENC_NONE}, {0x98, AFM_ENC_NONE}, {0x99, AFM_ENC_NONE}, {0x9a, AFM_ENC_NONE}, {0x9b, AFM_ENC_NONE}, {0x9c, AFM_ENC_NONE}, {0x9d, AFM_ENC_NONE}, {0x9e, AFM_ENC_NONE}, {0x9f, AFM_ENC_NONE}, {0xa0, AFM_ENC_NONE}, {0xa1, "Agrave"}, {0xa2, "Acircumflex"}, {0xa3, "Egrave"}, {0xa4, "Ecircumflex"}, {0xa5, "Edieresis"}, {0xa6, "Icircumflex"}, {0xa7, "Idieresis"}, {0xa8, "acute"}, {0xa9, "grave"}, {0xaa, "circumflex"}, {0xab, "dieresis"}, {0xac, "tilde"}, {0xad, "Ugrave"}, {0xae, "Ucircumflex"}, {0xaf, "sterling"}, {0xb0, "macron"}, {0xb1, "Yacute"}, {0xb2, "yacute"}, {0xb3, "degree"}, {0xb4, "Ccedilla"}, {0xb5, "ccedilla"}, {0xb6, "Ntilde"}, {0xb7, "ntilde"}, {0xb8, "exclamdown"}, {0xb9, "questiondown"}, {0xba, "currency"}, {0xbb, "sterling"}, {0xbc, "yen"}, {0xbd, "section"}, {0xbe, "florin"}, {0xbf, "cent"}, {0xc0, "acircumflex"}, {0xc1, "ecircumflex"}, {0xc2, "ocircumflex"}, {0xc3, "ucircumflex"}, {0xc4, "aacute"}, {0xc5, "eacute"}, {0xc6, "oacute"}, {0xc7, "uacute"}, {0xc8, "agrave"}, {0xc9, "egrave"}, {0xca, "ograve"}, {0xcb, "ugrave"}, {0xcc, "adieresis"}, {0xcd, "edieresis"}, {0xce, "odieresis"}, {0xcf, "udieresis"}, {0xd0, "Aring"}, {0xd1, "icircumflex"}, {0xd2, "Oslash"}, {0xd3, "AE"}, {0xd4, "aring"}, {0xd5, "iacute"}, {0xd6, "oslash"}, {0xd7, "ae"}, {0xd8, "Adieresis"}, {0xd9, "igrave"}, {0xda, "Odieresis"}, {0xdb, "Udieresis"}, {0xdc, "Eacute"}, {0xdd, "idieresis"}, {0xde, "germandbls"}, {0xdf, "Ocircumflex"}, {0xe0, "Aacute"}, {0xe1, "Atilde"}, {0xe2, "atilde"}, {0xe3, "Eth"}, {0xe4, "eth"}, {0xe5, "Iacute"}, {0xe6, "Igrave"}, {0xe7, "Oacute"}, {0xe8, "Ograve"}, {0xe9, "Otilde"}, {0xea, "otilde"}, {0xeb, "Scaron"}, {0xec, "scaron"}, {0xed, "Uacute"}, {0xee, "Ydieresis"}, {0xef, "ydieresis"}, {0xf0, "Thorn"}, {0xf1, "thorn"}, {0xf2, "periodcentered"}, {0xf3, "mu"}, {0xf4, "paragraph"}, {0xf5, "threequarters"}, {0xf6, "emdash"}, {0xf7, "onequarter"}, {0xf8, "onehalf"}, {0xf9, "ordfeminine"}, {0xfa, "ordmasculine"}, {0xfb, "guillemotleft"}, {0xfc, "filledbox"}, {0xfd, "guillemotright"}, {0xfe, "plusminus"}, {0xff, AFM_ENC_NONE}, {-1, NULL}, }; enscript-1.6.5.90/afmlib/afm.c0000644000175000017500000004626311133214772012677 00000000000000/* * AFM library public interface. * Copyright (c) 1995-1999 Markku Rossi. * * Author: Markku Rossi */ /* * Enscript is free software: you can redistribute 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. * * Enscript is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Enscript. If not, see . */ #include "afmint.h" #include "afm.h" /* * Static variables */ static char *default_path = "/usr/local/lib/ps:/usr/lib/ps"; static char *error_names[] = { "AFM Success", "AFM Error", "out of memory", "illegal argument", "unknown font", "syntax error", "unsupported format", "file IO failed", "file is not an AFM file", }; /* * Prototypes for static functions. */ static void read_font_map ___P ((AFMHandle handle, char *name)); static void apply_encoding ___P ((AFMFont font, AFMEncodingTable *enc, unsigned int flags)); /* * Global functions. */ void afm_error_to_string (AFMError error, char *buf) { char *syserr; int code, syserrno; code = error & 0xffff; syserrno = (error >> 16) & 0xffff; if (syserrno) syserr = strerror (syserrno); else syserr = NULL; if (code >= NUM_ERRORS) { sprintf (buf, "afm_error_to_string(): illegal error code: %d\n", error); return; } if (code == 0) sprintf (buf, "AFM Success"); else if (code == 1) sprintf (buf, "%s%s%s", "AFM Error", syserr ? ":" : "", syserr ? syserr : ""); else sprintf (buf, "AFM Error: %s%s%s", error_names[code], syserr ? ": " : "", syserr ? syserr : ""); } AFMError afm_create (const char *path, unsigned int verbose_level, AFMHandle *handle_return) { AFMHandle handle; AFMError error = AFM_SUCCESS; const char *cp, *cp2; int len; char buf[512]; struct stat stat_st; /* Init handle. */ handle = (AFMHandle) calloc (1, sizeof (*handle)); if (handle == NULL) { error = AFM_ERROR_MEMORY; goto error_out; } handle->font_map = strhash_init (); if (handle->font_map == NULL) { error = AFM_ERROR_MEMORY; goto error_out; } handle->verbose = verbose_level; /* Traverse path. */ if (path == NULL) path = default_path; afm_message (handle, 1, "AFM: scanning path...\n"); for (cp = path; cp; cp = strchr (cp, PATH_SEPARATOR)) { if (cp != path) cp++; cp2 = strchr (cp, PATH_SEPARATOR); if (cp2) len = cp2 - cp; else len = strlen (cp); memcpy (buf, cp, len); buf[len] = '\0'; if (len > 0 && buf[len - 1] == '/') buf[len - 1] = '\0'; strcat (buf, "/font.map"); if (stat (buf, &stat_st) == 0) read_font_map (handle, buf); } *handle_return = handle; return AFM_SUCCESS; /* Error handling. */ error_out: (void) afm_destroy (handle); return error; } AFMError afm_destroy (AFMHandle handle) { char *key; int keylen; char *cp; if (handle == NULL) return AFM_ERROR_ARGUMENT; /* Free filenames. */ while (strhash_get_first (handle->font_map, &key, &keylen, (void *) &cp)) free (cp); strhash_free (handle->font_map); free (handle); return AFM_SUCCESS; } AFMError afm_set_verbose (AFMHandle handle, unsigned int level) { if (handle == NULL) return AFM_ERROR_ARGUMENT; handle->verbose = level; return AFM_SUCCESS; } AFMError afm_font_prefix (AFMHandle handle, const char *fontname, const char **prefix_return) { char *filename; if (handle == NULL || fontname == NULL || prefix_return == NULL) return AFM_ERROR_ARGUMENT; /* Lookup font. */ if (!strhash_get (handle->font_map, fontname, strlen (fontname), (void *) &filename)) return AFM_ERROR_UNKNOWN_FONT; *prefix_return = filename; return AFM_SUCCESS; } AFMError afm_open_font (AFMHandle handle, unsigned int info_level, const char *fontname, AFMFont *font_return) { char *filename; char fname[512]; if (handle == NULL || fontname == NULL) return AFM_ERROR_ARGUMENT; /* Lookup font. */ if (!strhash_get (handle->font_map, fontname, strlen (fontname), (void *) &filename)) return AFM_ERROR_UNKNOWN_FONT; /* Append suffix to the filename. */ sprintf (fname, "%s.afm", filename); return afm_open_file (handle, info_level, fname, font_return); } AFMError afm_open_file (AFMHandle handle, unsigned int info_level, const char *filename, AFMFont *font_return) { AFMFont font; AFMError error = AFM_SUCCESS; if (handle == NULL || filename == NULL) return AFM_ERROR_ARGUMENT; font = (AFMFont) calloc (1, sizeof (*font)); if (font == NULL) return AFM_ERROR_MEMORY; font->private = (struct afm_font_private_data_st *) calloc (1, sizeof (*font->private)); if (font->private == NULL) { error = AFM_ERROR_MEMORY; goto error_out; } font->private->fontnames = strhash_init (); if (font->private->fontnames == NULL) { error = AFM_ERROR_MEMORY; goto error_out; } font->private->compositenames = strhash_init (); if (font->private->compositenames == NULL) { error = AFM_ERROR_MEMORY; goto error_out; } font->info_level = info_level; /* Parse file. */ if (setjmp (handle->jmpbuf)) { /* Error during parse. */ error = handle->parse_error; goto error_out; } else { afm_parse_file (handle, filename, font); /* Parse successful. */ } *font_return = font; return AFM_SUCCESS; /* Error handling. */ error_out: (void) afm_close_font (font); return error; } #define FREE(ptr) if (ptr) free (ptr) AFMError afm_close_font (AFMFont font) { int i; if (font == NULL) return AFM_ERROR_ARGUMENT; /* Global info. */ FREE (font->global_info.FontName); FREE (font->global_info.FullName); FREE (font->global_info.FamilyName); FREE (font->global_info.Weight); FREE (font->global_info.Version); FREE (font->global_info.Notice); FREE (font->global_info.EncodingScheme); FREE (font->global_info.CharacterSet); /* Character metrics. */ for (i = 0; i < font->num_character_metrics; i++) FREE (font->character_metrics[i].name); FREE (font->character_metrics); /* Composites. */ for (i = 0; i < font->num_composites; i++) FREE (font->composites[i].name); FREE (font->composites); /* Kern pairs. */ for (i = 0; i < font->num_kern_pairs; i++) { FREE (font->kern_pairs[i].name1); FREE (font->kern_pairs[i].name2); } FREE (font->kern_pairs); /* Track kern. */ FREE (font->track_kerns); /* Private data. */ strhash_free (font->private->fontnames); strhash_free (font->private->compositenames); free (font); return AFM_SUCCESS; } #define STR(str) (str ? str : "") #define BOOL(val) (val ? "true" : "false") void afm_font_dump (FILE *fp, AFMFont font) { int i; fprintf (fp, "AFM Format Specification version: %g\n", font->version); fprintf (fp, "Global Font Information\n"); fprintf (fp, " FontName:\t%s\n", STR (font->global_info.FontName)); fprintf (fp, " FullName:\t%s\n", STR (font->global_info.FullName)); fprintf (fp, " FamilyName:\t%s\n", STR (font->global_info.FamilyName)); fprintf (fp, " Weight:\t%s\n", STR (font->global_info.Weight)); fprintf (fp, " FontBBox:\t%g %g %g %g\n", font->global_info.FontBBox_llx, font->global_info.FontBBox_lly, font->global_info.FontBBox_urx, font->global_info.FontBBox_ury); fprintf (fp, " Version:\t%s\n", STR (font->global_info.Version)); fprintf (fp, " Notice:\t%s\n", STR (font->global_info.Notice)); fprintf (fp, " EncodingScheme:\t%s\n", STR (font->global_info.EncodingScheme)); fprintf (fp, " MappingScheme:\t%ld\n", font->global_info.MappingScheme); fprintf (fp, " EscChar:\t%ld\n", font->global_info.EscChar); fprintf (fp, " CharacterSet:\t%s\n", STR (font->global_info.CharacterSet)); fprintf (fp, " Characters:\t%ld\n", font->global_info.Characters); fprintf (fp, " IsBaseFont:\t%s\n", BOOL(font->global_info.IsBaseFont)); fprintf (fp, " VVector:\t%g %g\n", font->global_info.VVector_0, font->global_info.VVector_1); fprintf (fp, " IsFixedV:\t%s\n", BOOL(font->global_info.IsFixedV)); fprintf (fp, " CapHeight:\t%g\n", font->global_info.CapHeight); fprintf (fp, " XHeight:\t%g\n", font->global_info.XHeight); fprintf (fp, " Ascender:\t%g\n", font->global_info.Ascender); fprintf (fp, " Descender:\t%g\n", font->global_info.Descender); for (i = 0; i < 2; i++) if (font->writing_direction_metrics[i].is_valid) { fprintf (fp, "Writing Direction %d\n", i); fprintf (fp, " UnderlinePosition: %g\n", font->writing_direction_metrics[i].UnderlinePosition); fprintf (fp, " UnderlineThickness: %g\n", font->writing_direction_metrics[i].UnderlineThickness); fprintf (fp, " ItalicAngle: %g\n", font->writing_direction_metrics[i].ItalicAngle); fprintf (fp, " CharWidth: %g %g\n", font->writing_direction_metrics[i].CharWidth_x, font->writing_direction_metrics[i].CharWidth_y); fprintf (fp, " IsFixedPitch: %s\n", BOOL (font->writing_direction_metrics[i].IsFixedPitch)); } /* Individual Character Metrics. */ fprintf (fp, "Individual Character Metrics %ld\n", font->num_character_metrics); for (i = 0; i < font->num_character_metrics; i++) { AFMIndividualCharacterMetrics *cm; cm = &font->character_metrics[i]; fprintf (fp, " C %ld ; N %s ; B %g %g %g %g\n", cm->character_code, STR (cm->name), cm->llx, cm->lly, cm->urx, cm->ury); fprintf (fp, " W0X %g ; W0Y %g ; W1X %g ; W1Y %g ; VV %g %g\n", cm->w0x, cm->w0y, cm->w1x, cm->w1y, cm->vv_x, cm->vv_y); } /* Composite Character Data. */ fprintf (fp, "Composite Character Data %ld\n", font->num_composites); for (i = 0; i < font->num_composites; i++) { AFMComposite *cm; int j; cm = &font->composites[i]; fprintf (fp, " CC %s %ld", cm->name, cm->num_components); for (j = 0; j < cm->num_components; j++) fprintf (fp, " ; PCC %s %g %g", cm->components[j].name, cm->components[j].deltax, cm->components[j].deltay); fprintf (fp, "\n"); } /* Kern pairs. */ fprintf (fp, "Pair-Wise Kerning %ld\n", font->num_kern_pairs); for (i = 0; i < font->num_kern_pairs; i++) { AFMPairWiseKerning *kp; kp = &font->kern_pairs[i]; fprintf (fp, " KP %s %s %g %g\n", STR (kp->name1), STR (kp->name2), kp->kx, kp->ky); } fprintf (fp, "Track Kerning %ld\n", font->num_track_kerns); for (i = 0; i < font->num_track_kerns; i++) { AFMTrackKern *tk; tk = &font->track_kerns[i]; fprintf (fp, " TrackKern %ld %g %g %g %g\n", tk->degree, tk->min_ptsize, tk->min_kern, tk->max_ptsize, tk->max_kern); } } AFMError afm_font_stringwidth (AFMFont font, AFMNumber ptsize, char *string, unsigned int stringlen, AFMNumber *w0x_return, AFMNumber *w0y_return) { unsigned int i; AFMNumber x = 0.0; AFMNumber y = 0.0; AFMIndividualCharacterMetrics *cm; if (!font || !string || !font->writing_direction_metrics[0].is_valid) return AFM_ERROR_ARGUMENT; /* Check shortcut. */ if (font->writing_direction_metrics[0].IsFixedPitch) { /* This is the easy case. */ x = stringlen * font->writing_direction_metrics[0].CharWidth_x; y = stringlen * font->writing_direction_metrics[0].CharWidth_y; } else { /* Count character by character. */ for (i = 0; i < stringlen; i++) { cm = font->encoding[(unsigned char) string[i]]; if (cm == AFM_ENC_NONE || cm == AFM_ENC_NON_EXISTENT) { /* Use the undef font. */ x += font->private->undef->w0x; y += font->private->undef->w0y; } else { /* Font found and valid, take values. */ x += cm->w0x; y += cm->w0y; } } } *w0x_return = x / UNITS_PER_POINT * ptsize; *w0y_return = y / UNITS_PER_POINT * ptsize; return AFM_SUCCESS; } AFMError afm_font_charwidth (AFMFont font, AFMNumber ptsize, char ch, AFMNumber *w0x_return, AFMNumber *w0y_return) { AFMNumber x = 0.0; AFMNumber y = 0.0; AFMIndividualCharacterMetrics *cm; if (!font || !font->writing_direction_metrics[0].is_valid) return AFM_ERROR_ARGUMENT; /* Check shortcut. */ if (font->writing_direction_metrics[0].IsFixedPitch) { x = font->writing_direction_metrics[0].CharWidth_x; y = font->writing_direction_metrics[0].CharWidth_y; } else { cm = font->encoding[(unsigned char) ch]; if (cm == AFM_ENC_NONE || cm == AFM_ENC_NON_EXISTENT) { /* Use the undef font. */ x = font->private->undef->w0x; y = font->private->undef->w0y; } else { /* Font found and valid, take values. */ x = cm->w0x; y = cm->w0y; } } *w0x_return = x / UNITS_PER_POINT * ptsize; *w0y_return = y / UNITS_PER_POINT * ptsize; return AFM_SUCCESS; } AFMError afm_font_encode (AFMFont font, unsigned char code, char *name, unsigned int flags) { AFMIndividualCharacterMetrics *cm; AFMComposite *comp; if (font == NULL) return AFM_ERROR_ARGUMENT; if (name) { /* Get font. */ if (!strhash_get (font->private->fontnames, name, strlen (name), (void *) &cm)) { /* Check composite characters. */ if ((flags & AFM_ENCODE_ACCEPT_COMPOSITES) == 0 || strhash_get (font->private->compositenames, name, strlen (name), (void *) &comp) == 0) cm = AFM_ENC_NON_EXISTENT; else { /* * Ok, composite character found, now find the character * specified by the first composite component. */ if (!strhash_get (font->private->fontnames, comp->components[0].name, strlen (comp->components[0].name), (void *) &cm)) cm = AFM_ENC_NON_EXISTENT; } } } else cm = AFM_ENC_NONE; font->encoding[(unsigned int) code] = cm; return AFM_SUCCESS; } AFMError afm_font_encoding (AFMFont font, AFMEncoding enc, unsigned int flags) { int i; AFMIndividualCharacterMetrics *cm; if (font == NULL) return AFM_ERROR_ARGUMENT; switch (enc) { case AFM_ENCODING_DEFAULT: /* Clear encoding. */ for (i = 0; i < 256; i++) font->encoding[i] = AFM_ENC_NONE; /* Apply font's default encoding. */ for (i = 0; i < font->num_character_metrics; i++) { cm = &font->character_metrics[i]; font->encoding[cm->character_code] = cm; } break; case AFM_ENCODING_ISO_8859_1: apply_encoding (font, afm_88591_encoding, flags); break; case AFM_ENCODING_ISO_8859_2: apply_encoding (font, afm_88592_encoding, flags); break; case AFM_ENCODING_ISO_8859_3: apply_encoding (font, afm_88593_encoding, flags); break; case AFM_ENCODING_ISO_8859_4: apply_encoding (font, afm_88594_encoding, flags); break; case AFM_ENCODING_ISO_8859_5: apply_encoding (font, afm_88595_encoding, flags); break; case AFM_ENCODING_ISO_8859_7: apply_encoding (font, afm_88597_encoding, flags); break; case AFM_ENCODING_ISO_8859_9: apply_encoding (font, afm_88599_encoding, flags); break; case AFM_ENCODING_ISO_8859_10: apply_encoding (font, afm_885910_encoding, flags); break; case AFM_ENCODING_IBMPC: apply_encoding (font, afm_ibmpc_encoding, flags); break; case AFM_ENCODING_ASCII: /* * First apply one encoding (all have equal first 128 characters), * then zap last 128 chars. */ apply_encoding (font, afm_88591_encoding, flags); for (i = 128; i < 256; i++) font->encoding[i] = AFM_ENC_NONE; break; case AFM_ENCODING_MAC: apply_encoding (font, afm_mac_encoding, flags); break; case AFM_ENCODING_VMS: apply_encoding (font, afm_vms_encoding, flags); break; case AFM_ENCODING_HP8: apply_encoding (font, afm_hp8_encoding, flags); break; case AFM_ENCODING_KOI8: apply_encoding (font, afm_koi8_encoding, flags); break; } return AFM_SUCCESS; } /* * Internal help functions. */ void afm_message (AFMHandle handle, unsigned int level, char *message) { if (handle->verbose < level) return; fprintf (stderr, "%s", message); } void afm_error (AFMHandle handle, char *message) { fprintf (stderr, "AFM Error: %s\n", message); } /* * Static functions. */ static void read_font_map (AFMHandle handle, char *name) { FILE *fp; char buf[512]; char fullname[512]; unsigned int dirlen; char *cp, *cp2; char msg[256]; sprintf (msg, "AFM: reading font map \"%s\"\n", name); afm_message (handle, 1, msg); fp = fopen (name, "r"); if (fp == NULL) { sprintf (msg, "AFM: couldn't open font map \"%s\": %s\n", name, strerror (errno)); afm_message (handle, 1, msg); return; } /* Get directory */ cp = strrchr (name, '/'); if (cp) { dirlen = cp - name + 1; memcpy (fullname, name, dirlen); } else { dirlen = 2; memcpy (fullname, "./", dirlen); } while (fgets (buf, sizeof (buf), fp)) { char font[256]; char file[256]; if (sscanf (buf, "%s %s", font, file) != 2) { sprintf (msg, "malformed line in font map \"%s\":\n%s", name, buf); afm_error (handle, msg); continue; } /* Do we already have this font? */ if (strhash_get (handle->font_map, font, strlen (font), (void *) &cp)) continue; /* Append file name. */ strcpy (fullname + dirlen, file); cp = (char *) malloc (strlen (fullname) + 1); if (cp == NULL) { afm_error (handle, "couldn't add font: out of memory"); goto out; } strcpy (cp, fullname); sprintf (msg, "AFM: font mapping: %s -> %s\n", font, cp); afm_message (handle, 2, msg); (void) strhash_put (handle->font_map, font, strlen (font), cp, (void *) &cp2); } out: fclose (fp); } static void apply_encoding (AFMFont font, AFMEncodingTable *enc, unsigned int flags) { int i; AFMIndividualCharacterMetrics *cm; AFMComposite *comp; for (i = 0; enc[i].code >= 0; i++) { if (enc[i].character == AFM_ENC_NONE) font->encoding[enc[i].code] = AFM_ENC_NONE; else if (enc[i].character == AFM_ENC_NON_EXISTENT) font->encoding[enc[i].code] = AFM_ENC_NON_EXISTENT; else { if (strhash_get (font->private->fontnames, enc[i].character, strlen (enc[i].character), (void *) &cm)) font->encoding[enc[i].code] = cm; else { /* Check composite characters. */ if ((flags & AFM_ENCODE_ACCEPT_COMPOSITES) == 0 || strhash_get (font->private->compositenames, enc[i].character, strlen (enc[i].character), (void *) &comp) == 0) font->encoding[enc[i].code] = AFM_ENC_NON_EXISTENT; else { /* Composite character found. */ if (strhash_get (font->private->fontnames, comp->components[0].name, strlen (comp->components[0].name), (void *) &cm)) font->encoding[enc[i].code] = cm; else font->encoding[enc[i].code] = AFM_ENC_NON_EXISTENT; } } } } } enscript-1.6.5.90/afmlib/deffont.c0000644000175000017500000001753611133214772013562 00000000000000/* * The default font. * Copyright (c) 1995, 1996, 1997 Markku Rossi. * * Author: Markku Rossi */ /* * Enscript is free software: you can redistribute 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. * * Enscript is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Enscript. If not, see . */ #include "afmint.h" #include "afm.h" /* * Static variables. */ static AFMEncodingTable builtin_courier[] = { {32, "space"}, {33, "exclam"}, {34, "quotedbl"}, {35, "numbersign"}, {36, "dollar"}, {37, "percent"}, {38, "ampersand"}, {39, "quoteright"}, {40, "parenleft"}, {41, "parenright"}, {42, "asterisk"}, {43, "plus"}, {44, "comma"}, {45, "hyphen"}, {46, "period"}, {47, "slash"}, {48, "zero"}, {49, "one"}, {50, "two"}, {51, "three"}, {52, "four"}, {53, "five"}, {54, "six"}, {55, "seven"}, {56, "eight"}, {57, "nine"}, {58, "colon"}, {59, "semicolon"}, {60, "less"}, {61, "equal"}, {62, "greater"}, {63, "question"}, {64, "at"}, {65, "A"}, {66, "B"}, {67, "C"}, {68, "D"}, {69, "E"}, {70, "F"}, {71, "G"}, {72, "H"}, {73, "I"}, {74, "J"}, {75, "K"}, {76, "L"}, {77, "M"}, {78, "N"}, {79, "O"}, {80, "P"}, {81, "Q"}, {82, "R"}, {83, "S"}, {84, "T"}, {85, "U"}, {86, "V"}, {87, "W"}, {88, "X"}, {89, "Y"}, {90, "Z"}, {91, "bracketleft"}, {92, "backslash"}, {93, "bracketright"}, {94, "asciicircum"}, {95, "underscore"}, {96, "quoteleft"}, {97, "a"}, {98, "b"}, {99, "c"}, {100, "d"}, {101, "e"}, {102, "f"}, {103, "g"}, {104, "h"}, {105, "i"}, {106, "j"}, {107, "k"}, {108, "l"}, {109, "m"}, {110, "n"}, {111, "o"}, {112, "p"}, {113, "q"}, {114, "r"}, {115, "s"}, {116, "t"}, {117, "u"}, {118, "v"}, {119, "w"}, {120, "x"}, {121, "y"}, {122, "z"}, {123, "braceleft"}, {124, "bar"}, {125, "braceright"}, {126, "asciitilde"}, {161, "exclamdown"}, {162, "cent"}, {163, "sterling"}, {164, "fraction"}, {165, "yen"}, {166, "florin"}, {167, "section"}, {168, "currency"}, {169, "quotesingle"}, {170, "quotedblleft"}, {171, "guillemotleft"}, {172, "guilsinglleft"}, {173, "guilsinglright"}, {174, "fi"}, {175, "fl"}, {177, "endash"}, {178, "dagger"}, {179, "daggerdbl"}, {180, "periodcentered"}, {182, "paragraph"}, {183, "bullet"}, {184, "quotesinglbase"}, {185, "quotedblbase"}, {186, "quotedblright"}, {187, "guillemotright"}, {188, "ellipsis"}, {189, "perthousand"}, {191, "questiondown"}, {193, "grave"}, {194, "acute"}, {195, "circumflex"}, {196, "tilde"}, {197, "macron"}, {198, "breve"}, {199, "dotaccent"}, {200, "dieresis"}, {202, "ring"}, {203, "cedilla"}, {205, "hungarumlaut"}, {206, "ogonek"}, {207, "caron"}, {208, "emdash"}, {225, "AE"}, {227, "ordfeminine"}, {232, "Lslash"}, {233, "Oslash"}, {234, "OE"}, {235, "ordmasculine"}, {241, "ae"}, {245, "dotlessi"}, {248, "lslash"}, {249, "oslash"}, {250, "oe"}, {251, "germandbls"}, {-1, "Aacute"}, {-1, "Acircumflex"}, {-1, "Adieresis"}, {-1, "Agrave"}, {-1, "Aring"}, {-1, "Atilde"}, {-1, "Ccedilla"}, {-1, "Eacute"}, {-1, "Ecircumflex"}, {-1, "Edieresis"}, {-1, "Egrave"}, {-1, "Eth"}, {-1, "Gcaron"}, {-1, "IJ"}, {-1, "Iacute"}, {-1, "Icircumflex"}, {-1, "Idieresis"}, {-1, "Idot"}, {-1, "Igrave"}, {-1, "LL"}, {-1, "Ntilde"}, {-1, "Oacute"}, {-1, "Ocircumflex"}, {-1, "Odieresis"}, {-1, "Ograve"}, {-1, "Otilde"}, {-1, "Scaron"}, {-1, "Scedilla"}, {-1, "Thorn"}, {-1, "Uacute"}, {-1, "Ucircumflex"}, {-1, "Udieresis"}, {-1, "Ugrave"}, {-1, "Yacute"}, {-1, "Ydieresis"}, {-1, "Zcaron"}, {-1, "aacute"}, {-1, "acircumflex"}, {-1, "adieresis"}, {-1, "agrave"}, {-1, "aring"}, {-1, "arrowboth"}, {-1, "arrowdown"}, {-1, "arrowleft"}, {-1, "arrowright"}, {-1, "arrowup"}, {-1, "atilde"}, {-1, "brokenbar"}, {-1, "ccedilla"}, {-1, "center"}, {-1, "copyright"}, {-1, "dectab"}, {-1, "degree"}, {-1, "divide"}, {-1, "down"}, {-1, "eacute"}, {-1, "ecircumflex"}, {-1, "edieresis"}, {-1, "egrave"}, {-1, "eth"}, {-1, "format"}, {-1, "gcaron"}, {-1, "graybox"}, {-1, "iacute"}, {-1, "icircumflex"}, {-1, "idieresis"}, {-1, "igrave"}, {-1, "ij"}, {-1, "indent"}, {-1, "largebullet"}, {-1, "left"}, {-1, "lira"}, {-1, "ll"}, {-1, "logicalnot"}, {-1, "merge"}, {-1, "minus"}, {-1, "mu"}, {-1, "multiply"}, {-1, "notegraphic"}, {-1, "ntilde"}, {-1, "oacute"}, {-1, "ocircumflex"}, {-1, "odieresis"}, {-1, "ograve"}, {-1, "onehalf"}, {-1, "onequarter"}, {-1, "onesuperior"}, {-1, "otilde"}, {-1, "overscore"}, {-1, "plusminus"}, {-1, "prescription"}, {-1, "registered"}, {-1, "return"}, {-1, "scaron"}, {-1, "scedilla"}, {-1, "square"}, {-1, "stop"}, {-1, "tab"}, {-1, "thorn"}, {-1, "threequarters"}, {-1, "threesuperior"}, {-1, "trademark"}, {-1, "twosuperior"}, {-1, "uacute"}, {-1, "ucircumflex"}, {-1, "udieresis"}, {-1, "ugrave"}, {-1, "up"}, {-1, "yacute"}, {-1, "ydieresis"}, {-1, "zcaron"}, {0, NULL}, }; #define NUM_CHARACTER_METRICS \ (sizeof (builtin_courier) / sizeof (AFMEncodingTable) - 1) /* * Public functions. */ AFMError afm_open_default_font (AFMHandle handle, AFMFont *font_return) { AFMFont font; AFMIndividualCharacterMetrics *cm; int i; /* Alloc memory. */ font = (AFMFont) calloc (1, sizeof (*font)); if (font == NULL) goto error_out; font->private = (struct afm_font_private_data_st *) calloc (1, sizeof (*font->private)); if (font->private == NULL) goto error_out; font->private->fontnames = strhash_init (); if (font->private->fontnames == NULL) goto error_out; /* Version. */ font->version = 4.0; /* Global Font Info. */ font->global_info.FontName = (char *) malloc (strlen ("Courier") + 1); if (font->global_info.FontName == NULL) goto error_out; strcpy (font->global_info.FontName, "Courier"); font->global_info.FontBBox_llx = -40.0; font->global_info.FontBBox_lly = -290.0; font->global_info.FontBBox_urx = 640.0; font->global_info.FontBBox_ury = 795.0; /* Writing directions. */ font->writing_direction_metrics[0].is_valid = AFMTrue; font->writing_direction_metrics[0].IsFixedPitch = AFMTrue; font->writing_direction_metrics[0].CharWidth_x = 600.0; font->writing_direction_metrics[0].CharWidth_y = 0.0; /* Character Metrics. */ font->num_character_metrics = NUM_CHARACTER_METRICS; font->character_metrics = (AFMIndividualCharacterMetrics *) calloc (NUM_CHARACTER_METRICS, sizeof (AFMIndividualCharacterMetrics)); if (font->character_metrics == NULL) goto error_out; for (i = 0; builtin_courier[i].character; i++) { cm = &font->character_metrics[i]; cm->name = (char *) malloc (strlen (builtin_courier[i].character) + 1); if (cm->name == NULL) goto error_out; strcpy (cm->name, builtin_courier[i].character); if (!strhash_put (font->private->fontnames, cm->name, strlen (cm->name), cm, NULL)) goto error_out; cm->character_code = builtin_courier[i].code; cm->w0x = 600.0; cm->w0y = 0.0; } *font_return = font; return AFM_SUCCESS; error_out: (void) afm_close_font (font); return AFM_ERROR_MEMORY; } enscript-1.6.5.90/afmlib/e_88591.c0000644000175000017500000001410011133214772013117 00000000000000/* * AFM 88591 encoding. * * This file is automatically generated from file `88591.txt'. If you * have any corrections to this file, please, edit file `88591.txt' instead. */ /* * Enscript is free software: you can redistribute 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. * * Enscript is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Enscript. If not, see . */ #include "afmint.h" AFMEncodingTable afm_88591_encoding[] = { {0x00, AFM_ENC_NONE}, {0x01, AFM_ENC_NONE}, {0x02, AFM_ENC_NONE}, {0x03, AFM_ENC_NONE}, {0x04, AFM_ENC_NONE}, {0x05, AFM_ENC_NONE}, {0x06, AFM_ENC_NONE}, {0x07, AFM_ENC_NONE}, {0x08, AFM_ENC_NONE}, {0x09, AFM_ENC_NONE}, {0x0a, AFM_ENC_NONE}, {0x0b, AFM_ENC_NONE}, {0x0c, AFM_ENC_NONE}, {0x0d, AFM_ENC_NONE}, {0x0e, AFM_ENC_NONE}, {0x0f, AFM_ENC_NONE}, {0x10, AFM_ENC_NONE}, {0x11, AFM_ENC_NONE}, {0x12, AFM_ENC_NONE}, {0x13, AFM_ENC_NONE}, {0x14, AFM_ENC_NONE}, {0x15, AFM_ENC_NONE}, {0x16, AFM_ENC_NONE}, {0x17, AFM_ENC_NONE}, {0x18, AFM_ENC_NONE}, {0x19, AFM_ENC_NONE}, {0x1a, AFM_ENC_NONE}, {0x1b, AFM_ENC_NONE}, {0x1c, AFM_ENC_NONE}, {0x1d, AFM_ENC_NONE}, {0x1e, AFM_ENC_NONE}, {0x1f, AFM_ENC_NONE}, {0x20, "space"}, {0x21, "exclam"}, {0x22, "quotedbl"}, {0x23, "numbersign"}, {0x24, "dollar"}, {0x25, "percent"}, {0x26, "ampersand"}, {0x27, "quoteright"}, {0x28, "parenleft"}, {0x29, "parenright"}, {0x2a, "asterisk"}, {0x2b, "plus"}, {0x2c, "comma"}, {0x2d, "hyphen"}, {0x2e, "period"}, {0x2f, "slash"}, {0x30, "zero"}, {0x31, "one"}, {0x32, "two"}, {0x33, "three"}, {0x34, "four"}, {0x35, "five"}, {0x36, "six"}, {0x37, "seven"}, {0x38, "eight"}, {0x39, "nine"}, {0x3a, "colon"}, {0x3b, "semicolon"}, {0x3c, "less"}, {0x3d, "equal"}, {0x3e, "greater"}, {0x3f, "question"}, {0x40, "at"}, {0x41, "A"}, {0x42, "B"}, {0x43, "C"}, {0x44, "D"}, {0x45, "E"}, {0x46, "F"}, {0x47, "G"}, {0x48, "H"}, {0x49, "I"}, {0x4a, "J"}, {0x4b, "K"}, {0x4c, "L"}, {0x4d, "M"}, {0x4e, "N"}, {0x4f, "O"}, {0x50, "P"}, {0x51, "Q"}, {0x52, "R"}, {0x53, "S"}, {0x54, "T"}, {0x55, "U"}, {0x56, "V"}, {0x57, "W"}, {0x58, "X"}, {0x59, "Y"}, {0x5a, "Z"}, {0x5b, "bracketleft"}, {0x5c, "backslash"}, {0x5d, "bracketright"}, {0x5e, "asciicircum"}, {0x5f, "underscore"}, {0x60, "quoteleft"}, {0x61, "a"}, {0x62, "b"}, {0x63, "c"}, {0x64, "d"}, {0x65, "e"}, {0x66, "f"}, {0x67, "g"}, {0x68, "h"}, {0x69, "i"}, {0x6a, "j"}, {0x6b, "k"}, {0x6c, "l"}, {0x6d, "m"}, {0x6e, "n"}, {0x6f, "o"}, {0x70, "p"}, {0x71, "q"}, {0x72, "r"}, {0x73, "s"}, {0x74, "t"}, {0x75, "u"}, {0x76, "v"}, {0x77, "w"}, {0x78, "x"}, {0x79, "y"}, {0x7a, "z"}, {0x7b, "braceleft"}, {0x7c, "bar"}, {0x7d, "braceright"}, {0x7e, "tilde"}, {0x7f, AFM_ENC_NONE}, {0x80, AFM_ENC_NONE}, {0x81, AFM_ENC_NONE}, {0x82, AFM_ENC_NONE}, {0x83, AFM_ENC_NONE}, {0x84, AFM_ENC_NONE}, {0x85, AFM_ENC_NONE}, {0x86, AFM_ENC_NONE}, {0x87, AFM_ENC_NONE}, {0x88, AFM_ENC_NONE}, {0x89, AFM_ENC_NONE}, {0x8a, AFM_ENC_NONE}, {0x8b, AFM_ENC_NONE}, {0x8c, AFM_ENC_NONE}, {0x8d, AFM_ENC_NONE}, {0x8e, AFM_ENC_NONE}, {0x8f, AFM_ENC_NONE}, {0x90, AFM_ENC_NONE}, {0x91, AFM_ENC_NONE}, {0x92, AFM_ENC_NONE}, {0x93, AFM_ENC_NONE}, {0x94, AFM_ENC_NONE}, {0x95, AFM_ENC_NONE}, {0x96, AFM_ENC_NONE}, {0x97, AFM_ENC_NONE}, {0x98, AFM_ENC_NONE}, {0x99, AFM_ENC_NONE}, {0x9a, AFM_ENC_NONE}, {0x9b, AFM_ENC_NONE}, {0x9c, AFM_ENC_NONE}, {0x9d, AFM_ENC_NONE}, {0x9e, AFM_ENC_NONE}, {0x9f, AFM_ENC_NONE}, {0xa0, "space"}, {0xa1, "exclamdown"}, {0xa2, "cent"}, {0xa3, "sterling"}, {0xa4, "currency"}, {0xa5, "yen"}, {0xa6, "brokenbar"}, {0xa7, "section"}, {0xa8, "dieresis"}, {0xa9, "copyright"}, {0xaa, "ordfeminine"}, {0xab, "guillemotleft"}, {0xac, "logicalnot"}, {0xad, "hyphen"}, {0xae, "registered"}, {0xaf, "macron"}, {0xb0, "degree"}, {0xb1, "plusminus"}, {0xb2, "twosuperior"}, {0xb3, "threesuperior"}, {0xb4, "acute"}, {0xb5, "mu"}, {0xb6, "paragraph"}, {0xb7, "bullet"}, {0xb8, "cedilla"}, {0xb9, "onesuperior"}, {0xba, "ordmasculine"}, {0xbb, "guillemotright"}, {0xbc, "onequarter"}, {0xbd, "onehalf"}, {0xbe, "threequarters"}, {0xbf, "questiondown"}, {0xc0, "Agrave"}, {0xc1, "Aacute"}, {0xc2, "Acircumflex"}, {0xc3, "Atilde"}, {0xc4, "Adieresis"}, {0xc5, "Aring"}, {0xc6, "AE"}, {0xc7, "Ccedilla"}, {0xc8, "Egrave"}, {0xc9, "Eacute"}, {0xca, "Ecircumflex"}, {0xcb, "Edieresis"}, {0xcc, "Igrave"}, {0xcd, "Iacute"}, {0xce, "Icircumflex"}, {0xcf, "Idieresis"}, {0xd0, "Eth"}, {0xd1, "Ntilde"}, {0xd2, "Ograve"}, {0xd3, "Oacute"}, {0xd4, "Ocircumflex"}, {0xd5, "Otilde"}, {0xd6, "Odieresis"}, {0xd7, "multiply"}, {0xd8, "Oslash"}, {0xd9, "Ugrave"}, {0xda, "Uacute"}, {0xdb, "Ucircumflex"}, {0xdc, "Udieresis"}, {0xdd, "Yacute"}, {0xde, "Thorn"}, {0xdf, "germandbls"}, {0xe0, "agrave"}, {0xe1, "aacute"}, {0xe2, "acircumflex"}, {0xe3, "atilde"}, {0xe4, "adieresis"}, {0xe5, "aring"}, {0xe6, "ae"}, {0xe7, "ccedilla"}, {0xe8, "egrave"}, {0xe9, "eacute"}, {0xea, "ecircumflex"}, {0xeb, "edieresis"}, {0xec, "igrave"}, {0xed, "iacute"}, {0xee, "icircumflex"}, {0xef, "idieresis"}, {0xf0, "eth"}, {0xf1, "ntilde"}, {0xf2, "ograve"}, {0xf3, "oacute"}, {0xf4, "ocircumflex"}, {0xf5, "otilde"}, {0xf6, "odieresis"}, {0xf7, "divide"}, {0xf8, "oslash"}, {0xf9, "ugrave"}, {0xfa, "uacute"}, {0xfb, "ucircumflex"}, {0xfc, "udieresis"}, {0xfd, "yacute"}, {0xfe, "thorn"}, {0xff, "ydieresis"}, {-1, NULL}, }; enscript-1.6.5.90/afmlib/strhash.h0000644000175000017500000000510411133214772013602 00000000000000/* * String hash table. * Copyright (c) 1995, 1996, 1997 Markku Rossi. * * Author: Markku Rossi */ /* * Enscript is free software: you can redistribute 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. * * Enscript is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Enscript. If not, see . */ #ifndef STRHASH_H #define STRHASH_H #ifndef ___P #if PROTOTYPES #define ___P(protos) protos #else /* no PROTOTYPES */ #define ___P(protos) () #endif /* no PROTOTYPES */ #endif typedef struct stringhash_st *StringHashPtr; /* * Init a hash and return a hash handle or NULL if there were errors. */ StringHashPtr strhash_init ___P ((void)); /* * Free hash . Frees all resources that hash has allocated. * shouldn't be used after this function is called. */ void strhash_free ___P ((StringHashPtr hash)); /* * Put key to hash . will be bind to . Returns * true (1) if operation was successful or false (0) otherwise. If * is already bind to another data, then will be set to old * data. Otherwise it will be set to NULL. */ int strhash_put ___P ((StringHashPtr hash, char *key, int keylen, void *data, void **old_data_return)); /* * Get data associated to key . Data is returned in <*data>. * Returns true (1) is key was found or false (0) otherwise. */ int strhash_get ___P ((StringHashPtr hash, const char *key, int keylen, void **data_return)); /* * Deletes key form . Data is returned in <*data>. Returns * true (1) if was found or false (0) if was not found or * errors were encountered. */ int strhash_delete ___P ((StringHashPtr hash, const char *key, int keylen, void **data_return)); /* * Get first item from hash . Returns 1 if there were items * or 0 otherwise. */ int strhash_get_first ___P ((StringHashPtr hash, char **key_return, int *keylen_return, void **data_return)); /* * Get next item from hash . Returns 1 if there were items * or 0 otherwise. */ int strhash_get_next ___P ((StringHashPtr hash, char **key_return, int *keylen_return, void **data_return)); #endif /* not STRHASH_H */ enscript-1.6.5.90/afmlib/e_mac.c0000644000175000017500000001377411133214772013201 00000000000000/* * AFM mac encoding. * * This file is automatically generated from file `mac.txt'. If you * have any corrections to this file, please, edit file `mac.txt' instead. */ /* * Enscript is free software: you can redistribute 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. * * Enscript is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Enscript. If not, see . */ #include "afmint.h" AFMEncodingTable afm_mac_encoding[] = { {0x00, AFM_ENC_NONE}, {0x01, AFM_ENC_NONE}, {0x02, AFM_ENC_NONE}, {0x03, AFM_ENC_NONE}, {0x04, AFM_ENC_NONE}, {0x05, AFM_ENC_NONE}, {0x06, AFM_ENC_NONE}, {0x07, AFM_ENC_NONE}, {0x08, AFM_ENC_NONE}, {0x09, AFM_ENC_NONE}, {0x0a, AFM_ENC_NONE}, {0x0b, AFM_ENC_NONE}, {0x0c, AFM_ENC_NONE}, {0x0d, AFM_ENC_NONE}, {0x0e, AFM_ENC_NONE}, {0x0f, AFM_ENC_NONE}, {0x10, AFM_ENC_NONE}, {0x11, AFM_ENC_NONE}, {0x12, AFM_ENC_NONE}, {0x13, AFM_ENC_NONE}, {0x14, AFM_ENC_NONE}, {0x15, AFM_ENC_NONE}, {0x16, AFM_ENC_NONE}, {0x17, AFM_ENC_NONE}, {0x18, AFM_ENC_NONE}, {0x19, AFM_ENC_NONE}, {0x1a, AFM_ENC_NONE}, {0x1b, AFM_ENC_NONE}, {0x1c, AFM_ENC_NONE}, {0x1d, AFM_ENC_NONE}, {0x1e, AFM_ENC_NONE}, {0x1f, AFM_ENC_NONE}, {0x20, "space"}, {0x21, "exclam"}, {0x22, "quotedbl"}, {0x23, "numbersign"}, {0x24, "dollar"}, {0x25, "percent"}, {0x26, "ampersand"}, {0x27, "quoteright"}, {0x28, "parenleft"}, {0x29, "parenright"}, {0x2a, "asterisk"}, {0x2b, "plus"}, {0x2c, "comma"}, {0x2d, "hyphen"}, {0x2e, "period"}, {0x2f, "slash"}, {0x30, "zero"}, {0x31, "one"}, {0x32, "two"}, {0x33, "three"}, {0x34, "four"}, {0x35, "five"}, {0x36, "six"}, {0x37, "seven"}, {0x38, "eight"}, {0x39, "nine"}, {0x3a, "colon"}, {0x3b, "semicolon"}, {0x3c, "less"}, {0x3d, "equal"}, {0x3e, "greater"}, {0x3f, "question"}, {0x40, "at"}, {0x41, "A"}, {0x42, "B"}, {0x43, "C"}, {0x44, "D"}, {0x45, "E"}, {0x46, "F"}, {0x47, "G"}, {0x48, "H"}, {0x49, "I"}, {0x4a, "J"}, {0x4b, "K"}, {0x4c, "L"}, {0x4d, "M"}, {0x4e, "N"}, {0x4f, "O"}, {0x50, "P"}, {0x51, "Q"}, {0x52, "R"}, {0x53, "S"}, {0x54, "T"}, {0x55, "U"}, {0x56, "V"}, {0x57, "W"}, {0x58, "X"}, {0x59, "Y"}, {0x5a, "Z"}, {0x5b, "bracketleft"}, {0x5c, "backslash"}, {0x5d, "bracketright"}, {0x5e, "asciicircum"}, {0x5f, "underscore"}, {0x60, "quoteleft"}, {0x61, "a"}, {0x62, "b"}, {0x63, "c"}, {0x64, "d"}, {0x65, "e"}, {0x66, "f"}, {0x67, "g"}, {0x68, "h"}, {0x69, "i"}, {0x6a, "j"}, {0x6b, "k"}, {0x6c, "l"}, {0x6d, "m"}, {0x6e, "n"}, {0x6f, "o"}, {0x70, "p"}, {0x71, "q"}, {0x72, "r"}, {0x73, "s"}, {0x74, "t"}, {0x75, "u"}, {0x76, "v"}, {0x77, "w"}, {0x78, "x"}, {0x79, "y"}, {0x7a, "z"}, {0x7b, "braceleft"}, {0x7c, "bar"}, {0x7d, "braceright"}, {0x7e, "tilde"}, {0x7f, AFM_ENC_NONE}, {0x80, "Adieresis"}, {0x81, "Aring"}, {0x82, "Ccedilla"}, {0x83, "Eacute"}, {0x84, "Ntilde"}, {0x85, "Odieresis"}, {0x86, "Udieresis"}, {0x87, "aacute"}, {0x88, "agrave"}, {0x89, "acircumflex"}, {0x8a, "adieresis"}, {0x8b, "atilde"}, {0x8c, "aring"}, {0x8d, "ccedilla"}, {0x8e, "eacute"}, {0x8f, "egrave"}, {0x90, "ecircumflex"}, {0x91, "edieresis"}, {0x92, "iacute"}, {0x93, "igrave"}, {0x94, "icircumflex"}, {0x95, "idieresis"}, {0x96, "ntilde"}, {0x97, "oacute"}, {0x98, "ograve"}, {0x99, "ocircumflex"}, {0x9a, "odieresis"}, {0x9b, "otilde"}, {0x9c, "uacute"}, {0x9d, "ugrave"}, {0x9e, "ucircumflex"}, {0x9f, "udieresis"}, {0xa0, "dagger"}, {0xa1, "degree"}, {0xa2, "cent"}, {0xa3, "sterling"}, {0xa4, "section"}, {0xa5, "bullet"}, {0xa6, "paragraph"}, {0xa7, "germandbls"}, {0xa8, "registered"}, {0xa9, "copyright"}, {0xaa, "trademark"}, {0xab, "acute"}, {0xac, "dieresis"}, {0xad, "notequal"}, {0xae, "AE"}, {0xaf, "Oslash"}, {0xb0, "infinity"}, {0xb1, "plusminus"}, {0xb2, "lessequal"}, {0xb3, "greaterequal"}, {0xb4, "yen"}, {0xb5, "mu"}, {0xb6, "partialdiff"}, {0xb7, "Sigma"}, {0xb8, "product"}, {0xb9, "pi"}, {0xba, "integral"}, {0xbb, "ordfeminine"}, {0xbc, "ordmasculine"}, {0xbd, "Omega"}, {0xbe, "ae"}, {0xbf, "oslash"}, {0xc0, "questiondown"}, {0xc1, "exclamdown"}, {0xc2, "logicalnot"}, {0xc3, "radical"}, {0xc4, "florin"}, {0xc5, "approxequal"}, {0xc6, "Delta"}, {0xc7, "guillemotleft"}, {0xc8, "guillemotright"}, {0xc9, "ellipsis"}, {0xca, "space"}, {0xcb, "Agrave"}, {0xcc, "Atilde"}, {0xcd, "Otilde"}, {0xce, "OE"}, {0xcf, "oe"}, {0xd0, "endash"}, {0xd1, "emdash"}, {0xd2, "quotedblleft"}, {0xd3, "quotedblright"}, {0xd4, "quoteleft"}, {0xd5, "quoteright"}, {0xd6, "divide"}, {0xd7, "lozenge"}, {0xd8, "ydieresis"}, {0xd9, "Ydieresis"}, {0xda, "fraction"}, {0xdb, "currency"}, {0xdc, "guilsinglleft"}, {0xdd, "guilsinglright"}, {0xde, "fi"}, {0xdf, "fl"}, {0xe0, "daggerdbl"}, {0xe1, "periodcentered"}, {0xe2, "quotesinglbase"}, {0xe3, "quotedblbase"}, {0xe4, "perthousand"}, {0xe5, "Acircumflex"}, {0xe6, "Ecircumflex"}, {0xe7, "Aacute"}, {0xe8, "Edieresis"}, {0xe9, "Egrave"}, {0xea, "Iacute"}, {0xeb, "Icircumflex"}, {0xec, "Idieresis"}, {0xed, "Igrave"}, {0xee, "Oacute"}, {0xef, "Ocircumflex"}, {0xf0, AFM_ENC_NONE}, {0xf1, "Ograve"}, {0xf2, "Uacute"}, {0xf3, "Ucircumflex"}, {0xf4, "Ugrave"}, {0xf5, "dotlessi"}, {0xf6, "circumflex"}, {0xf7, "tilde"}, {0xf8, "macron"}, {0xf9, "breve"}, {0xfa, "dotaccent"}, {0xfb, "ring"}, {0xfc, "cedilla"}, {0xfd, "hungarumlaut"}, {0xfe, "ogonek"}, {0xff, "caron"}, {-1, NULL}, }; enscript-1.6.5.90/afmlib/e_88597.c0000644000175000017500000001420711133214772013135 00000000000000/* * AFM 88597 encoding. * * This file is automatically generated from file `88597.txt'. If you * have any corrections to this file, please, edit file `88597.txt' instead. */ /* * Enscript is free software: you can redistribute 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. * * Enscript is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Enscript. If not, see . */ #include "afmint.h" AFMEncodingTable afm_88597_encoding[] = { {0x00, AFM_ENC_NONE}, {0x01, AFM_ENC_NONE}, {0x02, AFM_ENC_NONE}, {0x03, AFM_ENC_NONE}, {0x04, AFM_ENC_NONE}, {0x05, AFM_ENC_NONE}, {0x06, AFM_ENC_NONE}, {0x07, AFM_ENC_NONE}, {0x08, AFM_ENC_NONE}, {0x09, AFM_ENC_NONE}, {0x0a, AFM_ENC_NONE}, {0x0b, AFM_ENC_NONE}, {0x0c, AFM_ENC_NONE}, {0x0d, AFM_ENC_NONE}, {0x0e, AFM_ENC_NONE}, {0x0f, AFM_ENC_NONE}, {0x10, AFM_ENC_NONE}, {0x11, AFM_ENC_NONE}, {0x12, AFM_ENC_NONE}, {0x13, AFM_ENC_NONE}, {0x14, AFM_ENC_NONE}, {0x15, AFM_ENC_NONE}, {0x16, AFM_ENC_NONE}, {0x17, AFM_ENC_NONE}, {0x18, AFM_ENC_NONE}, {0x19, AFM_ENC_NONE}, {0x1a, AFM_ENC_NONE}, {0x1b, AFM_ENC_NONE}, {0x1c, AFM_ENC_NONE}, {0x1d, AFM_ENC_NONE}, {0x1e, AFM_ENC_NONE}, {0x1f, AFM_ENC_NONE}, {0x20, "space"}, {0x21, "exclam"}, {0x22, "quotedbl"}, {0x23, "numbersign"}, {0x24, "dollar"}, {0x25, "percent"}, {0x26, "ampersand"}, {0x27, "quoteright"}, {0x28, "parenleft"}, {0x29, "parenright"}, {0x2a, "asterisk"}, {0x2b, "plus"}, {0x2c, "comma"}, {0x2d, "hyphen"}, {0x2e, "period"}, {0x2f, "slash"}, {0x30, "zero"}, {0x31, "one"}, {0x32, "two"}, {0x33, "three"}, {0x34, "four"}, {0x35, "five"}, {0x36, "six"}, {0x37, "seven"}, {0x38, "eight"}, {0x39, "nine"}, {0x3a, "colon"}, {0x3b, "semicolon"}, {0x3c, "less"}, {0x3d, "equal"}, {0x3e, "greater"}, {0x3f, "question"}, {0x40, "at"}, {0x41, "A"}, {0x42, "B"}, {0x43, "C"}, {0x44, "D"}, {0x45, "E"}, {0x46, "F"}, {0x47, "G"}, {0x48, "H"}, {0x49, "I"}, {0x4a, "J"}, {0x4b, "K"}, {0x4c, "L"}, {0x4d, "M"}, {0x4e, "N"}, {0x4f, "O"}, {0x50, "P"}, {0x51, "Q"}, {0x52, "R"}, {0x53, "S"}, {0x54, "T"}, {0x55, "U"}, {0x56, "V"}, {0x57, "W"}, {0x58, "X"}, {0x59, "Y"}, {0x5a, "Z"}, {0x5b, "bracketleft"}, {0x5c, "backslash"}, {0x5d, "bracketright"}, {0x5e, "asciicircum"}, {0x5f, "underscore"}, {0x60, "quoteleft"}, {0x61, "a"}, {0x62, "b"}, {0x63, "c"}, {0x64, "d"}, {0x65, "e"}, {0x66, "f"}, {0x67, "g"}, {0x68, "h"}, {0x69, "i"}, {0x6a, "j"}, {0x6b, "k"}, {0x6c, "l"}, {0x6d, "m"}, {0x6e, "n"}, {0x6f, "o"}, {0x70, "p"}, {0x71, "q"}, {0x72, "r"}, {0x73, "s"}, {0x74, "t"}, {0x75, "u"}, {0x76, "v"}, {0x77, "w"}, {0x78, "x"}, {0x79, "y"}, {0x7a, "z"}, {0x7b, "braceleft"}, {0x7c, "bar"}, {0x7d, "braceright"}, {0x7e, "tilde"}, {0x7f, AFM_ENC_NONE}, {0x80, AFM_ENC_NONE}, {0x81, AFM_ENC_NONE}, {0x82, AFM_ENC_NONE}, {0x83, AFM_ENC_NONE}, {0x84, AFM_ENC_NONE}, {0x85, AFM_ENC_NONE}, {0x86, AFM_ENC_NONE}, {0x87, AFM_ENC_NONE}, {0x88, AFM_ENC_NONE}, {0x89, AFM_ENC_NONE}, {0x8a, AFM_ENC_NONE}, {0x8b, AFM_ENC_NONE}, {0x8c, AFM_ENC_NONE}, {0x8d, AFM_ENC_NONE}, {0x8e, AFM_ENC_NONE}, {0x8f, AFM_ENC_NONE}, {0x90, AFM_ENC_NONE}, {0x91, AFM_ENC_NONE}, {0x92, AFM_ENC_NONE}, {0x93, AFM_ENC_NONE}, {0x94, AFM_ENC_NONE}, {0x95, AFM_ENC_NONE}, {0x96, AFM_ENC_NONE}, {0x97, AFM_ENC_NONE}, {0x98, AFM_ENC_NONE}, {0x99, AFM_ENC_NONE}, {0x9a, AFM_ENC_NONE}, {0x9b, AFM_ENC_NONE}, {0x9c, AFM_ENC_NONE}, {0x9d, AFM_ENC_NONE}, {0x9e, AFM_ENC_NONE}, {0x9f, AFM_ENC_NONE}, {0xa0, "space"}, {0xa1, "quoteleft"}, {0xa2, "quoteright"}, {0xa3, "sterling"}, {0xa4, AFM_ENC_NONE}, {0xa5, AFM_ENC_NONE}, {0xa6, "brokenbar"}, {0xa7, "section"}, {0xa8, "dieresis"}, {0xa9, "copyright"}, {0xaa, AFM_ENC_NONE}, {0xab, "guillemotleft"}, {0xac, "logicalnot"}, {0xad, "hyphen"}, {0xae, AFM_ENC_NONE}, {0xaf, "endash"}, {0xb0, "degree"}, {0xb1, "plusminus"}, {0xb2, "twosuperior"}, {0xb3, "threesuperior"}, {0xb4, "acute"}, {0xb5, "dieresisacute"}, {0xb6, "afii9936"}, {0xb7, "periodcentered"}, {0xb8, "afii9937"}, {0xb9, "afii9938"}, {0xba, "afii9939"}, {0xbb, "guillemotright"}, {0xbc, "afii9940"}, {0xbd, "onehalf"}, {0xbe, "afii9941"}, {0xbf, "afii9942"}, {0xc0, "afii9977"}, {0xc1, "afii9793"}, {0xc2, "afii9794"}, {0xc3, "afii9796"}, {0xc4, "afii9797"}, {0xc5, "afii9798"}, {0xc6, "afii9801"}, {0xc7, "afii9802"}, {0xc8, "afii9803"}, {0xc9, "afii9804"}, {0xca, "afii9805"}, {0xcb, "afii9806"}, {0xcc, "afii9807"}, {0xcd, "afii9808"}, {0xce, "afii9809"}, {0xcf, "afii9810"}, {0xd0, "afii9811"}, {0xd1, "afii9813"}, {0xd2, AFM_ENC_NONE}, {0xd3, "afii9814"}, {0xd4, "afii9816"}, {0xd5, "afii9817"}, {0xd6, "afii9818"}, {0xd7, "afii9819"}, {0xd8, "afii9820"}, {0xd9, "afii9821"}, {0xda, "afii9943"}, {0xdb, "afii9944"}, {0xdc, "afii9968"}, {0xdd, "afii9969"}, {0xde, "afii9970"}, {0xdf, "afii9971"}, {0xe0, "afii9978"}, {0xe1, "afii9825"}, {0xe2, "afii9826"}, {0xe3, "afii9828"}, {0xe4, "afii9829"}, {0xe5, "afii9830"}, {0xe6, "afii9833"}, {0xe7, "afii9834"}, {0xe8, "afii9835"}, {0xe9, "afii9836"}, {0xea, "afii9837"}, {0xeb, "afii9838"}, {0xec, "afii9839"}, {0xed, "afii9840"}, {0xee, "afii9841"}, {0xef, "afii9842"}, {0xf0, "afii9843"}, {0xf1, "afii9845"}, {0xf2, "afii9847"}, {0xf3, "afii9846"}, {0xf4, "afii9848"}, {0xf5, "afii9849"}, {0xf6, "afii9850"}, {0xf7, "afii9851"}, {0xf8, "afii9852"}, {0xf9, "afii9853"}, {0xfa, "afii9975"}, {0xfb, "afii9976"}, {0xfc, "afii9972"}, {0xfd, "afii9973"}, {0xfe, "afii9974"}, {0xff, AFM_ENC_NONE}, {-1, NULL}, }; enscript-1.6.5.90/afmlib/e_88594.c0000644000175000017500000001401011133214772013122 00000000000000/* * AFM 88594 encoding. * * This file is automatically generated from file `88594.txt'. If you * have any corrections to this file, please, edit file `88594.txt' instead. */ /* * Enscript is free software: you can redistribute 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. * * Enscript is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Enscript. If not, see . */ #include "afmint.h" AFMEncodingTable afm_88594_encoding[] = { {0x00, AFM_ENC_NONE}, {0x01, AFM_ENC_NONE}, {0x02, AFM_ENC_NONE}, {0x03, AFM_ENC_NONE}, {0x04, AFM_ENC_NONE}, {0x05, AFM_ENC_NONE}, {0x06, AFM_ENC_NONE}, {0x07, AFM_ENC_NONE}, {0x08, AFM_ENC_NONE}, {0x09, AFM_ENC_NONE}, {0x0a, AFM_ENC_NONE}, {0x0b, AFM_ENC_NONE}, {0x0c, AFM_ENC_NONE}, {0x0d, AFM_ENC_NONE}, {0x0e, AFM_ENC_NONE}, {0x0f, AFM_ENC_NONE}, {0x10, AFM_ENC_NONE}, {0x11, AFM_ENC_NONE}, {0x12, AFM_ENC_NONE}, {0x13, AFM_ENC_NONE}, {0x14, AFM_ENC_NONE}, {0x15, AFM_ENC_NONE}, {0x16, AFM_ENC_NONE}, {0x17, AFM_ENC_NONE}, {0x18, AFM_ENC_NONE}, {0x19, AFM_ENC_NONE}, {0x1a, AFM_ENC_NONE}, {0x1b, AFM_ENC_NONE}, {0x1c, AFM_ENC_NONE}, {0x1d, AFM_ENC_NONE}, {0x1e, AFM_ENC_NONE}, {0x1f, AFM_ENC_NONE}, {0x20, "space"}, {0x21, "exclam"}, {0x22, "quotedbl"}, {0x23, "numbersign"}, {0x24, "dollar"}, {0x25, "percent"}, {0x26, "ampersand"}, {0x27, "quoteright"}, {0x28, "parenleft"}, {0x29, "parenright"}, {0x2a, "asterisk"}, {0x2b, "plus"}, {0x2c, "comma"}, {0x2d, "hyphen"}, {0x2e, "period"}, {0x2f, "slash"}, {0x30, "zero"}, {0x31, "one"}, {0x32, "two"}, {0x33, "three"}, {0x34, "four"}, {0x35, "five"}, {0x36, "six"}, {0x37, "seven"}, {0x38, "eight"}, {0x39, "nine"}, {0x3a, "colon"}, {0x3b, "semicolon"}, {0x3c, "less"}, {0x3d, "equal"}, {0x3e, "greater"}, {0x3f, "question"}, {0x40, "at"}, {0x41, "A"}, {0x42, "B"}, {0x43, "C"}, {0x44, "D"}, {0x45, "E"}, {0x46, "F"}, {0x47, "G"}, {0x48, "H"}, {0x49, "I"}, {0x4a, "J"}, {0x4b, "K"}, {0x4c, "L"}, {0x4d, "M"}, {0x4e, "N"}, {0x4f, "O"}, {0x50, "P"}, {0x51, "Q"}, {0x52, "R"}, {0x53, "S"}, {0x54, "T"}, {0x55, "U"}, {0x56, "V"}, {0x57, "W"}, {0x58, "X"}, {0x59, "Y"}, {0x5a, "Z"}, {0x5b, "bracketleft"}, {0x5c, "backslash"}, {0x5d, "bracketright"}, {0x5e, "asciicircum"}, {0x5f, "underscore"}, {0x60, "quoteleft"}, {0x61, "a"}, {0x62, "b"}, {0x63, "c"}, {0x64, "d"}, {0x65, "e"}, {0x66, "f"}, {0x67, "g"}, {0x68, "h"}, {0x69, "i"}, {0x6a, "j"}, {0x6b, "k"}, {0x6c, "l"}, {0x6d, "m"}, {0x6e, "n"}, {0x6f, "o"}, {0x70, "p"}, {0x71, "q"}, {0x72, "r"}, {0x73, "s"}, {0x74, "t"}, {0x75, "u"}, {0x76, "v"}, {0x77, "w"}, {0x78, "x"}, {0x79, "y"}, {0x7a, "z"}, {0x7b, "braceleft"}, {0x7c, "bar"}, {0x7d, "braceright"}, {0x7e, "tilde"}, {0x7f, AFM_ENC_NONE}, {0x80, AFM_ENC_NONE}, {0x81, AFM_ENC_NONE}, {0x82, AFM_ENC_NONE}, {0x83, AFM_ENC_NONE}, {0x84, AFM_ENC_NONE}, {0x85, AFM_ENC_NONE}, {0x86, AFM_ENC_NONE}, {0x87, AFM_ENC_NONE}, {0x88, AFM_ENC_NONE}, {0x89, AFM_ENC_NONE}, {0x8a, AFM_ENC_NONE}, {0x8b, AFM_ENC_NONE}, {0x8c, AFM_ENC_NONE}, {0x8d, AFM_ENC_NONE}, {0x8e, AFM_ENC_NONE}, {0x8f, AFM_ENC_NONE}, {0x90, AFM_ENC_NONE}, {0x91, AFM_ENC_NONE}, {0x92, AFM_ENC_NONE}, {0x93, AFM_ENC_NONE}, {0x94, AFM_ENC_NONE}, {0x95, AFM_ENC_NONE}, {0x96, AFM_ENC_NONE}, {0x97, AFM_ENC_NONE}, {0x98, AFM_ENC_NONE}, {0x99, AFM_ENC_NONE}, {0x9a, AFM_ENC_NONE}, {0x9b, AFM_ENC_NONE}, {0x9c, AFM_ENC_NONE}, {0x9d, AFM_ENC_NONE}, {0x9e, AFM_ENC_NONE}, {0x9f, AFM_ENC_NONE}, {0xa0, "space"}, {0xa1, "Aogonek"}, {0xa2, "kgreenlandic"}, {0xa3, "Rcedilla"}, {0xa4, "currency"}, {0xa5, "Itilde"}, {0xa6, "Lcedilla"}, {0xa7, "section"}, {0xa8, "dieresis"}, {0xa9, "Scaron"}, {0xaa, "Emacron"}, {0xab, "Gcedilla"}, {0xac, "Tbar"}, {0xad, "hyphen"}, {0xae, "Zcaron"}, {0xaf, "macron"}, {0xb0, "degree"}, {0xb1, "aogonek"}, {0xb2, "ogonek"}, {0xb3, "rcedilla"}, {0xb4, "acute"}, {0xb5, "itilde"}, {0xb6, "lcedilla"}, {0xb7, "caron"}, {0xb8, "cedilla"}, {0xb9, "scaron"}, {0xba, "emacron"}, {0xbb, "gacute"}, {0xbc, "tbar"}, {0xbd, "Eng"}, {0xbe, "zcaron"}, {0xbf, "eng"}, {0xc0, "Amacron"}, {0xc1, "Aacute"}, {0xc2, "Acircumflex"}, {0xc3, "Atilde"}, {0xc4, "Adieresis"}, {0xc5, "Aring"}, {0xc6, "AE"}, {0xc7, "Iogonek"}, {0xc8, "Ccaron"}, {0xc9, "Eacute"}, {0xca, "Eogonek"}, {0xcb, "Edieresis"}, {0xcc, "Edotaccent"}, {0xcd, "Iacute"}, {0xce, "Icircumflex"}, {0xcf, "Imacron"}, {0xd0, "Eth"}, {0xd1, "Ncedilla"}, {0xd2, "Omacron"}, {0xd3, "Kcedilla"}, {0xd4, "Ocircumflex"}, {0xd5, "Otilde"}, {0xd6, "Odieresis"}, {0xd7, "multiply"}, {0xd8, "Oslash"}, {0xd9, "Uogonek"}, {0xda, "Uacute"}, {0xdb, "Ucircumflex"}, {0xdc, "Udieresis"}, {0xdd, "Utilde"}, {0xde, "Umacron"}, {0xdf, "germandbls"}, {0xe0, "amacron"}, {0xe1, "aacute"}, {0xe2, "acircumflex"}, {0xe3, "atilde"}, {0xe4, "adieresis"}, {0xe5, "aring"}, {0xe6, "ae"}, {0xe7, "iogonek"}, {0xe8, "ccaron"}, {0xe9, "eacute"}, {0xea, "eogonek"}, {0xeb, "edieresis"}, {0xec, "edotaccent"}, {0xed, "iacute"}, {0xee, "icircumflex"}, {0xef, "imacron"}, {0xf0, "dbar"}, {0xf1, "ncedilla"}, {0xf2, "omacron"}, {0xf3, "kcedilla"}, {0xf4, "ocircumflex"}, {0xf5, "otilde"}, {0xf6, "odieresis"}, {0xf7, "divide"}, {0xf8, "oslash"}, {0xf9, "uogonek"}, {0xfa, "uacute"}, {0xfb, "ucircumflex"}, {0xfc, "udieresis"}, {0xfd, "utilde"}, {0xfe, "umacron"}, {0xff, "dotaccent"}, {-1, NULL}, }; enscript-1.6.5.90/afmlib/Makefile-encodings0000644000175000017500000000375111133214772015372 00000000000000# # Makefile to create the encoding vectors. # Copyright (c) 1995-1998 Markku Rossi. # # Author: Markku Rossi # # # Enscript is free software: you can redistribute 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. # # Enscript is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # # along with Enscript. If not, see . # ENCODINGS = e_88591.c e_88592.c e_88593.c e_88594.c e_88595.c \ e_88597.c e_88599.c e_885910.c e_pc.c e_mac.c e_vms.c e_hp8.c e_koi8.c all: $(ENCODINGS) clean: rm -f $(ENCODINGS) e_88591.c: make-encoding.pl ../88591.txt ./make-encoding.pl ../88591.txt >e_88591.c e_88592.c: make-encoding.pl ../88592.txt ./make-encoding.pl ../88592.txt >e_88592.c e_88593.c: make-encoding.pl ../88593.txt ./make-encoding.pl ../88593.txt >e_88593.c e_88594.c: make-encoding.pl ../88594.txt ./make-encoding.pl ../88594.txt >e_88594.c e_88595.c: make-encoding.pl ../88595.txt ./make-encoding.pl ../88595.txt >e_88595.c e_88597.c: make-encoding.pl ../88597.txt ./make-encoding.pl ../88597.txt >e_88597.c e_88599.c: make-encoding.pl ../88599.txt ./make-encoding.pl ../88599.txt >e_88599.c e_885910.c: make-encoding.pl ../885910.txt ./make-encoding.pl ../885910.txt >e_885910.c e_pc.c: make-encoding.pl ../ibmpc.txt ./make-encoding.pl ../ibmpc.txt >e_pc.c e_mac.c: make-encoding.pl ../mac.txt ./make-encoding.pl ../mac.txt >e_mac.c e_vms.c: make-encoding.pl ../vms.txt ./make-encoding.pl ../vms.txt >e_vms.c e_hp8.c: make-encoding.pl ../hp8.txt ./make-encoding.pl ../hp8.txt >e_hp8.c e_koi8.c: make-encoding.pl ../koi8.txt ./make-encoding.pl ../koi8.txt >e_koi8.c enscript-1.6.5.90/afmlib/afmparse.c0000644000175000017500000005617411133214772013734 00000000000000/* * Parse AFM files. * Copyright (c) 1995-1998 Markku Rossi. * * Author: Markku Rossi */ /* * Enscript is free software: you can redistribute 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. * * Enscript is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Enscript. If not, see . */ #include "afmint.h" #include "afm.h" /* * Definitions. */ #define ISSPACE(ch) \ ((ch) == ' ' || (ch) == '\n' || (ch) == '\r' || (ch) == '\t' || (ch) == ';') #define GET_VALUE(typenum) get_type (handle, ctx, (typenum), &node) struct parse_ctx_st { FILE *fp; char token[1024]; /* maximum line length is 255, this should be enought */ unsigned int tokenlen; /* length of the token */ }; typedef struct parse_ctx_st ParseCtx; /* * Static variables. */ /* * The AFM keys. This array must be kept sorted because keys are * searched by using binary search. */ static struct keyname_st { char *name; AFMKey key; } keynames[] = { {"Ascender", kAscender}, {"Axes", kAxes}, {"AxisLabel", kAxisLabel}, {"AxisType", kAxisType}, {"B", kB}, {"BlendAxisTypes", kBlendAxisTypes}, {"BlendDesignMap", kBlendDesignMap}, {"BlendDesignPositions", kBlendDesignPositions}, {"C", kC}, {"CC", kCC}, {"CH", kCH}, {"CapHeight", kCapHeight}, {"CharWidth", kCharWidth}, {"CharacterSet", kCharacterSet}, {"Characters", kCharacters}, {"Comment", kComment}, {"Descendents", kDescendents}, {"Descender", kDescender}, {"EncodingScheme", kEncodingScheme}, {"EndAxis", kEndAxis}, {"EndCharMetrics", kEndCharMetrics}, {"EndCompFontMetrics", kEndCompFontMetrics}, {"EndComposites", kEndComposites}, {"EndDescendent", kEndDescendent}, {"EndDirection", kEndDirection}, {"EndFontMetrics", kEndFontMetrics}, {"EndKernData", kEndKernData}, {"EndKernPairs", kEndKernPairs}, {"EndMaster", kEndMaster}, {"EndMasterFontMetrics", kEndMasterFontMetrics}, {"EndTrackKern", kEndTrackKern}, {"EscChar", kEscChar}, {"FamilyName", kFamilyName}, {"FontBBox", kFontBBox}, {"FontName", kFontName}, {"FullName", kFullName}, {"IsBaseFont", kIsBaseFont}, {"IsFixedPitch", kIsFixedPitch}, {"IsFixedV", kIsFixedV}, {"ItalicAngle", kItalicAngle}, {"KP", kKP}, {"KPH", kKPH}, {"KPX", kKPX}, {"KPY", kKPY}, {"L", kL}, {"MappingScheme", kMappingScheme}, {"Masters", kMasters}, {"MetricsSets", kMetricsSets}, {"N", kN}, {"Notice", kNotice}, {"PCC", kPCC}, {"StartAxis", kStartAxis}, {"StartCharMetrics", kStartCharMetrics}, {"StartCompFontMetrics", kStartCompFontMetrics}, {"StartComposites", kStartComposites}, {"StartDescendent", kStartDescendent}, {"StartDirection", kStartDirection}, {"StartFontMetrics", kStartFontMetrics}, {"StartKernData", kStartKernData}, {"StartKernPairs", kStartKernPairs}, {"StartMaster", kStartMaster}, {"StartMasterFontMetrics", kStartMasterFontMetrics}, {"StartTrackKern", kStartTrackKern}, {"TrackKern", kTrackKern}, {"UnderlinePosition", kUnderlinePosition}, {"UnderlineThickness", kUnderlineThickness}, {"VV", kVV}, {"VVector", kVVector}, {"Version", kVersion}, {"W", kW}, {"W0", kW0}, {"W0X", kW0X}, {"W0Y", kW0Y}, {"W1", kW1}, {"W1X", kW1X}, {"W1Y", kW1Y}, {"WX", kWX}, {"WY", kWY}, {"Weight", kWeight}, {"WeightVector", kWeightVector}, {"XHeight", kXHeight}, {NULL, 0}, }; #define NUM_KEYS (sizeof (keynames) / sizeof (struct keyname_st) - 1) /* * Prototypes for static functions. */ /* Throw parse error . Never returns. */ static void parse_error ___P ((AFMHandle handle, AFMError error)); static int get_token ___P ((AFMHandle handle, ParseCtx *ctx)); static int get_line_token ___P ((AFMHandle handle, ParseCtx *ctx)); static void get_key ___P ((AFMHandle handle, ParseCtx *ctx, AFMKey *key_return)); static void get_type ___P ((AFMHandle handle, ParseCtx *ctx, int type, AFMNode *type_return)); static void read_character_metrics ___P ((AFMHandle handle, ParseCtx *ctx, AFMFont font)); static void read_kern_pairs ___P ((AFMHandle handle, ParseCtx *ctx, AFMFont font)); static void read_track_kerns ___P ((AFMHandle handle, ParseCtx *ctx, AFMFont font)); static void read_composites ___P ((AFMHandle handle, ParseCtx *ctx, AFMFont font)); /* * Global functions. */ void afm_parse_file (AFMHandle handle, const char *filename, AFMFont font) { AFMKey key; AFMNode node; ParseCtx context; ParseCtx *ctx = &context; int wd = 0; /* Writing direction. */ int done = 0; ctx->fp = fopen (filename, "r"); if (ctx->fp == NULL) parse_error (handle, SYSERROR (AFM_ERROR_FILE_IO)); /* Check that file is really an AFM file. */ get_key (handle, ctx, &key); if (key != kStartFontMetrics) parse_error (handle, AFM_ERROR_NOT_AFM_FILE); GET_VALUE (AFM_TYPE_NUMBER); font->version = node.u.number; /* Parse it. */ while (!done) { get_key (handle, ctx, &key); switch (key) { case kComment: (void) get_line_token (handle, ctx); continue; break; /* File structure. */ case kStartFontMetrics: GET_VALUE (AFM_TYPE_NUMBER); font->version = node.u.number; break; case kEndFontMetrics: done = 1; break; case kStartCompFontMetrics: case kEndCompFontMetrics: case kStartMasterFontMetrics: case kEndMasterFontMetrics: parse_error (handle, AFM_ERROR_UNSUPPORTED_FORMAT); break; /* Global font information. */ case kFontName: GET_VALUE (AFM_TYPE_STRING); font->global_info.FontName = node.u.string; break; case kFullName: GET_VALUE (AFM_TYPE_STRING); font->global_info.FullName = node.u.string; break; case kFamilyName: GET_VALUE (AFM_TYPE_STRING); font->global_info.FamilyName = node.u.string; break; case kWeight: GET_VALUE (AFM_TYPE_STRING); font->global_info.Weight = node.u.string; break; case kFontBBox: GET_VALUE (AFM_TYPE_NUMBER); font->global_info.FontBBox_llx = node.u.number; GET_VALUE (AFM_TYPE_NUMBER); font->global_info.FontBBox_lly = node.u.number; GET_VALUE (AFM_TYPE_NUMBER); font->global_info.FontBBox_urx = node.u.number; GET_VALUE (AFM_TYPE_NUMBER); font->global_info.FontBBox_ury = node.u.number; break; case kVersion: GET_VALUE (AFM_TYPE_STRING); font->global_info.Version = node.u.string; break; case kNotice: GET_VALUE (AFM_TYPE_STRING); font->global_info.Notice = node.u.string; break; case kEncodingScheme: GET_VALUE (AFM_TYPE_STRING); font->global_info.EncodingScheme = node.u.string; break; case kMappingScheme: GET_VALUE (AFM_TYPE_INTEGER); font->global_info.MappingScheme = node.u.integer; break; case kEscChar: GET_VALUE (AFM_TYPE_INTEGER); font->global_info.EscChar = node.u.integer; break; case kCharacterSet: GET_VALUE (AFM_TYPE_STRING); font->global_info.CharacterSet = node.u.string; break; case kCharacters: GET_VALUE (AFM_TYPE_INTEGER); font->global_info.Characters = node.u.integer; break; case kIsBaseFont: GET_VALUE (AFM_TYPE_BOOLEAN); font->global_info.IsBaseFont = node.u.boolean; break; case kVVector: GET_VALUE (AFM_TYPE_NUMBER); font->global_info.VVector_0 = node.u.number; GET_VALUE (AFM_TYPE_NUMBER); font->global_info.VVector_1 = node.u.number; break; case kIsFixedV: GET_VALUE (AFM_TYPE_BOOLEAN); font->global_info.IsFixedV = node.u.boolean; break; case kCapHeight: GET_VALUE (AFM_TYPE_NUMBER); font->global_info.CapHeight = node.u.number; break; case kXHeight: GET_VALUE (AFM_TYPE_NUMBER); font->global_info.XHeight = node.u.number; break; case kAscender: GET_VALUE (AFM_TYPE_NUMBER); font->global_info.Ascender = node.u.number; break; case kDescender: GET_VALUE (AFM_TYPE_NUMBER); font->global_info.Descender = node.u.number; break; /* Writing directions. */ case kStartDirection: GET_VALUE (AFM_TYPE_INTEGER); wd = node.u.integer; font->writing_direction_metrics[wd].is_valid = AFMTrue; break; case kUnderlinePosition: GET_VALUE (AFM_TYPE_NUMBER); font->writing_direction_metrics[wd].UnderlinePosition = node.u.number; break; case kUnderlineThickness: GET_VALUE (AFM_TYPE_NUMBER); font->writing_direction_metrics[wd].UnderlineThickness = node.u.number; break; case kItalicAngle: GET_VALUE (AFM_TYPE_NUMBER); font->writing_direction_metrics[wd].ItalicAngle = node.u.number; break; case kCharWidth: GET_VALUE (AFM_TYPE_NUMBER); font->writing_direction_metrics[wd].CharWidth_x = node.u.number; GET_VALUE (AFM_TYPE_NUMBER); font->writing_direction_metrics[wd].CharWidth_y = node.u.number; break; case kIsFixedPitch: GET_VALUE (AFM_TYPE_BOOLEAN); font->writing_direction_metrics[wd].IsFixedPitch = node.u.boolean; break; case kEndDirection: break; /* Individual Character Metrics. */ case kStartCharMetrics: GET_VALUE (AFM_TYPE_INTEGER); font->num_character_metrics = node.u.integer; font->character_metrics = ((AFMIndividualCharacterMetrics *) calloc (font->num_character_metrics + 1, sizeof (AFMIndividualCharacterMetrics))); if (font->character_metrics == NULL) parse_error (handle, AFM_ERROR_MEMORY); read_character_metrics (handle, ctx, font); break; /* Kerning Data. */ case kStartKernData: break; case kStartKernPairs: if (font->info_level & AFM_I_KERN_PAIRS) { GET_VALUE (AFM_TYPE_INTEGER); font->num_kern_pairs = node.u.integer; font->kern_pairs = (AFMPairWiseKerning *) calloc (font->num_kern_pairs + 1, sizeof (AFMPairWiseKerning)); if (font->kern_pairs == NULL) parse_error (handle, AFM_ERROR_MEMORY); read_kern_pairs (handle, ctx, font); } else { do { (void) get_line_token (handle, ctx); get_key (handle, ctx, &key); } while (key != kEndKernPairs); } break; case kStartTrackKern: if (font->info_level & AFM_I_TRACK_KERNS) { GET_VALUE (AFM_TYPE_INTEGER); font->num_track_kerns = node.u.integer; font->track_kerns = (AFMTrackKern *) calloc (font->num_track_kerns + 1, sizeof (AFMTrackKern)); if (font->track_kerns == NULL) parse_error (handle, AFM_ERROR_MEMORY); read_track_kerns (handle, ctx, font); } else { do { (void) get_line_token (handle, ctx); get_key (handle, ctx, &key); } while (key != kEndTrackKern); } break; case kEndKernData: break; /* Composite Character Data. */ case kStartComposites: if (font->info_level & AFM_I_COMPOSITES) { GET_VALUE (AFM_TYPE_INTEGER); font->num_composites = node.u.integer; font->composites = (AFMComposite *) calloc (font->num_composites + 1, sizeof (AFMComposite)); if (font->composites == NULL) parse_error (handle, AFM_ERROR_MEMORY); read_composites (handle, ctx, font); } else { do { (void) get_line_token (handle, ctx); get_key (handle, ctx, &key); } while (key != kEndComposites); } break; default: /* Ignore. */ break; } } fclose (ctx->fp); /* Check post conditions. */ if (!font->writing_direction_metrics[0].is_valid && !font->writing_direction_metrics[1].is_valid) /* No direction specified, 0 implied. */ font->writing_direction_metrics[0].is_valid = AFMTrue; /* Undef character. */ if (!strhash_get (font->private->fontnames, "space", 5, (void *) font->private->undef)) { /* Character "space" is not defined. Select the first one. */ assert (font->num_character_metrics > 0); font->private->undef = &font->character_metrics[0]; } /* Fixed pitch. */ if (font->writing_direction_metrics[0].is_valid && font->writing_direction_metrics[0].IsFixedPitch) { /* Take one, it doesn't matter which one. */ font->writing_direction_metrics[0].CharWidth_x = font->character_metrics[0].w0x; font->writing_direction_metrics[0].CharWidth_y = font->character_metrics[0].w0y; } if (font->writing_direction_metrics[1].is_valid && font->writing_direction_metrics[1].IsFixedPitch) { font->writing_direction_metrics[1].CharWidth_x = font->character_metrics[1].w1x; font->writing_direction_metrics[1].CharWidth_y = font->character_metrics[1].w1y; } } /* * Static functions. */ static void parse_error (AFMHandle handle, AFMError error) { handle->parse_error = error; longjmp (handle->jmpbuf, 1); /* If this is reached, then all is broken. */ fprintf (stderr, "AFM: fatal internal longjmp() error.\n"); abort (); } static int get_token (AFMHandle handle, ParseCtx *ctx) { int ch; int i; /* Skip the leading whitespace. */ while ((ch = getc (ctx->fp)) != EOF) if (!ISSPACE (ch)) break; if (ch == EOF) return 0; ungetc (ch, ctx->fp); /* Get name. */ for (i = 0, ch = getc (ctx->fp); i < sizeof (ctx->token) && ch != EOF && !ISSPACE (ch); i++, ch = getc (ctx->fp)) ctx->token[i] = ch; if (i >= sizeof (ctx->token)) /* Line is too long, this is against AFM specification. */ parse_error (handle, AFM_ERROR_SYNTAX); ctx->token[i] = '\0'; ctx->tokenlen = i; return 1; } static int get_line_token (AFMHandle handle, ParseCtx *ctx) { int i, ch; /* Skip the leading whitespace. */ while ((ch = getc (ctx->fp)) != EOF) if (!ISSPACE (ch)) break; if (ch == EOF) return 0; ungetc (ch, ctx->fp); /* Read to the end of the line. */ for (i = 0, ch = getc (ctx->fp); i < sizeof (ctx->token) && ch != EOF && ch != '\n'; i++, ch = getc (ctx->fp)) ctx->token[i] = ch; if (i >= sizeof (ctx->token)) parse_error (handle, AFM_ERROR_SYNTAX); /* Skip all trailing whitespace. */ for (i--; i >= 0 && ISSPACE (ctx->token[i]); i--) ; i++; ctx->token[i] = '\0'; ctx->tokenlen = i; return 1; } static int match_key (char *key) { int lower = 0; int upper = NUM_KEYS; int midpoint, cmpvalue; AFMBoolean found = AFMFalse; while ((upper >= lower) && !found) { midpoint = (lower + upper) / 2; if (keynames[midpoint].name == NULL) break; cmpvalue = strcmp (key, keynames[midpoint].name); if (cmpvalue == 0) found = AFMTrue; else if (cmpvalue < 0) upper = midpoint - 1; else lower = midpoint + 1; } if (found) return keynames[midpoint].key; return -1; } static void get_key (AFMHandle handle, ParseCtx *ctx, AFMKey *key_return) { int key; char msg[256]; while (1) { if (!get_token (handle, ctx)) /* Unexpected EOF. */ parse_error (handle, AFM_ERROR_SYNTAX); key = match_key (ctx->token); if (key >= 0) { *key_return = key; return; } /* No match found. According to standard, we must skip this key. */ sprintf (msg, "skipping key \"%s\"", ctx->token); afm_error (handle, msg); get_line_token (handle, ctx); } /* NOTREACHED */ } /* Reader for AFM types. */ static void get_type (AFMHandle handle, ParseCtx *ctx, int type, AFMNode *type_return) { char buf[256]; switch (type) { case AFM_TYPE_STRING: if (!get_line_token (handle, ctx)) parse_error (handle, AFM_ERROR_SYNTAX); type_return->u.string = (AFMString) calloc (1, ctx->tokenlen + 1); if (type_return->u.string == NULL) parse_error (handle, AFM_ERROR_MEMORY); memcpy (type_return->u.string, ctx->token, ctx->tokenlen); break; case AFM_TYPE_NAME: if (!get_token (handle, ctx)) parse_error (handle, AFM_ERROR_SYNTAX); type_return->u.name = (AFMName) calloc (1, ctx->tokenlen + 1); if (type_return->u.string == NULL) parse_error (handle, AFM_ERROR_MEMORY); memcpy (type_return->u.name, ctx->token, ctx->tokenlen); break; case AFM_TYPE_NUMBER: if (!get_token (handle, ctx)) parse_error (handle, AFM_ERROR_SYNTAX); memcpy (buf, ctx->token, ctx->tokenlen); buf[ctx->tokenlen] = '\0'; type_return->u.number = atof (buf); break; case AFM_TYPE_INTEGER: if (!get_token (handle, ctx)) parse_error (handle, AFM_ERROR_SYNTAX); memcpy (buf, ctx->token, ctx->tokenlen); buf[ctx->tokenlen] = '\0'; type_return->u.integer = atoi (buf); break; case AFM_TYPE_ARRAY: fprintf (stderr, "Array types not implemented yet.\n"); abort (); break; case AFM_TYPE_BOOLEAN: if (!get_token (handle, ctx)) parse_error (handle, AFM_ERROR_SYNTAX); memcpy (buf, ctx->token, ctx->tokenlen); buf[ctx->tokenlen] = '\0'; if (strcmp (buf, "true") == 0) type_return->u.boolean = AFMTrue; else if (strcmp (buf, "false") == 0) type_return->u.boolean = AFMFalse; else parse_error (handle, AFM_ERROR_SYNTAX); break; default: fprintf (stderr, "get_type(): illegal type %d\n", type_return->type); abort (); break; } } static void read_character_metrics (AFMHandle handle, ParseCtx *ctx, AFMFont font) { int i = 0; AFMNode node; AFMIndividualCharacterMetrics *cm = NULL; AFMKey key; int done = 0; int first = 1; while (!done) { get_key (handle, ctx, &key); switch (key) { case kC: if (first) first = 0; else i++; if (i >= font->num_character_metrics) parse_error (handle, AFM_ERROR_SYNTAX); cm = &font->character_metrics[i]; GET_VALUE (AFM_TYPE_INTEGER); cm->character_code = node.u.integer; if (cm->character_code >= 0 && cm->character_code <= 255) font->encoding[cm->character_code] = cm; break; case kCH: printf ("* CH\n"); break; case kWX: case kW0X: GET_VALUE (AFM_TYPE_NUMBER); cm->w0x = node.u.number; cm->w0y = 0.0; break; case kW1X: GET_VALUE (AFM_TYPE_NUMBER); cm->w1x = node.u.number; cm->w1y = 0.0; break; case kWY: case kW0Y: GET_VALUE (AFM_TYPE_NUMBER); cm->w0y = node.u.number; cm->w0x = 0.0; break; case kW1Y: GET_VALUE (AFM_TYPE_NUMBER); cm->w1y = node.u.number; cm->w1x = 0.0; break; case kW: case kW0: GET_VALUE (AFM_TYPE_NUMBER); cm->w0x = node.u.number; GET_VALUE (AFM_TYPE_NUMBER); cm->w0y = node.u.number; break; case kW1: GET_VALUE (AFM_TYPE_NUMBER); cm->w1x = node.u.number; GET_VALUE (AFM_TYPE_NUMBER); cm->w1y = node.u.number; break; case kVV: GET_VALUE (AFM_TYPE_NUMBER); cm->vv_x = node.u.number; GET_VALUE (AFM_TYPE_NUMBER); cm->vv_y = node.u.number; break; case kN: GET_VALUE (AFM_TYPE_NAME); cm->name = node.u.name; if (!strhash_put (font->private->fontnames, cm->name, strlen (cm->name), cm, NULL)) parse_error (handle, AFM_ERROR_MEMORY); break; case kB: GET_VALUE (AFM_TYPE_NUMBER); cm->llx = node.u.number; GET_VALUE (AFM_TYPE_NUMBER); cm->lly = node.u.number; GET_VALUE (AFM_TYPE_NUMBER); cm->urx = node.u.number; GET_VALUE (AFM_TYPE_NUMBER); cm->ury = node.u.number; break; case kL: /* XXX Skip ligatures. */ get_line_token (handle, ctx); break; case kEndCharMetrics: if (i != font->num_character_metrics - 1) { /* * My opinion is that this is a syntax error; the * creator of this AFM file should have been smart * enought to count these character metrics. Well, * maybe that is too much asked... */ font->num_character_metrics = i + 1; } done = 1; break; default: parse_error (handle, AFM_ERROR_SYNTAX); break; } } } static void read_kern_pairs (AFMHandle handle, ParseCtx *ctx, AFMFont font) { int i; AFMNode node; AFMPairWiseKerning *kp; AFMKey key; for (i = 0; i < font->num_kern_pairs; i++) { kp = &font->kern_pairs[i]; get_key (handle, ctx, &key); switch (key) { case kKP: case kKPX: case kKPY: GET_VALUE (AFM_TYPE_NAME); kp->name1 = node.u.name; GET_VALUE (AFM_TYPE_NAME); kp->name2 = node.u.name; GET_VALUE (AFM_TYPE_NUMBER); switch (key) { case kKP: kp->kx = node.u.number; GET_VALUE (AFM_TYPE_NUMBER); kp->ky = node.u.number; break; case kKPX: kp->kx = node.u.number; kp->ky = 0.0; break; case kKPY: kp->ky = node.u.number; kp->kx = 0.0; break; default: fprintf (stderr, "AFM: fatal corruption\n"); abort (); break; } break; case kKPH: /* XXX ignore. */ break; default: parse_error (handle, AFM_ERROR_SYNTAX); break; } } /* Get end token. */ get_key (handle, ctx, &key); if (key != kEndKernPairs) parse_error (handle, AFM_ERROR_SYNTAX); } static void read_track_kerns (AFMHandle handle, ParseCtx *ctx, AFMFont font) { int i; AFMNode node; AFMTrackKern *tk; AFMKey key; for (i = 0; i < font->num_kern_pairs; i++) { tk = &font->track_kerns[i]; get_key (handle, ctx, &key); /* TrackKern degree min-ptsize min-kern max-ptrsize max-kern */ if (key != kTrackKern) parse_error (handle, AFM_ERROR_SYNTAX); GET_VALUE (AFM_TYPE_INTEGER); tk->degree = node.u.integer; GET_VALUE (AFM_TYPE_NUMBER); tk->min_ptsize = node.u.number; GET_VALUE (AFM_TYPE_NUMBER); tk->min_kern = node.u.number; GET_VALUE (AFM_TYPE_NUMBER); tk->max_ptsize = node.u.number; GET_VALUE (AFM_TYPE_NUMBER); tk->max_kern = node.u.number; } /* Get end token. */ get_key (handle, ctx, &key); if (key != kEndTrackKern) parse_error (handle, AFM_ERROR_SYNTAX); } static void read_composites (AFMHandle handle, ParseCtx *ctx, AFMFont font) { int i, j; AFMNode node; AFMComposite *cm; AFMKey key; for (i = 0; i < font->num_composites; i++) { cm = &font->composites[i]; get_key (handle, ctx, &key); if (key != kCC) parse_error (handle, AFM_ERROR_SYNTAX); GET_VALUE (AFM_TYPE_NAME); cm->name = node.u.name; /* Create name -> AFMComposite mapping. */ if (!strhash_put (font->private->compositenames, cm->name, strlen (cm->name), cm, NULL)) parse_error (handle, AFM_ERROR_MEMORY); GET_VALUE (AFM_TYPE_INTEGER); cm->num_components = node.u.integer; cm->components = (AFMCompositeComponent *) calloc (cm->num_components + 1, sizeof (AFMCompositeComponent)); /* Read composite components. */ for (j = 0; j < cm->num_components; j++) { /* Read "PCC". */ get_key (handle, ctx, &key); if (key != kPCC) parse_error (handle, AFM_ERROR_SYNTAX); /* Read values. */ GET_VALUE (AFM_TYPE_NAME); cm->components[j].name = node.u.name; GET_VALUE (AFM_TYPE_NUMBER); cm->components[j].deltax = node.u.number; GET_VALUE (AFM_TYPE_NUMBER); cm->components[j].deltay = node.u.number; } } /* Get end token. */ get_key (handle, ctx, &key); if (key != kEndComposites) parse_error (handle, AFM_ERROR_SYNTAX); } enscript-1.6.5.90/afmlib/e_vms.c0000644000175000017500000001413211133214772013233 00000000000000/* * AFM vms encoding. * * This file is automatically generated from file `vms.txt'. If you * have any corrections to this file, please, edit file `vms.txt' instead. */ /* * Enscript is free software: you can redistribute 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. * * Enscript is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Enscript. If not, see . */ #include "afmint.h" AFMEncodingTable afm_vms_encoding[] = { {0x00, AFM_ENC_NONE}, {0x01, AFM_ENC_NONE}, {0x02, AFM_ENC_NONE}, {0x03, AFM_ENC_NONE}, {0x04, AFM_ENC_NONE}, {0x05, AFM_ENC_NONE}, {0x06, AFM_ENC_NONE}, {0x07, AFM_ENC_NONE}, {0x08, AFM_ENC_NONE}, {0x09, AFM_ENC_NONE}, {0x0a, AFM_ENC_NONE}, {0x0b, AFM_ENC_NONE}, {0x0c, AFM_ENC_NONE}, {0x0d, AFM_ENC_NONE}, {0x0e, AFM_ENC_NONE}, {0x0f, AFM_ENC_NONE}, {0x10, AFM_ENC_NONE}, {0x11, AFM_ENC_NONE}, {0x12, AFM_ENC_NONE}, {0x13, AFM_ENC_NONE}, {0x14, AFM_ENC_NONE}, {0x15, AFM_ENC_NONE}, {0x16, AFM_ENC_NONE}, {0x17, AFM_ENC_NONE}, {0x18, AFM_ENC_NONE}, {0x19, AFM_ENC_NONE}, {0x1a, AFM_ENC_NONE}, {0x1b, AFM_ENC_NONE}, {0x1c, AFM_ENC_NONE}, {0x1d, AFM_ENC_NONE}, {0x1e, AFM_ENC_NONE}, {0x1f, AFM_ENC_NONE}, {0x20, "space"}, {0x21, "exclam"}, {0x22, "quotedbl"}, {0x23, "numbersign"}, {0x24, "dollar"}, {0x25, "percent"}, {0x26, "ampersand"}, {0x27, "quoteright"}, {0x28, "parenleft"}, {0x29, "parenright"}, {0x2a, "asterisk"}, {0x2b, "plus"}, {0x2c, "comma"}, {0x2d, "hyphen"}, {0x2e, "period"}, {0x2f, "slash"}, {0x30, "zero"}, {0x31, "one"}, {0x32, "two"}, {0x33, "three"}, {0x34, "four"}, {0x35, "five"}, {0x36, "six"}, {0x37, "seven"}, {0x38, "eight"}, {0x39, "nine"}, {0x3a, "colon"}, {0x3b, "semicolon"}, {0x3c, "less"}, {0x3d, "equal"}, {0x3e, "greater"}, {0x3f, "question"}, {0x40, "at"}, {0x41, "A"}, {0x42, "B"}, {0x43, "C"}, {0x44, "D"}, {0x45, "E"}, {0x46, "F"}, {0x47, "G"}, {0x48, "H"}, {0x49, "I"}, {0x4a, "J"}, {0x4b, "K"}, {0x4c, "L"}, {0x4d, "M"}, {0x4e, "N"}, {0x4f, "O"}, {0x50, "P"}, {0x51, "Q"}, {0x52, "R"}, {0x53, "S"}, {0x54, "T"}, {0x55, "U"}, {0x56, "V"}, {0x57, "W"}, {0x58, "X"}, {0x59, "Y"}, {0x5a, "Z"}, {0x5b, "bracketleft"}, {0x5c, "backslash"}, {0x5d, "bracketright"}, {0x5e, "asciicircum"}, {0x5f, "underscore"}, {0x60, "quoteleft"}, {0x61, "a"}, {0x62, "b"}, {0x63, "c"}, {0x64, "d"}, {0x65, "e"}, {0x66, "f"}, {0x67, "g"}, {0x68, "h"}, {0x69, "i"}, {0x6a, "j"}, {0x6b, "k"}, {0x6c, "l"}, {0x6d, "m"}, {0x6e, "n"}, {0x6f, "o"}, {0x70, "p"}, {0x71, "q"}, {0x72, "r"}, {0x73, "s"}, {0x74, "t"}, {0x75, "u"}, {0x76, "v"}, {0x77, "w"}, {0x78, "x"}, {0x79, "y"}, {0x7a, "z"}, {0x7b, "braceleft"}, {0x7c, "bar"}, {0x7d, "braceright"}, {0x7e, "tilde"}, {0x7f, AFM_ENC_NONE}, {0x80, AFM_ENC_NONE}, {0x81, AFM_ENC_NONE}, {0x82, AFM_ENC_NONE}, {0x83, AFM_ENC_NONE}, {0x84, AFM_ENC_NONE}, {0x85, AFM_ENC_NONE}, {0x86, AFM_ENC_NONE}, {0x87, AFM_ENC_NONE}, {0x88, AFM_ENC_NONE}, {0x89, AFM_ENC_NONE}, {0x8a, AFM_ENC_NONE}, {0x8b, AFM_ENC_NONE}, {0x8c, AFM_ENC_NONE}, {0x8d, AFM_ENC_NONE}, {0x8e, AFM_ENC_NONE}, {0x8f, AFM_ENC_NONE}, {0x90, AFM_ENC_NONE}, {0x91, AFM_ENC_NONE}, {0x92, AFM_ENC_NONE}, {0x93, AFM_ENC_NONE}, {0x94, AFM_ENC_NONE}, {0x95, AFM_ENC_NONE}, {0x96, AFM_ENC_NONE}, {0x97, AFM_ENC_NONE}, {0x98, AFM_ENC_NONE}, {0x99, AFM_ENC_NONE}, {0x9a, AFM_ENC_NONE}, {0x9b, AFM_ENC_NONE}, {0x9c, AFM_ENC_NONE}, {0x9d, AFM_ENC_NONE}, {0x9e, AFM_ENC_NONE}, {0x9f, AFM_ENC_NONE}, {0xa0, "space"}, {0xa1, "exclamdown"}, {0xa2, "cent"}, {0xa3, "sterling"}, {0xa4, AFM_ENC_NONE}, {0xa5, "yen"}, {0xa6, AFM_ENC_NONE}, {0xa7, "section"}, {0xa8, "currency"}, {0xa9, "copyright"}, {0xaa, "ordfeminine"}, {0xab, "guillemotleft"}, {0xac, AFM_ENC_NONE}, {0xad, AFM_ENC_NONE}, {0xae, AFM_ENC_NONE}, {0xaf, AFM_ENC_NONE}, {0xb0, "degree"}, {0xb1, "plusminus"}, {0xb2, "twosuperior"}, {0xb3, "threesuperior"}, {0xb4, AFM_ENC_NONE}, {0xb5, "mu"}, {0xb6, "paragraph"}, {0xb7, "bullet"}, {0xb8, AFM_ENC_NONE}, {0xb9, "dotlessi"}, {0xba, "ordmasculine"}, {0xbb, "guillemotright"}, {0xbc, "onequarter"}, {0xbd, "onehalf"}, {0xbe, AFM_ENC_NONE}, {0xbf, "questiondown"}, {0xc0, "Agrave"}, {0xc1, "Aacute"}, {0xc2, "Acircumflex"}, {0xc3, "Atilde"}, {0xc4, "Adieresis"}, {0xc5, "Aring"}, {0xc6, "AE"}, {0xc7, "Ccedilla"}, {0xc8, "Egrave"}, {0xc9, "Eacute"}, {0xca, "Ecircumflex"}, {0xcb, "Edieresis"}, {0xcc, "Igrave"}, {0xcd, "Iacute"}, {0xce, "Icircumflex"}, {0xcf, "Idieresis"}, {0xd0, AFM_ENC_NONE}, {0xd1, "Ntilde"}, {0xd2, "Ograve"}, {0xd3, "Oacute"}, {0xd4, "Ocircumflex"}, {0xd5, "Otilde"}, {0xd6, "Odieresis"}, {0xd7, "OE"}, {0xd8, "Oslash"}, {0xd9, "Ugrave"}, {0xda, "Uacute"}, {0xdb, "Ucircumflex"}, {0xdc, "Udieresis"}, {0xdd, "Ydieresis"}, {0xde, AFM_ENC_NONE}, {0xdf, "germandbls"}, {0xe0, "agrave"}, {0xe1, "aacute"}, {0xe2, "acircumflex"}, {0xe3, "atilde"}, {0xe4, "adieresis"}, {0xe5, "aring"}, {0xe6, "ae"}, {0xe7, "ccedilla"}, {0xe8, "egrave"}, {0xe9, "eacute"}, {0xea, "ecircumflex"}, {0xeb, "edieresis"}, {0xec, "igrave"}, {0xed, "iacute"}, {0xee, "icircumflex"}, {0xef, "idieresis"}, {0xf0, AFM_ENC_NONE}, {0xf1, "ntilde"}, {0xf2, "ograve"}, {0xf3, "oacute"}, {0xf4, "ocircumflex"}, {0xf5, "otilde"}, {0xf6, "odieresis"}, {0xf7, "oe"}, {0xf8, "oslash"}, {0xf9, "ugrave"}, {0xfa, "uacute"}, {0xfb, "ucircumflex"}, {0xfc, "udieresis"}, {0xfd, "ydieresis"}, {0xfe, AFM_ENC_NONE}, {0xff, AFM_ENC_NONE}, {-1, NULL}, }; enscript-1.6.5.90/afmlib/e_88599.c0000644000175000017500000001412211133214772013133 00000000000000/* * AFM 88599 encoding. * * This file is automatically generated from file `88599.txt'. If you * have any corrections to this file, please, edit file `88599.txt' instead. */ /* * Enscript is free software: you can redistribute 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. * * Enscript is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Enscript. If not, see . */ #include "afmint.h" AFMEncodingTable afm_88599_encoding[] = { {0x00, AFM_ENC_NONE}, {0x01, AFM_ENC_NONE}, {0x02, AFM_ENC_NONE}, {0x03, AFM_ENC_NONE}, {0x04, AFM_ENC_NONE}, {0x05, AFM_ENC_NONE}, {0x06, AFM_ENC_NONE}, {0x07, AFM_ENC_NONE}, {0x08, AFM_ENC_NONE}, {0x09, AFM_ENC_NONE}, {0x0a, AFM_ENC_NONE}, {0x0b, AFM_ENC_NONE}, {0x0c, AFM_ENC_NONE}, {0x0d, AFM_ENC_NONE}, {0x0e, AFM_ENC_NONE}, {0x0f, AFM_ENC_NONE}, {0x10, AFM_ENC_NONE}, {0x11, AFM_ENC_NONE}, {0x12, AFM_ENC_NONE}, {0x13, AFM_ENC_NONE}, {0x14, AFM_ENC_NONE}, {0x15, AFM_ENC_NONE}, {0x16, AFM_ENC_NONE}, {0x17, AFM_ENC_NONE}, {0x18, AFM_ENC_NONE}, {0x19, AFM_ENC_NONE}, {0x1a, AFM_ENC_NONE}, {0x1b, AFM_ENC_NONE}, {0x1c, AFM_ENC_NONE}, {0x1d, AFM_ENC_NONE}, {0x1e, AFM_ENC_NONE}, {0x1f, AFM_ENC_NONE}, {0x20, "space"}, {0x21, "exclam"}, {0x22, "quotedbl"}, {0x23, "numbersign"}, {0x24, "dollar"}, {0x25, "percent"}, {0x26, "ampersand"}, {0x27, "quoteright"}, {0x28, "parenleft"}, {0x29, "parenright"}, {0x2a, "asterisk"}, {0x2b, "plus"}, {0x2c, "comma"}, {0x2d, "hyphen"}, {0x2e, "period"}, {0x2f, "slash"}, {0x30, "zero"}, {0x31, "one"}, {0x32, "two"}, {0x33, "three"}, {0x34, "four"}, {0x35, "five"}, {0x36, "six"}, {0x37, "seven"}, {0x38, "eight"}, {0x39, "nine"}, {0x3a, "colon"}, {0x3b, "semicolon"}, {0x3c, "less"}, {0x3d, "equal"}, {0x3e, "greater"}, {0x3f, "question"}, {0x40, "at"}, {0x41, "A"}, {0x42, "B"}, {0x43, "C"}, {0x44, "D"}, {0x45, "E"}, {0x46, "F"}, {0x47, "G"}, {0x48, "H"}, {0x49, "I"}, {0x4a, "J"}, {0x4b, "K"}, {0x4c, "L"}, {0x4d, "M"}, {0x4e, "N"}, {0x4f, "O"}, {0x50, "P"}, {0x51, "Q"}, {0x52, "R"}, {0x53, "S"}, {0x54, "T"}, {0x55, "U"}, {0x56, "V"}, {0x57, "W"}, {0x58, "X"}, {0x59, "Y"}, {0x5a, "Z"}, {0x5b, "bracketleft"}, {0x5c, "backslash"}, {0x5d, "bracketright"}, {0x5e, "asciicircum"}, {0x5f, "underscore"}, {0x60, "quoteleft"}, {0x61, "a"}, {0x62, "b"}, {0x63, "c"}, {0x64, "d"}, {0x65, "e"}, {0x66, "f"}, {0x67, "g"}, {0x68, "h"}, {0x69, "i"}, {0x6a, "j"}, {0x6b, "k"}, {0x6c, "l"}, {0x6d, "m"}, {0x6e, "n"}, {0x6f, "o"}, {0x70, "p"}, {0x71, "q"}, {0x72, "r"}, {0x73, "s"}, {0x74, "t"}, {0x75, "u"}, {0x76, "v"}, {0x77, "w"}, {0x78, "x"}, {0x79, "y"}, {0x7a, "z"}, {0x7b, "braceleft"}, {0x7c, "bar"}, {0x7d, "braceright"}, {0x7e, "tilde"}, {0x7f, AFM_ENC_NONE}, {0x80, AFM_ENC_NONE}, {0x81, AFM_ENC_NONE}, {0x82, AFM_ENC_NONE}, {0x83, AFM_ENC_NONE}, {0x84, AFM_ENC_NONE}, {0x85, AFM_ENC_NONE}, {0x86, AFM_ENC_NONE}, {0x87, AFM_ENC_NONE}, {0x88, AFM_ENC_NONE}, {0x89, AFM_ENC_NONE}, {0x8a, AFM_ENC_NONE}, {0x8b, AFM_ENC_NONE}, {0x8c, AFM_ENC_NONE}, {0x8d, AFM_ENC_NONE}, {0x8e, AFM_ENC_NONE}, {0x8f, AFM_ENC_NONE}, {0x90, AFM_ENC_NONE}, {0x91, AFM_ENC_NONE}, {0x92, AFM_ENC_NONE}, {0x93, AFM_ENC_NONE}, {0x94, AFM_ENC_NONE}, {0x95, AFM_ENC_NONE}, {0x96, AFM_ENC_NONE}, {0x97, AFM_ENC_NONE}, {0x98, AFM_ENC_NONE}, {0x99, AFM_ENC_NONE}, {0x9a, AFM_ENC_NONE}, {0x9b, AFM_ENC_NONE}, {0x9c, AFM_ENC_NONE}, {0x9d, AFM_ENC_NONE}, {0x9e, AFM_ENC_NONE}, {0x9f, AFM_ENC_NONE}, {0xa0, "space"}, {0xa1, "exclamdown"}, {0xa2, "cent"}, {0xa3, "sterling"}, {0xa4, "currency"}, {0xa5, "yen"}, {0xa6, "brokenbar"}, {0xa7, "section"}, {0xa8, "dieresis"}, {0xa9, "copyright"}, {0xaa, "ordfeminine"}, {0xab, "guillemotleft"}, {0xac, "logicalnot"}, {0xad, "hyphen"}, {0xae, "registered"}, {0xaf, "macron"}, {0xb0, "degree"}, {0xb1, "plusminus"}, {0xb2, "twosuperior"}, {0xb3, "threesuperior"}, {0xb4, "acute"}, {0xb5, "mu"}, {0xb6, "paragraph"}, {0xb7, "bullet"}, {0xb8, "cedilla"}, {0xb9, "onesuperior"}, {0xba, "ordmasculine"}, {0xbb, "guillemotright"}, {0xbc, "onequarter"}, {0xbd, "onehalf"}, {0xbe, "threequarters"}, {0xbf, "questiondown"}, {0xc0, "Agrave"}, {0xc1, "Aacute"}, {0xc2, "Acircumflex"}, {0xc3, "Atilde"}, {0xc4, "Adieresis"}, {0xc5, "Aring"}, {0xc6, "AE"}, {0xc7, "Ccedilla"}, {0xc8, "Egrave"}, {0xc9, "Eacute"}, {0xca, "Ecircumflex"}, {0xcb, "Edieresis"}, {0xcc, "Igrave"}, {0xcd, "Iacute"}, {0xce, "Icircumflex"}, {0xcf, "Idieresis"}, {0xd0, "Gbreve"}, {0xd1, "Ntilde"}, {0xd2, "Ograve"}, {0xd3, "Oacute"}, {0xd4, "Ocircumflex"}, {0xd5, "Otilde"}, {0xd6, "Odieresis"}, {0xd7, "multiply"}, {0xd8, "Oslash"}, {0xd9, "Ugrave"}, {0xda, "Uacute"}, {0xdb, "Ucircumflex"}, {0xdc, "Udieresis"}, {0xdd, "Idotaccent"}, {0xde, "Scedilla"}, {0xdf, "germandbls"}, {0xe0, "agrave"}, {0xe1, "aacute"}, {0xe2, "acircumflex"}, {0xe3, "atilde"}, {0xe4, "adieresis"}, {0xe5, "aring"}, {0xe6, "ae"}, {0xe7, "ccedilla"}, {0xe8, "egrave"}, {0xe9, "eacute"}, {0xea, "ecircumflex"}, {0xeb, "edieresis"}, {0xec, "igrave"}, {0xed, "iacute"}, {0xee, "icircumflex"}, {0xef, "idieresis"}, {0xf0, "gbreve"}, {0xf1, "ntilde"}, {0xf2, "ograve"}, {0xf3, "oacute"}, {0xf4, "ocircumflex"}, {0xf5, "otilde"}, {0xf6, "odieresis"}, {0xf7, "divide"}, {0xf8, "oslash"}, {0xf9, "ugrave"}, {0xfa, "uacute"}, {0xfb, "ucircumflex"}, {0xfc, "udieresis"}, {0xfd, "dotlessi"}, {0xfe, "scedilla"}, {0xff, "ydieresis"}, {-1, NULL}, }; enscript-1.6.5.90/afmlib/make-encoding.pl0000755000175000017500000000511511133214772015020 00000000000000#!/usr/local/bin/perl # # Create encoding files from the `*.txt' encoding files. # Copyright (c) 1995-1998 Markku Rossi. # Author: Markku Rossi # # # This file is part of GNU Enscript. # # Enscript is free software: you can redistribute 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. # # Enscript is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Enscript. If not, see . # # # Handle arguments # if (@ARGV != 1) { print "usage: make-encoding.pl encfile\n"; exit(1); } $file = shift(@ARGV); open(FP, $file) || die "couldn't open input file `$file': $!\n"; # Find the start of the table. $found = 0; while () { if ($_ =~ /^-+$/) { $found = 1; last; } } if (!$found) { die "file `$file' is not a valid encoding file: couldn't find table\n"; } $file =~ s/\.txt$//g; $file =~ s/.*\///g; # Print header. print <<"EOF"; /* * AFM $file encoding. * * This file is automatically generated from file \`$file.txt\'. If you * have any corrections to this file, please, edit file \`$file.txt\' instead. */ /* * Enscript is free software: you can redistribute 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. * * Enscript is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Enscript. If not, see . */ EOF print "#include \"afmint.h\"\n\n"; printf("AFMEncodingTable afm_%s_encoding[] =\n{\n", $file); # Process file. while () { @cols = split; if ($_ =~ /^\s*$/) { next; } elsif ($_ =~ /non-printable/) { print " {@cols[1], AFM_ENC_NONE},\n"; } elsif (@cols[2] =~ /-/) { print " {@cols[1], AFM_ENC_NON_EXISTENT},\n"; } else { $name = @cols[2]; $name =~ s/\///g; print " {@cols[1], \"$name\"},\n"; } } # Print trailer. printf(" {-1, NULL},\n};\n"); close(FP); enscript-1.6.5.90/afmlib/strhash.c0000644000175000017500000001704511133214772013604 00000000000000/* * String hash table. * Copyright (c) 1995-1999 Markku Rossi. * * Author: Markku Rossi */ /* * Enscript is free software: you can redistribute 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. * * Enscript is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Enscript. If not, see . */ #include #include /* * Types and definitions. */ #define STRHASH_DEBUG 0 #define HASH_SIZE 8192 struct hash_list_st { struct hash_list_st *next; char *key; /* malloc()ated copy of key. */ int keylen; void *data; }; typedef struct hash_list_st HashList; typedef HashList *HashTable; typedef struct stringhash_st { HashTable *hash_table; /* Scan support. */ unsigned int next_idx; HashList *next_item; #if STRHASH_DEBUG int items_in_hash; #endif /* STRHASH_DEBUG */ } *hash_t; /* * Prototypes for static functions. */ static int count_hash ___P ((const char *key, int keylen)); /* * Global functions. */ StringHashPtr strhash_init () { StringHashPtr tmp; tmp = (StringHashPtr) calloc (1, sizeof (*tmp)); if (!tmp) return NULL; tmp->hash_table = (HashTable *) calloc (HASH_SIZE, sizeof (HashTable)); if (!tmp->hash_table) { free (tmp); return NULL; } #if STRHASH_DEBUG tmp->items_in_hash = 0; #endif /* STRHASH_DEBUG */ return tmp; } void strhash_free (StringHashPtr hash) { HashList *list, *list_next; int i; if (!hash) return; /* Free chains. */ for (i = 0; i < HASH_SIZE; i++) for (list = hash->hash_table[i]; list; list = list_next) { list_next = list->next; free (list->key); free (list); } /* Free hash. */ free (hash->hash_table); free (hash); } int strhash_put (StringHashPtr hash, char *key, int keylen, void *data, void **old_data) { HashList *list, *prev = NULL; int pos, cmp_val; if (!hash || !key || keylen <= 0) return 0; if (old_data) *old_data = NULL; pos = count_hash (key, keylen); /* Is it already here? */ for (list = hash->hash_table[pos]; list; prev = list, list = list->next) if (list->keylen == keylen) { cmp_val = memcmp (key, list->key, keylen); if (cmp_val == 0) { /* We had an old occurence. */ if (old_data) *old_data = list->data; list->data = data; return 1; } else if (cmp_val < 0) { /* Run over. Correct position is prev->next. */ break; } } else if (list->keylen > keylen) /* Lists are kept sorted so that smallest keys are at the head and keys with equal length are in normal sorted order. */ break; /* No old data. */ list = (HashList *) calloc (1, sizeof (HashList)); if (!list) return 0; list->key = (char *) malloc (keylen); if (!list->key) { free (list); return 0; } memcpy (list->key, key, keylen); list->keylen = keylen; list->data = data; /* Insert list to the correct position. */ if (!prev) { list->next = hash->hash_table[pos]; hash->hash_table[pos] = list; } else { list->next = prev->next; prev->next = list; } #if STRHASH_DEBUG hash->items_in_hash++; #endif /* STRHASH_DEBUG */ return 1; } int strhash_get (StringHashPtr hash, const char *key, int keylen, void **data) { HashList *list; int pos, cmp_val; if (!hash || !key || keylen <= 0 || !data) return 0; *data = NULL; pos = count_hash (key, keylen); for (list = hash->hash_table[pos]; list; list = list->next) if (list->keylen == keylen) { cmp_val = memcmp (key, list->key, keylen); if (cmp_val == 0) { *data = list->data; return 1; } else if (cmp_val < 0) /* Run over. */ break; } else if (list->keylen > keylen) /* Run over. */ break; return 0; } int strhash_delete (StringHashPtr hash, const char *key, int keylen, void **data) { HashList *list, *prev = NULL; int pos, cmp_val; if (!hash || !key || keylen <= 0 || !data) return 0; *data = NULL; pos = count_hash (key, keylen); for (list = hash->hash_table[pos]; list; prev = list, list = list->next) if (list->keylen == keylen) { cmp_val = memcmp (key, list->key, keylen); if (cmp_val == 0) { /* Value found. */ if (prev == NULL) hash->hash_table[pos] = list->next; else prev->next = list->next; *data = list->data; free (list->key); free (list); /* Init scan. */ hash->next_idx = 0; hash->next_item = NULL; #if STRHASH_DEBUG hash->items_in_hash--; #endif /* STRHASH_DEBUG */ return 1; } else if (cmp_val < 0) /* Not found. */ break; } else if (list->keylen > keylen) /* Run over. */ break; return 0; } int strhash_get_first (StringHashPtr hash, char **key_return, int *keylen_return, void **data_return) { if (!hash || !key_return || !keylen_return || !data_return) return 0; for (hash->next_idx = 0; hash->next_idx < HASH_SIZE; hash->next_idx++) { hash->next_item = hash->hash_table[hash->next_idx]; if (hash->next_item) { *key_return = hash->next_item->key; *keylen_return = hash->next_item->keylen; *data_return = hash->next_item->data; return 1; } } return 0; } int strhash_get_next (StringHashPtr hash, char **key_return, int *keylen_return, void **data_return) { if (!hash || !key_return || !keylen_return || !data_return) return 0; for (; hash->next_idx < HASH_SIZE; hash->next_idx++) { if (hash->next_item == NULL) hash->next_item = hash->hash_table[hash->next_idx]; else hash->next_item = hash->next_item->next; if (hash->next_item) { *key_return = hash->next_item->key; *keylen_return = hash->next_item->keylen; *data_return = hash->next_item->data; return 1; } } return 0; } #if STRHASH_DEBUG void strhash_debug (StringHashPtr hash) { int i, count = 0, max = 0; HashList *tmp; if (!hash) { fprintf (stderr, "Invalid hash handle!\n"); return; } fprintf (stderr, "hash_size\t%d\n", HASH_SIZE); fprintf (stderr, "items_in_hash\t%d\n", hash->items_in_hash); for (i = 0; i < HASH_SIZE; i++) if (hash->hash_table[i] == NULL) count++; fprintf (stderr, "empty entries\t%d\n", count); count = 0; for (i = 0; i < HASH_SIZE; i++) { for (tmp = hash->hash_table[i]; tmp; tmp = tmp->next) count++; max = count > max ? count : max; count = 0; } fprintf (stderr, "longest list\t%d\n", max); if (max > 0) { /* Print the first longest list. */ for (i = 0; i < HASH_SIZE; i++) { count = 0; for (tmp = hash->hash_table[i]; tmp; tmp = tmp->next) count++; if (count == max) { for (count = 0, tmp = hash->hash_table[i]; tmp; tmp = tmp->next, count++) { fprintf (stderr, "%d\t", count); for (i = 0; i < tmp->keylen; i++) fprintf (stderr, "%c", tmp->key[i]); } break; } } } } #endif /* STRHASH_DEBUG */ /* * Static functions. */ static int count_hash (const char *key, int keylen) { unsigned int val = 0; int i; for (i = 0; i < keylen; i++) val = (val << 5) ^ (unsigned char) key[i] ^ (val >> 16) ^ (val >> 7); return val % HASH_SIZE; } enscript-1.6.5.90/afmlib/e_koi8.c0000644000175000017500000001425711133214772013310 00000000000000/* * AFM koi8 encoding. * * This file is automatically generated from file `koi8.txt'. If you * have any corrections to this file, please, edit file `koi8.txt' instead. */ /* * Enscript is free software: you can redistribute 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. * * Enscript is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Enscript. If not, see . */ #include "afmint.h" AFMEncodingTable afm_koi8_encoding[] = { {0x00, AFM_ENC_NONE}, {0x01, AFM_ENC_NONE}, {0x02, AFM_ENC_NONE}, {0x03, AFM_ENC_NONE}, {0x04, AFM_ENC_NONE}, {0x05, AFM_ENC_NONE}, {0x06, AFM_ENC_NONE}, {0x07, AFM_ENC_NONE}, {0x08, AFM_ENC_NONE}, {0x09, AFM_ENC_NONE}, {0x0a, AFM_ENC_NONE}, {0x0b, AFM_ENC_NONE}, {0x0c, AFM_ENC_NONE}, {0x0d, AFM_ENC_NONE}, {0x0e, AFM_ENC_NONE}, {0x0f, AFM_ENC_NONE}, {0x10, AFM_ENC_NONE}, {0x11, AFM_ENC_NONE}, {0x12, AFM_ENC_NONE}, {0x13, AFM_ENC_NONE}, {0x14, AFM_ENC_NONE}, {0x15, AFM_ENC_NONE}, {0x16, AFM_ENC_NONE}, {0x17, AFM_ENC_NONE}, {0x18, AFM_ENC_NONE}, {0x19, AFM_ENC_NONE}, {0x1a, AFM_ENC_NONE}, {0x1b, AFM_ENC_NONE}, {0x1c, AFM_ENC_NONE}, {0x1d, AFM_ENC_NONE}, {0x1e, AFM_ENC_NONE}, {0x1f, AFM_ENC_NONE}, {0x20, "space"}, {0x21, "exclam"}, {0x22, "quotedbl"}, {0x23, "numbersign"}, {0x24, "dollar"}, {0x25, "percent"}, {0x26, "ampersand"}, {0x27, "quoteright"}, {0x28, "parenleft"}, {0x29, "parenright"}, {0x2a, "asterisk"}, {0x2b, "plus"}, {0x2c, "comma"}, {0x2d, "hyphen"}, {0x2e, "period"}, {0x2f, "slash"}, {0x30, "zero"}, {0x31, "one"}, {0x32, "two"}, {0x33, "three"}, {0x34, "four"}, {0x35, "five"}, {0x36, "six"}, {0x37, "seven"}, {0x38, "eight"}, {0x39, "nine"}, {0x3a, "colon"}, {0x3b, "semicolon"}, {0x3c, "less"}, {0x3d, "equal"}, {0x3e, "greater"}, {0x3f, "question"}, {0x40, "at"}, {0x41, "A"}, {0x42, "B"}, {0x43, "C"}, {0x44, "D"}, {0x45, "E"}, {0x46, "F"}, {0x47, "G"}, {0x48, "H"}, {0x49, "I"}, {0x4a, "J"}, {0x4b, "K"}, {0x4c, "L"}, {0x4d, "M"}, {0x4e, "N"}, {0x4f, "O"}, {0x50, "P"}, {0x51, "Q"}, {0x52, "R"}, {0x53, "S"}, {0x54, "T"}, {0x55, "U"}, {0x56, "V"}, {0x57, "W"}, {0x58, "X"}, {0x59, "Y"}, {0x5a, "Z"}, {0x5b, "bracketleft"}, {0x5c, "backslash"}, {0x5d, "bracketright"}, {0x5e, "asciicircum"}, {0x5f, "underscore"}, {0x60, "quoteleft"}, {0x61, "a"}, {0x62, "b"}, {0x63, "c"}, {0x64, "d"}, {0x65, "e"}, {0x66, "f"}, {0x67, "g"}, {0x68, "h"}, {0x69, "i"}, {0x6a, "j"}, {0x6b, "k"}, {0x6c, "l"}, {0x6d, "m"}, {0x6e, "n"}, {0x6f, "o"}, {0x70, "p"}, {0x71, "q"}, {0x72, "r"}, {0x73, "s"}, {0x74, "t"}, {0x75, "u"}, {0x76, "v"}, {0x77, "w"}, {0x78, "x"}, {0x79, "y"}, {0x7a, "z"}, {0x7b, "braceleft"}, {0x7c, "bar"}, {0x7d, "braceright"}, {0x7e, "tilde"}, {0x7f, AFM_ENC_NONE}, {0x80, AFM_ENC_NONE}, {0x81, AFM_ENC_NONE}, {0x82, AFM_ENC_NONE}, {0x83, AFM_ENC_NONE}, {0x84, "guillmotleft"}, {0x85, "guillmotright"}, {0x86, "afii61352"}, {0x87, AFM_ENC_NONE}, {0x88, AFM_ENC_NONE}, {0x89, AFM_ENC_NONE}, {0x8a, AFM_ENC_NONE}, {0x8b, AFM_ENC_NONE}, {0x8c, AFM_ENC_NONE}, {0x8d, AFM_ENC_NONE}, {0x8e, AFM_ENC_NONE}, {0x8f, AFM_ENC_NONE}, {0x90, AFM_ENC_NONE}, {0x91, AFM_ENC_NONE}, {0x92, AFM_ENC_NONE}, {0x93, AFM_ENC_NONE}, {0x94, AFM_ENC_NONE}, {0x95, AFM_ENC_NONE}, {0x96, AFM_ENC_NONE}, {0x97, AFM_ENC_NONE}, {0x98, AFM_ENC_NONE}, {0x99, AFM_ENC_NONE}, {0x9a, AFM_ENC_NONE}, {0x9b, AFM_ENC_NONE}, {0x9c, AFM_ENC_NONE}, {0x9d, AFM_ENC_NONE}, {0x9e, AFM_ENC_NONE}, {0x9f, AFM_ENC_NONE}, {0xa0, "space"}, {0xa1, "exclamdown"}, {0xa2, "cent"}, {0xa3, "afii10071"}, {0xa4, "currency"}, {0xa5, "yen"}, {0xa6, "brokenbar"}, {0xa7, "section"}, {0xa8, "dieresis"}, {0xa9, "copyright"}, {0xaa, "ordfeminine"}, {0xab, "guillemotleft"}, {0xac, "logicalnot"}, {0xad, "hyphen"}, {0xae, "registered"}, {0xaf, "macron"}, {0xb0, "degree"}, {0xb1, "plusminus"}, {0xb2, "twosuperior"}, {0xb3, "afii10023"}, {0xb4, "acute"}, {0xb5, "mu"}, {0xb6, "paragraph"}, {0xb7, "bullet"}, {0xb8, "cedilla"}, {0xb9, "dotlessi"}, {0xba, "ordmasculine"}, {0xbb, "guillemotright"}, {0xbc, "onequarter"}, {0xbd, "onehalf"}, {0xbe, "threequarters"}, {0xbf, "questiondown"}, {0xc0, "afii10096"}, {0xc1, "afii10065"}, {0xc2, "afii10066"}, {0xc3, "afii10088"}, {0xc4, "afii10069"}, {0xc5, "afii10070"}, {0xc6, "afii10086"}, {0xc7, "afii10068"}, {0xc8, "afii10087"}, {0xc9, "afii10074"}, {0xca, "afii10075"}, {0xcb, "afii10076"}, {0xcc, "afii10077"}, {0xcd, "afii10078"}, {0xce, "afii10079"}, {0xcf, "afii10080"}, {0xd0, "afii10081"}, {0xd1, "afii10097"}, {0xd2, "afii10082"}, {0xd3, "afii10083"}, {0xd4, "afii10084"}, {0xd5, "afii10085"}, {0xd6, "afii10072"}, {0xd7, "afii10067"}, {0xd8, "afii10094"}, {0xd9, "afii10093"}, {0xda, "afii10073"}, {0xdb, "afii10090"}, {0xdc, "afii10095"}, {0xdd, "afii10091"}, {0xde, "afii10089"}, {0xdf, "afii10092"}, {0xe0, "afii10048"}, {0xe1, "afii10017"}, {0xe2, "afii10018"}, {0xe3, "afii10040"}, {0xe4, "afii10021"}, {0xe5, "afii10022"}, {0xe6, "afii10038"}, {0xe7, "afii10020"}, {0xe8, "afii10039"}, {0xe9, "afii10026"}, {0xea, "afii10027"}, {0xeb, "afii10028"}, {0xec, "afii10029"}, {0xed, "afii10030"}, {0xee, "afii10031"}, {0xef, "afii10032"}, {0xf0, "afii10033"}, {0xf1, "afii10049"}, {0xf2, "afii10034"}, {0xf3, "afii10035"}, {0xf4, "afii10036"}, {0xf5, "afii10037"}, {0xf6, "afii10024"}, {0xf7, "afii10019"}, {0xf8, "afii10046"}, {0xf9, "afii10045"}, {0xfa, "afii10025"}, {0xfb, "afii10042"}, {0xfc, "afii10047"}, {0xfd, "afii10043"}, {0xfe, "afii10041"}, {0xff, "afii10044"}, {-1, NULL}, }; enscript-1.6.5.90/afmlib/TODO0000644000175000017500000000011411132443251012434 00000000000000 TODO * read_character_metrics(): ligatures * read_kern_pairs(): kKPH enscript-1.6.5.90/afmlib/afmint.h0000644000175000017500000001236211133214772013410 00000000000000/* * Internal header for the AFM library. * Copyright (c) 1995-1999 Markku Rossi. * * Author: Markku Rossi */ /* * Enscript is free software: you can redistribute 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. * * Enscript is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Enscript. If not, see . */ #ifndef AFMINT_H #define AFMINT_H /* * Config stuffs. */ #ifdef HAVE_CONFIG_H #include #endif #include #ifndef ___P #if PROTOTYPES #define ___P(protos) protos #else /* no PROTOTYPES */ #define ___P(protos) () #endif /* no PROTOTYPES */ #endif #if STDC_HEADERS #include #include #else /* no STDC_HEADERS */ #if HAVE_STDLIB_H #include #endif #if HAVE_STRING_H #include #endif #ifndef HAVE_STRCHR #define strchr index #define strrchr rindex #endif char *strchr (); char *strrchr (); #ifndef HAVE_MEMCPY #define memcpy(d, s, n) bcopy((s), (d), (n)) #endif #ifndef HAVE_STRERROR extern char *strerror ___P ((int)); #endif #endif /* no STDC_HEADERS */ #if HAVE_UNISTD_H #include #endif #include #include #include #include #include #include "afm.h" #include "strhash.h" /* * Types and definitions. */ /* Error codes. */ #define AFM_ERROR 1 #define AFM_ERROR_MEMORY 2 #define AFM_ERROR_ARGUMENT 3 #define AFM_ERROR_UNKNOWN_FONT 4 #define AFM_ERROR_SYNTAX 5 #define AFM_ERROR_UNSUPPORTED_FORMAT 6 #define AFM_ERROR_FILE_IO 7 #define AFM_ERROR_NOT_AFM_FILE 8 #define NUM_ERRORS 9 /* Pack error and global errno. */ #define SYSERROR(code) (errno << 16 | (code)) /* Keys. */ typedef enum { kComment, /* File structure. */ kStartFontMetrics, kEndFontMetrics, kStartCompFontMetrics, kEndCompFontMetrics, kStartDescendent, kEndDescendent, kStartMasterFontMetrics, kEndMasterFontMetrics, /* Control information. */ kMetricsSets, kDescendents, kMasters, kAxes, /* Global font information. */ kFontName, kFullName, kFamilyName, kWeight, kFontBBox, kVersion, kNotice, kEncodingScheme, kMappingScheme, kEscChar, kCharacterSet, kCharacters, kIsBaseFont, kVVector, kIsFixedV, kCapHeight, kXHeight, kAscender, kDescender, kWeightVector, kBlendDesignPositions, kBlendDesignMap, kBlendAxisTypes, /* Writing direction information. */ kStartDirection, kEndDirection, kUnderlinePosition, kUnderlineThickness, kItalicAngle, kCharWidth, kIsFixedPitch, /* Individual character metrics. */ kStartCharMetrics, kEndCharMetrics, kC, kCH, kWX, kW0X, kW1X, kWY, kW0Y, kW1Y, kW, kW0, kW1, kVV, kN, kB, kL, /* Kerning data. */ kStartKernData, kEndKernData, kStartTrackKern, kEndTrackKern, kTrackKern, kStartKernPairs, kEndKernPairs, kKP, kKPH, kKPX, kKPY, /* Composite character data. */ kStartComposites, kEndComposites, kCC, kPCC, /* Axis information. */ kStartAxis, kEndAxis, kAxisType, kAxisLabel, /* Master Design Information */ kStartMaster, kEndMaster } AFMKey; struct afm_handle_st { unsigned int verbose; /* verbose level */ StringHashPtr font_map; /* fontname -> AFM filename mapping */ /* Parse support. */ jmp_buf jmpbuf; AFMError parse_error; /* Error that caused longjmp(). */ }; /* Store library's private font data to this structure. */ struct afm_font_private_data_st { /* Character that is used for undefined codes (' '). */ AFMIndividualCharacterMetrics *undef; StringHashPtr fontnames; /* fontname -> character info mapping */ StringHashPtr compositenames; /* composite -> AFMComposite mapping */ }; /* * Encoding tables. */ struct encoding_table_st { int code; char *character; }; typedef struct encoding_table_st AFMEncodingTable; extern AFMEncodingTable afm_88591_encoding[]; extern AFMEncodingTable afm_88592_encoding[]; extern AFMEncodingTable afm_88593_encoding[]; extern AFMEncodingTable afm_88594_encoding[]; extern AFMEncodingTable afm_88595_encoding[]; extern AFMEncodingTable afm_88597_encoding[]; extern AFMEncodingTable afm_88599_encoding[]; extern AFMEncodingTable afm_885910_encoding[]; extern AFMEncodingTable afm_ibmpc_encoding[]; extern AFMEncodingTable afm_mac_encoding[]; extern AFMEncodingTable afm_vms_encoding[]; extern AFMEncodingTable afm_hp8_encoding[]; extern AFMEncodingTable afm_koi8_encoding[]; /* * Global help functions. */ /* Print message if is larger than library's verbose level. */ void afm_message ___P ((AFMHandle handle, unsigned int level, char *message)); /* Print error message to stderr. */ void afm_error ___P ((AFMHandle handle, char *message)); /* * AFM file parsing */ /* Parse AFM file and fill up font . */ void afm_parse_file ___P ((AFMHandle handle, const char *filename, AFMFont font)); #endif /* not AFMINT_H */ enscript-1.6.5.90/afmlib/Makefile.in0000644000175000017500000004321411606344073014031 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 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@ # # Automakefile for AFM library. # Copyright (c) 1995-1999 Markku Rossi # # Author: Markku Rossi # # # Enscript is free software: you can redistribute 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. # # Enscript is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # # along with Enscript. If not, see . # VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ noinst_PROGRAMS = afmtest$(EXEEXT) subdir = afmlib DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in TODO ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc2.m4 \ $(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intdiv0.m4 $(top_srcdir)/m4/intl.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/intmax.m4 \ $(top_srcdir)/m4/inttypes-pri.m4 \ $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/lcmessage.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/lock.m4 \ $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/printf-posix.m4 \ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/size_max.m4 \ $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/uintmax_t.m4 \ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/wchar_t.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xsize.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LIBRARIES = $(noinst_LIBRARIES) AR = ar ARFLAGS = cru libafm_a_AR = $(AR) $(ARFLAGS) libafm_a_LIBADD = am_libafm_a_OBJECTS = afm.$(OBJEXT) afmparse.$(OBJEXT) \ strhash.$(OBJEXT) e_88591.$(OBJEXT) e_88592.$(OBJEXT) \ e_88593.$(OBJEXT) e_88594.$(OBJEXT) e_88595.$(OBJEXT) \ e_88597.$(OBJEXT) e_88599.$(OBJEXT) e_885910.$(OBJEXT) \ e_pc.$(OBJEXT) e_mac.$(OBJEXT) e_vms.$(OBJEXT) e_hp8.$(OBJEXT) \ e_koi8.$(OBJEXT) deffont.$(OBJEXT) libafm_a_OBJECTS = $(am_libafm_a_OBJECTS) PROGRAMS = $(noinst_PROGRAMS) am_afmtest_OBJECTS = afmtest.$(OBJEXT) afmtest_OBJECTS = $(am_afmtest_OBJECTS) afmtest_DEPENDENCIES = libafm.a DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libafm_a_SOURCES) $(afmtest_SOURCES) DIST_SOURCES = $(libafm_a_SOURCES) $(afmtest_SOURCES) HEADERS = $(noinst_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GENCAT = @GENCAT@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GLIBC2 = @GLIBC2@ GLIBC21 = @GLIBC21@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ HAVE_ASPRINTF = @HAVE_ASPRINTF@ HAVE_POSIX_PRINTF = @HAVE_POSIX_PRINTF@ HAVE_SNPRINTF = @HAVE_SNPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WPRINTF = @HAVE_WPRINTF@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLBISON = @INTLBISON@ INTLLIBS = @INTLLIBS@ INTLOBJS = @INTLOBJS@ INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTHREAD = @LIBTHREAD@ LTLIBC = @LTLIBC@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ MAKEINFO = @MAKEINFO@ MEDIA = @MEDIA@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ POSUB = @POSUB@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ PSLEVEL = @PSLEVEL@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SPOOLER = @SPOOLER@ STRIP = @STRIP@ U = @U@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WINDRES = @WINDRES@ WOE32 = @WOE32@ WOE32DLL = @WOE32DLL@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ YACC = @YACC@ YFLAGS = @YFLAGS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ 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@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ noinst_LIBRARIES = libafm.a libafm_a_SOURCES = afm.c afmparse.c strhash.c e_88591.c e_88592.c \ e_88593.c e_88594.c e_88595.c e_88597.c e_88599.c e_885910.c e_pc.c \ e_mac.c e_vms.c e_hp8.c e_koi8.c deffont.c noinst_HEADERS = afm.h afmint.h strhash.h INCLUDES_windelta = +-I../w32/ EXTRA_DIST = ChangeLog.old Makefile-encodings make-encoding.pl afmtest_SOURCES = afmtest.c afmtest_LDADD = libafm.a all: all-am .SUFFIXES: .SUFFIXES: .c .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu afmlib/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu afmlib/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 $(am__aclocal_m4_deps): clean-noinstLIBRARIES: -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) libafm.a: $(libafm_a_OBJECTS) $(libafm_a_DEPENDENCIES) -rm -f libafm.a $(libafm_a_AR) libafm.a $(libafm_a_OBJECTS) $(libafm_a_LIBADD) $(RANLIB) libafm.a clean-noinstPROGRAMS: -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS) afmtest$(EXEEXT): $(afmtest_OBJECTS) $(afmtest_DEPENDENCIES) @rm -f afmtest$(EXEEXT) $(LINK) $(afmtest_OBJECTS) $(afmtest_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/afm.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/afmparse.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/afmtest.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/deffont.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/e_88591.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/e_885910.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/e_88592.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/e_88593.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/e_88594.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/e_88595.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/e_88597.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/e_88599.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/e_hp8.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/e_koi8.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/e_mac.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/e_pc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/e_vms.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strhash.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @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@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @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) '$<'` 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; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ 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; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) 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; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" 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)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(HEADERS) 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) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-noinstLIBRARIES clean-noinstPROGRAMS \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-noinstLIBRARIES clean-noinstPROGRAMS ctags distclean \ distclean-compile distclean-generic distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ uninstall-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: enscript-1.6.5.90/afmlib/afm.h0000644000175000017500000002447511133214772012705 00000000000000/* * Public header file. * Copyright (c) 1995-1998 Markku Rossi. * * Author: Markku Rossi */ /* * Enscript is free software: you can redistribute 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. * * Enscript is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Enscript. If not, see . */ #ifndef AFM_H #define AFM_H #ifndef ___P #if PROTOTYPES #define ___P(protos) protos #else /* no PROTOTYPES */ #define ___P(protos) () #endif /* no PROTOTYPES */ #endif /********************************************************************** * * AFM file entities. * **********************************************************************/ /* AFM types. */ #define AFM_TYPE_STRING 1 #define AFM_TYPE_NAME 2 #define AFM_TYPE_NUMBER 3 #define AFM_TYPE_INTEGER 4 #define AFM_TYPE_ARRAY 5 #define AFM_TYPE_BOOLEAN 6 typedef char *AFMString; typedef char *AFMName; typedef double AFMNumber; typedef long AFMInteger; typedef enum { AFMFalse = 0, AFMTrue = 1 } AFMBoolean; typedef struct afm_array_st *AFMArray; struct afm_node_st { int type; union { AFMString string; AFMName name; AFMNumber number; AFMInteger integer; AFMArray array; AFMBoolean boolean; } u; }; typedef struct afm_node_st AFMNode; struct afm_array_st { AFMNumber num_items; AFMNode *items; }; /* AFM file data structures. */ /* * Sorry! I know that those mixed case variable names are ugly, * but this is the way how they are written in Adobe's document * so I think that this is the best way for documentary reasons. */ /* Global Font Information*/ struct global_font_information_st { AFMString FontName; AFMString FullName; AFMString FamilyName; AFMString Weight; AFMNumber FontBBox_llx; AFMNumber FontBBox_lly; AFMNumber FontBBox_urx; AFMNumber FontBBox_ury; AFMString Version; AFMString Notice; AFMString EncodingScheme; AFMInteger MappingScheme; AFMInteger EscChar; AFMString CharacterSet; AFMInteger Characters; AFMBoolean IsBaseFont; AFMNumber VVector_0; AFMNumber VVector_1; AFMBoolean IsFixedV; AFMNumber CapHeight; AFMNumber XHeight; AFMNumber Ascender; AFMNumber Descender; AFMArray BlendAxisTypes; AFMArray BlendDesignPositions; AFMArray BlendDesignMap; AFMArray WeightVector; }; typedef struct global_font_information_st AFMGlobalFontInformation; /* Writing Direction Metrics. */ struct writing_direction_metrics_st { AFMBoolean is_valid; AFMNumber UnderlinePosition; AFMNumber UnderlineThickness; AFMNumber ItalicAngle; AFMNumber CharWidth_x; AFMNumber CharWidth_y; AFMBoolean IsFixedPitch; }; typedef struct writing_direction_metrics_st AFMWritingDirectionMetrics; /* Multiple Master Axis Information. */ struct multiple_master_axis_info_st { AFMString AxisType; AFMString AxisLabel; }; typedef struct multiple_master_axis_info_st AFMMultipleMasterAxisInformation; /* Individual Character Metrics. */ struct ligature_st { AFMName successor; AFMName ligature; }; typedef struct ligature_st AFMLigature; /* Single individual character. */ struct individual_character_metrics_st { AFMInteger character_code; /* default charcode (-1 if not encoded) */ AFMNumber w0x; /* character width x in writing direction 0 */ AFMNumber w0y; /* character width y in writing direction 0 */ AFMNumber w1x; /* character width x in writing direction 1 */ AFMNumber w1y; /* character width y in writing direction 1 */ AFMName name; /* character name */ AFMNumber vv_x; /* local VVector x */ AFMNumber vv_y; /* local VVector y */ /* character bounding box. */ AFMNumber llx; AFMNumber lly; AFMNumber urx; AFMNumber ury; AFMNumber num_ligatures; AFMLigature *ligatures; }; typedef struct individual_character_metrics_st AFMIndividualCharacterMetrics; /* Kerning Data. */ /* Track Kerning Data. */ struct track_kern_st { AFMInteger degree; AFMNumber min_ptsize; AFMNumber min_kern; AFMNumber max_ptsize; AFMNumber max_kern; }; typedef struct track_kern_st AFMTrackKern; /* Pair-Wise Kerning. */ struct pair_wise_kerning_st { AFMName name1; AFMName name2; AFMNumber kx; AFMNumber ky; }; typedef struct pair_wise_kerning_st AFMPairWiseKerning; /* Composite fonts. */ /* Single composite component. */ struct composite_component_st { AFMName name; AFMNumber deltax; AFMNumber deltay; }; typedef struct composite_component_st AFMCompositeComponent; struct composite_st { AFMName name; AFMInteger num_components; AFMCompositeComponent *components; }; typedef struct composite_st AFMComposite; /********************************************************************** * * Library API. * **********************************************************************/ /* Constants. */ #define UNITS_PER_POINT 1000 /* Successful operation. */ #define AFM_SUCCESS 0 /* * AFM information levels. The AFM libarary returns always Global * Font information, Writing Direction Metrics and Individual * Character Metrics. Other fields can be retrieved by defining some * of the following flags to afm_open_{font, file}() functions. */ #define AFM_I_MINIMUM 0x00 #define AFM_I_COMPOSITES 0x01 #define AFM_I_KERN_PAIRS 0x02 #define AFM_I_TRACK_KERNS 0x04 #define AFM_I_ALL 0xffffffff /* * Flags for the encoding functions. */ #define AFM_ENCODE_ACCEPT_COMPOSITES 0x01 typedef unsigned int AFMError; typedef struct afm_handle_st *AFMHandle; /* Supported encoding types. */ typedef enum { AFM_ENCODING_DEFAULT, /* Font's default encoding. */ AFM_ENCODING_ISO_8859_1, /* ISO-8859-1 */ AFM_ENCODING_ISO_8859_2, /* ISO-8859-2 */ AFM_ENCODING_ISO_8859_3, /* ISO-8859-3 */ AFM_ENCODING_ISO_8859_4, /* ISO-8859-4 */ AFM_ENCODING_ISO_8859_5, /* ISO-8859-5 */ AFM_ENCODING_ISO_8859_7, /* ISO-8859-7 */ AFM_ENCODING_ISO_8859_9, /* ISO-8859-9 */ AFM_ENCODING_ISO_8859_10, /* ISO-8859-10 */ AFM_ENCODING_IBMPC, /* IBM PC */ AFM_ENCODING_ASCII, /* 7 bit ASCII */ AFM_ENCODING_MAC, /* Mac */ AFM_ENCODING_VMS, /* VMS multinational */ AFM_ENCODING_HP8, /* HP Roman-8 */ AFM_ENCODING_KOI8 /* Adobe Standard Cyrillic Font KOI8 */ } AFMEncoding; /* Special encoding types for individual characters. */ #define AFM_ENC_NONE ((void *) 0) #define AFM_ENC_NON_EXISTENT ((void *) 1) /* AFM information for a single PostScript font. */ struct afm_font_st { /* AFM Library's private data. */ struct afm_font_private_data_st *private; AFMNumber version; /* AFM format specification version number. */ unsigned int info_level; /* * Current font encoding. Following values are valid: * * AFM_ENC_NONE character is not encoded * AFM_ENC_NON_EXISTENT character is encoded, but font does not * have the specified character * * character is encoded and it exists in font */ AFMIndividualCharacterMetrics *encoding[256]; AFMGlobalFontInformation global_info; AFMWritingDirectionMetrics writing_direction_metrics[2]; AFMInteger num_character_metrics; AFMIndividualCharacterMetrics *character_metrics; AFMInteger num_composites; AFMComposite *composites; AFMInteger num_kern_pairs; AFMPairWiseKerning *kern_pairs; AFMInteger num_track_kerns; AFMTrackKern *track_kerns; }; typedef struct afm_font_st *AFMFont; /* * Prototypes for public functions. */ /* * Format error to human readable format to buffer . * Buffer must be long enough for error messages (256 bytes is good). */ void afm_error_to_string ___P ((AFMError error, char *buf)); /* * Open AFM library. specifies the search path for the AFM * files. A handle to the library is returned in . */ AFMError afm_create ___P ((const char *path, unsigned int verbose_level, AFMHandle *handle_return)); /* * Close AFM library handle . */ AFMError afm_destroy ___P ((AFMHandle handle)); /* * Set AFM library's verbose level to . Value 0 means "no output". */ AFMError afm_set_verbose ___P ((AFMHandle handle, unsigned int level)); /* * Return a prefix to the font 's data. Various font * resource file names can be constructed from the returned prefix: * AFM .afm * PFA .pfa * * Returned prefix belongs to AFM library, user should not modify it. */ AFMError afm_font_prefix ___P ((AFMHandle handle, const char *fontname, const char **prefix_return)); /* * Open font and return font handle in . */ AFMError afm_open_font ___P ((AFMHandle handle, unsigned int info_level, const char *name, AFMFont *font_return)); /* * Open AFM file and return font handle in . */ AFMError afm_open_file ___P ((AFMHandle handle, unsigned int info_level, const char *filename, AFMFont *font_return)); /* * Open built-in default font (Courier). */ AFMError afm_open_default_font ___P ((AFMHandle handle, AFMFont *font_return)); /* * Close font . */ AFMError afm_close_font ___P ((AFMFont font)); /* * Dump font information to file . */ void afm_font_dump ___P ((FILE *fp, AFMFont font)); /* * Return the width of the string . */ AFMError afm_font_stringwidth ___P ((AFMFont font, AFMNumber ptsize, char *string, unsigned int stringlen, AFMNumber *w0x_return, AFMNumber *w0y_return)); /* * Return the width of the character . */ AFMError afm_font_charwidth ___P ((AFMFont font, AFMNumber ptsize, char ch, AFMNumber *w0x_return, AFMNumber *w0y_return)); /* * Encode character code to print as character . * If is NULL, encoding is removed. can contain * any combination of the AFM_ENCODE_* values. */ AFMError afm_font_encode ___P ((AFMFont font, unsigned char code, char *name, unsigned int flags)); /* * Apply encoding to font . can contain any * combination of the AFM_ENCODE_* values. */ AFMError afm_font_encoding ___P ((AFMFont font, AFMEncoding enc, unsigned int flags)); #endif /* not AFM_H */ enscript-1.6.5.90/afmlib/afmtest.c0000644000175000017500000000755411133214772013577 00000000000000/* * Tester program for the AFM library. * Copyright (c) 1995-1999 Markku Rossi. * * Author: Markku Rossi */ /* * Enscript is free software: you can redistribute 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. * * Enscript is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Enscript. If not, see . */ #include #ifdef HAVE_CONFIG_H #include "config.h" #endif #if STDC_HEADERS #include #endif #if HAVE_STRING_H #include #endif #include "afm.h" /* * Types and definitions. */ #define HANDLE_ERROR(msg) \ if (error != AFM_SUCCESS) \ { \ char buf[256]; \ afm_error_to_string (error, buf); \ fprintf (stderr, "afmtest: %s: %s\n", msg, buf); \ exit (1); \ } /* * Prototypes for static functions. */ static void usage (); /* * Static variables */ static char *program; /* * Global functions. */ int main (int argc, char *argv[]) { AFMHandle afm; AFMFont font; AFMError error; AFMNumber width, height; char buf[256]; program = strrchr (argv[0], '/'); if (program) program++; else program = argv[0]; error = afm_create (NULL, 0, &afm); HANDLE_ERROR ("couldn't create library"); if (argc < 2) { usage (); exit (1); } if (strcmp (argv[1], "dump") == 0 && argc == 3) { error = afm_open_file (afm, AFM_I_ALL, argv[2], &font); if (error != AFM_SUCCESS) { fprintf (stderr, "%s: couldn't open font \"%s\", using default\n", program, argv[2]); error = afm_open_default_font (afm, &font); HANDLE_ERROR ("couldn't open default font"); } afm_font_dump (stdout, font); error = afm_close_font (font); HANDLE_ERROR ("couldn't close font"); } else if (strcmp (argv[1], "stringwidth") == 0 && argc == 5) { error = afm_open_file (afm, AFM_I_ALL, argv[2], &font); HANDLE_ERROR ("couldn't open font"); error = afm_font_encoding (font, AFM_ENCODING_ISO_8859_1, 0); HANDLE_ERROR ("couldn't encode font"); error = afm_font_stringwidth (font, atof (argv[3]), argv[4], strlen (argv[4]), &width, &height); printf ("stringwidth is [%g %g]\n", width, height); error = afm_close_font (font); HANDLE_ERROR ("couldn't close font"); } else if (strcmp (argv[1], "chardump") == 0 && argc > 2) { int i, j; for (i = 2; i < argc; i++) { error = afm_open_file (afm, AFM_I_COMPOSITES, argv[i], &font); if (error != AFM_SUCCESS) { afm_error_to_string (error, buf); fprintf (stderr, "%s: couldn't open AFM file \"%s\": %s\n", program, argv[i], buf); continue; } for (j = 0; j < font->num_character_metrics; j++) { AFMIndividualCharacterMetrics *cm; cm = &font->character_metrics[j]; printf ("/%-30s %3ld glyph %s\n", cm->name, cm->character_code, font->global_info.FontName); } for (j = 0; j < font->num_composites; j++) { AFMComposite *cc; cc = &font->composites[j]; printf ("/%-30s -1 composite %s\n", cc->name, font->global_info.FontName); } (void) afm_close_font (font); } } else { usage (); exit (1); } return 0; } /* * Static functions. */ static void usage () { fprintf (stderr, "Usage: %s dump file\n" " %s stringwidth file ptsize string\n" " %s chardump file [file ...]\n", program, program, program); } enscript-1.6.5.90/afmlib/e_88593.c0000644000175000017500000001414011133214772013125 00000000000000/* * AFM 88593 encoding. * * This file is automatically generated from file `88593.txt'. If you * have any corrections to this file, please, edit file `88593.txt' instead. */ /* * Enscript is free software: you can redistribute 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. * * Enscript is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Enscript. If not, see . */ #include "afmint.h" AFMEncodingTable afm_88593_encoding[] = { {0x00, AFM_ENC_NONE}, {0x01, AFM_ENC_NONE}, {0x02, AFM_ENC_NONE}, {0x03, AFM_ENC_NONE}, {0x04, AFM_ENC_NONE}, {0x05, AFM_ENC_NONE}, {0x06, AFM_ENC_NONE}, {0x07, AFM_ENC_NONE}, {0x08, AFM_ENC_NONE}, {0x09, AFM_ENC_NONE}, {0x0a, AFM_ENC_NONE}, {0x0b, AFM_ENC_NONE}, {0x0c, AFM_ENC_NONE}, {0x0d, AFM_ENC_NONE}, {0x0e, AFM_ENC_NONE}, {0x0f, AFM_ENC_NONE}, {0x10, AFM_ENC_NONE}, {0x11, AFM_ENC_NONE}, {0x12, AFM_ENC_NONE}, {0x13, AFM_ENC_NONE}, {0x14, AFM_ENC_NONE}, {0x15, AFM_ENC_NONE}, {0x16, AFM_ENC_NONE}, {0x17, AFM_ENC_NONE}, {0x18, AFM_ENC_NONE}, {0x19, AFM_ENC_NONE}, {0x1a, AFM_ENC_NONE}, {0x1b, AFM_ENC_NONE}, {0x1c, AFM_ENC_NONE}, {0x1d, AFM_ENC_NONE}, {0x1e, AFM_ENC_NONE}, {0x1f, AFM_ENC_NONE}, {0x20, "space"}, {0x21, "exclam"}, {0x22, "quotedbl"}, {0x23, "numbersign"}, {0x24, "dollar"}, {0x25, "percent"}, {0x26, "ampersand"}, {0x27, "quoteright"}, {0x28, "parenleft"}, {0x29, "parenright"}, {0x2a, "asterisk"}, {0x2b, "plus"}, {0x2c, "comma"}, {0x2d, "hyphen"}, {0x2e, "period"}, {0x2f, "slash"}, {0x30, "zero"}, {0x31, "one"}, {0x32, "two"}, {0x33, "three"}, {0x34, "four"}, {0x35, "five"}, {0x36, "six"}, {0x37, "seven"}, {0x38, "eight"}, {0x39, "nine"}, {0x3a, "colon"}, {0x3b, "semicolon"}, {0x3c, "less"}, {0x3d, "equal"}, {0x3e, "greater"}, {0x3f, "question"}, {0x40, "at"}, {0x41, "A"}, {0x42, "B"}, {0x43, "C"}, {0x44, "D"}, {0x45, "E"}, {0x46, "F"}, {0x47, "G"}, {0x48, "H"}, {0x49, "I"}, {0x4a, "J"}, {0x4b, "K"}, {0x4c, "L"}, {0x4d, "M"}, {0x4e, "N"}, {0x4f, "O"}, {0x50, "P"}, {0x51, "Q"}, {0x52, "R"}, {0x53, "S"}, {0x54, "T"}, {0x55, "U"}, {0x56, "V"}, {0x57, "W"}, {0x58, "X"}, {0x59, "Y"}, {0x5a, "Z"}, {0x5b, "bracketleft"}, {0x5c, "backslash"}, {0x5d, "bracketright"}, {0x5e, "asciicircum"}, {0x5f, "underscore"}, {0x60, "quoteleft"}, {0x61, "a"}, {0x62, "b"}, {0x63, "c"}, {0x64, "d"}, {0x65, "e"}, {0x66, "f"}, {0x67, "g"}, {0x68, "h"}, {0x69, "i"}, {0x6a, "j"}, {0x6b, "k"}, {0x6c, "l"}, {0x6d, "m"}, {0x6e, "n"}, {0x6f, "o"}, {0x70, "p"}, {0x71, "q"}, {0x72, "r"}, {0x73, "s"}, {0x74, "t"}, {0x75, "u"}, {0x76, "v"}, {0x77, "w"}, {0x78, "x"}, {0x79, "y"}, {0x7a, "z"}, {0x7b, "braceleft"}, {0x7c, "bar"}, {0x7d, "braceright"}, {0x7e, "tilde"}, {0x7f, AFM_ENC_NONE}, {0x80, AFM_ENC_NONE}, {0x81, AFM_ENC_NONE}, {0x82, AFM_ENC_NONE}, {0x83, AFM_ENC_NONE}, {0x84, AFM_ENC_NONE}, {0x85, AFM_ENC_NONE}, {0x86, AFM_ENC_NONE}, {0x87, AFM_ENC_NONE}, {0x88, AFM_ENC_NONE}, {0x89, AFM_ENC_NONE}, {0x8a, AFM_ENC_NONE}, {0x8b, AFM_ENC_NONE}, {0x8c, AFM_ENC_NONE}, {0x8d, AFM_ENC_NONE}, {0x8e, AFM_ENC_NONE}, {0x8f, AFM_ENC_NONE}, {0x90, AFM_ENC_NONE}, {0x91, AFM_ENC_NONE}, {0x92, AFM_ENC_NONE}, {0x93, AFM_ENC_NONE}, {0x94, AFM_ENC_NONE}, {0x95, AFM_ENC_NONE}, {0x96, AFM_ENC_NONE}, {0x97, AFM_ENC_NONE}, {0x98, AFM_ENC_NONE}, {0x99, AFM_ENC_NONE}, {0x9a, AFM_ENC_NONE}, {0x9b, AFM_ENC_NONE}, {0x9c, AFM_ENC_NONE}, {0x9d, AFM_ENC_NONE}, {0x9e, AFM_ENC_NONE}, {0x9f, AFM_ENC_NONE}, {0xa0, "space"}, {0xa1, "Hbar"}, {0xa2, "breve"}, {0xa3, "sterling"}, {0xa4, "currency"}, {0xa5, "yen"}, {0xa6, "Hcircumflex"}, {0xa7, "section"}, {0xa8, "dieresis"}, {0xa9, "Idotaccent"}, {0xaa, "Scedilla"}, {0xab, "Gbreve"}, {0xac, "Jcircumflex"}, {0xad, "hyphen"}, {0xae, "registered"}, {0xaf, "Zdotaccent"}, {0xb0, "degree"}, {0xb1, "hbar"}, {0xb2, "twosuperior"}, {0xb3, "threesuperior"}, {0xb4, "acute"}, {0xb5, "mu"}, {0xb6, "hcircumflex"}, {0xb7, "bullet"}, {0xb8, "cedilla"}, {0xb9, "dotlessi"}, {0xba, "scedilla"}, {0xbb, "gbreve"}, {0xbc, "jcircumflex"}, {0xbd, "onehalf"}, {0xbe, "threequarters"}, {0xbf, "zdotaccent"}, {0xc0, "Agrave"}, {0xc1, "Aacute"}, {0xc2, "Acircumflex"}, {0xc3, "Atilde"}, {0xc4, "Adieresis"}, {0xc5, "Cdotaccent"}, {0xc6, "Ccircumflex"}, {0xc7, "Ccedilla"}, {0xc8, "Egrave"}, {0xc9, "Eacute"}, {0xca, "Ecircumflex"}, {0xcb, "Edieresis"}, {0xcc, "Igrave"}, {0xcd, "Iacute"}, {0xce, "Icircumflex"}, {0xcf, "Idieresis"}, {0xd0, "Eth"}, {0xd1, "Ntilde"}, {0xd2, "Ograve"}, {0xd3, "Oacute"}, {0xd4, "Ocircumflex"}, {0xd5, "Gdotaccent"}, {0xd6, "Odieresis"}, {0xd7, "multiply"}, {0xd8, "Gcircumflex"}, {0xd9, "Ugrave"}, {0xda, "Uacute"}, {0xdb, "Ucircumflex"}, {0xdc, "Udieresis"}, {0xdd, "Ubreve"}, {0xde, "Scircumflex"}, {0xdf, "germandbls"}, {0xe0, "agrave"}, {0xe1, "aacute"}, {0xe2, "acircumflex"}, {0xe3, "atilde"}, {0xe4, "adieresis"}, {0xe5, "cdotaccent"}, {0xe6, "ccircumflex"}, {0xe7, "ccedilla"}, {0xe8, "egrave"}, {0xe9, "eacute"}, {0xea, "ecircumflex"}, {0xeb, "edieresis"}, {0xec, "igrave"}, {0xed, "iacute"}, {0xee, "icircumflex"}, {0xef, "idieresis"}, {0xf0, "eth"}, {0xf1, "ntilde"}, {0xf2, "ograve"}, {0xf3, "oacute"}, {0xf4, "ocircumflex"}, {0xf5, "gdotaccent"}, {0xf6, "odieresis"}, {0xf7, "divide"}, {0xf8, "gcircumflex"}, {0xf9, "ugrave"}, {0xfa, "uacute"}, {0xfb, "ucircumflex"}, {0xfc, "udieresis"}, {0xfd, "ubreve"}, {0xfe, "scircumflex"}, {0xff, "dotaccent"}, {-1, NULL}, }; enscript-1.6.5.90/afmlib/e_pc.c0000644000175000017500000001512711133214772013035 00000000000000/* * AFM ibmpc encoding. * * This file is automatically generated from file `ibmpc.txt'. If you * have any corrections to this file, please, edit file `ibmpc.txt' instead. */ /* * Enscript is free software: you can redistribute 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. * * Enscript is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Enscript. If not, see . */ #include "afmint.h" AFMEncodingTable afm_ibmpc_encoding[] = { {0x00, AFM_ENC_NONE}, {0x01, AFM_ENC_NON_EXISTENT}, {0x02, AFM_ENC_NON_EXISTENT}, {0x03, "heart"}, {0x04, "diamond"}, {0x05, "club"}, {0x06, "spade"}, {0x07, AFM_ENC_NONE}, {0x08, AFM_ENC_NONE}, {0x09, AFM_ENC_NONE}, {0x0a, AFM_ENC_NONE}, {0x0b, AFM_ENC_NONE}, {0x0c, AFM_ENC_NONE}, {0x0d, AFM_ENC_NONE}, {0x0e, AFM_ENC_NONE}, {0x0f, AFM_ENC_NONE}, {0x10, AFM_ENC_NON_EXISTENT}, {0x11, AFM_ENC_NON_EXISTENT}, {0x12, AFM_ENC_NON_EXISTENT}, {0x13, AFM_ENC_NON_EXISTENT}, {0x14, "paragraph"}, {0x15, "section"}, {0x16, AFM_ENC_NON_EXISTENT}, {0x17, AFM_ENC_NON_EXISTENT}, {0x18, "arrowup"}, {0x19, "arrowdown"}, {0x1a, AFM_ENC_NONE}, {0x1b, AFM_ENC_NONE}, {0x1c, AFM_ENC_NON_EXISTENT}, {0x1d, "arrowboth"}, {0x1e, AFM_ENC_NON_EXISTENT}, {0x1f, AFM_ENC_NON_EXISTENT}, {0x20, "space"}, {0x21, "exclam"}, {0x22, "quotedbl"}, {0x23, "numbersign"}, {0x24, "dollar"}, {0x25, "percent"}, {0x26, "ampersand"}, {0x27, "quoteright"}, {0x28, "parenleft"}, {0x29, "parenright"}, {0x2a, "asterisk"}, {0x2b, "plus"}, {0x2c, "comma"}, {0x2d, "hyphen"}, {0x2e, "period"}, {0x2f, "slash"}, {0x30, "zero"}, {0x31, "one"}, {0x32, "two"}, {0x33, "three"}, {0x34, "four"}, {0x35, "five"}, {0x36, "six"}, {0x37, "seven"}, {0x38, "eight"}, {0x39, "nine"}, {0x3a, "colon"}, {0x3b, "semicolon"}, {0x3c, "less"}, {0x3d, "equal"}, {0x3e, "greater"}, {0x3f, "question"}, {0x40, "at"}, {0x41, "A"}, {0x42, "B"}, {0x43, "C"}, {0x44, "D"}, {0x45, "E"}, {0x46, "F"}, {0x47, "G"}, {0x48, "H"}, {0x49, "I"}, {0x4a, "J"}, {0x4b, "K"}, {0x4c, "L"}, {0x4d, "M"}, {0x4e, "N"}, {0x4f, "O"}, {0x50, "P"}, {0x51, "Q"}, {0x52, "R"}, {0x53, "S"}, {0x54, "T"}, {0x55, "U"}, {0x56, "V"}, {0x57, "W"}, {0x58, "X"}, {0x59, "Y"}, {0x5a, "Z"}, {0x5b, "bracketleft"}, {0x5c, "backslash"}, {0x5d, "bracketright"}, {0x5e, "asciicircum"}, {0x5f, "underscore"}, {0x60, "quoteleft"}, {0x61, "a"}, {0x62, "b"}, {0x63, "c"}, {0x64, "d"}, {0x65, "e"}, {0x66, "f"}, {0x67, "g"}, {0x68, "h"}, {0x69, "i"}, {0x6a, "j"}, {0x6b, "k"}, {0x6c, "l"}, {0x6d, "m"}, {0x6e, "n"}, {0x6f, "o"}, {0x70, "p"}, {0x71, "q"}, {0x72, "r"}, {0x73, "s"}, {0x74, "t"}, {0x75, "u"}, {0x76, "v"}, {0x77, "w"}, {0x78, "x"}, {0x79, "y"}, {0x7a, "z"}, {0x7b, "braceleft"}, {0x7c, "bar"}, {0x7d, "braceright"}, {0x7e, "tilde"}, {0x7f, AFM_ENC_NON_EXISTENT}, {0x80, "Ccedilla"}, {0x81, "udieresis"}, {0x82, "eacute"}, {0x83, "acircumflex"}, {0x84, "adieresis"}, {0x85, "agrave"}, {0x86, "aring"}, {0x87, "ccedilla"}, {0x88, "ecircumflex"}, {0x89, "edieresis"}, {0x8a, "egrave"}, {0x8b, "idieresis"}, {0x8c, "icircumflex"}, {0x8d, "igrave"}, {0x8e, "Adieresis"}, {0x8f, "Aring"}, {0x90, "Eacute"}, {0x91, "ae"}, {0x92, "AE"}, {0x93, "ocircumflex"}, {0x94, "odieresis"}, {0x95, "ograve"}, {0x96, "ucircumflex"}, {0x97, "ugrave"}, {0x98, "ydieresis"}, {0x99, "Odieresis"}, {0x9a, "Udieresis"}, {0x9b, "cent"}, {0x9c, "sterling"}, {0x9d, "yen"}, {0x9e, AFM_ENC_NON_EXISTENT}, {0x9f, "florin"}, {0xa0, "aacute"}, {0xa1, "iacute"}, {0xa2, "oacute"}, {0xa3, "uacute"}, {0xa4, "ntilde"}, {0xa5, "Ntilde"}, {0xa6, "ordfeminine"}, {0xa7, "degree"}, {0xa8, "questiondown"}, {0xa9, AFM_ENC_NON_EXISTENT}, {0xaa, "logicalnot"}, {0xab, "onehalf"}, {0xac, "onequarter"}, {0xad, "exclamdown"}, {0xae, "guillemotleft"}, {0xaf, "guillemotright"}, {0xb0, AFM_ENC_NON_EXISTENT}, {0xb1, AFM_ENC_NON_EXISTENT}, {0xb2, AFM_ENC_NON_EXISTENT}, {0xb3, AFM_ENC_NON_EXISTENT}, {0xb4, AFM_ENC_NON_EXISTENT}, {0xb5, AFM_ENC_NON_EXISTENT}, {0xb6, AFM_ENC_NON_EXISTENT}, {0xb7, AFM_ENC_NON_EXISTENT}, {0xb8, AFM_ENC_NON_EXISTENT}, {0xb9, AFM_ENC_NON_EXISTENT}, {0xba, AFM_ENC_NON_EXISTENT}, {0xbb, AFM_ENC_NON_EXISTENT}, {0xbc, AFM_ENC_NON_EXISTENT}, {0xbd, AFM_ENC_NON_EXISTENT}, {0xbe, AFM_ENC_NON_EXISTENT}, {0xbf, AFM_ENC_NON_EXISTENT}, {0xc0, AFM_ENC_NON_EXISTENT}, {0xc1, AFM_ENC_NON_EXISTENT}, {0xc2, AFM_ENC_NON_EXISTENT}, {0xc3, AFM_ENC_NON_EXISTENT}, {0xc4, AFM_ENC_NON_EXISTENT}, {0xc5, AFM_ENC_NON_EXISTENT}, {0xc6, AFM_ENC_NON_EXISTENT}, {0xc7, AFM_ENC_NON_EXISTENT}, {0xc8, AFM_ENC_NON_EXISTENT}, {0xc9, AFM_ENC_NON_EXISTENT}, {0xca, AFM_ENC_NON_EXISTENT}, {0xcb, AFM_ENC_NON_EXISTENT}, {0xcc, AFM_ENC_NON_EXISTENT}, {0xcd, AFM_ENC_NON_EXISTENT}, {0xce, AFM_ENC_NON_EXISTENT}, {0xcf, AFM_ENC_NON_EXISTENT}, {0xd0, AFM_ENC_NON_EXISTENT}, {0xd1, AFM_ENC_NON_EXISTENT}, {0xd2, AFM_ENC_NON_EXISTENT}, {0xd3, AFM_ENC_NON_EXISTENT}, {0xd4, AFM_ENC_NON_EXISTENT}, {0xd5, AFM_ENC_NON_EXISTENT}, {0xd6, AFM_ENC_NON_EXISTENT}, {0xd7, AFM_ENC_NON_EXISTENT}, {0xd8, AFM_ENC_NON_EXISTENT}, {0xd9, AFM_ENC_NON_EXISTENT}, {0xda, AFM_ENC_NON_EXISTENT}, {0xdb, AFM_ENC_NON_EXISTENT}, {0xdc, AFM_ENC_NON_EXISTENT}, {0xdd, AFM_ENC_NON_EXISTENT}, {0xde, AFM_ENC_NON_EXISTENT}, {0xdf, AFM_ENC_NON_EXISTENT}, {0xe0, "alpha"}, {0xe1, "germandbls"}, {0xe2, "Gamma"}, {0xe3, "pi"}, {0xe4, "Sigma"}, {0xe5, "sigma"}, {0xe6, "mu"}, {0xe7, "tau"}, {0xe8, "phi"}, {0xe9, "theta"}, {0xea, "Omega"}, {0xeb, "delta"}, {0xec, "infinity"}, {0xed, "oslash"}, {0xee, "epsilon"}, {0xef, "intersection"}, {0xf0, "equivalence"}, {0xf1, "plusminus"}, {0xf2, "greaterequal"}, {0xf3, "lessequal"}, {0xf4, "integraltp"}, {0xf5, "integralbt"}, {0xf6, "divide"}, {0xf7, "approxequal"}, {0xf8, "degree"}, {0xf9, "dotaccent"}, {0xfa, "dotaccent"}, {0xfb, "radical"}, {0xfc, AFM_ENC_NON_EXISTENT}, {0xfd, "twosuperior"}, {0xfe, AFM_ENC_NON_EXISTENT}, {0xff, AFM_ENC_NON_EXISTENT}, {-1, NULL}, }; enscript-1.6.5.90/afmlib/e_885910.c0000644000175000017500000001377611133214772013221 00000000000000/* * AFM 885910 encoding. * * This file is automatically generated from file `885910.txt'. If you * have any corrections to this file, please, edit file `885910.txt' instead. */ /* * Enscript is free software: you can redistribute 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. * * Enscript is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Enscript. If not, see . */ #include "afmint.h" AFMEncodingTable afm_885910_encoding[] = { {0x00, AFM_ENC_NONE}, {0x01, AFM_ENC_NONE}, {0x02, AFM_ENC_NONE}, {0x03, AFM_ENC_NONE}, {0x04, AFM_ENC_NONE}, {0x05, AFM_ENC_NONE}, {0x06, AFM_ENC_NONE}, {0x07, AFM_ENC_NONE}, {0x08, AFM_ENC_NONE}, {0x09, AFM_ENC_NONE}, {0x0a, AFM_ENC_NONE}, {0x0b, AFM_ENC_NONE}, {0x0c, AFM_ENC_NONE}, {0x0d, AFM_ENC_NONE}, {0x0e, AFM_ENC_NONE}, {0x0f, AFM_ENC_NONE}, {0x10, AFM_ENC_NONE}, {0x11, AFM_ENC_NONE}, {0x12, AFM_ENC_NONE}, {0x13, AFM_ENC_NONE}, {0x14, AFM_ENC_NONE}, {0x15, AFM_ENC_NONE}, {0x16, AFM_ENC_NONE}, {0x17, AFM_ENC_NONE}, {0x18, AFM_ENC_NONE}, {0x19, AFM_ENC_NONE}, {0x1a, AFM_ENC_NONE}, {0x1b, AFM_ENC_NONE}, {0x1c, AFM_ENC_NONE}, {0x1d, AFM_ENC_NONE}, {0x1e, AFM_ENC_NONE}, {0x1f, AFM_ENC_NONE}, {0x20, "space"}, {0x21, "exclam"}, {0x22, "quotedbl"}, {0x23, "numbersign"}, {0x24, "dollar"}, {0x25, "percent"}, {0x26, "ampersand"}, {0x27, "quoteright"}, {0x28, "parenleft"}, {0x29, "parenright"}, {0x2a, "asterisk"}, {0x2b, "plus"}, {0x2c, "comma"}, {0x2d, "hyphen"}, {0x2e, "period"}, {0x2f, "slash"}, {0x30, "zero"}, {0x31, "one"}, {0x32, "two"}, {0x33, "three"}, {0x34, "four"}, {0x35, "five"}, {0x36, "six"}, {0x37, "seven"}, {0x38, "eight"}, {0x39, "nine"}, {0x3a, "colon"}, {0x3b, "semicolon"}, {0x3c, "less"}, {0x3d, "equal"}, {0x3e, "greater"}, {0x3f, "question"}, {0x40, "at"}, {0x41, "A"}, {0x42, "B"}, {0x43, "C"}, {0x44, "D"}, {0x45, "E"}, {0x46, "F"}, {0x47, "G"}, {0x48, "H"}, {0x49, "I"}, {0x4a, "J"}, {0x4b, "K"}, {0x4c, "L"}, {0x4d, "M"}, {0x4e, "N"}, {0x4f, "O"}, {0x50, "P"}, {0x51, "Q"}, {0x52, "R"}, {0x53, "S"}, {0x54, "T"}, {0x55, "U"}, {0x56, "V"}, {0x57, "W"}, {0x58, "X"}, {0x59, "Y"}, {0x5a, "Z"}, {0x5b, "bracketleft"}, {0x5c, "backslash"}, {0x5d, "bracketright"}, {0x5e, "asciicircum"}, {0x5f, "underscore"}, {0x60, "quoteleft"}, {0x61, "a"}, {0x62, "b"}, {0x63, "c"}, {0x64, "d"}, {0x65, "e"}, {0x66, "f"}, {0x67, "g"}, {0x68, "h"}, {0x69, "i"}, {0x6a, "j"}, {0x6b, "k"}, {0x6c, "l"}, {0x6d, "m"}, {0x6e, "n"}, {0x6f, "o"}, {0x70, "p"}, {0x71, "q"}, {0x72, "r"}, {0x73, "s"}, {0x74, "t"}, {0x75, "u"}, {0x76, "v"}, {0x77, "w"}, {0x78, "x"}, {0x79, "y"}, {0x7a, "z"}, {0x7b, "braceleft"}, {0x7c, "bar"}, {0x7d, "braceright"}, {0x7e, "tilde"}, {0x7f, AFM_ENC_NONE}, {0x80, AFM_ENC_NONE}, {0x81, AFM_ENC_NONE}, {0x82, AFM_ENC_NONE}, {0x83, AFM_ENC_NONE}, {0x84, AFM_ENC_NONE}, {0x85, AFM_ENC_NONE}, {0x86, AFM_ENC_NONE}, {0x87, AFM_ENC_NONE}, {0x88, AFM_ENC_NONE}, {0x89, AFM_ENC_NONE}, {0x8a, AFM_ENC_NONE}, {0x8b, AFM_ENC_NONE}, {0x8c, AFM_ENC_NONE}, {0x8d, AFM_ENC_NONE}, {0x8e, AFM_ENC_NONE}, {0x8f, AFM_ENC_NONE}, {0x90, AFM_ENC_NONE}, {0x91, AFM_ENC_NONE}, {0x92, AFM_ENC_NONE}, {0x93, AFM_ENC_NONE}, {0x94, AFM_ENC_NONE}, {0x95, AFM_ENC_NONE}, {0x96, AFM_ENC_NONE}, {0x97, AFM_ENC_NONE}, {0x98, AFM_ENC_NONE}, {0x99, AFM_ENC_NONE}, {0x9a, AFM_ENC_NONE}, {0x9b, AFM_ENC_NONE}, {0x9c, AFM_ENC_NONE}, {0x9d, AFM_ENC_NONE}, {0x9e, AFM_ENC_NONE}, {0x9f, AFM_ENC_NONE}, {0xa0, "space"}, {0xa1, "Aogonek"}, {0xa2, "Emacron"}, {0xa3, "Gcedilla"}, {0xa4, "Imacron"}, {0xa5, "Itilde"}, {0xa6, "Kcedilla"}, {0xa7, "section"}, {0xa8, "Lcedilla"}, {0xa9, "Dbar"}, {0xaa, "Scaron"}, {0xab, "Tslash"}, {0xac, "Zcaron"}, {0xad, "hyphen"}, {0xae, "Ucaron"}, {0xaf, "Eng"}, {0xb0, "degree"}, {0xb1, "aogonek"}, {0xb2, "emacron"}, {0xb3, "gacute"}, {0xb4, "imacron"}, {0xb5, "itilde"}, {0xb6, "kcedilla"}, {0xb7, "bullet"}, {0xb8, "lcedilla"}, {0xb9, "dbar"}, {0xba, "scaron"}, {0xbb, "tslash"}, {0xbc, "zcaron"}, {0xbd, "bar"}, {0xbe, "ucaron"}, {0xbf, "eng"}, {0xc0, "Amacron"}, {0xc1, "Aacute"}, {0xc2, "Acircumflex"}, {0xc3, "Atilde"}, {0xc4, "Adieresis"}, {0xc5, "Aring"}, {0xc6, "AE"}, {0xc7, "Iogonek"}, {0xc8, "Ccaron"}, {0xc9, "Eacute"}, {0xca, "Eogonek"}, {0xcb, "Edieresis"}, {0xcc, "Edotaccent"}, {0xcd, "Iacute"}, {0xce, "Icircumflex"}, {0xcf, "Imacron"}, {0xd0, "Eth"}, {0xd1, "Ncedilla"}, {0xd2, "Omacron"}, {0xd3, "Oacute"}, {0xd4, "Ocircumflex"}, {0xd5, "Otilde"}, {0xd6, "Odieresis"}, {0xd7, "Utilde"}, {0xd8, "Oslash"}, {0xd9, "Uogonek"}, {0xda, "Uacute"}, {0xdb, "Ucircumflex"}, {0xdc, "Udieresis"}, {0xdd, "Yacute"}, {0xde, "Thorn"}, {0xdf, "germandbls"}, {0xe0, "amacron"}, {0xe1, "aacute"}, {0xe2, "acircumflex"}, {0xe3, "atilde"}, {0xe4, "adieresis"}, {0xe5, "aring"}, {0xe6, "ae"}, {0xe7, "iogonek"}, {0xe8, "ccaron"}, {0xe9, "eacute"}, {0xea, "eogonek"}, {0xeb, "edieresis"}, {0xec, "edotaccent"}, {0xed, "iacute"}, {0xee, "icircumflex"}, {0xef, "idieresis"}, {0xf0, "eth"}, {0xf1, "ncedilla"}, {0xf2, "omacron"}, {0xf3, "kcedilla"}, {0xf4, "ocircumflex"}, {0xf5, "otilde"}, {0xf6, "odieresis"}, {0xf7, "utilde"}, {0xf8, "oslash"}, {0xf9, "uogonek"}, {0xfa, "uacute"}, {0xfb, "ucircumflex"}, {0xfc, "udieresis"}, {0xfd, "yacute"}, {0xfe, "thorn"}, {0xff, "kgreenlandic"}, {-1, NULL}, }; enscript-1.6.5.90/afmlib/e_88592.c0000644000175000017500000001402711133214772013130 00000000000000/* * AFM 88592 encoding. * * This file is automatically generated from file `88592.txt'. If you * have any corrections to this file, please, edit file `88592.txt' instead. */ /* * Enscript is free software: you can redistribute 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. * * Enscript is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Enscript. If not, see . */ #include "afmint.h" AFMEncodingTable afm_88592_encoding[] = { {0x00, AFM_ENC_NONE}, {0x01, AFM_ENC_NONE}, {0x02, AFM_ENC_NONE}, {0x03, AFM_ENC_NONE}, {0x04, AFM_ENC_NONE}, {0x05, AFM_ENC_NONE}, {0x06, AFM_ENC_NONE}, {0x07, AFM_ENC_NONE}, {0x08, AFM_ENC_NONE}, {0x09, AFM_ENC_NONE}, {0x0a, AFM_ENC_NONE}, {0x0b, AFM_ENC_NONE}, {0x0c, AFM_ENC_NONE}, {0x0d, AFM_ENC_NONE}, {0x0e, AFM_ENC_NONE}, {0x0f, AFM_ENC_NONE}, {0x10, AFM_ENC_NONE}, {0x11, AFM_ENC_NONE}, {0x12, AFM_ENC_NONE}, {0x13, AFM_ENC_NONE}, {0x14, AFM_ENC_NONE}, {0x15, AFM_ENC_NONE}, {0x16, AFM_ENC_NONE}, {0x17, AFM_ENC_NONE}, {0x18, AFM_ENC_NONE}, {0x19, AFM_ENC_NONE}, {0x1a, AFM_ENC_NONE}, {0x1b, AFM_ENC_NONE}, {0x1c, AFM_ENC_NONE}, {0x1d, AFM_ENC_NONE}, {0x1e, AFM_ENC_NONE}, {0x1f, AFM_ENC_NONE}, {0x20, "space"}, {0x21, "exclam"}, {0x22, "quotedbl"}, {0x23, "numbersign"}, {0x24, "dollar"}, {0x25, "percent"}, {0x26, "ampersand"}, {0x27, "quoteright"}, {0x28, "parenleft"}, {0x29, "parenright"}, {0x2a, "asterisk"}, {0x2b, "plus"}, {0x2c, "comma"}, {0x2d, "hyphen"}, {0x2e, "period"}, {0x2f, "slash"}, {0x30, "zero"}, {0x31, "one"}, {0x32, "two"}, {0x33, "three"}, {0x34, "four"}, {0x35, "five"}, {0x36, "six"}, {0x37, "seven"}, {0x38, "eight"}, {0x39, "nine"}, {0x3a, "colon"}, {0x3b, "semicolon"}, {0x3c, "less"}, {0x3d, "equal"}, {0x3e, "greater"}, {0x3f, "question"}, {0x40, "at"}, {0x41, "A"}, {0x42, "B"}, {0x43, "C"}, {0x44, "D"}, {0x45, "E"}, {0x46, "F"}, {0x47, "G"}, {0x48, "H"}, {0x49, "I"}, {0x4a, "J"}, {0x4b, "K"}, {0x4c, "L"}, {0x4d, "M"}, {0x4e, "N"}, {0x4f, "O"}, {0x50, "P"}, {0x51, "Q"}, {0x52, "R"}, {0x53, "S"}, {0x54, "T"}, {0x55, "U"}, {0x56, "V"}, {0x57, "W"}, {0x58, "X"}, {0x59, "Y"}, {0x5a, "Z"}, {0x5b, "bracketleft"}, {0x5c, "backslash"}, {0x5d, "bracketright"}, {0x5e, "asciicircum"}, {0x5f, "underscore"}, {0x60, "quoteleft"}, {0x61, "a"}, {0x62, "b"}, {0x63, "c"}, {0x64, "d"}, {0x65, "e"}, {0x66, "f"}, {0x67, "g"}, {0x68, "h"}, {0x69, "i"}, {0x6a, "j"}, {0x6b, "k"}, {0x6c, "l"}, {0x6d, "m"}, {0x6e, "n"}, {0x6f, "o"}, {0x70, "p"}, {0x71, "q"}, {0x72, "r"}, {0x73, "s"}, {0x74, "t"}, {0x75, "u"}, {0x76, "v"}, {0x77, "w"}, {0x78, "x"}, {0x79, "y"}, {0x7a, "z"}, {0x7b, "braceleft"}, {0x7c, "bar"}, {0x7d, "braceright"}, {0x7e, "tilde"}, {0x7f, AFM_ENC_NONE}, {0x80, AFM_ENC_NONE}, {0x81, AFM_ENC_NONE}, {0x82, AFM_ENC_NONE}, {0x83, AFM_ENC_NONE}, {0x84, AFM_ENC_NONE}, {0x85, AFM_ENC_NONE}, {0x86, AFM_ENC_NONE}, {0x87, AFM_ENC_NONE}, {0x88, AFM_ENC_NONE}, {0x89, AFM_ENC_NONE}, {0x8a, AFM_ENC_NONE}, {0x8b, AFM_ENC_NONE}, {0x8c, AFM_ENC_NONE}, {0x8d, AFM_ENC_NONE}, {0x8e, AFM_ENC_NONE}, {0x8f, AFM_ENC_NONE}, {0x90, AFM_ENC_NONE}, {0x91, AFM_ENC_NONE}, {0x92, AFM_ENC_NONE}, {0x93, AFM_ENC_NONE}, {0x94, AFM_ENC_NONE}, {0x95, AFM_ENC_NONE}, {0x96, AFM_ENC_NONE}, {0x97, AFM_ENC_NONE}, {0x98, AFM_ENC_NONE}, {0x99, AFM_ENC_NONE}, {0x9a, AFM_ENC_NONE}, {0x9b, AFM_ENC_NONE}, {0x9c, AFM_ENC_NONE}, {0x9d, AFM_ENC_NONE}, {0x9e, AFM_ENC_NONE}, {0x9f, AFM_ENC_NONE}, {0xa0, "space"}, {0xa1, "Aogonek"}, {0xa2, "breve"}, {0xa3, "Lslash"}, {0xa4, "currency"}, {0xa5, "Lcaron"}, {0xa6, "Sacute"}, {0xa7, "section"}, {0xa8, "dieresis"}, {0xa9, "Scaron"}, {0xaa, "Scedilla"}, {0xab, "Tcaron"}, {0xac, "Zacute"}, {0xad, "hyphen"}, {0xae, "Zcaron"}, {0xaf, "Zdotaccent"}, {0xb0, "degree"}, {0xb1, "aogonek"}, {0xb2, "ogonek"}, {0xb3, "lslash"}, {0xb4, "acute"}, {0xb5, "lcaron"}, {0xb6, "sacute"}, {0xb7, "caron"}, {0xb8, "cedilla"}, {0xb9, "scaron"}, {0xba, "scedilla"}, {0xbb, "tcaron"}, {0xbc, "zacute"}, {0xbd, "hungarumlaut"}, {0xbe, "zcaron"}, {0xbf, "zdotaccent"}, {0xc0, "Racute"}, {0xc1, "Aacute"}, {0xc2, "Acircumflex"}, {0xc3, "Abreve"}, {0xc4, "Adieresis"}, {0xc5, "Lacute"}, {0xc6, "Cacute"}, {0xc7, "Ccedilla"}, {0xc8, "Ccaron"}, {0xc9, "Eacute"}, {0xca, "Eogonek"}, {0xcb, "Edieresis"}, {0xcc, "Ecaron"}, {0xcd, "Iacute"}, {0xce, "Icircumflex"}, {0xcf, "Dcaron"}, {0xd0, "Eth"}, {0xd1, "Nacute"}, {0xd2, "Ncaron"}, {0xd3, "Oacute"}, {0xd4, "Ocircumflex"}, {0xd5, "Ohungarumlaut"}, {0xd6, "Odieresis"}, {0xd7, "multiply"}, {0xd8, "Rcaron"}, {0xd9, "Uring"}, {0xda, "Uacute"}, {0xdb, "Uhungarumlaut"}, {0xdc, "Udieresis"}, {0xdd, "Yacute"}, {0xde, "Tcedilla"}, {0xdf, "germandbls"}, {0xe0, "racute"}, {0xe1, "aacute"}, {0xe2, "acircumflex"}, {0xe3, "abreve"}, {0xe4, "adieresis"}, {0xe5, "lacute"}, {0xe6, "cacute"}, {0xe7, "ccedilla"}, {0xe8, "ccaron"}, {0xe9, "eacute"}, {0xea, "eogonek"}, {0xeb, "edieresis"}, {0xec, "ecaron"}, {0xed, "iacute"}, {0xee, "icircumflex"}, {0xef, "dcaron"}, {0xf0, "dbar"}, {0xf1, "nacute"}, {0xf2, "ncaron"}, {0xf3, "oacute"}, {0xf4, "ocircumflex"}, {0xf5, "ohungarumlaut"}, {0xf6, "odieresis"}, {0xf7, "divide"}, {0xf8, "rcaron"}, {0xf9, "uring"}, {0xfa, "uacute"}, {0xfb, "uhungarumlaut"}, {0xfc, "udieresis"}, {0xfd, "yacute"}, {0xfe, "tcedilla"}, {0xff, "dotaccent"}, {-1, NULL}, }; enscript-1.6.5.90/afmlib/e_88595.c0000644000175000017500000001427011133214772013133 00000000000000/* * AFM 88595 encoding. * * This file is automatically generated from file `88595.txt'. If you * have any corrections to this file, please, edit file `88595.txt' instead. */ /* * Enscript is free software: you can redistribute 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. * * Enscript is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Enscript. If not, see . */ #include "afmint.h" AFMEncodingTable afm_88595_encoding[] = { {0x00, AFM_ENC_NONE}, {0x01, AFM_ENC_NONE}, {0x02, AFM_ENC_NONE}, {0x03, AFM_ENC_NONE}, {0x04, AFM_ENC_NONE}, {0x05, AFM_ENC_NONE}, {0x06, AFM_ENC_NONE}, {0x07, AFM_ENC_NONE}, {0x08, AFM_ENC_NONE}, {0x09, AFM_ENC_NONE}, {0x0a, AFM_ENC_NONE}, {0x0b, AFM_ENC_NONE}, {0x0c, AFM_ENC_NONE}, {0x0d, AFM_ENC_NONE}, {0x0e, AFM_ENC_NONE}, {0x0f, AFM_ENC_NONE}, {0x10, AFM_ENC_NONE}, {0x11, AFM_ENC_NONE}, {0x12, AFM_ENC_NONE}, {0x13, AFM_ENC_NONE}, {0x14, AFM_ENC_NONE}, {0x15, AFM_ENC_NONE}, {0x16, AFM_ENC_NONE}, {0x17, AFM_ENC_NONE}, {0x18, AFM_ENC_NONE}, {0x19, AFM_ENC_NONE}, {0x1a, AFM_ENC_NONE}, {0x1b, AFM_ENC_NONE}, {0x1c, AFM_ENC_NONE}, {0x1d, AFM_ENC_NONE}, {0x1e, AFM_ENC_NONE}, {0x1f, AFM_ENC_NONE}, {0x20, "space"}, {0x21, "exclam"}, {0x22, "quotedbl"}, {0x23, "numbersign"}, {0x24, "dollar"}, {0x25, "percent"}, {0x26, "ampersand"}, {0x27, "quoteright"}, {0x28, "parenleft"}, {0x29, "parenright"}, {0x2a, "asterisk"}, {0x2b, "plus"}, {0x2c, "comma"}, {0x2d, "minus"}, {0x2e, "period"}, {0x2f, "slash"}, {0x30, "zero"}, {0x31, "one"}, {0x32, "two"}, {0x33, "three"}, {0x34, "four"}, {0x35, "five"}, {0x36, "six"}, {0x37, "seven"}, {0x38, "eight"}, {0x39, "nine"}, {0x3a, "colon"}, {0x3b, "semicolon"}, {0x3c, "less"}, {0x3d, "equal"}, {0x3e, "greater"}, {0x3f, "question"}, {0x40, "at"}, {0x41, "A"}, {0x42, "B"}, {0x43, "C"}, {0x44, "D"}, {0x45, "E"}, {0x46, "F"}, {0x47, "G"}, {0x48, "H"}, {0x49, "I"}, {0x4a, "J"}, {0x4b, "K"}, {0x4c, "L"}, {0x4d, "M"}, {0x4e, "N"}, {0x4f, "O"}, {0x50, "P"}, {0x51, "Q"}, {0x52, "R"}, {0x53, "S"}, {0x54, "T"}, {0x55, "U"}, {0x56, "V"}, {0x57, "W"}, {0x58, "X"}, {0x59, "Y"}, {0x5a, "Z"}, {0x5b, "bracketleft"}, {0x5c, "backslash"}, {0x5d, "bracketright"}, {0x5e, "asciicircum"}, {0x5f, "underscore"}, {0x60, "quoteleft"}, {0x61, "a"}, {0x62, "b"}, {0x63, "c"}, {0x64, "d"}, {0x65, "e"}, {0x66, "f"}, {0x67, "g"}, {0x68, "h"}, {0x69, "i"}, {0x6a, "j"}, {0x6b, "k"}, {0x6c, "l"}, {0x6d, "m"}, {0x6e, "n"}, {0x6f, "o"}, {0x70, "p"}, {0x71, "q"}, {0x72, "r"}, {0x73, "s"}, {0x74, "t"}, {0x75, "u"}, {0x76, "v"}, {0x77, "w"}, {0x78, "x"}, {0x79, "y"}, {0x7a, "z"}, {0x7b, "braceleft"}, {0x7c, "bar"}, {0x7d, "braceright"}, {0x7e, "tilde"}, {0x7f, AFM_ENC_NONE}, {0x80, AFM_ENC_NONE}, {0x81, AFM_ENC_NONE}, {0x82, AFM_ENC_NONE}, {0x83, AFM_ENC_NONE}, {0x84, AFM_ENC_NONE}, {0x85, AFM_ENC_NONE}, {0x86, AFM_ENC_NONE}, {0x87, AFM_ENC_NONE}, {0x88, AFM_ENC_NONE}, {0x89, AFM_ENC_NONE}, {0x8a, AFM_ENC_NONE}, {0x8b, AFM_ENC_NONE}, {0x8c, AFM_ENC_NONE}, {0x8d, AFM_ENC_NONE}, {0x8e, AFM_ENC_NONE}, {0x8f, AFM_ENC_NONE}, {0x90, AFM_ENC_NONE}, {0x91, AFM_ENC_NONE}, {0x92, AFM_ENC_NONE}, {0x93, AFM_ENC_NONE}, {0x94, AFM_ENC_NONE}, {0x95, AFM_ENC_NONE}, {0x96, AFM_ENC_NONE}, {0x97, AFM_ENC_NONE}, {0x98, AFM_ENC_NONE}, {0x99, AFM_ENC_NONE}, {0x9a, AFM_ENC_NONE}, {0x9b, AFM_ENC_NONE}, {0x9c, AFM_ENC_NONE}, {0x9d, AFM_ENC_NONE}, {0x9e, AFM_ENC_NONE}, {0x9f, AFM_ENC_NONE}, {0xa0, "space"}, {0xa1, "afii10023"}, {0xa2, "afii10051"}, {0xa3, "afii10052"}, {0xa4, "afii10053"}, {0xa5, "afii10054"}, {0xa6, "afii10055"}, {0xa7, "afii10056"}, {0xa8, "afii10057"}, {0xa9, "afii10058"}, {0xaa, "afii10059"}, {0xab, "afii10060"}, {0xac, "afii10061"}, {0xad, "hyphen"}, {0xae, "afii10062"}, {0xaf, "afii10145"}, {0xb0, "afii10017"}, {0xb1, "afii10018"}, {0xb2, "afii10019"}, {0xb3, "afii10020"}, {0xb4, "afii10021"}, {0xb5, "afii10022"}, {0xb6, "afii10024"}, {0xb7, "afii10025"}, {0xb8, "afii10026"}, {0xb9, "afii10027"}, {0xba, "afii10028"}, {0xbb, "afii10029"}, {0xbc, "afii10030"}, {0xbd, "afii10031"}, {0xbe, "afii10032"}, {0xbf, "afii10033"}, {0xc0, "afii10034"}, {0xc1, "afii10035"}, {0xc2, "afii10036"}, {0xc3, "afii10037"}, {0xc4, "afii10038"}, {0xc5, "afii10039"}, {0xc6, "afii10040"}, {0xc7, "afii10041"}, {0xc8, "afii10042"}, {0xc9, "afii10043"}, {0xca, "afii10044"}, {0xcb, "afii10045"}, {0xcc, "afii10046"}, {0xcd, "afii10047"}, {0xce, "afii10048"}, {0xcf, "afii10049"}, {0xd0, "afii10065"}, {0xd1, "afii10066"}, {0xd2, "afii10067"}, {0xd3, "afii10068"}, {0xd4, "afii10069"}, {0xd5, "afii10070"}, {0xd6, "afii10072"}, {0xd7, "afii10073"}, {0xd8, "afii10074"}, {0xd9, "afii10075"}, {0xda, "afii10076"}, {0xdb, "afii10077"}, {0xdc, "afii10078"}, {0xdd, "afii10079"}, {0xde, "afii10080"}, {0xdf, "afii10081"}, {0xe0, "afii10082"}, {0xe1, "afii10083"}, {0xe2, "afii10084"}, {0xe3, "afii10085"}, {0xe4, "afii10086"}, {0xe5, "afii10087"}, {0xe6, "afii10088"}, {0xe7, "afii10089"}, {0xe8, "afii10090"}, {0xe9, "afii10091"}, {0xea, "afii10092"}, {0xeb, "afii10093"}, {0xec, "afii10094"}, {0xed, "afii10095"}, {0xee, "afii10096"}, {0xef, "afii10097"}, {0xf0, "afii61352"}, {0xf1, "afii10071"}, {0xf2, "afii10099"}, {0xf3, "afii10100"}, {0xf4, "afii10101"}, {0xf5, "afii10102"}, {0xf6, "afii10103"}, {0xf7, "afii10104"}, {0xf8, "afii10105"}, {0xf9, "afii10106"}, {0xfa, "afii10107"}, {0xfb, "afii10108"}, {0xfc, "afii10109"}, {0xfd, "yacute"}, {0xfe, "afii10110"}, {0xff, "afii10193"}, {-1, NULL}, }; enscript-1.6.5.90/config.sub0000755000175000017500000010460611606344073012520 00000000000000#! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, # 2011 Free Software Foundation, Inc. timestamp='2011-03-23' # 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 GNU 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. # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD # 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, 2006, 2007, 2008, 2009, 2010, 2011 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-android* | linux-dietlibc | linux-newlib* | \ linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ knetbsd*-gnu* | netbsd*-gnu* | \ kopensolaris*-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 | -microblaze) os= basic_machine=$1 ;; -bluegene*) os=-cnk ;; -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 \ | lm32 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | mcore | mep | metag \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64octeon | mips64octeonel \ | mips64orion | mips64orionel \ | mips64r5900 | mips64r5900el \ | mips64vr | mips64vrel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | moxie \ | mt \ | msp430 \ | nds32 | nds32le | nds32be \ | nios | nios2 \ | ns16k | ns32k \ | open8 \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle \ | pyramid \ | rx \ | score \ | sh | sh[1234] | sh[24]a | sh[24]aeb | 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 \ | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ | ubicom32 \ | v850 | v850e \ | we32k \ | x86 | xc16x | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown ;; c54x) basic_machine=tic54x-unknown ;; c55x) basic_machine=tic55x-unknown ;; c6x) basic_machine=tic6x-unknown ;; m6811 | m68hc11 | m6812 | m68hc12 | picochip) # 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 ;; strongarm | thumb | xscale) basic_machine=arm-unknown ;; xscaleeb) basic_machine=armeb-unknown ;; xscaleel) basic_machine=armel-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-* \ | 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-* \ | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64octeon-* | mips64octeonel-* \ | mips64orion-* | mips64orionel-* \ | mips64r5900-* | mips64r5900el-* \ | mips64vr-* | mips64vrel-* \ | 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-* \ | nds32-* | nds32le-* | nds32be-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | open8-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ | pyramid-* \ | romp-* | rs6000-* | rx-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | 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-* | sv1-* | sx?-* \ | tahoe-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tile-* | tilegx-* \ | tron-* \ | ubicom32-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-* | z80-*) ;; # Recognize the basic CPU types without company name, with glob match. xtensa*) basic_machine=$basic_machine-unknown ;; # 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 ;; aros) basic_machine=i386-pc os=-aros ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; blackfin) basic_machine=bfin-unknown os=-linux ;; blackfin-*) basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; bluegene*) basic_machine=powerpc-ibm os=-cnk ;; c54x-*) basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c55x-*) basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c6x-*) basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c90) basic_machine=c90-cray os=-unicos ;; cegcc) basic_machine=arm-unknown os=-cegcc ;; 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 | 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 ;; dicos) basic_machine=i686-pc os=-dicos ;; 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 ;; m68knommu) basic_machine=m68k-unknown os=-linux ;; m68knommu-*) basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; microblaze) basic_machine=microblaze-xilinx ;; 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 ;; neo-tandem) basic_machine=neo-tandem ;; nse-tandem) basic_machine=nse-tandem ;; 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 ;; parisc) basic_machine=hppa-unknown os=-linux ;; parisc-*) basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; 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 | ppcbe) basic_machine=powerpc-unknown ;; ppc-* | ppcbe-*) 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 ;; strongarm-* | thumb-*) basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` ;; 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 ;; # This must be matched before tile*. tilegx*) basic_machine=tilegx-unknown os=-linux-gnu ;; tile*) basic_machine=tile-unknown os=-linux-gnu ;; 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 ;; xscale-* | xscalee[bl]-*) basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; z80-*-coff) basic_machine=z80-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[24]aeb | 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. -auroraux) os=-auroraux ;; -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* | -cnk* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ | -sym* | -kopensolaris* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* | -aros* \ | -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* | -cegcc* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-android* \ | -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* | -es*) # 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 ;; -dicos*) os=-dicos ;; -nacl*) ;; -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 ;; tic54x-*) os=-coff ;; tic55x-*) os=-coff ;; tic6x-*) 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 ;; -cnk*|-aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -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: enscript-1.6.5.90/afm/0000755000175000017500000000000011606344227011352 500000000000000enscript-1.6.5.90/afm/Makefile.am0000644000175000017500000000240511401303365013316 00000000000000# # Automakefile for the AFM files. # Copyright (c) 1995-1999 Markku Rossi # # Author: Markku Rossi # # # This file is part of GNU Enscript. # # Enscript is free software: you can redistribute 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. # # Enscript is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Enscript. If not, see . # default_afm = agd.afm agdo.afm agw.afm agwo.afm bkd.afm bkdi.afm \ bkl.afm bkli.afm cob.afm cobo.afm com.afm coo.afm hv.afm hvb.afm \ hvbo.afm hvc.afm hvcb.afm hvcbo.afm hvcdo.afm hvn.afm hvnb.afm \ hvnbo.afm hvno.afm hvo.afm ncb.afm ncbi.afm nci.afm ncr.afm pob.afm \ pobi.afm poi.afm por.afm sy.afm tib.afm tibi.afm tii.afm tir.afm \ zcmi.afm zd.afm public_fonts = matrix.afm matrix.pfa afmdir = $(pkgdatadir)/afm dist_afm_DATA = font.map $(default_afm) $(public_fonts) EXTRA_DIST = ChangeLog.old enscript-1.6.5.90/afm/ncb.afm0000644000175000017500000004016511132443251012516 00000000000000StartFontMetrics 2.0 Comment Copyright (c) 1985, 1987, 1988, 1991 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Tue May 28 16:48:12 1991 Comment UniqueID 35031 Comment VMusage 30773 37665 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 001.009 Notice Copyright (c) 1985, 1987, 1988, 1991 Adobe Systems Incorporated. All Rights Reserved. EncodingScheme AdobeStandardEncoding CapHeight 722 XHeight 475 Ascender 737 Descender -205 StartCharMetrics 228 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 552 237 694 ; C 200 ; WX 333 ; N dieresis ; B -12 552 345 694 ; 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 168 -163 346 3 ; 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 574 ; N ecircumflex ; B 32 -15 542 725 ; C -1 ; WX 574 ; N edieresis ; B 32 -15 542 694 ; C -1 ; WX 611 ; N aacute ; B 40 -15 601 737 ; C -1 ; WX 747 ; N registered ; B -2 -15 750 737 ; C -1 ; WX 370 ; N icircumflex ; B 9 0 363 725 ; C -1 ; WX 685 ; N udieresis ; B 17 -15 668 694 ; C -1 ; WX 611 ; N ograve ; B 32 -15 579 737 ; C -1 ; WX 685 ; N uacute ; B 17 -15 668 737 ; C -1 ; WX 685 ; N ucircumflex ; B 17 -15 668 725 ; C -1 ; WX 759 ; N Aacute ; B -19 0 778 964 ; C -1 ; WX 370 ; N igrave ; B 21 0 338 737 ; C -1 ; WX 444 ; N Icircumflex ; B 29 0 415 952 ; C -1 ; WX 556 ; N ccedilla ; B 32 -224 524 485 ; C -1 ; WX 611 ; N adieresis ; B 40 -15 601 694 ; C -1 ; WX 759 ; N Ecircumflex ; B 19 0 708 952 ; C -1 ; WX 500 ; N scaron ; B 48 -15 476 725 ; C -1 ; WX 667 ; N thorn ; B 17 -205 629 737 ; C -1 ; WX 1000 ; N trademark ; B 6 317 982 722 ; C -1 ; WX 574 ; N egrave ; B 32 -15 542 737 ; C -1 ; WX 344 ; N threesuperior ; B -3 273 355 705 ; C -1 ; WX 537 ; N zcaron ; B 38 0 499 725 ; C -1 ; WX 611 ; N atilde ; B 40 -15 601 705 ; C -1 ; WX 611 ; N aring ; B 40 -15 601 761 ; C -1 ; WX 611 ; N ocircumflex ; B 32 -15 579 725 ; C -1 ; WX 759 ; N Edieresis ; B 19 0 708 921 ; C -1 ; WX 861 ; N threequarters ; B 15 -15 838 705 ; C -1 ; WX 611 ; N ydieresis ; B 12 -205 599 694 ; C -1 ; WX 611 ; N yacute ; B 12 -205 599 737 ; C -1 ; WX 370 ; N iacute ; B 26 0 350 737 ; C -1 ; WX 759 ; N Acircumflex ; B -19 0 778 952 ; C -1 ; WX 833 ; N Uacute ; B 14 -15 825 964 ; C -1 ; WX 574 ; N eacute ; B 32 -15 542 737 ; C -1 ; WX 833 ; N Ograve ; B 39 -15 794 964 ; C -1 ; WX 611 ; N agrave ; B 40 -15 601 737 ; C -1 ; WX 833 ; N Udieresis ; B 14 -15 825 921 ; C -1 ; WX 611 ; N acircumflex ; B 40 -15 601 725 ; C -1 ; WX 444 ; N Igrave ; B 29 0 415 964 ; C -1 ; WX 344 ; N twosuperior ; B -3 282 350 705 ; C -1 ; WX 833 ; N Ugrave ; B 14 -15 825 964 ; C -1 ; WX 861 ; N onequarter ; B 31 -15 838 705 ; C -1 ; WX 833 ; N Ucircumflex ; B 14 -15 825 952 ; C -1 ; WX 667 ; N Scaron ; B 51 -15 634 952 ; C -1 ; WX 444 ; N Idieresis ; B 29 0 415 921 ; C -1 ; WX 370 ; N idieresis ; B 7 0 364 694 ; C -1 ; WX 759 ; N Egrave ; B 19 0 708 964 ; C -1 ; WX 833 ; N Oacute ; B 39 -15 794 964 ; C -1 ; WX 606 ; N divide ; B 50 -40 556 546 ; C -1 ; WX 759 ; N Atilde ; B -19 0 778 932 ; C -1 ; WX 759 ; N Aring ; B -19 0 778 988 ; C -1 ; WX 833 ; N Odieresis ; B 39 -15 794 921 ; C -1 ; WX 759 ; N Adieresis ; B -19 0 778 921 ; C -1 ; WX 833 ; N Ntilde ; B 5 -10 828 932 ; C -1 ; WX 667 ; N Zcaron ; B 28 0 639 952 ; C -1 ; WX 759 ; N Thorn ; B 24 0 735 722 ; 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 multiply ; B 65 15 541 491 ; C -1 ; WX 759 ; N Eacute ; B 19 0 708 964 ; C -1 ; WX 722 ; N Ydieresis ; B -12 0 734 921 ; C -1 ; WX 344 ; N onesuperior ; B 31 282 309 705 ; C -1 ; WX 685 ; N ugrave ; B 17 -15 668 737 ; C -1 ; WX 606 ; N logicalnot ; B 50 103 556 403 ; C -1 ; WX 685 ; N ntilde ; B 17 0 662 705 ; C -1 ; WX 833 ; N Otilde ; B 39 -15 794 932 ; C -1 ; WX 611 ; N otilde ; B 32 -15 579 705 ; C -1 ; WX 778 ; N Ccedilla ; B 39 -224 723 737 ; C -1 ; WX 759 ; N Agrave ; B -19 0 778 964 ; C -1 ; WX 861 ; N onehalf ; B 31 -15 838 705 ; C -1 ; WX 833 ; N Eth ; B 19 0 794 722 ; C -1 ; WX 400 ; N degree ; B 57 419 343 705 ; C -1 ; WX 722 ; N Yacute ; B -12 0 734 964 ; C -1 ; WX 833 ; N Ocircumflex ; B 39 -15 794 952 ; C -1 ; WX 611 ; N oacute ; B 32 -15 579 737 ; C -1 ; WX 685 ; N mu ; B 17 -205 668 475 ; C -1 ; WX 606 ; N minus ; B 50 199 556 307 ; C -1 ; WX 611 ; N eth ; B 32 -15 579 737 ; C -1 ; WX 611 ; N odieresis ; B 32 -15 579 694 ; C -1 ; WX 747 ; N copyright ; B -2 -15 750 737 ; C -1 ; WX 606 ; N brokenbar ; B 249 -175 357 675 ; EndCharMetrics StartKernData StartKernPairs 128 KPX A y -18 KPX A w -18 KPX A v -18 KPX A quoteright -74 KPX A quotedblright -74 KPX A Y -91 KPX A W -74 KPX A V -74 KPX A U -18 KPX A T -55 KPX C period -18 KPX C comma -18 KPX D period -25 KPX D comma -25 KPX F r -18 KPX F period -125 KPX F o -55 KPX F i -18 KPX F e -55 KPX F comma -125 KPX F a -74 KPX J u -18 KPX J period -55 KPX J o -18 KPX J e -18 KPX J comma -55 KPX J a -18 KPX J A -18 KPX K y -25 KPX K u -18 KPX L y -25 KPX L quoteright -100 KPX L quotedblright -100 KPX L Y -74 KPX L W -74 KPX L V -100 KPX L T -100 KPX N period -18 KPX N comma -18 KPX O period -25 KPX O comma -25 KPX O T 10 KPX P period -150 KPX P o -55 KPX P e -55 KPX P comma -150 KPX P a -55 KPX P A -74 KPX S period -18 KPX S comma -18 KPX T u -18 KPX T r -18 KPX T period -100 KPX T o -74 KPX T i -18 KPX T hyphen -125 KPX T e -74 KPX T comma -100 KPX T a -74 KPX T O 10 KPX T A -55 KPX U period -25 KPX U comma -25 KPX U A -18 KPX V u -55 KPX V semicolon -37 KPX V period -125 KPX V o -74 KPX V i -18 KPX V hyphen -100 KPX V e -74 KPX V comma -125 KPX V colon -37 KPX V a -74 KPX V A -74 KPX W y -25 KPX W u -37 KPX W semicolon -55 KPX W period -100 KPX W o -74 KPX W i -18 KPX W hyphen -100 KPX W e -74 KPX W comma -100 KPX W colon -55 KPX W a -74 KPX W A -74 KPX Y u -55 KPX Y semicolon -25 KPX Y period -100 KPX Y o -100 KPX Y i -18 KPX Y hyphen -125 KPX Y e -100 KPX Y comma -100 KPX Y colon -25 KPX Y a -100 KPX Y A -91 KPX colon space -18 KPX comma space -18 KPX comma quoteright -18 KPX comma quotedblright -18 KPX f quoteright 75 KPX f quotedblright 75 KPX period space -18 KPX period quoteright -18 KPX period quotedblright -18 KPX quotedblleft A -74 KPX quotedblright space -18 KPX quoteleft A -74 KPX quoteright s -25 KPX quoteright d -25 KPX r period -74 KPX r comma -74 KPX semicolon space -18 KPX space quoteleft -18 KPX space quotedblleft -18 KPX space Y -18 KPX space W -18 KPX space V -18 KPX space T -18 KPX space A -18 KPX v period -100 KPX v comma -100 KPX w period -100 KPX w comma -100 KPX y period -100 KPX y comma -100 EndKernPairs EndKernData StartComposites 56 CC Aacute 2 ; PCC A 0 0 ; PCC acute 213 227 ; CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 213 227 ; CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 213 227 ; CC Agrave 2 ; PCC A 0 0 ; PCC grave 213 227 ; CC Aring 2 ; PCC A 0 0 ; PCC ring 213 227 ; CC Atilde 2 ; PCC A 0 0 ; PCC tilde 213 227 ; CC Eacute 2 ; PCC E 0 0 ; PCC acute 213 227 ; CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 213 227 ; CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 213 227 ; CC Egrave 2 ; PCC E 0 0 ; PCC grave 213 227 ; CC Iacute 2 ; PCC I 0 0 ; PCC acute 56 227 ; CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 56 227 ; CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 56 227 ; CC Igrave 2 ; PCC I 0 0 ; PCC grave 56 227 ; CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 250 227 ; CC Oacute 2 ; PCC O 0 0 ; PCC acute 250 227 ; CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 250 227 ; CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 250 227 ; CC Ograve 2 ; PCC O 0 0 ; PCC grave 250 227 ; CC Otilde 2 ; PCC O 0 0 ; PCC tilde 250 227 ; CC Scaron 2 ; PCC S 0 0 ; PCC caron 167 227 ; CC Uacute 2 ; PCC U 0 0 ; PCC acute 250 227 ; CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 250 227 ; CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 250 227 ; CC Ugrave 2 ; PCC U 0 0 ; PCC grave 250 227 ; CC Yacute 2 ; PCC Y 0 0 ; PCC acute 195 227 ; CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 195 227 ; CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 167 227 ; CC aacute 2 ; PCC a 0 0 ; PCC acute 139 0 ; CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 139 0 ; CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 139 0 ; CC agrave 2 ; PCC a 0 0 ; PCC grave 139 0 ; CC aring 2 ; PCC a 0 0 ; PCC ring 139 0 ; CC atilde 2 ; PCC a 0 0 ; PCC tilde 139 0 ; CC eacute 2 ; PCC e 0 0 ; PCC acute 121 0 ; CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 121 0 ; CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 121 0 ; CC egrave 2 ; PCC e 0 0 ; PCC grave 121 0 ; CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute 19 0 ; CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex 19 0 ; CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis 19 0 ; CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave 19 0 ; CC ntilde 2 ; PCC n 0 0 ; PCC tilde 176 0 ; 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 otilde 2 ; PCC o 0 0 ; PCC tilde 139 0 ; CC scaron 2 ; PCC s 0 0 ; PCC caron 84 0 ; CC uacute 2 ; PCC u 0 0 ; PCC acute 176 0 ; CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 176 0 ; CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 176 0 ; CC ugrave 2 ; PCC u 0 0 ; PCC grave 176 0 ; CC yacute 2 ; PCC y 0 0 ; PCC acute 139 0 ; CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 139 0 ; CC zcaron 2 ; PCC z 0 0 ; PCC caron 102 0 ; EndComposites EndFontMetrics enscript-1.6.5.90/afm/font.map0000644000175000017500000000261311132443251012730 00000000000000AvantGarde-Demi agd AvantGarde-DemiOblique agdo AvantGarde-Book agw AvantGarde-BookOblique agwo Bookman-Demi bkd Bookman-DemiItalic bkdi Bookman-Light bkl Bookman-LightItalic bkli Courier-Bold cob Courier-BoldOblique cobo Courier com Courier-Oblique coo Helvetica hv Helvetica-Bold hvb Helvetica-BoldOblique hvbo Helvetica-Condensed hvc Helvetica-Condensed-Bold hvcb Helvetica-Condensed-BoldObl hvcbo Helvetica-Condensed-Oblique hvcdo Helvetica-Narrow hvn Helvetica-Narrow-Bold hvnb Helvetica-Narrow-BoldOblique hvnbo Helvetica-Narrow-Oblique hvno Helvetica-Oblique hvo Matrix matrix NewCenturySchlbk-Bold ncb NewCenturySchlbk-BoldItalic ncbi NewCenturySchlbk-Italic nci NewCenturySchlbk-Roman ncr Palatino-Bold pob Palatino-BoldItalic pobi Palatino-Italic poi Palatino-Roman por Symbol sy Times-Bold tib Times-BoldItalic tibi Times-Italic tii Times-Roman tir ZapfChancery-MediumItalic zcmi ZapfDingbats zd enscript-1.6.5.90/afm/hvnbo.afm0000644000175000017500000004254611132443251013075 00000000000000StartFontMetrics 2.0 Comment Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Thu Mar 15 12:08:57 1990 Comment UniqueID 28407 Comment VMusage 7614 43068 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 001.007 Notice Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All Rights Reserved.Helvetica is a trademark of Linotype AG and/or its subsidiaries. EncodingScheme AdobeStandardEncoding CapHeight 718 XHeight 532 Ascender 718 Descender -207 StartCharMetrics 228 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 102 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 615 718 ; C 85 ; WX 592 ; N U ; B 96 -19 659 718 ; C 86 ; WX 547 ; N V ; B 141 0 656 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 20 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 66 -19 289 737 ; 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 132 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 75 276 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 75 276 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 501 ; N Zcaron ; B 20 0 604 936 ; C -1 ; WX 456 ; N ccedilla ; B 65 -228 491 546 ; C -1 ; WX 456 ; N ydieresis ; B 34 -214 535 729 ; C -1 ; WX 456 ; N atilde ; B 45 -14 507 737 ; C -1 ; WX 228 ; N icircumflex ; B 57 0 364 750 ; C -1 ; WX 273 ; N threesuperior ; B 75 271 361 710 ; C -1 ; WX 456 ; N ecircumflex ; B 58 -14 486 750 ; C -1 ; WX 501 ; N thorn ; B 15 -208 529 718 ; C -1 ; WX 456 ; N egrave ; B 58 -14 486 750 ; C -1 ; WX 273 ; N twosuperior ; B 57 283 368 710 ; C -1 ; WX 456 ; N eacute ; B 58 -14 514 750 ; C -1 ; WX 501 ; N otilde ; B 67 -14 529 737 ; C -1 ; WX 592 ; N Aacute ; B 16 0 615 936 ; C -1 ; WX 501 ; N ocircumflex ; B 67 -14 527 750 ; C -1 ; WX 456 ; N yacute ; B 34 -214 535 750 ; C -1 ; WX 501 ; N udieresis ; B 80 -14 540 729 ; C -1 ; WX 684 ; N threequarters ; B 82 -19 688 710 ; C -1 ; WX 456 ; N acircumflex ; B 45 -14 478 750 ; C -1 ; WX 592 ; N Eth ; B 51 0 637 718 ; C -1 ; WX 456 ; N edieresis ; B 58 -14 487 729 ; C -1 ; WX 501 ; N ugrave ; B 80 -14 540 750 ; C -1 ; WX 820 ; N trademark ; B 146 306 909 718 ; C -1 ; WX 501 ; N ograve ; B 67 -14 527 750 ; C -1 ; WX 456 ; N scaron ; B 52 -14 504 750 ; C -1 ; WX 228 ; N Idieresis ; B 52 0 405 915 ; C -1 ; WX 501 ; N uacute ; B 80 -14 540 750 ; C -1 ; WX 456 ; N agrave ; B 45 -14 478 750 ; C -1 ; WX 501 ; N ntilde ; B 53 0 529 737 ; C -1 ; WX 456 ; N aring ; B 45 -14 478 776 ; C -1 ; WX 410 ; N zcaron ; B 16 0 481 750 ; C -1 ; WX 228 ; N Icircumflex ; B 52 0 397 936 ; C -1 ; WX 592 ; N Ntilde ; B 57 0 661 923 ; C -1 ; WX 501 ; N ucircumflex ; B 80 -14 540 750 ; C -1 ; WX 547 ; N Ecircumflex ; B 62 0 620 936 ; C -1 ; WX 228 ; N Iacute ; B 52 0 433 936 ; C -1 ; WX 592 ; N Ccedilla ; B 88 -228 647 737 ; C -1 ; WX 638 ; N Odieresis ; B 88 -19 675 915 ; C -1 ; WX 547 ; N Scaron ; B 66 -19 588 936 ; C -1 ; WX 547 ; N Edieresis ; B 62 0 620 915 ; C -1 ; WX 228 ; N Igrave ; B 52 0 301 936 ; C -1 ; WX 456 ; N adieresis ; B 45 -14 487 729 ; C -1 ; WX 638 ; N Ograve ; B 88 -19 675 936 ; C -1 ; WX 547 ; N Egrave ; B 62 0 620 936 ; C -1 ; WX 547 ; N Ydieresis ; B 137 0 661 915 ; C -1 ; WX 604 ; N registered ; B 45 -19 684 737 ; C -1 ; WX 638 ; N Otilde ; B 88 -19 675 923 ; C -1 ; WX 684 ; N onequarter ; B 108 -19 661 710 ; C -1 ; WX 592 ; N Ugrave ; B 96 -19 659 936 ; C -1 ; WX 592 ; N Ucircumflex ; B 96 -19 659 936 ; C -1 ; WX 547 ; N Thorn ; B 62 0 588 718 ; C -1 ; WX 479 ; N divide ; B 67 -42 500 548 ; C -1 ; WX 592 ; N Atilde ; B 16 0 608 923 ; C -1 ; WX 592 ; N Uacute ; B 96 -19 659 936 ; C -1 ; WX 638 ; N Ocircumflex ; B 88 -19 675 936 ; C -1 ; WX 479 ; N logicalnot ; B 86 108 519 419 ; C -1 ; WX 592 ; N Aring ; B 16 0 576 962 ; C -1 ; WX 228 ; N idieresis ; B 57 0 373 729 ; C -1 ; WX 228 ; N iacute ; B 57 0 400 750 ; C -1 ; WX 456 ; N aacute ; B 45 -14 514 750 ; C -1 ; WX 479 ; N plusminus ; B 33 0 512 506 ; C -1 ; WX 479 ; N multiply ; B 47 1 520 505 ; C -1 ; WX 592 ; N Udieresis ; B 96 -19 659 915 ; C -1 ; WX 479 ; N minus ; B 67 197 500 309 ; C -1 ; WX 273 ; N onesuperior ; B 121 283 318 710 ; C -1 ; WX 547 ; N Eacute ; B 62 0 620 936 ; C -1 ; WX 592 ; N Acircumflex ; B 16 0 579 936 ; C -1 ; WX 604 ; N copyright ; B 46 -19 685 737 ; C -1 ; WX 592 ; N Agrave ; B 16 0 576 936 ; C -1 ; WX 501 ; N odieresis ; B 67 -14 527 729 ; C -1 ; WX 501 ; N oacute ; B 67 -14 537 750 ; C -1 ; WX 328 ; N degree ; B 143 426 383 712 ; C -1 ; WX 228 ; N igrave ; B 57 0 268 750 ; C -1 ; WX 501 ; N mu ; B 18 -207 540 532 ; C -1 ; WX 638 ; N Oacute ; B 88 -19 675 936 ; C -1 ; WX 501 ; N eth ; B 67 -14 549 737 ; C -1 ; WX 592 ; N Adieresis ; B 16 0 588 915 ; C -1 ; WX 547 ; N Yacute ; B 137 0 661 936 ; C -1 ; WX 230 ; N brokenbar ; B 66 -19 289 737 ; C -1 ; WX 684 ; N onehalf ; B 108 -19 704 710 ; EndCharMetrics StartKernData StartKernPairs 209 KPX A y -30 KPX A w -30 KPX A v -40 KPX A u -30 KPX A Y -110 KPX A W -60 KPX A V -80 KPX A U -50 KPX A T -90 KPX A Q -40 KPX A O -40 KPX A G -50 KPX A C -40 KPX B U -10 KPX B A -30 KPX D period -30 KPX D comma -30 KPX D Y -70 KPX D W -40 KPX D V -40 KPX D A -40 KPX F period -100 KPX F comma -100 KPX F a -20 KPX F A -80 KPX J u -20 KPX J period -20 KPX J comma -20 KPX J A -20 KPX K y -40 KPX K u -30 KPX K o -35 KPX K e -15 KPX K O -30 KPX L y -30 KPX L quoteright -140 KPX L quotedblright -140 KPX L Y -120 KPX L W -80 KPX L V -110 KPX L T -90 KPX O period -40 KPX O comma -40 KPX O Y -70 KPX O X -50 KPX O W -50 KPX O V -50 KPX O T -40 KPX O A -50 KPX P period -120 KPX P o -40 KPX P e -30 KPX P comma -120 KPX P a -30 KPX P A -100 KPX Q period 20 KPX Q comma 20 KPX Q U -10 KPX R Y -50 KPX R W -40 KPX R V -50 KPX R U -20 KPX R T -20 KPX R O -20 KPX T y -60 KPX T w -60 KPX T u -90 KPX T semicolon -40 KPX T r -80 KPX T period -80 KPX T o -80 KPX T hyphen -120 KPX T e -60 KPX T comma -80 KPX T colon -40 KPX T a -80 KPX T O -40 KPX T A -90 KPX U period -30 KPX U comma -30 KPX U A -50 KPX V u -60 KPX V semicolon -40 KPX V period -120 KPX V o -90 KPX V hyphen -80 KPX V e -50 KPX V comma -120 KPX V colon -40 KPX V a -60 KPX V O -50 KPX V G -50 KPX V A -80 KPX W y -20 KPX W u -45 KPX W semicolon -10 KPX W period -80 KPX W o -60 KPX W hyphen -40 KPX W e -35 KPX W comma -80 KPX W colon -10 KPX W a -40 KPX W O -20 KPX W A -60 KPX Y u -100 KPX Y semicolon -50 KPX Y period -100 KPX Y o -100 KPX Y e -80 KPX Y comma -100 KPX Y colon -50 KPX Y a -90 KPX Y O -70 KPX Y A -110 KPX a y -20 KPX a w -15 KPX a v -15 KPX a g -10 KPX b y -20 KPX b v -20 KPX b u -20 KPX b l -10 KPX c y -10 KPX c l -20 KPX c k -20 KPX c h -10 KPX colon space -40 KPX comma space -40 KPX comma quoteright -120 KPX comma quotedblright -120 KPX d y -15 KPX d w -15 KPX d v -15 KPX d d -10 KPX e y -15 KPX e x -15 KPX e w -15 KPX e v -15 KPX e period 20 KPX e comma 10 KPX f quoteright 30 KPX f quotedblright 30 KPX f period -10 KPX f o -20 KPX f e -10 KPX f comma -10 KPX g g -10 KPX g e 10 KPX h y -20 KPX k o -15 KPX l y -15 KPX l w -15 KPX m y -30 KPX m u -20 KPX n y -20 KPX n v -40 KPX n u -10 KPX o y -20 KPX o x -30 KPX o w -15 KPX o v -20 KPX p y -15 KPX period space -40 KPX period quoteright -120 KPX period quotedblright -120 KPX quotedblright space -80 KPX quoteleft quoteleft -46 KPX quoteright v -20 KPX quoteright space -80 KPX quoteright s -60 KPX quoteright r -40 KPX quoteright quoteright -46 KPX quoteright l -20 KPX quoteright d -80 KPX r y 10 KPX r v 10 KPX r t 20 KPX r s -15 KPX r q -20 KPX r period -60 KPX r o -20 KPX r hyphen -20 KPX r g -15 KPX r d -20 KPX r comma -60 KPX r c -20 KPX s w -15 KPX semicolon space -40 KPX space quoteleft -60 KPX space quotedblleft -80 KPX space Y -120 KPX space W -80 KPX space V -80 KPX space T -100 KPX v period -80 KPX v o -30 KPX v comma -80 KPX v a -20 KPX w period -40 KPX w o -20 KPX w comma -40 KPX x e -10 KPX y period -80 KPX y o -25 KPX y e -10 KPX y comma -80 KPX y a -30 KPX z e 10 EndKernPairs EndKernData StartComposites 58 CC Aacute 2 ; PCC A 0 0 ; PCC acute 192 186 ; CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 192 186 ; CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 192 186 ; CC Agrave 2 ; PCC A 0 0 ; PCC grave 192 186 ; CC Aring 2 ; PCC A 0 0 ; PCC ring 192 186 ; CC Atilde 2 ; PCC A 0 0 ; PCC tilde 192 186 ; CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 176 0 ; CC Eacute 2 ; PCC E 0 0 ; PCC acute 169 186 ; CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 169 186 ; CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 169 186 ; CC Egrave 2 ; PCC E 0 0 ; PCC grave 169 186 ; CC Iacute 2 ; PCC I 0 0 ; PCC acute 10 186 ; CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 10 186 ; CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 10 186 ; CC Igrave 2 ; PCC I 0 0 ; PCC grave 10 186 ; CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 192 186 ; CC Oacute 2 ; PCC O 0 0 ; PCC acute 215 186 ; CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 215 186 ; CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 215 186 ; CC Ograve 2 ; PCC O 0 0 ; PCC grave 215 186 ; CC Otilde 2 ; PCC O 0 0 ; PCC tilde 215 186 ; CC Scaron 2 ; PCC S 0 0 ; PCC caron 169 186 ; CC Uacute 2 ; PCC U 0 0 ; PCC acute 192 186 ; CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 192 186 ; CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 192 186 ; CC Ugrave 2 ; PCC U 0 0 ; PCC grave 192 186 ; CC Yacute 2 ; PCC Y 0 0 ; PCC acute 169 186 ; CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 169 186 ; CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 146 186 ; CC aacute 2 ; PCC a 0 0 ; PCC acute 92 0 ; CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 92 0 ; CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 92 0 ; CC agrave 2 ; PCC a 0 0 ; PCC grave 92 0 ; CC aring 2 ; PCC a 0 0 ; PCC ring 92 0 ; CC atilde 2 ; PCC a 0 0 ; PCC tilde 92 0 ; CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 108 0 ; CC eacute 2 ; PCC e 0 0 ; PCC acute 92 0 ; CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 92 0 ; CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 92 0 ; CC egrave 2 ; PCC e 0 0 ; PCC grave 92 0 ; CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -22 0 ; CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -22 0 ; CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -22 0 ; CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -22 0 ; CC ntilde 2 ; PCC n 0 0 ; PCC tilde 114 0 ; CC oacute 2 ; PCC o 0 0 ; PCC acute 114 0 ; CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 114 0 ; CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 114 0 ; CC ograve 2 ; PCC o 0 0 ; PCC grave 114 0 ; CC otilde 2 ; PCC o 0 0 ; PCC tilde 114 0 ; CC scaron 2 ; PCC s 0 0 ; PCC caron 92 0 ; CC uacute 2 ; PCC u 0 0 ; PCC acute 114 0 ; CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 114 0 ; CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 114 0 ; CC ugrave 2 ; PCC u 0 0 ; PCC grave 114 0 ; CC yacute 2 ; PCC y 0 0 ; PCC acute 92 0 ; CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 92 0 ; CC zcaron 2 ; PCC z 0 0 ; PCC caron 69 0 ; EndComposites EndFontMetrics enscript-1.6.5.90/afm/ChangeLog.old0000644000175000017500000000224411401303365013612 000000000000002008-02-03 Tim Retout * Makefile.am (install-data-local): Remove. (uninstall-local): Likewise. (EXTRA_DIST): Likewise. (afmdir): New variable for location of afm files. (dist_afm_DATA): New variable with previous contents of EXTRA_DIST. 2008-01-29 Tim Retout * Makefile.am (install-data-local): Prefix install paths with $(DESTDIR) so as not to break `make distcheck'. (uninstall-local): Likewise. 2008-01-01 Tim Retout * ChangeLog: Add copyright notice at end. 1999-04-12 Markku Rossi * matrix.pfa: Added the `Matrix' font to support matrix printers ;-) Thanks to Tero Kivinen. 1998-10-23 Markku Rossi * Makefile.am: Changed to install the afm files to `PREFIX/share/enscript/afm/' directory. 1998-06-11 Markku Rossi * Back to the basics. We distribute only the AFM files for the standard 35 PostScript fonts. Copyright (C) 1998, 1999, 2008 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. enscript-1.6.5.90/afm/tib.afm0000644000175000017500000004431011132443251012526 00000000000000StartFontMetrics 2.0 Comment Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Tue Mar 20 12:17:14 1990 Comment UniqueID 28417 Comment VMusage 30458 37350 FontName Times-Bold FullName Times Bold FamilyName Times Weight Bold ItalicAngle 0 IsFixedPitch false FontBBox -168 -218 1000 935 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 676 XHeight 461 Ascender 676 Descender -205 StartCharMetrics 228 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 -19 154 691 ; 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 537 230 667 ; 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 -173 319 44 ; 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 667 ; N Zcaron ; B 28 0 634 914 ; C -1 ; WX 444 ; N ccedilla ; B 25 -218 430 473 ; C -1 ; WX 500 ; N ydieresis ; B 16 -205 480 667 ; C -1 ; WX 500 ; N atilde ; B 25 -14 488 674 ; C -1 ; WX 278 ; N icircumflex ; B -36 0 301 704 ; C -1 ; WX 300 ; N threesuperior ; B 3 268 297 688 ; C -1 ; WX 444 ; N ecircumflex ; B 25 -14 426 704 ; C -1 ; WX 556 ; N thorn ; B 19 -205 524 676 ; C -1 ; WX 444 ; N egrave ; B 25 -14 426 713 ; C -1 ; WX 300 ; N twosuperior ; B 0 275 300 688 ; C -1 ; WX 444 ; N eacute ; B 25 -14 426 713 ; C -1 ; WX 500 ; N otilde ; B 25 -14 476 674 ; C -1 ; WX 722 ; N Aacute ; B 9 0 689 923 ; C -1 ; WX 500 ; N ocircumflex ; B 25 -14 476 704 ; C -1 ; WX 500 ; N yacute ; B 16 -205 480 713 ; C -1 ; WX 556 ; N udieresis ; B 16 -14 537 667 ; C -1 ; WX 750 ; N threequarters ; B 23 -12 733 688 ; C -1 ; WX 500 ; N acircumflex ; B 25 -14 488 704 ; C -1 ; WX 722 ; N Eth ; B 6 0 690 676 ; C -1 ; WX 444 ; N edieresis ; B 25 -14 426 667 ; C -1 ; WX 556 ; N ugrave ; B 16 -14 537 713 ; C -1 ; WX 1000 ; N trademark ; B 24 271 977 676 ; C -1 ; WX 500 ; N ograve ; B 25 -14 476 713 ; C -1 ; WX 389 ; N scaron ; B 25 -14 363 704 ; C -1 ; WX 389 ; N Idieresis ; B 20 0 370 877 ; C -1 ; WX 556 ; N uacute ; B 16 -14 537 713 ; C -1 ; WX 500 ; N agrave ; B 25 -14 488 713 ; C -1 ; WX 556 ; N ntilde ; B 21 0 539 674 ; C -1 ; WX 500 ; N aring ; B 25 -14 488 740 ; C -1 ; WX 444 ; N zcaron ; B 21 0 420 704 ; C -1 ; WX 389 ; N Icircumflex ; B 20 0 370 914 ; C -1 ; WX 722 ; N Ntilde ; B 16 -18 701 884 ; C -1 ; WX 556 ; N ucircumflex ; B 16 -14 537 704 ; C -1 ; WX 667 ; N Ecircumflex ; B 16 0 641 914 ; C -1 ; WX 389 ; N Iacute ; B 20 0 370 923 ; C -1 ; WX 722 ; N Ccedilla ; B 49 -218 687 691 ; C -1 ; WX 778 ; N Odieresis ; B 35 -19 743 877 ; C -1 ; WX 556 ; N Scaron ; B 35 -19 513 914 ; C -1 ; WX 667 ; N Edieresis ; B 16 0 641 877 ; C -1 ; WX 389 ; N Igrave ; B 20 0 370 923 ; C -1 ; WX 500 ; N adieresis ; B 25 -14 488 667 ; C -1 ; WX 778 ; N Ograve ; B 35 -19 743 923 ; C -1 ; WX 667 ; N Egrave ; B 16 0 641 923 ; C -1 ; WX 722 ; N Ydieresis ; B 15 0 699 877 ; C -1 ; WX 747 ; N registered ; B 26 -19 721 691 ; C -1 ; WX 778 ; N Otilde ; B 35 -19 743 884 ; C -1 ; WX 750 ; N onequarter ; B 28 -12 743 688 ; C -1 ; WX 722 ; N Ugrave ; B 16 -19 701 923 ; C -1 ; WX 722 ; N Ucircumflex ; B 16 -19 701 914 ; C -1 ; WX 611 ; N Thorn ; B 16 0 600 676 ; C -1 ; WX 570 ; N divide ; B 33 -31 537 537 ; C -1 ; WX 722 ; N Atilde ; B 9 0 689 884 ; C -1 ; WX 722 ; N Uacute ; B 16 -19 701 923 ; C -1 ; WX 778 ; N Ocircumflex ; B 35 -19 743 914 ; C -1 ; WX 570 ; N logicalnot ; B 33 108 537 399 ; C -1 ; WX 722 ; N Aring ; B 9 0 689 935 ; C -1 ; WX 278 ; N idieresis ; B -36 0 301 667 ; C -1 ; WX 278 ; N iacute ; B 16 0 290 713 ; C -1 ; WX 500 ; N aacute ; B 25 -14 488 713 ; C -1 ; WX 570 ; N plusminus ; B 33 0 537 506 ; C -1 ; WX 570 ; N multiply ; B 48 16 522 490 ; C -1 ; WX 722 ; N Udieresis ; B 16 -19 701 877 ; C -1 ; WX 570 ; N minus ; B 33 209 537 297 ; C -1 ; WX 300 ; N onesuperior ; B 28 275 273 688 ; C -1 ; WX 667 ; N Eacute ; B 16 0 641 923 ; C -1 ; WX 722 ; N Acircumflex ; B 9 0 689 914 ; C -1 ; WX 747 ; N copyright ; B 26 -19 721 691 ; C -1 ; WX 722 ; N Agrave ; B 9 0 689 923 ; C -1 ; WX 500 ; N odieresis ; B 25 -14 476 667 ; C -1 ; WX 500 ; N oacute ; B 25 -14 476 713 ; C -1 ; WX 400 ; N degree ; B 57 402 343 688 ; C -1 ; WX 278 ; N igrave ; B -26 0 255 713 ; C -1 ; WX 556 ; N mu ; B 33 -206 536 461 ; C -1 ; WX 778 ; N Oacute ; B 35 -19 743 923 ; C -1 ; WX 500 ; N eth ; B 25 -14 476 691 ; C -1 ; WX 722 ; N Adieresis ; B 9 0 689 877 ; C -1 ; WX 722 ; N Yacute ; B 15 0 699 928 ; C -1 ; WX 220 ; N brokenbar ; B 66 -19 154 691 ; C -1 ; WX 750 ; N onehalf ; B -7 -12 775 688 ; EndCharMetrics StartKernData StartKernPairs 283 KPX A y -74 KPX A w -90 KPX A v -100 KPX A u -50 KPX A quoteright -74 KPX A quotedblright 0 KPX A p -25 KPX A Y -100 KPX A W -130 KPX A V -145 KPX A U -50 KPX A T -95 KPX A Q -45 KPX A O -45 KPX A G -55 KPX A C -55 KPX B period 0 KPX B comma 0 KPX B U -10 KPX B A -30 KPX D period -20 KPX D comma 0 KPX D Y -40 KPX D W -40 KPX D V -40 KPX D A -35 KPX F r 0 KPX F period -110 KPX F o -25 KPX F i 0 KPX F e -25 KPX F comma -92 KPX F a -25 KPX F A -90 KPX G period 0 KPX G comma 0 KPX J u -15 KPX J period -20 KPX J o -15 KPX J e -15 KPX J comma 0 KPX J a -15 KPX J A -30 KPX K y -45 KPX K u -15 KPX K o -25 KPX K e -25 KPX K O -30 KPX L y -55 KPX L quoteright -110 KPX L quotedblright -20 KPX L Y -92 KPX L W -92 KPX L V -92 KPX L T -92 KPX N period 0 KPX N comma 0 KPX N A -20 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 -40 KPX P period -110 KPX P o -20 KPX P e -20 KPX P comma -92 KPX P a -10 KPX P A -74 KPX Q period -20 KPX Q comma 0 KPX Q U -10 KPX R Y -35 KPX R W -35 KPX R V -55 KPX R U -30 KPX R T -40 KPX R O -30 KPX S period 0 KPX S comma 0 KPX T y -74 KPX T w -74 KPX T u -92 KPX T semicolon -74 KPX T r -74 KPX T period -90 KPX T o -92 KPX T i -18 KPX T hyphen -92 KPX T h 0 KPX T e -92 KPX T comma -74 KPX T colon -74 KPX T a -92 KPX T O -18 KPX T A -90 KPX U period -50 KPX U comma -50 KPX U A -60 KPX V u -92 KPX V semicolon -92 KPX V period -145 KPX V o -100 KPX V i -37 KPX V hyphen -74 KPX V e -100 KPX V comma -129 KPX V colon -92 KPX V a -92 KPX V O -45 KPX V G -30 KPX V A -135 KPX W y -60 KPX W u -50 KPX W semicolon -55 KPX W period -92 KPX W o -75 KPX W i -18 KPX W hyphen -37 KPX W h 0 KPX W e -65 KPX W comma -92 KPX W colon -55 KPX W a -65 KPX W O -10 KPX W A -120 KPX Y u -92 KPX Y semicolon -92 KPX Y period -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 -85 KPX Y O -35 KPX Y A -110 KPX a y 0 KPX a w 0 KPX a v -25 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 -10 KPX c y 0 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 -55 KPX comma quotedblright -45 KPX d y 0 KPX d w -15 KPX d v 0 KPX d period 0 KPX d d 0 KPX d comma 0 KPX e y 0 KPX e x 0 KPX e w 0 KPX e v -15 KPX e period 0 KPX e p 0 KPX e g 0 KPX e comma 0 KPX e b 0 KPX f quoteright 55 KPX f quotedblright 50 KPX f period -15 KPX f o -25 KPX f l 0 KPX f i -25 KPX f f 0 KPX f e 0 KPX f dotlessi -35 KPX f comma -15 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 0 KPX g e 0 KPX g comma 0 KPX g a 0 KPX h y -15 KPX i v -10 KPX k y -15 KPX k o -15 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 -10 KPX o v -10 KPX o g 0 KPX p y 0 KPX period quoteright -55 KPX period quotedblright -55 KPX quotedblleft quoteleft 0 KPX quotedblleft A -10 KPX quotedblright space 0 KPX quoteleft quoteleft -63 KPX quoteleft A -10 KPX quoteright v -20 KPX quoteright t 0 KPX quoteright space -74 KPX quoteright s -37 KPX quoteright r -20 KPX quoteright quoteright -63 KPX quoteright quotedblright 0 KPX quoteright l 0 KPX quoteright d -20 KPX r y 0 KPX r v -10 KPX r u 0 KPX r t 0 KPX r s 0 KPX r r 0 KPX r q -18 KPX r period -100 KPX r p -10 KPX r o -18 KPX r n -15 KPX r m 0 KPX r l 0 KPX r k 0 KPX r i 0 KPX r hyphen -37 KPX r g -10 KPX r e -18 KPX r d 0 KPX r comma -92 KPX r c -18 KPX r a 0 KPX s w 0 KPX space quoteleft 0 KPX space quotedblleft 0 KPX space Y -55 KPX space W -30 KPX space V -45 KPX space T -30 KPX space A -55 KPX v period -70 KPX v o -10 KPX v e -10 KPX v comma -55 KPX v a -10 KPX w period -70 KPX w o -10 KPX w h 0 KPX w e 0 KPX w comma -55 KPX w a 0 KPX x e 0 KPX y period -70 KPX y o -25 KPX y e -10 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 188 210 ; CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 188 210 ; CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 188 210 ; CC Agrave 2 ; PCC A 0 0 ; PCC grave 188 210 ; CC Aring 2 ; PCC A 0 0 ; PCC ring 180 195 ; CC Atilde 2 ; PCC A 0 0 ; PCC tilde 188 210 ; CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 208 0 ; CC Eacute 2 ; PCC E 0 0 ; PCC acute 174 210 ; CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 174 210 ; CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 174 210 ; CC Egrave 2 ; PCC E 0 0 ; PCC grave 174 210 ; CC Iacute 2 ; PCC I 0 0 ; PCC acute 28 210 ; CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 28 210 ; CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 28 210 ; CC Igrave 2 ; PCC I 0 0 ; PCC grave 28 210 ; CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 195 210 ; CC Oacute 2 ; PCC O 0 0 ; PCC acute 223 210 ; CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 223 210 ; CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 223 210 ; CC Ograve 2 ; PCC O 0 0 ; PCC grave 223 210 ; CC Otilde 2 ; PCC O 0 0 ; PCC tilde 223 210 ; CC Scaron 2 ; PCC S 0 0 ; PCC caron 112 210 ; CC Uacute 2 ; PCC U 0 0 ; PCC acute 222 210 ; CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 222 210 ; CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 222 210 ; CC Ugrave 2 ; PCC U 0 0 ; PCC grave 222 210 ; CC Yacute 2 ; PCC Y 0 0 ; PCC acute 210 215 ; CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 215 210 ; CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 167 210 ; CC aacute 2 ; PCC a 0 0 ; PCC acute 77 0 ; CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 77 0 ; CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 77 0 ; CC agrave 2 ; PCC a 0 0 ; PCC grave 77 0 ; CC aring 2 ; PCC a 0 0 ; PCC ring 77 0 ; CC atilde 2 ; PCC a 0 0 ; PCC tilde 77 0 ; CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 69 0 ; CC eacute 2 ; PCC e 0 0 ; PCC acute 62 0 ; CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 62 0 ; CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 62 0 ; CC egrave 2 ; PCC e 0 0 ; PCC grave 62 0 ; 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 ntilde 2 ; PCC n 0 0 ; PCC tilde 112 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 105 0 ; CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 105 0 ; CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 105 0 ; CC ugrave 2 ; PCC u 0 0 ; PCC grave 105 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 enscript-1.6.5.90/afm/com.afm0000644000175000017500000003650411132443251012534 00000000000000StartFontMetrics 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 enscript-1.6.5.90/afm/pobi.afm0000644000175000017500000003757411132443251012717 00000000000000StartFontMetrics 2.0 Comment Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Mon Jul 2 22:48:39 1990 Comment UniqueID 31799 Comment VMusage 37656 48548 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 001.005 Notice Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All Rights Reserved.Palatino is a trademark of Linotype AG and/or its subsidiaries. EncodingScheme AdobeStandardEncoding CapHeight 681 XHeight 469 Ascender 726 Descender -271 StartCharMetrics 228 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 0 347 720 ; 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 510 415 684 ; C 196 ; WX 333 ; N tilde ; B 82 535 441 654 ; 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 537 325 668 ; C 200 ; WX 333 ; N dieresis ; B 90 537 426 668 ; 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 32 -206 238 -17 ; C 207 ; WX 333 ; N caron ; B 113 510 445 684 ; 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 667 ; N Zcaron ; B 1 -3 676 896 ; C -1 ; WX 444 ; N ccedilla ; B 32 -218 436 469 ; C -1 ; WX 556 ; N ydieresis ; B 13 -271 541 688 ; C -1 ; WX 556 ; N atilde ; B 44 -17 553 666 ; C -1 ; WX 333 ; N icircumflex ; B 26 -17 403 704 ; C -1 ; WX 300 ; N threesuperior ; B 23 263 310 683 ; C -1 ; WX 444 ; N ecircumflex ; B 28 -17 471 704 ; C -1 ; WX 556 ; N thorn ; B -21 -271 516 726 ; C -1 ; WX 444 ; N egrave ; B 28 -17 418 719 ; C -1 ; WX 300 ; N twosuperior ; B 26 271 321 683 ; C -1 ; WX 444 ; N eacute ; B 28 -17 448 719 ; C -1 ; WX 556 ; N otilde ; B 48 -17 553 666 ; C -1 ; WX 722 ; N Aacute ; B -35 -3 685 911 ; C -1 ; WX 556 ; N ocircumflex ; B 48 -17 515 704 ; C -1 ; WX 556 ; N yacute ; B 13 -271 541 719 ; C -1 ; WX 556 ; N udieresis ; B 22 -17 538 688 ; C -1 ; WX 750 ; N threequarters ; B 18 -2 732 683 ; C -1 ; WX 556 ; N acircumflex ; B 44 -17 527 704 ; C -1 ; WX 778 ; N Eth ; B 0 -3 747 682 ; C -1 ; WX 444 ; N edieresis ; B 28 -17 482 688 ; C -1 ; WX 556 ; N ugrave ; B 22 -17 521 719 ; C -1 ; WX 1000 ; N trademark ; B 38 274 961 678 ; C -1 ; WX 556 ; N ograve ; B 48 -17 502 719 ; C -1 ; WX 444 ; N scaron ; B 25 -17 489 692 ; C -1 ; WX 389 ; N Idieresis ; B -1 -3 454 880 ; C -1 ; WX 556 ; N uacute ; B 22 -17 521 719 ; C -1 ; WX 556 ; N agrave ; B 44 -17 519 719 ; C -1 ; WX 556 ; N ntilde ; B 17 -17 553 666 ; C -1 ; WX 556 ; N aring ; B 44 -17 519 714 ; C -1 ; WX 500 ; N zcaron ; B 31 -17 517 692 ; C -1 ; WX 389 ; N Icircumflex ; B -1 -3 443 896 ; C -1 ; WX 778 ; N Ntilde ; B -2 -3 829 866 ; C -1 ; WX 556 ; N ucircumflex ; B 22 -17 521 704 ; C -1 ; WX 611 ; N Ecircumflex ; B 11 -3 606 896 ; C -1 ; WX 389 ; N Iacute ; B -1 -3 420 911 ; C -1 ; WX 685 ; N Ccedilla ; B 69 -218 695 695 ; C -1 ; WX 833 ; N Odieresis ; B 76 -17 794 880 ; C -1 ; WX 556 ; N Scaron ; B 50 -17 557 896 ; C -1 ; WX 611 ; N Edieresis ; B 11 -3 606 880 ; C -1 ; WX 389 ; N Igrave ; B -1 -3 412 911 ; C -1 ; WX 556 ; N adieresis ; B 44 -17 538 688 ; C -1 ; WX 833 ; N Ograve ; B 76 -17 794 911 ; C -1 ; WX 611 ; N Egrave ; B 11 -3 606 911 ; C -1 ; WX 611 ; N Ydieresis ; B 54 -3 675 880 ; C -1 ; WX 747 ; N registered ; B 26 -17 720 695 ; C -1 ; WX 833 ; N Otilde ; B 76 -17 794 866 ; C -1 ; WX 750 ; N onequarter ; B 18 -2 732 683 ; C -1 ; WX 778 ; N Ugrave ; B 83 -17 825 911 ; C -1 ; WX 778 ; N Ucircumflex ; B 83 -17 825 896 ; C -1 ; WX 667 ; N Thorn ; B 11 -3 644 681 ; C -1 ; WX 606 ; N divide ; B 50 -5 556 501 ; C -1 ; WX 722 ; N Atilde ; B -35 -3 685 866 ; C -1 ; WX 778 ; N Uacute ; B 83 -17 825 911 ; C -1 ; WX 833 ; N Ocircumflex ; B 76 -17 794 896 ; C -1 ; WX 606 ; N logicalnot ; B 51 107 555 390 ; C -1 ; WX 722 ; N Aring ; B -35 -3 685 926 ; C -1 ; WX 333 ; N idieresis ; B 26 -17 426 688 ; C -1 ; WX 333 ; N iacute ; B 26 -17 392 719 ; C -1 ; WX 556 ; N aacute ; B 44 -17 519 719 ; C -1 ; WX 606 ; N plusminus ; B 50 0 556 501 ; C -1 ; WX 606 ; N multiply ; B 72 17 534 479 ; C -1 ; WX 778 ; N Udieresis ; B 83 -17 825 880 ; C -1 ; WX 606 ; N minus ; B 51 204 555 292 ; C -1 ; WX 300 ; N onesuperior ; B 41 271 298 680 ; C -1 ; WX 611 ; N Eacute ; B 11 -3 606 911 ; C -1 ; WX 722 ; N Acircumflex ; B -35 -3 685 896 ; C -1 ; WX 747 ; N copyright ; B 26 -17 720 695 ; C -1 ; WX 722 ; N Agrave ; B -35 -3 685 911 ; C -1 ; WX 556 ; N odieresis ; B 48 -17 538 688 ; C -1 ; WX 556 ; N oacute ; B 48 -17 504 719 ; C -1 ; WX 400 ; N degree ; B 50 383 350 683 ; C -1 ; WX 333 ; N igrave ; B 26 -17 322 719 ; C -1 ; WX 556 ; N mu ; B -15 -232 521 469 ; C -1 ; WX 833 ; N Oacute ; B 76 -17 794 911 ; C -1 ; WX 556 ; N eth ; B 48 -17 546 726 ; C -1 ; WX 722 ; N Adieresis ; B -35 -3 685 880 ; C -1 ; WX 611 ; N Yacute ; B 54 -3 675 911 ; C -1 ; WX 606 ; N brokenbar ; B 259 0 347 720 ; C -1 ; WX 750 ; N onehalf ; B 14 -2 736 683 ; EndCharMetrics StartKernData StartKernPairs 108 KPX A y -55 KPX A w -37 KPX A v -55 KPX A space -55 KPX A quoteright -55 KPX A Y -74 KPX A W -74 KPX A V -74 KPX A T -55 KPX F space -18 KPX F period -111 KPX F comma -111 KPX F A -74 KPX L y -37 KPX L space -18 KPX L quoteright -55 KPX L Y -74 KPX L W -74 KPX L V -74 KPX L T -74 KPX P space -55 KPX P period -129 KPX P comma -129 KPX P A -92 KPX R y -20 KPX R Y -37 KPX R W -55 KPX R V -55 KPX R T -37 KPX T y -80 KPX T w -50 KPX T u -92 KPX T semicolon -55 KPX T s -92 KPX T r -92 KPX T period -55 KPX T o -111 KPX T i -74 KPX T hyphen -92 KPX T e -111 KPX T comma -55 KPX T colon -55 KPX T c -92 KPX T a -111 KPX T O -18 KPX T A -55 KPX V y -50 KPX V u -50 KPX V semicolon -37 KPX V r -74 KPX V period -111 KPX V o -74 KPX V i -50 KPX V hyphen -37 KPX V e -74 KPX V comma -111 KPX V colon -37 KPX V a -92 KPX V A -74 KPX W y -30 KPX W u -30 KPX W semicolon -18 KPX W r -30 KPX W period -55 KPX W o -55 KPX W i -30 KPX W e -55 KPX W comma -55 KPX W colon -28 KPX W a -74 KPX W A -74 KPX Y v -30 KPX Y u -50 KPX Y semicolon -55 KPX Y q -92 KPX Y period -55 KPX Y p -74 KPX Y o -111 KPX Y i -54 KPX Y hyphen -55 KPX Y e -92 KPX Y comma -55 KPX Y colon -55 KPX Y a -111 KPX Y A -55 KPX f quoteright 37 KPX f f -37 KPX one one -55 KPX quoteleft quoteleft -55 KPX quoteright t -18 KPX quoteright space -37 KPX quoteright s -37 KPX quoteright quoteright -55 KPX r quoteright 55 KPX r q -18 KPX r period -55 KPX r o -18 KPX r h -18 KPX r g -18 KPX r e -18 KPX r comma -55 KPX r c -18 KPX v period -55 KPX v comma -55 KPX w period -55 KPX w comma -55 KPX y period -37 KPX y comma -37 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 83 212 ; CC Atilde 2 ; PCC A 0 0 ; PCC tilde 195 212 ; CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 176 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 28 212 ; CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 28 212 ; CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 28 212 ; CC Igrave 2 ; PCC I 0 0 ; PCC grave 28 212 ; CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 223 212 ; CC Oacute 2 ; PCC O 0 0 ; PCC acute 250 212 ; CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 250 212 ; CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 250 212 ; CC Ograve 2 ; PCC O 0 0 ; PCC grave 250 212 ; CC Otilde 2 ; PCC O 0 0 ; PCC tilde 250 212 ; CC Scaron 2 ; PCC S 0 0 ; PCC caron 112 212 ; CC Uacute 2 ; PCC U 0 0 ; PCC acute 223 212 ; CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 223 212 ; CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 223 212 ; CC Ugrave 2 ; PCC U 0 0 ; PCC grave 211 212 ; CC Yacute 2 ; PCC Y 0 0 ; PCC acute 151 212 ; CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 139 212 ; CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 167 212 ; CC aacute 2 ; PCC a 0 0 ; PCC acute 112 20 ; CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 112 20 ; CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 112 20 ; CC agrave 2 ; PCC a 0 0 ; PCC grave 112 20 ; CC aring 2 ; PCC a 0 0 ; PCC ring 0 0 ; CC atilde 2 ; PCC a 0 0 ; PCC tilde 112 12 ; CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 56 0 ; CC eacute 2 ; PCC e 0 0 ; PCC acute 56 20 ; CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 56 20 ; CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 56 20 ; CC egrave 2 ; PCC e 0 0 ; PCC grave 56 20 ; CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute 0 20 ; CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -12 20 ; CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis 0 20 ; CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave 0 20 ; CC ntilde 2 ; PCC n 0 0 ; PCC tilde 112 12 ; CC oacute 2 ; PCC o 0 0 ; PCC acute 112 20 ; CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 100 20 ; CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 112 20 ; CC ograve 2 ; PCC o 0 0 ; PCC grave 112 20 ; CC otilde 2 ; PCC o 0 0 ; PCC tilde 112 12 ; CC scaron 2 ; PCC s 0 0 ; PCC caron 44 8 ; CC uacute 2 ; PCC u 0 0 ; PCC acute 112 20 ; CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 100 20 ; CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 112 20 ; CC ugrave 2 ; PCC u 0 0 ; PCC grave 112 20 ; CC yacute 2 ; PCC y 0 0 ; PCC acute 112 20 ; CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 112 20 ; CC zcaron 2 ; PCC z 0 0 ; PCC caron 72 8 ; EndComposites EndFontMetrics enscript-1.6.5.90/afm/hvcbo.afm0000644000175000017500000003660511132443251013061 00000000000000StartFontMetrics 2.0 Comment Copyright (c) 1985, 1987, 1991 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Wed Sep 4 17:46:28 1991 Comment UniqueID 36191 Comment VMusage 8125 43764 FontName Helvetica-Condensed-BoldObl FullName Helvetica Condensed Bold Oblique FamilyName Helvetica Weight Bold ItalicAngle -12 IsFixedPitch false FontBBox -169 -250 1141 991 UnderlinePosition -100 UnderlineThickness 50 Version 001.004 Notice Copyright (c) 1985, 1987, 1991 Adobe Systems Incorporated. All Rights Reserved.Helvetica is a trademark of Linotype-Hell AG and/or its subsidiaries. EncodingScheme AdobeStandardEncoding CapHeight 750 XHeight 564 Ascender 750 Descender -189 StartCharMetrics 228 C 32 ; WX 250 ; N space ; B 0 0 0 0 ; C 33 ; WX 333 ; N exclam ; B 102 0 390 750 ; C 34 ; WX 333 ; N quotedbl ; B 115 468 475 739 ; C 35 ; WX 500 ; N numbersign ; B 81 0 580 738 ; C 36 ; WX 500 ; N dollar ; B 68 -124 576 803 ; C 37 ; WX 833 ; N percent ; B 138 -15 853 750 ; C 38 ; WX 667 ; N ampersand ; B 101 -18 676 768 ; C 39 ; WX 278 ; N quoteright ; B 183 479 361 750 ; C 40 ; WX 333 ; N parenleft ; B 91 -198 442 768 ; C 41 ; WX 333 ; N parenright ; B 12 -198 363 768 ; C 42 ; WX 500 ; N asterisk ; B 203 412 546 738 ; C 43 ; WX 500 ; N plus ; B 67 0 540 492 ; C 44 ; WX 333 ; N comma ; B 70 -145 261 132 ; C 45 ; WX 333 ; N hyphen ; B 102 255 365 370 ; C 46 ; WX 333 ; N period ; B 101 0 261 132 ; C 47 ; WX 278 ; N slash ; B -31 -94 471 750 ; C 48 ; WX 500 ; N zero ; B 82 -15 576 753 ; C 49 ; WX 500 ; N one ; B 155 0 512 750 ; C 50 ; WX 500 ; N two ; B 32 0 577 753 ; C 51 ; WX 500 ; N three ; B 61 -15 563 753 ; C 52 ; WX 500 ; N four ; B 55 0 563 738 ; C 53 ; WX 500 ; N five ; B 72 -15 581 738 ; C 54 ; WX 500 ; N six ; B 83 -15 575 753 ; C 55 ; WX 500 ; N seven ; B 126 0 611 738 ; C 56 ; WX 500 ; N eight ; B 76 -15 570 753 ; C 57 ; WX 500 ; N nine ; B 84 -15 575 753 ; C 58 ; WX 278 ; N colon ; B 73 0 323 556 ; C 59 ; WX 278 ; N semicolon ; B 42 -145 323 556 ; C 60 ; WX 500 ; N less ; B 85 -24 571 527 ; C 61 ; WX 500 ; N equal ; B 46 96 560 401 ; C 62 ; WX 500 ; N greater ; B 37 -24 523 527 ; C 63 ; WX 500 ; N question ; B 147 0 569 768 ; C 64 ; WX 833 ; N at ; B 109 -18 897 768 ; C 65 ; WX 556 ; N A ; B 9 0 547 750 ; C 66 ; WX 556 ; N B ; B 65 0 615 750 ; C 67 ; WX 556 ; N C ; B 99 -18 630 768 ; C 68 ; WX 611 ; N D ; B 72 0 662 750 ; C 69 ; WX 500 ; N E ; B 64 0 617 750 ; C 70 ; WX 500 ; N F ; B 73 0 629 750 ; C 71 ; WX 611 ; N G ; B 99 -18 664 768 ; C 72 ; WX 611 ; N H ; B 68 0 703 750 ; C 73 ; WX 278 ; N I ; B 69 0 368 750 ; C 74 ; WX 444 ; N J ; B 36 -18 543 750 ; C 75 ; WX 556 ; N K ; B 68 0 697 750 ; C 76 ; WX 500 ; N L ; B 68 0 491 750 ; C 77 ; WX 778 ; N M ; B 67 0 871 750 ; C 78 ; WX 611 ; N N ; B 68 0 702 750 ; C 79 ; WX 611 ; N O ; B 105 -18 664 768 ; C 80 ; WX 556 ; N P ; B 68 0 651 750 ; C 81 ; WX 611 ; N Q ; B 105 -71 664 768 ; C 82 ; WX 611 ; N R ; B 66 0 671 750 ; C 83 ; WX 556 ; N S ; B 85 -18 613 768 ; C 84 ; WX 500 ; N T ; B 153 0 643 750 ; C 85 ; WX 611 ; N U ; B 105 -18 703 750 ; C 86 ; WX 556 ; N V ; B 180 0 695 750 ; C 87 ; WX 833 ; N W ; B 167 0 969 750 ; C 88 ; WX 556 ; N X ; B 11 0 698 750 ; C 89 ; WX 556 ; N Y ; B 171 0 704 750 ; C 90 ; WX 500 ; N Z ; B 33 0 618 750 ; C 91 ; WX 333 ; N bracketleft ; B 61 -94 439 750 ; C 92 ; WX 250 ; N backslash ; B 70 0 340 750 ; C 93 ; WX 333 ; N bracketright ; B 33 -94 411 750 ; C 94 ; WX 500 ; N asciicircum ; B 89 326 569 750 ; C 95 ; WX 500 ; N underscore ; B -27 -125 484 -75 ; C 96 ; WX 278 ; N quoteleft ; B 181 495 360 766 ; C 97 ; WX 500 ; N a ; B 68 -15 525 579 ; C 98 ; WX 500 ; N b ; B 64 -15 534 750 ; C 99 ; WX 444 ; N c ; B 79 -15 496 579 ; C 100 ; WX 500 ; N d ; B 83 -15 592 750 ; C 101 ; WX 500 ; N e ; B 88 -15 530 579 ; C 102 ; WX 278 ; N f ; B 71 0 416 750 ; L i fi ; L l fl ; C 103 ; WX 500 ; N g ; B 44 -190 553 579 ; C 104 ; WX 500 ; N h ; B 61 0 539 750 ; C 105 ; WX 278 ; N i ; B 74 0 363 750 ; C 106 ; WX 278 ; N j ; B -9 -192 368 750 ; C 107 ; WX 444 ; N k ; B 48 0 563 750 ; C 108 ; WX 278 ; N l ; B 74 0 363 750 ; C 109 ; WX 778 ; N m ; B 66 0 812 579 ; C 110 ; WX 500 ; N n ; B 61 0 539 579 ; C 111 ; WX 500 ; N o ; B 88 -15 531 579 ; C 112 ; WX 500 ; N p ; B 18 -189 528 579 ; C 113 ; WX 500 ; N q ; B 80 -188 550 579 ; C 114 ; WX 333 ; N r ; B 60 0 441 574 ; C 115 ; WX 444 ; N s ; B 56 -15 498 579 ; C 116 ; WX 278 ; N t ; B 83 -7 372 719 ; C 117 ; WX 500 ; N u ; B 78 -15 551 564 ; C 118 ; WX 444 ; N v ; B 130 0 554 564 ; C 119 ; WX 667 ; N w ; B 127 0 765 564 ; C 120 ; WX 444 ; N x ; B 8 0 553 564 ; C 121 ; WX 444 ; N y ; B 36 -195 549 564 ; C 122 ; WX 389 ; N z ; B 23 0 487 564 ; C 123 ; WX 274 ; N braceleft ; B 37 -92 399 750 ; C 124 ; WX 250 ; N bar ; B 22 -250 334 750 ; C 125 ; WX 274 ; N braceright ; B 14 -94 375 750 ; C 126 ; WX 500 ; N asciitilde ; B 74 153 536 359 ; C 161 ; WX 333 ; N exclamdown ; B 66 -170 355 579 ; C 162 ; WX 500 ; N cent ; B 103 -122 521 671 ; C 163 ; WX 500 ; N sterling ; B 52 -15 603 768 ; C 164 ; WX 167 ; N fraction ; B -169 0 488 738 ; C 165 ; WX 500 ; N yen ; B 89 0 677 750 ; C 166 ; WX 500 ; N florin ; B -28 -185 651 763 ; C 167 ; WX 500 ; N section ; B 48 -183 572 768 ; C 168 ; WX 500 ; N currency ; B 38 58 594 560 ; C 169 ; WX 250 ; N quotesingle ; B 165 468 342 739 ; C 170 ; WX 500 ; N quotedblleft ; B 192 495 568 766 ; C 171 ; WX 500 ; N guillemotleft ; B 117 62 514 447 ; C 172 ; WX 278 ; N guilsinglleft ; B 101 62 310 447 ; C 173 ; WX 278 ; N guilsinglright ; B 76 62 285 447 ; C 174 ; WX 500 ; N fi ; B 60 0 605 750 ; C 175 ; WX 500 ; N fl ; B 60 0 602 750 ; C 177 ; WX 500 ; N endash ; B 55 259 578 369 ; C 178 ; WX 500 ; N dagger ; B 127 -155 577 768 ; C 179 ; WX 500 ; N daggerdbl ; B 51 -161 579 768 ; C 180 ; WX 333 ; N periodcentered ; B 140 183 300 315 ; C 182 ; WX 550 ; N paragraph ; B 139 -116 685 750 ; C 183 ; WX 420 ; N bullet ; B 97 186 482 562 ; C 184 ; WX 278 ; N quotesinglbase ; B 58 -138 235 132 ; C 185 ; WX 500 ; N quotedblbase ; B 67 -138 441 132 ; C 186 ; WX 500 ; N quotedblright ; B 197 479 572 750 ; C 187 ; WX 500 ; N guillemotright ; B 94 62 491 447 ; C 188 ; WX 1000 ; N ellipsis ; B 101 0 927 132 ; C 189 ; WX 1111 ; N perthousand ; B 128 -18 1141 748 ; C 191 ; WX 500 ; N questiondown ; B 54 -190 476 579 ; C 193 ; WX 333 ; N grave ; B 166 629 384 775 ; C 194 ; WX 333 ; N acute ; B 217 629 497 775 ; C 195 ; WX 333 ; N circumflex ; B 127 644 480 790 ; C 196 ; WX 333 ; N tilde ; B 119 636 512 764 ; C 197 ; WX 333 ; N macron ; B 136 666 497 740 ; C 198 ; WX 333 ; N breve ; B 161 635 501 780 ; C 199 ; WX 333 ; N dotaccent ; B 240 644 391 759 ; C 200 ; WX 333 ; N dieresis ; B 142 644 489 759 ; C 202 ; WX 333 ; N ring ; B 215 632 432 845 ; C 203 ; WX 333 ; N cedilla ; B -4 -228 248 0 ; C 205 ; WX 333 ; N hungarumlaut ; B 118 634 613 780 ; C 206 ; WX 333 ; N ogonek ; B 63 -205 256 0 ; C 207 ; WX 333 ; N caron ; B 156 634 509 780 ; C 208 ; WX 1000 ; N emdash ; B 55 259 1078 369 ; C 225 ; WX 778 ; N AE ; B -22 0 909 750 ; C 227 ; WX 300 ; N ordfeminine ; B 127 412 421 768 ; C 232 ; WX 500 ; N Lslash ; B 49 0 497 750 ; C 233 ; WX 611 ; N Oslash ; B 34 -38 736 779 ; C 234 ; WX 833 ; N OE ; B 111 -18 951 768 ; C 235 ; WX 300 ; N ordmasculine ; B 133 412 417 768 ; C 241 ; WX 722 ; N ae ; B 69 -15 762 579 ; C 245 ; WX 278 ; N dotlessi ; B 74 0 324 564 ; C 248 ; WX 278 ; N lslash ; B 68 0 391 750 ; C 249 ; WX 500 ; N oslash ; B 2 -58 616 617 ; C 250 ; WX 722 ; N oe ; B 81 -15 763 579 ; C 251 ; WX 500 ; N germandbls ; B 60 -15 561 768 ; C -1 ; WX 500 ; N ecircumflex ; B 88 -15 560 770 ; C -1 ; WX 500 ; N edieresis ; B 88 -15 573 759 ; C -1 ; WX 500 ; N aacute ; B 68 -15 581 775 ; C -1 ; WX 830 ; N registered ; B 93 -18 897 768 ; C -1 ; WX 278 ; N icircumflex ; B 74 0 439 770 ; C -1 ; WX 500 ; N udieresis ; B 78 -15 573 759 ; C -1 ; WX 500 ; N ograve ; B 88 -15 531 775 ; C -1 ; WX 500 ; N uacute ; B 78 -15 581 775 ; C -1 ; WX 500 ; N ucircumflex ; B 78 -15 562 780 ; C -1 ; WX 556 ; N Aacute ; B 9 0 648 961 ; C -1 ; WX 278 ; N igrave ; B 74 0 357 775 ; C -1 ; WX 278 ; N Icircumflex ; B 69 0 488 956 ; C -1 ; WX 444 ; N ccedilla ; B 66 -228 496 579 ; C -1 ; WX 500 ; N adieresis ; B 68 -15 573 759 ; C -1 ; WX 500 ; N Ecircumflex ; B 64 0 617 956 ; C -1 ; WX 444 ; N scaron ; B 56 -15 551 760 ; C -1 ; WX 500 ; N thorn ; B 18 -189 529 750 ; C -1 ; WX 860 ; N trademark ; B 144 346 933 750 ; C -1 ; WX 500 ; N egrave ; B 88 -15 530 775 ; C -1 ; WX 300 ; N threesuperior ; B 96 290 416 751 ; C -1 ; WX 389 ; N zcaron ; B 23 0 533 760 ; C -1 ; WX 500 ; N atilde ; B 68 -15 592 744 ; C -1 ; WX 500 ; N aring ; B 68 -15 525 835 ; C -1 ; WX 500 ; N ocircumflex ; B 88 -15 560 770 ; C -1 ; WX 500 ; N Edieresis ; B 64 0 617 945 ; C -1 ; WX 750 ; N threequarters ; B 96 0 816 751 ; C -1 ; WX 444 ; N ydieresis ; B 36 -195 549 759 ; C -1 ; WX 444 ; N yacute ; B 36 -195 553 775 ; C -1 ; WX 278 ; N iacute ; B 74 0 470 775 ; C -1 ; WX 556 ; N Acircumflex ; B 9 0 617 956 ; C -1 ; WX 611 ; N Uacute ; B 105 -18 703 961 ; C -1 ; WX 500 ; N eacute ; B 88 -15 581 775 ; C -1 ; WX 611 ; N Ograve ; B 105 -18 664 961 ; C -1 ; WX 500 ; N agrave ; B 68 -15 525 775 ; C -1 ; WX 611 ; N Udieresis ; B 105 -18 703 945 ; C -1 ; WX 500 ; N acircumflex ; B 68 -15 560 770 ; C -1 ; WX 278 ; N Igrave ; B 69 0 396 961 ; C -1 ; WX 300 ; N twosuperior ; B 77 300 425 752 ; C -1 ; WX 611 ; N Ugrave ; B 105 -18 703 961 ; C -1 ; WX 750 ; N onequarter ; B 131 0 788 750 ; C -1 ; WX 611 ; N Ucircumflex ; B 105 -18 703 956 ; C -1 ; WX 556 ; N Scaron ; B 85 -18 656 946 ; C -1 ; WX 278 ; N Idieresis ; B 69 0 502 945 ; C -1 ; WX 278 ; N idieresis ; B 74 0 462 759 ; C -1 ; WX 500 ; N Egrave ; B 64 0 617 961 ; C -1 ; WX 611 ; N Oacute ; B 105 -18 675 961 ; C -1 ; WX 500 ; N divide ; B 67 6 540 492 ; C -1 ; WX 556 ; N Atilde ; B 9 0 660 930 ; C -1 ; WX 556 ; N Aring ; B 9 0 575 991 ; C -1 ; WX 611 ; N Odieresis ; B 105 -18 668 945 ; C -1 ; WX 556 ; N Adieresis ; B 9 0 641 945 ; C -1 ; WX 611 ; N Ntilde ; B 68 0 702 930 ; C -1 ; WX 500 ; N Zcaron ; B 33 0 628 946 ; C -1 ; WX 556 ; N Thorn ; B 68 0 625 750 ; C -1 ; WX 278 ; N Iacute ; B 69 0 509 961 ; C -1 ; WX 500 ; N plusminus ; B 23 -15 556 513 ; C -1 ; WX 500 ; N multiply ; B 48 22 560 476 ; C -1 ; WX 500 ; N Eacute ; B 64 0 620 961 ; C -1 ; WX 556 ; N Ydieresis ; B 171 0 704 945 ; C -1 ; WX 300 ; N onesuperior ; B 180 300 410 750 ; C -1 ; WX 500 ; N ugrave ; B 78 -15 551 775 ; C -1 ; WX 500 ; N logicalnot ; B 88 105 560 401 ; C -1 ; WX 500 ; N ntilde ; B 61 0 592 744 ; C -1 ; WX 611 ; N Otilde ; B 105 -18 687 930 ; C -1 ; WX 500 ; N otilde ; B 88 -15 592 744 ; C -1 ; WX 556 ; N Ccedilla ; B 99 -228 630 768 ; C -1 ; WX 556 ; N Agrave ; B 9 0 547 961 ; C -1 ; WX 750 ; N onehalf ; B 108 0 813 750 ; C -1 ; WX 611 ; N Eth ; B 72 0 662 750 ; C -1 ; WX 400 ; N degree ; B 174 450 481 750 ; C -1 ; WX 556 ; N Yacute ; B 171 0 704 961 ; C -1 ; WX 611 ; N Ocircumflex ; B 105 -18 664 956 ; C -1 ; WX 500 ; N oacute ; B 88 -15 581 775 ; C -1 ; WX 500 ; N mu ; B 18 -189 551 564 ; C -1 ; WX 500 ; N minus ; B 67 194 540 304 ; C -1 ; WX 500 ; N eth ; B 88 -15 540 779 ; C -1 ; WX 500 ; N odieresis ; B 88 -15 573 759 ; C -1 ; WX 830 ; N copyright ; B 93 -18 897 768 ; C -1 ; WX 250 ; N brokenbar ; B 38 -175 318 675 ; EndCharMetrics StartKernData StartKernPairs 88 KPX A y -18 KPX A w -18 KPX A v -18 KPX A quoteright -55 KPX A Y -55 KPX A W -37 KPX A V -37 KPX A T -55 KPX F period -111 KPX F comma -111 KPX F A -37 KPX L y -37 KPX L quoteright -92 KPX L Y -92 KPX L W -74 KPX L V -74 KPX L T -74 KPX P period -129 KPX P comma -129 KPX P A -37 KPX R Y -18 KPX R T -18 KPX T y -55 KPX T w -74 KPX T u -74 KPX T semicolon -74 KPX T s -74 KPX T r -74 KPX T period -92 KPX T o -74 KPX T i -18 KPX T hyphen -55 KPX T e -74 KPX T comma -92 KPX T colon -74 KPX T c -74 KPX T a -74 KPX T A -55 KPX V u -18 KPX V semicolon -18 KPX V r -18 KPX V period -92 KPX V o -18 KPX V hyphen -18 KPX V e -18 KPX V comma -92 KPX V colon -18 KPX V a -18 KPX V A -37 KPX W period -74 KPX W o -18 KPX W hyphen -18 KPX W e -18 KPX W comma -74 KPX W a -18 KPX W A -18 KPX Y v -18 KPX Y u -37 KPX Y semicolon -37 KPX Y q -55 KPX Y period -111 KPX Y p -37 KPX Y o -55 KPX Y i -18 KPX Y hyphen -74 KPX Y e -55 KPX Y comma -111 KPX Y colon -37 KPX Y a -55 KPX Y A -55 KPX f quoteright 18 KPX quoteleft quoteleft -18 KPX quoteright s -55 KPX quoteright quoteright -18 KPX r z 20 KPX r y 18 KPX r x 20 KPX r w 18 KPX r v 18 KPX r period -74 KPX r hyphen -37 KPX r comma -74 KPX v period -55 KPX v comma -55 KPX w period -37 KPX w comma -37 KPX y period -55 KPX y comma -55 EndKernPairs EndKernData StartComposites 56 CC Aacute 2 ; PCC A 0 0 ; PCC acute 152 186 ; CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 137 166 ; CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 152 186 ; CC Agrave 2 ; PCC A 0 0 ; PCC grave 152 186 ; CC Aring 2 ; PCC A 0 0 ; PCC ring 143 146 ; CC Atilde 2 ; PCC A 0 0 ; PCC tilde 147 166 ; CC Eacute 2 ; PCC E 0 0 ; PCC acute 124 186 ; CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 119 166 ; CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 124 186 ; CC Egrave 2 ; PCC E 0 0 ; PCC grave 124 186 ; CC Iacute 2 ; PCC I 0 0 ; PCC acute 13 186 ; CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 8 166 ; CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 13 186 ; CC Igrave 2 ; PCC I 0 0 ; PCC grave 13 186 ; CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 174 166 ; CC Oacute 2 ; PCC O 0 0 ; PCC acute 179 186 ; CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 174 166 ; CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 179 186 ; CC Ograve 2 ; PCC O 0 0 ; PCC grave 179 186 ; CC Otilde 2 ; PCC O 0 0 ; PCC tilde 174 166 ; CC Scaron 2 ; PCC S 0 0 ; PCC caron 147 166 ; CC Uacute 2 ; PCC U 0 0 ; PCC acute 179 186 ; CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 174 166 ; CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 179 186 ; CC Ugrave 2 ; PCC U 0 0 ; PCC grave 179 186 ; CC Yacute 2 ; PCC Y 0 0 ; PCC acute 152 186 ; CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 152 186 ; CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 119 166 ; CC aacute 2 ; PCC a 0 0 ; PCC acute 84 0 ; CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 80 -20 ; 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 67 -10 ; CC atilde 2 ; PCC a 0 0 ; PCC tilde 80 -20 ; CC eacute 2 ; PCC e 0 0 ; PCC acute 84 0 ; CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 80 -20 ; CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 84 0 ; CC egrave 2 ; PCC e 0 0 ; PCC grave 84 0 ; CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -27 0 ; CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -41 -20 ; 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 80 -20 ; CC oacute 2 ; PCC o 0 0 ; PCC acute 84 0 ; CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 80 -20 ; 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 80 -20 ; CC scaron 2 ; PCC s 0 0 ; PCC caron 42 -20 ; CC uacute 2 ; PCC u 0 0 ; PCC acute 84 0 ; CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 82 -10 ; 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 56 0 ; CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 56 0 ; CC zcaron 2 ; PCC z 0 0 ; PCC caron 24 -20 ; EndComposites EndFontMetrics enscript-1.6.5.90/afm/bkli.afm0000644000175000017500000003635011132443251012676 00000000000000StartFontMetrics 2.0 Comment Copyright (c) 1985, 1987, 1989, 1992 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Tue Jan 21 16:12:06 1992 Comment UniqueID 37830 Comment VMusage 33139 40031 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 001.004 Notice Copyright (c) 1985, 1987, 1989, 1992 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 -212 StartCharMetrics 228 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 698 ; 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 620 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 717 ; C 124 ; WX 600 ; N bar ; B 294 -250 372 750 ; C 125 ; WX 380 ; N braceright ; B 13 -191 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 178 551 373 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 169 543 290 664 ; C 200 ; WX 420 ; N dieresis ; B 185 569 467 688 ; 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 167 547 402 738 ; C 206 ; WX 260 ; N ogonek ; B 51 -173 184 0 ; C 207 ; WX 440 ; N caron ; B 178 571 481 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 50 -8 398 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 540 ; N ecircumflex ; B 65 -8 575 685 ; C -1 ; WX 540 ; N edieresis ; B 65 -8 575 688 ; C -1 ; WX 620 ; N aacute ; B 71 -8 686 706 ; C -1 ; WX 740 ; N registered ; B 84 -17 784 698 ; C -1 ; WX 280 ; N icircumflex ; B 76 -8 379 685 ; C -1 ; WX 620 ; N udieresis ; B 88 -8 686 688 ; C -1 ; WX 540 ; N ograve ; B 65 -8 572 706 ; C -1 ; WX 620 ; N uacute ; B 88 -8 686 706 ; C -1 ; WX 620 ; N ucircumflex ; B 88 -8 686 685 ; C -1 ; WX 700 ; N Aacute ; B -25 0 720 883 ; C -1 ; WX 280 ; N igrave ; B 88 -8 351 706 ; C -1 ; WX 320 ; N Icircumflex ; B 21 0 449 862 ; C -1 ; WX 480 ; N ccedilla ; B 65 -178 522 494 ; C -1 ; WX 620 ; N adieresis ; B 71 -8 686 688 ; C -1 ; WX 680 ; N Ecircumflex ; B 21 0 736 862 ; C -1 ; WX 540 ; N scaron ; B 65 -8 547 684 ; C -1 ; WX 600 ; N thorn ; B -24 -212 620 717 ; C -1 ; WX 980 ; N trademark ; B 69 277 965 681 ; C -1 ; WX 540 ; N egrave ; B 65 -8 575 706 ; C -1 ; WX 372 ; N threesuperior ; B 70 269 439 698 ; C -1 ; WX 520 ; N zcaron ; B 38 -8 561 684 ; C -1 ; WX 620 ; N atilde ; B 71 -8 686 671 ; C -1 ; WX 620 ; N aring ; B 71 -8 686 706 ; C -1 ; WX 540 ; N ocircumflex ; B 65 -8 572 685 ; C -1 ; WX 680 ; N Edieresis ; B 21 0 736 865 ; C -1 ; WX 930 ; N threequarters ; B 99 0 913 691 ; C -1 ; WX 600 ; N ydieresis ; B 60 -221 609 688 ; C -1 ; WX 600 ; N yacute ; B 60 -221 609 706 ; C -1 ; WX 280 ; N iacute ; B 88 -8 351 706 ; C -1 ; WX 700 ; N Acircumflex ; B -25 0 720 862 ; C -1 ; WX 720 ; N Uacute ; B 118 -17 842 883 ; C -1 ; WX 540 ; N eacute ; B 65 -8 575 706 ; C -1 ; WX 760 ; N Ograve ; B 88 -17 799 883 ; C -1 ; WX 620 ; N agrave ; B 71 -8 686 706 ; C -1 ; WX 720 ; N Udieresis ; B 118 -17 842 865 ; C -1 ; WX 620 ; N acircumflex ; B 71 -8 686 685 ; C -1 ; WX 320 ; N Igrave ; B 21 0 412 883 ; C -1 ; WX 372 ; N twosuperior ; B 68 279 439 698 ; C -1 ; WX 720 ; N Ugrave ; B 118 -17 842 883 ; C -1 ; WX 930 ; N onequarter ; B 91 0 913 681 ; C -1 ; WX 720 ; N Ucircumflex ; B 118 -17 842 862 ; C -1 ; WX 640 ; N Scaron ; B 61 -17 668 861 ; C -1 ; WX 320 ; N Idieresis ; B 21 0 447 865 ; C -1 ; WX 280 ; N idieresis ; B 88 -8 377 688 ; C -1 ; WX 680 ; N Egrave ; B 21 0 736 883 ; C -1 ; WX 760 ; N Oacute ; B 88 -17 799 883 ; C -1 ; WX 600 ; N divide ; B 91 46 595 548 ; C -1 ; WX 700 ; N Atilde ; B -25 0 720 848 ; C -1 ; WX 700 ; N Aring ; B -25 0 720 883 ; C -1 ; WX 760 ; N Odieresis ; B 88 -17 799 865 ; C -1 ; WX 700 ; N Adieresis ; B -25 0 720 865 ; C -1 ; WX 720 ; N Ntilde ; B 18 0 823 848 ; C -1 ; WX 580 ; N Zcaron ; B 8 0 695 861 ; C -1 ; WX 600 ; N Thorn ; B 21 0 656 681 ; C -1 ; WX 320 ; N Iacute ; B 21 0 412 883 ; C -1 ; WX 600 ; N plusminus ; B 91 0 595 548 ; C -1 ; WX 600 ; N multiply ; B 91 44 595 548 ; C -1 ; WX 680 ; N Eacute ; B 21 0 736 883 ; C -1 ; WX 660 ; N Ydieresis ; B 87 0 809 865 ; C -1 ; WX 372 ; N onesuperior ; B 114 279 339 688 ; C -1 ; WX 620 ; N ugrave ; B 88 -8 686 706 ; C -1 ; WX 600 ; N logicalnot ; B 91 163 595 433 ; C -1 ; WX 620 ; N ntilde ; B 88 -8 673 671 ; C -1 ; WX 760 ; N Otilde ; B 88 -17 799 848 ; C -1 ; WX 540 ; N otilde ; B 65 -8 572 671 ; C -1 ; WX 720 ; N Ccedilla ; B 88 -178 746 698 ; C -1 ; WX 700 ; N Agrave ; B -25 0 720 883 ; C -1 ; WX 930 ; N onehalf ; B 91 0 925 681 ; C -1 ; WX 740 ; N Eth ; B 21 0 782 681 ; C -1 ; WX 400 ; N degree ; B 120 398 420 698 ; C -1 ; WX 660 ; N Yacute ; B 87 0 809 883 ; C -1 ; WX 760 ; N Ocircumflex ; B 88 -17 799 862 ; C -1 ; WX 540 ; N oacute ; B 65 -8 572 706 ; C -1 ; WX 620 ; N mu ; B 53 -221 686 484 ; C -1 ; WX 600 ; N minus ; B 91 259 595 335 ; C -1 ; WX 540 ; N eth ; B 65 -8 642 725 ; C -1 ; WX 540 ; N odieresis ; B 65 -8 572 688 ; C -1 ; WX 740 ; N copyright ; B 84 -17 784 698 ; C -1 ; WX 600 ; N brokenbar ; B 294 -175 372 675 ; EndCharMetrics StartKernData StartKernPairs 85 KPX A Y -62 KPX A W -73 KPX A V -78 KPX A T -5 KPX F period -97 KPX F comma -98 KPX F A -16 KPX L y 20 KPX L Y 7 KPX L W 9 KPX L V 4 KPX P period -105 KPX P comma -106 KPX P A -30 KPX R Y 11 KPX R W 2 KPX R V 2 KPX R T 65 KPX T semicolon 48 KPX T s -7 KPX T r 67 KPX T period -78 KPX T o 14 KPX T i 71 KPX T hyphen 20 KPX T e 10 KPX T comma -79 KPX T colon 48 KPX T c 16 KPX T a 9 KPX T A -14 KPX V y -14 KPX V u -10 KPX V semicolon -44 KPX V r -20 KPX V period -100 KPX V o -70 KPX V i 3 KPX V hyphen 20 KPX V e -70 KPX V comma -109 KPX V colon -35 KPX V a -70 KPX V A -70 KPX W y -14 KPX W u -20 KPX W semicolon -42 KPX W r -30 KPX W period -100 KPX W o -60 KPX W i 3 KPX W hyphen 20 KPX W e -60 KPX W comma -109 KPX W colon -35 KPX W a -60 KPX W A -60 KPX Y v -19 KPX Y u -31 KPX Y semicolon -40 KPX Y q -72 KPX Y period -100 KPX Y p -37 KPX Y o -75 KPX Y i -11 KPX Y hyphen 20 KPX Y e -78 KPX Y comma -109 KPX Y colon -35 KPX Y a -79 KPX Y A -82 KPX f f -19 KPX r q -14 KPX r period -134 KPX r o -10 KPX r n 38 KPX r m 37 KPX r hyphen 20 KPX r h -20 KPX r g -3 KPX r f -9 KPX r e -15 KPX r d -9 KPX r comma -143 KPX r c -8 EndKernPairs EndKernData StartComposites 56 CC Aacute 2 ; PCC A 0 0 ; PCC acute 200 177 ; CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 130 177 ; CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 140 177 ; CC Agrave 2 ; PCC A 0 0 ; PCC grave 160 177 ; CC Aring 2 ; PCC A 0 0 ; PCC ring 220 177 ; CC Atilde 2 ; PCC A 0 0 ; PCC tilde 130 177 ; CC Eacute 2 ; PCC E 0 0 ; PCC acute 210 177 ; CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 140 177 ; CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 150 177 ; CC Egrave 2 ; PCC E 0 0 ; PCC grave 150 177 ; CC Iacute 2 ; PCC I 0 0 ; PCC acute 30 177 ; CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex -30 177 ; CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis -20 177 ; CC Igrave 2 ; PCC I 0 0 ; PCC grave -30 177 ; CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 130 177 ; CC Oacute 2 ; PCC O 0 0 ; PCC acute 250 177 ; CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 190 177 ; CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 200 177 ; CC Ograve 2 ; PCC O 0 0 ; PCC grave 210 177 ; CC Otilde 2 ; PCC O 0 0 ; PCC tilde 190 177 ; CC Scaron 2 ; PCC S 0 0 ; PCC caron 100 177 ; CC Uacute 2 ; PCC U 0 0 ; PCC acute 230 177 ; CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 170 177 ; CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 180 177 ; CC Ugrave 2 ; PCC U 0 0 ; PCC grave 170 177 ; CC Yacute 2 ; PCC Y 0 0 ; PCC acute 200 177 ; CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 140 177 ; CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 70 177 ; CC aacute 2 ; PCC a 0 0 ; PCC acute 120 0 ; CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 70 0 ; CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 80 0 ; CC agrave 2 ; PCC a 0 0 ; PCC grave 110 0 ; CC aring 2 ; PCC a 0 0 ; PCC ring 140 0 ; CC atilde 2 ; PCC a 0 0 ; PCC tilde 60 0 ; CC eacute 2 ; PCC e 0 0 ; PCC acute 90 0 ; CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 30 0 ; CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 40 0 ; CC egrave 2 ; PCC e 0 0 ; PCC grave 80 0 ; CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -40 0 ; CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -100 0 ; CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -90 0 ; CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -60 0 ; CC ntilde 2 ; PCC n 0 0 ; PCC tilde 60 0 ; CC oacute 2 ; PCC o 0 0 ; PCC acute 80 0 ; CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 20 0 ; CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 40 0 ; CC ograve 2 ; PCC o 0 0 ; PCC grave 80 0 ; CC otilde 2 ; PCC o 0 0 ; PCC tilde 30 0 ; CC scaron 2 ; PCC s 0 0 ; PCC caron 30 0 ; CC uacute 2 ; PCC u 0 0 ; PCC acute 120 0 ; CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 60 0 ; CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 70 0 ; CC ugrave 2 ; PCC u 0 0 ; PCC grave 110 0 ; CC yacute 2 ; PCC y 0 0 ; PCC acute 140 0 ; CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 70 0 ; CC zcaron 2 ; PCC z 0 0 ; PCC caron 20 0 ; EndComposites EndFontMetrics enscript-1.6.5.90/afm/hvb.afm0000644000175000017500000004247611132443251012542 00000000000000StartFontMetrics 2.0 Comment Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Thu Mar 15 09:43:00 1990 Comment UniqueID 28357 Comment VMusage 26878 33770 FontName Helvetica-Bold FullName Helvetica Bold FamilyName Helvetica Weight Bold ItalicAngle 0 IsFixedPitch false FontBBox -170 -228 1003 962 UnderlinePosition -100 UnderlineThickness 50 Version 001.007 Notice Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All Rights Reserved.Helvetica is a trademark of Linotype AG and/or its subsidiaries. EncodingScheme AdobeStandardEncoding CapHeight 718 XHeight 532 Ascender 718 Descender -207 StartCharMetrics 228 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 -19 196 737 ; 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 276 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 276 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 611 ; N Zcaron ; B 25 0 586 936 ; C -1 ; WX 556 ; N ccedilla ; B 34 -228 524 546 ; C -1 ; WX 556 ; N ydieresis ; B 10 -214 539 729 ; C -1 ; WX 556 ; N atilde ; B 29 -14 527 737 ; C -1 ; WX 278 ; N icircumflex ; B -37 0 316 750 ; C -1 ; WX 333 ; N threesuperior ; B 8 271 326 710 ; C -1 ; WX 556 ; N ecircumflex ; B 23 -14 528 750 ; C -1 ; WX 611 ; N thorn ; B 62 -208 578 718 ; C -1 ; WX 556 ; N egrave ; B 23 -14 528 750 ; C -1 ; WX 333 ; N twosuperior ; B 9 283 324 710 ; C -1 ; WX 556 ; N eacute ; B 23 -14 528 750 ; C -1 ; WX 611 ; N otilde ; B 34 -14 578 737 ; C -1 ; WX 722 ; N Aacute ; B 20 0 702 936 ; C -1 ; WX 611 ; N ocircumflex ; B 34 -14 578 750 ; C -1 ; WX 556 ; N yacute ; B 10 -214 539 750 ; C -1 ; WX 611 ; N udieresis ; B 66 -14 545 729 ; C -1 ; WX 834 ; N threequarters ; B 16 -19 799 710 ; C -1 ; WX 556 ; N acircumflex ; B 29 -14 527 750 ; C -1 ; WX 722 ; N Eth ; B -5 0 685 718 ; C -1 ; WX 556 ; N edieresis ; B 23 -14 528 729 ; C -1 ; WX 611 ; N ugrave ; B 66 -14 545 750 ; C -1 ; WX 1000 ; N trademark ; B 44 306 956 718 ; C -1 ; WX 611 ; N ograve ; B 34 -14 578 750 ; C -1 ; WX 556 ; N scaron ; B 30 -14 519 750 ; C -1 ; WX 278 ; N Idieresis ; B -21 0 300 915 ; C -1 ; WX 611 ; N uacute ; B 66 -14 545 750 ; C -1 ; WX 556 ; N agrave ; B 29 -14 527 750 ; C -1 ; WX 611 ; N ntilde ; B 65 0 546 737 ; C -1 ; WX 556 ; N aring ; B 29 -14 527 776 ; C -1 ; WX 500 ; N zcaron ; B 20 0 480 750 ; C -1 ; WX 278 ; N Icircumflex ; B -37 0 316 936 ; C -1 ; WX 722 ; N Ntilde ; B 69 0 654 923 ; C -1 ; WX 611 ; N ucircumflex ; B 66 -14 545 750 ; C -1 ; WX 667 ; N Ecircumflex ; B 76 0 621 936 ; C -1 ; WX 278 ; N Iacute ; B 64 0 329 936 ; C -1 ; WX 722 ; N Ccedilla ; B 44 -228 684 737 ; C -1 ; WX 778 ; N Odieresis ; B 44 -19 734 915 ; C -1 ; WX 667 ; N Scaron ; B 39 -19 629 936 ; C -1 ; WX 667 ; N Edieresis ; B 76 0 621 915 ; C -1 ; WX 278 ; N Igrave ; B -50 0 214 936 ; C -1 ; WX 556 ; N adieresis ; B 29 -14 527 729 ; C -1 ; WX 778 ; N Ograve ; B 44 -19 734 936 ; C -1 ; WX 667 ; N Egrave ; B 76 0 621 936 ; C -1 ; WX 667 ; N Ydieresis ; B 15 0 653 915 ; C -1 ; WX 737 ; N registered ; B -11 -19 748 737 ; C -1 ; WX 778 ; N Otilde ; B 44 -19 734 923 ; C -1 ; WX 834 ; N onequarter ; B 26 -19 766 710 ; C -1 ; WX 722 ; N Ugrave ; B 72 -19 651 936 ; C -1 ; WX 722 ; N Ucircumflex ; B 72 -19 651 936 ; C -1 ; WX 667 ; N Thorn ; B 76 0 627 718 ; C -1 ; WX 584 ; N divide ; B 40 -42 544 548 ; C -1 ; WX 722 ; N Atilde ; B 20 0 702 923 ; C -1 ; WX 722 ; N Uacute ; B 72 -19 651 936 ; C -1 ; WX 778 ; N Ocircumflex ; B 44 -19 734 936 ; C -1 ; WX 584 ; N logicalnot ; B 40 108 544 419 ; C -1 ; WX 722 ; N Aring ; B 20 0 702 962 ; C -1 ; WX 278 ; N idieresis ; B -21 0 300 729 ; C -1 ; WX 278 ; N iacute ; B 69 0 329 750 ; C -1 ; WX 556 ; N aacute ; B 29 -14 527 750 ; C -1 ; WX 584 ; N plusminus ; B 40 0 544 506 ; C -1 ; WX 584 ; N multiply ; B 40 1 545 505 ; C -1 ; WX 722 ; N Udieresis ; B 72 -19 651 915 ; C -1 ; WX 584 ; N minus ; B 40 197 544 309 ; C -1 ; WX 333 ; N onesuperior ; B 26 283 237 710 ; C -1 ; WX 667 ; N Eacute ; B 76 0 621 936 ; C -1 ; WX 722 ; N Acircumflex ; B 20 0 702 936 ; C -1 ; WX 737 ; N copyright ; B -11 -19 749 737 ; C -1 ; WX 722 ; N Agrave ; B 20 0 702 936 ; C -1 ; WX 611 ; N odieresis ; B 34 -14 578 729 ; C -1 ; WX 611 ; N oacute ; B 34 -14 578 750 ; C -1 ; WX 400 ; N degree ; B 57 426 343 712 ; C -1 ; WX 278 ; N igrave ; B -50 0 209 750 ; C -1 ; WX 611 ; N mu ; B 66 -207 545 532 ; C -1 ; WX 778 ; N Oacute ; B 44 -19 734 936 ; C -1 ; WX 611 ; N eth ; B 34 -14 578 737 ; C -1 ; WX 722 ; N Adieresis ; B 20 0 702 915 ; C -1 ; WX 667 ; N Yacute ; B 15 0 653 936 ; C -1 ; WX 280 ; N brokenbar ; B 84 -19 196 737 ; C -1 ; WX 834 ; N onehalf ; B 26 -19 794 710 ; EndCharMetrics StartKernData StartKernPairs 209 KPX A y -30 KPX A w -30 KPX A v -40 KPX A u -30 KPX A Y -110 KPX A W -60 KPX A V -80 KPX A U -50 KPX A T -90 KPX A Q -40 KPX A O -40 KPX A G -50 KPX A C -40 KPX B U -10 KPX B A -30 KPX D period -30 KPX D comma -30 KPX D Y -70 KPX D W -40 KPX D V -40 KPX D A -40 KPX F period -100 KPX F comma -100 KPX F a -20 KPX F A -80 KPX J u -20 KPX J period -20 KPX J comma -20 KPX J A -20 KPX K y -40 KPX K u -30 KPX K o -35 KPX K e -15 KPX K O -30 KPX L y -30 KPX L quoteright -140 KPX L quotedblright -140 KPX L Y -120 KPX L W -80 KPX L V -110 KPX L T -90 KPX O period -40 KPX O comma -40 KPX O Y -70 KPX O X -50 KPX O W -50 KPX O V -50 KPX O T -40 KPX O A -50 KPX P period -120 KPX P o -40 KPX P e -30 KPX P comma -120 KPX P a -30 KPX P A -100 KPX Q period 20 KPX Q comma 20 KPX Q U -10 KPX R Y -50 KPX R W -40 KPX R V -50 KPX R U -20 KPX R T -20 KPX R O -20 KPX T y -60 KPX T w -60 KPX T u -90 KPX T semicolon -40 KPX T r -80 KPX T period -80 KPX T o -80 KPX T hyphen -120 KPX T e -60 KPX T comma -80 KPX T colon -40 KPX T a -80 KPX T O -40 KPX T A -90 KPX U period -30 KPX U comma -30 KPX U A -50 KPX V u -60 KPX V semicolon -40 KPX V period -120 KPX V o -90 KPX V hyphen -80 KPX V e -50 KPX V comma -120 KPX V colon -40 KPX V a -60 KPX V O -50 KPX V G -50 KPX V A -80 KPX W y -20 KPX W u -45 KPX W semicolon -10 KPX W period -80 KPX W o -60 KPX W hyphen -40 KPX W e -35 KPX W comma -80 KPX W colon -10 KPX W a -40 KPX W O -20 KPX W A -60 KPX Y u -100 KPX Y semicolon -50 KPX Y period -100 KPX Y o -100 KPX Y e -80 KPX Y comma -100 KPX Y colon -50 KPX Y a -90 KPX Y O -70 KPX Y A -110 KPX a y -20 KPX a w -15 KPX a v -15 KPX a g -10 KPX b y -20 KPX b v -20 KPX b u -20 KPX b l -10 KPX c y -10 KPX c l -20 KPX c k -20 KPX c h -10 KPX colon space -40 KPX comma space -40 KPX comma quoteright -120 KPX comma quotedblright -120 KPX d y -15 KPX d w -15 KPX d v -15 KPX d d -10 KPX e y -15 KPX e x -15 KPX e w -15 KPX e v -15 KPX e period 20 KPX e comma 10 KPX f quoteright 30 KPX f quotedblright 30 KPX f period -10 KPX f o -20 KPX f e -10 KPX f comma -10 KPX g g -10 KPX g e 10 KPX h y -20 KPX k o -15 KPX l y -15 KPX l w -15 KPX m y -30 KPX m u -20 KPX n y -20 KPX n v -40 KPX n u -10 KPX o y -20 KPX o x -30 KPX o w -15 KPX o v -20 KPX p y -15 KPX period space -40 KPX period quoteright -120 KPX period quotedblright -120 KPX quotedblright space -80 KPX quoteleft quoteleft -46 KPX quoteright v -20 KPX quoteright space -80 KPX quoteright s -60 KPX quoteright r -40 KPX quoteright quoteright -46 KPX quoteright l -20 KPX quoteright d -80 KPX r y 10 KPX r v 10 KPX r t 20 KPX r s -15 KPX r q -20 KPX r period -60 KPX r o -20 KPX r hyphen -20 KPX r g -15 KPX r d -20 KPX r comma -60 KPX r c -20 KPX s w -15 KPX semicolon space -40 KPX space quoteleft -60 KPX space quotedblleft -80 KPX space Y -120 KPX space W -80 KPX space V -80 KPX space T -100 KPX v period -80 KPX v o -30 KPX v comma -80 KPX v a -20 KPX w period -40 KPX w o -20 KPX w comma -40 KPX x e -10 KPX y period -80 KPX y o -25 KPX y e -10 KPX y comma -80 KPX y a -30 KPX z e 10 EndKernPairs EndKernData StartComposites 58 CC Aacute 2 ; PCC A 0 0 ; PCC acute 195 186 ; CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 195 186 ; CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 195 186 ; CC Agrave 2 ; PCC A 0 0 ; PCC grave 195 186 ; CC Aring 2 ; PCC A 0 0 ; PCC ring 195 186 ; CC Atilde 2 ; PCC A 0 0 ; PCC tilde 195 186 ; CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 215 0 ; CC Eacute 2 ; PCC E 0 0 ; PCC acute 167 186 ; CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 167 186 ; CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 167 186 ; CC Egrave 2 ; PCC E 0 0 ; PCC grave 167 186 ; CC Iacute 2 ; PCC I 0 0 ; PCC acute -27 186 ; CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex -27 186 ; CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis -27 186 ; CC Igrave 2 ; PCC I 0 0 ; PCC grave -27 186 ; CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 195 186 ; CC Oacute 2 ; PCC O 0 0 ; PCC acute 223 186 ; CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 223 186 ; CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 223 186 ; CC Ograve 2 ; PCC O 0 0 ; PCC grave 223 186 ; CC Otilde 2 ; PCC O 0 0 ; PCC tilde 223 186 ; CC Scaron 2 ; PCC S 0 0 ; PCC caron 167 186 ; CC Uacute 2 ; PCC U 0 0 ; PCC acute 195 186 ; CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 195 186 ; CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 195 186 ; CC Ugrave 2 ; PCC U 0 0 ; PCC grave 195 186 ; CC Yacute 2 ; PCC Y 0 0 ; PCC acute 167 186 ; CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 167 186 ; CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 139 186 ; CC aacute 2 ; PCC a 0 0 ; PCC acute 112 0 ; CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 112 0 ; CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 112 0 ; CC agrave 2 ; PCC a 0 0 ; PCC grave 112 0 ; CC aring 2 ; PCC a 0 0 ; PCC ring 112 0 ; CC atilde 2 ; PCC a 0 0 ; PCC tilde 112 0 ; CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 132 0 ; CC eacute 2 ; PCC e 0 0 ; PCC acute 112 0 ; CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 112 0 ; CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 112 0 ; CC egrave 2 ; PCC e 0 0 ; PCC grave 112 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 139 0 ; 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 otilde 2 ; PCC o 0 0 ; PCC tilde 139 0 ; CC scaron 2 ; PCC s 0 0 ; PCC caron 112 0 ; 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 yacute 2 ; PCC y 0 0 ; PCC acute 112 0 ; CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 112 0 ; CC zcaron 2 ; PCC z 0 0 ; PCC caron 84 0 ; EndComposites EndFontMetrics enscript-1.6.5.90/afm/hv.afm0000644000175000017500000004402411132443251012367 00000000000000StartFontMetrics 2.0 Comment Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All rights reserved. Comment Creation Date: Thu Mar 15 08:58:00 1990 Comment UniqueID 28352 Comment VMusage 26389 33281 FontName Helvetica FullName Helvetica FamilyName Helvetica Weight Medium ItalicAngle 0 IsFixedPitch false FontBBox -166 -225 1000 931 UnderlinePosition -100 UnderlineThickness 50 Version 001.006 Notice Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All rights reserved.Helvetica is a trademark of Linotype AG and/or its subsidiaries. EncodingScheme AdobeStandardEncoding CapHeight 718 XHeight 523 Ascender 718 Descender -207 StartCharMetrics 228 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 -19 167 737 ; 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 304 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 304 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 611 ; N Zcaron ; B 23 0 588 929 ; C -1 ; WX 500 ; N ccedilla ; B 30 -225 477 538 ; C -1 ; WX 500 ; N ydieresis ; B 11 -214 489 706 ; C -1 ; WX 556 ; N atilde ; B 36 -15 530 722 ; C -1 ; WX 278 ; N icircumflex ; B -6 0 285 734 ; C -1 ; WX 333 ; N threesuperior ; B 5 270 325 703 ; C -1 ; WX 556 ; N ecircumflex ; B 40 -15 516 734 ; C -1 ; WX 556 ; N thorn ; B 58 -207 517 718 ; C -1 ; WX 556 ; N egrave ; B 40 -15 516 734 ; C -1 ; WX 333 ; N twosuperior ; B 4 281 323 703 ; C -1 ; WX 556 ; N eacute ; B 40 -15 516 734 ; C -1 ; WX 556 ; N otilde ; B 35 -14 521 722 ; C -1 ; WX 667 ; N Aacute ; B 14 0 654 929 ; C -1 ; WX 556 ; N ocircumflex ; B 35 -14 521 734 ; C -1 ; WX 500 ; N yacute ; B 11 -214 489 734 ; C -1 ; WX 556 ; N udieresis ; B 68 -15 489 706 ; C -1 ; WX 834 ; N threequarters ; B 45 -19 810 703 ; C -1 ; WX 556 ; N acircumflex ; B 36 -15 530 734 ; C -1 ; WX 722 ; N Eth ; B 0 0 674 718 ; C -1 ; WX 556 ; N edieresis ; B 40 -15 516 706 ; C -1 ; WX 556 ; N ugrave ; B 68 -15 489 734 ; C -1 ; WX 1000 ; N trademark ; B 46 306 903 718 ; C -1 ; WX 556 ; N ograve ; B 35 -14 521 734 ; C -1 ; WX 500 ; N scaron ; B 32 -15 464 734 ; C -1 ; WX 278 ; N Idieresis ; B 13 0 266 901 ; C -1 ; WX 556 ; N uacute ; B 68 -15 489 734 ; C -1 ; WX 556 ; N agrave ; B 36 -15 530 734 ; C -1 ; WX 556 ; N ntilde ; B 65 0 491 722 ; C -1 ; WX 556 ; N aring ; B 36 -15 530 756 ; C -1 ; WX 500 ; N zcaron ; B 31 0 469 734 ; C -1 ; WX 278 ; N Icircumflex ; B -6 0 285 929 ; C -1 ; WX 722 ; N Ntilde ; B 76 0 646 917 ; C -1 ; WX 556 ; N ucircumflex ; B 68 -15 489 734 ; C -1 ; WX 667 ; N Ecircumflex ; B 86 0 616 929 ; C -1 ; WX 278 ; N Iacute ; B 91 0 292 929 ; C -1 ; WX 722 ; N Ccedilla ; B 44 -225 681 737 ; C -1 ; WX 778 ; N Odieresis ; B 39 -19 739 901 ; C -1 ; WX 667 ; N Scaron ; B 49 -19 620 929 ; C -1 ; WX 667 ; N Edieresis ; B 86 0 616 901 ; C -1 ; WX 278 ; N Igrave ; B -13 0 188 929 ; C -1 ; WX 556 ; N adieresis ; B 36 -15 530 706 ; C -1 ; WX 778 ; N Ograve ; B 39 -19 739 929 ; C -1 ; WX 667 ; N Egrave ; B 86 0 616 929 ; C -1 ; WX 667 ; N Ydieresis ; B 14 0 653 901 ; C -1 ; WX 737 ; N registered ; B -14 -19 752 737 ; C -1 ; WX 778 ; N Otilde ; B 39 -19 739 917 ; C -1 ; WX 834 ; N onequarter ; B 73 -19 756 703 ; C -1 ; WX 722 ; N Ugrave ; B 79 -19 644 929 ; C -1 ; WX 722 ; N Ucircumflex ; B 79 -19 644 929 ; C -1 ; WX 667 ; N Thorn ; B 86 0 622 718 ; C -1 ; WX 584 ; N divide ; B 39 -19 545 524 ; C -1 ; WX 667 ; N Atilde ; B 14 0 654 917 ; C -1 ; WX 722 ; N Uacute ; B 79 -19 644 929 ; C -1 ; WX 778 ; N Ocircumflex ; B 39 -19 739 929 ; C -1 ; WX 584 ; N logicalnot ; B 39 108 545 390 ; C -1 ; WX 667 ; N Aring ; B 14 0 654 931 ; C -1 ; WX 278 ; N idieresis ; B 13 0 266 706 ; C -1 ; WX 278 ; N iacute ; B 95 0 292 734 ; C -1 ; WX 556 ; N aacute ; B 36 -15 530 734 ; C -1 ; WX 584 ; N plusminus ; B 39 0 545 506 ; C -1 ; WX 584 ; N multiply ; B 39 0 545 506 ; C -1 ; WX 722 ; N Udieresis ; B 79 -19 644 901 ; C -1 ; WX 584 ; N minus ; B 39 216 545 289 ; C -1 ; WX 333 ; N onesuperior ; B 43 281 222 703 ; C -1 ; WX 667 ; N Eacute ; B 86 0 616 929 ; C -1 ; WX 667 ; N Acircumflex ; B 14 0 654 929 ; C -1 ; WX 737 ; N copyright ; B -14 -19 752 737 ; C -1 ; WX 667 ; N Agrave ; B 14 0 654 929 ; C -1 ; WX 556 ; N odieresis ; B 35 -14 521 706 ; C -1 ; WX 556 ; N oacute ; B 35 -14 521 734 ; C -1 ; WX 400 ; N degree ; B 54 411 346 703 ; C -1 ; WX 278 ; N igrave ; B -13 0 184 734 ; C -1 ; WX 556 ; N mu ; B 68 -207 489 523 ; C -1 ; WX 778 ; N Oacute ; B 39 -19 739 929 ; C -1 ; WX 556 ; N eth ; B 35 -15 522 737 ; C -1 ; WX 667 ; N Adieresis ; B 14 0 654 901 ; C -1 ; WX 667 ; N Yacute ; B 14 0 653 929 ; C -1 ; WX 260 ; N brokenbar ; B 94 -19 167 737 ; C -1 ; WX 834 ; N onehalf ; B 43 -19 773 703 ; EndCharMetrics StartKernData StartKernPairs 250 KPX A y -40 KPX A w -40 KPX A v -40 KPX A u -30 KPX A Y -100 KPX A W -50 KPX A V -70 KPX A U -50 KPX A T -120 KPX A Q -30 KPX A O -30 KPX A G -30 KPX A C -30 KPX B period -20 KPX B comma -20 KPX B U -10 KPX C period -30 KPX C comma -30 KPX D period -70 KPX D comma -70 KPX D Y -90 KPX D W -40 KPX D V -70 KPX D A -40 KPX F r -45 KPX F period -150 KPX F o -30 KPX F e -30 KPX F comma -150 KPX F a -50 KPX F A -80 KPX J u -20 KPX J period -30 KPX J comma -30 KPX J a -20 KPX J A -20 KPX K y -50 KPX K u -30 KPX K o -40 KPX K e -40 KPX K O -50 KPX L y -30 KPX L quoteright -160 KPX L quotedblright -140 KPX L Y -140 KPX L W -70 KPX L V -110 KPX L T -110 KPX O period -40 KPX O comma -40 KPX O Y -70 KPX O X -60 KPX O W -30 KPX O V -50 KPX O T -40 KPX O A -20 KPX P period -180 KPX P o -50 KPX P e -50 KPX P comma -180 KPX P a -40 KPX P A -120 KPX Q U -10 KPX R Y -50 KPX R W -30 KPX R V -50 KPX R U -40 KPX R T -30 KPX R O -20 KPX S period -20 KPX S comma -20 KPX T y -120 KPX T w -120 KPX T u -120 KPX T semicolon -20 KPX T r -120 KPX T period -120 KPX T o -120 KPX T hyphen -140 KPX T e -120 KPX T comma -120 KPX T colon -20 KPX T a -120 KPX T O -40 KPX T A -120 KPX U period -40 KPX U comma -40 KPX U A -40 KPX V u -70 KPX V semicolon -40 KPX V period -125 KPX V o -80 KPX V hyphen -80 KPX V e -80 KPX V comma -125 KPX V colon -40 KPX V a -70 KPX V O -40 KPX V G -40 KPX V A -80 KPX W y -20 KPX W u -30 KPX W period -80 KPX W o -30 KPX W hyphen -40 KPX W e -30 KPX W comma -80 KPX W a -40 KPX W O -20 KPX W A -50 KPX Y u -110 KPX Y semicolon -60 KPX Y period -140 KPX Y o -140 KPX Y i -20 KPX Y hyphen -140 KPX Y e -140 KPX Y comma -140 KPX Y colon -60 KPX Y a -140 KPX Y O -85 KPX Y A -110 KPX a y -30 KPX a w -20 KPX a v -20 KPX b y -20 KPX b v -20 KPX b u -20 KPX b period -40 KPX b l -20 KPX b comma -40 KPX b b -10 KPX c k -20 KPX c comma -15 KPX colon space -50 KPX comma quoteright -100 KPX comma quotedblright -100 KPX e y -20 KPX e x -30 KPX e w -20 KPX e v -30 KPX e period -15 KPX e comma -15 KPX f quoteright 50 KPX f quotedblright 60 KPX f period -30 KPX f o -30 KPX f e -30 KPX f dotlessi -28 KPX f comma -30 KPX f a -30 KPX g r -10 KPX h y -30 KPX k o -20 KPX k e -20 KPX m y -15 KPX m u -10 KPX n y -15 KPX n v -20 KPX n u -10 KPX o y -30 KPX o x -30 KPX o w -15 KPX o v -15 KPX o period -40 KPX o comma -40 KPX oslash z -55 KPX oslash y -70 KPX oslash x -85 KPX oslash w -70 KPX oslash v -70 KPX oslash u -55 KPX oslash t -55 KPX oslash s -55 KPX oslash r -55 KPX oslash q -55 KPX oslash period -95 KPX oslash p -55 KPX oslash o -55 KPX oslash n -55 KPX oslash m -55 KPX oslash l -55 KPX oslash k -55 KPX oslash j -55 KPX oslash i -55 KPX oslash h -55 KPX oslash g -55 KPX oslash f -55 KPX oslash e -55 KPX oslash d -55 KPX oslash comma -95 KPX oslash c -55 KPX oslash b -55 KPX oslash a -55 KPX p y -30 KPX p period -35 KPX p comma -35 KPX period space -60 KPX period quoteright -100 KPX period quotedblright -100 KPX quotedblright space -40 KPX quoteleft quoteleft -57 KPX quoteright space -70 KPX quoteright s -50 KPX quoteright r -50 KPX quoteright quoteright -57 KPX quoteright d -50 KPX r y 30 KPX r v 30 KPX r u 15 KPX r t 40 KPX r semicolon 30 KPX r period -50 KPX r p 30 KPX r n 25 KPX r m 25 KPX r l 15 KPX r k 15 KPX r i 15 KPX r comma -50 KPX r colon 30 KPX r a -10 KPX s w -30 KPX s period -15 KPX s comma -15 KPX semicolon space -50 KPX space quoteleft -60 KPX space quotedblleft -30 KPX space Y -90 KPX space W -40 KPX space V -50 KPX space T -50 KPX v period -80 KPX v o -25 KPX v e -25 KPX v comma -80 KPX v a -25 KPX w period -60 KPX w o -10 KPX w e -10 KPX w comma -60 KPX w a -15 KPX x e -30 KPX y period -100 KPX y o -20 KPX y e -20 KPX y comma -100 KPX y a -20 KPX z o -15 KPX z e -15 EndKernPairs EndKernData StartComposites 58 CC Aacute 2 ; PCC A 0 0 ; PCC acute 167 195 ; CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 167 195 ; CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 167 195 ; CC Agrave 2 ; PCC A 0 0 ; PCC grave 167 195 ; CC Aring 2 ; PCC A 0 0 ; PCC ring 167 175 ; CC Atilde 2 ; PCC A 0 0 ; PCC tilde 167 195 ; CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 195 0 ; CC Eacute 2 ; PCC E 0 0 ; PCC acute 167 195 ; CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 167 195 ; CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 167 195 ; CC Egrave 2 ; PCC E 0 0 ; PCC grave 167 195 ; CC Iacute 2 ; PCC I 0 0 ; PCC acute -27 195 ; CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex -27 195 ; CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis -27 195 ; CC Igrave 2 ; PCC I 0 0 ; PCC grave -27 195 ; CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 205 195 ; CC Oacute 2 ; PCC O 0 0 ; PCC acute 223 195 ; CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 223 195 ; CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 223 195 ; CC Ograve 2 ; PCC O 0 0 ; PCC grave 223 195 ; CC Otilde 2 ; PCC O 0 0 ; PCC tilde 223 195 ; CC Scaron 2 ; PCC S 0 0 ; PCC caron 167 195 ; CC Uacute 2 ; PCC U 0 0 ; PCC acute 195 195 ; CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 195 195 ; CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 195 195 ; CC Ugrave 2 ; PCC U 0 0 ; PCC grave 195 195 ; CC Yacute 2 ; PCC Y 0 0 ; PCC acute 167 195 ; CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 167 195 ; CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 139 195 ; CC aacute 2 ; PCC a 0 0 ; PCC acute 112 0 ; CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 112 0 ; CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 112 0 ; CC agrave 2 ; PCC a 0 0 ; PCC grave 112 0 ; CC aring 2 ; PCC a 0 0 ; PCC ring 112 0 ; CC atilde 2 ; PCC a 0 0 ; PCC tilde 102 0 ; CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 84 0 ; CC eacute 2 ; PCC e 0 0 ; PCC acute 112 0 ; CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 112 0 ; CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 112 0 ; CC egrave 2 ; PCC e 0 0 ; PCC grave 112 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 102 0 ; CC oacute 2 ; PCC o 0 0 ; PCC acute 112 0 ; CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 112 0 ; CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 112 0 ; CC ograve 2 ; PCC o 0 0 ; PCC grave 112 0 ; CC otilde 2 ; PCC o 0 0 ; PCC tilde 112 0 ; CC scaron 2 ; PCC s 0 0 ; PCC caron 84 0 ; CC uacute 2 ; PCC u 0 0 ; PCC acute 112 0 ; CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 112 0 ; CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 112 0 ; CC ugrave 2 ; PCC u 0 0 ; PCC grave 112 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 84 0 ; EndComposites EndFontMetrics enscript-1.6.5.90/afm/pob.afm0000644000175000017500000003734111132443251012536 00000000000000StartFontMetrics 2.0 Comment Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Mon Jul 2 22:26:30 1990 Comment UniqueID 31793 Comment VMusage 36031 46923 FontName Palatino-Bold FullName Palatino Bold FamilyName Palatino Weight Bold ItalicAngle 0 IsFixedPitch false FontBBox -152 -266 1000 924 UnderlinePosition -100 UnderlineThickness 50 Version 001.005 Notice Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All Rights Reserved.Palatino is a trademark of Linotype AG and/or its subsidiaries. EncodingScheme AdobeStandardEncoding CapHeight 681 XHeight 471 Ascender 720 Descender -258 StartCharMetrics 228 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 0 346 720 ; 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 100 537 234 671 ; C 200 ; WX 333 ; N dieresis ; B -8 537 341 671 ; 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 60 -246 274 -17 ; 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 667 ; N Zcaron ; B 24 -3 627 909 ; C -1 ; WX 444 ; N ccedilla ; B 37 -225 414 471 ; C -1 ; WX 556 ; N ydieresis ; B 10 -266 546 691 ; C -1 ; WX 500 ; N atilde ; B 40 -17 478 673 ; C -1 ; WX 333 ; N icircumflex ; B -2 -3 335 701 ; C -1 ; WX 300 ; N threesuperior ; B 9 261 292 667 ; C -1 ; WX 500 ; N ecircumflex ; B 42 -17 461 701 ; C -1 ; WX 611 ; N thorn ; B 17 -258 563 720 ; C -1 ; WX 500 ; N egrave ; B 42 -17 461 711 ; C -1 ; WX 300 ; N twosuperior ; B 5 261 295 660 ; C -1 ; WX 500 ; N eacute ; B 42 -17 461 711 ; C -1 ; WX 556 ; N otilde ; B 40 -17 517 673 ; C -1 ; WX 778 ; N Aacute ; B 24 -3 757 915 ; C -1 ; WX 556 ; N ocircumflex ; B 40 -17 517 701 ; C -1 ; WX 556 ; N yacute ; B 10 -266 546 711 ; C -1 ; WX 611 ; N udieresis ; B 25 -17 583 691 ; C -1 ; WX 750 ; N threequarters ; B 15 -2 735 667 ; C -1 ; WX 500 ; N acircumflex ; B 40 -17 478 701 ; C -1 ; WX 833 ; N Eth ; B 10 -3 786 681 ; C -1 ; WX 500 ; N edieresis ; B 42 -17 461 691 ; C -1 ; WX 611 ; N ugrave ; B 25 -17 583 711 ; C -1 ; WX 998 ; N trademark ; B 38 274 961 678 ; C -1 ; WX 556 ; N ograve ; B 40 -17 517 711 ; C -1 ; WX 444 ; N scaron ; B 39 -17 405 693 ; C -1 ; WX 389 ; N Idieresis ; B 20 -3 369 895 ; C -1 ; WX 611 ; N uacute ; B 25 -17 583 711 ; C -1 ; WX 500 ; N agrave ; B 40 -17 478 711 ; C -1 ; WX 611 ; N ntilde ; B 24 -3 587 673 ; C -1 ; WX 500 ; N aring ; B 40 -17 478 700 ; C -1 ; WX 500 ; N zcaron ; B 16 -3 464 693 ; C -1 ; WX 389 ; N Icircumflex ; B 26 -3 363 905 ; C -1 ; WX 833 ; N Ntilde ; B 35 -16 798 885 ; C -1 ; WX 611 ; N ucircumflex ; B 25 -17 583 701 ; C -1 ; WX 611 ; N Ecircumflex ; B 39 -4 577 905 ; C -1 ; WX 389 ; N Iacute ; B 39 -3 350 915 ; C -1 ; WX 722 ; N Ccedilla ; B 44 -225 695 695 ; C -1 ; WX 833 ; N Odieresis ; B 47 -17 787 895 ; C -1 ; WX 611 ; N Scaron ; B 57 -17 559 909 ; C -1 ; WX 611 ; N Edieresis ; B 39 -4 577 895 ; C -1 ; WX 389 ; N Igrave ; B 39 -3 350 915 ; C -1 ; WX 500 ; N adieresis ; B 40 -17 478 691 ; C -1 ; WX 833 ; N Ograve ; B 47 -17 787 915 ; C -1 ; WX 611 ; N Egrave ; B 39 -4 577 915 ; C -1 ; WX 667 ; N Ydieresis ; B 15 -3 660 895 ; C -1 ; WX 747 ; N registered ; B 26 -17 720 695 ; C -1 ; WX 833 ; N Otilde ; B 47 -17 787 885 ; C -1 ; WX 750 ; N onequarter ; B 19 -2 735 665 ; C -1 ; WX 778 ; N Ugrave ; B 26 -17 760 915 ; C -1 ; WX 778 ; N Ucircumflex ; B 26 -17 760 905 ; C -1 ; WX 611 ; N Thorn ; B 39 -3 574 681 ; C -1 ; WX 606 ; N divide ; B 51 0 555 510 ; C -1 ; WX 778 ; N Atilde ; B 24 -3 757 885 ; C -1 ; WX 778 ; N Uacute ; B 26 -17 760 915 ; C -1 ; WX 833 ; N Ocircumflex ; B 47 -17 787 905 ; C -1 ; WX 606 ; N logicalnot ; B 51 114 555 396 ; C -1 ; WX 778 ; N Aring ; B 24 -3 757 924 ; C -1 ; WX 333 ; N idieresis ; B -8 -3 341 691 ; C -1 ; WX 333 ; N iacute ; B 34 -3 316 711 ; C -1 ; WX 500 ; N aacute ; B 40 -17 478 711 ; C -1 ; WX 606 ; N plusminus ; B 51 0 555 505 ; C -1 ; WX 606 ; N multiply ; B 72 21 534 483 ; C -1 ; WX 778 ; N Udieresis ; B 26 -17 760 895 ; C -1 ; WX 606 ; N minus ; B 51 212 555 298 ; C -1 ; WX 300 ; N onesuperior ; B 14 261 287 665 ; C -1 ; WX 611 ; N Eacute ; B 39 -4 577 915 ; C -1 ; WX 778 ; N Acircumflex ; B 24 -3 757 905 ; C -1 ; WX 747 ; N copyright ; B 26 -17 720 695 ; C -1 ; WX 778 ; N Agrave ; B 24 -3 757 915 ; C -1 ; WX 556 ; N odieresis ; B 40 -17 517 691 ; C -1 ; WX 556 ; N oacute ; B 40 -17 517 711 ; C -1 ; WX 400 ; N degree ; B 50 360 350 660 ; C -1 ; WX 333 ; N igrave ; B 18 -3 298 711 ; C -1 ; WX 611 ; N mu ; B 25 -225 583 471 ; C -1 ; WX 833 ; N Oacute ; B 47 -17 787 915 ; C -1 ; WX 556 ; N eth ; B 40 -17 517 720 ; C -1 ; WX 778 ; N Adieresis ; B 24 -3 757 895 ; C -1 ; WX 667 ; N Yacute ; B 15 -3 660 915 ; C -1 ; WX 606 ; N brokenbar ; B 260 0 346 720 ; C -1 ; WX 750 ; N onehalf ; B 9 -2 745 665 ; EndCharMetrics StartKernData StartKernPairs 101 KPX A y -70 KPX A w -70 KPX A v -70 KPX A space -18 KPX A quoteright -92 KPX A Y -111 KPX A W -90 KPX A V -129 KPX A T -92 KPX F period -111 KPX F comma -111 KPX F A -55 KPX L y -74 KPX L space -18 KPX L quoteright -74 KPX L Y -92 KPX L W -92 KPX L V -92 KPX L T -74 KPX P period -129 KPX P comma -129 KPX P A -74 KPX R y -30 KPX R Y -55 KPX R W -37 KPX R V -74 KPX R T -55 KPX T y -90 KPX T w -90 KPX T u -129 KPX T semicolon -74 KPX T s -111 KPX T r -111 KPX T period -92 KPX T o -111 KPX T i -55 KPX T hyphen -92 KPX T e -111 KPX T comma -92 KPX T colon -74 KPX T c -129 KPX T a -111 KPX T A -92 KPX V y -90 KPX V u -92 KPX V semicolon -74 KPX V r -111 KPX V period -129 KPX V o -111 KPX V i -55 KPX V hyphen -92 KPX V e -111 KPX V comma -129 KPX V colon -74 KPX V a -111 KPX V A -129 KPX W y -74 KPX W u -74 KPX W semicolon -37 KPX W r -74 KPX W period -37 KPX W o -74 KPX W i -37 KPX W hyphen -37 KPX W e -74 KPX W comma -92 KPX W colon -37 KPX W a -74 KPX W A -90 KPX Y v -74 KPX Y u -74 KPX Y semicolon -55 KPX Y q -92 KPX Y period -74 KPX Y p -74 KPX Y o -74 KPX Y i -55 KPX Y hyphen -74 KPX Y e -74 KPX Y comma -74 KPX Y colon -55 KPX Y a -74 KPX Y A -55 KPX f quoteright 37 KPX f f -18 KPX one one -37 KPX quoteleft quoteleft -55 KPX quoteright t -18 KPX quoteright space -55 KPX quoteright s -55 KPX quoteright quoteright -55 KPX r quoteright 55 KPX r period -55 KPX r hyphen -18 KPX r comma -55 KPX v period -111 KPX v comma -111 KPX w period -92 KPX w comma -92 KPX y period -92 KPX y comma -92 EndKernPairs EndKernData StartComposites 58 CC Aacute 2 ; PCC A 0 0 ; PCC acute 223 224 ; CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 211 224 ; CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 223 224 ; CC Agrave 2 ; PCC A 0 0 ; PCC grave 215 224 ; CC Aring 2 ; PCC A 0 0 ; PCC ring 223 224 ; CC Atilde 2 ; PCC A 0 0 ; PCC tilde 223 224 ; CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 195 0 ; CC Eacute 2 ; PCC E 0 0 ; PCC acute 139 224 ; CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 139 224 ; CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 139 224 ; CC Egrave 2 ; PCC E 0 0 ; PCC grave 139 224 ; CC Iacute 2 ; PCC I 0 0 ; PCC acute 28 224 ; CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 28 224 ; CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 28 224 ; CC Igrave 2 ; PCC I 0 0 ; PCC grave 28 224 ; CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 250 224 ; CC Oacute 2 ; PCC O 0 0 ; PCC acute 250 224 ; CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 250 224 ; CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 250 224 ; CC Ograve 2 ; PCC O 0 0 ; PCC grave 250 224 ; CC Otilde 2 ; PCC O 0 0 ; PCC tilde 250 224 ; CC Scaron 2 ; PCC S 0 0 ; PCC caron 139 224 ; CC Uacute 2 ; PCC U 0 0 ; PCC acute 235 224 ; CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 235 224 ; CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 235 224 ; CC Ugrave 2 ; PCC U 0 0 ; PCC grave 223 224 ; CC Yacute 2 ; PCC Y 0 0 ; PCC acute 211 224 ; CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 199 224 ; CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 167 224 ; CC aacute 2 ; PCC a 0 0 ; PCC acute 84 20 ; CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 84 20 ; CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 84 20 ; CC agrave 2 ; PCC a 0 0 ; PCC grave 84 20 ; CC aring 2 ; PCC a 0 0 ; PCC ring 84 0 ; CC atilde 2 ; PCC a 0 0 ; PCC tilde 84 12 ; CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 56 0 ; CC eacute 2 ; PCC e 0 0 ; PCC acute 84 20 ; CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 96 20 ; CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 92 20 ; CC egrave 2 ; PCC e 0 0 ; PCC grave 84 20 ; CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute 0 20 ; CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex 0 20 ; CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis 0 20 ; CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave 0 20 ; CC ntilde 2 ; PCC n 0 0 ; PCC tilde 139 12 ; CC oacute 2 ; PCC o 0 0 ; PCC acute 112 20 ; CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 112 20 ; CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 112 20 ; CC ograve 2 ; PCC o 0 0 ; PCC grave 112 20 ; CC otilde 2 ; PCC o 0 0 ; PCC tilde 112 12 ; CC scaron 2 ; PCC s 0 0 ; PCC caron 56 8 ; CC uacute 2 ; PCC u 0 0 ; PCC acute 151 20 ; CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 139 20 ; CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 139 20 ; CC ugrave 2 ; PCC u 0 0 ; PCC grave 131 20 ; CC yacute 2 ; PCC y 0 0 ; PCC acute 144 20 ; CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 124 20 ; CC zcaron 2 ; PCC z 0 0 ; PCC caron 84 8 ; EndComposites EndFontMetrics enscript-1.6.5.90/afm/poi.afm0000644000175000017500000003745511132443251012553 00000000000000StartFontMetrics 2.0 Comment Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Mon Jul 2 22:37:33 1990 Comment UniqueID 31796 Comment VMusage 37415 48307 FontName Palatino-Italic FullName Palatino Italic FamilyName Palatino Weight Medium ItalicAngle -10 IsFixedPitch false FontBBox -170 -276 1010 918 UnderlinePosition -100 UnderlineThickness 50 Version 001.005 Notice Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All Rights Reserved.Palatino is a trademark of Linotype AG and/or its subsidiaries. EncodingScheme AdobeStandardEncoding CapHeight 692 XHeight 482 Ascender 733 Descender -276 StartCharMetrics 228 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 0 331 733 ; 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 175 537 283 645 ; C 200 ; WX 333 ; N dieresis ; B 78 537 378 637 ; 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 46 518 385 730 ; C 206 ; WX 333 ; N ogonek ; B 38 -207 196 -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 667 ; N Zcaron ; B 20 -3 637 907 ; C -1 ; WX 407 ; N ccedilla ; B 25 -216 389 482 ; C -1 ; WX 500 ; N ydieresis ; B -8 -276 490 657 ; C -1 ; WX 444 ; N atilde ; B 4 -11 446 650 ; C -1 ; WX 278 ; N icircumflex ; B 29 -9 323 699 ; C -1 ; WX 300 ; N threesuperior ; B 28 273 304 699 ; C -1 ; WX 389 ; N ecircumflex ; B 15 -11 398 699 ; C -1 ; WX 500 ; N thorn ; B -39 -276 433 733 ; C -1 ; WX 389 ; N egrave ; B 15 -11 374 707 ; C -1 ; WX 300 ; N twosuperior ; B 13 278 290 699 ; C -1 ; WX 389 ; N eacute ; B 15 -11 394 707 ; C -1 ; WX 444 ; N otilde ; B 17 -11 446 650 ; C -1 ; WX 722 ; N Aacute ; B -19 -3 677 897 ; C -1 ; WX 444 ; N ocircumflex ; B 17 -11 411 699 ; C -1 ; WX 500 ; N yacute ; B -8 -276 490 707 ; C -1 ; WX 556 ; N udieresis ; B 32 -11 512 657 ; C -1 ; WX 750 ; N threequarters ; B 35 -2 715 699 ; C -1 ; WX 444 ; N acircumflex ; B 4 -11 406 699 ; C -1 ; WX 778 ; N Eth ; B 19 -3 741 692 ; C -1 ; WX 389 ; N edieresis ; B 15 -11 406 657 ; C -1 ; WX 556 ; N ugrave ; B 32 -11 512 707 ; C -1 ; WX 1000 ; N trademark ; B 52 285 951 689 ; C -1 ; WX 444 ; N ograve ; B 17 -11 411 707 ; C -1 ; WX 389 ; N scaron ; B 9 -11 419 687 ; C -1 ; WX 333 ; N Idieresis ; B 7 -3 418 847 ; C -1 ; WX 556 ; N uacute ; B 32 -11 512 707 ; C -1 ; WX 444 ; N agrave ; B 4 -11 406 707 ; C -1 ; WX 556 ; N ntilde ; B 24 -9 514 650 ; C -1 ; WX 444 ; N aring ; B 4 -11 406 728 ; C -1 ; WX 444 ; N zcaron ; B -1 -11 447 687 ; C -1 ; WX 333 ; N Icircumflex ; B 7 -3 390 889 ; C -1 ; WX 778 ; N Ntilde ; B 2 -11 804 866 ; C -1 ; WX 556 ; N ucircumflex ; B 32 -11 512 699 ; C -1 ; WX 611 ; N Ecircumflex ; B 30 -3 570 889 ; C -1 ; WX 333 ; N Iacute ; B 7 -3 406 897 ; C -1 ; WX 667 ; N Ccedilla ; B 45 -216 651 706 ; C -1 ; WX 778 ; N Odieresis ; B 53 -18 748 847 ; C -1 ; WX 556 ; N Scaron ; B 42 -18 539 907 ; C -1 ; WX 611 ; N Edieresis ; B 30 -3 570 847 ; C -1 ; WX 333 ; N Igrave ; B 7 -3 354 897 ; C -1 ; WX 444 ; N adieresis ; B 4 -11 434 657 ; C -1 ; WX 778 ; N Ograve ; B 53 -18 748 897 ; C -1 ; WX 611 ; N Egrave ; B 30 -3 570 897 ; C -1 ; WX 667 ; N Ydieresis ; B 52 -3 675 847 ; C -1 ; WX 747 ; N registered ; B 11 -18 736 706 ; C -1 ; WX 778 ; N Otilde ; B 53 -18 748 866 ; C -1 ; WX 750 ; N onequarter ; B 31 -2 715 699 ; C -1 ; WX 778 ; N Ugrave ; B 88 -18 798 897 ; C -1 ; WX 778 ; N Ucircumflex ; B 88 -18 798 889 ; C -1 ; WX 611 ; N Thorn ; B 9 -3 570 692 ; C -1 ; WX 606 ; N divide ; B 51 0 555 504 ; C -1 ; WX 722 ; N Atilde ; B -19 -3 677 866 ; C -1 ; WX 778 ; N Uacute ; B 88 -18 798 897 ; C -1 ; WX 778 ; N Ocircumflex ; B 53 -18 748 889 ; C -1 ; WX 606 ; N logicalnot ; B 51 118 555 378 ; C -1 ; WX 722 ; N Aring ; B -19 -3 677 918 ; C -1 ; WX 278 ; N idieresis ; B 34 -9 351 657 ; C -1 ; WX 278 ; N iacute ; B 34 -9 331 707 ; C -1 ; WX 444 ; N aacute ; B 4 -11 414 707 ; C -1 ; WX 606 ; N plusminus ; B 51 0 555 504 ; C -1 ; WX 606 ; N multiply ; B 83 36 523 474 ; C -1 ; WX 778 ; N Udieresis ; B 88 -18 798 847 ; C -1 ; WX 606 ; N minus ; B 51 224 555 280 ; C -1 ; WX 300 ; N onesuperior ; B 61 278 285 699 ; C -1 ; WX 611 ; N Eacute ; B 30 -3 570 897 ; C -1 ; WX 722 ; N Acircumflex ; B -19 -3 677 889 ; C -1 ; WX 747 ; N copyright ; B 11 -18 736 706 ; C -1 ; WX 722 ; N Agrave ; B -19 -3 677 897 ; C -1 ; WX 444 ; N odieresis ; B 17 -11 434 657 ; C -1 ; WX 444 ; N oacute ; B 17 -11 414 707 ; C -1 ; WX 400 ; N degree ; B 90 389 390 689 ; C -1 ; WX 278 ; N igrave ; B 34 -9 271 707 ; C -1 ; WX 556 ; N mu ; B 15 -226 512 482 ; C -1 ; WX 778 ; N Oacute ; B 53 -18 748 897 ; C -1 ; WX 444 ; N eth ; B 17 -11 478 733 ; C -1 ; WX 722 ; N Adieresis ; B -19 -3 677 847 ; C -1 ; WX 667 ; N Yacute ; B 52 -3 675 897 ; C -1 ; WX 606 ; N brokenbar ; B 275 0 331 733 ; C -1 ; WX 750 ; N onehalf ; B 31 -2 721 699 ; EndCharMetrics StartKernData StartKernPairs 106 KPX A y -55 KPX A w -37 KPX A v -37 KPX A space -37 KPX A quoteright -55 KPX A Y -55 KPX A W -55 KPX A V -74 KPX A T -55 KPX F period -111 KPX F comma -111 KPX F A -111 KPX L y -37 KPX L space -18 KPX L quoteright -37 KPX L Y -74 KPX L W -74 KPX L V -74 KPX L T -74 KPX P period -129 KPX P comma -129 KPX P A -129 KPX R y -37 KPX R Y -55 KPX R W -55 KPX R V -74 KPX R T -55 KPX T y -92 KPX T w -92 KPX T u -111 KPX T semicolon -74 KPX T s -111 KPX T r -111 KPX T period -74 KPX T o -111 KPX T i -55 KPX T hyphen -55 KPX T e -111 KPX T comma -74 KPX T colon -74 KPX T c -111 KPX T a -111 KPX T O -18 KPX T A -92 KPX V y -74 KPX V u -74 KPX V semicolon -37 KPX V r -92 KPX V period -129 KPX V o -74 KPX V i -74 KPX V hyphen -55 KPX V e -92 KPX V comma -129 KPX V colon -37 KPX V a -74 KPX V A -210 KPX W y -20 KPX W u -20 KPX W semicolon -18 KPX W r -20 KPX W period -55 KPX W o -20 KPX W i -20 KPX W hyphen -18 KPX W e -20 KPX W comma -55 KPX W colon -18 KPX W a -20 KPX W A -92 KPX Y v -74 KPX Y u -92 KPX Y semicolon -74 KPX Y q -92 KPX Y period -92 KPX Y p -74 KPX Y o -111 KPX Y i -55 KPX Y hyphen -74 KPX Y e -111 KPX Y comma -92 KPX Y colon -74 KPX Y a -92 KPX Y A -92 KPX f quoteright 55 KPX one one -55 KPX quoteleft quoteleft -74 KPX quoteright t -37 KPX quoteright space -55 KPX quoteright s -55 KPX quoteright quoteright -74 KPX r quoteright 37 KPX r q -18 KPX r period -74 KPX r o -18 KPX r h -18 KPX r g -18 KPX r e -18 KPX r comma -74 KPX r c -18 KPX v period -55 KPX v comma -55 KPX w period -55 KPX w comma -55 KPX y period -37 KPX y comma -37 EndKernPairs EndKernData StartComposites 58 CC Aacute 2 ; PCC A 0 0 ; PCC acute 271 210 ; CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 261 210 ; CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 255 210 ; CC Agrave 2 ; PCC A 0 0 ; PCC grave 235 210 ; CC Aring 2 ; PCC A 0 0 ; PCC ring 235 210 ; CC Atilde 2 ; PCC A 0 0 ; PCC tilde 255 228 ; CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 207 0 ; CC Eacute 2 ; PCC E 0 0 ; PCC acute 199 210 ; CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 179 210 ; CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 179 210 ; CC Egrave 2 ; PCC E 0 0 ; PCC grave 167 210 ; CC Iacute 2 ; PCC I 0 0 ; PCC acute 60 210 ; CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 40 210 ; CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 40 210 ; CC Igrave 2 ; PCC I 0 0 ; PCC grave 28 210 ; CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 263 228 ; CC Oacute 2 ; PCC O 0 0 ; PCC acute 283 210 ; CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 263 210 ; CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 255 210 ; CC Ograve 2 ; PCC O 0 0 ; PCC grave 251 210 ; CC Otilde 2 ; PCC O 0 0 ; PCC tilde 263 228 ; CC Scaron 2 ; PCC S 0 0 ; PCC caron 130 228 ; CC Uacute 2 ; PCC U 0 0 ; PCC acute 277 210 ; CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 255 210 ; CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 235 210 ; CC Ugrave 2 ; PCC U 0 0 ; PCC grave 235 210 ; CC Yacute 2 ; PCC Y 0 0 ; PCC acute 227 210 ; CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 187 210 ; CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 179 228 ; CC aacute 2 ; PCC a 0 0 ; PCC acute 68 20 ; CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 56 20 ; CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 56 20 ; CC agrave 2 ; PCC a 0 0 ; PCC grave 44 20 ; CC aring 2 ; PCC a 0 0 ; PCC ring 36 20 ; CC atilde 2 ; PCC a 0 0 ; PCC tilde 56 12 ; CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 37 0 ; CC eacute 2 ; PCC e 0 0 ; PCC acute 48 20 ; CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 48 20 ; CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 28 20 ; CC egrave 2 ; PCC e 0 0 ; PCC grave 16 20 ; CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -15 20 ; CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -27 20 ; CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -27 20 ; CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -39 20 ; CC ntilde 2 ; PCC n 0 0 ; PCC tilde 112 12 ; CC oacute 2 ; PCC o 0 0 ; PCC acute 68 20 ; CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 56 20 ; CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 56 20 ; CC ograve 2 ; PCC o 0 0 ; PCC grave 36 20 ; CC otilde 2 ; PCC o 0 0 ; PCC tilde 56 12 ; CC scaron 2 ; PCC s 0 0 ; PCC caron 10 8 ; CC uacute 2 ; PCC u 0 0 ; PCC acute 124 20 ; CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 112 20 ; CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 112 20 ; CC ugrave 2 ; PCC u 0 0 ; PCC grave 100 20 ; CC yacute 2 ; PCC y 0 0 ; PCC acute 96 20 ; CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 84 20 ; CC zcaron 2 ; PCC z 0 0 ; PCC caron 38 8 ; EndComposites EndFontMetrics enscript-1.6.5.90/afm/hvo.afm0000644000175000017500000004414411132443251012551 00000000000000StartFontMetrics 2.0 Comment Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All rights reserved. Comment Creation Date: Thu Mar 15 10:24:18 1990 Comment UniqueID 28362 Comment VMusage 7572 42473 FontName Helvetica-Oblique FullName Helvetica Oblique FamilyName Helvetica Weight Medium ItalicAngle -12 IsFixedPitch false FontBBox -170 -225 1116 931 UnderlinePosition -100 UnderlineThickness 50 Version 001.006 Notice Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All rights reserved.Helvetica is a trademark of Linotype AG and/or its subsidiaries. EncodingScheme AdobeStandardEncoding CapHeight 718 XHeight 523 Ascender 718 Descender -207 StartCharMetrics 228 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 90 -19 324 737 ; 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 100 304 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 100 304 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 611 ; N Zcaron ; B 23 0 741 929 ; C -1 ; WX 500 ; N ccedilla ; B 74 -225 553 538 ; C -1 ; WX 500 ; N ydieresis ; B 15 -214 600 706 ; C -1 ; WX 556 ; N atilde ; B 61 -15 592 722 ; C -1 ; WX 278 ; N icircumflex ; B 95 0 411 734 ; C -1 ; WX 333 ; N threesuperior ; B 90 270 436 703 ; C -1 ; WX 556 ; N ecircumflex ; B 84 -15 578 734 ; C -1 ; WX 556 ; N thorn ; B 14 -207 584 718 ; C -1 ; WX 556 ; N egrave ; B 84 -15 578 734 ; C -1 ; WX 333 ; N twosuperior ; B 64 281 449 703 ; C -1 ; WX 556 ; N eacute ; B 84 -15 587 734 ; C -1 ; WX 556 ; N otilde ; B 83 -14 602 722 ; C -1 ; WX 667 ; N Aacute ; B 14 0 683 929 ; C -1 ; WX 556 ; N ocircumflex ; B 83 -14 585 734 ; C -1 ; WX 500 ; N yacute ; B 15 -214 600 734 ; C -1 ; WX 556 ; N udieresis ; B 94 -15 600 706 ; C -1 ; WX 834 ; N threequarters ; B 130 -19 861 703 ; C -1 ; WX 556 ; N acircumflex ; B 61 -15 559 734 ; C -1 ; WX 722 ; N Eth ; B 69 0 764 718 ; C -1 ; WX 556 ; N edieresis ; B 84 -15 578 706 ; C -1 ; WX 556 ; N ugrave ; B 94 -15 600 734 ; C -1 ; WX 1000 ; N trademark ; B 186 306 1056 718 ; C -1 ; WX 556 ; N ograve ; B 83 -14 585 734 ; C -1 ; WX 500 ; N scaron ; B 63 -15 552 734 ; C -1 ; WX 278 ; N Idieresis ; B 91 0 458 901 ; C -1 ; WX 556 ; N uacute ; B 94 -15 600 734 ; C -1 ; WX 556 ; N agrave ; B 61 -15 559 734 ; C -1 ; WX 556 ; N ntilde ; B 65 0 592 722 ; C -1 ; WX 556 ; N aring ; B 61 -15 559 756 ; C -1 ; WX 500 ; N zcaron ; B 31 0 571 734 ; C -1 ; WX 278 ; N Icircumflex ; B 91 0 452 929 ; C -1 ; WX 722 ; N Ntilde ; B 76 0 799 917 ; C -1 ; WX 556 ; N ucircumflex ; B 94 -15 600 734 ; C -1 ; WX 667 ; N Ecircumflex ; B 86 0 762 929 ; C -1 ; WX 278 ; N Iacute ; B 91 0 489 929 ; C -1 ; WX 722 ; N Ccedilla ; B 108 -225 782 737 ; C -1 ; WX 778 ; N Odieresis ; B 105 -19 826 901 ; C -1 ; WX 667 ; N Scaron ; B 90 -19 713 929 ; C -1 ; WX 667 ; N Edieresis ; B 86 0 762 901 ; C -1 ; WX 278 ; N Igrave ; B 91 0 351 929 ; C -1 ; WX 556 ; N adieresis ; B 61 -15 559 706 ; C -1 ; WX 778 ; N Ograve ; B 105 -19 826 929 ; C -1 ; WX 667 ; N Egrave ; B 86 0 762 929 ; C -1 ; WX 667 ; N Ydieresis ; B 167 0 806 901 ; C -1 ; WX 737 ; N registered ; B 54 -19 837 737 ; C -1 ; WX 778 ; N Otilde ; B 105 -19 826 917 ; C -1 ; WX 834 ; N onequarter ; B 150 -19 802 703 ; C -1 ; WX 722 ; N Ugrave ; B 123 -19 797 929 ; C -1 ; WX 722 ; N Ucircumflex ; B 123 -19 797 929 ; C -1 ; WX 667 ; N Thorn ; B 86 0 712 718 ; C -1 ; WX 584 ; N divide ; B 85 -19 606 524 ; C -1 ; WX 667 ; N Atilde ; B 14 0 699 917 ; C -1 ; WX 722 ; N Uacute ; B 123 -19 797 929 ; C -1 ; WX 778 ; N Ocircumflex ; B 105 -19 826 929 ; C -1 ; WX 584 ; N logicalnot ; B 106 108 628 390 ; C -1 ; WX 667 ; N Aring ; B 14 0 654 931 ; C -1 ; WX 278 ; N idieresis ; B 95 0 416 706 ; C -1 ; WX 278 ; N iacute ; B 95 0 448 734 ; C -1 ; WX 556 ; N aacute ; B 61 -15 587 734 ; C -1 ; WX 584 ; N plusminus ; B 39 0 618 506 ; C -1 ; WX 584 ; N multiply ; B 50 0 642 506 ; C -1 ; WX 722 ; N Udieresis ; B 123 -19 797 901 ; C -1 ; WX 584 ; N minus ; B 85 216 606 289 ; C -1 ; WX 333 ; N onesuperior ; B 166 281 371 703 ; C -1 ; WX 667 ; N Eacute ; B 86 0 762 929 ; C -1 ; WX 667 ; N Acircumflex ; B 14 0 654 929 ; C -1 ; WX 737 ; N copyright ; B 54 -19 837 737 ; C -1 ; WX 667 ; N Agrave ; B 14 0 654 929 ; C -1 ; WX 556 ; N odieresis ; B 83 -14 585 706 ; C -1 ; WX 556 ; N oacute ; B 83 -14 587 734 ; C -1 ; WX 400 ; N degree ; B 169 411 468 703 ; C -1 ; WX 278 ; N igrave ; B 95 0 310 734 ; C -1 ; WX 556 ; N mu ; B 24 -207 600 523 ; C -1 ; WX 778 ; N Oacute ; B 105 -19 826 929 ; C -1 ; WX 556 ; N eth ; B 81 -15 617 737 ; C -1 ; WX 667 ; N Adieresis ; B 14 0 654 901 ; C -1 ; WX 667 ; N Yacute ; B 167 0 806 929 ; C -1 ; WX 260 ; N brokenbar ; B 90 -19 324 737 ; C -1 ; WX 834 ; N onehalf ; B 114 -19 839 703 ; EndCharMetrics StartKernData StartKernPairs 250 KPX A y -40 KPX A w -40 KPX A v -40 KPX A u -30 KPX A Y -100 KPX A W -50 KPX A V -70 KPX A U -50 KPX A T -120 KPX A Q -30 KPX A O -30 KPX A G -30 KPX A C -30 KPX B period -20 KPX B comma -20 KPX B U -10 KPX C period -30 KPX C comma -30 KPX D period -70 KPX D comma -70 KPX D Y -90 KPX D W -40 KPX D V -70 KPX D A -40 KPX F r -45 KPX F period -150 KPX F o -30 KPX F e -30 KPX F comma -150 KPX F a -50 KPX F A -80 KPX J u -20 KPX J period -30 KPX J comma -30 KPX J a -20 KPX J A -20 KPX K y -50 KPX K u -30 KPX K o -40 KPX K e -40 KPX K O -50 KPX L y -30 KPX L quoteright -160 KPX L quotedblright -140 KPX L Y -140 KPX L W -70 KPX L V -110 KPX L T -110 KPX O period -40 KPX O comma -40 KPX O Y -70 KPX O X -60 KPX O W -30 KPX O V -50 KPX O T -40 KPX O A -20 KPX P period -180 KPX P o -50 KPX P e -50 KPX P comma -180 KPX P a -40 KPX P A -120 KPX Q U -10 KPX R Y -50 KPX R W -30 KPX R V -50 KPX R U -40 KPX R T -30 KPX R O -20 KPX S period -20 KPX S comma -20 KPX T y -120 KPX T w -120 KPX T u -120 KPX T semicolon -20 KPX T r -120 KPX T period -120 KPX T o -120 KPX T hyphen -140 KPX T e -120 KPX T comma -120 KPX T colon -20 KPX T a -120 KPX T O -40 KPX T A -120 KPX U period -40 KPX U comma -40 KPX U A -40 KPX V u -70 KPX V semicolon -40 KPX V period -125 KPX V o -80 KPX V hyphen -80 KPX V e -80 KPX V comma -125 KPX V colon -40 KPX V a -70 KPX V O -40 KPX V G -40 KPX V A -80 KPX W y -20 KPX W u -30 KPX W period -80 KPX W o -30 KPX W hyphen -40 KPX W e -30 KPX W comma -80 KPX W a -40 KPX W O -20 KPX W A -50 KPX Y u -110 KPX Y semicolon -60 KPX Y period -140 KPX Y o -140 KPX Y i -20 KPX Y hyphen -140 KPX Y e -140 KPX Y comma -140 KPX Y colon -60 KPX Y a -140 KPX Y O -85 KPX Y A -110 KPX a y -30 KPX a w -20 KPX a v -20 KPX b y -20 KPX b v -20 KPX b u -20 KPX b period -40 KPX b l -20 KPX b comma -40 KPX b b -10 KPX c k -20 KPX c comma -15 KPX colon space -50 KPX comma quoteright -100 KPX comma quotedblright -100 KPX e y -20 KPX e x -30 KPX e w -20 KPX e v -30 KPX e period -15 KPX e comma -15 KPX f quoteright 50 KPX f quotedblright 60 KPX f period -30 KPX f o -30 KPX f e -30 KPX f dotlessi -28 KPX f comma -30 KPX f a -30 KPX g r -10 KPX h y -30 KPX k o -20 KPX k e -20 KPX m y -15 KPX m u -10 KPX n y -15 KPX n v -20 KPX n u -10 KPX o y -30 KPX o x -30 KPX o w -15 KPX o v -15 KPX o period -40 KPX o comma -40 KPX oslash z -55 KPX oslash y -70 KPX oslash x -85 KPX oslash w -70 KPX oslash v -70 KPX oslash u -55 KPX oslash t -55 KPX oslash s -55 KPX oslash r -55 KPX oslash q -55 KPX oslash period -95 KPX oslash p -55 KPX oslash o -55 KPX oslash n -55 KPX oslash m -55 KPX oslash l -55 KPX oslash k -55 KPX oslash j -55 KPX oslash i -55 KPX oslash h -55 KPX oslash g -55 KPX oslash f -55 KPX oslash e -55 KPX oslash d -55 KPX oslash comma -95 KPX oslash c -55 KPX oslash b -55 KPX oslash a -55 KPX p y -30 KPX p period -35 KPX p comma -35 KPX period space -60 KPX period quoteright -100 KPX period quotedblright -100 KPX quotedblright space -40 KPX quoteleft quoteleft -57 KPX quoteright space -70 KPX quoteright s -50 KPX quoteright r -50 KPX quoteright quoteright -57 KPX quoteright d -50 KPX r y 30 KPX r v 30 KPX r u 15 KPX r t 40 KPX r semicolon 30 KPX r period -50 KPX r p 30 KPX r n 25 KPX r m 25 KPX r l 15 KPX r k 15 KPX r i 15 KPX r comma -50 KPX r colon 30 KPX r a -10 KPX s w -30 KPX s period -15 KPX s comma -15 KPX semicolon space -50 KPX space quoteleft -60 KPX space quotedblleft -30 KPX space Y -90 KPX space W -40 KPX space V -50 KPX space T -50 KPX v period -80 KPX v o -25 KPX v e -25 KPX v comma -80 KPX v a -25 KPX w period -60 KPX w o -10 KPX w e -10 KPX w comma -60 KPX w a -15 KPX x e -30 KPX y period -100 KPX y o -20 KPX y e -20 KPX y comma -100 KPX y a -20 KPX z o -15 KPX z e -15 EndKernPairs EndKernData StartComposites 58 CC Aacute 2 ; PCC A 0 0 ; PCC acute 208 195 ; CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 208 195 ; CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 208 195 ; CC Agrave 2 ; PCC A 0 0 ; PCC grave 208 195 ; CC Aring 2 ; PCC A 0 0 ; PCC ring 204 175 ; CC Atilde 2 ; PCC A 0 0 ; PCC tilde 208 195 ; CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 195 0 ; CC Eacute 2 ; PCC E 0 0 ; PCC acute 208 195 ; CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 208 195 ; CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 208 195 ; CC Egrave 2 ; PCC E 0 0 ; PCC grave 208 195 ; CC Iacute 2 ; PCC I 0 0 ; PCC acute 14 195 ; CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 14 195 ; CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 14 195 ; CC Igrave 2 ; PCC I 0 0 ; PCC grave 14 195 ; CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 246 195 ; CC Oacute 2 ; PCC O 0 0 ; PCC acute 264 195 ; CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 264 195 ; CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 264 195 ; CC Ograve 2 ; PCC O 0 0 ; PCC grave 264 195 ; CC Otilde 2 ; PCC O 0 0 ; PCC tilde 264 195 ; CC Scaron 2 ; PCC S 0 0 ; PCC caron 208 195 ; CC Uacute 2 ; PCC U 0 0 ; PCC acute 236 195 ; CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 236 195 ; CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 236 195 ; CC Ugrave 2 ; PCC U 0 0 ; PCC grave 236 195 ; CC Yacute 2 ; PCC Y 0 0 ; PCC acute 208 195 ; CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 208 195 ; CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 180 195 ; CC aacute 2 ; PCC a 0 0 ; PCC acute 112 0 ; CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 112 0 ; CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 112 0 ; CC agrave 2 ; PCC a 0 0 ; PCC grave 112 0 ; CC aring 2 ; PCC a 0 0 ; PCC ring 112 0 ; CC atilde 2 ; PCC a 0 0 ; PCC tilde 102 0 ; CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 84 0 ; CC eacute 2 ; PCC e 0 0 ; PCC acute 112 0 ; CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 112 0 ; CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 112 0 ; CC egrave 2 ; PCC e 0 0 ; PCC grave 112 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 102 0 ; CC oacute 2 ; PCC o 0 0 ; PCC acute 112 0 ; CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 112 0 ; CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 112 0 ; CC ograve 2 ; PCC o 0 0 ; PCC grave 112 0 ; CC otilde 2 ; PCC o 0 0 ; PCC tilde 112 0 ; CC scaron 2 ; PCC s 0 0 ; PCC caron 84 0 ; CC uacute 2 ; PCC u 0 0 ; PCC acute 112 0 ; CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 112 0 ; CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 112 0 ; CC ugrave 2 ; PCC u 0 0 ; PCC grave 112 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 84 0 ; EndComposites EndFontMetrics enscript-1.6.5.90/afm/hvno.afm0000644000175000017500000004407211132443251012727 00000000000000StartFontMetrics 2.0 Comment Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All rights reserved. Comment Creation Date: Thu Mar 15 11:25:48 1990 Comment UniqueID 28389 Comment VMusage 7572 42473 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 001.006 Notice Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All rights reserved.Helvetica is a trademark of Linotype AG and/or its subsidiaries. EncodingScheme AdobeStandardEncoding CapHeight 718 XHeight 523 Ascender 718 Descender -207 StartCharMetrics 228 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 504 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 74 -19 265 737 ; 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 82 304 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 82 304 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 501 ; N Zcaron ; B 19 0 607 929 ; C -1 ; WX 410 ; N ccedilla ; B 61 -225 454 538 ; C -1 ; WX 410 ; N ydieresis ; B 12 -214 492 706 ; C -1 ; WX 456 ; N atilde ; B 50 -15 486 722 ; C -1 ; WX 228 ; N icircumflex ; B 78 0 337 734 ; C -1 ; WX 273 ; N threesuperior ; B 74 270 358 703 ; C -1 ; WX 456 ; N ecircumflex ; B 69 -15 474 734 ; C -1 ; WX 456 ; N thorn ; B 11 -207 479 718 ; C -1 ; WX 456 ; N egrave ; B 69 -15 474 734 ; C -1 ; WX 273 ; N twosuperior ; B 52 281 368 703 ; C -1 ; WX 456 ; N eacute ; B 69 -15 481 734 ; C -1 ; WX 456 ; N otilde ; B 68 -14 494 722 ; C -1 ; WX 547 ; N Aacute ; B 11 0 560 929 ; C -1 ; WX 456 ; N ocircumflex ; B 68 -14 479 734 ; C -1 ; WX 410 ; N yacute ; B 12 -214 492 734 ; C -1 ; WX 456 ; N udieresis ; B 77 -15 492 706 ; C -1 ; WX 684 ; N threequarters ; B 106 -19 706 703 ; C -1 ; WX 456 ; N acircumflex ; B 50 -15 458 734 ; C -1 ; WX 592 ; N Eth ; B 57 0 626 718 ; C -1 ; WX 456 ; N edieresis ; B 69 -15 474 706 ; C -1 ; WX 456 ; N ugrave ; B 77 -15 492 734 ; C -1 ; WX 820 ; N trademark ; B 152 306 866 718 ; C -1 ; WX 456 ; N ograve ; B 68 -14 479 734 ; C -1 ; WX 410 ; N scaron ; B 52 -15 453 734 ; C -1 ; WX 228 ; N Idieresis ; B 75 0 375 901 ; C -1 ; WX 456 ; N uacute ; B 77 -15 492 734 ; C -1 ; WX 456 ; N agrave ; B 50 -15 458 734 ; C -1 ; WX 456 ; N ntilde ; B 53 0 486 722 ; C -1 ; WX 456 ; N aring ; B 50 -15 458 756 ; C -1 ; WX 410 ; N zcaron ; B 25 0 468 734 ; C -1 ; WX 228 ; N Icircumflex ; B 75 0 371 929 ; C -1 ; WX 592 ; N Ntilde ; B 62 0 655 917 ; C -1 ; WX 456 ; N ucircumflex ; B 77 -15 492 734 ; C -1 ; WX 547 ; N Ecircumflex ; B 71 0 625 929 ; C -1 ; WX 228 ; N Iacute ; B 75 0 401 929 ; C -1 ; WX 592 ; N Ccedilla ; B 88 -225 640 737 ; C -1 ; WX 638 ; N Odieresis ; B 86 -19 677 901 ; C -1 ; WX 547 ; N Scaron ; B 74 -19 584 929 ; C -1 ; WX 547 ; N Edieresis ; B 71 0 625 901 ; C -1 ; WX 228 ; N Igrave ; B 75 0 288 929 ; C -1 ; WX 456 ; N adieresis ; B 50 -15 458 706 ; C -1 ; WX 638 ; N Ograve ; B 86 -19 677 929 ; C -1 ; WX 547 ; N Egrave ; B 71 0 625 929 ; C -1 ; WX 547 ; N Ydieresis ; B 137 0 661 901 ; C -1 ; WX 604 ; N registered ; B 44 -19 687 737 ; C -1 ; WX 638 ; N Otilde ; B 86 -19 677 917 ; C -1 ; WX 684 ; N onequarter ; B 123 -19 658 703 ; C -1 ; WX 592 ; N Ugrave ; B 101 -19 653 929 ; C -1 ; WX 592 ; N Ucircumflex ; B 101 -19 653 929 ; C -1 ; WX 547 ; N Thorn ; B 71 0 584 718 ; C -1 ; WX 479 ; N divide ; B 70 -19 497 524 ; C -1 ; WX 547 ; N Atilde ; B 11 0 573 917 ; C -1 ; WX 592 ; N Uacute ; B 101 -19 653 929 ; C -1 ; WX 638 ; N Ocircumflex ; B 86 -19 677 929 ; C -1 ; WX 479 ; N logicalnot ; B 87 108 515 390 ; C -1 ; WX 547 ; N Aring ; B 11 0 536 931 ; C -1 ; WX 228 ; N idieresis ; B 78 0 341 706 ; C -1 ; WX 228 ; N iacute ; B 78 0 367 734 ; C -1 ; WX 456 ; N aacute ; B 50 -15 481 734 ; C -1 ; WX 479 ; N plusminus ; B 32 0 507 506 ; C -1 ; WX 479 ; N multiply ; B 41 0 526 506 ; C -1 ; WX 592 ; N Udieresis ; B 101 -19 653 901 ; C -1 ; WX 479 ; N minus ; B 70 216 497 289 ; C -1 ; WX 273 ; N onesuperior ; B 136 281 305 703 ; C -1 ; WX 547 ; N Eacute ; B 71 0 625 929 ; C -1 ; WX 547 ; N Acircumflex ; B 11 0 536 929 ; C -1 ; WX 604 ; N copyright ; B 44 -19 687 737 ; C -1 ; WX 547 ; N Agrave ; B 11 0 536 929 ; C -1 ; WX 456 ; N odieresis ; B 68 -14 479 706 ; C -1 ; WX 456 ; N oacute ; B 68 -14 481 734 ; C -1 ; WX 328 ; N degree ; B 138 411 384 703 ; C -1 ; WX 228 ; N igrave ; B 78 0 254 734 ; C -1 ; WX 456 ; N mu ; B 20 -207 492 523 ; C -1 ; WX 638 ; N Oacute ; B 86 -19 677 929 ; C -1 ; WX 456 ; N eth ; B 67 -15 506 737 ; C -1 ; WX 547 ; N Adieresis ; B 11 0 536 901 ; C -1 ; WX 547 ; N Yacute ; B 137 0 661 929 ; C -1 ; WX 213 ; N brokenbar ; B 74 -19 265 737 ; C -1 ; WX 684 ; N onehalf ; B 93 -19 688 703 ; EndCharMetrics StartKernData StartKernPairs 250 KPX A y -40 KPX A w -40 KPX A v -40 KPX A u -30 KPX A Y -100 KPX A W -50 KPX A V -70 KPX A U -50 KPX A T -120 KPX A Q -30 KPX A O -30 KPX A G -30 KPX A C -30 KPX B period -20 KPX B comma -20 KPX B U -10 KPX C period -30 KPX C comma -30 KPX D period -70 KPX D comma -70 KPX D Y -90 KPX D W -40 KPX D V -70 KPX D A -40 KPX F r -45 KPX F period -150 KPX F o -30 KPX F e -30 KPX F comma -150 KPX F a -50 KPX F A -80 KPX J u -20 KPX J period -30 KPX J comma -30 KPX J a -20 KPX J A -20 KPX K y -50 KPX K u -30 KPX K o -40 KPX K e -40 KPX K O -50 KPX L y -30 KPX L quoteright -160 KPX L quotedblright -140 KPX L Y -140 KPX L W -70 KPX L V -110 KPX L T -110 KPX O period -40 KPX O comma -40 KPX O Y -70 KPX O X -60 KPX O W -30 KPX O V -50 KPX O T -40 KPX O A -20 KPX P period -180 KPX P o -50 KPX P e -50 KPX P comma -180 KPX P a -40 KPX P A -120 KPX Q U -10 KPX R Y -50 KPX R W -30 KPX R V -50 KPX R U -40 KPX R T -30 KPX R O -20 KPX S period -20 KPX S comma -20 KPX T y -120 KPX T w -120 KPX T u -120 KPX T semicolon -20 KPX T r -120 KPX T period -120 KPX T o -120 KPX T hyphen -140 KPX T e -120 KPX T comma -120 KPX T colon -20 KPX T a -120 KPX T O -40 KPX T A -120 KPX U period -40 KPX U comma -40 KPX U A -40 KPX V u -70 KPX V semicolon -40 KPX V period -125 KPX V o -80 KPX V hyphen -80 KPX V e -80 KPX V comma -125 KPX V colon -40 KPX V a -70 KPX V O -40 KPX V G -40 KPX V A -80 KPX W y -20 KPX W u -30 KPX W period -80 KPX W o -30 KPX W hyphen -40 KPX W e -30 KPX W comma -80 KPX W a -40 KPX W O -20 KPX W A -50 KPX Y u -110 KPX Y semicolon -60 KPX Y period -140 KPX Y o -140 KPX Y i -20 KPX Y hyphen -140 KPX Y e -140 KPX Y comma -140 KPX Y colon -60 KPX Y a -140 KPX Y O -85 KPX Y A -110 KPX a y -30 KPX a w -20 KPX a v -20 KPX b y -20 KPX b v -20 KPX b u -20 KPX b period -40 KPX b l -20 KPX b comma -40 KPX b b -10 KPX c k -20 KPX c comma -15 KPX colon space -50 KPX comma quoteright -100 KPX comma quotedblright -100 KPX e y -20 KPX e x -30 KPX e w -20 KPX e v -30 KPX e period -15 KPX e comma -15 KPX f quoteright 50 KPX f quotedblright 60 KPX f period -30 KPX f o -30 KPX f e -30 KPX f dotlessi -28 KPX f comma -30 KPX f a -30 KPX g r -10 KPX h y -30 KPX k o -20 KPX k e -20 KPX m y -15 KPX m u -10 KPX n y -15 KPX n v -20 KPX n u -10 KPX o y -30 KPX o x -30 KPX o w -15 KPX o v -15 KPX o period -40 KPX o comma -40 KPX oslash z -55 KPX oslash y -70 KPX oslash x -85 KPX oslash w -70 KPX oslash v -70 KPX oslash u -55 KPX oslash t -55 KPX oslash s -55 KPX oslash r -55 KPX oslash q -55 KPX oslash period -95 KPX oslash p -55 KPX oslash o -55 KPX oslash n -55 KPX oslash m -55 KPX oslash l -55 KPX oslash k -55 KPX oslash j -55 KPX oslash i -55 KPX oslash h -55 KPX oslash g -55 KPX oslash f -55 KPX oslash e -55 KPX oslash d -55 KPX oslash comma -95 KPX oslash c -55 KPX oslash b -55 KPX oslash a -55 KPX p y -30 KPX p period -35 KPX p comma -35 KPX period space -60 KPX period quoteright -100 KPX period quotedblright -100 KPX quotedblright space -40 KPX quoteleft quoteleft -57 KPX quoteright space -70 KPX quoteright s -50 KPX quoteright r -50 KPX quoteright quoteright -57 KPX quoteright d -50 KPX r y 30 KPX r v 30 KPX r u 15 KPX r t 40 KPX r semicolon 30 KPX r period -50 KPX r p 30 KPX r n 25 KPX r m 25 KPX r l 15 KPX r k 15 KPX r i 15 KPX r comma -50 KPX r colon 30 KPX r a -10 KPX s w -30 KPX s period -15 KPX s comma -15 KPX semicolon space -50 KPX space quoteleft -60 KPX space quotedblleft -30 KPX space Y -90 KPX space W -40 KPX space V -50 KPX space T -50 KPX v period -80 KPX v o -25 KPX v e -25 KPX v comma -80 KPX v a -25 KPX w period -60 KPX w o -10 KPX w e -10 KPX w comma -60 KPX w a -15 KPX x e -30 KPX y period -100 KPX y o -20 KPX y e -20 KPX y comma -100 KPX y a -20 KPX z o -15 KPX z e -15 EndKernPairs EndKernData StartComposites 58 CC Aacute 2 ; PCC A 0 0 ; PCC acute 171 195 ; CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 171 195 ; CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 171 195 ; CC Agrave 2 ; PCC A 0 0 ; PCC grave 171 195 ; CC Aring 2 ; PCC A 0 0 ; PCC ring 167 175 ; CC Atilde 2 ; PCC A 0 0 ; PCC tilde 171 195 ; CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 160 0 ; CC Eacute 2 ; PCC E 0 0 ; PCC acute 171 195 ; CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 171 195 ; CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 171 195 ; CC Egrave 2 ; PCC E 0 0 ; PCC grave 171 195 ; CC Iacute 2 ; PCC I 0 0 ; PCC acute 12 195 ; CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 12 195 ; CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 12 195 ; CC Igrave 2 ; PCC I 0 0 ; PCC grave 12 195 ; CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 202 195 ; CC Oacute 2 ; PCC O 0 0 ; PCC acute 217 195 ; CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 217 195 ; CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 217 195 ; CC Ograve 2 ; PCC O 0 0 ; PCC grave 217 195 ; CC Otilde 2 ; PCC O 0 0 ; PCC tilde 217 195 ; CC Scaron 2 ; PCC S 0 0 ; PCC caron 171 195 ; CC Uacute 2 ; PCC U 0 0 ; PCC acute 194 195 ; CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 194 195 ; CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 194 195 ; CC Ugrave 2 ; PCC U 0 0 ; PCC grave 194 195 ; CC Yacute 2 ; PCC Y 0 0 ; PCC acute 171 195 ; CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 171 195 ; CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 148 195 ; CC aacute 2 ; PCC a 0 0 ; PCC acute 92 0 ; CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 92 0 ; CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 92 0 ; CC agrave 2 ; PCC a 0 0 ; PCC grave 92 0 ; CC aring 2 ; PCC a 0 0 ; PCC ring 92 0 ; CC atilde 2 ; PCC a 0 0 ; PCC tilde 84 0 ; CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 69 0 ; CC eacute 2 ; PCC e 0 0 ; PCC acute 92 0 ; CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 92 0 ; CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 92 0 ; CC egrave 2 ; PCC e 0 0 ; PCC grave 92 0 ; CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -22 0 ; CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -22 0 ; CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -22 0 ; CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -22 0 ; CC ntilde 2 ; PCC n 0 0 ; PCC tilde 84 0 ; CC oacute 2 ; PCC o 0 0 ; PCC acute 92 0 ; CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 92 0 ; CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 92 0 ; CC ograve 2 ; PCC o 0 0 ; PCC grave 92 0 ; CC otilde 2 ; PCC o 0 0 ; PCC tilde 92 0 ; CC scaron 2 ; PCC s 0 0 ; PCC caron 69 0 ; CC uacute 2 ; PCC u 0 0 ; PCC acute 92 0 ; CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 92 0 ; CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 92 0 ; CC ugrave 2 ; PCC u 0 0 ; PCC grave 92 0 ; CC yacute 2 ; PCC y 0 0 ; PCC acute 69 0 ; CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 69 0 ; CC zcaron 2 ; PCC z 0 0 ; PCC caron 69 0 ; EndComposites EndFontMetrics enscript-1.6.5.90/afm/por.afm0000644000175000017500000003750611132443251012561 00000000000000StartFontMetrics 2.0 Comment Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Mon Jul 2 22:14:17 1990 Comment UniqueID 31790 Comment VMusage 36445 47337 FontName Palatino-Roman FullName Palatino Roman FamilyName Palatino Weight Roman ItalicAngle 0 IsFixedPitch false FontBBox -166 -283 1021 927 UnderlinePosition -100 UnderlineThickness 50 Version 001.005 Notice Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All Rights Reserved.Palatino is a trademark of Linotype AG and/or its subsidiaries. EncodingScheme AdobeStandardEncoding CapHeight 692 XHeight 469 Ascender 726 Descender -281 StartCharMetrics 228 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 52 469 319 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 -3 751 692 ; C 69 ; WX 611 ; N E ; B 22 -3 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 -3 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 704 ; 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 0 331 726 ; 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 701 ; 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 61 469 147 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 694 ; 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 75 537 175 637 ; C 200 ; WX 333 ; N dieresis ; B 17 537 316 637 ; 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 68 -165 245 -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 -3 908 692 ; C 227 ; WX 333 ; N ordfeminine ; B 24 422 310 709 ; C 232 ; WX 611 ; N Lslash ; B 6 -3 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 667 ; N Zcaron ; B 15 -3 638 908 ; C -1 ; WX 444 ; N ccedilla ; B 26 -225 413 469 ; C -1 ; WX 556 ; N ydieresis ; B 12 -283 544 657 ; C -1 ; WX 500 ; N atilde ; B 32 -12 471 652 ; C -1 ; WX 287 ; N icircumflex ; B -12 -3 300 697 ; C -1 ; WX 300 ; N threesuperior ; B 1 266 299 689 ; C -1 ; WX 479 ; N ecircumflex ; B 26 -20 448 697 ; C -1 ; WX 601 ; N thorn ; B -2 -281 544 726 ; C -1 ; WX 479 ; N egrave ; B 26 -20 448 697 ; C -1 ; WX 300 ; N twosuperior ; B 0 273 301 689 ; C -1 ; WX 479 ; N eacute ; B 26 -20 448 697 ; C -1 ; WX 546 ; N otilde ; B 32 -20 514 652 ; C -1 ; WX 778 ; N Aacute ; B 15 -3 756 908 ; C -1 ; WX 546 ; N ocircumflex ; B 32 -20 514 697 ; C -1 ; WX 556 ; N yacute ; B 12 -283 544 697 ; C -1 ; WX 603 ; N udieresis ; B 18 -12 581 657 ; C -1 ; WX 750 ; N threequarters ; B 15 -3 735 689 ; C -1 ; WX 500 ; N acircumflex ; B 32 -12 471 697 ; C -1 ; WX 774 ; N Eth ; B 14 -3 751 692 ; C -1 ; WX 479 ; N edieresis ; B 26 -20 448 657 ; C -1 ; WX 603 ; N ugrave ; B 18 -12 581 697 ; C -1 ; WX 979 ; N trademark ; B 40 285 939 689 ; C -1 ; WX 546 ; N ograve ; B 32 -20 514 697 ; C -1 ; WX 424 ; N scaron ; B 30 -20 391 685 ; C -1 ; WX 337 ; N Idieresis ; B 19 -3 318 868 ; C -1 ; WX 603 ; N uacute ; B 18 -12 581 697 ; C -1 ; WX 500 ; N agrave ; B 32 -12 471 697 ; C -1 ; WX 582 ; N ntilde ; B 6 -3 572 652 ; C -1 ; WX 500 ; N aring ; B 32 -12 471 716 ; C -1 ; WX 500 ; N zcaron ; B 16 -3 466 685 ; C -1 ; WX 337 ; N Icircumflex ; B 13 -3 325 908 ; C -1 ; WX 831 ; N Ntilde ; B 17 -20 813 871 ; C -1 ; WX 603 ; N ucircumflex ; B 18 -12 581 697 ; C -1 ; WX 611 ; N Ecircumflex ; B 22 -3 572 908 ; C -1 ; WX 337 ; N Iacute ; B 22 -3 315 908 ; C -1 ; WX 709 ; N Ccedilla ; B 22 -225 670 709 ; C -1 ; WX 786 ; N Odieresis ; B 22 -20 764 868 ; C -1 ; WX 525 ; N Scaron ; B 24 -20 503 908 ; C -1 ; WX 611 ; N Edieresis ; B 22 -3 572 868 ; C -1 ; WX 337 ; N Igrave ; B 22 -3 315 908 ; C -1 ; WX 500 ; N adieresis ; B 32 -12 471 657 ; C -1 ; WX 786 ; N Ograve ; B 22 -20 764 908 ; C -1 ; WX 611 ; N Egrave ; B 22 -3 572 908 ; C -1 ; WX 667 ; N Ydieresis ; B 9 -3 654 868 ; C -1 ; WX 747 ; N registered ; B 11 -18 736 706 ; C -1 ; WX 786 ; N Otilde ; B 22 -20 764 883 ; C -1 ; WX 750 ; N onequarter ; B 30 -3 727 692 ; C -1 ; WX 778 ; N Ugrave ; B 12 -20 759 908 ; C -1 ; WX 778 ; N Ucircumflex ; B 12 -20 759 908 ; C -1 ; WX 604 ; N Thorn ; B 32 -3 574 692 ; C -1 ; WX 606 ; N divide ; B 51 10 555 512 ; C -1 ; WX 778 ; N Atilde ; B 15 -3 756 871 ; C -1 ; WX 778 ; N Uacute ; B 12 -20 759 908 ; C -1 ; WX 786 ; N Ocircumflex ; B 22 -20 764 908 ; C -1 ; WX 606 ; N logicalnot ; B 51 120 551 386 ; C -1 ; WX 778 ; N Aring ; B 15 -3 756 927 ; C -1 ; WX 287 ; N idieresis ; B -6 -3 293 657 ; C -1 ; WX 287 ; N iacute ; B 21 -3 279 697 ; C -1 ; WX 500 ; N aacute ; B 32 -12 471 697 ; C -1 ; WX 606 ; N plusminus ; B 51 0 555 512 ; C -1 ; WX 606 ; N multiply ; B 83 36 523 474 ; C -1 ; WX 778 ; N Udieresis ; B 12 -20 759 868 ; C -1 ; WX 606 ; N minus ; B 51 233 555 289 ; C -1 ; WX 300 ; N onesuperior ; B 31 273 269 692 ; C -1 ; WX 611 ; N Eacute ; B 22 -3 572 908 ; C -1 ; WX 778 ; N Acircumflex ; B 15 -3 756 908 ; C -1 ; WX 747 ; N copyright ; B 11 -18 736 706 ; C -1 ; WX 778 ; N Agrave ; B 15 -3 756 908 ; C -1 ; WX 546 ; N odieresis ; B 32 -20 514 657 ; C -1 ; WX 546 ; N oacute ; B 32 -20 514 697 ; C -1 ; WX 400 ; N degree ; B 50 389 350 689 ; C -1 ; WX 287 ; N igrave ; B 8 -3 271 697 ; C -1 ; WX 603 ; N mu ; B 18 -236 581 469 ; C -1 ; WX 786 ; N Oacute ; B 22 -20 764 908 ; C -1 ; WX 546 ; N eth ; B 32 -20 504 728 ; C -1 ; WX 778 ; N Adieresis ; B 15 -3 756 868 ; C -1 ; WX 667 ; N Yacute ; B 9 -3 654 908 ; C -1 ; WX 606 ; N brokenbar ; B 275 0 331 726 ; C -1 ; WX 750 ; N onehalf ; B 15 -3 735 692 ; EndCharMetrics StartKernData StartKernPairs 111 KPX A y -74 KPX A w -74 KPX A v -92 KPX A space -55 KPX A quoteright -74 KPX A Y -111 KPX A W -74 KPX A V -111 KPX A T -74 KPX F period -92 KPX F comma -92 KPX F A -74 KPX L y -55 KPX L space -37 KPX L quoteright -74 KPX L Y -92 KPX L W -74 KPX L V -92 KPX L T -74 KPX P space -18 KPX P period -129 KPX P comma -129 KPX P A -92 KPX R y -37 KPX R Y -37 KPX R W -37 KPX R V -55 KPX R T -37 KPX T y -90 KPX T w -90 KPX T u -90 KPX T semicolon -55 KPX T s -90 KPX T r -90 KPX T period -74 KPX T o -92 KPX T i -55 KPX T hyphen -55 KPX T e -92 KPX T comma -74 KPX T colon -55 KPX T c -111 KPX T a -92 KPX T O -18 KPX T A -74 KPX V y -92 KPX V u -92 KPX V semicolon -55 KPX V r -92 KPX V period -129 KPX V o -111 KPX V i -55 KPX V hyphen -74 KPX V e -111 KPX V comma -129 KPX V colon -55 KPX V a -92 KPX V A -111 KPX W y -50 KPX W u -50 KPX W semicolon -18 KPX W r -74 KPX W period -92 KPX W o -92 KPX W i -55 KPX W hyphen -55 KPX W e -92 KPX W comma -92 KPX W colon -18 KPX W a -92 KPX W A -92 KPX Y v -90 KPX Y u -90 KPX Y space -18 KPX Y semicolon -74 KPX Y q -90 KPX Y period -111 KPX Y p -111 KPX Y o -92 KPX Y i -55 KPX Y hyphen -92 KPX Y e -92 KPX Y comma -111 KPX Y colon -74 KPX Y a -92 KPX Y A -92 KPX f quoteright 55 KPX f f -18 KPX one one -55 KPX quoteleft quoteleft -37 KPX quoteright quoteright -37 KPX r u -8 KPX r quoteright 74 KPX r q -18 KPX r period -74 KPX r o -18 KPX r hyphen -18 KPX r h -18 KPX r g -18 KPX r e -18 KPX r d -18 KPX r comma -74 KPX r c -18 KPX space Y -18 KPX space A -37 KPX v period -111 KPX v comma -111 KPX w period -92 KPX w comma -92 KPX y period -111 KPX y comma -111 EndKernPairs EndKernData StartComposites 58 CC Aacute 2 ; PCC A 0 0 ; PCC acute 229 231 ; CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 223 231 ; CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 223 231 ; CC Agrave 2 ; PCC A 0 0 ; PCC grave 215 231 ; CC Aring 2 ; PCC A 0 0 ; PCC ring 223 231 ; CC Atilde 2 ; PCC A 0 0 ; PCC tilde 223 231 ; CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 188 0 ; CC Eacute 2 ; PCC E 0 0 ; PCC acute 139 231 ; CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 139 231 ; CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 139 231 ; CC Egrave 2 ; PCC E 0 0 ; PCC grave 139 231 ; CC Iacute 2 ; PCC I 0 0 ; PCC acute 2 231 ; CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 2 231 ; CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 2 231 ; CC Igrave 2 ; PCC I 0 0 ; PCC grave 2 231 ; CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 249 231 ; CC Oacute 2 ; PCC O 0 0 ; PCC acute 227 231 ; CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 227 231 ; CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 227 231 ; CC Ograve 2 ; PCC O 0 0 ; PCC grave 227 231 ; CC Otilde 2 ; PCC O 0 0 ; PCC tilde 227 243 ; CC Scaron 2 ; PCC S 0 0 ; PCC caron 96 231 ; CC Uacute 2 ; PCC U 0 0 ; PCC acute 255 231 ; CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 247 231 ; CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 223 231 ; CC Ugrave 2 ; PCC U 0 0 ; PCC grave 223 231 ; CC Yacute 2 ; PCC Y 0 0 ; PCC acute 203 231 ; CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 191 231 ; CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 179 231 ; CC aacute 2 ; PCC a 0 0 ; PCC acute 84 20 ; CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 72 20 ; CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 72 20 ; CC agrave 2 ; PCC a 0 0 ; PCC grave 60 20 ; CC aring 2 ; PCC a 0 0 ; PCC ring 72 20 ; CC atilde 2 ; PCC a 0 0 ; PCC tilde 72 12 ; CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 56 0 ; CC eacute 2 ; PCC e 0 0 ; PCC acute 97 20 ; CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 85 20 ; CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 73 20 ; CC egrave 2 ; PCC e 0 0 ; PCC grave 73 20 ; CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -23 20 ; CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -23 20 ; CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -23 20 ; CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -23 20 ; CC ntilde 2 ; PCC n 0 0 ; PCC tilde 113 12 ; CC oacute 2 ; PCC o 0 0 ; PCC acute 107 20 ; CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 107 20 ; CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 107 20 ; CC ograve 2 ; PCC o 0 0 ; PCC grave 95 20 ; CC otilde 2 ; PCC o 0 0 ; PCC tilde 107 12 ; CC scaron 2 ; PCC s 0 0 ; PCC caron 46 8 ; CC uacute 2 ; PCC u 0 0 ; PCC acute 159 20 ; CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 135 20 ; CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 135 20 ; CC ugrave 2 ; PCC u 0 0 ; PCC grave 111 20 ; CC yacute 2 ; PCC y 0 0 ; PCC acute 144 20 ; CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 112 20 ; CC zcaron 2 ; PCC z 0 0 ; PCC caron 84 8 ; EndComposites EndFontMetrics enscript-1.6.5.90/afm/tii.afm0000644000175000017500000004443511132443251012545 00000000000000StartFontMetrics 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 enscript-1.6.5.90/afm/hvn.afm0000644000175000017500000004373211132443251012552 00000000000000StartFontMetrics 2.0 Comment Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All rights reserved. Comment Creation Date: Thu Mar 15 11:04:57 1990 Comment UniqueID 28380 Comment VMusage 7572 42473 FontName Helvetica-Narrow FullName Helvetica Narrow FamilyName Helvetica Weight Medium ItalicAngle 0 IsFixedPitch false FontBBox -136 -225 820 931 UnderlinePosition -100 UnderlineThickness 50 Version 001.006 Notice Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All rights reserved.Helvetica is a trademark of Linotype AG and/or its subsidiaries. EncodingScheme AdobeStandardEncoding CapHeight 718 XHeight 523 Ascender 718 Descender -207 StartCharMetrics 228 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 20 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 -19 137 737 ; 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 61 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 304 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 20 304 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 501 ; N Zcaron ; B 19 0 482 929 ; C -1 ; WX 410 ; N ccedilla ; B 25 -225 391 538 ; C -1 ; WX 410 ; N ydieresis ; B 9 -214 401 706 ; C -1 ; WX 456 ; N atilde ; B 30 -15 435 722 ; C -1 ; WX 228 ; N icircumflex ; B -5 0 234 734 ; C -1 ; WX 273 ; N threesuperior ; B 4 270 266 703 ; C -1 ; WX 456 ; N ecircumflex ; B 33 -15 423 734 ; C -1 ; WX 456 ; N thorn ; B 48 -207 424 718 ; C -1 ; WX 456 ; N egrave ; B 33 -15 423 734 ; C -1 ; WX 273 ; N twosuperior ; B 3 281 265 703 ; C -1 ; WX 456 ; N eacute ; B 33 -15 423 734 ; C -1 ; WX 456 ; N otilde ; B 29 -14 427 722 ; C -1 ; WX 547 ; N Aacute ; B 11 0 536 929 ; C -1 ; WX 456 ; N ocircumflex ; B 29 -14 427 734 ; C -1 ; WX 410 ; N yacute ; B 9 -214 401 734 ; C -1 ; WX 456 ; N udieresis ; B 56 -15 401 706 ; C -1 ; WX 684 ; N threequarters ; B 37 -19 664 703 ; C -1 ; WX 456 ; N acircumflex ; B 30 -15 435 734 ; C -1 ; WX 592 ; N Eth ; B 0 0 553 718 ; C -1 ; WX 456 ; N edieresis ; B 33 -15 423 706 ; C -1 ; WX 456 ; N ugrave ; B 56 -15 401 734 ; C -1 ; WX 820 ; N trademark ; B 38 306 740 718 ; C -1 ; WX 456 ; N ograve ; B 29 -14 427 734 ; C -1 ; WX 410 ; N scaron ; B 26 -15 380 734 ; C -1 ; WX 228 ; N Idieresis ; B 11 0 218 901 ; C -1 ; WX 456 ; N uacute ; B 56 -15 401 734 ; C -1 ; WX 456 ; N agrave ; B 30 -15 435 734 ; C -1 ; WX 456 ; N ntilde ; B 53 0 403 722 ; C -1 ; WX 456 ; N aring ; B 30 -15 435 756 ; C -1 ; WX 410 ; N zcaron ; B 25 0 385 734 ; C -1 ; WX 228 ; N Icircumflex ; B -5 0 234 929 ; C -1 ; WX 592 ; N Ntilde ; B 62 0 530 917 ; C -1 ; WX 456 ; N ucircumflex ; B 56 -15 401 734 ; C -1 ; WX 547 ; N Ecircumflex ; B 71 0 505 929 ; C -1 ; WX 228 ; N Iacute ; B 75 0 239 929 ; C -1 ; WX 592 ; N Ccedilla ; B 36 -225 558 737 ; C -1 ; WX 638 ; N Odieresis ; B 32 -19 606 901 ; C -1 ; WX 547 ; N Scaron ; B 40 -19 508 929 ; C -1 ; WX 547 ; N Edieresis ; B 71 0 505 901 ; C -1 ; WX 228 ; N Igrave ; B -11 0 154 929 ; C -1 ; WX 456 ; N adieresis ; B 30 -15 435 706 ; C -1 ; WX 638 ; N Ograve ; B 32 -19 606 929 ; C -1 ; WX 547 ; N Egrave ; B 71 0 505 929 ; C -1 ; WX 547 ; N Ydieresis ; B 11 0 535 901 ; C -1 ; WX 604 ; N registered ; B -11 -19 617 737 ; C -1 ; WX 638 ; N Otilde ; B 32 -19 606 917 ; C -1 ; WX 684 ; N onequarter ; B 60 -19 620 703 ; C -1 ; WX 592 ; N Ugrave ; B 65 -19 528 929 ; C -1 ; WX 592 ; N Ucircumflex ; B 65 -19 528 929 ; C -1 ; WX 547 ; N Thorn ; B 71 0 510 718 ; C -1 ; WX 479 ; N divide ; B 32 -19 447 524 ; C -1 ; WX 547 ; N Atilde ; B 11 0 536 917 ; C -1 ; WX 592 ; N Uacute ; B 65 -19 528 929 ; C -1 ; WX 638 ; N Ocircumflex ; B 32 -19 606 929 ; C -1 ; WX 479 ; N logicalnot ; B 32 108 447 390 ; C -1 ; WX 547 ; N Aring ; B 11 0 536 931 ; C -1 ; WX 228 ; N idieresis ; B 11 0 218 706 ; C -1 ; WX 228 ; N iacute ; B 78 0 239 734 ; C -1 ; WX 456 ; N aacute ; B 30 -15 435 734 ; C -1 ; WX 479 ; N plusminus ; B 32 0 447 506 ; C -1 ; WX 479 ; N multiply ; B 32 0 447 506 ; C -1 ; WX 592 ; N Udieresis ; B 65 -19 528 901 ; C -1 ; WX 479 ; N minus ; B 32 216 447 289 ; C -1 ; WX 273 ; N onesuperior ; B 35 281 182 703 ; C -1 ; WX 547 ; N Eacute ; B 71 0 505 929 ; C -1 ; WX 547 ; N Acircumflex ; B 11 0 536 929 ; C -1 ; WX 604 ; N copyright ; B -11 -19 617 737 ; C -1 ; WX 547 ; N Agrave ; B 11 0 536 929 ; C -1 ; WX 456 ; N odieresis ; B 29 -14 427 706 ; C -1 ; WX 456 ; N oacute ; B 29 -14 427 734 ; C -1 ; WX 328 ; N degree ; B 44 411 284 703 ; C -1 ; WX 228 ; N igrave ; B -11 0 151 734 ; C -1 ; WX 456 ; N mu ; B 56 -207 401 523 ; C -1 ; WX 638 ; N Oacute ; B 32 -19 606 929 ; C -1 ; WX 456 ; N eth ; B 29 -15 428 737 ; C -1 ; WX 547 ; N Adieresis ; B 11 0 536 901 ; C -1 ; WX 547 ; N Yacute ; B 11 0 535 929 ; C -1 ; WX 213 ; N brokenbar ; B 77 -19 137 737 ; C -1 ; WX 684 ; N onehalf ; B 35 -19 634 703 ; EndCharMetrics StartKernData StartKernPairs 250 KPX A y -32 KPX A w -32 KPX A v -32 KPX A u -24 KPX A Y -81 KPX A W -40 KPX A V -56 KPX A U -40 KPX A T -97 KPX A Q -24 KPX A O -24 KPX A G -24 KPX A C -24 KPX B period -15 KPX B comma -15 KPX B U -7 KPX C period -24 KPX C comma -24 KPX D period -56 KPX D comma -56 KPX D Y -73 KPX D W -32 KPX D V -56 KPX D A -32 KPX F r -36 KPX F period -122 KPX F o -24 KPX F e -24 KPX F comma -122 KPX F a -40 KPX F A -65 KPX J u -15 KPX J period -24 KPX J comma -24 KPX J a -15 KPX J A -15 KPX K y -40 KPX K u -24 KPX K o -32 KPX K e -32 KPX K O -40 KPX L y -24 KPX L quoteright -130 KPX L quotedblright -114 KPX L Y -114 KPX L W -56 KPX L V -89 KPX L T -89 KPX O period -32 KPX O comma -32 KPX O Y -56 KPX O X -48 KPX O W -24 KPX O V -40 KPX O T -32 KPX O A -15 KPX P period -147 KPX P o -40 KPX P e -40 KPX P comma -147 KPX P a -32 KPX P A -97 KPX Q U -7 KPX R Y -40 KPX R W -24 KPX R V -40 KPX R U -32 KPX R T -24 KPX R O -15 KPX S period -15 KPX S comma -15 KPX T y -97 KPX T w -97 KPX T u -97 KPX T semicolon -15 KPX T r -97 KPX T period -97 KPX T o -97 KPX T hyphen -114 KPX T e -97 KPX T comma -97 KPX T colon -15 KPX T a -97 KPX T O -32 KPX T A -97 KPX U period -32 KPX U comma -32 KPX U A -32 KPX V u -56 KPX V semicolon -32 KPX V period -102 KPX V o -65 KPX V hyphen -65 KPX V e -65 KPX V comma -102 KPX V colon -32 KPX V a -56 KPX V O -32 KPX V G -32 KPX V A -65 KPX W y -15 KPX W u -24 KPX W period -65 KPX W o -24 KPX W hyphen -32 KPX W e -24 KPX W comma -65 KPX W a -32 KPX W O -15 KPX W A -40 KPX Y u -89 KPX Y semicolon -48 KPX Y period -114 KPX Y o -114 KPX Y i -15 KPX Y hyphen -114 KPX Y e -114 KPX Y comma -114 KPX Y colon -48 KPX Y a -114 KPX Y O -69 KPX Y A -89 KPX a y -24 KPX a w -15 KPX a v -15 KPX b y -15 KPX b v -15 KPX b u -15 KPX b period -32 KPX b l -15 KPX b comma -32 KPX b b -7 KPX c k -15 KPX c comma -11 KPX colon space -40 KPX comma quoteright -81 KPX comma quotedblright -81 KPX e y -15 KPX e x -24 KPX e w -15 KPX e v -24 KPX e period -11 KPX e comma -11 KPX f quoteright 41 KPX f quotedblright 49 KPX f period -24 KPX f o -24 KPX f e -24 KPX f dotlessi -22 KPX f comma -24 KPX f a -24 KPX g r -7 KPX h y -24 KPX k o -15 KPX k e -15 KPX m y -11 KPX m u -7 KPX n y -11 KPX n v -15 KPX n u -7 KPX o y -24 KPX o x -24 KPX o w -11 KPX o v -11 KPX o period -32 KPX o comma -32 KPX oslash z -44 KPX oslash y -56 KPX oslash x -69 KPX oslash w -56 KPX oslash v -56 KPX oslash u -44 KPX oslash t -44 KPX oslash s -44 KPX oslash r -44 KPX oslash q -44 KPX oslash period -77 KPX oslash p -44 KPX oslash o -44 KPX oslash n -44 KPX oslash m -44 KPX oslash l -44 KPX oslash k -44 KPX oslash j -44 KPX oslash i -44 KPX oslash h -44 KPX oslash g -44 KPX oslash f -44 KPX oslash e -44 KPX oslash d -44 KPX oslash comma -77 KPX oslash c -44 KPX oslash b -44 KPX oslash a -44 KPX p y -24 KPX p period -28 KPX p comma -28 KPX period space -48 KPX period quoteright -81 KPX period quotedblright -81 KPX quotedblright space -32 KPX quoteleft quoteleft -46 KPX quoteright space -56 KPX quoteright s -40 KPX quoteright r -40 KPX quoteright quoteright -46 KPX quoteright d -40 KPX r y 25 KPX r v 25 KPX r u 12 KPX r t 33 KPX r semicolon 25 KPX r period -40 KPX r p 25 KPX r n 21 KPX r m 21 KPX r l 12 KPX r k 12 KPX r i 12 KPX r comma -40 KPX r colon 25 KPX r a -7 KPX s w -24 KPX s period -11 KPX s comma -11 KPX semicolon space -40 KPX space quoteleft -48 KPX space quotedblleft -24 KPX space Y -73 KPX space W -32 KPX space V -40 KPX space T -40 KPX v period -65 KPX v o -20 KPX v e -20 KPX v comma -65 KPX v a -20 KPX w period -48 KPX w o -7 KPX w e -7 KPX w comma -48 KPX w a -11 KPX x e -24 KPX y period -81 KPX y o -15 KPX y e -15 KPX y comma -81 KPX y a -15 KPX z o -11 KPX z e -11 EndKernPairs EndKernData StartComposites 58 CC Aacute 2 ; PCC A 0 0 ; PCC acute 137 195 ; CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 137 195 ; CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 137 195 ; CC Agrave 2 ; PCC A 0 0 ; PCC grave 137 195 ; CC Aring 2 ; PCC A 0 0 ; PCC ring 137 175 ; CC Atilde 2 ; PCC A 0 0 ; PCC tilde 137 195 ; CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 160 0 ; CC Eacute 2 ; PCC E 0 0 ; PCC acute 137 195 ; CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 137 195 ; CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 137 195 ; CC Egrave 2 ; PCC E 0 0 ; PCC grave 137 195 ; CC Iacute 2 ; PCC I 0 0 ; PCC acute -22 195 ; CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex -22 195 ; CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis -22 195 ; CC Igrave 2 ; PCC I 0 0 ; PCC grave -22 195 ; CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 168 195 ; CC Oacute 2 ; PCC O 0 0 ; PCC acute 183 195 ; CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 183 195 ; CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 183 195 ; CC Ograve 2 ; PCC O 0 0 ; PCC grave 183 195 ; CC Otilde 2 ; PCC O 0 0 ; PCC tilde 183 195 ; CC Scaron 2 ; PCC S 0 0 ; PCC caron 137 195 ; CC Uacute 2 ; PCC U 0 0 ; PCC acute 160 195 ; CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 160 195 ; CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 160 195 ; CC Ugrave 2 ; PCC U 0 0 ; PCC grave 160 195 ; CC Yacute 2 ; PCC Y 0 0 ; PCC acute 137 195 ; CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 137 195 ; CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 114 195 ; CC aacute 2 ; PCC a 0 0 ; PCC acute 92 0 ; CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 92 0 ; CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 92 0 ; CC agrave 2 ; PCC a 0 0 ; PCC grave 92 0 ; CC aring 2 ; PCC a 0 0 ; PCC ring 92 0 ; CC atilde 2 ; PCC a 0 0 ; PCC tilde 84 0 ; CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 69 0 ; CC eacute 2 ; PCC e 0 0 ; PCC acute 92 0 ; CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 92 0 ; CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 92 0 ; CC egrave 2 ; PCC e 0 0 ; PCC grave 92 0 ; CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -22 0 ; CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -22 0 ; CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -22 0 ; CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -22 0 ; CC ntilde 2 ; PCC n 0 0 ; PCC tilde 84 0 ; CC oacute 2 ; PCC o 0 0 ; PCC acute 92 0 ; CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 92 0 ; CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 92 0 ; CC ograve 2 ; PCC o 0 0 ; PCC grave 92 0 ; CC otilde 2 ; PCC o 0 0 ; PCC tilde 92 0 ; CC scaron 2 ; PCC s 0 0 ; PCC caron 69 0 ; CC uacute 2 ; PCC u 0 0 ; PCC acute 92 0 ; CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 92 0 ; CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 92 0 ; CC ugrave 2 ; PCC u 0 0 ; PCC grave 92 0 ; CC yacute 2 ; PCC y 0 0 ; PCC acute 69 0 ; CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 69 0 ; CC zcaron 2 ; PCC z 0 0 ; PCC caron 69 0 ; EndComposites EndFontMetrics enscript-1.6.5.90/afm/tibi.afm0000644000175000017500000004443711132443251012711 00000000000000StartFontMetrics 2.0 Comment Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Tue Mar 20 13:14:55 1990 Comment UniqueID 28425 Comment VMusage 32721 39613 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 001.009 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 669 XHeight 462 Ascender 699 Descender -205 StartCharMetrics 228 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 -18 154 685 ; 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 525 293 655 ; C 200 ; WX 333 ; N dieresis ; B 55 525 397 655 ; 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 -40 -173 189 44 ; 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 -13 -9 301 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 611 ; N Zcaron ; B -11 0 590 897 ; C -1 ; WX 444 ; N ccedilla ; B -24 -218 392 462 ; C -1 ; WX 444 ; N ydieresis ; B -94 -205 438 655 ; C -1 ; WX 500 ; N atilde ; B -21 -14 491 655 ; C -1 ; WX 278 ; N icircumflex ; B -2 -9 325 690 ; C -1 ; WX 300 ; N threesuperior ; B 17 265 321 683 ; C -1 ; WX 444 ; N ecircumflex ; B 5 -13 423 690 ; C -1 ; WX 500 ; N thorn ; B -120 -205 446 699 ; C -1 ; WX 444 ; N egrave ; B 5 -13 398 697 ; C -1 ; WX 300 ; N twosuperior ; B 2 274 313 683 ; C -1 ; WX 444 ; N eacute ; B 5 -13 435 697 ; C -1 ; WX 500 ; N otilde ; B -3 -13 491 655 ; C -1 ; WX 667 ; N Aacute ; B -67 0 593 904 ; C -1 ; WX 500 ; N ocircumflex ; B -3 -13 451 690 ; C -1 ; WX 444 ; N yacute ; B -94 -205 435 697 ; C -1 ; WX 556 ; N udieresis ; B 15 -9 494 655 ; C -1 ; WX 750 ; N threequarters ; B 7 -14 726 683 ; C -1 ; WX 500 ; N acircumflex ; B -21 -14 455 690 ; C -1 ; WX 722 ; N Eth ; B -31 0 700 669 ; C -1 ; WX 444 ; N edieresis ; B 5 -13 443 655 ; C -1 ; WX 556 ; N ugrave ; B 15 -9 492 697 ; C -1 ; WX 1000 ; N trademark ; B 32 263 968 669 ; C -1 ; WX 500 ; N ograve ; B -3 -13 441 697 ; C -1 ; WX 389 ; N scaron ; B -19 -13 439 690 ; C -1 ; WX 389 ; N Idieresis ; B -32 0 445 862 ; C -1 ; WX 556 ; N uacute ; B 15 -9 492 697 ; C -1 ; WX 500 ; N agrave ; B -21 -14 455 697 ; C -1 ; WX 556 ; N ntilde ; B -6 -9 504 655 ; C -1 ; WX 500 ; N aring ; B -21 -14 455 729 ; C -1 ; WX 389 ; N zcaron ; B -43 -78 424 690 ; C -1 ; WX 389 ; N Icircumflex ; B -32 0 420 897 ; C -1 ; WX 722 ; N Ntilde ; B -27 -15 748 862 ; C -1 ; WX 556 ; N ucircumflex ; B 15 -9 492 690 ; C -1 ; WX 667 ; N Ecircumflex ; B -27 0 653 897 ; C -1 ; WX 389 ; N Iacute ; B -32 0 412 904 ; C -1 ; WX 667 ; N Ccedilla ; B 32 -218 677 685 ; C -1 ; WX 722 ; N Odieresis ; B 27 -18 691 862 ; C -1 ; WX 556 ; N Scaron ; B 2 -18 526 897 ; C -1 ; WX 667 ; N Edieresis ; B -27 0 653 862 ; C -1 ; WX 389 ; N Igrave ; B -32 0 406 904 ; C -1 ; WX 500 ; N adieresis ; B -21 -14 471 655 ; C -1 ; WX 722 ; N Ograve ; B 27 -18 691 904 ; C -1 ; WX 667 ; N Egrave ; B -27 0 653 904 ; C -1 ; WX 611 ; N Ydieresis ; B 73 0 659 862 ; C -1 ; WX 747 ; N registered ; B 30 -18 718 685 ; C -1 ; WX 722 ; N Otilde ; B 27 -18 691 862 ; C -1 ; WX 750 ; N onequarter ; B 7 -14 721 683 ; C -1 ; WX 722 ; N Ugrave ; B 67 -18 744 904 ; C -1 ; WX 722 ; N Ucircumflex ; B 67 -18 744 897 ; C -1 ; WX 611 ; N Thorn ; B -27 0 573 669 ; C -1 ; WX 570 ; N divide ; B 33 -29 537 535 ; C -1 ; WX 667 ; N Atilde ; B -67 0 593 862 ; C -1 ; WX 722 ; N Uacute ; B 67 -18 744 904 ; C -1 ; WX 722 ; N Ocircumflex ; B 27 -18 691 897 ; C -1 ; WX 606 ; N logicalnot ; B 51 108 555 399 ; C -1 ; WX 667 ; N Aring ; B -67 0 593 921 ; C -1 ; WX 278 ; N idieresis ; B 2 -9 360 655 ; C -1 ; WX 278 ; N iacute ; B 2 -9 352 697 ; C -1 ; WX 500 ; N aacute ; B -21 -14 463 697 ; C -1 ; WX 570 ; N plusminus ; B 33 0 537 506 ; C -1 ; WX 570 ; N multiply ; B 48 16 522 490 ; C -1 ; WX 722 ; N Udieresis ; B 67 -18 744 862 ; C -1 ; WX 606 ; N minus ; B 51 209 555 297 ; C -1 ; WX 300 ; N onesuperior ; B 30 274 301 683 ; C -1 ; WX 667 ; N Eacute ; B -27 0 653 904 ; C -1 ; WX 667 ; N Acircumflex ; B -67 0 593 897 ; C -1 ; WX 747 ; N copyright ; B 30 -18 718 685 ; C -1 ; WX 667 ; N Agrave ; B -67 0 593 904 ; C -1 ; WX 500 ; N odieresis ; B -3 -13 466 655 ; C -1 ; WX 500 ; N oacute ; B -3 -13 463 697 ; C -1 ; WX 400 ; N degree ; B 83 397 369 683 ; C -1 ; WX 278 ; N igrave ; B 2 -9 260 697 ; C -1 ; WX 576 ; N mu ; B -60 -207 516 449 ; C -1 ; WX 722 ; N Oacute ; B 27 -18 691 904 ; C -1 ; WX 500 ; N eth ; B -3 -13 454 699 ; C -1 ; WX 667 ; N Adieresis ; B -67 0 593 862 ; C -1 ; WX 611 ; N Yacute ; B 73 0 659 904 ; C -1 ; WX 220 ; N brokenbar ; B 66 -18 154 685 ; C -1 ; WX 750 ; N onehalf ; B -9 -14 723 683 ; EndCharMetrics StartKernData StartKernPairs 283 KPX A y -74 KPX A w -74 KPX A v -74 KPX A u -30 KPX A quoteright -74 KPX A quotedblright 0 KPX A p 0 KPX A Y -70 KPX A W -100 KPX A V -95 KPX A U -50 KPX A T -55 KPX A Q -55 KPX A O -50 KPX A G -60 KPX A C -65 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 -50 KPX D W -40 KPX D V -50 KPX D A -25 KPX F r -50 KPX F period -129 KPX F o -70 KPX F i -40 KPX F e -100 KPX F comma -129 KPX F a -95 KPX F A -100 KPX G period 0 KPX G comma 0 KPX J u -40 KPX J period -10 KPX J o -40 KPX J e -40 KPX J comma -10 KPX J a -40 KPX J A -25 KPX K y -20 KPX K u -20 KPX K o -25 KPX K e -25 KPX K O -30 KPX L y -37 KPX L quoteright -55 KPX L quotedblright 0 KPX L Y -37 KPX L W -37 KPX L V -37 KPX L T -18 KPX N period 0 KPX N comma 0 KPX N A -30 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 -40 KPX P period -129 KPX P o -55 KPX P e -50 KPX P comma -129 KPX P a -40 KPX P A -85 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 -30 KPX R O -40 KPX S period 0 KPX S comma 0 KPX T y -37 KPX T w -37 KPX T u -37 KPX T semicolon -74 KPX T r -37 KPX T period -92 KPX T o -95 KPX T i -37 KPX T hyphen -92 KPX T h 0 KPX T e -92 KPX T comma -92 KPX T colon -74 KPX T a -92 KPX T O -18 KPX T A -55 KPX U period 0 KPX U comma 0 KPX U A -45 KPX V u -55 KPX V semicolon -74 KPX V period -129 KPX V o -111 KPX V i -55 KPX V hyphen -70 KPX V e -111 KPX V comma -129 KPX V colon -74 KPX V a -111 KPX V O -30 KPX V G -10 KPX V A -85 KPX W y -55 KPX W u -55 KPX W semicolon -55 KPX W period -74 KPX W o -80 KPX W i -37 KPX W hyphen -50 KPX W h 0 KPX W e -90 KPX W comma -74 KPX W colon -55 KPX W a -85 KPX W O -15 KPX W A -74 KPX Y u -92 KPX Y semicolon -92 KPX Y period -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 O -25 KPX Y A -74 KPX a y 0 KPX a w 0 KPX a v 0 KPX a t 0 KPX a p 0 KPX a g 0 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 -10 KPX c y 0 KPX c period 0 KPX c l 0 KPX c k -10 KPX c h -10 KPX c comma 0 KPX colon space 0 KPX comma space 0 KPX comma quoteright -95 KPX comma quotedblright -95 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 0 KPX e x 0 KPX e w 0 KPX e v 0 KPX e period 0 KPX e p 0 KPX e g 0 KPX e comma 0 KPX e b -10 KPX f quoteright 55 KPX f quotedblright 0 KPX f period -10 KPX f o -10 KPX f l 0 KPX f i 0 KPX f f -18 KPX f e -10 KPX f dotlessi -30 KPX f comma -10 KPX f a 0 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 0 KPX h y 0 KPX i v 0 KPX k y 0 KPX k o -10 KPX k e -30 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 -10 KPX o x -10 KPX o w -25 KPX o v -15 KPX o g 0 KPX p y 0 KPX period quoteright -95 KPX period quotedblright -95 KPX quotedblleft quoteleft 0 KPX quotedblleft A 0 KPX quotedblright space 0 KPX quoteleft quoteleft -74 KPX quoteleft A 0 KPX quoteright v -15 KPX quoteright t -37 KPX quoteright space -74 KPX quoteright s -74 KPX quoteright r -15 KPX quoteright quoteright -74 KPX quoteright quotedblright 0 KPX quoteright l 0 KPX quoteright d -15 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 -65 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 0 KPX r g 0 KPX r e 0 KPX r d 0 KPX r comma -65 KPX r c 0 KPX r a 0 KPX s w 0 KPX space quoteleft 0 KPX space quotedblleft 0 KPX space Y -70 KPX space W -70 KPX space V -70 KPX space T 0 KPX space A -37 KPX v period -37 KPX v o -15 KPX v e -15 KPX v comma -37 KPX v a 0 KPX w period -37 KPX w o -15 KPX w h 0 KPX w e -10 KPX w comma -37 KPX w a -10 KPX x e -10 KPX y period -37 KPX y o 0 KPX y e 0 KPX y comma -37 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 172 207 ; CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 187 207 ; CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 167 207 ; CC Agrave 2 ; PCC A 0 0 ; PCC grave 172 207 ; CC Aring 2 ; PCC A 0 0 ; PCC ring 157 192 ; CC Atilde 2 ; PCC A 0 0 ; PCC tilde 167 207 ; CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 167 0 ; CC Eacute 2 ; PCC E 0 0 ; PCC acute 172 207 ; CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 187 207 ; CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 187 207 ; CC Egrave 2 ; PCC E 0 0 ; PCC grave 172 207 ; CC Iacute 2 ; PCC I 0 0 ; PCC acute 33 207 ; CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 53 207 ; CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 48 207 ; CC Igrave 2 ; PCC I 0 0 ; PCC grave 33 207 ; CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 210 207 ; CC Oacute 2 ; PCC O 0 0 ; PCC acute 200 207 ; CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 230 207 ; CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 215 207 ; CC Ograve 2 ; PCC O 0 0 ; PCC grave 200 207 ; CC Otilde 2 ; PCC O 0 0 ; PCC tilde 215 207 ; CC Scaron 2 ; PCC S 0 0 ; PCC caron 112 207 ; CC Uacute 2 ; PCC U 0 0 ; PCC acute 210 207 ; CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 230 207 ; CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 230 207 ; CC Ugrave 2 ; PCC U 0 0 ; PCC grave 200 207 ; CC Yacute 2 ; PCC Y 0 0 ; PCC acute 154 207 ; CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 169 207 ; CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 139 207 ; 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 74 0 ; CC agrave 2 ; PCC a 0 0 ; PCC grave 74 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 46 0 ; CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -27 0 ; CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -42 0 ; CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -37 0 ; CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -37 0 ; CC ntilde 2 ; PCC n 0 0 ; PCC tilde 97 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 69 0 ; CC ograve 2 ; PCC o 0 0 ; PCC grave 74 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 112 0 ; CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 112 0 ; CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 97 0 ; CC ugrave 2 ; PCC u 0 0 ; PCC grave 102 0 ; CC yacute 2 ; PCC y 0 0 ; PCC acute 56 0 ; CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 41 0 ; CC zcaron 2 ; PCC z 0 0 ; PCC caron 13 0 ; EndComposites EndFontMetrics enscript-1.6.5.90/afm/hvnb.afm0000644000175000017500000004237111132443251012712 00000000000000StartFontMetrics 2.0 Comment Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Thu Mar 15 11:47:27 1990 Comment UniqueID 28398 Comment VMusage 7614 43068 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 001.007 Notice Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All Rights Reserved.Helvetica is a trademark of Linotype AG and/or its subsidiaries. EncodingScheme AdobeStandardEncoding CapHeight 718 XHeight 532 Ascender 718 Descender -207 StartCharMetrics 228 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 20 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 20 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 -19 161 737 ; 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 184 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 225 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 276 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 276 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 501 ; N Zcaron ; B 20 0 481 936 ; C -1 ; WX 456 ; N ccedilla ; B 28 -228 430 546 ; C -1 ; WX 456 ; N ydieresis ; B 8 -214 442 729 ; C -1 ; WX 456 ; N atilde ; B 24 -14 432 737 ; C -1 ; WX 228 ; N icircumflex ; B -30 0 259 750 ; C -1 ; WX 273 ; N threesuperior ; B 7 271 267 710 ; C -1 ; WX 456 ; N ecircumflex ; B 19 -14 433 750 ; C -1 ; WX 501 ; N thorn ; B 51 -208 474 718 ; C -1 ; WX 456 ; N egrave ; B 19 -14 433 750 ; C -1 ; WX 273 ; N twosuperior ; B 7 283 266 710 ; C -1 ; WX 456 ; N eacute ; B 19 -14 433 750 ; C -1 ; WX 501 ; N otilde ; B 28 -14 474 737 ; C -1 ; WX 592 ; N Aacute ; B 16 0 576 936 ; C -1 ; WX 501 ; N ocircumflex ; B 28 -14 474 750 ; C -1 ; WX 456 ; N yacute ; B 8 -214 442 750 ; C -1 ; WX 501 ; N udieresis ; B 54 -14 447 729 ; C -1 ; WX 684 ; N threequarters ; B 13 -19 655 710 ; C -1 ; WX 456 ; N acircumflex ; B 24 -14 432 750 ; C -1 ; WX 592 ; N Eth ; B -4 0 562 718 ; C -1 ; WX 456 ; N edieresis ; B 19 -14 433 729 ; C -1 ; WX 501 ; N ugrave ; B 54 -14 447 750 ; C -1 ; WX 820 ; N trademark ; B 36 306 784 718 ; C -1 ; WX 501 ; N ograve ; B 28 -14 474 750 ; C -1 ; WX 456 ; N scaron ; B 25 -14 426 750 ; C -1 ; WX 228 ; N Idieresis ; B -17 0 246 915 ; C -1 ; WX 501 ; N uacute ; B 54 -14 447 750 ; C -1 ; WX 456 ; N agrave ; B 24 -14 432 750 ; C -1 ; WX 501 ; N ntilde ; B 53 0 448 737 ; C -1 ; WX 456 ; N aring ; B 24 -14 432 776 ; C -1 ; WX 410 ; N zcaron ; B 16 0 394 750 ; C -1 ; WX 228 ; N Icircumflex ; B -30 0 259 936 ; C -1 ; WX 592 ; N Ntilde ; B 57 0 536 923 ; C -1 ; WX 501 ; N ucircumflex ; B 54 -14 447 750 ; C -1 ; WX 547 ; N Ecircumflex ; B 62 0 509 936 ; C -1 ; WX 228 ; N Iacute ; B 52 0 270 936 ; C -1 ; WX 592 ; N Ccedilla ; B 36 -228 561 737 ; C -1 ; WX 638 ; N Odieresis ; B 36 -19 602 915 ; C -1 ; WX 547 ; N Scaron ; B 32 -19 516 936 ; C -1 ; WX 547 ; N Edieresis ; B 62 0 509 915 ; C -1 ; WX 228 ; N Igrave ; B -41 0 175 936 ; C -1 ; WX 456 ; N adieresis ; B 24 -14 432 729 ; C -1 ; WX 638 ; N Ograve ; B 36 -19 602 936 ; C -1 ; WX 547 ; N Egrave ; B 62 0 509 936 ; C -1 ; WX 547 ; N Ydieresis ; B 12 0 535 915 ; C -1 ; WX 604 ; N registered ; B -9 -19 613 737 ; C -1 ; WX 638 ; N Otilde ; B 36 -19 602 923 ; C -1 ; WX 684 ; N onequarter ; B 21 -19 628 710 ; C -1 ; WX 592 ; N Ugrave ; B 59 -19 534 936 ; C -1 ; WX 592 ; N Ucircumflex ; B 59 -19 534 936 ; C -1 ; WX 547 ; N Thorn ; B 62 0 514 718 ; C -1 ; WX 479 ; N divide ; B 33 -42 446 548 ; C -1 ; WX 592 ; N Atilde ; B 16 0 576 923 ; C -1 ; WX 592 ; N Uacute ; B 59 -19 534 936 ; C -1 ; WX 638 ; N Ocircumflex ; B 36 -19 602 936 ; C -1 ; WX 479 ; N logicalnot ; B 33 108 446 419 ; C -1 ; WX 592 ; N Aring ; B 16 0 576 962 ; C -1 ; WX 228 ; N idieresis ; B -17 0 246 729 ; C -1 ; WX 228 ; N iacute ; B 57 0 270 750 ; C -1 ; WX 456 ; N aacute ; B 24 -14 432 750 ; C -1 ; WX 479 ; N plusminus ; B 33 0 446 506 ; C -1 ; WX 479 ; N multiply ; B 33 1 447 505 ; C -1 ; WX 592 ; N Udieresis ; B 59 -19 534 915 ; C -1 ; WX 479 ; N minus ; B 33 197 446 309 ; C -1 ; WX 273 ; N onesuperior ; B 21 283 194 710 ; C -1 ; WX 547 ; N Eacute ; B 62 0 509 936 ; C -1 ; WX 592 ; N Acircumflex ; B 16 0 576 936 ; C -1 ; WX 604 ; N copyright ; B -9 -19 614 737 ; C -1 ; WX 592 ; N Agrave ; B 16 0 576 936 ; C -1 ; WX 501 ; N odieresis ; B 28 -14 474 729 ; C -1 ; WX 501 ; N oacute ; B 28 -14 474 750 ; C -1 ; WX 328 ; N degree ; B 47 426 281 712 ; C -1 ; WX 228 ; N igrave ; B -41 0 171 750 ; C -1 ; WX 501 ; N mu ; B 54 -207 447 532 ; C -1 ; WX 638 ; N Oacute ; B 36 -19 602 936 ; C -1 ; WX 501 ; N eth ; B 28 -14 474 737 ; C -1 ; WX 592 ; N Adieresis ; B 16 0 576 915 ; C -1 ; WX 547 ; N Yacute ; B 12 0 535 936 ; C -1 ; WX 230 ; N brokenbar ; B 69 -19 161 737 ; C -1 ; WX 684 ; N onehalf ; B 21 -19 651 710 ; EndCharMetrics StartKernData StartKernPairs 209 KPX A y -24 KPX A w -24 KPX A v -32 KPX A u -24 KPX A Y -89 KPX A W -48 KPX A V -65 KPX A U -40 KPX A T -73 KPX A Q -32 KPX A O -32 KPX A G -40 KPX A C -32 KPX B U -7 KPX B A -24 KPX D period -24 KPX D comma -24 KPX D Y -56 KPX D W -32 KPX D V -32 KPX D A -32 KPX F period -81 KPX F comma -81 KPX F a -15 KPX F A -65 KPX J u -15 KPX J period -15 KPX J comma -15 KPX J A -15 KPX K y -32 KPX K u -24 KPX K o -28 KPX K e -11 KPX K O -24 KPX L y -24 KPX L quoteright -114 KPX L quotedblright -114 KPX L Y -97 KPX L W -65 KPX L V -89 KPX L T -73 KPX O period -32 KPX O comma -32 KPX O Y -56 KPX O X -40 KPX O W -40 KPX O V -40 KPX O T -32 KPX O A -40 KPX P period -97 KPX P o -32 KPX P e -24 KPX P comma -97 KPX P a -24 KPX P A -81 KPX Q period 16 KPX Q comma 16 KPX Q U -7 KPX R Y -40 KPX R W -32 KPX R V -40 KPX R U -15 KPX R T -15 KPX R O -15 KPX T y -48 KPX T w -48 KPX T u -73 KPX T semicolon -32 KPX T r -65 KPX T period -65 KPX T o -65 KPX T hyphen -97 KPX T e -48 KPX T comma -65 KPX T colon -32 KPX T a -65 KPX T O -32 KPX T A -73 KPX U period -24 KPX U comma -24 KPX U A -40 KPX V u -48 KPX V semicolon -32 KPX V period -97 KPX V o -73 KPX V hyphen -65 KPX V e -40 KPX V comma -97 KPX V colon -32 KPX V a -48 KPX V O -40 KPX V G -40 KPX V A -65 KPX W y -15 KPX W u -36 KPX W semicolon -7 KPX W period -65 KPX W o -48 KPX W hyphen -32 KPX W e -28 KPX W comma -65 KPX W colon -7 KPX W a -32 KPX W O -15 KPX W A -48 KPX Y u -81 KPX Y semicolon -40 KPX Y period -81 KPX Y o -81 KPX Y e -65 KPX Y comma -81 KPX Y colon -40 KPX Y a -73 KPX Y O -56 KPX Y A -89 KPX a y -15 KPX a w -11 KPX a v -11 KPX a g -7 KPX b y -15 KPX b v -15 KPX b u -15 KPX b l -7 KPX c y -7 KPX c l -15 KPX c k -15 KPX c h -7 KPX colon space -32 KPX comma space -32 KPX comma quoteright -97 KPX comma quotedblright -97 KPX d y -11 KPX d w -11 KPX d v -11 KPX d d -7 KPX e y -11 KPX e x -11 KPX e w -11 KPX e v -11 KPX e period 16 KPX e comma 8 KPX f quoteright 25 KPX f quotedblright 25 KPX f period -7 KPX f o -15 KPX f e -7 KPX f comma -7 KPX g g -7 KPX g e 8 KPX h y -15 KPX k o -11 KPX l y -11 KPX l w -11 KPX m y -24 KPX m u -15 KPX n y -15 KPX n v -32 KPX n u -7 KPX o y -15 KPX o x -24 KPX o w -11 KPX o v -15 KPX p y -11 KPX period space -32 KPX period quoteright -97 KPX period quotedblright -97 KPX quotedblright space -65 KPX quoteleft quoteleft -37 KPX quoteright v -15 KPX quoteright space -65 KPX quoteright s -48 KPX quoteright r -32 KPX quoteright quoteright -37 KPX quoteright l -15 KPX quoteright d -65 KPX r y 8 KPX r v 8 KPX r t 16 KPX r s -11 KPX r q -15 KPX r period -48 KPX r o -15 KPX r hyphen -15 KPX r g -11 KPX r d -15 KPX r comma -48 KPX r c -15 KPX s w -11 KPX semicolon space -32 KPX space quoteleft -48 KPX space quotedblleft -65 KPX space Y -97 KPX space W -65 KPX space V -65 KPX space T -81 KPX v period -65 KPX v o -24 KPX v comma -65 KPX v a -15 KPX w period -32 KPX w o -15 KPX w comma -32 KPX x e -7 KPX y period -65 KPX y o -20 KPX y e -7 KPX y comma -65 KPX y a -24 KPX z e 8 EndKernPairs EndKernData StartComposites 58 CC Aacute 2 ; PCC A 0 0 ; PCC acute 160 186 ; CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 160 186 ; CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 160 186 ; CC Agrave 2 ; PCC A 0 0 ; PCC grave 160 186 ; CC Aring 2 ; PCC A 0 0 ; PCC ring 160 186 ; CC Atilde 2 ; PCC A 0 0 ; PCC tilde 160 186 ; CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 176 0 ; CC Eacute 2 ; PCC E 0 0 ; PCC acute 137 186 ; CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 137 186 ; CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 137 186 ; CC Egrave 2 ; PCC E 0 0 ; PCC grave 137 186 ; CC Iacute 2 ; PCC I 0 0 ; PCC acute -22 186 ; CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex -22 186 ; CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis -22 186 ; CC Igrave 2 ; PCC I 0 0 ; PCC grave -22 186 ; CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 160 186 ; CC Oacute 2 ; PCC O 0 0 ; PCC acute 183 186 ; CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 183 186 ; CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 183 186 ; CC Ograve 2 ; PCC O 0 0 ; PCC grave 183 186 ; CC Otilde 2 ; PCC O 0 0 ; PCC tilde 183 186 ; CC Scaron 2 ; PCC S 0 0 ; PCC caron 137 186 ; CC Uacute 2 ; PCC U 0 0 ; PCC acute 160 186 ; CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 160 186 ; CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 160 186 ; CC Ugrave 2 ; PCC U 0 0 ; PCC grave 160 186 ; CC Yacute 2 ; PCC Y 0 0 ; PCC acute 137 186 ; CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 137 186 ; CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 114 186 ; CC aacute 2 ; PCC a 0 0 ; PCC acute 92 0 ; CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 92 0 ; CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 92 0 ; CC agrave 2 ; PCC a 0 0 ; PCC grave 92 0 ; CC aring 2 ; PCC a 0 0 ; PCC ring 92 0 ; CC atilde 2 ; PCC a 0 0 ; PCC tilde 92 0 ; CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 108 0 ; CC eacute 2 ; PCC e 0 0 ; PCC acute 92 0 ; CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 92 0 ; CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 92 0 ; CC egrave 2 ; PCC e 0 0 ; PCC grave 92 0 ; CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -22 0 ; CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -22 0 ; CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -22 0 ; CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -22 0 ; CC ntilde 2 ; PCC n 0 0 ; PCC tilde 114 0 ; CC oacute 2 ; PCC o 0 0 ; PCC acute 114 0 ; CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 114 0 ; CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 114 0 ; CC ograve 2 ; PCC o 0 0 ; PCC grave 114 0 ; CC otilde 2 ; PCC o 0 0 ; PCC tilde 114 0 ; CC scaron 2 ; PCC s 0 0 ; PCC caron 92 0 ; CC uacute 2 ; PCC u 0 0 ; PCC acute 114 0 ; CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 114 0 ; CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 114 0 ; CC ugrave 2 ; PCC u 0 0 ; PCC grave 114 0 ; CC yacute 2 ; PCC y 0 0 ; PCC acute 92 0 ; CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 92 0 ; CC zcaron 2 ; PCC z 0 0 ; PCC caron 69 0 ; EndComposites EndFontMetrics enscript-1.6.5.90/afm/agdo.afm0000644000175000017500000004265011132443251012667 00000000000000StartFontMetrics 2.0 Comment Copyright (c) 1985, 1987, 1989, 1990, 1991 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Mon Mar 4 13:49:44 1991 Comment UniqueID 34373 Comment VMusage 6550 39938 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 001.007 Notice Copyright (c) 1985, 1987, 1989, 1990, 1991 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 -185 StartCharMetrics 228 C 32 ; WX 280 ; N space ; B 0 0 0 0 ; C 33 ; WX 280 ; N exclam ; B 73 0 343 740 ; C 34 ; WX 360 ; N quotedbl ; B 127 444 478 740 ; C 35 ; WX 560 ; N numbersign ; B 66 0 618 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 71 -15 742 755 ; C 39 ; WX 280 ; N quoteright ; B 159 466 342 740 ; C 40 ; WX 380 ; N parenleft ; B 120 -157 490 754 ; C 41 ; WX 380 ; N parenright ; B 8 -157 378 754 ; C 42 ; WX 440 ; N asterisk ; B 174 457 492 755 ; C 43 ; WX 600 ; N plus ; B 84 0 610 506 ; C 44 ; WX 280 ; N comma ; B 48 -141 231 133 ; C 45 ; WX 420 ; N hyphen ; B 114 230 413 348 ; C 46 ; WX 280 ; N period ; B 73 0 231 133 ; C 47 ; WX 460 ; N slash ; B -13 -100 591 740 ; C 48 ; WX 560 ; N zero ; B 70 -15 628 755 ; C 49 ; WX 560 ; N one ; B 230 0 500 740 ; C 50 ; WX 560 ; N two ; B 44 0 622 755 ; C 51 ; WX 560 ; N three ; B 67 -15 585 755 ; C 52 ; WX 560 ; N four ; B 36 0 604 740 ; C 53 ; WX 560 ; N five ; B 64 -15 600 740 ; C 54 ; WX 560 ; N six ; B 64 -15 587 739 ; C 55 ; WX 560 ; N seven ; B 83 0 635 740 ; C 56 ; WX 560 ; N eight ; B 71 -15 590 755 ; C 57 ; WX 560 ; N nine ; B 110 0 633 754 ; C 58 ; WX 280 ; N colon ; B 73 0 309 555 ; C 59 ; WX 280 ; N semicolon ; B 48 -141 309 555 ; C 60 ; WX 600 ; N less ; B 84 -8 649 514 ; C 61 ; WX 600 ; N equal ; B 63 81 631 425 ; C 62 ; WX 600 ; N greater ; B 45 -8 610 514 ; C 63 ; WX 560 ; N question ; B 135 0 593 755 ; C 64 ; WX 740 ; N at ; B 109 -12 832 712 ; C 65 ; WX 740 ; N A ; B 7 0 732 740 ; C 66 ; WX 580 ; N B ; B 70 0 610 740 ; C 67 ; WX 780 ; N C ; B 97 -15 864 755 ; C 68 ; WX 700 ; N D ; B 63 0 732 740 ; C 69 ; WX 520 ; N E ; B 61 0 596 740 ; C 70 ; WX 480 ; N F ; B 61 0 575 740 ; C 71 ; WX 840 ; N G ; B 89 -15 887 755 ; C 72 ; WX 680 ; N H ; B 71 0 747 740 ; C 73 ; WX 280 ; N I ; B 72 0 346 740 ; C 74 ; WX 480 ; N J ; B 34 -15 546 740 ; C 75 ; WX 620 ; N K ; B 89 0 757 740 ; C 76 ; WX 440 ; N L ; B 72 0 459 740 ; C 77 ; WX 900 ; N M ; B 63 0 974 740 ; C 78 ; WX 740 ; N N ; B 70 0 808 740 ; C 79 ; WX 840 ; N O ; B 95 -15 882 755 ; C 80 ; WX 560 ; N P ; B 72 0 645 740 ; C 81 ; WX 840 ; N Q ; B 94 -15 882 755 ; C 82 ; WX 580 ; N R ; B 64 0 656 740 ; C 83 ; WX 520 ; N S ; B 49 -15 578 755 ; C 84 ; WX 420 ; N T ; B 119 0 555 740 ; C 85 ; WX 640 ; N U ; B 97 -15 722 740 ; C 86 ; WX 700 ; N V ; B 145 0 832 740 ; C 87 ; WX 900 ; N W ; B 144 0 1036 740 ; C 88 ; WX 680 ; N X ; B 4 0 813 740 ; C 89 ; WX 620 ; N Y ; B 135 0 759 740 ; C 90 ; WX 500 ; N Z ; B 19 0 599 740 ; C 91 ; WX 320 ; N bracketleft ; B 89 -157 424 754 ; C 92 ; WX 640 ; N backslash ; B 233 -100 525 740 ; C 93 ; WX 320 ; N bracketright ; B 7 -157 342 754 ; C 94 ; WX 600 ; N asciicircum ; B 142 375 596 740 ; C 95 ; WX 500 ; N underscore ; B -23 -125 486 -75 ; C 96 ; WX 280 ; N quoteleft ; B 158 466 341 740 ; C 97 ; WX 660 ; N a ; B 73 -18 716 574 ; C 98 ; WX 660 ; N b ; B 47 -18 689 740 ; C 99 ; WX 640 ; N c ; B 84 -18 679 574 ; C 100 ; WX 660 ; N d ; B 80 -18 755 740 ; C 101 ; WX 640 ; N e ; B 77 -18 667 577 ; 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 323 740 ; C 106 ; WX 260 ; N j ; B -18 -185 342 740 ; C 107 ; WX 580 ; N k ; B 80 0 648 740 ; C 108 ; WX 240 ; N l ; B 54 0 324 740 ; C 109 ; WX 940 ; N m ; B 54 0 954 574 ; C 110 ; WX 600 ; N n ; B 54 0 613 574 ; C 111 ; WX 640 ; N o ; B 71 -18 672 574 ; C 112 ; WX 660 ; N p ; B 13 -185 686 574 ; C 113 ; WX 660 ; N q ; B 78 -185 716 574 ; C 114 ; WX 320 ; N r ; B 63 0 423 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 87 -18 647 555 ; C 118 ; WX 560 ; N v ; B 106 0 659 555 ; C 119 ; WX 800 ; N w ; B 114 0 892 555 ; C 120 ; WX 560 ; N x ; B 3 0 632 555 ; C 121 ; WX 580 ; N y ; B 75 -185 674 555 ; C 122 ; WX 460 ; N z ; B 20 0 528 555 ; C 123 ; WX 340 ; N braceleft ; B 40 -191 455 747 ; C 124 ; WX 600 ; N bar ; B 214 -100 503 740 ; C 125 ; WX 340 ; N braceright ; B -12 -191 405 747 ; C 126 ; WX 600 ; N asciitilde ; B 114 160 579 347 ; C 161 ; WX 280 ; N exclamdown ; B 40 -185 310 555 ; C 162 ; WX 560 ; N cent ; B 110 39 599 715 ; C 163 ; WX 560 ; N sterling ; B 38 0 615 755 ; C 164 ; WX 160 ; N fraction ; B -123 0 419 740 ; C 165 ; WX 560 ; N yen ; B 83 0 707 740 ; C 166 ; WX 560 ; N florin ; B -27 -151 664 824 ; C 167 ; WX 560 ; N section ; B 65 -158 602 755 ; C 168 ; WX 560 ; N currency ; B 53 69 628 577 ; C 169 ; WX 220 ; N quotesingle ; B 152 444 314 740 ; C 170 ; WX 480 ; N quotedblleft ; B 156 466 546 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 253 469 ; C 174 ; WX 520 ; N fi ; B 72 0 598 755 ; C 175 ; WX 520 ; N fl ; B 72 0 598 755 ; C 177 ; WX 500 ; N endash ; B 78 230 529 348 ; C 178 ; WX 560 ; N dagger ; B 133 -142 612 740 ; C 179 ; WX 560 ; N daggerdbl ; B 63 -142 618 740 ; C 180 ; WX 280 ; N periodcentered ; B 108 187 265 320 ; C 182 ; WX 600 ; N paragraph ; B 90 -103 744 740 ; C 183 ; WX 600 ; N bullet ; B 215 222 526 532 ; C 184 ; WX 280 ; N quotesinglbase ; B 47 -141 230 133 ; C 185 ; WX 480 ; N quotedblbase ; B 45 -141 435 133 ; C 186 ; WX 480 ; N quotedblright ; B 157 466 547 740 ; C 187 ; WX 460 ; N guillemotright ; B 81 108 463 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 69 -200 527 555 ; C 193 ; WX 420 ; N grave ; B 189 624 462 851 ; C 194 ; WX 420 ; N acute ; B 224 624 508 849 ; C 195 ; WX 540 ; N circumflex ; B 189 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 185 633 582 770 ; C 199 ; WX 280 ; N dotaccent ; B 192 636 350 769 ; C 200 ; WX 500 ; N dieresis ; B 196 636 565 769 ; C 202 ; WX 360 ; N ring ; B 206 619 424 834 ; C 203 ; WX 340 ; N cedilla ; B 67 -251 272 6 ; C 205 ; WX 700 ; N hungarumlaut ; B 258 610 754 862 ; C 206 ; WX 340 ; N ogonek ; B 59 -195 243 9 ; C 207 ; WX 540 ; N caron ; B 214 636 613 774 ; C 208 ; WX 1000 ; N emdash ; B 78 230 1029 348 ; C 225 ; WX 900 ; N AE ; B -5 0 961 740 ; C 227 ; WX 360 ; N ordfeminine ; B 127 438 472 755 ; C 232 ; WX 480 ; N Lslash ; B 68 0 484 740 ; C 233 ; WX 840 ; N Oslash ; B 94 -71 891 814 ; C 234 ; WX 1060 ; N OE ; B 98 -15 1144 755 ; C 235 ; WX 360 ; N ordmasculine ; B 131 438 451 755 ; C 241 ; WX 1080 ; N ae ; B 75 -18 1105 574 ; C 245 ; WX 240 ; N dotlessi ; B 53 0 289 555 ; C 248 ; WX 320 ; N lslash ; B 74 0 404 740 ; C 249 ; WX 660 ; N oslash ; B 81 -50 685 608 ; C 250 ; WX 1080 ; N oe ; B 76 -18 1108 574 ; C 251 ; WX 600 ; N germandbls ; B 51 -18 629 755 ; C -1 ; WX 640 ; N ecircumflex ; B 77 -18 667 774 ; C -1 ; WX 640 ; N edieresis ; B 77 -18 667 769 ; C -1 ; WX 660 ; N aacute ; B 73 -18 716 849 ; C -1 ; WX 740 ; N registered ; B 50 -12 827 752 ; C -1 ; WX 240 ; N icircumflex ; B 39 0 438 774 ; C -1 ; WX 600 ; N udieresis ; B 87 -18 647 769 ; C -1 ; WX 640 ; N ograve ; B 71 -18 672 851 ; C -1 ; WX 600 ; N uacute ; B 87 -18 647 849 ; C -1 ; WX 600 ; N ucircumflex ; B 87 -18 647 774 ; C -1 ; WX 740 ; N Aacute ; B 7 0 732 1019 ; C -1 ; WX 240 ; N igrave ; B 53 0 347 851 ; C -1 ; WX 280 ; N Icircumflex ; B 72 0 489 944 ; C -1 ; WX 640 ; N ccedilla ; B 83 -251 679 574 ; C -1 ; WX 660 ; N adieresis ; B 73 -18 716 769 ; C -1 ; WX 520 ; N Ecircumflex ; B 61 0 609 944 ; C -1 ; WX 440 ; N scaron ; B 49 -18 563 774 ; C -1 ; WX 660 ; N thorn ; B 13 -185 686 740 ; C -1 ; WX 1000 ; N trademark ; B 131 296 958 740 ; C -1 ; WX 640 ; N egrave ; B 77 -18 667 851 ; C -1 ; WX 336 ; N threesuperior ; B 87 287 413 749 ; C -1 ; WX 460 ; N zcaron ; B 20 0 598 774 ; C -1 ; WX 660 ; N atilde ; B 73 -18 716 767 ; C -1 ; WX 660 ; N aring ; B 73 -18 716 834 ; C -1 ; WX 640 ; N ocircumflex ; B 71 -18 672 774 ; C -1 ; WX 520 ; N Edieresis ; B 61 0 606 939 ; C -1 ; WX 840 ; N threequarters ; B 97 0 836 749 ; C -1 ; WX 580 ; N ydieresis ; B 75 -185 674 769 ; C -1 ; WX 580 ; N yacute ; B 75 -185 674 849 ; C -1 ; WX 240 ; N iacute ; B 53 0 443 849 ; C -1 ; WX 740 ; N Acircumflex ; B 7 0 732 944 ; C -1 ; WX 640 ; N Uacute ; B 97 -15 722 1019 ; C -1 ; WX 640 ; N eacute ; B 77 -18 667 849 ; C -1 ; WX 840 ; N Ograve ; B 95 -15 882 1021 ; C -1 ; WX 660 ; N agrave ; B 73 -18 716 851 ; C -1 ; WX 640 ; N Udieresis ; B 97 -15 722 939 ; C -1 ; WX 660 ; N acircumflex ; B 73 -18 716 774 ; C -1 ; WX 280 ; N Igrave ; B 72 0 398 1021 ; C -1 ; WX 336 ; N twosuperior ; B 73 296 436 749 ; C -1 ; WX 640 ; N Ugrave ; B 97 -15 722 1021 ; C -1 ; WX 840 ; N onequarter ; B 187 0 779 740 ; C -1 ; WX 640 ; N Ucircumflex ; B 97 -15 722 944 ; C -1 ; WX 520 ; N Scaron ; B 49 -15 635 944 ; C -1 ; WX 280 ; N Idieresis ; B 72 0 486 939 ; C -1 ; WX 240 ; N idieresis ; B 53 0 435 769 ; C -1 ; WX 520 ; N Egrave ; B 61 0 596 1021 ; C -1 ; WX 840 ; N Oacute ; B 95 -15 882 1019 ; C -1 ; WX 600 ; N divide ; B 84 -20 610 526 ; C -1 ; WX 740 ; N Atilde ; B 7 0 732 937 ; C -1 ; WX 740 ; N Aring ; B 7 0 732 969 ; C -1 ; WX 840 ; N Odieresis ; B 95 -15 882 939 ; C -1 ; WX 740 ; N Adieresis ; B 7 0 732 939 ; C -1 ; WX 740 ; N Ntilde ; B 70 0 808 937 ; C -1 ; WX 500 ; N Zcaron ; B 19 0 650 944 ; C -1 ; WX 560 ; N Thorn ; B 72 0 619 740 ; C -1 ; WX 280 ; N Iacute ; B 72 0 494 1019 ; C -1 ; WX 600 ; N plusminus ; B 37 -62 626 556 ; C -1 ; WX 600 ; N multiply ; B 76 12 617 494 ; C -1 ; WX 520 ; N Eacute ; B 61 0 596 1019 ; C -1 ; WX 620 ; N Ydieresis ; B 135 0 759 939 ; C -1 ; WX 336 ; N onesuperior ; B 182 296 360 740 ; C -1 ; WX 600 ; N ugrave ; B 87 -18 647 851 ; C -1 ; WX 600 ; N logicalnot ; B 105 108 631 425 ; C -1 ; WX 600 ; N ntilde ; B 54 0 624 767 ; C -1 ; WX 840 ; N Otilde ; B 95 -15 882 937 ; C -1 ; WX 640 ; N otilde ; B 71 -18 672 767 ; C -1 ; WX 780 ; N Ccedilla ; B 97 -251 864 755 ; C -1 ; WX 740 ; N Agrave ; B 7 0 732 1021 ; C -1 ; WX 840 ; N onehalf ; B 157 0 830 740 ; C -1 ; WX 742 ; N Eth ; B 83 0 766 740 ; C -1 ; WX 400 ; N degree ; B 160 426 451 712 ; C -1 ; WX 620 ; N Yacute ; B 135 0 759 1019 ; C -1 ; WX 840 ; N Ocircumflex ; B 95 -15 882 944 ; C -1 ; WX 640 ; N oacute ; B 71 -18 672 849 ; C -1 ; WX 576 ; N mu ; B 3 -187 642 555 ; C -1 ; WX 600 ; N minus ; B 84 193 610 313 ; C -1 ; WX 640 ; N eth ; B 73 -18 699 754 ; C -1 ; WX 640 ; N odieresis ; B 71 -18 672 769 ; C -1 ; WX 740 ; N copyright ; B 50 -12 827 752 ; C -1 ; WX 600 ; N brokenbar ; B 214 -100 503 740 ; EndCharMetrics StartKernData StartKernPairs 218 KPX A y -50 KPX A w -65 KPX A v -70 KPX A u -20 KPX A quoteright -90 KPX A Y -80 KPX A W -60 KPX A V -102 KPX A U -40 KPX A T -25 KPX A Q -50 KPX A O -50 KPX A G -40 KPX A C -40 KPX B A -10 KPX C A -40 KPX D period -20 KPX D comma -20 KPX D Y -45 KPX D W -25 KPX D V -50 KPX D A -50 KPX F period -129 KPX F e -20 KPX F comma -162 KPX F a -20 KPX F A -75 KPX G period -20 KPX G comma -20 KPX G Y -15 KPX J period -15 KPX J a -20 KPX J A -30 KPX K y -20 KPX K u -15 KPX K o -45 KPX K e -40 KPX K O -30 KPX L y -23 KPX L quoteright -30 KPX L quotedblright -30 KPX L Y -80 KPX L W -55 KPX L V -85 KPX L T -46 KPX O period -30 KPX O comma -30 KPX O Y -30 KPX O X -30 KPX O W -20 KPX O V -45 KPX O T -15 KPX O A -60 KPX P period -200 KPX P o -20 KPX P e -20 KPX P comma -220 KPX P a -20 KPX P A -100 KPX Q comma 20 KPX R W 25 KPX R V -10 KPX R U 25 KPX R T 40 KPX R O 25 KPX S comma 20 KPX T y -10 KPX T w -55 KPX T u -46 KPX T semicolon -29 KPX T r -30 KPX T period -91 KPX T o -49 KPX T hyphen -75 KPX T e -49 KPX T comma -82 KPX T colon -15 KPX T a -70 KPX T O -15 KPX T A -25 KPX U period -20 KPX U comma -20 KPX U A -40 KPX V u -55 KPX V semicolon -33 KPX V period -145 KPX V o -101 KPX V i -15 KPX V hyphen -75 KPX V e -101 KPX V comma -145 KPX V colon -18 KPX V a -95 KPX V O -45 KPX V G -20 KPX V A -102 KPX W y -15 KPX W u -30 KPX W semicolon -33 KPX W period -106 KPX W o -46 KPX W i -10 KPX W hyphen -35 KPX W e -47 KPX W comma -106 KPX W colon -15 KPX W a -50 KPX W O -20 KPX W A -58 KPX Y u -52 KPX Y semicolon -23 KPX Y period -145 KPX Y o -89 KPX Y hyphen -100 KPX Y e -89 KPX Y comma -145 KPX Y colon -10 KPX Y a -93 KPX Y O -30 KPX Y A -80 KPX a t 5 KPX a p 20 KPX a b 5 KPX b y -20 KPX b v -20 KPX c y -20 KPX c l -15 KPX c k -15 KPX comma space -50 KPX comma quoteright -70 KPX comma quotedblright -70 KPX e y -20 KPX e x -20 KPX e w -20 KPX e v -20 KPX f period -40 KPX f o -20 KPX f l -15 KPX f i -15 KPX f f -20 KPX f dotlessi -15 KPX f comma -40 KPX f a -15 KPX g i 25 KPX g a 15 KPX h y -30 KPX k y -5 KPX k o -30 KPX k e -40 KPX m y -20 KPX m u -20 KPX n y -15 KPX n v -30 KPX o y -20 KPX o x -30 KPX o w -20 KPX o v -30 KPX p y -20 KPX period space -50 KPX period quoteright -70 KPX period quotedblright -70 KPX quotedblleft A -50 KPX quotedblright space -50 KPX quoteleft quoteleft -80 KPX quoteleft A -50 KPX quoteright v -10 KPX quoteright t 10 KPX quoteright space -50 KPX quoteright s -15 KPX quoteright r -20 KPX quoteright quoteright -80 KPX quoteright d -50 KPX r y 40 KPX r v 40 KPX r u 20 KPX r t 20 KPX r s 20 KPX r q -8 KPX r period -73 KPX r p 20 KPX r o -15 KPX r n 21 KPX r m 15 KPX r l 20 KPX r k 5 KPX r i 20 KPX r hyphen -60 KPX r g 1 KPX r e -4 KPX r d -6 KPX r comma -75 KPX r c -7 KPX s period 20 KPX s comma 20 KPX space quoteleft -50 KPX space quotedblleft -50 KPX space Y -60 KPX space W -25 KPX space V -80 KPX space T -25 KPX space A -20 KPX v period -90 KPX v o -20 KPX v e -20 KPX v comma -90 KPX v a -30 KPX w period -90 KPX w o -30 KPX w e -20 KPX w comma -90 KPX w a -30 KPX x e -20 KPX y period -100 KPX y o -30 KPX y e -20 KPX y comma -100 KPX y c -35 KPX y a -30 EndKernPairs EndKernData StartComposites 56 CC Aacute 2 ; PCC A 0 0 ; PCC acute 192 170 ; CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 132 170 ; CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 152 170 ; CC Agrave 2 ; PCC A 0 0 ; PCC grave 192 170 ; CC Aring 2 ; PCC A 0 0 ; PCC ring 215 135 ; CC Atilde 2 ; PCC A 0 0 ; PCC tilde 162 170 ; CC Eacute 2 ; PCC E 0 0 ; PCC acute 82 170 ; CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 22 170 ; CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 42 170 ; CC Egrave 2 ; PCC E 0 0 ; PCC grave 82 170 ; CC Iacute 2 ; PCC I 0 0 ; PCC acute -13 170 ; CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex -98 170 ; CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis -78 170 ; CC Igrave 2 ; PCC I 0 0 ; PCC grave -63 170 ; CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 162 170 ; CC Oacute 2 ; PCC O 0 0 ; PCC acute 242 170 ; CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 182 170 ; CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 202 170 ; CC Ograve 2 ; PCC O 0 0 ; PCC grave 242 170 ; CC Otilde 2 ; PCC O 0 0 ; PCC tilde 212 170 ; CC Scaron 2 ; PCC S 0 0 ; PCC caron 22 170 ; CC Uacute 2 ; PCC U 0 0 ; PCC acute 177 170 ; CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 82 170 ; CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 102 170 ; CC Ugrave 2 ; PCC U 0 0 ; PCC grave 107 170 ; CC Yacute 2 ; PCC Y 0 0 ; PCC acute 167 170 ; CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 92 170 ; CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 37 170 ; CC aacute 2 ; PCC a 0 0 ; PCC acute 120 0 ; CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 60 0 ; CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 80 0 ; CC agrave 2 ; PCC a 0 0 ; PCC grave 120 0 ; CC aring 2 ; PCC a 0 0 ; PCC ring 150 0 ; CC atilde 2 ; PCC a 0 0 ; PCC tilde 90 0 ; CC eacute 2 ; PCC e 0 0 ; PCC acute 110 0 ; CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 50 0 ; CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 70 0 ; CC egrave 2 ; PCC e 0 0 ; PCC grave 110 0 ; CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -65 0 ; CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -150 0 ; CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -130 0 ; CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -115 0 ; CC ntilde 2 ; PCC n 0 0 ; PCC tilde 60 0 ; CC oacute 2 ; PCC o 0 0 ; PCC acute 110 0 ; CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 50 0 ; CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 70 0 ; CC ograve 2 ; PCC o 0 0 ; PCC grave 110 0 ; CC otilde 2 ; PCC o 0 0 ; PCC tilde 80 0 ; CC scaron 2 ; PCC s 0 0 ; PCC caron -50 0 ; CC uacute 2 ; PCC u 0 0 ; PCC acute 125 0 ; CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 30 0 ; CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 50 0 ; CC ugrave 2 ; PCC u 0 0 ; PCC grave 55 0 ; CC yacute 2 ; PCC y 0 0 ; PCC acute 115 0 ; CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 40 0 ; CC zcaron 2 ; PCC z 0 0 ; PCC caron -15 0 ; EndComposites EndFontMetrics enscript-1.6.5.90/afm/agd.afm0000644000175000017500000004254011132443251012506 00000000000000StartFontMetrics 2.0 Comment Copyright (c) 1985, 1987, 1989, 1990, 1991 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Mon Mar 4 13:46:34 1991 Comment UniqueID 34370 Comment VMusage 24954 31846 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 001.007 Notice Copyright (c) 1985, 1987, 1989, 1990, 1991 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 -185 StartCharMetrics 228 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 577 ; 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 -100 366 740 ; 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 91 624 370 849 ; 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 132 610 609 862 ; 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 1048 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 640 ; N ecircumflex ; B 31 -18 610 774 ; C -1 ; WX 640 ; N edieresis ; B 31 -18 610 769 ; C -1 ; WX 660 ; N aacute ; B 27 -18 613 849 ; C -1 ; WX 740 ; N registered ; B -12 -12 752 752 ; C -1 ; WX 240 ; N icircumflex ; B -79 0 320 774 ; C -1 ; WX 600 ; N udieresis ; B 50 -18 544 769 ; C -1 ; WX 640 ; N ograve ; B 25 -18 615 851 ; C -1 ; WX 600 ; N uacute ; B 50 -18 544 849 ; C -1 ; WX 600 ; N ucircumflex ; B 50 -18 544 774 ; C -1 ; WX 740 ; N Aacute ; B 7 0 732 1019 ; C -1 ; WX 240 ; N igrave ; B -65 0 214 851 ; C -1 ; WX 280 ; N Icircumflex ; B -59 0 340 944 ; C -1 ; WX 640 ; N ccedilla ; B 37 -251 610 574 ; C -1 ; WX 660 ; N adieresis ; B 27 -18 613 769 ; C -1 ; WX 520 ; N Ecircumflex ; B 61 0 460 944 ; C -1 ; WX 440 ; N scaron ; B 19 -18 421 774 ; C -1 ; WX 660 ; N thorn ; B 47 -185 629 740 ; C -1 ; WX 1000 ; N trademark ; B 9 296 821 740 ; C -1 ; WX 640 ; N egrave ; B 31 -18 610 851 ; C -1 ; WX 336 ; N threesuperior ; B 8 287 328 749 ; C -1 ; WX 460 ; N zcaron ; B 20 0 455 774 ; C -1 ; WX 660 ; N atilde ; B 27 -18 613 767 ; C -1 ; WX 660 ; N aring ; B 27 -18 613 834 ; C -1 ; WX 640 ; N ocircumflex ; B 25 -18 615 774 ; C -1 ; WX 520 ; N Edieresis ; B 61 0 459 939 ; C -1 ; WX 840 ; N threequarters ; B 18 0 803 749 ; C -1 ; WX 580 ; N ydieresis ; B 8 -185 571 769 ; C -1 ; WX 580 ; N yacute ; B 8 -185 571 849 ; C -1 ; WX 240 ; N iacute ; B 26 0 305 849 ; C -1 ; WX 740 ; N Acircumflex ; B 7 0 732 944 ; C -1 ; WX 640 ; N Uacute ; B 55 -15 585 1019 ; C -1 ; WX 640 ; N eacute ; B 31 -18 610 849 ; C -1 ; WX 840 ; N Ograve ; B 33 -15 807 1021 ; C -1 ; WX 660 ; N agrave ; B 27 -18 613 851 ; C -1 ; WX 640 ; N Udieresis ; B 55 -15 585 939 ; C -1 ; WX 660 ; N acircumflex ; B 27 -18 613 774 ; C -1 ; WX 280 ; N Igrave ; B -45 0 234 1021 ; C -1 ; WX 336 ; N twosuperior ; B 13 296 322 749 ; C -1 ; WX 640 ; N Ugrave ; B 55 -15 585 1021 ; C -1 ; WX 840 ; N onequarter ; B 92 0 746 740 ; C -1 ; WX 640 ; N Ucircumflex ; B 55 -15 585 944 ; C -1 ; WX 520 ; N Scaron ; B 12 -15 493 944 ; C -1 ; WX 280 ; N Idieresis ; B -32 0 312 939 ; C -1 ; WX 240 ; N idieresis ; B -52 0 292 769 ; C -1 ; WX 520 ; N Egrave ; B 61 0 459 1021 ; C -1 ; WX 840 ; N Oacute ; B 33 -15 807 1019 ; C -1 ; WX 600 ; N divide ; B 48 -20 552 526 ; C -1 ; WX 740 ; N Atilde ; B 7 0 732 937 ; C -1 ; WX 740 ; N Aring ; B 7 0 732 969 ; C -1 ; WX 840 ; N Odieresis ; B 33 -15 807 939 ; C -1 ; WX 740 ; N Adieresis ; B 7 0 732 939 ; C -1 ; WX 740 ; N Ntilde ; B 70 0 671 937 ; C -1 ; WX 500 ; N Zcaron ; B 19 0 481 944 ; C -1 ; WX 560 ; N Thorn ; B 72 0 545 740 ; C -1 ; WX 280 ; N Iacute ; B 46 0 325 1019 ; C -1 ; WX 600 ; N plusminus ; B 48 -62 552 556 ; C -1 ; WX 600 ; N multiply ; B 59 12 541 494 ; C -1 ; WX 520 ; N Eacute ; B 61 0 459 1019 ; C -1 ; WX 620 ; N Ydieresis ; B -2 0 622 939 ; C -1 ; WX 336 ; N onesuperior ; B 72 296 223 740 ; C -1 ; WX 600 ; N ugrave ; B 50 -18 544 851 ; C -1 ; WX 600 ; N logicalnot ; B 48 108 552 425 ; C -1 ; WX 600 ; N ntilde ; B 54 0 547 767 ; C -1 ; WX 840 ; N Otilde ; B 33 -15 807 937 ; C -1 ; WX 640 ; N otilde ; B 25 -18 615 767 ; C -1 ; WX 780 ; N Ccedilla ; B 34 -251 766 755 ; C -1 ; WX 740 ; N Agrave ; B 7 0 732 1021 ; C -1 ; WX 840 ; N onehalf ; B 62 0 771 740 ; C -1 ; WX 742 ; N Eth ; B 25 0 691 740 ; C -1 ; WX 400 ; N degree ; B 57 426 343 712 ; C -1 ; WX 620 ; N Yacute ; B -2 0 622 1019 ; C -1 ; WX 840 ; N Ocircumflex ; B 33 -15 807 944 ; C -1 ; WX 640 ; N oacute ; B 25 -18 615 849 ; C -1 ; WX 576 ; N mu ; B 38 -187 539 555 ; C -1 ; WX 600 ; N minus ; B 48 193 552 313 ; C -1 ; WX 640 ; N eth ; B 27 -18 616 754 ; C -1 ; WX 640 ; N odieresis ; B 25 -18 615 769 ; C -1 ; WX 740 ; N copyright ; B -12 -12 752 752 ; C -1 ; WX 600 ; N brokenbar ; B 233 -100 366 740 ; EndCharMetrics StartKernData StartKernPairs 218 KPX A y -50 KPX A w -65 KPX A v -70 KPX A u -20 KPX A quoteright -90 KPX A Y -80 KPX A W -60 KPX A V -102 KPX A U -40 KPX A T -25 KPX A Q -50 KPX A O -50 KPX A G -40 KPX A C -40 KPX B A -10 KPX C A -40 KPX D period -20 KPX D comma -20 KPX D Y -45 KPX D W -25 KPX D V -50 KPX D A -50 KPX F period -129 KPX F e -20 KPX F comma -162 KPX F a -20 KPX F A -75 KPX G period -20 KPX G comma -20 KPX G Y -15 KPX J period -15 KPX J a -20 KPX J A -30 KPX K y -20 KPX K u -15 KPX K o -45 KPX K e -40 KPX K O -30 KPX L y -23 KPX L quoteright -30 KPX L quotedblright -30 KPX L Y -80 KPX L W -55 KPX L V -85 KPX L T -46 KPX O period -30 KPX O comma -30 KPX O Y -30 KPX O X -30 KPX O W -20 KPX O V -45 KPX O T -15 KPX O A -60 KPX P period -200 KPX P o -20 KPX P e -20 KPX P comma -220 KPX P a -20 KPX P A -100 KPX Q comma 20 KPX R W 25 KPX R V -10 KPX R U 25 KPX R T 40 KPX R O 25 KPX S comma 20 KPX T y -10 KPX T w -55 KPX T u -46 KPX T semicolon -29 KPX T r -30 KPX T period -91 KPX T o -49 KPX T hyphen -75 KPX T e -49 KPX T comma -82 KPX T colon -15 KPX T a -70 KPX T O -15 KPX T A -25 KPX U period -20 KPX U comma -20 KPX U A -40 KPX V u -55 KPX V semicolon -33 KPX V period -145 KPX V o -101 KPX V i -15 KPX V hyphen -75 KPX V e -101 KPX V comma -145 KPX V colon -18 KPX V a -95 KPX V O -45 KPX V G -20 KPX V A -102 KPX W y -15 KPX W u -30 KPX W semicolon -33 KPX W period -106 KPX W o -46 KPX W i -10 KPX W hyphen -35 KPX W e -47 KPX W comma -106 KPX W colon -15 KPX W a -50 KPX W O -20 KPX W A -58 KPX Y u -52 KPX Y semicolon -23 KPX Y period -145 KPX Y o -89 KPX Y hyphen -100 KPX Y e -89 KPX Y comma -145 KPX Y colon -10 KPX Y a -93 KPX Y O -30 KPX Y A -80 KPX a t 5 KPX a p 20 KPX a b 5 KPX b y -20 KPX b v -20 KPX c y -20 KPX c l -15 KPX c k -15 KPX comma space -50 KPX comma quoteright -70 KPX comma quotedblright -70 KPX e y -20 KPX e x -20 KPX e w -20 KPX e v -20 KPX f period -40 KPX f o -20 KPX f l -15 KPX f i -15 KPX f f -20 KPX f dotlessi -15 KPX f comma -40 KPX f a -15 KPX g i 25 KPX g a 15 KPX h y -30 KPX k y -5 KPX k o -30 KPX k e -40 KPX m y -20 KPX m u -20 KPX n y -15 KPX n v -30 KPX o y -20 KPX o x -30 KPX o w -20 KPX o v -30 KPX p y -20 KPX period space -50 KPX period quoteright -70 KPX period quotedblright -70 KPX quotedblleft A -50 KPX quotedblright space -50 KPX quoteleft quoteleft -80 KPX quoteleft A -50 KPX quoteright v -10 KPX quoteright t 10 KPX quoteright space -50 KPX quoteright s -15 KPX quoteright r -20 KPX quoteright quoteright -80 KPX quoteright d -50 KPX r y 40 KPX r v 40 KPX r u 20 KPX r t 20 KPX r s 20 KPX r q -8 KPX r period -73 KPX r p 20 KPX r o -15 KPX r n 21 KPX r m 15 KPX r l 20 KPX r k 5 KPX r i 20 KPX r hyphen -60 KPX r g 1 KPX r e -4 KPX r d -6 KPX r comma -75 KPX r c -7 KPX s period 20 KPX s comma 20 KPX space quoteleft -50 KPX space quotedblleft -50 KPX space Y -60 KPX space W -25 KPX space V -80 KPX space T -25 KPX space A -20 KPX v period -90 KPX v o -20 KPX v e -20 KPX v comma -90 KPX v a -30 KPX w period -90 KPX w o -30 KPX w e -20 KPX w comma -90 KPX w a -30 KPX x e -20 KPX y period -100 KPX y o -30 KPX y e -20 KPX y comma -100 KPX y c -35 KPX y a -30 EndKernPairs EndKernData StartComposites 56 CC Aacute 2 ; PCC A 0 0 ; PCC acute 160 170 ; CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 100 170 ; CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 120 170 ; CC Agrave 2 ; PCC A 0 0 ; PCC grave 160 170 ; CC Aring 2 ; PCC A 0 0 ; PCC ring 190 135 ; CC Atilde 2 ; PCC A 0 0 ; PCC tilde 130 170 ; CC Eacute 2 ; PCC E 0 0 ; PCC acute 50 170 ; CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex -10 170 ; CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 10 170 ; CC Egrave 2 ; PCC E 0 0 ; PCC grave 50 170 ; CC Iacute 2 ; PCC I 0 0 ; PCC acute -45 170 ; CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex -130 170 ; CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis -110 170 ; CC Igrave 2 ; PCC I 0 0 ; PCC grave -95 170 ; CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 130 170 ; CC Oacute 2 ; PCC O 0 0 ; PCC acute 210 170 ; CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 150 170 ; CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 170 170 ; CC Ograve 2 ; PCC O 0 0 ; PCC grave 210 170 ; CC Otilde 2 ; PCC O 0 0 ; PCC tilde 180 170 ; CC Scaron 2 ; PCC S 0 0 ; PCC caron -10 170 ; CC Uacute 2 ; PCC U 0 0 ; PCC acute 145 170 ; CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 50 170 ; CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 70 170 ; CC Ugrave 2 ; PCC U 0 0 ; PCC grave 75 170 ; CC Yacute 2 ; PCC Y 0 0 ; PCC acute 135 170 ; CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 60 170 ; CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 5 170 ; CC aacute 2 ; PCC a 0 0 ; PCC acute 120 0 ; CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 60 0 ; CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 80 0 ; CC agrave 2 ; PCC a 0 0 ; PCC grave 120 0 ; CC aring 2 ; PCC a 0 0 ; PCC ring 150 0 ; CC atilde 2 ; PCC a 0 0 ; PCC tilde 90 0 ; CC eacute 2 ; PCC e 0 0 ; PCC acute 110 0 ; CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 50 0 ; CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 70 0 ; CC egrave 2 ; PCC e 0 0 ; PCC grave 110 0 ; CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -65 0 ; CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -150 0 ; CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -130 0 ; CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -115 0 ; CC ntilde 2 ; PCC n 0 0 ; PCC tilde 60 0 ; CC oacute 2 ; PCC o 0 0 ; PCC acute 110 0 ; CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 50 0 ; CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 70 0 ; CC ograve 2 ; PCC o 0 0 ; PCC grave 110 0 ; CC otilde 2 ; PCC o 0 0 ; PCC tilde 80 0 ; CC scaron 2 ; PCC s 0 0 ; PCC caron -50 0 ; CC uacute 2 ; PCC u 0 0 ; PCC acute 125 0 ; CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 30 0 ; CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 50 0 ; CC ugrave 2 ; PCC u 0 0 ; PCC grave 55 0 ; CC yacute 2 ; PCC y 0 0 ; PCC acute 115 0 ; CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 40 0 ; CC zcaron 2 ; PCC z 0 0 ; PCC caron -15 0 ; EndComposites EndFontMetrics enscript-1.6.5.90/afm/bkdi.afm0000644000175000017500000003652011132443251012665 00000000000000StartFontMetrics 2.0 Comment Copyright (c) 1985, 1987, 1989, 1992 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Tue Jan 21 16:12:43 1992 Comment UniqueID 37832 Comment VMusage 32139 39031 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 001.004 Notice Copyright (c) 1985, 1987, 1989, 1992 Adobe Systems Incorporated. All Rights Reserved.ITC Bookman is a registered trademark of International Typeface Corporation. EncodingScheme AdobeStandardEncoding CapHeight 681 XHeight 515 Ascender 732 Descender -213 StartCharMetrics 228 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 180 570 345 734 ; C 200 ; WX 520 ; N dieresis ; B 180 570 569 734 ; 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 68 -182 253 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 63 -8 412 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 560 ; N ecircumflex ; B 59 -8 596 749 ; C -1 ; WX 560 ; N edieresis ; B 59 -8 596 734 ; C -1 ; WX 680 ; N aacute ; B 84 -8 735 771 ; C -1 ; WX 780 ; N registered ; B 83 -17 783 698 ; C -1 ; WX 380 ; N icircumflex ; B 83 -8 433 749 ; C -1 ; WX 680 ; N udieresis ; B 83 -8 720 734 ; C -1 ; WX 600 ; N ograve ; B 59 -8 627 771 ; C -1 ; WX 680 ; N uacute ; B 83 -8 720 771 ; C -1 ; WX 680 ; N ucircumflex ; B 83 -8 720 749 ; C -1 ; WX 720 ; N Aacute ; B -27 0 769 937 ; C -1 ; WX 380 ; N igrave ; B 83 -8 424 771 ; C -1 ; WX 380 ; N Icircumflex ; B 14 0 493 915 ; C -1 ; WX 560 ; N ccedilla ; B 58 -220 597 515 ; C -1 ; WX 680 ; N adieresis ; B 84 -8 735 734 ; C -1 ; WX 720 ; N Ecircumflex ; B 14 0 777 915 ; C -1 ; WX 540 ; N scaron ; B 32 -8 573 749 ; C -1 ; WX 660 ; N thorn ; B -24 -213 682 732 ; C -1 ; WX 940 ; N trademark ; B 42 277 982 681 ; C -1 ; WX 560 ; N egrave ; B 59 -8 596 771 ; C -1 ; WX 408 ; N threesuperior ; B 86 269 483 698 ; C -1 ; WX 560 ; N zcaron ; B 36 -8 586 749 ; C -1 ; WX 680 ; N atilde ; B 84 -8 735 709 ; C -1 ; WX 680 ; N aring ; B 84 -8 735 775 ; C -1 ; WX 600 ; N ocircumflex ; B 59 -8 627 749 ; C -1 ; WX 720 ; N Edieresis ; B 14 0 777 900 ; C -1 ; WX 1020 ; N threequarters ; B 86 0 1054 691 ; C -1 ; WX 600 ; N ydieresis ; B 25 -213 642 734 ; C -1 ; WX 600 ; N yacute ; B 25 -213 642 771 ; C -1 ; WX 380 ; N iacute ; B 83 -8 420 771 ; C -1 ; WX 720 ; N Acircumflex ; B -27 0 769 915 ; C -1 ; WX 740 ; N Uacute ; B 112 -17 855 937 ; C -1 ; WX 560 ; N eacute ; B 59 -8 596 771 ; C -1 ; WX 760 ; N Ograve ; B 78 -17 806 937 ; C -1 ; WX 680 ; N agrave ; B 84 -8 735 771 ; C -1 ; WX 740 ; N Udieresis ; B 112 -17 855 900 ; C -1 ; WX 680 ; N acircumflex ; B 84 -8 735 749 ; C -1 ; WX 380 ; N Igrave ; B 14 0 485 937 ; C -1 ; WX 408 ; N twosuperior ; B 91 279 485 698 ; C -1 ; WX 740 ; N Ugrave ; B 112 -17 855 937 ; C -1 ; WX 1020 ; N onequarter ; B 118 0 1054 681 ; C -1 ; WX 740 ; N Ucircumflex ; B 112 -17 855 915 ; C -1 ; WX 700 ; N Scaron ; B 59 -17 731 915 ; C -1 ; WX 380 ; N Idieresis ; B 14 0 499 900 ; C -1 ; WX 380 ; N idieresis ; B 83 -8 479 734 ; C -1 ; WX 720 ; N Egrave ; B 14 0 777 937 ; C -1 ; WX 760 ; N Oacute ; B 78 -17 806 937 ; C -1 ; WX 600 ; N divide ; B 91 9 595 521 ; C -1 ; WX 720 ; N Atilde ; B -27 0 769 875 ; C -1 ; WX 720 ; N Aring ; B -27 0 769 941 ; C -1 ; WX 760 ; N Odieresis ; B 78 -17 806 900 ; C -1 ; WX 720 ; N Adieresis ; B -27 0 769 900 ; C -1 ; WX 740 ; N Ntilde ; B 14 0 845 875 ; C -1 ; WX 680 ; N Zcaron ; B 23 0 740 915 ; C -1 ; WX 640 ; N Thorn ; B -6 0 701 681 ; C -1 ; WX 380 ; N Iacute ; B 14 0 485 937 ; C -1 ; WX 600 ; N plusminus ; B 91 0 595 514 ; C -1 ; WX 600 ; N multiply ; B 91 10 595 514 ; C -1 ; WX 720 ; N Eacute ; B 14 0 777 937 ; C -1 ; WX 660 ; N Ydieresis ; B 72 0 817 900 ; C -1 ; WX 408 ; N onesuperior ; B 118 279 406 688 ; C -1 ; WX 680 ; N ugrave ; B 83 -8 720 771 ; C -1 ; WX 620 ; N logicalnot ; B 81 129 585 421 ; C -1 ; WX 680 ; N ntilde ; B 83 -8 715 709 ; C -1 ; WX 760 ; N Otilde ; B 78 -17 806 875 ; C -1 ; WX 600 ; N otilde ; B 59 -8 627 709 ; C -1 ; WX 700 ; N Ccedilla ; B 78 -220 754 698 ; C -1 ; WX 720 ; N Agrave ; B -27 0 769 937 ; C -1 ; WX 1020 ; N onehalf ; B 118 0 1036 681 ; C -1 ; WX 760 ; N Eth ; B 14 0 805 681 ; C -1 ; WX 400 ; N degree ; B 130 398 430 698 ; C -1 ; WX 660 ; N Yacute ; B 72 0 817 937 ; C -1 ; WX 760 ; N Ocircumflex ; B 78 -17 806 915 ; C -1 ; WX 600 ; N oacute ; B 59 -8 627 771 ; C -1 ; WX 680 ; N mu ; B 54 -213 720 507 ; C -1 ; WX 600 ; N minus ; B 91 207 595 323 ; C -1 ; WX 600 ; N eth ; B 59 -8 662 741 ; C -1 ; WX 600 ; N odieresis ; B 59 -8 627 734 ; C -1 ; WX 780 ; N copyright ; B 83 -17 783 698 ; C -1 ; WX 620 ; N brokenbar ; B 303 -175 422 675 ; EndCharMetrics StartKernData StartKernPairs 92 KPX A y 20 KPX A w 20 KPX A v 20 KPX A Y -25 KPX A W -35 KPX A V -40 KPX A T -17 KPX F period -105 KPX F comma -98 KPX F A -35 KPX L y 62 KPX L Y -5 KPX L W -15 KPX L V -19 KPX L T -26 KPX P period -105 KPX P comma -98 KPX P A -31 KPX R y 27 KPX R Y 4 KPX R W -4 KPX R V -8 KPX R T -3 KPX T y 56 KPX T w 69 KPX T u 42 KPX T semicolon 31 KPX T s -1 KPX T r 41 KPX T period -107 KPX T o -5 KPX T i 42 KPX T hyphen -20 KPX T e -10 KPX T comma -100 KPX T colon 26 KPX T c -8 KPX T a -8 KPX T A -42 KPX V y 17 KPX V u -1 KPX V semicolon -22 KPX V r 2 KPX V period -115 KPX V o -50 KPX V i 32 KPX V hyphen -20 KPX V e -50 KPX V comma -137 KPX V colon -28 KPX V a -50 KPX V A -50 KPX W y -51 KPX W u -69 KPX W semicolon -81 KPX W r -66 KPX W period -183 KPX W o -100 KPX W i -36 KPX W hyphen -22 KPX W e -100 KPX W comma -201 KPX W colon -86 KPX W a -100 KPX W A -77 KPX Y v 26 KPX Y u -1 KPX Y semicolon -4 KPX Y q -43 KPX Y period -113 KPX Y o -41 KPX Y i 20 KPX Y hyphen -20 KPX Y e -46 KPX Y comma -106 KPX Y colon -9 KPX Y a -45 KPX Y A -30 KPX f f 10 KPX r q -3 KPX r period -120 KPX r o -1 KPX r n 39 KPX r m 39 KPX r hyphen -20 KPX r h -35 KPX r g -23 KPX r f 42 KPX r e -6 KPX r d -3 KPX r comma -113 KPX r c -5 EndKernPairs EndKernData StartComposites 56 CC Aacute 2 ; PCC A 0 0 ; PCC acute 190 166 ; CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 120 166 ; CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 100 166 ; CC Agrave 2 ; PCC A 0 0 ; PCC grave 170 166 ; CC Aring 2 ; PCC A 0 0 ; PCC ring 200 166 ; CC Atilde 2 ; PCC A 0 0 ; PCC tilde 120 166 ; CC Eacute 2 ; PCC E 0 0 ; PCC acute 190 166 ; CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 120 166 ; CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 100 166 ; CC Egrave 2 ; PCC E 0 0 ; PCC grave 170 166 ; CC Iacute 2 ; PCC I 0 0 ; PCC acute 20 166 ; CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex -30 166 ; CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis -70 166 ; CC Igrave 2 ; PCC I 0 0 ; PCC grave 0 166 ; CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 130 166 ; CC Oacute 2 ; PCC O 0 0 ; PCC acute 210 166 ; CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 140 166 ; CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 140 166 ; CC Ograve 2 ; PCC O 0 0 ; PCC grave 190 166 ; CC Otilde 2 ; PCC O 0 0 ; PCC tilde 140 166 ; CC Scaron 2 ; PCC S 0 0 ; PCC caron 110 166 ; CC Uacute 2 ; PCC U 0 0 ; PCC acute 200 166 ; CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 130 166 ; CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 130 166 ; CC Ugrave 2 ; PCC U 0 0 ; PCC grave 180 166 ; CC Yacute 2 ; PCC Y 0 0 ; PCC acute 160 166 ; CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 70 166 ; CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 100 166 ; CC aacute 2 ; PCC a 0 0 ; PCC acute 170 0 ; CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 100 0 ; CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 80 0 ; CC agrave 2 ; PCC a 0 0 ; PCC grave 150 0 ; CC aring 2 ; PCC a 0 0 ; PCC ring 160 0 ; CC atilde 2 ; PCC a 0 0 ; PCC tilde 100 0 ; CC eacute 2 ; PCC e 0 0 ; PCC acute 110 0 ; CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 60 0 ; CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 20 0 ; CC egrave 2 ; PCC e 0 0 ; PCC grave 90 0 ; CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute 0 0 ; CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -90 0 ; CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -90 0 ; CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave 0 0 ; CC ntilde 2 ; PCC n 0 0 ; PCC tilde 60 0 ; CC oacute 2 ; PCC o 0 0 ; PCC acute 130 0 ; CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 60 0 ; CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 40 0 ; CC ograve 2 ; PCC o 0 0 ; PCC grave 110 0 ; CC otilde 2 ; PCC o 0 0 ; PCC tilde 60 0 ; CC scaron 2 ; PCC s 0 0 ; PCC caron 30 0 ; CC uacute 2 ; PCC u 0 0 ; PCC acute 170 0 ; CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 100 0 ; CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 80 0 ; CC ugrave 2 ; PCC u 0 0 ; PCC grave 150 0 ; CC yacute 2 ; PCC y 0 0 ; PCC acute 130 0 ; CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 40 0 ; CC zcaron 2 ; PCC z 0 0 ; PCC caron 40 0 ; EndComposites EndFontMetrics enscript-1.6.5.90/afm/hvbo.afm0000644000175000017500000004261111132443251012710 00000000000000StartFontMetrics 2.0 Comment Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Thu Mar 15 10:44:33 1990 Comment UniqueID 28371 Comment VMusage 7614 43068 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 001.007 Notice Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All Rights Reserved.Helvetica is a trademark of Linotype AG and/or its subsidiaries. EncodingScheme AdobeStandardEncoding CapHeight 718 XHeight 532 Ascender 718 Descender -207 StartCharMetrics 228 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 80 -19 353 737 ; 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 92 276 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 92 276 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 611 ; N Zcaron ; B 25 0 737 936 ; C -1 ; WX 556 ; N ccedilla ; B 79 -228 599 546 ; C -1 ; WX 556 ; N ydieresis ; B 42 -214 652 729 ; C -1 ; WX 556 ; N atilde ; B 55 -14 619 737 ; C -1 ; WX 278 ; N icircumflex ; B 69 0 444 750 ; C -1 ; WX 333 ; N threesuperior ; B 91 271 441 710 ; C -1 ; WX 556 ; N ecircumflex ; B 70 -14 593 750 ; C -1 ; WX 611 ; N thorn ; B 18 -208 645 718 ; C -1 ; WX 556 ; N egrave ; B 70 -14 593 750 ; C -1 ; WX 333 ; N twosuperior ; B 69 283 449 710 ; C -1 ; WX 556 ; N eacute ; B 70 -14 627 750 ; C -1 ; WX 611 ; N otilde ; B 82 -14 646 737 ; C -1 ; WX 722 ; N Aacute ; B 20 0 750 936 ; C -1 ; WX 611 ; N ocircumflex ; B 82 -14 643 750 ; C -1 ; WX 556 ; N yacute ; B 42 -214 652 750 ; C -1 ; WX 611 ; N udieresis ; B 98 -14 658 729 ; C -1 ; WX 834 ; N threequarters ; B 99 -19 839 710 ; C -1 ; WX 556 ; N acircumflex ; B 55 -14 583 750 ; C -1 ; WX 722 ; N Eth ; B 62 0 777 718 ; C -1 ; WX 556 ; N edieresis ; B 70 -14 594 729 ; C -1 ; WX 611 ; N ugrave ; B 98 -14 658 750 ; C -1 ; WX 1000 ; N trademark ; B 179 306 1109 718 ; C -1 ; WX 611 ; N ograve ; B 82 -14 643 750 ; C -1 ; WX 556 ; N scaron ; B 63 -14 614 750 ; C -1 ; WX 278 ; N Idieresis ; B 64 0 494 915 ; C -1 ; WX 611 ; N uacute ; B 98 -14 658 750 ; C -1 ; WX 556 ; N agrave ; B 55 -14 583 750 ; C -1 ; WX 611 ; N ntilde ; B 65 0 646 737 ; C -1 ; WX 556 ; N aring ; B 55 -14 583 776 ; C -1 ; WX 500 ; N zcaron ; B 20 0 586 750 ; C -1 ; WX 278 ; N Icircumflex ; B 64 0 484 936 ; C -1 ; WX 722 ; N Ntilde ; B 69 0 807 923 ; C -1 ; WX 611 ; N ucircumflex ; B 98 -14 658 750 ; C -1 ; WX 667 ; N Ecircumflex ; B 76 0 757 936 ; C -1 ; WX 278 ; N Iacute ; B 64 0 528 936 ; C -1 ; WX 722 ; N Ccedilla ; B 107 -228 789 737 ; C -1 ; WX 778 ; N Odieresis ; B 107 -19 823 915 ; C -1 ; WX 667 ; N Scaron ; B 81 -19 718 936 ; C -1 ; WX 667 ; N Edieresis ; B 76 0 757 915 ; C -1 ; WX 278 ; N Igrave ; B 64 0 367 936 ; C -1 ; WX 556 ; N adieresis ; B 55 -14 594 729 ; C -1 ; WX 778 ; N Ograve ; B 107 -19 823 936 ; C -1 ; WX 667 ; N Egrave ; B 76 0 757 936 ; C -1 ; WX 667 ; N Ydieresis ; B 168 0 806 915 ; C -1 ; WX 737 ; N registered ; B 55 -19 834 737 ; C -1 ; WX 778 ; N Otilde ; B 107 -19 823 923 ; C -1 ; WX 834 ; N onequarter ; B 132 -19 806 710 ; C -1 ; WX 722 ; N Ugrave ; B 116 -19 804 936 ; C -1 ; WX 722 ; N Ucircumflex ; B 116 -19 804 936 ; C -1 ; WX 667 ; N Thorn ; B 76 0 716 718 ; C -1 ; WX 584 ; N divide ; B 82 -42 610 548 ; C -1 ; WX 722 ; N Atilde ; B 20 0 741 923 ; C -1 ; WX 722 ; N Uacute ; B 116 -19 804 936 ; C -1 ; WX 778 ; N Ocircumflex ; B 107 -19 823 936 ; C -1 ; WX 584 ; N logicalnot ; B 105 108 633 419 ; C -1 ; WX 722 ; N Aring ; B 20 0 702 962 ; C -1 ; WX 278 ; N idieresis ; B 69 0 455 729 ; C -1 ; WX 278 ; N iacute ; B 69 0 488 750 ; C -1 ; WX 556 ; N aacute ; B 55 -14 627 750 ; C -1 ; WX 584 ; N plusminus ; B 40 0 625 506 ; C -1 ; WX 584 ; N multiply ; B 57 1 635 505 ; C -1 ; WX 722 ; N Udieresis ; B 116 -19 804 915 ; C -1 ; WX 584 ; N minus ; B 82 197 610 309 ; C -1 ; WX 333 ; N onesuperior ; B 148 283 388 710 ; C -1 ; WX 667 ; N Eacute ; B 76 0 757 936 ; C -1 ; WX 722 ; N Acircumflex ; B 20 0 706 936 ; C -1 ; WX 737 ; N copyright ; B 56 -19 835 737 ; C -1 ; WX 722 ; N Agrave ; B 20 0 702 936 ; C -1 ; WX 611 ; N odieresis ; B 82 -14 643 729 ; C -1 ; WX 611 ; N oacute ; B 82 -14 654 750 ; C -1 ; WX 400 ; N degree ; B 175 426 467 712 ; C -1 ; WX 278 ; N igrave ; B 69 0 326 750 ; C -1 ; WX 611 ; N mu ; B 22 -207 658 532 ; C -1 ; WX 778 ; N Oacute ; B 107 -19 823 936 ; C -1 ; WX 611 ; N eth ; B 82 -14 670 737 ; C -1 ; WX 722 ; N Adieresis ; B 20 0 716 915 ; C -1 ; WX 667 ; N Yacute ; B 168 0 806 936 ; C -1 ; WX 280 ; N brokenbar ; B 80 -19 353 737 ; C -1 ; WX 834 ; N onehalf ; B 132 -19 858 710 ; EndCharMetrics StartKernData StartKernPairs 209 KPX A y -30 KPX A w -30 KPX A v -40 KPX A u -30 KPX A Y -110 KPX A W -60 KPX A V -80 KPX A U -50 KPX A T -90 KPX A Q -40 KPX A O -40 KPX A G -50 KPX A C -40 KPX B U -10 KPX B A -30 KPX D period -30 KPX D comma -30 KPX D Y -70 KPX D W -40 KPX D V -40 KPX D A -40 KPX F period -100 KPX F comma -100 KPX F a -20 KPX F A -80 KPX J u -20 KPX J period -20 KPX J comma -20 KPX J A -20 KPX K y -40 KPX K u -30 KPX K o -35 KPX K e -15 KPX K O -30 KPX L y -30 KPX L quoteright -140 KPX L quotedblright -140 KPX L Y -120 KPX L W -80 KPX L V -110 KPX L T -90 KPX O period -40 KPX O comma -40 KPX O Y -70 KPX O X -50 KPX O W -50 KPX O V -50 KPX O T -40 KPX O A -50 KPX P period -120 KPX P o -40 KPX P e -30 KPX P comma -120 KPX P a -30 KPX P A -100 KPX Q period 20 KPX Q comma 20 KPX Q U -10 KPX R Y -50 KPX R W -40 KPX R V -50 KPX R U -20 KPX R T -20 KPX R O -20 KPX T y -60 KPX T w -60 KPX T u -90 KPX T semicolon -40 KPX T r -80 KPX T period -80 KPX T o -80 KPX T hyphen -120 KPX T e -60 KPX T comma -80 KPX T colon -40 KPX T a -80 KPX T O -40 KPX T A -90 KPX U period -30 KPX U comma -30 KPX U A -50 KPX V u -60 KPX V semicolon -40 KPX V period -120 KPX V o -90 KPX V hyphen -80 KPX V e -50 KPX V comma -120 KPX V colon -40 KPX V a -60 KPX V O -50 KPX V G -50 KPX V A -80 KPX W y -20 KPX W u -45 KPX W semicolon -10 KPX W period -80 KPX W o -60 KPX W hyphen -40 KPX W e -35 KPX W comma -80 KPX W colon -10 KPX W a -40 KPX W O -20 KPX W A -60 KPX Y u -100 KPX Y semicolon -50 KPX Y period -100 KPX Y o -100 KPX Y e -80 KPX Y comma -100 KPX Y colon -50 KPX Y a -90 KPX Y O -70 KPX Y A -110 KPX a y -20 KPX a w -15 KPX a v -15 KPX a g -10 KPX b y -20 KPX b v -20 KPX b u -20 KPX b l -10 KPX c y -10 KPX c l -20 KPX c k -20 KPX c h -10 KPX colon space -40 KPX comma space -40 KPX comma quoteright -120 KPX comma quotedblright -120 KPX d y -15 KPX d w -15 KPX d v -15 KPX d d -10 KPX e y -15 KPX e x -15 KPX e w -15 KPX e v -15 KPX e period 20 KPX e comma 10 KPX f quoteright 30 KPX f quotedblright 30 KPX f period -10 KPX f o -20 KPX f e -10 KPX f comma -10 KPX g g -10 KPX g e 10 KPX h y -20 KPX k o -15 KPX l y -15 KPX l w -15 KPX m y -30 KPX m u -20 KPX n y -20 KPX n v -40 KPX n u -10 KPX o y -20 KPX o x -30 KPX o w -15 KPX o v -20 KPX p y -15 KPX period space -40 KPX period quoteright -120 KPX period quotedblright -120 KPX quotedblright space -80 KPX quoteleft quoteleft -46 KPX quoteright v -20 KPX quoteright space -80 KPX quoteright s -60 KPX quoteright r -40 KPX quoteright quoteright -46 KPX quoteright l -20 KPX quoteright d -80 KPX r y 10 KPX r v 10 KPX r t 20 KPX r s -15 KPX r q -20 KPX r period -60 KPX r o -20 KPX r hyphen -20 KPX r g -15 KPX r d -20 KPX r comma -60 KPX r c -20 KPX s w -15 KPX semicolon space -40 KPX space quoteleft -60 KPX space quotedblleft -80 KPX space Y -120 KPX space W -80 KPX space V -80 KPX space T -100 KPX v period -80 KPX v o -30 KPX v comma -80 KPX v a -20 KPX w period -40 KPX w o -20 KPX w comma -40 KPX x e -10 KPX y period -80 KPX y o -25 KPX y e -10 KPX y comma -80 KPX y a -30 KPX z e 10 EndKernPairs EndKernData StartComposites 58 CC Aacute 2 ; PCC A 0 0 ; PCC acute 235 186 ; CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 235 186 ; CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 235 186 ; CC Agrave 2 ; PCC A 0 0 ; PCC grave 235 186 ; CC Aring 2 ; PCC A 0 0 ; PCC ring 235 186 ; CC Atilde 2 ; PCC A 0 0 ; PCC tilde 235 186 ; CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 215 0 ; CC Eacute 2 ; PCC E 0 0 ; PCC acute 207 186 ; CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 207 186 ; CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 207 186 ; CC Egrave 2 ; PCC E 0 0 ; PCC grave 207 186 ; CC Iacute 2 ; PCC I 0 0 ; PCC acute 13 186 ; CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 13 186 ; CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 13 186 ; CC Igrave 2 ; PCC I 0 0 ; PCC grave 13 186 ; CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 235 186 ; CC Oacute 2 ; PCC O 0 0 ; PCC acute 263 186 ; CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 263 186 ; CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 263 186 ; CC Ograve 2 ; PCC O 0 0 ; PCC grave 263 186 ; CC Otilde 2 ; PCC O 0 0 ; PCC tilde 263 186 ; CC Scaron 2 ; PCC S 0 0 ; PCC caron 207 186 ; CC Uacute 2 ; PCC U 0 0 ; PCC acute 235 186 ; CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 235 186 ; CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 235 186 ; CC Ugrave 2 ; PCC U 0 0 ; PCC grave 235 186 ; CC Yacute 2 ; PCC Y 0 0 ; PCC acute 207 186 ; CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 207 186 ; CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 179 186 ; CC aacute 2 ; PCC a 0 0 ; PCC acute 112 0 ; CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 112 0 ; CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 112 0 ; CC agrave 2 ; PCC a 0 0 ; PCC grave 112 0 ; CC aring 2 ; PCC a 0 0 ; PCC ring 112 0 ; CC atilde 2 ; PCC a 0 0 ; PCC tilde 112 0 ; CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 132 0 ; CC eacute 2 ; PCC e 0 0 ; PCC acute 112 0 ; CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 112 0 ; CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 112 0 ; CC egrave 2 ; PCC e 0 0 ; PCC grave 112 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 139 0 ; 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 otilde 2 ; PCC o 0 0 ; PCC tilde 139 0 ; CC scaron 2 ; PCC s 0 0 ; PCC caron 112 0 ; 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 yacute 2 ; PCC y 0 0 ; PCC acute 112 0 ; CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 112 0 ; CC zcaron 2 ; PCC z 0 0 ; PCC caron 84 0 ; EndComposites EndFontMetrics enscript-1.6.5.90/afm/bkd.afm0000644000175000017500000003632511132443251012517 00000000000000StartFontMetrics 2.0 Comment Copyright (c) 1985, 1987, 1989, 1992 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Tue Jan 21 16:13:29 1992 Comment UniqueID 37831 Comment VMusage 31983 38875 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 001.004 Notice Copyright (c) 1985, 1987, 1989, 1992 Adobe Systems Incorporated. All Rights Reserved.ITC Bookman is a registered trademark of International Typeface Corporation. EncodingScheme AdobeStandardEncoding CapHeight 681 XHeight 502 Ascender 725 Descender -212 StartCharMetrics 228 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 68 547 327 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 536 259 730 ; C 200 ; WX 500 ; N dieresis ; B 68 560 441 698 ; 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 68 -163 246 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 580 ; N ecircumflex ; B 31 -8 548 731 ; C -1 ; WX 580 ; N edieresis ; B 31 -8 548 698 ; C -1 ; WX 580 ; N aacute ; B 28 -8 588 731 ; C -1 ; WX 740 ; N registered ; B 23 -17 723 698 ; C -1 ; WX 360 ; N icircumflex ; B -2 0 360 731 ; C -1 ; WX 660 ; N udieresis ; B 22 -8 653 698 ; C -1 ; WX 620 ; N ograve ; B 31 -8 585 730 ; C -1 ; WX 660 ; N uacute ; B 22 -8 653 731 ; C -1 ; WX 660 ; N ucircumflex ; B 22 -8 653 731 ; C -1 ; WX 720 ; N Aacute ; B -34 0 763 910 ; C -1 ; WX 360 ; N igrave ; B 22 0 335 730 ; C -1 ; WX 400 ; N Icircumflex ; B 18 0 380 910 ; C -1 ; WX 580 ; N ccedilla ; B 31 -213 550 515 ; C -1 ; WX 580 ; N adieresis ; B 28 -8 588 698 ; C -1 ; WX 720 ; N Ecircumflex ; B 20 0 724 910 ; C -1 ; WX 520 ; N scaron ; B 22 -8 492 717 ; C -1 ; WX 640 ; N thorn ; B 22 -212 611 725 ; C -1 ; WX 980 ; N trademark ; B 42 277 982 681 ; C -1 ; WX 580 ; N egrave ; B 31 -8 548 730 ; C -1 ; WX 396 ; N threesuperior ; B 5 269 391 698 ; C -1 ; WX 560 ; N zcaron ; B 22 0 547 717 ; C -1 ; WX 580 ; N atilde ; B 28 -8 588 691 ; C -1 ; WX 580 ; N aring ; B 28 -8 588 755 ; C -1 ; WX 620 ; N ocircumflex ; B 31 -8 585 731 ; C -1 ; WX 720 ; N Edieresis ; B 20 0 724 877 ; C -1 ; WX 990 ; N threequarters ; B 15 0 967 692 ; C -1 ; WX 620 ; N ydieresis ; B 6 -221 613 698 ; C -1 ; WX 620 ; N yacute ; B 6 -221 613 731 ; C -1 ; WX 360 ; N iacute ; B 22 0 335 731 ; C -1 ; WX 720 ; N Acircumflex ; B -34 0 763 910 ; C -1 ; WX 740 ; N Uacute ; B 15 -17 724 910 ; C -1 ; WX 580 ; N eacute ; B 31 -8 548 731 ; C -1 ; WX 800 ; N Ograve ; B 35 -17 769 909 ; C -1 ; WX 580 ; N agrave ; B 28 -8 588 730 ; C -1 ; WX 740 ; N Udieresis ; B 15 -17 724 877 ; C -1 ; WX 580 ; N acircumflex ; B 28 -8 588 731 ; C -1 ; WX 400 ; N Igrave ; B 20 0 379 909 ; C -1 ; WX 396 ; N twosuperior ; B 14 279 396 698 ; C -1 ; WX 740 ; N Ugrave ; B 15 -17 724 909 ; C -1 ; WX 990 ; N onequarter ; B 65 0 967 681 ; C -1 ; WX 740 ; N Ucircumflex ; B 15 -17 724 910 ; C -1 ; WX 660 ; N Scaron ; B 21 -17 639 896 ; C -1 ; WX 400 ; N Idieresis ; B 18 0 391 877 ; C -1 ; WX 360 ; N idieresis ; B -2 0 371 698 ; C -1 ; WX 720 ; N Egrave ; B 20 0 724 909 ; C -1 ; WX 800 ; N Oacute ; B 35 -17 769 910 ; C -1 ; WX 600 ; N divide ; B 51 9 555 521 ; C -1 ; WX 720 ; N Atilde ; B -34 0 763 870 ; C -1 ; WX 720 ; N Aring ; B -34 0 763 934 ; C -1 ; WX 800 ; N Odieresis ; B 35 -17 769 877 ; C -1 ; WX 720 ; N Adieresis ; B -34 0 763 877 ; C -1 ; WX 740 ; N Ntilde ; B 20 0 724 870 ; C -1 ; WX 640 ; N Zcaron ; B 6 0 635 896 ; C -1 ; WX 660 ; N Thorn ; B 20 0 658 681 ; 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 multiply ; B 48 10 552 514 ; C -1 ; WX 720 ; N Eacute ; B 20 0 724 910 ; C -1 ; WX 700 ; N Ydieresis ; B -20 0 718 877 ; C -1 ; WX 396 ; N onesuperior ; B 65 279 345 687 ; C -1 ; WX 660 ; N ugrave ; B 22 -8 653 730 ; C -1 ; WX 600 ; N logicalnot ; B 51 129 555 421 ; C -1 ; WX 680 ; N ntilde ; B 22 0 652 691 ; C -1 ; WX 800 ; N Otilde ; B 35 -17 769 870 ; C -1 ; WX 620 ; N otilde ; B 31 -8 585 691 ; C -1 ; WX 740 ; N Ccedilla ; B 35 -213 724 698 ; C -1 ; WX 720 ; N Agrave ; B -34 0 763 909 ; C -1 ; WX 990 ; N onehalf ; B 65 0 980 681 ; C -1 ; WX 780 ; N Eth ; B 20 0 748 681 ; C -1 ; WX 400 ; N degree ; B 50 398 350 698 ; C -1 ; WX 700 ; N Yacute ; B -20 0 718 910 ; C -1 ; WX 800 ; N Ocircumflex ; B 35 -17 769 910 ; C -1 ; WX 620 ; N oacute ; B 31 -8 585 731 ; C -1 ; WX 660 ; N mu ; B 22 -221 653 502 ; C -1 ; WX 600 ; N minus ; B 51 207 555 323 ; C -1 ; WX 620 ; N eth ; B 31 -8 585 741 ; C -1 ; WX 620 ; N odieresis ; B 31 -8 585 698 ; C -1 ; WX 740 ; N copyright ; B 23 -17 723 698 ; C -1 ; WX 600 ; N brokenbar ; B 243 -175 362 675 ; EndCharMetrics StartKernData StartKernPairs 90 KPX A y -1 KPX A w -9 KPX A v -8 KPX A Y -52 KPX A W -20 KPX A V -68 KPX A T -40 KPX F period -132 KPX F comma -130 KPX F A -59 KPX L y 19 KPX L Y -35 KPX L W -41 KPX L V -50 KPX L T -4 KPX P period -128 KPX P comma -129 KPX P A -46 KPX R y -8 KPX R Y -20 KPX R W -24 KPX R V -29 KPX R T -4 KPX T semicolon 5 KPX T s -10 KPX T r 27 KPX T period -122 KPX T o -28 KPX T i 27 KPX T hyphen -10 KPX T e -29 KPX T comma -122 KPX T colon 7 KPX T c -29 KPX T a -24 KPX T A -42 KPX V y 12 KPX V u -11 KPX V semicolon -38 KPX V r -15 KPX V period -105 KPX V o -79 KPX V i 15 KPX V hyphen -10 KPX V e -80 KPX V comma -103 KPX V colon -37 KPX V a -74 KPX V A -88 KPX W y 12 KPX W u -11 KPX W semicolon -38 KPX W r -15 KPX W period -105 KPX W o -78 KPX W i 15 KPX W hyphen -10 KPX W e -79 KPX W comma -103 KPX W colon -37 KPX W a -73 KPX W A -60 KPX Y v 24 KPX Y u -13 KPX Y semicolon -34 KPX Y q -66 KPX Y period -105 KPX Y p -23 KPX Y o -66 KPX Y i 2 KPX Y hyphen -10 KPX Y e -67 KPX Y comma -103 KPX Y colon -32 KPX Y a -60 KPX Y A -56 KPX f f 21 KPX r q -9 KPX r period -102 KPX r o -9 KPX r n 20 KPX r m 20 KPX r hyphen -10 KPX r h -23 KPX r g -9 KPX r f 20 KPX r e -10 KPX r d -10 KPX r comma -101 KPX r c -9 EndKernPairs EndKernData StartComposites 56 CC Aacute 2 ; PCC A 0 0 ; PCC acute 160 179 ; CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 110 179 ; CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 110 179 ; CC Agrave 2 ; PCC A 0 0 ; PCC grave 160 179 ; CC Aring 2 ; PCC A 0 0 ; PCC ring 190 179 ; CC Atilde 2 ; PCC A 0 0 ; PCC tilde 120 179 ; CC Eacute 2 ; PCC E 0 0 ; PCC acute 160 179 ; CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 110 179 ; CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 110 179 ; CC Egrave 2 ; PCC E 0 0 ; PCC grave 160 179 ; CC Iacute 2 ; PCC I 0 0 ; PCC acute 0 179 ; CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex -50 179 ; CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis -50 179 ; CC Igrave 2 ; PCC I 0 0 ; PCC grave 0 179 ; CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 130 179 ; CC Oacute 2 ; PCC O 0 0 ; PCC acute 200 179 ; CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 150 179 ; CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 150 179 ; CC Ograve 2 ; PCC O 0 0 ; PCC grave 200 179 ; CC Otilde 2 ; PCC O 0 0 ; PCC tilde 160 179 ; CC Scaron 2 ; PCC S 0 0 ; PCC caron 80 179 ; CC Uacute 2 ; PCC U 0 0 ; PCC acute 170 179 ; CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 120 179 ; CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 120 179 ; CC Ugrave 2 ; PCC U 0 0 ; PCC grave 170 179 ; CC Yacute 2 ; PCC Y 0 0 ; PCC acute 150 179 ; CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 100 179 ; CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 70 179 ; CC aacute 2 ; PCC a 0 0 ; PCC acute 90 0 ; CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 40 0 ; CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 40 0 ; CC agrave 2 ; PCC a 0 0 ; PCC grave 90 0 ; CC aring 2 ; PCC a 0 0 ; PCC ring 100 0 ; CC atilde 2 ; PCC a 0 0 ; PCC tilde 30 0 ; CC eacute 2 ; PCC e 0 0 ; PCC acute 90 0 ; CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 40 0 ; CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 40 0 ; CC egrave 2 ; PCC e 0 0 ; PCC grave 90 0 ; CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -20 0 ; CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -70 0 ; CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -70 0 ; CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -20 0 ; CC ntilde 2 ; PCC n 0 0 ; PCC tilde 80 0 ; CC oacute 2 ; PCC o 0 0 ; PCC acute 110 0 ; CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 60 0 ; CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 60 0 ; CC ograve 2 ; PCC o 0 0 ; PCC grave 110 0 ; CC otilde 2 ; PCC o 0 0 ; PCC tilde 50 0 ; CC scaron 2 ; PCC s 0 0 ; PCC caron 10 0 ; CC uacute 2 ; PCC u 0 0 ; PCC acute 130 0 ; CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 80 0 ; CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 80 0 ; CC ugrave 2 ; PCC u 0 0 ; PCC grave 130 0 ; CC yacute 2 ; PCC y 0 0 ; PCC acute 110 0 ; CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 60 0 ; CC zcaron 2 ; PCC z 0 0 ; PCC caron 30 0 ; EndComposites EndFontMetrics enscript-1.6.5.90/afm/tir.afm0000644000175000017500000004423711132443251012556 00000000000000StartFontMetrics 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 enscript-1.6.5.90/afm/bkl.afm0000644000175000017500000003606011132443251012523 00000000000000StartFontMetrics 2.0 Comment Copyright (c) 1985, 1987, 1989, 1992 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Tue Jan 21 16:15:53 1992 Comment UniqueID 37833 Comment VMusage 32321 39213 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 001.004 Notice Copyright (c) 1985, 1987, 1989, 1992 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 StartCharMetrics 228 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 552 186 672 ; C 200 ; WX 420 ; N dieresis ; B 68 552 349 674 ; 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 68 -145 245 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 520 ; N ecircumflex ; B 37 -8 491 685 ; C -1 ; WX 520 ; N edieresis ; B 37 -8 491 674 ; C -1 ; WX 580 ; N aacute ; B 35 -8 587 689 ; C -1 ; WX 740 ; N registered ; B 23 -17 723 698 ; C -1 ; WX 300 ; N icircumflex ; B 8 0 292 685 ; C -1 ; WX 680 ; N udieresis ; B 20 -8 653 674 ; C -1 ; WX 560 ; N ograve ; B 37 -8 526 689 ; C -1 ; WX 680 ; N uacute ; B 20 -8 653 689 ; C -1 ; WX 680 ; N ucircumflex ; B 20 -8 653 685 ; C -1 ; WX 680 ; N Aacute ; B -37 0 714 866 ; C -1 ; WX 300 ; N igrave ; B 20 0 288 689 ; C -1 ; WX 340 ; N Icircumflex ; B 28 0 312 862 ; C -1 ; WX 520 ; N ccedilla ; B 37 -200 498 494 ; C -1 ; WX 580 ; N adieresis ; B 35 -8 587 674 ; C -1 ; WX 720 ; N Ecircumflex ; B 31 0 705 862 ; C -1 ; WX 520 ; N scaron ; B 40 -8 487 672 ; C -1 ; WX 620 ; N thorn ; B 20 -228 583 717 ; C -1 ; WX 980 ; N trademark ; B 34 277 930 681 ; C -1 ; WX 520 ; N egrave ; B 37 -8 491 689 ; C -1 ; WX 372 ; N threesuperior ; B 12 269 360 698 ; C -1 ; WX 480 ; N zcaron ; B 7 0 476 672 ; C -1 ; WX 580 ; N atilde ; B 35 -8 587 661 ; C -1 ; WX 580 ; N aring ; B 35 -8 587 731 ; C -1 ; WX 560 ; N ocircumflex ; B 37 -8 526 685 ; C -1 ; WX 720 ; N Edieresis ; B 31 0 705 851 ; C -1 ; WX 930 ; N threequarters ; B 52 0 889 691 ; C -1 ; WX 540 ; N ydieresis ; B -23 -236 549 674 ; C -1 ; WX 540 ; N yacute ; B -23 -236 549 689 ; C -1 ; WX 300 ; N iacute ; B 20 0 288 689 ; C -1 ; WX 680 ; N Acircumflex ; B -37 0 714 862 ; C -1 ; WX 780 ; N Uacute ; B 25 -17 754 866 ; C -1 ; WX 520 ; N eacute ; B 37 -8 491 689 ; C -1 ; WX 800 ; N Ograve ; B 44 -17 758 866 ; C -1 ; WX 580 ; N agrave ; B 35 -8 587 689 ; C -1 ; WX 780 ; N Udieresis ; B 25 -17 754 851 ; C -1 ; WX 580 ; N acircumflex ; B 35 -8 587 685 ; C -1 ; WX 340 ; N Igrave ; B 31 0 301 866 ; C -1 ; WX 372 ; N twosuperior ; B 20 279 367 698 ; C -1 ; WX 780 ; N Ugrave ; B 25 -17 754 866 ; C -1 ; WX 930 ; N onequarter ; B 80 0 869 681 ; C -1 ; WX 780 ; N Ucircumflex ; B 25 -17 754 862 ; C -1 ; WX 660 ; N Scaron ; B 28 -17 634 849 ; C -1 ; WX 340 ; N Idieresis ; B 28 0 309 851 ; C -1 ; WX 300 ; N idieresis ; B 8 0 289 674 ; C -1 ; WX 720 ; N Egrave ; B 31 0 705 866 ; C -1 ; WX 800 ; N Oacute ; B 44 -17 758 866 ; C -1 ; WX 600 ; N divide ; B 51 10 555 514 ; C -1 ; WX 680 ; N Atilde ; B -37 0 714 838 ; C -1 ; WX 680 ; N Aring ; B -37 0 714 908 ; C -1 ; WX 800 ; N Odieresis ; B 44 -17 758 851 ; C -1 ; WX 680 ; N Adieresis ; B -37 0 714 851 ; C -1 ; WX 740 ; N Ntilde ; B 26 0 722 838 ; C -1 ; WX 640 ; N Zcaron ; B 10 0 656 849 ; C -1 ; WX 620 ; N Thorn ; B 31 0 613 681 ; 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 multiply ; B 51 9 555 513 ; C -1 ; WX 720 ; N Eacute ; B 31 0 705 866 ; C -1 ; WX 640 ; N Ydieresis ; B -30 0 666 851 ; C -1 ; WX 372 ; N onesuperior ; B 80 279 302 688 ; C -1 ; WX 680 ; N ugrave ; B 20 -8 653 689 ; C -1 ; WX 600 ; N logicalnot ; B 51 128 555 398 ; C -1 ; WX 660 ; N ntilde ; B 20 0 649 661 ; C -1 ; WX 800 ; N Otilde ; B 44 -17 758 838 ; C -1 ; WX 560 ; N otilde ; B 37 -8 526 661 ; C -1 ; WX 740 ; N Ccedilla ; B 44 -200 702 698 ; C -1 ; WX 680 ; N Agrave ; B -37 0 714 866 ; C -1 ; WX 930 ; N onehalf ; B 80 0 885 681 ; C -1 ; WX 800 ; N Eth ; B 31 0 752 681 ; C -1 ; WX 400 ; N degree ; B 50 398 350 698 ; C -1 ; WX 640 ; N Yacute ; B -30 0 666 866 ; C -1 ; WX 800 ; N Ocircumflex ; B 44 -17 758 862 ; C -1 ; WX 560 ; N oacute ; B 37 -8 526 689 ; C -1 ; WX 680 ; N mu ; B 20 -251 653 484 ; C -1 ; WX 600 ; N minus ; B 51 224 555 300 ; C -1 ; WX 560 ; N eth ; B 37 -8 526 734 ; C -1 ; WX 560 ; N odieresis ; B 37 -8 526 674 ; C -1 ; WX 740 ; N copyright ; B 24 -17 724 698 ; C -1 ; WX 600 ; N brokenbar ; B 264 -175 342 675 ; EndCharMetrics StartKernData StartKernPairs 82 KPX A y 32 KPX A w 4 KPX A v 7 KPX A Y -35 KPX A W -40 KPX A V -56 KPX A T 1 KPX F period -46 KPX F comma -41 KPX F A -21 KPX L y 79 KPX L Y 13 KPX L W 1 KPX L V -4 KPX L T 28 KPX P period -60 KPX P comma -55 KPX P A -8 KPX R y 59 KPX R Y 26 KPX R W 13 KPX R V 8 KPX R T 71 KPX T s 16 KPX T r 38 KPX T period -33 KPX T o 15 KPX T i 42 KPX T hyphen 90 KPX T e 13 KPX T comma -28 KPX T c 14 KPX T a 17 KPX T A 1 KPX V y 15 KPX V u -38 KPX V r -41 KPX V period -40 KPX V o -71 KPX V i -20 KPX V hyphen 11 KPX V e -72 KPX V comma -34 KPX V a -69 KPX V A -66 KPX W y 15 KPX W u -38 KPX W r -41 KPX W period -40 KPX W o -68 KPX W i -20 KPX W hyphen 11 KPX W e -69 KPX W comma -34 KPX W a -66 KPX W A -64 KPX Y v 15 KPX Y u -38 KPX Y q -55 KPX Y period -40 KPX Y p -31 KPX Y o -57 KPX Y i -37 KPX Y hyphen 11 KPX Y e -58 KPX Y comma -34 KPX Y a -54 KPX Y A -53 KPX f f 29 KPX r q 9 KPX r period -64 KPX r o 8 KPX r n 31 KPX r m 31 KPX r hyphen 70 KPX r h -21 KPX r g -4 KPX r f 33 KPX r e 7 KPX r d 7 KPX r comma -58 KPX r c 7 EndKernPairs EndKernData StartComposites 56 CC Aacute 2 ; PCC A 0 0 ; PCC acute 200 177 ; CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 130 177 ; CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 130 177 ; CC Agrave 2 ; PCC A 0 0 ; PCC grave 140 177 ; CC Aring 2 ; PCC A 0 0 ; PCC ring 180 177 ; CC Atilde 2 ; PCC A 0 0 ; PCC tilde 120 177 ; CC Eacute 2 ; PCC E 0 0 ; PCC acute 220 177 ; CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 150 177 ; CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 150 177 ; CC Egrave 2 ; PCC E 0 0 ; PCC grave 160 177 ; CC Iacute 2 ; PCC I 0 0 ; PCC acute 20 177 ; CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex -40 177 ; CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis -40 177 ; CC Igrave 2 ; PCC I 0 0 ; PCC grave -20 177 ; CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 150 177 ; CC Oacute 2 ; PCC O 0 0 ; PCC acute 260 177 ; CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 190 177 ; CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 190 177 ; CC Ograve 2 ; PCC O 0 0 ; PCC grave 200 177 ; CC Otilde 2 ; PCC O 0 0 ; PCC tilde 180 177 ; CC Scaron 2 ; PCC S 0 0 ; PCC caron 120 177 ; CC Uacute 2 ; PCC U 0 0 ; PCC acute 250 177 ; CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 180 177 ; CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 180 177 ; CC Ugrave 2 ; PCC U 0 0 ; PCC grave 190 177 ; CC Yacute 2 ; PCC Y 0 0 ; PCC acute 150 177 ; CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 110 177 ; CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 110 177 ; CC aacute 2 ; PCC a 0 0 ; PCC acute 120 0 ; CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 80 0 ; CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 80 0 ; CC agrave 2 ; PCC a 0 0 ; PCC grave 120 0 ; CC aring 2 ; PCC a 0 0 ; PCC ring 130 0 ; CC atilde 2 ; PCC a 0 0 ; PCC tilde 70 0 ; CC eacute 2 ; PCC e 0 0 ; PCC acute 90 0 ; CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 50 0 ; CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 50 0 ; CC egrave 2 ; PCC e 0 0 ; PCC grave 90 0 ; CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -20 0 ; CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -60 0 ; CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -60 0 ; CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -20 0 ; CC ntilde 2 ; PCC n 0 0 ; PCC tilde 110 0 ; CC oacute 2 ; PCC o 0 0 ; PCC acute 110 0 ; CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 70 0 ; CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 70 0 ; CC ograve 2 ; PCC o 0 0 ; PCC grave 110 0 ; CC otilde 2 ; PCC o 0 0 ; PCC tilde 60 0 ; CC scaron 2 ; PCC s 0 0 ; PCC caron 50 0 ; CC uacute 2 ; PCC u 0 0 ; PCC acute 170 0 ; CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 130 0 ; CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 130 0 ; CC ugrave 2 ; PCC u 0 0 ; PCC grave 170 0 ; CC yacute 2 ; PCC y 0 0 ; PCC acute 100 0 ; CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 60 0 ; CC zcaron 2 ; PCC z 0 0 ; PCC caron 30 0 ; EndComposites EndFontMetrics enscript-1.6.5.90/afm/ncbi.afm0000644000175000017500000004326311132443251012671 00000000000000StartFontMetrics 2.0 Comment Copyright (c) 1985, 1987, 1989, 1991 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Tue May 28 16:56:07 1991 Comment UniqueID 35034 Comment VMusage 31030 37922 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 001.007 Notice Copyright (c) 1985, 1987, 1989, 1991 Adobe Systems Incorporated. All Rights Reserved. EncodingScheme AdobeStandardEncoding CapHeight 722 XHeight 477 Ascender 737 Descender -205 StartCharMetrics 228 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 546 289 690 ; C 200 ; WX 333 ; N dieresis ; B 33 546 393 690 ; 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 68 -155 246 -10 ; 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 5 -15 390 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 519 ; N ecircumflex ; B 0 -15 479 705 ; C -1 ; WX 519 ; N edieresis ; B 0 -15 486 690 ; C -1 ; WX 667 ; N aacute ; B 6 -15 636 722 ; C -1 ; WX 747 ; N registered ; B -2 -15 750 737 ; C -1 ; WX 389 ; N icircumflex ; B 21 -15 363 698 ; C -1 ; WX 685 ; N udieresis ; B 30 -15 635 690 ; C -1 ; WX 574 ; N ograve ; B 0 -15 530 722 ; C -1 ; WX 685 ; N uacute ; B 30 -15 635 722 ; C -1 ; WX 685 ; N ucircumflex ; B 30 -15 635 705 ; C -1 ; WX 741 ; N Aacute ; B -75 0 716 947 ; C -1 ; WX 389 ; N igrave ; B 32 -15 345 715 ; C -1 ; WX 444 ; N Icircumflex ; B -41 0 485 930 ; C -1 ; WX 537 ; N ccedilla ; B 0 -220 482 477 ; C -1 ; WX 667 ; N adieresis ; B 6 -15 636 690 ; C -1 ; WX 741 ; N Ecircumflex ; B -41 0 730 930 ; C -1 ; WX 481 ; N scaron ; B 0 -15 477 705 ; C -1 ; WX 648 ; N thorn ; B -119 -205 590 737 ; C -1 ; WX 950 ; N trademark ; B 42 317 1017 722 ; C -1 ; WX 519 ; N egrave ; B 0 -15 479 722 ; C -1 ; WX 344 ; N threesuperior ; B 3 273 361 705 ; C -1 ; WX 519 ; N zcaron ; B -19 -15 473 695 ; C -1 ; WX 667 ; N atilde ; B 6 -15 636 690 ; C -1 ; WX 667 ; N aring ; B 6 -15 636 746 ; C -1 ; WX 574 ; N ocircumflex ; B 0 -15 530 705 ; C -1 ; WX 741 ; N Edieresis ; B -41 0 730 915 ; C -1 ; WX 861 ; N threequarters ; B 35 -15 789 705 ; C -1 ; WX 519 ; N ydieresis ; B -66 -205 493 690 ; C -1 ; WX 519 ; N yacute ; B -66 -205 493 722 ; C -1 ; WX 389 ; N iacute ; B 32 -15 370 715 ; C -1 ; WX 741 ; N Acircumflex ; B -75 0 716 930 ; C -1 ; WX 833 ; N Uacute ; B 88 -15 900 947 ; C -1 ; WX 519 ; N eacute ; B 0 -15 479 722 ; C -1 ; WX 833 ; N Ograve ; B 37 -15 796 947 ; C -1 ; WX 667 ; N agrave ; B 6 -15 636 722 ; C -1 ; WX 833 ; N Udieresis ; B 88 -15 900 915 ; C -1 ; WX 667 ; N acircumflex ; B 6 -15 636 705 ; C -1 ; WX 444 ; N Igrave ; B -41 0 485 947 ; C -1 ; WX 344 ; N twosuperior ; B -17 280 362 705 ; C -1 ; WX 833 ; N Ugrave ; B 88 -15 900 947 ; C -1 ; WX 861 ; N onequarter ; B 17 -15 789 705 ; C -1 ; WX 833 ; N Ucircumflex ; B 88 -15 900 930 ; C -1 ; WX 685 ; N Scaron ; B 1 -15 666 930 ; C -1 ; WX 444 ; N Idieresis ; B -41 0 509 915 ; C -1 ; WX 389 ; N idieresis ; B 31 -15 391 683 ; C -1 ; WX 741 ; N Egrave ; B -41 0 730 947 ; C -1 ; WX 833 ; N Oacute ; B 37 -15 796 947 ; C -1 ; WX 606 ; N divide ; B 50 -40 556 546 ; C -1 ; WX 741 ; N Atilde ; B -75 0 716 915 ; C -1 ; WX 741 ; N Aring ; B -75 0 716 991 ; C -1 ; WX 833 ; N Odieresis ; B 37 -15 796 915 ; C -1 ; WX 741 ; N Adieresis ; B -75 0 716 915 ; C -1 ; WX 852 ; N Ntilde ; B -61 -10 913 915 ; C -1 ; WX 704 ; N Zcaron ; B -33 0 711 930 ; C -1 ; WX 741 ; N Thorn ; B -41 0 690 722 ; 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 multiply ; B 65 15 541 491 ; C -1 ; WX 741 ; N Eacute ; B -41 0 730 947 ; C -1 ; WX 704 ; N Ydieresis ; B 13 0 775 915 ; C -1 ; WX 344 ; N onesuperior ; B 19 282 326 705 ; C -1 ; WX 685 ; N ugrave ; B 30 -15 635 722 ; C -1 ; WX 606 ; N logicalnot ; B 50 103 556 403 ; C -1 ; WX 685 ; N ntilde ; B 0 -15 639 690 ; C -1 ; WX 833 ; N Otilde ; B 37 -15 796 915 ; C -1 ; WX 574 ; N otilde ; B 0 -15 530 690 ; C -1 ; WX 759 ; N Ccedilla ; B 37 -220 759 737 ; C -1 ; WX 741 ; N Agrave ; B -75 0 716 947 ; C -1 ; WX 861 ; N onehalf ; B 17 -15 798 705 ; C -1 ; WX 833 ; N Eth ; B -47 0 796 722 ; C -1 ; WX 400 ; N degree ; B 86 419 372 705 ; C -1 ; WX 704 ; N Yacute ; B 13 0 775 947 ; C -1 ; WX 833 ; N Ocircumflex ; B 37 -15 796 930 ; C -1 ; WX 574 ; N oacute ; B 0 -15 530 722 ; C -1 ; WX 685 ; N mu ; B -89 -205 635 477 ; C -1 ; WX 606 ; N minus ; B 50 199 556 307 ; C -1 ; WX 574 ; N eth ; B 0 -15 530 752 ; C -1 ; WX 574 ; N odieresis ; B 0 -15 530 690 ; C -1 ; WX 747 ; N copyright ; B -2 -15 750 737 ; C -1 ; WX 606 ; N brokenbar ; B 249 -175 357 675 ; EndCharMetrics StartKernData StartKernPairs 239 KPX A y -33 KPX A w -25 KPX A v -10 KPX A u -15 KPX A quoteright -95 KPX A quotedblright -95 KPX A Y -70 KPX A W -84 KPX A V -100 KPX A U -32 KPX A T 5 KPX A Q 5 KPX A O 5 KPX A G 5 KPX A C 5 KPX B period 15 KPX B comma 15 KPX B U 15 KPX B A -11 KPX C A -5 KPX D period -11 KPX D comma -11 KPX D Y 6 KPX D W -11 KPX D V -18 KPX F r -27 KPX F period -91 KPX F o -47 KPX F i -41 KPX F e -41 KPX F comma -91 KPX F a -47 KPX F A -79 KPX J u -39 KPX J period -74 KPX J o -40 KPX J e -33 KPX J comma -74 KPX J a -40 KPX J A -30 KPX K y -48 KPX K u -4 KPX K o -4 KPX K e 18 KPX L y -30 KPX L quoteright -100 KPX L quotedblright -100 KPX L Y -55 KPX L W -69 KPX L V -97 KPX L T -75 KPX N period -49 KPX N comma -49 KPX O period -18 KPX O comma -18 KPX O X -18 KPX O W -15 KPX O V -24 KPX O A -5 KPX P period -100 KPX P o -40 KPX P e -33 KPX P comma -100 KPX P a -40 KPX P A -80 KPX R W -14 KPX R V -24 KPX S period -18 KPX S comma -18 KPX T y -30 KPX T w -30 KPX T u -22 KPX T r -9 KPX T period -55 KPX T o -40 KPX T i -22 KPX T hyphen -75 KPX T h -9 KPX T e -33 KPX T comma -55 KPX T a -40 KPX T O 11 KPX T A -60 KPX U period -25 KPX U comma -25 KPX U A -42 KPX V u -70 KPX V semicolon 6 KPX V period -94 KPX V o -71 KPX V i -35 KPX V hyphen -94 KPX V e -66 KPX V comma -94 KPX V colon -49 KPX V a -55 KPX V O -19 KPX V G -12 KPX V A -100 KPX W y -41 KPX W u -25 KPX W semicolon -22 KPX W period -86 KPX W o -33 KPX W i -27 KPX W hyphen -61 KPX W h 5 KPX W e -39 KPX W comma -86 KPX W colon -22 KPX W a -33 KPX W O -11 KPX W A -66 KPX Y u -58 KPX Y semicolon -55 KPX Y period -91 KPX Y o -77 KPX Y i -22 KPX Y hyphen -91 KPX Y e -71 KPX Y comma -91 KPX Y colon -55 KPX Y a -77 KPX Y A -79 KPX a y -8 KPX a w -8 KPX a v 6 KPX b y -6 KPX b v 8 KPX b period 6 KPX b comma 6 KPX c y -20 KPX c period -8 KPX c l -13 KPX c k -8 KPX c h -18 KPX c comma -8 KPX colon space -18 KPX comma space -18 KPX comma quoteright -18 KPX comma quotedblright -18 KPX d y -15 KPX d w -15 KPX e y -15 KPX e x -5 KPX e w -15 KPX e p -11 KPX e g -4 KPX e b -8 KPX f quoteright 105 KPX f quotedblright 105 KPX f period -28 KPX f o 7 KPX f l 7 KPX f i 7 KPX f e 14 KPX f dotlessi 7 KPX f comma -28 KPX f a 8 KPX g y -11 KPX g r 11 KPX g period -5 KPX g comma -5 KPX h y -20 KPX i v 7 KPX k y -15 KPX k o -22 KPX k e -16 KPX l y -7 KPX l w -7 KPX m y -20 KPX m u -11 KPX n y -20 KPX n v -7 KPX n u -11 KPX o y -11 KPX o w -8 KPX o v 6 KPX p y -4 KPX p period 8 KPX p comma 8 KPX period space -18 KPX period quoteright -18 KPX period quotedblright -18 KPX quotedblleft quoteleft 20 KPX quotedblleft A -60 KPX quotedblright space -18 KPX quoteleft A -80 KPX quoteright v -16 KPX quoteright t -22 KPX quoteright s -46 KPX quoteright r -9 KPX quoteright l -22 KPX quoteright d -41 KPX r y -20 KPX r v -7 KPX r u -11 KPX r t -11 KPX r semicolon 9 KPX r s -20 KPX r quoteright 9 KPX r period -90 KPX r p -17 KPX r o -11 KPX r l -14 KPX r k 9 KPX r i -14 KPX r hyphen -16 KPX r g -11 KPX r e -7 KPX r d -7 KPX r comma -90 KPX r colon 9 KPX r a -11 KPX s period 11 KPX s comma 11 KPX semicolon space -18 KPX space quotedblleft -18 KPX space Y -18 KPX space W -33 KPX space V -24 KPX space T -18 KPX space A -22 KPX v period -11 KPX v o -6 KPX v comma -11 KPX v a -6 KPX w period -17 KPX w o -14 KPX w e -8 KPX w comma -17 KPX w a -14 KPX x e 5 KPX y period -25 KPX y o 8 KPX y e 15 KPX y comma -25 KPX y a 8 KPX z e 4 EndKernPairs EndKernData StartComposites 56 CC Aacute 2 ; PCC A 0 0 ; PCC acute 259 225 ; CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 259 225 ; CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 259 225 ; CC Agrave 2 ; PCC A 0 0 ; PCC grave 259 225 ; CC Aring 2 ; PCC A 0 0 ; PCC ring 229 245 ; CC Atilde 2 ; PCC A 0 0 ; PCC tilde 259 225 ; CC Eacute 2 ; PCC E 0 0 ; PCC acute 296 225 ; CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 296 225 ; CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 296 225 ; CC Egrave 2 ; PCC E 0 0 ; PCC grave 296 225 ; CC Iacute 2 ; PCC I 0 0 ; PCC acute 116 225 ; CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 116 225 ; CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 116 225 ; CC Igrave 2 ; PCC I 0 0 ; PCC grave 116 225 ; CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 326 225 ; CC Oacute 2 ; PCC O 0 0 ; PCC acute 315 225 ; CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 315 225 ; CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 315 225 ; CC Ograve 2 ; PCC O 0 0 ; PCC grave 315 225 ; CC Otilde 2 ; PCC O 0 0 ; PCC tilde 315 225 ; CC Scaron 2 ; PCC S 0 0 ; PCC caron 206 225 ; CC Uacute 2 ; PCC U 0 0 ; PCC acute 340 225 ; CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 340 225 ; CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 340 225 ; CC Ugrave 2 ; PCC U 0 0 ; PCC grave 340 225 ; CC Yacute 2 ; PCC Y 0 0 ; PCC acute 246 225 ; CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 236 225 ; CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 226 225 ; CC aacute 2 ; PCC a 0 0 ; PCC acute 167 0 ; CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 167 0 ; CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 167 0 ; CC agrave 2 ; PCC a 0 0 ; PCC grave 167 0 ; CC aring 2 ; PCC a 0 0 ; PCC ring 167 0 ; CC atilde 2 ; PCC a 0 0 ; PCC tilde 167 0 ; CC eacute 2 ; PCC e 0 0 ; PCC acute 93 0 ; CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 93 0 ; CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 93 0 ; CC egrave 2 ; PCC e 0 0 ; PCC grave 93 0 ; CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -2 -7 ; CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -2 -7 ; CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -2 -7 ; CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -2 -7 ; CC ntilde 2 ; PCC n 0 0 ; PCC tilde 176 0 ; CC oacute 2 ; PCC o 0 0 ; PCC acute 121 0 ; CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 121 0 ; CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 121 0 ; CC ograve 2 ; PCC o 0 0 ; PCC grave 121 0 ; CC otilde 2 ; PCC o 0 0 ; PCC tilde 121 0 ; CC scaron 2 ; PCC s 0 0 ; PCC caron 74 0 ; CC uacute 2 ; PCC u 0 0 ; PCC acute 176 0 ; CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 176 0 ; CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 176 0 ; CC ugrave 2 ; PCC u 0 0 ; PCC grave 176 0 ; CC yacute 2 ; PCC y 0 0 ; PCC acute 93 0 ; CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 93 0 ; CC zcaron 2 ; PCC z 0 0 ; PCC caron 63 -10 ; EndComposites EndFontMetrics enscript-1.6.5.90/afm/zd.afm0000644000175000017500000002273211132443251012371 00000000000000StartFontMetrics 2.0 Comment Copyright (c) 1985, 1987, 1988, 1989 Adobe Systems Incorporated. All rights reserved. Comment Creation Date: Fri Dec 1 12:57:42 1989 Comment UniqueID 26200 Comment VMusage 39281 49041 FontName ZapfDingbats FullName ITC Zapf Dingbats FamilyName ITC Zapf Dingbats Weight Medium ItalicAngle 0 IsFixedPitch false FontBBox -1 -143 981 820 UnderlinePosition -98 UnderlineThickness 54 Version 001.004 Notice Copyright (c) 1985, 1987, 1988, 1989 Adobe Systems Incorporated. All rights reserved.ITC Zapf Dingbats is a registered trademark of International Typeface Corporation. EncodingScheme FontSpecific 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 35 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 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 ; C -1 ; WX 410 ; N a86 ; B 35 0 375 692 ; C -1 ; WX 509 ; N a85 ; B 35 0 475 692 ; C -1 ; WX 334 ; N a95 ; B 35 0 299 692 ; C -1 ; WX 509 ; N a205 ; B 35 0 475 692 ; C -1 ; WX 390 ; N a89 ; B 35 -14 356 705 ; C -1 ; WX 234 ; N a87 ; B 35 -14 199 705 ; C -1 ; WX 276 ; N a91 ; B 35 0 242 692 ; C -1 ; WX 390 ; N a90 ; B 35 -14 355 705 ; C -1 ; WX 410 ; N a206 ; B 35 0 375 692 ; C -1 ; WX 317 ; N a94 ; B 35 0 283 692 ; C -1 ; WX 317 ; N a93 ; B 35 0 283 692 ; C -1 ; WX 276 ; N a92 ; B 35 0 242 692 ; C -1 ; WX 334 ; N a96 ; B 35 0 299 692 ; C -1 ; WX 234 ; N a88 ; B 35 -14 199 705 ; EndCharMetrics EndFontMetrics enscript-1.6.5.90/afm/hvcb.afm0000644000175000017500000003647611132443251012710 00000000000000StartFontMetrics 2.0 Comment Copyright (c) 1985, 1987, 1991 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Wed Sep 4 17:42:59 1991 Comment UniqueID 36188 Comment VMusage 27402 34294 FontName Helvetica-Condensed-Bold FullName Helvetica Condensed Bold FamilyName Helvetica Weight Bold ItalicAngle 0 IsFixedPitch false FontBBox -169 -250 1091 991 UnderlinePosition -100 UnderlineThickness 50 Version 001.004 Notice Copyright (c) 1985, 1987, 1991 Adobe Systems Incorporated. All Rights Reserved.Helvetica is a trademark of Linotype-Hell AG and/or its subsidiaries. EncodingScheme AdobeStandardEncoding CapHeight 750 XHeight 564 Ascender 750 Descender -189 StartCharMetrics 228 C 32 ; WX 250 ; N space ; B 0 0 0 0 ; C 33 ; WX 333 ; N exclam ; B 101 0 232 750 ; C 34 ; WX 333 ; N quotedbl ; B 16 468 318 739 ; C 35 ; WX 500 ; N numbersign ; B 31 0 469 738 ; C 36 ; WX 500 ; N dollar ; B 35 -124 466 803 ; C 37 ; WX 833 ; N percent ; B 31 -15 803 750 ; C 38 ; WX 667 ; N ampersand ; B 63 -18 615 768 ; C 39 ; WX 278 ; N quoteright ; B 81 479 202 750 ; C 40 ; WX 333 ; N parenleft ; B 52 -198 281 768 ; C 41 ; WX 333 ; N parenright ; B 52 -198 281 768 ; C 42 ; WX 500 ; N asterisk ; B 79 412 422 738 ; C 43 ; WX 500 ; N plus ; B 26 0 475 492 ; C 44 ; WX 333 ; N comma ; B 101 -145 233 132 ; C 45 ; WX 333 ; N hyphen ; B 48 255 286 370 ; C 46 ; WX 333 ; N period ; B 101 0 233 132 ; C 47 ; WX 278 ; N slash ; B -11 -94 312 750 ; C 48 ; WX 500 ; N zero ; B 48 -15 453 753 ; C 49 ; WX 500 ; N one ; B 44 0 353 750 ; C 50 ; WX 500 ; N two ; B 32 0 453 753 ; C 51 ; WX 500 ; N three ; B 28 -15 453 753 ; C 52 ; WX 500 ; N four ; B 23 0 470 738 ; C 53 ; WX 500 ; N five ; B 37 -15 458 738 ; C 54 ; WX 500 ; N six ; B 42 -15 459 753 ; C 55 ; WX 500 ; N seven ; B 32 0 454 738 ; C 56 ; WX 500 ; N eight ; B 41 -15 460 753 ; C 57 ; WX 500 ; N nine ; B 42 -15 459 753 ; C 58 ; WX 278 ; N colon ; B 73 0 205 556 ; C 59 ; WX 278 ; N semicolon ; B 73 -145 205 556 ; C 60 ; WX 500 ; N less ; B 42 -24 459 527 ; C 61 ; WX 500 ; N equal ; B 26 96 475 401 ; C 62 ; WX 500 ; N greater ; B 42 -24 459 527 ; C 63 ; WX 500 ; N question ; B 51 0 440 768 ; C 64 ; WX 833 ; N at ; B 38 -18 795 768 ; C 65 ; WX 556 ; N A ; B 9 0 547 750 ; C 66 ; WX 556 ; N B ; B 65 0 506 750 ; C 67 ; WX 556 ; N C ; B 55 -18 512 768 ; C 68 ; WX 611 ; N D ; B 72 0 550 750 ; C 69 ; WX 500 ; N E ; B 64 0 458 750 ; C 70 ; WX 500 ; N F ; B 73 0 470 750 ; C 71 ; WX 611 ; N G ; B 55 -18 542 768 ; C 72 ; WX 611 ; N H ; B 68 0 544 750 ; C 73 ; WX 278 ; N I ; B 69 0 209 750 ; C 74 ; WX 444 ; N J ; B 7 -18 384 750 ; C 75 ; WX 556 ; N K ; B 68 0 547 750 ; C 76 ; WX 500 ; N L ; B 68 0 468 750 ; C 77 ; WX 778 ; N M ; B 67 0 712 750 ; C 78 ; WX 611 ; N N ; B 68 0 543 750 ; C 79 ; WX 611 ; N O ; B 61 -18 551 768 ; C 80 ; WX 556 ; N P ; B 68 0 529 750 ; C 81 ; WX 611 ; N Q ; B 61 -71 587 768 ; C 82 ; WX 611 ; N R ; B 66 0 567 750 ; C 83 ; WX 556 ; N S ; B 49 -18 508 768 ; C 84 ; WX 500 ; N T ; B 17 0 484 750 ; C 85 ; WX 611 ; N U ; B 68 -18 544 750 ; C 86 ; WX 556 ; N V ; B 21 0 536 750 ; C 87 ; WX 833 ; N W ; B 24 0 810 750 ; C 88 ; WX 556 ; N X ; B 11 0 545 750 ; C 89 ; WX 556 ; N Y ; B 12 0 545 750 ; C 90 ; WX 500 ; N Z ; B 33 0 468 750 ; C 91 ; WX 333 ; N bracketleft ; B 81 -94 280 750 ; C 92 ; WX 250 ; N backslash ; B -89 0 340 750 ; C 93 ; WX 333 ; N bracketright ; B 53 -94 252 750 ; C 94 ; WX 500 ; N asciicircum ; B 10 326 490 750 ; C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; C 96 ; WX 278 ; N quoteleft ; B 76 495 197 766 ; C 97 ; WX 500 ; N a ; B 42 -15 440 579 ; C 98 ; WX 500 ; N b ; B 64 -15 444 750 ; C 99 ; WX 444 ; N c ; B 49 -15 403 579 ; C 100 ; WX 500 ; N d ; B 53 -15 433 750 ; C 101 ; WX 500 ; N e ; B 53 -15 443 579 ; C 102 ; WX 278 ; N f ; B 21 0 257 750 ; L i fi ; L l fl ; C 103 ; WX 500 ; N g ; B 53 -190 433 579 ; C 104 ; WX 500 ; N h ; B 61 0 440 750 ; C 105 ; WX 278 ; N i ; B 74 0 204 750 ; C 106 ; WX 278 ; N j ; B 31 -192 210 750 ; C 107 ; WX 444 ; N k ; B 48 0 443 750 ; C 108 ; WX 278 ; N l ; B 74 0 204 750 ; C 109 ; WX 778 ; N m ; B 66 0 712 579 ; C 110 ; WX 500 ; N n ; B 61 0 440 579 ; C 111 ; WX 500 ; N o ; B 53 -15 447 579 ; C 112 ; WX 500 ; N p ; B 58 -189 438 579 ; C 113 ; WX 500 ; N q ; B 50 -188 430 579 ; C 114 ; WX 333 ; N r ; B 60 0 319 574 ; C 115 ; WX 444 ; N s ; B 28 -15 407 579 ; C 116 ; WX 278 ; N t ; B 14 -7 252 719 ; C 117 ; WX 500 ; N u ; B 58 -15 431 564 ; C 118 ; WX 444 ; N v ; B 10 0 434 564 ; C 119 ; WX 667 ; N w ; B 11 0 645 564 ; C 120 ; WX 444 ; N x ; B 8 0 436 564 ; C 121 ; WX 444 ; N y ; B 5 -195 429 564 ; C 122 ; WX 389 ; N z ; B 23 0 367 564 ; C 123 ; WX 274 ; N braceleft ; B -32 -92 240 750 ; C 124 ; WX 250 ; N bar ; B 75 -250 175 750 ; C 125 ; WX 274 ; N braceright ; B 34 -94 306 750 ; C 126 ; WX 500 ; N asciitilde ; B 26 153 475 359 ; C 161 ; WX 333 ; N exclamdown ; B 102 -170 232 579 ; C 162 ; WX 500 ; N cent ; B 72 -122 428 671 ; C 163 ; WX 500 ; N sterling ; B 35 -15 487 768 ; C 164 ; WX 167 ; N fraction ; B -169 0 331 738 ; C 165 ; WX 500 ; N yen ; B -18 0 518 750 ; C 166 ; WX 500 ; N florin ; B 9 -185 492 763 ; C 167 ; WX 500 ; N section ; B 37 -183 463 768 ; C 168 ; WX 500 ; N currency ; B 9 58 492 560 ; C 169 ; WX 250 ; N quotesingle ; B 66 468 185 739 ; C 170 ; WX 500 ; N quotedblleft ; B 87 495 405 766 ; C 171 ; WX 500 ; N guillemotleft ; B 74 62 419 447 ; C 172 ; WX 278 ; N guilsinglleft ; B 58 62 215 447 ; C 173 ; WX 278 ; N guilsinglright ; B 63 62 220 447 ; C 174 ; WX 500 ; N fi ; B 10 0 446 750 ; C 175 ; WX 500 ; N fl ; B 10 0 443 750 ; C 177 ; WX 500 ; N endash ; B 0 259 500 369 ; C 178 ; WX 500 ; N dagger ; B 37 -155 463 768 ; C 179 ; WX 500 ; N daggerdbl ; B 35 -161 466 768 ; C 180 ; WX 333 ; N periodcentered ; B 101 183 233 315 ; C 182 ; WX 550 ; N paragraph ; B 23 -116 526 750 ; C 183 ; WX 420 ; N bullet ; B 22 186 398 562 ; C 184 ; WX 278 ; N quotesinglbase ; B 87 -138 207 132 ; C 185 ; WX 500 ; N quotedblbase ; B 96 -138 413 132 ; C 186 ; WX 500 ; N quotedblright ; B 95 479 413 750 ; C 187 ; WX 500 ; N guillemotright ; B 81 62 426 447 ; C 188 ; WX 1000 ; N ellipsis ; B 101 0 899 132 ; C 189 ; WX 1111 ; N perthousand ; B 21 -18 1091 748 ; C 191 ; WX 500 ; N questiondown ; B 60 -190 449 579 ; C 193 ; WX 333 ; N grave ; B 1 629 250 775 ; C 194 ; WX 333 ; N acute ; B 83 629 332 775 ; C 195 ; WX 333 ; N circumflex ; B -10 644 343 790 ; C 196 ; WX 333 ; N tilde ; B -16 636 350 764 ; C 197 ; WX 333 ; N macron ; B -6 666 340 740 ; C 198 ; WX 333 ; N breve ; B -1 635 335 780 ; C 199 ; WX 333 ; N dotaccent ; B 103 644 230 759 ; C 200 ; WX 333 ; N dieresis ; B 5 644 328 759 ; C 202 ; WX 333 ; N ring ; B 60 632 273 845 ; C 203 ; WX 333 ; N cedilla ; B 39 -228 275 0 ; C 205 ; WX 333 ; N hungarumlaut ; B -17 634 447 780 ; C 206 ; WX 333 ; N ogonek ; B 88 -205 278 0 ; C 207 ; WX 333 ; N caron ; B -10 634 343 780 ; C 208 ; WX 1000 ; N emdash ; B 0 259 1000 369 ; C 225 ; WX 778 ; N AE ; B -22 0 750 750 ; C 227 ; WX 300 ; N ordfeminine ; B 22 412 281 768 ; C 232 ; WX 500 ; N Lslash ; B 0 0 474 750 ; C 233 ; WX 611 ; N Oslash ; B 36 -38 578 779 ; C 234 ; WX 833 ; N OE ; B 61 -18 792 768 ; C 235 ; WX 300 ; N ordmasculine ; B 22 412 278 768 ; C 241 ; WX 722 ; N ae ; B 44 -15 672 579 ; C 245 ; WX 278 ; N dotlessi ; B 74 0 204 564 ; C 248 ; WX 278 ; N lslash ; B 2 0 272 750 ; C 249 ; WX 500 ; N oslash ; B 7 -58 492 617 ; C 250 ; WX 722 ; N oe ; B 46 -15 678 579 ; C 251 ; WX 500 ; N germandbls ; B 60 -15 445 768 ; C -1 ; WX 500 ; N ecircumflex ; B 53 -15 443 770 ; C -1 ; WX 500 ; N edieresis ; B 53 -15 443 759 ; C -1 ; WX 500 ; N aacute ; B 42 -15 440 775 ; C -1 ; WX 830 ; N registered ; B 22 -18 808 768 ; C -1 ; WX 278 ; N icircumflex ; B -47 0 306 770 ; C -1 ; WX 500 ; N udieresis ; B 58 -15 431 759 ; C -1 ; WX 500 ; N ograve ; B 53 -15 447 775 ; C -1 ; WX 500 ; N uacute ; B 58 -15 431 775 ; C -1 ; WX 500 ; N ucircumflex ; B 58 -15 431 780 ; C -1 ; WX 556 ; N Aacute ; B 9 0 547 961 ; C -1 ; WX 278 ; N igrave ; B -26 0 223 775 ; C -1 ; WX 278 ; N Icircumflex ; B -37 0 316 956 ; C -1 ; WX 444 ; N ccedilla ; B 49 -228 403 579 ; C -1 ; WX 500 ; N adieresis ; B 42 -15 440 759 ; C -1 ; WX 500 ; N Ecircumflex ; B 64 0 458 956 ; C -1 ; WX 444 ; N scaron ; B 28 -15 407 760 ; C -1 ; WX 500 ; N thorn ; B 58 -189 438 750 ; C -1 ; WX 860 ; N trademark ; B 1 346 774 750 ; C -1 ; WX 500 ; N egrave ; B 53 -15 443 775 ; C -1 ; WX 300 ; N threesuperior ; B 12 290 288 751 ; C -1 ; WX 389 ; N zcaron ; B 18 0 371 760 ; C -1 ; WX 500 ; N atilde ; B 42 -15 440 744 ; C -1 ; WX 500 ; N aring ; B 42 -15 440 835 ; C -1 ; WX 500 ; N ocircumflex ; B 53 -15 447 770 ; C -1 ; WX 500 ; N Edieresis ; B 64 0 458 945 ; C -1 ; WX 750 ; N threequarters ; B 12 0 739 751 ; C -1 ; WX 444 ; N ydieresis ; B 5 -195 429 759 ; C -1 ; WX 444 ; N yacute ; B 5 -195 429 775 ; C -1 ; WX 278 ; N iacute ; B 56 0 305 775 ; C -1 ; WX 556 ; N Acircumflex ; B 9 0 547 956 ; C -1 ; WX 611 ; N Uacute ; B 68 -18 544 961 ; C -1 ; WX 500 ; N eacute ; B 53 -15 443 775 ; C -1 ; WX 611 ; N Ograve ; B 61 -18 551 961 ; C -1 ; WX 500 ; N agrave ; B 42 -15 440 775 ; C -1 ; WX 611 ; N Udieresis ; B 68 -18 544 945 ; C -1 ; WX 500 ; N acircumflex ; B 42 -15 440 770 ; C -1 ; WX 278 ; N Igrave ; B -26 0 223 961 ; C -1 ; WX 300 ; N twosuperior ; B 13 300 287 752 ; C -1 ; WX 611 ; N Ugrave ; B 68 -18 544 961 ; C -1 ; WX 750 ; N onequarter ; B 20 0 729 750 ; C -1 ; WX 611 ; N Ucircumflex ; B 68 -18 544 956 ; C -1 ; WX 556 ; N Scaron ; B 49 -18 508 946 ; C -1 ; WX 278 ; N Idieresis ; B -22 0 301 945 ; C -1 ; WX 278 ; N idieresis ; B -22 0 301 759 ; C -1 ; WX 500 ; N Egrave ; B 64 0 458 961 ; C -1 ; WX 611 ; N Oacute ; B 61 -18 551 961 ; C -1 ; WX 500 ; N divide ; B 26 6 475 492 ; C -1 ; WX 556 ; N Atilde ; B 9 0 547 930 ; C -1 ; WX 556 ; N Aring ; B 9 0 547 991 ; C -1 ; WX 611 ; N Odieresis ; B 61 -18 551 945 ; C -1 ; WX 556 ; N Adieresis ; B 9 0 547 945 ; C -1 ; WX 611 ; N Ntilde ; B 68 0 543 930 ; C -1 ; WX 500 ; N Zcaron ; B 33 0 468 946 ; C -1 ; WX 556 ; N Thorn ; B 68 0 529 750 ; C -1 ; WX 278 ; N Iacute ; B 56 0 305 961 ; C -1 ; WX 500 ; N plusminus ; B 26 -15 475 513 ; C -1 ; WX 500 ; N multiply ; B 26 22 475 476 ; C -1 ; WX 500 ; N Eacute ; B 64 0 458 961 ; C -1 ; WX 556 ; N Ydieresis ; B 12 0 545 945 ; C -1 ; WX 300 ; N onesuperior ; B 50 300 251 750 ; C -1 ; WX 500 ; N ugrave ; B 58 -15 431 775 ; C -1 ; WX 500 ; N logicalnot ; B 26 105 475 401 ; C -1 ; WX 500 ; N ntilde ; B 61 0 440 744 ; C -1 ; WX 611 ; N Otilde ; B 61 -18 551 930 ; C -1 ; WX 500 ; N otilde ; B 53 -15 447 744 ; C -1 ; WX 556 ; N Ccedilla ; B 55 -228 512 768 ; C -1 ; WX 556 ; N Agrave ; B 9 0 547 961 ; C -1 ; WX 750 ; N onehalf ; B 12 0 739 750 ; C -1 ; WX 611 ; N Eth ; B 20 0 550 750 ; C -1 ; WX 400 ; N degree ; B 50 450 350 750 ; C -1 ; WX 556 ; N Yacute ; B 12 0 545 961 ; C -1 ; WX 611 ; N Ocircumflex ; B 61 -18 551 956 ; C -1 ; WX 500 ; N oacute ; B 53 -15 447 775 ; C -1 ; WX 500 ; N mu ; B 58 -189 431 564 ; C -1 ; WX 500 ; N minus ; B 26 194 475 304 ; C -1 ; WX 500 ; N eth ; B 53 -15 447 779 ; C -1 ; WX 500 ; N odieresis ; B 53 -15 447 759 ; C -1 ; WX 830 ; N copyright ; B 22 -18 808 768 ; C -1 ; WX 250 ; N brokenbar ; B 75 -175 175 675 ; EndCharMetrics StartKernData StartKernPairs 88 KPX A y -18 KPX A w -18 KPX A v -18 KPX A quoteright -55 KPX A Y -55 KPX A W -37 KPX A V -37 KPX A T -55 KPX F period -111 KPX F comma -111 KPX F A -37 KPX L y -37 KPX L quoteright -92 KPX L Y -92 KPX L W -74 KPX L V -74 KPX L T -74 KPX P period -129 KPX P comma -129 KPX P A -37 KPX R Y -18 KPX R T -18 KPX T y -55 KPX T w -74 KPX T u -74 KPX T semicolon -74 KPX T s -74 KPX T r -74 KPX T period -92 KPX T o -74 KPX T i -18 KPX T hyphen -55 KPX T e -74 KPX T comma -92 KPX T colon -74 KPX T c -74 KPX T a -74 KPX T A -55 KPX V u -18 KPX V semicolon -18 KPX V r -18 KPX V period -92 KPX V o -18 KPX V hyphen -18 KPX V e -18 KPX V comma -92 KPX V colon -18 KPX V a -18 KPX V A -37 KPX W period -74 KPX W o -18 KPX W hyphen -18 KPX W e -18 KPX W comma -74 KPX W a -18 KPX W A -18 KPX Y v -18 KPX Y u -37 KPX Y semicolon -37 KPX Y q -55 KPX Y period -111 KPX Y p -37 KPX Y o -55 KPX Y i -18 KPX Y hyphen -74 KPX Y e -55 KPX Y comma -111 KPX Y colon -37 KPX Y a -55 KPX Y A -55 KPX f quoteright 18 KPX quoteleft quoteleft -18 KPX quoteright s -55 KPX quoteright quoteright -18 KPX r z 20 KPX r y 18 KPX r x 20 KPX r w 18 KPX r v 18 KPX r period -74 KPX r hyphen -37 KPX r comma -74 KPX v period -55 KPX v comma -55 KPX w period -37 KPX w comma -37 KPX y period -55 KPX y comma -55 EndKernPairs EndKernData StartComposites 56 CC Aacute 2 ; PCC A 0 0 ; PCC acute 112 186 ; CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 102 166 ; CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 112 186 ; CC Agrave 2 ; PCC A 0 0 ; PCC grave 112 186 ; CC Aring 2 ; PCC A 0 0 ; PCC ring 112 146 ; CC Atilde 2 ; PCC A 0 0 ; PCC tilde 112 166 ; CC Eacute 2 ; PCC E 0 0 ; PCC acute 84 186 ; CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 84 166 ; CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 84 186 ; CC Egrave 2 ; PCC E 0 0 ; PCC grave 84 186 ; CC Iacute 2 ; PCC I 0 0 ; PCC acute -27 186 ; CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex -27 166 ; CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis -27 186 ; CC Igrave 2 ; PCC I 0 0 ; PCC grave -27 186 ; CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 139 166 ; CC Oacute 2 ; PCC O 0 0 ; PCC acute 139 186 ; CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 139 166 ; CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 139 186 ; CC Ograve 2 ; PCC O 0 0 ; PCC grave 139 186 ; CC Otilde 2 ; PCC O 0 0 ; PCC tilde 139 166 ; CC Scaron 2 ; PCC S 0 0 ; PCC caron 112 166 ; CC Uacute 2 ; PCC U 0 0 ; PCC acute 139 186 ; CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 139 166 ; CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 139 186 ; CC Ugrave 2 ; PCC U 0 0 ; PCC grave 139 186 ; CC Yacute 2 ; PCC Y 0 0 ; PCC acute 112 186 ; CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 112 186 ; CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 84 166 ; CC aacute 2 ; PCC a 0 0 ; PCC acute 84 0 ; CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 84 -20 ; 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 69 -10 ; CC atilde 2 ; PCC a 0 0 ; PCC tilde 84 -20 ; CC eacute 2 ; PCC e 0 0 ; PCC acute 84 0 ; CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 84 -20 ; CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 84 0 ; CC egrave 2 ; PCC e 0 0 ; PCC grave 84 0 ; CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -27 0 ; CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -37 -20 ; 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 -20 ; CC oacute 2 ; PCC o 0 0 ; PCC acute 84 0 ; CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 84 -20 ; 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 -20 ; CC scaron 2 ; PCC s 0 0 ; PCC caron 46 -20 ; CC uacute 2 ; PCC u 0 0 ; PCC acute 84 0 ; CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 84 -10 ; 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 56 0 ; CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 56 0 ; CC zcaron 2 ; PCC z 0 0 ; PCC caron 28 -20 ; EndComposites EndFontMetrics enscript-1.6.5.90/afm/coo.afm0000644000175000017500000003665411132443251012544 00000000000000StartFontMetrics 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 enscript-1.6.5.90/afm/matrix.afm0000644000175000017500000002666511132443251013271 00000000000000StartFontMetrics 2.0 Comment Matrix font Comment Creation Date:17:52 Oct 15 1998 kivinen FontName Matrix EncodingScheme AdobeStandardEncoding FullName Matrix FamilyName Matrix Weight Medium ItalicAngle 0.0 IsFixedPitch true UnderlinePosition -82 UnderlineThickness 40 Version 001.000 Notice Matrix font by Tero Kivienn FontBBox 0 0 800 800 CapHeight 750 XHeight 437 Descender 0 Ascender 624 StartCharMetrics 260 C 32 ; WX 800 ; N space ; B 0 0 800 800 ; C 33 ; WX 800 ; N exclam ; B 0 0 800 800 ; C 34 ; WX 800 ; N quotedbl ; B 0 0 800 800 ; C 35 ; WX 800 ; N numbersign ; B 0 0 800 800 ; C 36 ; WX 800 ; N dollar ; B 0 0 800 800 ; C 37 ; WX 800 ; N percent ; B 0 0 800 800 ; C 38 ; WX 800 ; N ampersand ; B 0 0 800 800 ; C 39 ; WX 800 ; N quoteright ; B 0 0 800 800 ; C 40 ; WX 800 ; N parenleft ; B 0 0 800 800 ; C 41 ; WX 800 ; N parenright ; B 0 0 800 800 ; C 42 ; WX 800 ; N asterisk ; B 0 0 800 800 ; C 43 ; WX 800 ; N plus ; B 0 0 800 800 ; C 44 ; WX 800 ; N comma ; B 0 0 800 800 ; C 45 ; WX 800 ; N hyphen ; B 0 0 800 800 ; C 46 ; WX 800 ; N period ; B 0 0 800 800 ; C 47 ; WX 800 ; N slash ; B 0 0 800 800 ; C 48 ; WX 800 ; N zero ; B 0 0 800 800 ; C 49 ; WX 800 ; N one ; B 0 0 800 800 ; C 50 ; WX 800 ; N two ; B 0 0 800 800 ; C 51 ; WX 800 ; N three ; B 0 0 800 800 ; C 52 ; WX 800 ; N four ; B 0 0 800 800 ; C 53 ; WX 800 ; N five ; B 0 0 800 800 ; C 54 ; WX 800 ; N six ; B 0 0 800 800 ; C 55 ; WX 800 ; N seven ; B 0 0 800 800 ; C 56 ; WX 800 ; N eight ; B 0 0 800 800 ; C 57 ; WX 800 ; N nine ; B 0 0 800 800 ; C 58 ; WX 800 ; N colon ; B 0 0 800 800 ; C 59 ; WX 800 ; N semicolon ; B 0 0 800 800 ; C 60 ; WX 800 ; N less ; B 0 0 800 800 ; C 61 ; WX 800 ; N equal ; B 0 0 800 800 ; C 62 ; WX 800 ; N greater ; B 0 0 800 800 ; C 63 ; WX 800 ; N question ; B 0 0 800 800 ; C 64 ; WX 800 ; N at ; B 0 0 800 800 ; C 65 ; WX 800 ; N A ; B 0 0 800 800 ; C 66 ; WX 800 ; N B ; B 0 0 800 800 ; C 67 ; WX 800 ; N C ; B 0 0 800 800 ; C 68 ; WX 800 ; N D ; B 0 0 800 800 ; C 69 ; WX 800 ; N E ; B 0 0 800 800 ; C 70 ; WX 800 ; N F ; B 0 0 800 800 ; C 71 ; WX 800 ; N G ; B 0 0 800 800 ; C 72 ; WX 800 ; N H ; B 0 0 800 800 ; C 73 ; WX 800 ; N I ; B 0 0 800 800 ; C 74 ; WX 800 ; N J ; B 0 0 800 800 ; C 75 ; WX 800 ; N K ; B 0 0 800 800 ; C 76 ; WX 800 ; N L ; B 0 0 800 800 ; C 77 ; WX 800 ; N M ; B 0 0 800 800 ; C 78 ; WX 800 ; N N ; B 0 0 800 800 ; C 79 ; WX 800 ; N O ; B 0 0 800 800 ; C 80 ; WX 800 ; N P ; B 0 0 800 800 ; C 81 ; WX 800 ; N Q ; B 0 0 800 800 ; C 82 ; WX 800 ; N R ; B 0 0 800 800 ; C 83 ; WX 800 ; N S ; B 0 0 800 800 ; C 84 ; WX 800 ; N T ; B 0 0 800 800 ; C 85 ; WX 800 ; N U ; B 0 0 800 800 ; C 86 ; WX 800 ; N V ; B 0 0 800 800 ; C 87 ; WX 800 ; N W ; B 0 0 800 800 ; C 88 ; WX 800 ; N X ; B 0 0 800 800 ; C 89 ; WX 800 ; N Y ; B 0 0 800 800 ; C 90 ; WX 800 ; N Z ; B 0 0 800 800 ; C 91 ; WX 800 ; N bracketleft ; B 0 0 800 800 ; C 92 ; WX 800 ; N backslash ; B 0 0 800 800 ; C 93 ; WX 800 ; N bracketright ; B 0 0 800 800 ; C 94 ; WX 800 ; N asciicircum ; B 0 0 800 800 ; C 95 ; WX 800 ; N underscore ; B 0 0 800 800 ; C 96 ; WX 800 ; N quoteleft ; B 0 0 800 800 ; C 97 ; WX 800 ; N a ; B 0 0 800 800 ; C 98 ; WX 800 ; N b ; B 0 0 800 800 ; C 99 ; WX 800 ; N c ; B 0 0 800 800 ; C 100 ; WX 800 ; N d ; B 0 0 800 800 ; C 101 ; WX 800 ; N e ; B 0 0 800 800 ; C 102 ; WX 800 ; N f ; B 0 0 800 800 ; C 103 ; WX 800 ; N g ; B 0 0 800 800 ; C 104 ; WX 800 ; N h ; B 0 0 800 800 ; C 105 ; WX 800 ; N i ; B 0 0 800 800 ; C 106 ; WX 800 ; N j ; B 0 0 800 800 ; C 107 ; WX 800 ; N k ; B 0 0 800 800 ; C 108 ; WX 800 ; N l ; B 0 0 800 800 ; C 109 ; WX 800 ; N m ; B 0 0 800 800 ; C 110 ; WX 800 ; N n ; B 0 0 800 800 ; C 111 ; WX 800 ; N o ; B 0 0 800 800 ; C 112 ; WX 800 ; N p ; B 0 0 800 800 ; C 113 ; WX 800 ; N q ; B 0 0 800 800 ; C 114 ; WX 800 ; N r ; B 0 0 800 800 ; C 115 ; WX 800 ; N s ; B 0 0 800 800 ; C 116 ; WX 800 ; N t ; B 0 0 800 800 ; C 117 ; WX 800 ; N u ; B 0 0 800 800 ; C 118 ; WX 800 ; N v ; B 0 0 800 800 ; C 119 ; WX 800 ; N w ; B 0 0 800 800 ; C 120 ; WX 800 ; N x ; B 0 0 800 800 ; C 121 ; WX 800 ; N y ; B 0 0 800 800 ; C 122 ; WX 800 ; N z ; B 0 0 800 800 ; C 123 ; WX 800 ; N braceleft ; B 0 0 800 800 ; C 124 ; WX 800 ; N bar ; B 0 0 800 800 ; C 125 ; WX 800 ; N braceright ; B 0 0 800 800 ; C 126 ; WX 800 ; N asciitilde ; B 0 0 800 800 ; C 161 ; WX 800 ; N exclamdown ; B 0 0 800 800 ; C 162 ; WX 800 ; N cent ; B 0 0 800 800 ; C 163 ; WX 800 ; N sterling ; B 0 0 800 800 ; C 164 ; WX 800 ; N fraction ; B 0 0 800 800 ; C 165 ; WX 800 ; N yen ; B 0 0 800 800 ; C 166 ; WX 800 ; N florin ; B 0 0 800 800 ; C 167 ; WX 800 ; N section ; B 0 0 800 800 ; C 168 ; WX 800 ; N currency ; B 0 0 800 800 ; C 169 ; WX 800 ; N quotesingle ; B 0 0 800 800 ; C 170 ; WX 800 ; N quotedblleft ; B 0 0 800 800 ; C 171 ; WX 800 ; N guillemotleft ; B 0 0 800 800 ; C 172 ; WX 800 ; N guilsinglleft ; B 0 0 800 800 ; C 173 ; WX 800 ; N guilsinglright ; B 0 0 800 800 ; C 174 ; WX 800 ; N fi ; B 0 0 800 800 ; C 175 ; WX 800 ; N fl ; B 0 0 800 800 ; C 177 ; WX 800 ; N endash ; B 0 0 800 800 ; C 178 ; WX 800 ; N dagger ; B 0 0 800 800 ; C 179 ; WX 800 ; N daggerdbl ; B 0 0 800 800 ; C 180 ; WX 800 ; N periodcentered ; B 0 0 800 800 ; C 182 ; WX 800 ; N paragraph ; B 0 0 800 800 ; C 183 ; WX 800 ; N bullet ; B 0 0 800 800 ; C 184 ; WX 800 ; N quotesinglbase ; B 0 0 800 800 ; C 185 ; WX 800 ; N quotedblbase ; B 0 0 800 800 ; C 186 ; WX 800 ; N quotedblright ; B 0 0 800 800 ; C 187 ; WX 800 ; N guillemotright ; B 0 0 800 800 ; C 188 ; WX 800 ; N ellipsis ; B 0 0 800 800 ; C 189 ; WX 800 ; N perthousand ; B 0 0 800 800 ; C 191 ; WX 800 ; N questiondown ; B 0 0 800 800 ; C 193 ; WX 800 ; N grave ; B 0 0 800 800 ; C 194 ; WX 800 ; N acute ; B 0 0 800 800 ; C 195 ; WX 800 ; N circumflex ; B 0 0 800 800 ; C 196 ; WX 800 ; N tilde ; B 0 0 800 800 ; C 197 ; WX 800 ; N macron ; B 0 0 800 800 ; C 198 ; WX 800 ; N breve ; B 0 0 800 800 ; C 199 ; WX 800 ; N dotaccent ; B 0 0 800 800 ; C 200 ; WX 800 ; N dieresis ; B 0 0 800 800 ; C 202 ; WX 800 ; N ring ; B 0 0 800 800 ; C 203 ; WX 800 ; N cedilla ; B 0 0 800 800 ; C 205 ; WX 800 ; N hungarumlaut ; B 0 0 800 800 ; C 206 ; WX 800 ; N ogonek ; B 0 0 800 800 ; C 207 ; WX 800 ; N caron ; B 0 0 800 800 ; C 208 ; WX 800 ; N emdash ; B 0 0 800 800 ; C 225 ; WX 800 ; N AE ; B 0 0 800 800 ; C 227 ; WX 800 ; N ordfeminine ; B 0 0 800 800 ; C 232 ; WX 800 ; N Lslash ; B 0 0 800 800 ; C 233 ; WX 800 ; N Oslash ; B 0 0 800 800 ; C 234 ; WX 800 ; N OE ; B 0 0 800 800 ; C 235 ; WX 800 ; N ordmasculine ; B 0 0 800 800 ; C 241 ; WX 800 ; N ae ; B 0 0 800 800 ; C 245 ; WX 800 ; N dotlessi ; B 0 0 800 800 ; C 248 ; WX 800 ; N lslash ; B 0 0 800 800 ; C 249 ; WX 800 ; N oslash ; B 0 0 800 800 ; C 250 ; WX 800 ; N oe ; B 0 0 800 800 ; C 251 ; WX 800 ; N germandbls ; B 0 0 800 800 ; C -1 ; WX 800 ; N Aacute ; B 0 0 800 800 ; C -1 ; WX 800 ; N Acircumflex ; B 0 0 800 800 ; C -1 ; WX 800 ; N Adieresis ; B 0 0 800 800 ; C -1 ; WX 800 ; N Agrave ; B 0 0 800 800 ; C -1 ; WX 800 ; N Aring ; B 0 0 800 800 ; C -1 ; WX 800 ; N Atilde ; B 0 0 800 800 ; C -1 ; WX 800 ; N Ccedilla ; B 0 0 800 800 ; C -1 ; WX 800 ; N Eacute ; B 0 0 800 800 ; C -1 ; WX 800 ; N Ecircumflex ; B 0 0 800 800 ; C -1 ; WX 800 ; N Edieresis ; B 0 0 800 800 ; C -1 ; WX 800 ; N Egrave ; B 0 0 800 800 ; C -1 ; WX 800 ; N Eth ; B 0 0 800 800 ; C -1 ; WX 800 ; N Gcaron ; B 0 0 800 800 ; C -1 ; WX 800 ; N IJ ; B 0 0 800 800 ; C -1 ; WX 800 ; N Iacute ; B 0 0 800 800 ; C -1 ; WX 800 ; N Icircumflex ; B 0 0 800 800 ; C -1 ; WX 800 ; N Idieresis ; B 0 0 800 800 ; C -1 ; WX 800 ; N Idot ; B 0 0 800 800 ; C -1 ; WX 800 ; N Igrave ; B 0 0 800 800 ; C -1 ; WX 800 ; N LL ; B 0 0 800 800 ; C -1 ; WX 800 ; N Ntilde ; B 0 0 800 800 ; C -1 ; WX 800 ; N Oacute ; B 0 0 800 800 ; C -1 ; WX 800 ; N Ocircumflex ; B 0 0 800 800 ; C -1 ; WX 800 ; N Odieresis ; B 0 0 800 800 ; C -1 ; WX 800 ; N Ograve ; B 0 0 800 800 ; C -1 ; WX 800 ; N Otilde ; B 0 0 800 800 ; C -1 ; WX 800 ; N Scaron ; B 0 0 800 800 ; C -1 ; WX 800 ; N Scedilla ; B 0 0 800 800 ; C -1 ; WX 800 ; N Thorn ; B 0 0 800 800 ; C -1 ; WX 800 ; N Uacute ; B 0 0 800 800 ; C -1 ; WX 800 ; N Ucircumflex ; B 0 0 800 800 ; C -1 ; WX 800 ; N Udieresis ; B 0 0 800 800 ; C -1 ; WX 800 ; N Ugrave ; B 0 0 800 800 ; C -1 ; WX 800 ; N Yacute ; B 0 0 800 800 ; C -1 ; WX 800 ; N Ydieresis ; B 0 0 800 800 ; C -1 ; WX 800 ; N Zcaron ; B 0 0 800 800 ; C -1 ; WX 800 ; N aacute ; B 0 0 800 800 ; C -1 ; WX 800 ; N acircumflex ; B 0 0 800 800 ; C -1 ; WX 800 ; N adieresis ; B 0 0 800 800 ; C -1 ; WX 800 ; N agrave ; B 0 0 800 800 ; C -1 ; WX 800 ; N aring ; B 0 0 800 800 ; C -1 ; WX 800 ; N arrowboth ; B 0 0 800 800 ; C -1 ; WX 800 ; N arrowdown ; B 0 0 800 800 ; C -1 ; WX 800 ; N arrowleft ; B 0 0 800 800 ; C -1 ; WX 800 ; N arrowright ; B 0 0 800 800 ; C -1 ; WX 800 ; N arrowup ; B 0 0 800 800 ; C -1 ; WX 800 ; N atilde ; B 0 0 800 800 ; C -1 ; WX 800 ; N brokenbar ; B 0 0 800 800 ; C -1 ; WX 800 ; N ccedilla ; B 0 0 800 800 ; C -1 ; WX 800 ; N center ; B 0 0 800 800 ; C -1 ; WX 800 ; N copyright ; B 0 0 800 800 ; C -1 ; WX 800 ; N dectab ; B 0 0 800 800 ; C -1 ; WX 800 ; N degree ; B 0 0 800 800 ; C -1 ; WX 800 ; N divide ; B 0 0 800 800 ; C -1 ; WX 800 ; N down ; B 0 0 800 800 ; C -1 ; WX 800 ; N eacute ; B 0 0 800 800 ; C -1 ; WX 800 ; N ecircumflex ; B 0 0 800 800 ; C -1 ; WX 800 ; N edieresis ; B 0 0 800 800 ; C -1 ; WX 800 ; N egrave ; B 0 0 800 800 ; C -1 ; WX 800 ; N eth ; B 0 0 800 800 ; C -1 ; WX 800 ; N format ; B 0 0 800 800 ; C -1 ; WX 800 ; N gcaron ; B 0 0 800 800 ; C -1 ; WX 800 ; N graybox ; B 0 0 800 800 ; C -1 ; WX 800 ; N iacute ; B 0 0 800 800 ; C -1 ; WX 800 ; N icircumflex ; B 0 0 800 800 ; C -1 ; WX 800 ; N idieresis ; B 0 0 800 800 ; C -1 ; WX 800 ; N igrave ; B 0 0 800 800 ; C -1 ; WX 800 ; N ij ; B 0 0 800 800 ; C -1 ; WX 800 ; N indent ; B 0 0 800 800 ; C -1 ; WX 800 ; N largebullet ; B 0 0 800 800 ; C -1 ; WX 800 ; N left ; B 0 0 800 800 ; C -1 ; WX 800 ; N lira ; B 0 0 800 800 ; C -1 ; WX 800 ; N ll ; B 0 0 800 800 ; C -1 ; WX 800 ; N logicalnot ; B 0 0 800 800 ; C -1 ; WX 800 ; N merge ; B 0 0 800 800 ; C -1 ; WX 800 ; N minus ; B 0 0 800 800 ; C -1 ; WX 800 ; N mu ; B 0 0 800 800 ; C -1 ; WX 800 ; N multiply ; B 0 0 800 800 ; C -1 ; WX 800 ; N notegraphic ; B 0 0 800 800 ; C -1 ; WX 800 ; N ntilde ; B 0 0 800 800 ; C -1 ; WX 800 ; N oacute ; B 0 0 800 800 ; C -1 ; WX 800 ; N ocircumflex ; B 0 0 800 800 ; C -1 ; WX 800 ; N odieresis ; B 0 0 800 800 ; C -1 ; WX 800 ; N ograve ; B 0 0 800 800 ; C -1 ; WX 800 ; N onehalf ; B 0 0 800 800 ; C -1 ; WX 800 ; N onequarter ; B 0 0 800 800 ; C -1 ; WX 800 ; N onesuperior ; B 0 0 800 800 ; C -1 ; WX 800 ; N otilde ; B 0 0 800 800 ; C -1 ; WX 800 ; N overscore ; B 0 0 800 800 ; C -1 ; WX 800 ; N plusminus ; B 0 0 800 800 ; C -1 ; WX 800 ; N prescription ; B 0 0 800 800 ; C -1 ; WX 800 ; N registered ; B 0 0 800 800 ; C -1 ; WX 800 ; N return ; B 0 0 800 800 ; C -1 ; WX 800 ; N scaron ; B 0 0 800 800 ; C -1 ; WX 800 ; N scedilla ; B 0 0 800 800 ; C -1 ; WX 800 ; N square ; B 0 0 800 800 ; C -1 ; WX 800 ; N stop ; B 0 0 800 800 ; C -1 ; WX 800 ; N tab ; B 0 0 800 800 ; C -1 ; WX 800 ; N thorn ; B 0 0 800 800 ; C -1 ; WX 800 ; N threequarters ; B 0 0 800 800 ; C -1 ; WX 800 ; N threesuperior ; B 0 0 800 800 ; C -1 ; WX 800 ; N trademark ; B 0 0 800 800 ; C -1 ; WX 800 ; N twosuperior ; B 0 0 800 800 ; C -1 ; WX 800 ; N uacute ; B 0 0 800 800 ; C -1 ; WX 800 ; N ucircumflex ; B 0 0 800 800 ; C -1 ; WX 800 ; N udieresis ; B 0 0 800 800 ; C -1 ; WX 800 ; N ugrave ; B 0 0 800 800 ; C -1 ; WX 800 ; N up ; B 0 0 800 800 ; C -1 ; WX 800 ; N yacute ; B 0 0 800 800 ; C -1 ; WX 800 ; N ydieresis ; B 0 0 800 800 ; C -1 ; WX 800 ; N zcaron ; B 0 0 800 800 ; EndCharMetrics EndFontMetrics enscript-1.6.5.90/afm/sy.afm0000644000175000017500000002317611132443251012412 00000000000000StartFontMetrics 2.0 Comment Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All rights reserved. Comment Creation Date: Wed Jan 17 21:48:26 1990 Comment UniqueID 27004 Comment VMusage 28489 37622 FontName Symbol FullName Symbol FamilyName Symbol Weight Medium ItalicAngle 0 IsFixedPitch false FontBBox -180 -293 1090 1010 UnderlinePosition -98 UnderlineThickness 54 Version 001.007 Notice Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All rights reserved. EncodingScheme FontSpecific StartCharMetrics 189 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 23 -17 471 685 ; C 49 ; WX 500 ; N one ; B 117 0 390 673 ; C 50 ; WX 500 ; N two ; B 25 0 475 686 ; C 51 ; WX 500 ; N three ; B 39 -17 435 685 ; C 52 ; WX 500 ; N four ; B 16 0 469 685 ; C 53 ; WX 500 ; N five ; B 29 -17 443 685 ; C 54 ; WX 500 ; N six ; B 36 -17 467 685 ; C 55 ; WX 500 ; N seven ; B 24 -16 448 673 ; C 56 ; WX 500 ; N eight ; B 54 -18 440 685 ; C 57 ; WX 500 ; N nine ; B 31 -18 460 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 478 ; 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 -252 502 -206 ; 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 27 -224 490 671 ; 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 -177 135 673 ; C 125 ; WX 480 ; N braceright ; B 79 -183 418 673 ; C 126 ; WX 549 ; N similar ; B 17 203 529 307 ; 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 40 -293 436 926 ; C 231 ; WX 384 ; N parenleftex ; B 40 -85 92 925 ; C 232 ; WX 384 ; N parenleftbt ; B 40 -293 436 926 ; C 233 ; WX 384 ; N bracketlefttp ; B 0 -80 341 926 ; C 234 ; WX 384 ; N bracketleftex ; B 0 -79 55 925 ; C 235 ; WX 384 ; N bracketleftbt ; B 0 -80 340 926 ; C 236 ; WX 494 ; N bracelefttp ; B 201 -75 439 926 ; C 237 ; WX 494 ; N braceleftmid ; B 14 -85 255 935 ; C 238 ; WX 494 ; N braceleftbt ; B 201 -70 439 926 ; C 239 ; WX 494 ; N braceex ; B 201 -80 255 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 332 -83 715 921 ; C 244 ; WX 686 ; N integralex ; B 332 -88 415 975 ; C 245 ; WX 686 ; N integralbt ; B 39 -81 415 921 ; C 246 ; WX 384 ; N parenrighttp ; B 54 -293 450 926 ; C 247 ; WX 384 ; N parenrightex ; B 398 -85 450 925 ; C 248 ; WX 384 ; N parenrightbt ; B 54 -293 450 926 ; C 249 ; WX 384 ; N bracketrighttp ; B 22 -80 360 926 ; C 250 ; WX 384 ; N bracketrightex ; B 305 -79 360 925 ; C 251 ; WX 384 ; N bracketrightbt ; B 20 -80 360 926 ; C 252 ; WX 494 ; N bracerighttp ; B 17 -75 255 926 ; C 253 ; WX 494 ; N bracerightmid ; B 201 -85 442 935 ; C 254 ; WX 494 ; N bracerightbt ; B 17 -70 255 926 ; C -1 ; WX 790 ; N apple ; B 56 -3 733 808 ; EndCharMetrics EndFontMetrics enscript-1.6.5.90/afm/nci.afm0000644000175000017500000004206111132443251012522 00000000000000StartFontMetrics 2.0 Comment Copyright (c) 1985, 1987, 1989, 1991 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Tue May 28 16:40:04 1991 Comment UniqueID 35028 Comment VMusage 31423 38315 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 001.006 Notice Copyright (c) 1985, 1987, 1989, 1991 Adobe Systems Incorporated. All Rights Reserved. EncodingScheme AdobeStandardEncoding CapHeight 722 XHeight 466 Ascender 737 Descender -205 StartCharMetrics 228 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 544 248 646 ; C 200 ; WX 333 ; N dieresis ; B 59 544 359 646 ; 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 68 -215 254 0 ; 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 -25 -15 340 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 444 ; N ecircumflex ; B -6 -15 388 690 ; C -1 ; WX 444 ; N edieresis ; B -6 -15 415 646 ; C -1 ; WX 574 ; N aacute ; B 2 -15 524 690 ; C -1 ; WX 747 ; N registered ; B -2 -15 750 737 ; C -1 ; WX 333 ; N icircumflex ; B 29 -15 331 690 ; C -1 ; WX 611 ; N udieresis ; B 44 -15 556 646 ; C -1 ; WX 500 ; N ograve ; B 2 -15 450 690 ; C -1 ; WX 611 ; N uacute ; B 44 -15 556 690 ; C -1 ; WX 611 ; N ucircumflex ; B 44 -15 556 690 ; C -1 ; WX 704 ; N Aacute ; B -87 0 668 946 ; C -1 ; WX 333 ; N igrave ; B 29 -15 282 690 ; C -1 ; WX 407 ; N Icircumflex ; B -33 0 435 946 ; C -1 ; WX 444 ; N ccedilla ; B 2 -215 394 466 ; C -1 ; WX 574 ; N adieresis ; B 2 -15 524 646 ; C -1 ; WX 722 ; N Ecircumflex ; B -33 0 700 946 ; C -1 ; WX 444 ; N scaron ; B 2 -15 434 690 ; C -1 ; WX 574 ; N thorn ; B -101 -205 506 737 ; C -1 ; WX 950 ; N trademark ; B 32 318 968 722 ; C -1 ; WX 444 ; N egrave ; B -6 -15 388 690 ; C -1 ; WX 333 ; N threesuperior ; B 22 273 359 705 ; C -1 ; WX 463 ; N zcaron ; B -33 -15 443 690 ; C -1 ; WX 574 ; N atilde ; B 2 -15 524 649 ; C -1 ; WX 574 ; N aring ; B 2 -15 524 712 ; C -1 ; WX 500 ; N ocircumflex ; B 2 -15 450 690 ; C -1 ; WX 722 ; N Edieresis ; B -33 0 700 902 ; C -1 ; WX 834 ; N threequarters ; B 22 -15 782 705 ; C -1 ; WX 500 ; N ydieresis ; B -83 -205 450 646 ; C -1 ; WX 500 ; N yacute ; B -83 -205 450 690 ; C -1 ; WX 333 ; N iacute ; B 29 -15 355 690 ; C -1 ; WX 704 ; N Acircumflex ; B -87 0 668 946 ; C -1 ; WX 815 ; N Uacute ; B 93 -15 867 946 ; C -1 ; WX 444 ; N eacute ; B -6 -15 411 690 ; C -1 ; WX 778 ; N Ograve ; B 40 -15 738 946 ; C -1 ; WX 574 ; N agrave ; B 2 -15 524 690 ; C -1 ; WX 815 ; N Udieresis ; B 93 -15 867 902 ; C -1 ; WX 574 ; N acircumflex ; B 2 -15 524 690 ; C -1 ; WX 407 ; N Igrave ; B -33 0 435 946 ; C -1 ; WX 333 ; N twosuperior ; B 0 282 359 705 ; C -1 ; WX 815 ; N Ugrave ; B 93 -15 867 946 ; C -1 ; WX 834 ; N onequarter ; B 34 -15 782 705 ; C -1 ; WX 815 ; N Ucircumflex ; B 93 -15 867 946 ; C -1 ; WX 667 ; N Scaron ; B -6 -15 638 946 ; C -1 ; WX 407 ; N Idieresis ; B -33 0 456 902 ; C -1 ; WX 333 ; N idieresis ; B 29 -15 359 646 ; C -1 ; WX 722 ; N Egrave ; B -33 0 700 946 ; C -1 ; WX 778 ; N Oacute ; B 40 -15 738 946 ; C -1 ; WX 606 ; N divide ; B 50 -22 556 528 ; C -1 ; WX 704 ; N Atilde ; B -87 0 668 905 ; C -1 ; WX 704 ; N Aring ; B -87 0 668 958 ; C -1 ; WX 778 ; N Odieresis ; B 40 -15 738 902 ; C -1 ; WX 704 ; N Adieresis ; B -87 0 668 902 ; C -1 ; WX 815 ; N Ntilde ; B -51 -15 866 905 ; C -1 ; WX 667 ; N Zcaron ; B -25 0 667 946 ; C -1 ; WX 667 ; N Thorn ; B -33 0 627 722 ; 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 multiply ; B 74 24 532 482 ; C -1 ; WX 722 ; N Eacute ; B -33 0 700 946 ; C -1 ; WX 685 ; N Ydieresis ; B 31 0 760 902 ; C -1 ; WX 333 ; N onesuperior ; B 34 282 311 705 ; C -1 ; WX 611 ; N ugrave ; B 44 -15 556 690 ; C -1 ; WX 606 ; N logicalnot ; B 50 108 556 389 ; C -1 ; WX 611 ; N ntilde ; B 14 -15 562 649 ; C -1 ; WX 778 ; N Otilde ; B 40 -15 738 905 ; C -1 ; WX 500 ; N otilde ; B 2 -15 467 649 ; C -1 ; WX 722 ; N Ccedilla ; B 40 -215 712 737 ; C -1 ; WX 704 ; N Agrave ; B -87 0 668 946 ; C -1 ; WX 834 ; N onehalf ; B 34 -15 776 705 ; C -1 ; WX 778 ; N Eth ; B -33 0 738 722 ; C -1 ; WX 400 ; N degree ; B 86 419 372 705 ; C -1 ; WX 685 ; N Yacute ; B 31 0 760 946 ; C -1 ; WX 778 ; N Ocircumflex ; B 40 -15 738 946 ; C -1 ; WX 500 ; N oacute ; B 2 -15 450 690 ; C -1 ; WX 611 ; N mu ; B -60 -205 556 466 ; C -1 ; WX 606 ; N minus ; B 50 217 556 289 ; C -1 ; WX 500 ; N eth ; B 2 -15 450 737 ; C -1 ; WX 500 ; N odieresis ; B 2 -15 450 646 ; C -1 ; WX 747 ; N copyright ; B -2 -15 750 737 ; C -1 ; WX 606 ; N brokenbar ; B 267 -175 339 675 ; EndCharMetrics StartKernData StartKernPairs 181 KPX A y -55 KPX A w -18 KPX A v -18 KPX A u -18 KPX A quoteright -125 KPX A quotedblright -125 KPX A Y -55 KPX A W -74 KPX A V -74 KPX A U -37 KPX A T -30 KPX A Q -18 KPX A O -18 KPX A G -18 KPX A C -18 KPX B period -50 KPX B comma -50 KPX C period -50 KPX C comma -50 KPX D period -50 KPX D comma -50 KPX D Y -18 KPX D W -18 KPX D V -18 KPX F r -55 KPX F period -125 KPX F o -55 KPX F i -10 KPX F e -55 KPX F comma -125 KPX F a -55 KPX F A -35 KPX G period -50 KPX G comma -50 KPX J u -18 KPX J period -100 KPX J o -37 KPX J e -37 KPX J comma -100 KPX J a -37 KPX J A -18 KPX L y -50 KPX L quoteright -125 KPX L quotedblright -125 KPX L Y -100 KPX L W -100 KPX L V -100 KPX L T -100 KPX N period -60 KPX N comma -60 KPX O period -50 KPX O comma -50 KPX O Y -18 KPX O X -18 KPX O V -18 KPX O T 18 KPX P period -125 KPX P o -55 KPX P e -55 KPX P comma -125 KPX P a -55 KPX P A -50 KPX Q period -20 KPX Q comma -20 KPX R Y -18 KPX R W -18 KPX R V -18 KPX R U -18 KPX S period -50 KPX S comma -50 KPX T y -50 KPX T w -50 KPX T u -50 KPX T semicolon -50 KPX T r -50 KPX T period -100 KPX T o -74 KPX T i -18 KPX T hyphen -100 KPX T h -25 KPX T e -74 KPX T comma -100 KPX T colon -50 KPX T a -74 KPX T O 18 KPX U period -100 KPX U comma -100 KPX U A -18 KPX V u -75 KPX V semicolon -75 KPX V period -100 KPX V o -75 KPX V i -50 KPX V hyphen -100 KPX V e -75 KPX V comma -100 KPX V colon -75 KPX V a -75 KPX V A -37 KPX W y -55 KPX W u -55 KPX W semicolon -75 KPX W period -100 KPX W o -55 KPX W i -20 KPX W hyphen -75 KPX W h -20 KPX W e -55 KPX W comma -100 KPX W colon -75 KPX W a -55 KPX W A -55 KPX Y u -100 KPX Y semicolon -75 KPX Y period -100 KPX Y o -100 KPX Y i -25 KPX Y hyphen -100 KPX Y e -100 KPX Y comma -100 KPX Y colon -75 KPX Y a -100 KPX Y A -55 KPX b period -50 KPX b comma -50 KPX b b -10 KPX c period -50 KPX c k -18 KPX c h -18 KPX c comma -50 KPX colon space -37 KPX comma space -37 KPX comma quoteright -37 KPX comma quotedblright -37 KPX e period -37 KPX e comma -37 KPX f quoteright 75 KPX f quotedblright 75 KPX f period -75 KPX f o -10 KPX f comma -75 KPX g period -50 KPX g comma -50 KPX l y -10 KPX o period -50 KPX o comma -50 KPX p period -50 KPX p comma -50 KPX period space -37 KPX period quoteright -37 KPX period quotedblright -37 KPX quotedblleft A -75 KPX quotedblright space -37 KPX quoteleft quoteleft -37 KPX quoteleft A -75 KPX quoteright s -25 KPX quoteright quoteright -37 KPX quoteright d -37 KPX r semicolon -25 KPX r s -10 KPX r period -125 KPX r k -18 KPX r hyphen -75 KPX r comma -125 KPX r colon -25 KPX s period -50 KPX s comma -50 KPX semicolon space -37 KPX space quoteleft -37 KPX space quotedblleft -37 KPX space Y -37 KPX space W -37 KPX space V -37 KPX space T -37 KPX space A -37 KPX v period -75 KPX v comma -75 KPX w period -75 KPX w comma -75 KPX y period -75 KPX y comma -75 EndKernPairs EndKernData StartComposites 56 CC Aacute 2 ; PCC A 0 0 ; PCC acute 246 256 ; CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 246 256 ; CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 231 256 ; CC Agrave 2 ; PCC A 0 0 ; PCC grave 246 256 ; CC Aring 2 ; PCC A 0 0 ; PCC ring 216 246 ; CC Atilde 2 ; PCC A 0 0 ; PCC tilde 231 256 ; CC Eacute 2 ; PCC E 0 0 ; PCC acute 255 256 ; CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 255 256 ; CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 255 256 ; CC Egrave 2 ; PCC E 0 0 ; PCC grave 255 256 ; CC Iacute 2 ; PCC I 0 0 ; PCC acute 97 256 ; CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 97 256 ; CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 97 256 ; CC Igrave 2 ; PCC I 0 0 ; PCC grave 97 256 ; CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 301 256 ; CC Oacute 2 ; PCC O 0 0 ; PCC acute 283 256 ; CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 283 256 ; CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 283 256 ; CC Ograve 2 ; PCC O 0 0 ; PCC grave 283 256 ; CC Otilde 2 ; PCC O 0 0 ; PCC tilde 283 256 ; CC Scaron 2 ; PCC S 0 0 ; PCC caron 227 256 ; CC Uacute 2 ; PCC U 0 0 ; PCC acute 301 256 ; CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 301 256 ; CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 301 256 ; CC Ugrave 2 ; PCC U 0 0 ; PCC grave 301 256 ; CC Yacute 2 ; PCC Y 0 0 ; PCC acute 256 256 ; CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 236 256 ; CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 227 256 ; CC aacute 2 ; PCC a 0 0 ; PCC acute 121 0 ; CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 121 0 ; CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 121 0 ; CC agrave 2 ; PCC a 0 0 ; PCC grave 121 0 ; CC aring 2 ; PCC a 0 0 ; PCC ring 121 0 ; CC atilde 2 ; PCC a 0 0 ; PCC tilde 121 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 0 0 ; CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex 0 0 ; CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis 0 0 ; CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave 0 0 ; CC ntilde 2 ; PCC n 0 0 ; PCC tilde 139 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 56 0 ; 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 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 65 0 ; EndComposites EndFontMetrics enscript-1.6.5.90/afm/zcmi.afm0000644000175000017500000004053311132443251012715 00000000000000StartFontMetrics 2.0 Comment Copyright (c) 1985, 1987, 1989, 1990 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Fri Dec 28 16:35:46 1990 Comment UniqueID 33936 Comment VMusage 34559 41451 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 001.007 Notice Copyright (c) 1985, 1987, 1989, 1990 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 StartCharMetrics 228 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 -16 378 714 ; 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 222 544 465 578 ; C 198 ; WX 440 ; N breve ; B 253 522 501 631 ; C 199 ; WX 220 ; N dotaccent ; B 236 522 328 610 ; C 200 ; WX 360 ; N dieresis ; B 243 522 469 610 ; 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 38 -191 233 6 ; 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 121 -14 515 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 340 ; N ecircumflex ; B 87 -14 433 649 ; C -1 ; WX 340 ; N edieresis ; B 87 -14 449 610 ; C -1 ; WX 420 ; N aacute ; B 92 -15 492 659 ; C -1 ; WX 740 ; N registered ; B 137 -16 763 610 ; C -1 ; WX 240 ; N icircumflex ; B 100 -14 363 649 ; C -1 ; WX 460 ; N udieresis ; B 102 -14 528 610 ; C -1 ; WX 400 ; N ograve ; B 87 -14 449 659 ; C -1 ; WX 460 ; N uacute ; B 102 -14 528 659 ; C -1 ; WX 460 ; N ucircumflex ; B 102 -14 528 649 ; C -1 ; WX 620 ; N Aacute ; B 13 -16 702 821 ; C -1 ; WX 240 ; N igrave ; B 100 -14 306 659 ; C -1 ; WX 380 ; N Icircumflex ; B 99 0 504 821 ; C -1 ; WX 340 ; N ccedilla ; B 62 -191 406 438 ; C -1 ; WX 420 ; N adieresis ; B 92 -15 485 610 ; C -1 ; WX 620 ; N Ecircumflex ; B 91 -12 709 821 ; C -1 ; WX 320 ; N scaron ; B 46 -14 464 659 ; C -1 ; WX 440 ; N thorn ; B -38 -314 505 714 ; C -1 ; WX 1000 ; N trademark ; B 127 187 1046 594 ; C -1 ; WX 340 ; N egrave ; B 87 -14 403 659 ; C -1 ; WX 264 ; N threesuperior ; B 59 234 348 610 ; C -1 ; WX 440 ; N zcaron ; B 26 -14 514 659 ; C -1 ; WX 420 ; N atilde ; B 92 -15 522 619 ; C -1 ; WX 420 ; N aring ; B 92 -15 485 659 ; C -1 ; WX 400 ; N ocircumflex ; B 87 -14 453 649 ; C -1 ; WX 620 ; N Edieresis ; B 91 -12 709 762 ; C -1 ; WX 660 ; N threequarters ; B 39 -16 706 610 ; C -1 ; WX 400 ; N ydieresis ; B -24 -314 483 610 ; C -1 ; WX 400 ; N yacute ; B -24 -314 483 659 ; C -1 ; WX 240 ; N iacute ; B 100 -14 392 659 ; C -1 ; WX 620 ; N Acircumflex ; B 13 -16 697 821 ; C -1 ; WX 740 ; N Uacute ; B 126 -16 792 821 ; C -1 ; WX 340 ; N eacute ; B 87 -14 462 659 ; C -1 ; WX 600 ; N Ograve ; B 94 -16 660 821 ; C -1 ; WX 420 ; N agrave ; B 92 -15 485 659 ; C -1 ; WX 740 ; N Udieresis ; B 126 -16 792 762 ; C -1 ; WX 420 ; N acircumflex ; B 92 -15 485 649 ; C -1 ; WX 380 ; N Igrave ; B 99 0 504 821 ; C -1 ; WX 264 ; N twosuperior ; B 72 234 354 610 ; C -1 ; WX 740 ; N Ugrave ; B 126 -16 792 821 ; C -1 ; WX 660 ; N onequarter ; B 56 -16 702 610 ; C -1 ; WX 740 ; N Ucircumflex ; B 126 -16 792 821 ; C -1 ; WX 460 ; N Scaron ; B 45 -81 594 831 ; C -1 ; WX 380 ; N Idieresis ; B 99 0 519 762 ; C -1 ; WX 240 ; N idieresis ; B 100 -14 369 610 ; C -1 ; WX 620 ; N Egrave ; B 91 -12 709 821 ; C -1 ; WX 600 ; N Oacute ; B 94 -16 660 821 ; C -1 ; WX 520 ; N divide ; B 117 -14 543 440 ; C -1 ; WX 620 ; N Atilde ; B 13 -16 702 771 ; C -1 ; WX 620 ; N Aring ; B 13 -16 697 831 ; C -1 ; WX 600 ; N Odieresis ; B 94 -16 660 762 ; C -1 ; WX 620 ; N Adieresis ; B 13 -16 709 762 ; C -1 ; WX 700 ; N Ntilde ; B 85 -168 915 761 ; C -1 ; WX 620 ; N Zcaron ; B 42 -19 669 831 ; C -1 ; WX 540 ; N Thorn ; B 52 0 647 623 ; 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 multiply ; B 133 16 527 410 ; C -1 ; WX 620 ; N Eacute ; B 91 -12 709 821 ; C -1 ; WX 560 ; N Ydieresis ; B 41 -168 774 762 ; C -1 ; WX 264 ; N onesuperior ; B 83 244 311 610 ; C -1 ; WX 460 ; N ugrave ; B 102 -14 528 659 ; C -1 ; WX 520 ; N logicalnot ; B 117 86 543 340 ; C -1 ; WX 460 ; N ntilde ; B 101 -14 544 619 ; C -1 ; WX 600 ; N Otilde ; B 94 -16 660 761 ; C -1 ; WX 400 ; N otilde ; B 87 -14 502 619 ; C -1 ; WX 520 ; N Ccedilla ; B 93 -191 631 610 ; C -1 ; WX 620 ; N Agrave ; B 13 -16 697 821 ; C -1 ; WX 660 ; N onehalf ; B 56 -16 702 610 ; C -1 ; WX 700 ; N Eth ; B 86 -6 768 640 ; C -1 ; WX 400 ; N degree ; B 171 324 457 610 ; C -1 ; WX 560 ; N Yacute ; B 41 -168 774 821 ; C -1 ; WX 600 ; N Ocircumflex ; B 94 -16 660 821 ; C -1 ; WX 400 ; N oacute ; B 87 -14 482 659 ; C -1 ; WX 460 ; N mu ; B 7 -314 523 438 ; C -1 ; WX 520 ; N minus ; B 117 184 543 242 ; C -1 ; WX 400 ; N eth ; B 87 -14 522 714 ; C -1 ; WX 400 ; N odieresis ; B 87 -14 479 610 ; C -1 ; WX 740 ; N copyright ; B 137 -16 763 610 ; C -1 ; WX 520 ; N brokenbar ; B 320 -16 378 714 ; EndCharMetrics StartKernData StartKernPairs 131 KPX A quoteright -40 KPX A quotedblright -40 KPX A U -10 KPX A T 10 KPX A Q 10 KPX A O 10 KPX A G -30 KPX A C 20 KPX D period -30 KPX D comma -20 KPX D Y 10 KPX D A -10 KPX F period -40 KPX F i 10 KPX F comma -30 KPX G period -20 KPX G comma -10 KPX J period -20 KPX J comma -10 KPX K u -20 KPX K o -20 KPX K e -20 KPX L y -10 KPX L quoteright -25 KPX L quotedblright -25 KPX L W -10 KPX L V -20 KPX O period -20 KPX O comma -10 KPX O Y 10 KPX O T 20 KPX O A -20 KPX P period -50 KPX P o -10 KPX P e -10 KPX P comma -40 KPX P a -20 KPX P A -10 KPX Q U -10 KPX R Y 10 KPX R W 10 KPX R T 20 KPX T o -20 KPX T i 20 KPX T hyphen -20 KPX T h 20 KPX T e -20 KPX T a -20 KPX T O 30 KPX T A 10 KPX V period -100 KPX V o -20 KPX V e -20 KPX V comma -90 KPX V a -20 KPX V O 10 KPX V G -20 KPX W period -50 KPX W o -20 KPX W i 10 KPX W h 10 KPX W e -20 KPX W comma -40 KPX W a -20 KPX W O 10 KPX Y u -20 KPX Y period -50 KPX Y o -50 KPX Y i 10 KPX Y e -40 KPX Y comma -40 KPX Y a -60 KPX b period -30 KPX b l -20 KPX b comma -20 KPX b b -20 KPX c k -10 KPX comma quoteright -70 KPX comma quotedblright -70 KPX d w -20 KPX d v -10 KPX d d -40 KPX e y 10 KPX f quoteright 30 KPX f quotedblright 30 KPX f period -50 KPX f f -50 KPX f e -10 KPX f comma -40 KPX f a -20 KPX g y 10 KPX g period -30 KPX g i 10 KPX g e 10 KPX g comma -20 KPX g a 10 KPX k y 10 KPX k o -10 KPX k e -20 KPX m y 10 KPX m u 10 KPX n y 20 KPX o period -30 KPX o comma -20 KPX p period -30 KPX p p -10 KPX p comma -20 KPX period quoteright -80 KPX period quotedblright -80 KPX quotedblleft quoteleft 20 KPX quotedblleft A 10 KPX quoteleft quoteleft -115 KPX quoteleft A 10 KPX quoteright v 30 KPX quoteright t 20 KPX quoteright s -25 KPX quoteright r 30 KPX quoteright quoteright -115 KPX quoteright quotedblright 20 KPX quoteright l 20 KPX r period -50 KPX r i 10 KPX r comma -40 KPX s period -20 KPX s comma -10 KPX v period -30 KPX v comma -20 KPX w period -30 KPX w o 10 KPX w h 20 KPX w comma -20 EndKernPairs EndKernData StartComposites 56 CC Aacute 2 ; PCC A 0 0 ; PCC acute 280 162 ; CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 240 172 ; CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 240 152 ; CC Agrave 2 ; PCC A 0 0 ; PCC grave 250 162 ; CC Aring 2 ; PCC A 0 0 ; PCC ring 260 172 ; CC Atilde 2 ; PCC A 0 0 ; PCC tilde 180 152 ; CC Eacute 2 ; PCC E 0 0 ; PCC acute 230 162 ; CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 180 172 ; CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 170 152 ; CC Egrave 2 ; PCC E 0 0 ; PCC grave 220 162 ; CC Iacute 2 ; PCC I 0 0 ; PCC acute 110 162 ; CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 60 172 ; CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 50 152 ; CC Igrave 2 ; PCC I 0 0 ; PCC grave 100 162 ; CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 210 142 ; CC Oacute 2 ; PCC O 0 0 ; PCC acute 160 162 ; CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 130 172 ; CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 120 152 ; CC Ograve 2 ; PCC O 0 0 ; PCC grave 150 162 ; CC Otilde 2 ; PCC O 0 0 ; PCC tilde 90 142 ; CC Scaron 2 ; PCC S 0 0 ; PCC caron 120 172 ; CC Uacute 2 ; PCC U 0 0 ; PCC acute 310 162 ; CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 260 172 ; CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 260 152 ; CC Ugrave 2 ; PCC U 0 0 ; PCC grave 270 162 ; CC Yacute 2 ; PCC Y 0 0 ; PCC acute 220 162 ; CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 170 152 ; CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 130 172 ; CC aacute 2 ; PCC a 0 0 ; PCC acute 70 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 80 0 ; CC aring 2 ; PCC a 0 0 ; PCC ring 60 0 ; CC atilde 2 ; PCC a 0 0 ; PCC tilde 0 0 ; CC eacute 2 ; PCC e 0 0 ; PCC acute 40 0 ; CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex -10 0 ; CC edieresis 2 ; PCC e 0 0 ; PCC dieresis -20 0 ; CC egrave 2 ; PCC e 0 0 ; PCC grave 30 0 ; CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -30 0 ; CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -80 0 ; CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -100 0 ; CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -40 0 ; CC ntilde 2 ; PCC n 0 0 ; PCC tilde 10 0 ; CC oacute 2 ; PCC o 0 0 ; PCC acute 60 0 ; CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 10 0 ; CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 10 0 ; CC ograve 2 ; PCC o 0 0 ; PCC grave 60 0 ; CC otilde 2 ; PCC o 0 0 ; PCC tilde -20 0 ; CC scaron 2 ; PCC s 0 0 ; PCC caron -10 0 ; CC uacute 2 ; PCC u 0 0 ; PCC acute 70 0 ; CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 30 0 ; CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 20 0 ; CC ugrave 2 ; PCC u 0 0 ; PCC grave 50 0 ; CC yacute 2 ; PCC y 0 0 ; PCC acute 60 0 ; CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 0 0 ; CC zcaron 2 ; PCC z 0 0 ; PCC caron 40 0 ; EndComposites EndFontMetrics enscript-1.6.5.90/afm/cob.afm0000644000175000017500000003652111132443251012520 00000000000000StartFontMetrics 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 enscript-1.6.5.90/afm/Makefile.in0000644000175000017500000003414311606344073013343 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 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@ # # Automakefile for the AFM files. # Copyright (c) 1995-1999 Markku Rossi # # Author: Markku Rossi # # # This file is part of GNU Enscript. # # Enscript is free software: you can redistribute 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. # # Enscript is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Enscript. If not, see . # VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = afm DIST_COMMON = $(dist_afm_DATA) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glibc2.m4 \ $(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intdiv0.m4 $(top_srcdir)/m4/intl.m4 \ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/intmax.m4 \ $(top_srcdir)/m4/inttypes-pri.m4 \ $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/lcmessage.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/lock.m4 \ $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/printf-posix.m4 \ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/size_max.m4 \ $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/uintmax_t.m4 \ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/wchar_t.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xsize.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_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 = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(afmdir)" DATA = $(dist_afm_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GENCAT = @GENCAT@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GLIBC2 = @GLIBC2@ GLIBC21 = @GLIBC21@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GREP = @GREP@ HAVE_ASPRINTF = @HAVE_ASPRINTF@ HAVE_POSIX_PRINTF = @HAVE_POSIX_PRINTF@ HAVE_SNPRINTF = @HAVE_SNPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WPRINTF = @HAVE_WPRINTF@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLBISON = @INTLBISON@ INTLLIBS = @INTLLIBS@ INTLOBJS = @INTLOBJS@ INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTHREAD = @LIBTHREAD@ LTLIBC = @LTLIBC@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ MAKEINFO = @MAKEINFO@ MEDIA = @MEDIA@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ POSUB = @POSUB@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ PSLEVEL = @PSLEVEL@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SPOOLER = @SPOOLER@ STRIP = @STRIP@ U = @U@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ WINDRES = @WINDRES@ WOE32 = @WOE32@ WOE32DLL = @WOE32DLL@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ YACC = @YACC@ YFLAGS = @YFLAGS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ 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@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ default_afm = agd.afm agdo.afm agw.afm agwo.afm bkd.afm bkdi.afm \ bkl.afm bkli.afm cob.afm cobo.afm com.afm coo.afm hv.afm hvb.afm \ hvbo.afm hvc.afm hvcb.afm hvcbo.afm hvcdo.afm hvn.afm hvnb.afm \ hvnbo.afm hvno.afm hvo.afm ncb.afm ncbi.afm nci.afm ncr.afm pob.afm \ pobi.afm poi.afm por.afm sy.afm tib.afm tibi.afm tii.afm tir.afm \ zcmi.afm zd.afm public_fonts = matrix.afm matrix.pfa afmdir = $(pkgdatadir)/afm dist_afm_DATA = font.map $(default_afm) $(public_fonts) EXTRA_DIST = ChangeLog.old all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu afm/Makefile'; \ $(am__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 $(am__aclocal_m4_deps): install-dist_afmDATA: $(dist_afm_DATA) @$(NORMAL_INSTALL) test -z "$(afmdir)" || $(MKDIR_P) "$(DESTDIR)$(afmdir)" @list='$(dist_afm_DATA)'; test -n "$(afmdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(afmdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(afmdir)" || exit $$?; \ done uninstall-dist_afmDATA: @$(NORMAL_UNINSTALL) @list='$(dist_afm_DATA)'; test -n "$(afmdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(afmdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(afmdir)" && rm -f $$files tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(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 . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dist_afmDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-dist_afmDATA .MAKE: install-am install-strip .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-dist_afmDATA install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-dist_afmDATA # 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: enscript-1.6.5.90/afm/agw.afm0000644000175000017500000004262711132443251012537 00000000000000StartFontMetrics 2.0 Comment Copyright (c) 1985, 1987, 1989, 1990, 1991 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Mon Mar 4 13:37:31 1991 Comment UniqueID 34364 Comment VMusage 24225 31117 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 001.006 Notice Copyright (c) 1985, 1987, 1989, 1990, 1991 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 StartCharMetrics 228 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 -100 373 740 ; 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 80 -222 254 0 ; C 205 ; WX 552 ; N hungarumlaut ; B 119 605 453 800 ; 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 650 ; N ecircumflex ; B 38 -13 608 764 ; C -1 ; WX 650 ; N edieresis ; B 38 -13 608 765 ; C -1 ; WX 683 ; N aacute ; B 42 -13 621 786 ; C -1 ; WX 747 ; N registered ; B -9 -12 755 752 ; C -1 ; WX 200 ; N icircumflex ; B -77 0 277 764 ; C -1 ; WX 608 ; N udieresis ; B 62 -13 541 765 ; C -1 ; WX 655 ; N ograve ; B 42 -13 614 786 ; C -1 ; WX 608 ; N uacute ; B 62 -13 541 786 ; C -1 ; WX 608 ; N ucircumflex ; B 62 -13 541 764 ; C -1 ; WX 740 ; N Aacute ; B 12 0 729 949 ; C -1 ; WX 200 ; N igrave ; B -60 0 171 786 ; C -1 ; WX 226 ; N Icircumflex ; B -64 0 290 927 ; C -1 ; WX 647 ; N ccedilla ; B 41 -222 607 561 ; C -1 ; WX 683 ; N adieresis ; B 42 -13 621 765 ; C -1 ; WX 536 ; N Ecircumflex ; B 70 0 475 927 ; C -1 ; WX 388 ; N scaron ; B 11 -13 366 764 ; C -1 ; WX 682 ; N thorn ; B 64 -192 643 740 ; C -1 ; WX 1000 ; N trademark ; B 9 296 816 740 ; C -1 ; WX 650 ; N egrave ; B 38 -13 608 786 ; C -1 ; WX 332 ; N threesuperior ; B 18 289 318 747 ; C -1 ; WX 425 ; N zcaron ; B 10 0 415 764 ; C -1 ; WX 683 ; N atilde ; B 42 -13 621 754 ; C -1 ; WX 683 ; N aring ; B 42 -13 621 807 ; C -1 ; WX 655 ; N ocircumflex ; B 42 -13 614 764 ; C -1 ; WX 536 ; N Edieresis ; B 70 0 475 928 ; C -1 ; WX 831 ; N threequarters ; B 46 0 784 747 ; C -1 ; WX 536 ; N ydieresis ; B 15 -192 523 765 ; C -1 ; WX 536 ; N yacute ; B 15 -192 523 786 ; C -1 ; WX 200 ; N iacute ; B 31 0 262 786 ; C -1 ; WX 740 ; N Acircumflex ; B 12 0 729 927 ; C -1 ; WX 655 ; N Uacute ; B 75 -13 579 949 ; C -1 ; WX 650 ; N eacute ; B 38 -13 608 786 ; C -1 ; WX 869 ; N Ograve ; B 43 -13 826 949 ; C -1 ; WX 683 ; N agrave ; B 42 -13 621 786 ; C -1 ; WX 655 ; N Udieresis ; B 75 -13 579 928 ; C -1 ; WX 683 ; N acircumflex ; B 42 -13 621 764 ; C -1 ; WX 226 ; N Igrave ; B -47 0 184 949 ; C -1 ; WX 332 ; N twosuperior ; B 19 296 318 747 ; C -1 ; WX 655 ; N Ugrave ; B 75 -13 579 949 ; C -1 ; WX 831 ; N onequarter ; B 100 0 729 740 ; C -1 ; WX 655 ; N Ucircumflex ; B 75 -13 579 927 ; C -1 ; WX 498 ; N Scaron ; B 22 -13 473 927 ; C -1 ; WX 226 ; N Idieresis ; B 2 0 224 928 ; C -1 ; WX 200 ; N idieresis ; B -11 0 211 765 ; C -1 ; WX 536 ; N Egrave ; B 70 0 475 949 ; C -1 ; WX 869 ; N Oacute ; B 43 -13 826 949 ; C -1 ; WX 606 ; N divide ; B 51 -13 555 519 ; C -1 ; WX 740 ; N Atilde ; B 12 0 729 917 ; C -1 ; WX 740 ; N Aring ; B 12 0 729 955 ; C -1 ; WX 869 ; N Odieresis ; B 43 -13 826 928 ; C -1 ; WX 740 ; N Adieresis ; B 12 0 729 928 ; C -1 ; WX 740 ; N Ntilde ; B 75 0 664 917 ; C -1 ; WX 480 ; N Zcaron ; B 12 0 470 927 ; C -1 ; WX 592 ; N Thorn ; B 60 0 549 740 ; C -1 ; WX 226 ; N Iacute ; B 44 0 275 949 ; C -1 ; WX 606 ; N plusminus ; B 51 -24 555 518 ; C -1 ; WX 606 ; N multiply ; B 74 24 533 482 ; C -1 ; WX 536 ; N Eacute ; B 70 0 475 949 ; C -1 ; WX 592 ; N Ydieresis ; B 1 0 592 928 ; C -1 ; WX 332 ; N onesuperior ; B 63 296 198 740 ; C -1 ; WX 608 ; N ugrave ; B 62 -13 541 786 ; C -1 ; WX 606 ; N logicalnot ; B 51 109 555 388 ; C -1 ; WX 610 ; N ntilde ; B 65 0 546 754 ; C -1 ; WX 869 ; N Otilde ; B 43 -13 826 917 ; C -1 ; WX 655 ; N otilde ; B 42 -13 614 754 ; C -1 ; WX 813 ; N Ccedilla ; B 43 -222 771 752 ; C -1 ; WX 740 ; N Agrave ; B 12 0 729 949 ; C -1 ; WX 831 ; N onehalf ; B 81 0 750 740 ; C -1 ; WX 790 ; N Eth ; B 40 0 739 740 ; C -1 ; WX 400 ; N degree ; B 56 421 344 709 ; C -1 ; WX 592 ; N Yacute ; B 1 0 592 949 ; C -1 ; WX 869 ; N Ocircumflex ; B 43 -13 826 927 ; C -1 ; WX 655 ; N oacute ; B 42 -13 614 786 ; C -1 ; WX 608 ; N mu ; B 80 -184 527 547 ; C -1 ; WX 606 ; N minus ; B 51 219 555 287 ; C -1 ; WX 655 ; N eth ; B 42 -12 614 753 ; C -1 ; WX 655 ; N odieresis ; B 42 -13 614 765 ; C -1 ; WX 747 ; N copyright ; B -9 -12 755 752 ; C -1 ; WX 672 ; N brokenbar ; B 299 -100 373 740 ; EndCharMetrics StartKernData StartKernPairs 216 KPX A y -62 KPX A w -65 KPX A v -70 KPX A u -20 KPX A quoteright -100 KPX A quotedblright -100 KPX A Y -92 KPX A W -60 KPX A V -102 KPX A U -40 KPX A T -45 KPX A Q -40 KPX A O -50 KPX A G -40 KPX A C -40 KPX B A -10 KPX C A -40 KPX D period -20 KPX D comma -20 KPX D Y -30 KPX D W -10 KPX D V -50 KPX D A -50 KPX F period -160 KPX F e -20 KPX F comma -180 KPX F a -20 KPX F A -75 KPX G period -20 KPX G comma -20 KPX G Y -20 KPX J period -15 KPX J a -20 KPX J A -30 KPX K o -15 KPX K e -20 KPX K O -20 KPX L y -23 KPX L quoteright -130 KPX L quotedblright -130 KPX L Y -91 KPX L W -67 KPX L V -113 KPX L T -46 KPX O period -30 KPX O comma -30 KPX O Y -30 KPX O X -30 KPX O W -20 KPX O V -60 KPX O T -30 KPX O A -60 KPX P period -300 KPX P o -60 KPX P e -20 KPX P comma -280 KPX P a -20 KPX P A -114 KPX Q comma 20 KPX R Y -10 KPX R W 10 KPX R V -10 KPX R T 6 KPX S comma 20 KPX T y -50 KPX T w -55 KPX T u -46 KPX T semicolon -29 KPX T r -30 KPX T period -91 KPX T o -70 KPX T i 10 KPX T hyphen -75 KPX T e -49 KPX T comma -82 KPX T colon -15 KPX T a -90 KPX T O -30 KPX T A -45 KPX U period -20 KPX U comma -20 KPX U A -40 KPX V u -40 KPX V semicolon -33 KPX V period -165 KPX V o -101 KPX V i -5 KPX V hyphen -75 KPX V e -101 KPX V comma -145 KPX V colon -18 KPX V a -104 KPX V O -60 KPX V G -20 KPX V A -102 KPX W y -2 KPX W u -30 KPX W semicolon -33 KPX W period -106 KPX W o -46 KPX W i 6 KPX W hyphen -35 KPX W e -47 KPX W comma -106 KPX W colon -15 KPX W a -50 KPX W O -20 KPX W A -58 KPX Y u -52 KPX Y semicolon -23 KPX Y period -175 KPX Y o -89 KPX Y hyphen -85 KPX Y e -89 KPX Y comma -145 KPX Y colon -10 KPX Y a -93 KPX Y O -30 KPX Y A -92 KPX a p 20 KPX a b 20 KPX b y -20 KPX b v -20 KPX c y -20 KPX c k -15 KPX comma space -110 KPX comma quoteright -120 KPX comma quotedblright -120 KPX e y -20 KPX e w -20 KPX e v -20 KPX f period -50 KPX f o -40 KPX f l -30 KPX f i -34 KPX f f -60 KPX f e -20 KPX f dotlessi -34 KPX f comma -50 KPX f a -40 KPX g a -15 KPX h y -30 KPX k y -5 KPX k e -15 KPX m y -20 KPX m u -20 KPX m a -20 KPX n y -15 KPX n v -20 KPX o y -20 KPX o x -15 KPX o w -20 KPX o v -30 KPX p y -20 KPX period space -110 KPX period quoteright -120 KPX period quotedblright -120 KPX quotedblleft quoteleft -35 KPX quotedblleft A -100 KPX quotedblright space -110 KPX quoteleft quoteleft -203 KPX quoteleft A -100 KPX quoteright v -30 KPX quoteright t 10 KPX quoteright space -110 KPX quoteright s -15 KPX quoteright r -20 KPX quoteright quoteright -203 KPX quoteright quotedblright -35 KPX quoteright d -110 KPX r y 40 KPX r v 40 KPX r u 20 KPX r t 20 KPX r s 20 KPX r q -8 KPX r period -73 KPX r p 20 KPX r o -20 KPX r n 21 KPX r m 28 KPX r l 20 KPX r k 20 KPX r i 20 KPX r hyphen -60 KPX r g -15 KPX r e -4 KPX r d -6 KPX r comma -75 KPX r c -20 KPX r a -20 KPX s period 20 KPX s comma 20 KPX space quoteleft -110 KPX space quotedblleft -110 KPX space Y -60 KPX space W -25 KPX space V -50 KPX space T -25 KPX space A -20 KPX v period -130 KPX v o -30 KPX v e -20 KPX v comma -100 KPX v a -30 KPX w period -100 KPX w o -30 KPX w h 15 KPX w e -20 KPX w comma -90 KPX w a -30 KPX y period -125 KPX y o -30 KPX y e -20 KPX y comma -110 KPX y a -30 EndKernPairs EndKernData StartComposites 56 CC Aacute 2 ; PCC A 0 0 ; PCC acute 183 163 ; CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 119 163 ; CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 186 163 ; CC Agrave 2 ; PCC A 0 0 ; PCC grave 181 163 ; CC Aring 2 ; PCC A 0 0 ; PCC ring 204 148 ; CC Atilde 2 ; PCC A 0 0 ; PCC tilde 151 163 ; CC Eacute 2 ; PCC E 0 0 ; PCC acute 81 163 ; CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 17 163 ; CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 84 163 ; CC Egrave 2 ; PCC E 0 0 ; PCC grave 79 163 ; CC Iacute 2 ; PCC I 0 0 ; PCC acute -34 163 ; CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex -138 163 ; CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis -71 163 ; CC Igrave 2 ; PCC I 0 0 ; PCC grave -116 163 ; CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 151 163 ; CC Oacute 2 ; PCC O 0 0 ; PCC acute 247 163 ; CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 184 163 ; CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 250 163 ; CC Ograve 2 ; PCC O 0 0 ; PCC grave 246 163 ; CC Otilde 2 ; PCC O 0 0 ; PCC tilde 215 163 ; CC Scaron 2 ; PCC S 0 0 ; PCC caron -2 163 ; CC Uacute 2 ; PCC U 0 0 ; PCC acute 160 163 ; CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 77 163 ; CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 143 163 ; CC Ugrave 2 ; PCC U 0 0 ; PCC grave 119 163 ; CC Yacute 2 ; PCC Y 0 0 ; PCC acute 129 163 ; CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 112 163 ; CC Zcaron 2 ; PCC Z 0 0 ; PCC caron -11 163 ; CC aacute 2 ; PCC a 0 0 ; PCC acute 154 0 ; CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 91 0 ; CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 157 0 ; CC agrave 2 ; PCC a 0 0 ; PCC grave 153 0 ; CC aring 2 ; PCC a 0 0 ; PCC ring 176 0 ; CC atilde 2 ; PCC a 0 0 ; PCC tilde 122 0 ; CC eacute 2 ; PCC e 0 0 ; PCC acute 138 0 ; CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 74 0 ; CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 141 0 ; CC egrave 2 ; PCC e 0 0 ; PCC grave 136 0 ; CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -47 0 ; CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -151 0 ; CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -84 0 ; CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -129 0 ; CC ntilde 2 ; PCC n 0 0 ; PCC tilde 86 0 ; CC oacute 2 ; PCC o 0 0 ; PCC acute 140 0 ; CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 77 0 ; CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 143 0 ; CC ograve 2 ; PCC o 0 0 ; PCC grave 139 0 ; CC otilde 2 ; PCC o 0 0 ; PCC tilde 108 0 ; CC scaron 2 ; PCC s 0 0 ; PCC caron -57 0 ; CC uacute 2 ; PCC u 0 0 ; PCC acute 137 0 ; CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 53 0 ; CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 120 0 ; CC ugrave 2 ; PCC u 0 0 ; PCC grave 95 0 ; CC yacute 2 ; PCC y 0 0 ; PCC acute 101 0 ; CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 84 0 ; CC zcaron 2 ; PCC z 0 0 ; PCC caron -38 0 ; EndComposites EndFontMetrics enscript-1.6.5.90/afm/matrix.pfa0000644000175000017500000015620611132443251013267 00000000000000%!PS-Adobe-3.0 EPSF-3.0 %% -*- SGML -*- %%BoundingBox: 50 80 510 780 %%Title: Matrix font %%Creator: Tero kivinen/emacs %%Edit time: 108 min %%Version: 1.89 %%Designer: Tero Kivinen %%CreationDate: 20:59 May 10 1998 kivinen %%Last Modification: 13:47 Nov 10 1998 kivinen %%Pages: 1 %%EndComments %% %% (C) Tero Kivinen 1998 %% %% Permission to use, copy, modify and distribute this software and its %% documentation is hereby granted, provided that both the copyright %% notice and this permission notice appear in all copies of the %% software, derivative works or modified versions, and any portions %% thereof, and that both notices appear in supporting documentation. %% %% TERO KIVINEN ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" %% CONDITION. TERO KIVINEN DISCLAIMS ANY LIABILITY OF ANY KIND FOR %% ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. %% %% %% The font included below is from NetBSD/pcvt source tree: %% %% Copyright (c) 1992, 1995, 1999 Hellmuth Michaelis and Joerg Wunsch %% %% All rights reserved. %% %% Redistribution and use in source and binary forms, with or without %% modification, are permitted provided that the following conditions %% are met: %% 1. Redistributions of source code must retain the above copyright %% notice, this list of conditions and the following disclaimer. %% 2. Redistributions in binary form must reproduce the above copyright %% notice, this list of conditions and the following disclaimer in the %% documentation and/or other materials provided with the distribution. %% 3. All advertising materials mentioning features or use of this software %% must display the following acknowledgement: %% This product includes software developed by %% Hellmuth Michaelis and Joerg Wunsch %% 4. The name authors may not be used to endorse or promote products %% derived from this software without specific prior written permission. %% %% THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR %% IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES %% OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. %% IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT, %% INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT %% NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, %% DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY %% THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT %% (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF %% THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. /MatrixFont 10 dict def MatrixFont begin /FontType 3 def /FontMatrix [0.001 0 0 0.001 0 0] def /FontBBox [0 0 800 800] def /matrixbasedotsize 40 def /matrixdotrandom 10 def /matrixxrandom 30 def /matrixyrandom 30 def /Encoding [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.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 /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 % This font is stolen from NetBSD-1.3 % /usr/share/misc/pcvtfonts/vt220l.808 % It happens to be using the cp850 encoding so the encoding vector % above will convert it to isolatin1. /CharInfo 256 dict def CharInfo begin % char .notdef: % ........ % ........ % ........ % ........ % ........ % ........ % ........ % ........ /.notdef <00 00 00 00 00 00 00 00> def % char space: % ........ % ........ % ........ % ........ % ........ % ........ % ........ % ........ /space <00 00 00 00 00 00 00 00> def % char exclam: % ...##... % ..####.. % ..####.. % ...##... % ...##... % ........ % ...##... % ........ /exclam <18 3c 3c 18 18 00 18 00> def % char quotedbl: % .##.##.. % .##.##.. % .##.##.. % ........ % ........ % ........ % ........ % ........ /quotedbl <6c 6c 6c 00 00 00 00 00> def % char numbersign: % .##.##.. % .##.##.. % #######. % .##.##.. % #######. % .##.##.. % .##.##.. % ........ /numbersign <6c 6c fe 6c fe 6c 6c 00> def % char dollar: % ..##.... % .#####.. % ##...... % .#####.. % .....##. % ######.. % ..##.... % ........ /dollar <30 7c c0 7c 06 fc 30 00> def % char percent: % ........ % ##...##. % ##..##.. % ...##... % ..##.... % .##..##. % ##...##. % ........ /percent <00 c6 cc 18 30 66 c6 00> def % char ampersand: % ..###... % .##.##.. % ..###... % .###.##. % ##.###.. % ##..###. % .####.## % ........ /ampersand <38 6c 38 76 dc ce 7b 00> def % char quoteright: % .##..... % .##..... % ##...... % ........ % ........ % ........ % ........ % ........ /quoteright <60 60 c0 00 00 00 00 00> def % char parenleft: % ...##... % ..##.... % .##..... % .##..... % .##..... % ..##.... % ...##... % ........ /parenleft <18 30 60 60 60 30 18 00> def % char parenright: % ..##.... % ...##... % ....##.. % ....##.. % ....##.. % ...##... % ..##.... % ........ /parenright <30 18 0c 0c 0c 18 30 00> def % char asterisk: % ........ % .##.##.. % ..###... % #######. % ..###... % .##.##.. % ........ % ........ /asterisk <00 6c 38 fe 38 6c 00 00> def % char plus: % ........ % ..##.... % ..##.... % ######.. % ..##.... % ..##.... % ........ % ........ /plus <00 30 30 fc 30 30 00 00> def % char comma: % ........ % ........ % ........ % ........ % ........ % ..##.... % ..##.... % .##..... /comma <00 00 00 00 00 30 30 60> def % char hyphen: % ........ % ........ % ........ % ######.. % ........ % ........ % ........ % ........ /hyphen <00 00 00 fc 00 00 00 00> def % char period: % ........ % ........ % ........ % ........ % ........ % ...##... % ...##... % ........ /period <00 00 00 00 00 18 18 00> def % char slash: % .....##. % ....##.. % ...##... % ..##.... % .##..... % ##...... % #....... % ........ /slash <06 0c 18 30 60 c0 80 00> def % char zero: % .#####.. % ##..###. % ##.####. % ####.##. % ###..##. % ##...##. % .#####.. % ........ /zero <7c ce de f6 e6 c6 7c 00> def % char one: % ..##.... % .###.... % #.##.... % ..##.... % ..##.... % ..##.... % ######.. % ........ /one <30 70 b0 30 30 30 fc 00> def % char two: % .####... % ##..##.. % ....##.. % ..###... % .##..... % ##...... % ######.. % ........ /two <78 cc 0c 38 60 c0 fc 00> def % char three: % .####... % ##..##.. % ....##.. % ..###... % ....##.. % ##..##.. % .####... % ........ /three <78 cc 0c 38 0c cc 78 00> def % char four: % ...###.. % ..####.. % .##.##.. % ##..##.. % #######. % ....##.. % ...####. % ........ /four <1c 3c 6c cc fe 0c 1e 00> def % char five: % ######.. % ##...... % #####... % ....##.. % ....##.. % ##..##.. % .####... % ........ /five def % char six: % .####... % ##..##.. % ##...... % #####... % ##..##.. % ##..##.. % .####... % ........ /six <78 cc c0 f8 cc cc 78 00> def % char seven: % ######.. % ##..##.. % ....##.. % ...##... % ..##.... % ..##.... % ..##.... % ........ /seven def % char eight: % .####... % ##..##.. % ##..##.. % .####... % ##..##.. % ##..##.. % .####... % ........ /eight <78 cc cc 78 cc cc 78 00> def % char nine: % .####... % ##..##.. % ##..##.. % .#####.. % ....##.. % ##..##.. % .####... % ........ /nine <78 cc cc 7c 0c cc 78 00> def % char colon: % ........ % ..##.... % ..##.... % ........ % ........ % ..##.... % ..##.... % ........ /colon <00 30 30 00 00 30 30 00> def % char semicolon: % ........ % ..##.... % ..##.... % ........ % ........ % ..##.... % ..##.... % .##..... /semicolon <00 30 30 00 00 30 30 60> def % char less: % ...##... % ..##.... % .##..... % ##...... % .##..... % ..##.... % ...##... % ........ /less <18 30 60 c0 60 30 18 00> def % char equal: % ........ % ........ % .######. % ........ % ........ % .######. % ........ % ........ /equal <00 00 7e 00 00 7e 00 00> def % char greater: % ..##.... % ...##... % ....##.. % .....##. % ....##.. % ...##... % ..##.... % ........ /greater <30 18 0c 06 0c 18 30 00> def % char question: % ..####.. % .##..##. % .....##. % ....##.. % ...##... % ........ % ...##... % ........ /question <3c 66 06 0c 18 00 18 00> def % char at: % .#####.. % ##...##. % ##.####. % ##.####. % ##.####. % ##...... % .######. % ........ /at <7c c6 de de de c0 7e 00> def % char A: % ..##.... % .####... % ##..##.. % ##..##.. % ######.. % ##..##.. % ##..##.. % ........ /A <30 78 cc cc fc cc cc 00> def % char B: % ######.. % .##..##. % .##..##. % .#####.. % .##..##. % .##..##. % ######.. % ........ /B def % char C: % ..####.. % .##..##. % ##...... % ##...... % ##...... % .##..##. % ..####.. % ........ /C <3c 66 c0 c0 c0 66 3c 00> def % char D: % #####... % .##.##.. % .##..##. % .##..##. % .##..##. % .##.##.. % #####... % ........ /D def % char E: % #######. % .##...#. % .##.#... % .####... % .##.#... % .##...#. % #######. % ........ /E def % char F: % #######. % .##...#. % .##.#... % .####... % .##.#... % .##..... % ####.... % ........ /F def % char G: % ..####.. % .##..##. % ##...... % ##...... % ##..###. % .##..##. % ..#####. % ........ /G <3c 66 c0 c0 ce 66 3e 00> def % char H: % ##..##.. % ##..##.. % ##..##.. % ######.. % ##..##.. % ##..##.. % ##..##.. % ........ /H def % char I: % .####... % ..##.... % ..##.... % ..##.... % ..##.... % ..##.... % .####... % ........ /I <78 30 30 30 30 30 78 00> def % char J: % ...####. % ....##.. % ....##.. % ....##.. % ##..##.. % ##..##.. % .####... % ........ /J <1e 0c 0c 0c cc cc 78 00> def % char K: % ###..##. % .##.##.. % .####... % .###.... % .####... % .##.##.. % ###..##. % ........ /K def % char L: % ####.... % .##..... % .##..... % .##..... % .##...#. % .##..##. % #######. % ........ /L def % char M: % ##...##. % ###.###. % #######. % ##.#.##. % ##...##. % ##...##. % ##...##. % ........ /M def % char N: % ##...##. % ###..##. % ####.##. % ##.####. % ##..###. % ##...##. % ##...##. % ........ /N def % char O: % ..###... % .##.##.. % ##...##. % ##...##. % ##...##. % .##.##.. % ..###... % ........ /O <38 6c c6 c6 c6 6c 38 00> def % char P: % ######.. % .##..##. % .##..##. % .#####.. % .##..... % .##..... % ####.... % ........ /P def % char Q: % .####... % ##..##.. % ##..##.. % ##..##.. % ##.###.. % .####... % ...###.. % ........ /Q <78 cc cc cc dc 78 1c 00> def % char R: % ######.. % .##..##. % .##..##. % .#####.. % .##.##.. % .##..##. % ###..##. % ........ /R def % char S: % .####... % ##..##.. % ##...... % .####... % ....##.. % ##..##.. % .####... % ........ /S <78 cc c0 78 0c cc 78 00> def % char T: % ######.. % #.##.#.. % ..##.... % ..##.... % ..##.... % ..##.... % .####... % ........ /T def % char U: % ##..##.. % ##..##.. % ##..##.. % ##..##.. % ##..##.. % ##..##.. % .####... % ........ /U def % char V: % ##..##.. % ##..##.. % ##..##.. % ##..##.. % ##..##.. % .####... % ..##.... % ........ /V def % char W: % ##...##. % ##...##. % ##...##. % ##.#.##. % #######. % #######. % ##...##. % ........ /W def % char X: % ##...##. % ##...##. % .##.##.. % ..###... % ..###... % .##.##.. % ##...##. % ........ /X def % char Y: % ##..##.. % ##..##.. % ##..##.. % .####... % ..##.... % ..##.... % .####... % ........ /Y def % char Z: % ######.. % ##..##.. % #..##... % ..##.... % .##..#.. % ##..##.. % ######.. % ........ /Z def % char bracketleft: % .####... % .##..... % .##..... % .##..... % .##..... % .##..... % .####... % ........ /bracketleft <78 60 60 60 60 60 78 00> def % char blackslash: % ##...... % .##..... % ..##.... % ...##... % ....##.. % .....##. % ......#. % ........ /blackslash def % char bracketright: % .####... % ...##... % ...##... % ...##... % ...##... % ...##... % .####... % ........ /bracketright <78 18 18 18 18 18 78 00> def % char asciicircum: % ...#.... % ..###... % .##.##.. % ##...##. % ........ % ........ % ........ % ........ /asciicircum <10 38 6c c6 00 00 00 00> def % char underscore: % ........ % ........ % ........ % ........ % ........ % ........ % ........ % ######## /underscore <00 00 00 00 00 00 00 ff> def % char quoteleft: % ..##.... % ..##.... % ...##... % ........ % ........ % ........ % ........ % ........ /quoteleft <30 30 18 00 00 00 00 00> def % char a: % ........ % ........ % .####... % ....##.. % .#####.. % ##..##.. % .###.##. % ........ /a <00 00 78 0c 7c cc 76 00> def % char b: % ###..... % .##..... % .##..... % .#####.. % .##..##. % .##..##. % ######.. % ........ /b def % char c: % ........ % ........ % .####... % ##..##.. % ##...... % ##..##.. % .####... % ........ /c <00 00 78 cc c0 cc 78 00> def % char d: % ...###.. % ....##.. % ....##.. % .#####.. % ##..##.. % ##..##.. % .######. % ........ /d <1c 0c 0c 7c cc cc 7e 00> def % char e: % ........ % ........ % .####... % ##..##.. % ######.. % ##...... % .####... % ........ /e <00 00 78 cc fc c0 78 00> def % char f: % ..###... % .##.##.. % .##..... % #####... % .##..... % .##..... % ####.... % ........ /f <38 6c 60 f8 60 60 f0 00> def % char g: % ........ % ........ % .###.##. % ##..##.. % ##..##.. % .#####.. % ....##.. % #####... /g <00 00 76 cc cc 7c 0c f8> def % char h: % ###..... % .##..... % .##.##.. % .###.##. % .##..##. % .##..##. % ###..##. % ........ /h def % char i: % ..##.... % ........ % .###.... % ..##.... % ..##.... % ..##.... % .####... % ........ /i <30 00 70 30 30 30 78 00> def % char j: % ....##.. % ........ % ...###.. % ....##.. % ....##.. % ##..##.. % ##..##.. % .####... /j <0c 00 1c 0c 0c cc cc 78> def % char k: % ###..... % .##..... % .##..##. % .##.##.. % .####... % .##.##.. % ###..##. % ........ /k def % char l: % .###.... % ..##.... % ..##.... % ..##.... % ..##.... % ..##.... % .####... % ........ /l <70 30 30 30 30 30 78 00> def % char m: % ........ % ........ % ##..##.. % #######. % #######. % ##.#.##. % ##...##. % ........ /m <00 00 cc fe fe d6 c6 00> def % char n: % ........ % ........ % #####... % ##..##.. % ##..##.. % ##..##.. % ##..##.. % ........ /n <00 00 f8 cc cc cc cc 00> def % char o: % ........ % ........ % .####... % ##..##.. % ##..##.. % ##..##.. % .####... % ........ /o <00 00 78 cc cc cc 78 00> def % char p: % ........ % ........ % ##.###.. % .##..##. % .##..##. % .#####.. % .##..... % ####.... /p <00 00 dc 66 66 7c 60 f0> def % char q: % ........ % ........ % .###.##. % ##..##.. % ##..##.. % .#####.. % ....##.. % ...####. /q <00 00 76 cc cc 7c 0c 1e> def % char r: % ........ % ........ % ##.###.. % .###.##. % .##..... % .##..... % ####.... % ........ /r <00 00 dc 76 60 60 f0 00> def % char s: % ........ % ........ % .#####.. % ##...... % .#####.. % .....##. % ######.. % ........ /s <00 00 7c c0 7c 06 fc 00> def % char t: % ...#.... % ..##.... % .#####.. % ..##.... % ..##.... % ..##.##. % ...###.. % ........ /t <10 30 7c 30 30 36 1c 00> def % char u: % ........ % ........ % ##..##.. % ##..##.. % ##..##.. % ##..##.. % .###.##. % ........ /u <00 00 cc cc cc cc 76 00> def % char v: % ........ % ........ % ##...##. % ##...##. % ##...##. % .#####.. % ..###... % ........ /v <00 00 c6 c6 c6 7c 38 00> def % char w: % ........ % ........ % ##...##. % ##.#.##. % #######. % #######. % .##.##.. % ........ /w <00 00 c6 d6 fe fe 6c 00> def % char x: % ........ % ........ % ##...##. % .##.##.. % ..###... % .##.##.. % ##...##. % ........ /x <00 00 c6 6c 38 6c c6 00> def % char y: % ........ % ........ % ##..##.. % ##..##.. % ##..##.. % .#####.. % ....##.. % #####... /y <00 00 cc cc cc 7c 0c f8> def % char z: % ........ % ........ % ######.. % #..##... % ..##.... % .##..#.. % ######.. % ........ /z <00 00 fc 98 30 64 fc 00> def % char braceleft: % ...###.. % ..##.... % ..##.... % ###..... % ..##.... % ..##.... % ...###.. % ........ /braceleft <1c 30 30 e0 30 30 1c 00> def % char bar: % ...##... % ...##... % ...##... % ........ % ...##... % ...##... % ...##... % ........ /bar <18 18 18 00 18 18 18 00> def % char braceright: % ###..... % ..##.... % ..##.... % ...###.. % ..##.... % ..##.... % ###..... % ........ /braceright def % char tilde: % .###.##. % ##.###.. % ........ % ........ % ........ % ........ % ........ % ........ /tilde <76 dc 00 00 00 00 00 00> def % char exclamdown: % ...##... % ...##... % ........ % ...##... % ...##... % ...##... % ...##... % ........ /exclamdown <18 18 00 18 18 18 18 00> def % char cent: % ...##... % ...##... % .######. % ##...... % ##...... % .######. % ...##... % ...##... /cent <18 18 7e c0 c0 7e 18 18> def % char sterling: % ..###... % .##.##.. % .##..#.. % ####.... % .##..... % ###..##. % ######.. % ........ /sterling <38 6c 64 f0 60 e6 fc 00> def % char currency: % ........ % ........ % #.###.#. % .##.##.. % .##.##.. % #.###.#. % ........ % ........ /currency <00 00 ba 6c 6c ba 00 00> def % char yen: % ##..##.. % ##..##.. % .####... % ######.. % ..##.... % ######.. % ..##.... % ..##.... /yen def % char brokenbar: % ...##... % ...##... % ...##... % ........ % ...##... % ...##... % ...##... % ........ /brokenbar <18 18 18 00 18 18 18 00> def % char section: % .######. % ##....## % ######.. % .##..##. % .##..##. % ..###### % ##....## % .######. /section <7e c3 fc 66 66 3f c3 7e> def % char dieresis: % ........ % ##..##.. % ........ % ........ % ........ % ........ % ........ % ........ /dieresis <00 cc 00 00 00 00 00 00> def % char copyright: % ..###... % .#...#.. % #.###.#. % #.#...#. % #.###.#. % .#...#.. % ..###... % ........ /copyright <38 44 ba a2 ba 44 38 00> def % char ordfeminine: % ..####.. % .##.##.. % .##.##.. % ..#####. % ........ % .######. % ........ % ........ /ordfeminine <3c 6c 6c 3e 00 7e 00 00> def % char guillemotleft: % ........ % ..##..## % .##..##. % ##..##.. % .##..##. % ..##..## % ........ % ........ /guillemotleft <00 33 66 cc 66 33 00 00> def % char logicalnot: % ........ % ........ % ........ % .######. % ......#. % ........ % ........ % ........ /logicalnot <00 00 00 7e 02 00 00 00> def % char hyphen: % ........ % ........ % ........ % ######.. % ........ % ........ % ........ % ........ /hyphen <00 00 00 fc 00 00 00 00> def % char registered: % ..###... % .#...#.. % #.###.#. % #.###.#. % #.#.#.#. % .#...#.. % ..###... % ........ /registered <38 44 ba ba aa 44 38 00> def % char macron: % ........ % ######.. % ........ % ........ % ........ % ........ % ........ % ........ /macron <00 fc 00 00 00 00 00 00> def % char degree: % ..###... % .##.##.. % .##.##.. % ..###... % ........ % ........ % ........ % ........ /degree <38 6c 6c 38 00 00 00 00> def % char plusminus: % ..##.... % ..##.... % ######.. % ..##.... % ..##.... % ........ % ######.. % ........ /plusminus <30 30 fc 30 30 00 fc 00> def % char twosuperior: % .###.... % ...##... % ..##.... % .##..... % .####... % ........ % ........ % ........ /twosuperior <70 18 30 60 78 00 00 00> def % char threesuperior: % .###.... % ...##... % .###.... % ...##... % .###.... % ........ % ........ % ........ /threesuperior <70 18 70 18 70 00 00 00> def % char acute: % ...###.. % ........ % ........ % ........ % ........ % ........ % ........ % ........ /acute <1c 00 00 00 00 00 00 00> def % char mu: % ........ % .##..##. % .##..##. % .##..##. % .##..##. % .#####.. % .##..... % ##...... /mu <00 66 66 66 66 7c 60 c0> def % char paragraph: % .####### % ##.##.## % ##.##.## % .####.## % ...##.## % ...##.## % ...##.## % ........ /paragraph <7f db db 7b 1b 1b 1b 00> def % char bullet: % ........ % ........ % .######. % .######. % .######. % ........ % ........ % ........ /bullet <00 00 7e 7e 7e 00 00 00> def % char cedilla: % ........ % ........ % ........ % ........ % ........ % ...##... % ....##.. % .####... /cedilla <00 00 00 00 00 18 0c 78> def % char onesuperior: % ...##... % ..###... % ...##... % ...##... % ..####.. % ........ % ........ % ........ /onesuperior <18 38 18 18 3c 00 00 00> def % char ordmasculine: % ..###... % .##.##.. % .##.##.. % ..###... % ........ % .#####.. % ........ % ........ /ordmasculine <38 6c 6c 38 00 7c 00 00> def % char guillemotright: % ........ % ##..##.. % .##..##. % ..##..## % .##..##. % ##..##.. % ........ % ........ /guillemotright <00 cc 66 33 66 cc 00 00> def % char onequarter: % ##....## % ##...##. % ##..##.. % ##.##.## % ..##.### % .##.#### % ##..#### % ......## /onequarter def % char onehalf: % ##....## % ##...##. % ##..##.. % ##.####. % ..##..## % .##..##. % ##..##.. % ....#### /onehalf def % char threequarters: % ###...## % ..##.##. % ###.##.. % ..###.## % ####.### % .##.#### % ##..#### % ......## /threequarters def % char questiondown: % ..##.... % ........ % ..##.... % .##..... % ##...... % ##..##.. % .####... % ........ /questiondown <30 00 30 60 c0 cc 78 00> def % char Agrave: % ###..... % ........ % .####... % ##..##.. % ##..##.. % ######.. % ##..##.. % ........ /Agrave def % char Aacute: % ...###.. % ........ % .####... % ##..##.. % ##..##.. % ######.. % ##..##.. % ........ /Aacute <1c 00 78 cc cc fc cc 00> def % char Acircumflex: % .#####.. % ##...##. % .####... % ##..##.. % ##..##.. % ######.. % ##..##.. % ........ /Acircumflex <7c c6 78 cc cc fc cc 00> def % char Atilde: % ######.. % ........ % .####... % ##..##.. % ##..##.. % ######.. % ##..##.. % ........ /Atilde def % char Adieresis: % ##...##. % ..###... % .##.##.. % ##...##. % #######. % ##...##. % ##...##. % ........ /Adieresis def % char Aring: % ..##.... % ..##.... % ........ % .####... % ##..##.. % ######.. % ##..##.. % ........ /Aring <30 30 00 78 cc fc cc 00> def % char AE: % ..#####. % .##.##.. % ##..##.. % #######. % ##..##.. % ##..##.. % ##..###. % ........ /AE <3e 6c cc fe cc cc ce 00> def % char Ccedilla: % .####... % ##..##.. % ##...... % ##..##.. % .####... % ...##... % ....##.. % .####... /Ccedilla <78 cc c0 cc 78 18 0c 78> def % char Egrave: % ###..... % ........ % ######.. % .##..... % .####... % .##..... % ######.. % ........ /Egrave def % char Eacute: % ...###.. % ........ % ######.. % .##..... % .####... % .##..... % ######.. % ........ /Eacute <1c 00 fc 60 78 60 fc 00> def % char Ecircumflex: % .#####.. % ##...##. % ######.. % .##..... % .####... % .##..... % ######.. % ........ /Ecircumflex <7c c6 fc 60 78 60 fc 00> def % char Edieresis: % ##...##. % ........ % ######.. % .##..... % .####... % .##..... % ######.. % ........ /Edieresis def % char Igrave: % ###..... % ........ % .####... % ..##.... % ..##.... % ..##.... % .####... % ........ /Igrave def % char Iacute: % ...###.. % ........ % .####... % ..##.... % ..##.... % ..##.... % .####... % ........ /Iacute <1c 00 78 30 30 30 78 00> def % char Icircumflex: % .#####.. % ##...##. % .####... % ..##.... % ..##.... % ..##.... % .####... % ........ /Icircumflex <7c c6 78 30 30 30 78 00> def % char Idieresis: % ##...##. % ........ % .####... % ..##.... % ..##.... % ..##.... % .####... % ........ /Idieresis def % char Eth: % #####... % .##.##.. % .##..##. % ####.##. % .##..##. % .##.##.. % #####... % ........ /Eth def % char Ntilde: % ######.. % ........ % ##..##.. % ###.##.. % ######.. % ##.###.. % ##..##.. % ........ /Ntilde def % char Ograve: % ###..... % ........ % ..###.. % .##.##.. % ##...##. % .##.##.. % ..###... % ........ /Ograve def % char Oacute: % ....###. % ........ % ..###.. % .##.##.. % ##...##. % .##.##.. % ..###... % ........ /Oacute <0e 00 38 6c c6 6c 38 00> def % char Ocircumflex: % .#####.. % ##...##. % ..###.. % .##.##.. % ##...##. % .##.##.. % ..###... % ........ /Ocircumflex <7c c6 38 6c c6 6c 38 00> def % char Otilde: % #######. % ........ % ..###.. % .##.##.. % ##...##. % .##.##.. % ..###... % ........ /Otilde def % char Odieresis: % ##...##. % ........ % ..###... % .##.##.. % ##...##. % .##.##.. % ..###... % ........ /Odieresis def % char multiply: % ........ % ##..##.. % .####... % ..##.... %..####... % ##..##.. % ........ % ........ /multiply <00 cc 78 30 07 cc 00 00> def % char Oslash: % ..###.#. % .##.##.. % ##..###. % ##.#.##. % ###..##. % .##.##.. % #.###... % ........ /Oslash <3a 6c ce d6 e6 6c b8 00> def % char Ugrave: % ###..... % ........ % ##..##.. % ##..##.. % ##..##.. % ##..##.. % .####... % ........ /Ugrave def % char Uacute: % ...###.. % ........ % ##..##.. % ##..##.. % ##..##.. % ##..##.. % .####... % ........ /Uacute <1c 00 cc cc cc cc 78 00> def % char Ucircumflex: % .####... % ##..##.. % ........ % ##..##.. % ##..##.. % ##..##.. % .####... % ........ /Ucircumflex <78 cc 00 cc cc cc 78 00> def % char Udieresis: % ##..##.. % ........ % ##..##.. % ##..##.. % ##..##.. % ##..##.. % .####... % ........ /Udieresis def % char Yacute: % ...###.. % ........ % ##..##.. % ##..##.. % .####... % ..##.... % .####... % ........ /Yacute <1c 00 cc cc 78 30 78 00> def % char Thorn: % ####.... % .##..... % .#####.. % .##..##. % .##..##. % .#####.. % .##..... % ####.... /Thorn def % char germandbls: % ........ % .####... % ##..##.. % #####... % ##..##.. % #####... % ##...... % ##...... /germandbls <00 78 cc f8 cc f8 c0 c0> def % char agrave: % ###..... % ........ % .####... % ....##.. % .#####.. % ##..##.. % .######. % ........ /agrave def % char aacute: % ....###. % ........ % .####... % ....##.. % .#####.. % ##..##.. % .######. % ........ /aacute <0e 00 78 0c 7c cc 7e 00> def % char acircumflex: % .######. % ##....## % ..####.. % .....##. % ..#####. % .##..##. % ..###### % ........ /acircumflex <7e c3 3c 06 3e 66 3f 00> def % char atilde: % .####### % ........ % ..####.. % .....##. % ..#####. % .##..##. % ..###### % ........ /atilde <7f 00 3c 06 3e 66 3f 00> def % char adieresis: % ##..##.. % ........ % .####... % ....##.. % .#####.. % ##..##.. % .######. % ........ /adieresis def % char aring: % ..##.... % ..##.... % .####... % ....##.. % .#####.. % ##..##.. % .######. % ........ /aring <30 30 78 0c 7c cc 7e 00> def % char ae: % ........ % ........ % .####### % ....##.. % .####### % ##..##.. % .####### % ........ /ae <00 00 7f 0c 7f cc 7f 00> def % char ccedilla: % ........ % ........ % .####... % ##...... % ##...... % .####... % ....##.. % ..###... /ccedilla <00 00 78 c0 c0 78 0c 38> def % char egrave: % ###..... % ........ % .####... % ##..##.. % ######.. % ##...... % .####... % ........ /egrave def % char eacute: % ...###.. % ........ % .####... % ##..##.. % ######.. % ##...... % .####... % ........ /eacute <1c 00 78 cc fc c0 78 00> def % char ecircumflex: % .######. % ##....## % ..####.. % .##..##. % .######. % .##..... % ..####.. % ........ /ecircumflex <7e c3 3c 66 7e 60 3c 00> def % char edieresis: % ##..##.. % ........ % .####... % ##..##.. % ######.. % ##...... % .####... % ........ /edieresis def % char igrave: % ###..... % ........ % .###.... % ..##.... % ..##.... % ..##.... % .####... % ........ /igrave def % char iacute: % ..###... % ........ % .###.... % ..##.... % ..##.... % ..##.... % .####... % ........ /iacute <38 00 70 30 30 30 78 00> def % char icircumflex: % .#####.. % ##...##. % ..###... % ...##... % ...##... % ...##... % ..####.. % ........ /icircumflex <7c c6 38 18 18 18 3c 00> def % char idieresis: % ##..##.. % ........ % .###.... % ..##.... % ..##.... % ..##.... % .####... % ........ /idieresis def % char eth: % ..#..... % .###.... % ...##... % .####... % ##..##.. % ##..##.. % .####... % ........ /eth <20 70 18 78 cc cc 78 00> def % char ntilde: % ........ % #####... % ........ % #####... % ##..##.. % ##..##.. % ##..##.. % ........ /ntilde <00 f8 00 f8 cc cc cc 00> def % char ograve: % ........ % ###..... % ........ % .####... % ##..##.. % ##..##.. % .####... % ........ /ograve <00 e0 00 78 cc cc 78 00> def % char oacute: % ........ % ...###.. % ........ % .####... % ##..##.. % ##..##.. % .####... % ........ /oacute <00 1c 00 78 cc cc 78 00> def % char ocircumflex: % .####... % ##..##.. % ........ % .####... % ##..##.. % ##..##.. % .####... % ........ /ocircumflex <78 cc 00 78 cc cc 78 00> def % char otilde: % ........ % ######.. % ........ % .####... % ##..##.. % ##..##.. % .####... % ........ /otilde <00 fc 00 78 cc cc 78 00> def % char odieresis: % ........ % ##..##.. % ........ % .####... % ##..##.. % ##..##.. % .####... % ........ /odieresis <00 cc 00 78 cc cc 78 00> def % char divide: % ..##.... % ..##.... % ........ % ######.. % ........ % ..##.... % ..##.... % ........ /divide <30 30 00 fc 00 30 30 00> def % char oslash: % ........ % ........ % .#####.. % ##..##.. % ##.###.. % ###.##.. % .####... % ........ /oslash <00 00 7c cc dc ec 78 00> def % char ugrave: % ........ % ###..... % ........ % ##..##.. % ##..##.. % ##..##.. % .######. % ........ /ugrave <00 e0 00 cc cc cc 7e 00> def % char uacute: % ........ % ...###.. % ........ % ##..##.. % ##..##.. % ##..##.. % .######. % ........ /uacute <00 1c 00 cc cc cc 7e 00> def % char ucircumflex: % .####... % ##..##.. % ........ % ##..##.. % ##..##.. % ##..##.. % .######. % ........ /ucircumflex <78 cc 00 cc cc cc 7e 00> def % char udieresis: % ........ % ##..##.. % ........ % ##..##.. % ##..##.. % ##..##.. % .######. % ........ /udieresis <00 cc 00 cc cc cc 7e 00> def % char yacute: % ........ % ...###.. % ........ % ##..##.. % ##..##.. % .#####.. % ....##.. % #####... /yacute <00 1c 00 cc cc 7c 0c f8> def % char thorn: % ........ % ####.... % .##..... % .#####.. % .##..##. % .#####.. % .##..... % ####.... /thorn <00 f0 60 7c 66 7c 60 f0> def % char ydieresis: % ........ % ##..##.. % ........ % ##..##.. % ##..##.. % .#####.. % ....##.. % #####... /ydieresis <00 cc 00 cc cc 7c 0c f8> def % XXX Unsorted glyphs follows: % char DEL: % ...#.... % ..###... % .##.##.. % .##.##.. % ##...##. % ##...##. % #######. % ........ /DEL <10 38 6c 6c c6 c6 fe 00> def % char florin: % ....###. % ...##.## % ...##... % ..####.. % ...##... % ...##... % ##.##... % .###.... /florin <0e 1b 18 3c 18 18 d8 70> def % char alpha: % ........ % ........ % .###.##. % ##.###.. % ##..#... % ##.###.. % .###.##. % ........ /alpha <00 00 76 dc c8 dc 76 00> def % char gamma: % ........ % ######.. % ##..##.. % ##...... % ##...... % ##...... % ##...... % ........ /gamma <00 fc cc c0 c0 c0 c0 00> def % char pi: % ........ % #######. % .##.##.. % .##.##.. % .##.##.. % .##.##.. % .##.##.. % ........ /pi <00 fe 6c 6c 6c 6c 6c 00> def % char sigma: % ######.. % ##..##.. % .##..... % ..##.... % .##..... % ##..##.. % ######.. % ........ /sigma def % char Omega: % ..###... % .##.##.. % ##...##. % ##...##. % .##.##.. % .##.##.. % ###.###. % ........ /Omega <38 6c c6 c6 6c 6c ee 00> def % char greaterequal: % .##..... % ..##.... % ...##... % ..##.... % .##..... % ........ % ######.. % ........ /greaterequal <60 30 18 30 60 00 fc 00> def % char lessequal: % ...##... % ..##.... % .##..... % ..##.... % ...##... % ........ % ######.. % ........ /lessequal <18 30 60 30 18 00 fc 00> def % char approxequal: % ........ % .###.##. % ##.###.. % ........ % .###.##. % ##.###.. % ........ % ........ /approxequal <00 76 dc 00 76 dc 00 00> def % char SOH: % .######. % #......# % #.#..#.# % #......# % #.####.# % #..##..# % #......# % .######. /SOH <7e 81 a5 81 bd 99 81 7e> def % char STX: % .######. % ######## % ##.##.## % ######## % ##....## % ###..### % ######## % .######. /STX <7e ff db ff c3 e7 ff 7e> def % char heart: % .##.##.. % #######. % #######. % #######. % .#####.. % ..###... % ...#.... % ........ /heart <6c fe fe fe 7c 38 10 00> def % char diamond: % ...#.... % ..###... % .#####.. % #######. % .#####.. % ..###... % ...#.... % ........ /diamond <10 38 7c fe 7c 38 10 00> def % char club: % ..###... % .#####.. % ..###... % #######. % #######. % ##.#.##. % ...#.... % ..###... /club <38 7c 38 fe fe d6 10 38> def % char spade: % ...#.... % ..###... % .#####.. % #######. % #######. % .#####.. % ...#.... % ..###... /spade <10 38 7c fe fe 7c 10 38> def % char BEL: % ........ % ........ % ...##... % ..####.. % ..####.. % ...##... % ........ % ........ /BEL <00 00 18 3c 3c 18 00 00> def % char BS: % ######## % ######## % ###..### % ##....## % ##....## % ###..### % ######## % ######## /BS def % char HT: % ..####.. % .##..##. % ##....## % ##....## % ##....## % ##....## % .##..##. % ..####.. /HT <3c 66 c3 c3 c3 c3 66 3c> def % char LF: % ######## % ##....## % #..##..# % #.####.# % #.####.# % #..##..# % ##....## % ######## /LF def % char VT: % ...##### % .....### % ....##.# % .####..# % ##..##.# % ##..##.. % ##..##.. % .####... /VT <1f 07 0d 79 cd cc cc 78> def % char FF: % ..####.. % .##..##. % .##..##. % .##..##. % ..####.. % ...##... % .######. % ...##... /FF <3c 66 66 66 3c 18 7e 18> def % char CR: % ..###... % ..####.. % ..##.##. % ..##..#. % ..##.#.. % .###.... % ####.... % ###..... /CR <38 3c 36 32 34 70 f0 e0> def % char SO: % .####### % .##...## % .####### % .##...## % .##...## % .##..### % ###..##. % ##...... /SO <7f 63 7f 63 63 67 e6 c0> def % char SI: % ...##... % ##.##.## % ..####.. % ###..### % ###..### % ..####.. % ##.##.## % ...##... /SI <18 db 3c e7 e7 3c db 18> def % char DLE: % #....... % ###..... % #####... % #######. % #####... % ###..... % #....... % ........ /DLE <80 e0 f8 fe f8 e0 80 00> def % char DC1: % ......#. % ....###. % ..#####. % #######. % ..#####. % ....###. % ......#. % ........ /DC1 <02 0e 3e fe 3e 0e 02 00> def % char DC2: % ...##... % ..####.. % .######. % ...##... % ...##... % .######. % ..####.. % ...##... /DC2 <18 3c 7e 18 18 7e 3c 18> def % char DC3: % .##..##. % .##..##. % .##..##. % .##..##. % .##..##. % ........ % .##..##. % ........ /DC3 <66 66 66 66 66 00 66 00> def % char ETB: % ...##... % ..####.. % .######. % ...##... % .######. % ..####.. % ...##... % ######## /ETB <18 3c 7e 18 7e 3c 18 ff> def % char CAN: % ...##... % ..####.. % .######. % ...##... % ...##... % ...##... % ...##... % ........ /CAN <18 3c 7e 18 18 18 18 00> def % char EM: % ...##... % ...##... % ...##... % ...##... % .######. % ..####.. % ...##... % ........ /EM <18 18 18 18 7e 3c 18 00> def % char SUB: % ........ % ...##... % ....##.. % #######. % ....##.. % ...##... % ........ % ........ /SUB <00 18 0c fe 0c 18 00 00> def % char ESC: % ........ % ..##.... % .##..... % #######. % .##..... % ..##.... % ........ % ........ /ESC <00 30 60 fe 60 30 00 00> def % char FS: % ........ % ........ % .##..... % .##..... % .##..... % .######. % ........ % ........ /FS <00 00 60 60 60 7e 00 00> def % char GS: % ........ % ..#..#.. % .##..##. % ######## % .##..##. % ..#..#.. % ........ % ........ /GS <00 24 66 ff 66 24 00 00> def % char RS: % ........ % ...#.... % ..###... % .#####.. % #######. % #######. % ........ % ........ /RS <00 10 38 7c fe fe 00 00> def % char US: % ........ % #######. % #######. % .#####.. % ..###... % ...#.... % ........ % ........ /US <00 fe fe 7c 38 10 00 00> def % % Unknown fonts. % % char c158: % #####... % ##..##.. % ##..##.. % #####.#. % ##...##. % ##..#### % ##...##. % ##...### /c158 def % char c169: % ........ % ........ % ........ % ######.. % ##...... % ##...... % ........ % ........ /c169 <00 00 00 fc c0 c0 00 00> def % char c170: % ........ % ........ % ........ % ######.. % ....##.. % ....##.. % ........ % ........ /c170 <00 00 00 fc 0c 0c 00 00> def % char c176: % ..#...#. % #...#... % ..#...#. % #...#... % ..#...#. % #...#... % ..#...#. % #...#... /c176 <22 88 22 88 22 88 22 88> def % char c177: % .#.#.#.# % #.#.#.#. % .#.#.#.# % #.#.#.#. % .#.#.#.# % #.#.#.#. % .#.#.#.# % #.#.#.#. /c177 <55 aa 55 aa 55 aa 55 aa> def % char c178: % ##.##.## % .###.### % ##.##.## % ###.###. % ##.##.## % .###.### % ##.##.## % ###.###. /c178 def % char c179: % ...##... % ...##... % ...##... % ...##... % ...##... % ...##... % ...##... % ...##... /c179 <18 18 18 18 18 18 18 18> def % char c180: % ...##... % ...##... % ...##... % ...##... % #####... % ...##... % ...##... % ...##... /c180 <18 18 18 18 f8 18 18 18> def % char c181: % ...##... % ...##... % #####... % ...##... % #####... % ...##... % ...##... % ...##... /c181 <18 18 f8 18 f8 18 18 18> def % char c182: % ..##.##. % ..##.##. % ..##.##. % ..##.##. % ####.##. % ..##.##. % ..##.##. % ..##.##. /c182 <36 36 36 36 f6 36 36 36> def % char c183: % ........ % ........ % ........ % ........ % #######. % ..##.##. % ..##.##. % ..##.##. /c183 <00 00 00 00 fe 36 36 36> def % char c184: % ........ % ........ % #####... % ...##... % #####... % ...##... % ...##... % ...##... /c184 <00 00 f8 18 f8 18 18 18> def % char c185: % ..##.##. % ..##.##. % ####.##. % .....##. % ####.##. % ..##.##. % ..##.##. % ..##.##. /c185 <36 36 f6 06 f6 36 36 36> def % char c186: % ..##.##. % ..##.##. % ..##.##. % ..##.##. % ..##.##. % ..##.##. % ..##.##. % ..##.##. /c186 <36 36 36 36 36 36 36 36> def % char c187: % ........ % ........ % #######. % .....##. % ####.##. % ..##.##. % ..##.##. % ..##.##. /c187 <00 00 fe 06 f6 36 36 36> def % char c188: % ..##.##. % ..##.##. % ####.##. % .....##. % #######. % ........ % ........ % ........ /c188 <36 36 f6 06 fe 00 00 00> def % char c189: % ..##.##. % ..##.##. % ..##.##. % ..##.##. % #######. % ........ % ........ % ........ /c189 <36 36 36 36 fe 00 00 00> def % char c190: % ...##... % ...##... % #####... % ...##... % #####... % ........ % ........ % ........ /c190 <18 18 f8 18 f8 00 00 00> def % char c191: % ........ % ........ % ........ % ........ % #####... % ...##... % ...##... % ...##... /c191 <00 00 00 00 f8 18 18 18> def % char c192: % ...##... % ...##... % ...##... % ...##... % ...##### % ........ % ........ % ........ /c192 <18 18 18 18 1f 00 00 00> def % char c193: % ...##... % ...##... % ...##... % ...##... % ######## % ........ % ........ % ........ /c193 <18 18 18 18 ff 00 00 00> def % char c194: % ........ % ........ % ........ % ........ % ######## % ...##... % ...##... % ...##... /c194 <00 00 00 00 ff 18 18 18> def % char c195: % ...##... % ...##... % ...##... % ...##... % ...##### % ...##... % ...##... % ...##... /c195 <18 18 18 18 1f 18 18 18> def % char c196: % ........ % ........ % ........ % ........ % ######## % ........ % ........ % ........ /c196 <00 00 00 00 ff 00 00 00> def % char c197: % ...##... % ...##... % ...##... % ...##... % ######## % ...##... % ...##... % ...##... /c197 <18 18 18 18 ff 18 18 18> def % char c198: % ...##... % ...##... % ...##### % ...##... % ...##### % ...##... % ...##... % ...##... /c198 <18 18 1f 18 1f 18 18 18> def % char c199: % ..##.##. % ..##.##. % ..##.##. % ..##.##. % ..##.### % ..##.##. % ..##.##. % ..##.##. /c199 <36 36 36 36 37 36 36 36> def % char c200: % ..##.##. % ..##.##. % ..##.### % ..##.... % ..###### % ........ % ........ % ........ /c200 <36 36 37 30 3f 00 00 00> def % char c201: % ........ % ........ % ..###### % ..##.... % ..##.### % ..##.##. % ..##.##. % ..##.##. /c201 <00 00 3f 30 37 36 36 36> def % char c202: % ..##.##. % ..##.##. % ####.### % ........ % ######## % ........ % ........ % ........ /c202 <36 36 f7 00 ff 00 00 00> def % char c203: % ........ % ........ % ######## % ........ % ####.### % ..##.##. % ..##.##. % ..##.##. /c203 <00 00 ff 00 f7 36 36 36> def % char c204: % ..##.##. % ..##.##. % ..##.### % ..##.... % ..##.### % ..##.##. % ..##.##. % ..##.##. /c204 <36 36 37 30 37 36 36 36> def % char c205: % ........ % ........ % ######## % ........ % ######## % ........ % ........ % ........ /c205 <00 00 ff 00 ff 00 00 00> def % char c206: % ..##.##. % ..##.##. % ####.### % ........ % ####.### % ..##.##. % ..##.##. % ..##.##. /c206 <36 36 f7 00 f7 36 36 36> def % char c207: % ...##... % ...##... % ######## % ........ % ######## % ........ % ........ % ........ /c207 <18 18 ff 00 ff 00 00 00> def % char c208: % ..##.##. % ..##.##. % ..##.##. % ..##.##. % ######## % ........ % ........ % ........ /c208 <36 36 36 36 ff 00 00 00> def % char c209: % ........ % ........ % ######## % ........ % ######## % ...##... % ...##... % ...##... /c209 <00 00 ff 00 ff 18 18 18> def % char c210: % ........ % ........ % ........ % ........ % ######## % ..##.##. % ..##.##. % ..##.##. /c210 <00 00 00 00 ff 36 36 36> def % char c211: % ..##.##. % ..##.##. % ..##.##. % ..##.##. % ..###### % ........ % ........ % ........ /c211 <36 36 36 36 3f 00 00 00> def % char c212: % ...##... % ...##... % ...##### % ...##... % ...##### % ........ % ........ % ........ /c212 <18 18 1f 18 1f 00 00 00> def % char c213: % ........ % ........ % ...##### % ...##... % ...##### % ...##... % ...##... % ...##... /c213 <00 00 1f 18 1f 18 18 18> def % char c214: % ........ % ........ % ........ % ........ % ..###### % ..##.##. % ..##.##. % ..##.##. /c214 <00 00 00 00 3f 36 36 36> def % char c215: % ..##.##. % ..##.##. % ..##.##. % ..##.##. % ######## % ..##.##. % ..##.##. % ..##.##. /c215 <36 36 36 36 ff 36 36 36> def % char c216: % ...##... % ...##... % ######## % ...##... % ######## % ...##... % ...##... % ...##... /c216 <18 18 ff 18 ff 18 18 18> def % char c217: % ...##... % ...##... % ...##... % ...##... % #####... % ........ % ........ % ........ /c217 <18 18 18 18 f8 00 00 00> def % char c218: % ........ % ........ % ........ % ........ % ...##### % ...##... % ...##... % ...##... /c218 <00 00 00 00 1f 18 18 18> def % char c219: % ######## % ######## % ######## % ######## % ######## % ######## % ######## % ######## /c219 def % char c220: % ........ % ........ % ........ % ........ % ######## % ######## % ######## % ######## /c220 <00 00 00 00 ff ff ff ff> def % char c221: % ####.... % ####.... % ####.... % ####.... % ####.... % ####.... % ####.... % ####.... /c221 def % char c222: % ....#### % ....#### % ....#### % ....#### % ....#### % ....#### % ....#### % ....#### /c222 <0f 0f 0f 0f 0f 0f 0f 0f> def % char c223: % ######## % ######## % ######## % ######## % ........ % ........ % ........ % ........ /c223 def % char c229: % ........ % ........ % .######. % ##.##... % ##.##... % ##.##... % .###.... % ........ /c229 <00 00 7e d8 d8 d8 70 00> def % char c231: % ........ % .###.##. % ##.###.. % ...##... % ...##... % ...##... % ...##... % ........ /c231 <00 76 dc 18 18 18 18 00> def % char c232: % ######.. % ..##.... % .####... % ##..##.. % ##..##.. % .####... % ..##.... % ######.. /c232 def % char c233: % ..###... % .##.##.. % ##...##. % #######. % ##...##. % .##.##.. % ..###... % ........ /c233 <38 6c c6 fe c6 6c 38 00> def % char c235: % ...###.. % ..##.... % ...##... % .#####.. % ##..##.. % ##..##.. % .####... % ........ /c235 <1c 30 18 7c cc cc 78 00> def % char c236: % ........ % ........ % .######. % ##.##.## % ##.##.## % .######. % ........ % ........ /c236 <00 00 7e db db 7e 00 00> def % char c237: % .....##. % ....##.. % .######. % ##.##.## % ##.##.## % .######. % .##..... % ##...... /c237 <06 0c 7e db db 7e 60 c0> def % char c238: % ..####.. % .##..... % ##...... % ######.. % ##...... % .##..... % ..####.. % ........ /c238 <3c 60 c0 fc c0 60 3c 00> def % char c239: % .####... % ##..##.. % ##..##.. % ##..##.. % ##..##.. % ##..##.. % ##..##.. % ........ /c239 <78 cc cc cc cc cc cc 00> def % char c240: % ........ % ######.. % ........ % ######.. % ........ % ######.. % ........ % ........ /c240 <00 fc 00 fc 00 fc 00 00> def % char c244: % ....###. % ...##.## % ...##.## % ...##... % ...##... % ...##... % ...##... % ...##... /c244 <0e 1b 1b 18 18 18 18 18> def % char c245: % ...##... % ...##... % ...##... % ...##... % ...##... % ##.##... % ##.##... % .###.... /c245 <18 18 18 18 18 d8 d8 70> def % char c249: % ........ % ........ % ........ % ...##... % ...##... % ........ % ........ % ........ /c249 <00 00 00 18 18 00 00 00> def % char c250: % ........ % ........ % ........ % ........ % ...##... % ........ % ........ % ........ /c250 <00 00 00 00 18 00 00 00> def % char c251: % ....#### % ....##.. % ....##.. % ....##.. % ###.##.. % .##.##.. % ..####.. % ...###.. /c251 <0f 0c 0c 0c ec 6c 3c 1c> def % char c252: % .####... % .##.##.. % .##.##.. % .##.##.. % .##.##.. % ........ % ........ % ........ /c252 <78 6c 6c 6c 6c 00 00 00> def % char c254: % ........ % ........ % ..####.. % ..####.. % ..####.. % ..####.. % ........ % ........ /c254 <00 00 3c 3c 3c 3c 00 00> def % char c255: % ........ % ........ % ........ % ........ % ........ % ........ % ........ % ........ /c255 <00 00 00 00 00 00 00 00> def end /BuildGlyph { 1 index begin userdict begin 800 0 0 0 800 800 setcachedevice 0 setcachelimit exch /CharInfo get exch 2 copy known not { pop /.notdef } if get % char_def_string=cds 0 1 7 { % cds y 2 copy get % cds y char_def_line=cdl 0 1 7 { % cds y cdl x 2 copy % cds y cdl x cdl x neg bitshift % cds y cdl x bit_n 2 mod % cds y cdl x bit_n 0 ne { % cds y cdl x 7 exch sub % cds y cdl 7-x 100 mul 50 add % cds y cdl xcoord rand % cds y cdl xcoord random matrixxrandom mod % cds y cdl xcoord randomx matrixxrandom 2 div % cds y cdl xcoord randomx xrandom/2 sub add % cds y cdl xcoord 2 index % cds y cdl xcoord y 7 exch sub % cds y cdl 7-x 7-y 100 mul 50 add % cds y cdl xcoord ycoord rand % cds y cdl xcoord ycoord random matrixyrandom mod % cds y cdl xcoord ycoord randomy matrixyrandom 2 div % cds y cdl xcoord ycoord randomy yramdom/2 sub add % cds y cdl xcoord ycoord matrixbasedotsize % cds y cdl xcoord ycoord basedotsize rand % cds y cdl xcoord ycoord bds random matrixdotrandom mod % cds y cdl xcoord ycoord bds randomdot matrixdotrandom 2 div % cds y cdl xcrd ycrd bds randomdot randomdot/2 sub add % cds y cdl xcoord ycoord dotsize 0 360 % cds y cdl xcoord ycoord dotsize 0 360 newpath % cds y cdl xcoord ycoord dotsize 0 360 arc % cds y cdl closepath fill % cds y cdl } { pop } ifelse % cds y cdl } for % cds y cdl pop pop % cds } for pop end end } bind def /BuildChar { 1 index /Encoding get exch get 1 index /BuildGlyph get exec } bind def end /Matrix MatrixFont definefont pop %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % End of Font %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% enscript-1.6.5.90/afm/agwo.afm0000644000175000017500000004300011132443251012700 00000000000000StartFontMetrics 2.0 Comment Copyright (c) 1985, 1987, 1989, 1990, 1991 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Mon Mar 4 13:41:11 1991 Comment UniqueID 34367 Comment VMusage 6555 39267 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 001.006 Notice Copyright (c) 1985, 1987, 1989, 1990, 1991 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 StartCharMetrics 228 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 280 -100 510 740 ; 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 0 ; C 205 ; WX 552 ; N hungarumlaut ; B 239 605 594 800 ; 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 650 ; N ecircumflex ; B 84 -13 664 764 ; C -1 ; WX 650 ; N edieresis ; B 84 -13 664 765 ; C -1 ; WX 683 ; N aacute ; B 88 -13 722 786 ; C -1 ; WX 747 ; N registered ; B 53 -12 830 752 ; C -1 ; WX 200 ; N icircumflex ; B 41 0 395 764 ; C -1 ; WX 608 ; N udieresis ; B 100 -13 642 765 ; C -1 ; WX 655 ; N ograve ; B 88 -13 669 786 ; C -1 ; WX 608 ; N uacute ; B 100 -13 642 786 ; C -1 ; WX 608 ; N ucircumflex ; B 100 -13 642 764 ; C -1 ; WX 740 ; N Aacute ; B 12 0 729 949 ; C -1 ; WX 200 ; N igrave ; B 65 0 296 786 ; C -1 ; WX 226 ; N Icircumflex ; B 76 0 439 927 ; C -1 ; WX 647 ; N ccedilla ; B 87 -222 678 561 ; C -1 ; WX 683 ; N adieresis ; B 88 -13 722 765 ; C -1 ; WX 536 ; N Ecircumflex ; B 70 0 612 927 ; C -1 ; WX 388 ; N scaron ; B 49 -13 508 764 ; C -1 ; WX 682 ; N thorn ; B 28 -192 699 740 ; C -1 ; WX 1000 ; N trademark ; B 137 296 953 740 ; C -1 ; WX 650 ; N egrave ; B 84 -13 664 786 ; C -1 ; WX 332 ; N threesuperior ; B 98 289 408 747 ; C -1 ; WX 425 ; N zcaron ; B 10 0 527 764 ; C -1 ; WX 683 ; N atilde ; B 88 -13 722 754 ; C -1 ; WX 683 ; N aring ; B 88 -13 722 807 ; C -1 ; WX 655 ; N ocircumflex ; B 88 -13 669 764 ; C -1 ; WX 536 ; N Edieresis ; B 70 0 612 928 ; C -1 ; WX 831 ; N threequarters ; B 126 0 825 747 ; C -1 ; WX 536 ; N ydieresis ; B 97 -192 624 765 ; C -1 ; WX 536 ; N yacute ; B 97 -192 624 786 ; C -1 ; WX 200 ; N iacute ; B 65 0 397 786 ; C -1 ; WX 740 ; N Acircumflex ; B 12 0 729 927 ; C -1 ; WX 655 ; N Uacute ; B 118 -13 716 949 ; C -1 ; WX 650 ; N eacute ; B 84 -13 664 786 ; C -1 ; WX 869 ; N Ograve ; B 105 -13 901 949 ; C -1 ; WX 683 ; N agrave ; B 88 -13 722 786 ; C -1 ; WX 655 ; N Udieresis ; B 118 -13 716 928 ; C -1 ; WX 683 ; N acircumflex ; B 88 -13 722 764 ; C -1 ; WX 226 ; N Igrave ; B 76 0 340 949 ; C -1 ; WX 332 ; N twosuperior ; B 74 296 433 747 ; C -1 ; WX 655 ; N Ugrave ; B 118 -13 716 949 ; C -1 ; WX 831 ; N onequarter ; B 183 0 770 740 ; C -1 ; WX 655 ; N Ucircumflex ; B 118 -13 716 927 ; C -1 ; WX 498 ; N Scaron ; B 57 -13 593 927 ; C -1 ; WX 226 ; N Idieresis ; B 76 0 396 928 ; C -1 ; WX 200 ; N idieresis ; B 65 0 353 765 ; C -1 ; WX 536 ; N Egrave ; B 70 0 612 949 ; C -1 ; WX 869 ; N Oacute ; B 105 -13 901 949 ; C -1 ; WX 606 ; N divide ; B 92 -13 608 519 ; C -1 ; WX 740 ; N Atilde ; B 12 0 729 917 ; C -1 ; WX 740 ; N Aring ; B 12 0 729 955 ; C -1 ; WX 869 ; N Odieresis ; B 105 -13 901 928 ; C -1 ; WX 740 ; N Adieresis ; B 12 0 729 928 ; C -1 ; WX 740 ; N Ntilde ; B 75 0 801 917 ; C -1 ; WX 480 ; N Zcaron ; B 12 0 596 927 ; C -1 ; WX 592 ; N Thorn ; B 60 0 621 740 ; C -1 ; WX 226 ; N Iacute ; B 76 0 440 949 ; C -1 ; WX 606 ; N plusminus ; B 47 -24 618 518 ; C -1 ; WX 606 ; N multiply ; B 87 24 612 482 ; C -1 ; WX 536 ; N Eacute ; B 70 0 612 949 ; C -1 ; WX 592 ; N Ydieresis ; B 138 0 729 928 ; C -1 ; WX 332 ; N onesuperior ; B 190 296 335 740 ; C -1 ; WX 608 ; N ugrave ; B 100 -13 642 786 ; C -1 ; WX 606 ; N logicalnot ; B 110 109 627 388 ; C -1 ; WX 610 ; N ntilde ; B 65 0 609 754 ; C -1 ; WX 869 ; N Otilde ; B 105 -13 901 917 ; C -1 ; WX 655 ; N otilde ; B 88 -13 669 754 ; C -1 ; WX 813 ; N Ccedilla ; B 105 -222 870 752 ; C -1 ; WX 740 ; N Agrave ; B 12 0 729 949 ; C -1 ; WX 831 ; N onehalf ; B 164 0 810 740 ; C -1 ; WX 790 ; N Eth ; B 104 0 813 740 ; C -1 ; WX 400 ; N degree ; B 158 421 451 709 ; C -1 ; WX 592 ; N Yacute ; B 138 0 729 949 ; C -1 ; WX 869 ; N Ocircumflex ; B 105 -13 901 927 ; C -1 ; WX 655 ; N oacute ; B 88 -13 669 786 ; C -1 ; WX 608 ; N mu ; B 46 -184 628 547 ; C -1 ; WX 606 ; N minus ; B 92 219 608 287 ; C -1 ; WX 655 ; N eth ; B 88 -12 675 753 ; C -1 ; WX 655 ; N odieresis ; B 88 -13 669 765 ; C -1 ; WX 747 ; N copyright ; B 53 -12 830 752 ; C -1 ; WX 672 ; N brokenbar ; B 280 -100 510 740 ; EndCharMetrics StartKernData StartKernPairs 216 KPX A y -62 KPX A w -65 KPX A v -70 KPX A u -20 KPX A quoteright -100 KPX A quotedblright -100 KPX A Y -92 KPX A W -60 KPX A V -102 KPX A U -40 KPX A T -45 KPX A Q -40 KPX A O -50 KPX A G -40 KPX A C -40 KPX B A -10 KPX C A -40 KPX D period -20 KPX D comma -20 KPX D Y -30 KPX D W -10 KPX D V -50 KPX D A -50 KPX F period -160 KPX F e -20 KPX F comma -180 KPX F a -20 KPX F A -75 KPX G period -20 KPX G comma -20 KPX G Y -20 KPX J period -15 KPX J a -20 KPX J A -30 KPX K o -15 KPX K e -20 KPX K O -20 KPX L y -23 KPX L quoteright -130 KPX L quotedblright -130 KPX L Y -91 KPX L W -67 KPX L V -113 KPX L T -46 KPX O period -30 KPX O comma -30 KPX O Y -30 KPX O X -30 KPX O W -20 KPX O V -60 KPX O T -30 KPX O A -60 KPX P period -300 KPX P o -60 KPX P e -20 KPX P comma -280 KPX P a -20 KPX P A -114 KPX Q comma 20 KPX R Y -10 KPX R W 10 KPX R V -10 KPX R T 6 KPX S comma 20 KPX T y -50 KPX T w -55 KPX T u -46 KPX T semicolon -29 KPX T r -30 KPX T period -91 KPX T o -70 KPX T i 10 KPX T hyphen -75 KPX T e -49 KPX T comma -82 KPX T colon -15 KPX T a -90 KPX T O -30 KPX T A -45 KPX U period -20 KPX U comma -20 KPX U A -40 KPX V u -40 KPX V semicolon -33 KPX V period -165 KPX V o -101 KPX V i -5 KPX V hyphen -75 KPX V e -101 KPX V comma -145 KPX V colon -18 KPX V a -104 KPX V O -60 KPX V G -20 KPX V A -102 KPX W y -2 KPX W u -30 KPX W semicolon -33 KPX W period -106 KPX W o -46 KPX W i 6 KPX W hyphen -35 KPX W e -47 KPX W comma -106 KPX W colon -15 KPX W a -50 KPX W O -20 KPX W A -58 KPX Y u -52 KPX Y semicolon -23 KPX Y period -175 KPX Y o -89 KPX Y hyphen -85 KPX Y e -89 KPX Y comma -145 KPX Y colon -10 KPX Y a -93 KPX Y O -30 KPX Y A -92 KPX a p 20 KPX a b 20 KPX b y -20 KPX b v -20 KPX c y -20 KPX c k -15 KPX comma space -110 KPX comma quoteright -120 KPX comma quotedblright -120 KPX e y -20 KPX e w -20 KPX e v -20 KPX f period -50 KPX f o -40 KPX f l -30 KPX f i -34 KPX f f -60 KPX f e -20 KPX f dotlessi -34 KPX f comma -50 KPX f a -40 KPX g a -15 KPX h y -30 KPX k y -5 KPX k e -15 KPX m y -20 KPX m u -20 KPX m a -20 KPX n y -15 KPX n v -20 KPX o y -20 KPX o x -15 KPX o w -20 KPX o v -30 KPX p y -20 KPX period space -110 KPX period quoteright -120 KPX period quotedblright -120 KPX quotedblleft quoteleft -35 KPX quotedblleft A -100 KPX quotedblright space -110 KPX quoteleft quoteleft -203 KPX quoteleft A -100 KPX quoteright v -30 KPX quoteright t 10 KPX quoteright space -110 KPX quoteright s -15 KPX quoteright r -20 KPX quoteright quoteright -203 KPX quoteright quotedblright -35 KPX quoteright d -110 KPX r y 40 KPX r v 40 KPX r u 20 KPX r t 20 KPX r s 20 KPX r q -8 KPX r period -73 KPX r p 20 KPX r o -20 KPX r n 21 KPX r m 28 KPX r l 20 KPX r k 20 KPX r i 20 KPX r hyphen -60 KPX r g -15 KPX r e -4 KPX r d -6 KPX r comma -75 KPX r c -20 KPX r a -20 KPX s period 20 KPX s comma 20 KPX space quoteleft -110 KPX space quotedblleft -110 KPX space Y -60 KPX space W -25 KPX space V -50 KPX space T -25 KPX space A -20 KPX v period -130 KPX v o -30 KPX v e -20 KPX v comma -100 KPX v a -30 KPX w period -100 KPX w o -30 KPX w h 15 KPX w e -20 KPX w comma -90 KPX w a -30 KPX y period -125 KPX y o -30 KPX y e -20 KPX y comma -110 KPX y a -30 EndKernPairs EndKernData StartComposites 56 CC Aacute 2 ; PCC A 0 0 ; PCC acute 213 163 ; CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 149 163 ; CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 216 163 ; CC Agrave 2 ; PCC A 0 0 ; PCC grave 211 163 ; CC Aring 2 ; PCC A 0 0 ; PCC ring 231 148 ; CC Atilde 2 ; PCC A 0 0 ; PCC tilde 181 163 ; CC Eacute 2 ; PCC E 0 0 ; PCC acute 111 163 ; CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 47 163 ; CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 114 163 ; CC Egrave 2 ; PCC E 0 0 ; PCC grave 109 163 ; CC Iacute 2 ; PCC I 0 0 ; PCC acute -4 163 ; CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex -108 163 ; CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis -41 163 ; CC Igrave 2 ; PCC I 0 0 ; PCC grave -86 163 ; CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 181 163 ; CC Oacute 2 ; PCC O 0 0 ; PCC acute 277 163 ; CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 214 163 ; CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 280 163 ; CC Ograve 2 ; PCC O 0 0 ; PCC grave 276 163 ; CC Otilde 2 ; PCC O 0 0 ; PCC tilde 245 163 ; CC Scaron 2 ; PCC S 0 0 ; PCC caron 28 163 ; CC Uacute 2 ; PCC U 0 0 ; PCC acute 190 163 ; CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 107 163 ; CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 173 163 ; CC Ugrave 2 ; PCC U 0 0 ; PCC grave 149 163 ; CC Yacute 2 ; PCC Y 0 0 ; PCC acute 159 163 ; CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 142 163 ; CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 19 163 ; CC aacute 2 ; PCC a 0 0 ; PCC acute 154 0 ; CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 91 0 ; CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 157 0 ; CC agrave 2 ; PCC a 0 0 ; PCC grave 153 0 ; CC aring 2 ; PCC a 0 0 ; PCC ring 176 0 ; CC atilde 2 ; PCC a 0 0 ; PCC tilde 122 0 ; CC eacute 2 ; PCC e 0 0 ; PCC acute 138 0 ; CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 74 0 ; CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 141 0 ; CC egrave 2 ; PCC e 0 0 ; PCC grave 136 0 ; CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -47 0 ; CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -151 0 ; CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -84 0 ; CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -129 0 ; CC ntilde 2 ; PCC n 0 0 ; PCC tilde 86 0 ; CC oacute 2 ; PCC o 0 0 ; PCC acute 140 0 ; CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 77 0 ; CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 143 0 ; CC ograve 2 ; PCC o 0 0 ; PCC grave 139 0 ; CC otilde 2 ; PCC o 0 0 ; PCC tilde 108 0 ; CC scaron 2 ; PCC s 0 0 ; PCC caron -57 0 ; CC uacute 2 ; PCC u 0 0 ; PCC acute 137 0 ; CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 53 0 ; CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 120 0 ; CC ugrave 2 ; PCC u 0 0 ; PCC grave 95 0 ; CC yacute 2 ; PCC y 0 0 ; PCC acute 101 0 ; CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 84 0 ; CC zcaron 2 ; PCC z 0 0 ; PCC caron -38 0 ; EndComposites EndFontMetrics enscript-1.6.5.90/afm/hvcdo.afm0000644000175000017500000003663711132443251013070 00000000000000StartFontMetrics 2.0 Comment Copyright (c) 1985, 1987, 1991 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Wed Sep 4 17:59:46 1991 Comment UniqueID 36200 Comment VMusage 7672 41967 FontName Helvetica-Condensed-Oblique FullName Helvetica Condensed Oblique FamilyName Helvetica Weight Medium ItalicAngle -12 IsFixedPitch false FontBBox -174 -250 1118 990 UnderlinePosition -100 UnderlineThickness 50 Version 001.003 Notice Copyright (c) 1985, 1987, 1991 Adobe Systems Incorporated. All Rights Reserved.Helvetica is a trademark of Linotype-Hell AG and/or its subsidiaries. EncodingScheme AdobeStandardEncoding CapHeight 750 XHeight 556 Ascender 750 Descender -188 StartCharMetrics 228 C 32 ; WX 250 ; N space ; B 0 0 0 0 ; C 33 ; WX 333 ; N exclam ; B 121 0 371 750 ; C 34 ; WX 250 ; N quotedbl ; B 153 513 364 739 ; C 35 ; WX 500 ; N numbersign ; B 33 0 621 750 ; C 36 ; WX 500 ; N dollar ; B 69 -116 569 815 ; C 37 ; WX 833 ; N percent ; B 164 -15 803 750 ; C 38 ; WX 667 ; N ampersand ; B 111 -18 648 750 ; C 39 ; WX 222 ; N quoteright ; B 171 504 317 750 ; C 40 ; WX 333 ; N parenleft ; B 115 -215 443 750 ; C 41 ; WX 333 ; N parenright ; B 3 -215 331 750 ; C 42 ; WX 500 ; N asterisk ; B 229 455 537 750 ; C 43 ; WX 500 ; N plus ; B 91 0 518 505 ; C 44 ; WX 250 ; N comma ; B 49 -146 192 100 ; C 45 ; WX 333 ; N hyphen ; B 103 275 364 358 ; C 46 ; WX 250 ; N period ; B 80 0 192 100 ; C 47 ; WX 278 ; N slash ; B -19 -27 450 750 ; C 48 ; WX 500 ; N zero ; B 98 -15 563 750 ; C 49 ; WX 500 ; N one ; B 190 0 476 750 ; C 50 ; WX 500 ; N two ; B 44 0 562 750 ; C 51 ; WX 500 ; N three ; B 73 -15 552 750 ; C 52 ; WX 500 ; N four ; B 68 0 543 750 ; C 53 ; WX 500 ; N five ; B 75 -15 575 735 ; C 54 ; WX 500 ; N six ; B 91 -15 566 750 ; C 55 ; WX 500 ; N seven ; B 116 0 612 735 ; C 56 ; WX 500 ; N eight ; B 83 -15 559 750 ; C 57 ; WX 500 ; N nine ; B 91 -15 566 750 ; C 58 ; WX 250 ; N colon ; B 80 0 287 547 ; C 59 ; WX 250 ; N semicolon ; B 49 -146 287 547 ; C 60 ; WX 500 ; N less ; B 89 -10 569 518 ; C 61 ; WX 500 ; N equal ; B 70 124 539 384 ; C 62 ; WX 500 ; N greater ; B 40 -10 520 518 ; C 63 ; WX 500 ; N question ; B 169 0 586 750 ; C 64 ; WX 800 ; N at ; B 106 -15 863 750 ; C 65 ; WX 556 ; N A ; B 11 0 546 750 ; C 66 ; WX 556 ; N B ; B 80 0 610 750 ; C 67 ; WX 556 ; N C ; B 106 -18 624 765 ; C 68 ; WX 611 ; N D ; B 82 0 653 750 ; C 69 ; WX 500 ; N E ; B 74 0 608 750 ; C 70 ; WX 444 ; N F ; B 74 0 585 750 ; C 71 ; WX 611 ; N G ; B 109 -18 646 765 ; C 72 ; WX 611 ; N H ; B 79 0 691 750 ; C 73 ; WX 278 ; N I ; B 98 0 340 750 ; C 74 ; WX 444 ; N J ; B 52 -15 527 750 ; C 75 ; WX 556 ; N K ; B 79 0 698 750 ; C 76 ; WX 500 ; N L ; B 83 0 488 750 ; C 77 ; WX 778 ; N M ; B 76 0 861 750 ; C 78 ; WX 611 ; N N ; B 77 0 693 750 ; C 79 ; WX 611 ; N O ; B 116 -18 658 765 ; C 80 ; WX 556 ; N P ; B 86 0 641 750 ; C 81 ; WX 611 ; N Q ; B 116 -34 659 765 ; C 82 ; WX 611 ; N R ; B 86 0 655 750 ; C 83 ; WX 556 ; N S ; B 86 -18 611 765 ; C 84 ; WX 500 ; N T ; B 158 0 645 750 ; C 85 ; WX 611 ; N U ; B 114 -18 690 750 ; C 86 ; WX 556 ; N V ; B 170 0 704 750 ; C 87 ; WX 833 ; N W ; B 176 0 975 750 ; C 88 ; WX 556 ; N X ; B 17 0 692 750 ; C 89 ; WX 556 ; N Y ; B 170 0 705 750 ; C 90 ; WX 500 ; N Z ; B 28 0 627 750 ; C 91 ; WX 333 ; N bracketleft ; B 56 -209 434 750 ; C 92 ; WX 250 ; N backslash ; B 128 0 281 750 ; C 93 ; WX 333 ; N bracketright ; B 14 -209 392 750 ; C 94 ; WX 500 ; N asciicircum ; B 141 333 502 750 ; C 95 ; WX 500 ; N underscore ; B -27 -125 484 -75 ; C 96 ; WX 222 ; N quoteleft ; B 175 521 321 767 ; C 97 ; WX 444 ; N a ; B 55 -15 465 571 ; C 98 ; WX 500 ; N b ; B 75 -15 525 750 ; C 99 ; WX 444 ; N c ; B 85 -15 488 571 ; C 100 ; WX 500 ; N d ; B 88 -15 583 750 ; C 101 ; WX 444 ; N e ; B 86 -15 476 571 ; C 102 ; WX 278 ; N f ; B 93 0 418 752 ; L i fi ; L l fl ; C 103 ; WX 500 ; N g ; B 53 -189 544 571 ; C 104 ; WX 500 ; N h ; B 73 0 524 750 ; C 105 ; WX 222 ; N i ; B 72 0 310 750 ; C 106 ; WX 222 ; N j ; B -27 -190 313 750 ; C 107 ; WX 444 ; N k ; B 69 0 552 750 ; C 108 ; WX 222 ; N l ; B 72 0 310 750 ; C 109 ; WX 778 ; N m ; B 76 0 799 571 ; C 110 ; WX 500 ; N n ; B 73 0 524 571 ; C 111 ; WX 500 ; N o ; B 96 -15 524 571 ; C 112 ; WX 500 ; N p ; B 32 -188 524 571 ; C 113 ; WX 500 ; N q ; B 100 -184 544 571 ; C 114 ; WX 333 ; N r ; B 81 0 441 563 ; C 115 ; WX 444 ; N s ; B 68 -15 473 571 ; C 116 ; WX 278 ; N t ; B 101 0 375 707 ; C 117 ; WX 500 ; N u ; B 99 -15 542 556 ; C 118 ; WX 444 ; N v ; B 131 0 549 556 ; C 119 ; WX 667 ; N w ; B 137 0 767 556 ; C 120 ; WX 444 ; N x ; B 9 0 548 556 ; C 121 ; WX 444 ; N y ; B -13 -190 543 556 ; C 122 ; WX 389 ; N z ; B 24 0 482 556 ; C 123 ; WX 274 ; N braceleft ; B 77 -95 425 750 ; C 124 ; WX 250 ; N bar ; B 40 -250 316 750 ; C 125 ; WX 274 ; N braceright ; B -12 -95 337 750 ; C 126 ; WX 500 ; N asciitilde ; B 89 166 520 345 ; C 161 ; WX 333 ; N exclamdown ; B 83 -179 333 571 ; C 162 ; WX 500 ; N cent ; B 94 -137 499 667 ; C 163 ; WX 500 ; N sterling ; B 40 -15 589 750 ; C 164 ; WX 167 ; N fraction ; B -174 0 500 750 ; C 165 ; WX 500 ; N yen ; B 88 0 677 750 ; C 166 ; WX 500 ; N florin ; B -28 -192 645 750 ; C 167 ; WX 500 ; N section ; B 51 -208 552 750 ; C 168 ; WX 500 ; N currency ; B 51 50 576 553 ; C 169 ; WX 250 ; N quotesingle ; B 208 513 308 739 ; C 170 ; WX 389 ; N quotedblleft ; B 173 521 490 767 ; C 171 ; WX 500 ; N guillemotleft ; B 145 125 520 495 ; C 172 ; WX 278 ; N guilsinglleft ; B 124 125 320 495 ; C 173 ; WX 278 ; N guilsinglright ; B 90 125 286 495 ; C 174 ; WX 500 ; N fi ; B 93 0 584 752 ; C 175 ; WX 500 ; N fl ; B 93 0 584 752 ; C 177 ; WX 500 ; N endash ; B 58 275 573 345 ; C 178 ; WX 500 ; N dagger ; B 137 -176 573 750 ; C 179 ; WX 500 ; N daggerdbl ; B 50 -176 572 750 ; C 180 ; WX 250 ; N periodcentered ; B 123 204 236 304 ; C 182 ; WX 440 ; N paragraph ; B 113 -116 550 750 ; C 183 ; WX 333 ; N bullet ; B 91 222 401 529 ; C 184 ; WX 222 ; N quotesinglbase ; B 33 -146 179 100 ; C 185 ; WX 389 ; N quotedblbase ; B 31 -146 348 100 ; C 186 ; WX 389 ; N quotedblright ; B 169 504 486 750 ; C 187 ; WX 500 ; N guillemotright ; B 112 125 487 495 ; C 188 ; WX 1000 ; N ellipsis ; B 121 0 899 100 ; C 189 ; WX 1111 ; N perthousand ; B 157 -16 1118 750 ; C 191 ; WX 500 ; N questiondown ; B 33 -190 450 559 ; C 193 ; WX 333 ; N grave ; B 198 624 366 765 ; C 194 ; WX 333 ; N acute ; B 233 624 461 765 ; C 195 ; WX 333 ; N circumflex ; B 154 624 446 765 ; C 196 ; WX 333 ; N tilde ; B 132 633 496 749 ; C 197 ; WX 333 ; N macron ; B 150 657 475 715 ; C 198 ; WX 333 ; N breve ; B 172 629 484 765 ; C 199 ; WX 250 ; N dotaccent ; B 224 650 324 750 ; C 200 ; WX 333 ; N dieresis ; B 190 650 440 750 ; C 202 ; WX 250 ; N ring ; B 169 593 377 796 ; C 203 ; WX 333 ; N cedilla ; B 23 -224 255 0 ; C 205 ; WX 333 ; N hungarumlaut ; B 194 624 603 765 ; C 206 ; WX 333 ; N ogonek ; B -23 -191 188 13 ; C 207 ; WX 333 ; N caron ; B 184 624 476 765 ; C 208 ; WX 1000 ; N emdash ; B 58 275 1073 345 ; C 225 ; WX 833 ; N AE ; B 0 0 944 750 ; C 227 ; WX 300 ; N ordfeminine ; B 129 413 392 765 ; C 232 ; WX 500 ; N Lslash ; B 39 0 488 750 ; C 233 ; WX 611 ; N Oslash ; B 25 -43 738 796 ; C 234 ; WX 833 ; N OE ; B 113 -18 946 765 ; C 235 ; WX 300 ; N ordmasculine ; B 138 413 413 765 ; C 241 ; WX 667 ; N ae ; B 50 -15 711 571 ; C 245 ; WX 222 ; N dotlessi ; B 72 0 269 556 ; C 248 ; WX 222 ; N lslash ; B 59 0 347 750 ; C 249 ; WX 500 ; N oslash ; B 19 -46 591 582 ; C 250 ; WX 722 ; N oe ; B 81 -15 758 571 ; C 251 ; WX 500 ; N germandbls ; B 71 -5 548 765 ; C -1 ; WX 444 ; N ecircumflex ; B 86 -15 502 765 ; C -1 ; WX 444 ; N edieresis ; B 86 -15 496 750 ; C -1 ; WX 444 ; N aacute ; B 55 -15 517 765 ; C -1 ; WX 800 ; N registered ; B 79 -18 881 765 ; C -1 ; WX 222 ; N icircumflex ; B 72 0 391 765 ; C -1 ; WX 500 ; N udieresis ; B 99 -15 542 750 ; C -1 ; WX 500 ; N ograve ; B 96 -15 524 765 ; C -1 ; WX 500 ; N uacute ; B 99 -15 545 765 ; C -1 ; WX 500 ; N ucircumflex ; B 99 -15 542 765 ; C -1 ; WX 556 ; N Aacute ; B 11 0 614 959 ; C -1 ; WX 222 ; N igrave ; B 72 0 311 765 ; C -1 ; WX 278 ; N Icircumflex ; B 98 0 460 959 ; C -1 ; WX 444 ; N ccedilla ; B 79 -224 488 571 ; C -1 ; WX 444 ; N adieresis ; B 55 -15 496 750 ; C -1 ; WX 500 ; N Ecircumflex ; B 74 0 608 959 ; C -1 ; WX 444 ; N scaron ; B 68 -15 532 765 ; C -1 ; WX 500 ; N thorn ; B 32 -188 523 750 ; C -1 ; WX 750 ; N trademark ; B 147 329 878 750 ; C -1 ; WX 444 ; N egrave ; B 86 -15 476 765 ; C -1 ; WX 300 ; N threesuperior ; B 102 291 409 750 ; C -1 ; WX 389 ; N zcaron ; B 24 0 504 765 ; C -1 ; WX 444 ; N atilde ; B 55 -15 552 749 ; C -1 ; WX 444 ; N aring ; B 55 -15 465 826 ; C -1 ; WX 500 ; N ocircumflex ; B 96 -15 530 765 ; C -1 ; WX 500 ; N Edieresis ; B 74 0 608 944 ; C -1 ; WX 750 ; N threequarters ; B 106 0 831 750 ; C -1 ; WX 444 ; N ydieresis ; B -13 -190 543 750 ; C -1 ; WX 444 ; N yacute ; B -13 -190 543 765 ; C -1 ; WX 222 ; N iacute ; B 72 0 406 765 ; C -1 ; WX 556 ; N Acircumflex ; B 11 0 599 959 ; C -1 ; WX 611 ; N Uacute ; B 114 -18 690 959 ; C -1 ; WX 444 ; N eacute ; B 86 -15 517 765 ; C -1 ; WX 611 ; N Ograve ; B 116 -18 658 959 ; C -1 ; WX 444 ; N agrave ; B 55 -15 465 765 ; C -1 ; WX 611 ; N Udieresis ; B 114 -18 690 944 ; C -1 ; WX 444 ; N acircumflex ; B 55 -15 502 765 ; C -1 ; WX 278 ; N Igrave ; B 98 0 380 959 ; C -1 ; WX 300 ; N twosuperior ; B 83 300 413 750 ; C -1 ; WX 611 ; N Ugrave ; B 114 -18 690 959 ; C -1 ; WX 750 ; N onequarter ; B 143 0 817 750 ; C -1 ; WX 611 ; N Ucircumflex ; B 114 -18 690 959 ; C -1 ; WX 556 ; N Scaron ; B 86 -18 629 959 ; C -1 ; WX 278 ; N Idieresis ; B 98 0 455 944 ; C -1 ; WX 222 ; N idieresis ; B 72 0 385 750 ; C -1 ; WX 500 ; N Egrave ; B 74 0 608 959 ; C -1 ; WX 611 ; N Oacute ; B 116 -18 658 959 ; C -1 ; WX 500 ; N divide ; B 91 3 518 505 ; C -1 ; WX 556 ; N Atilde ; B 11 0 649 943 ; C -1 ; WX 556 ; N Aring ; B 11 0 571 990 ; C -1 ; WX 611 ; N Odieresis ; B 116 -18 658 944 ; C -1 ; WX 556 ; N Adieresis ; B 11 0 594 944 ; C -1 ; WX 611 ; N Ntilde ; B 77 0 693 943 ; C -1 ; WX 500 ; N Zcaron ; B 28 0 627 959 ; C -1 ; WX 556 ; N Thorn ; B 86 0 618 750 ; C -1 ; WX 278 ; N Iacute ; B 98 0 475 959 ; C -1 ; WX 500 ; N plusminus ; B 44 0 531 505 ; C -1 ; WX 500 ; N multiply ; B 65 48 544 461 ; C -1 ; WX 500 ; N Eacute ; B 74 0 608 959 ; C -1 ; WX 556 ; N Ydieresis ; B 170 0 705 944 ; C -1 ; WX 300 ; N onesuperior ; B 200 300 392 750 ; C -1 ; WX 500 ; N ugrave ; B 99 -15 542 765 ; C -1 ; WX 500 ; N logicalnot ; B 111 117 539 384 ; C -1 ; WX 500 ; N ntilde ; B 73 0 580 749 ; C -1 ; WX 611 ; N Otilde ; B 116 -18 676 943 ; C -1 ; WX 500 ; N otilde ; B 96 -15 580 749 ; C -1 ; WX 556 ; N Ccedilla ; B 106 -224 624 765 ; C -1 ; WX 556 ; N Agrave ; B 11 0 546 959 ; C -1 ; WX 750 ; N onehalf ; B 91 0 777 750 ; C -1 ; WX 611 ; N Eth ; B 82 0 650 750 ; C -1 ; WX 400 ; N degree ; B 174 450 481 750 ; C -1 ; WX 556 ; N Yacute ; B 170 0 705 959 ; C -1 ; WX 611 ; N Ocircumflex ; B 116 -18 658 959 ; C -1 ; WX 500 ; N oacute ; B 96 -15 545 765 ; C -1 ; WX 500 ; N mu ; B 35 -189 540 556 ; C -1 ; WX 500 ; N minus ; B 91 219 518 289 ; C -1 ; WX 500 ; N eth ; B 96 -15 525 831 ; C -1 ; WX 500 ; N odieresis ; B 96 -15 524 750 ; C -1 ; WX 800 ; N copyright ; B 79 -18 880 765 ; C -1 ; WX 250 ; N brokenbar ; B 56 -175 300 675 ; EndCharMetrics StartKernData StartKernPairs 90 KPX A y -18 KPX A w -18 KPX A v -18 KPX A quoteright -55 KPX A Y -55 KPX A W -37 KPX A V -37 KPX A T -55 KPX F period -111 KPX F comma -111 KPX F A -37 KPX L y -37 KPX L quoteright -92 KPX L Y -92 KPX L W -74 KPX L V -74 KPX L T -74 KPX P period -129 KPX P comma -129 KPX P A -37 KPX R Y -18 KPX R T -18 KPX T y -55 KPX T w -74 KPX T u -74 KPX T semicolon -74 KPX T s -74 KPX T r -74 KPX T period -92 KPX T o -74 KPX T i -18 KPX T hyphen -55 KPX T e -74 KPX T comma -92 KPX T colon -74 KPX T c -74 KPX T a -74 KPX T A -55 KPX V u -18 KPX V semicolon -18 KPX V r -18 KPX V period -92 KPX V o -18 KPX V hyphen -18 KPX V e -18 KPX V comma -92 KPX V colon -18 KPX V a -18 KPX V A -37 KPX W period -74 KPX W o -18 KPX W hyphen -18 KPX W e -18 KPX W comma -74 KPX W a -18 KPX W A -18 KPX Y v -18 KPX Y u -37 KPX Y semicolon -37 KPX Y q -55 KPX Y period -111 KPX Y p -37 KPX Y o -55 KPX Y i -18 KPX Y hyphen -74 KPX Y e -55 KPX Y comma -111 KPX Y colon -37 KPX Y a -55 KPX Y A -55 KPX f quoteright 18 KPX quoteleft quoteleft -18 KPX quoteright s -55 KPX quoteright quoteright -18 KPX r z 20 KPX r y 18 KPX r x 20 KPX r w 18 KPX r v 18 KPX r period -74 KPX r hyphen -37 KPX r f 20 KPX r comma -74 KPX r c -20 KPX v period -55 KPX v comma -55 KPX w period -37 KPX w comma -37 KPX y period -55 KPX y comma -55 EndKernPairs EndKernData StartComposites 56 CC Aacute 2 ; PCC A 0 0 ; PCC acute 153 194 ; CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 153 194 ; CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 153 194 ; CC Agrave 2 ; PCC A 0 0 ; PCC grave 153 194 ; CC Aring 2 ; PCC A 0 0 ; PCC ring 194 194 ; CC Atilde 2 ; PCC A 0 0 ; PCC tilde 153 194 ; CC Eacute 2 ; PCC E 0 0 ; PCC acute 125 194 ; CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 125 194 ; CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 125 194 ; CC Egrave 2 ; PCC E 0 0 ; PCC grave 125 194 ; CC Iacute 2 ; PCC I 0 0 ; PCC acute 14 194 ; CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 14 194 ; CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 14 194 ; CC Igrave 2 ; PCC I 0 0 ; PCC grave 14 194 ; CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 180 194 ; CC Oacute 2 ; PCC O 0 0 ; PCC acute 180 194 ; CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 180 194 ; CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 180 194 ; CC Ograve 2 ; PCC O 0 0 ; PCC grave 180 194 ; CC Otilde 2 ; PCC O 0 0 ; PCC tilde 180 194 ; CC Scaron 2 ; PCC S 0 0 ; PCC caron 153 194 ; CC Uacute 2 ; PCC U 0 0 ; PCC acute 180 194 ; CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 180 194 ; CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 180 194 ; CC Ugrave 2 ; PCC U 0 0 ; PCC grave 180 194 ; CC Yacute 2 ; PCC Y 0 0 ; PCC acute 153 194 ; CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 153 194 ; CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 125 194 ; 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 88 30 ; CC atilde 2 ; PCC a 0 0 ; PCC tilde 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 -55 0 ; CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -55 0 ; CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -55 0 ; CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -55 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 56 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 56 0 ; CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 56 0 ; CC zcaron 2 ; PCC z 0 0 ; PCC caron 28 0 ; EndComposites EndFontMetrics enscript-1.6.5.90/afm/hvc.afm0000644000175000017500000003647611132443251012546 00000000000000StartFontMetrics 2.0 Comment Copyright (c) 1985, 1987, 1991 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Wed Sep 4 17:26:31 1991 Comment UniqueID 36179 Comment VMusage 26415 33307 FontName Helvetica-Condensed FullName Helvetica Condensed Medium FamilyName Helvetica Weight Medium ItalicAngle 0 IsFixedPitch false FontBBox -174 -250 1071 990 UnderlinePosition -100 UnderlineThickness 50 Version 001.003 Notice Copyright (c) 1985, 1987, 1991 Adobe Systems Incorporated. All Rights Reserved.Helvetica is a trademark of Linotype-Hell AG and/or its subsidiaries. EncodingScheme AdobeStandardEncoding CapHeight 750 XHeight 556 Ascender 750 Descender -188 StartCharMetrics 228 C 32 ; WX 250 ; N space ; B 0 0 0 0 ; C 33 ; WX 333 ; N exclam ; B 121 0 212 750 ; C 34 ; WX 250 ; N quotedbl ; B 44 513 207 739 ; C 35 ; WX 500 ; N numbersign ; B 5 0 495 750 ; C 36 ; WX 500 ; N dollar ; B 35 -116 465 815 ; C 37 ; WX 833 ; N percent ; B 55 -15 756 750 ; C 38 ; WX 667 ; N ampersand ; B 75 -18 620 750 ; C 39 ; WX 222 ; N quoteright ; B 64 504 158 750 ; C 40 ; WX 333 ; N parenleft ; B 76 -215 289 750 ; C 41 ; WX 333 ; N parenright ; B 44 -215 257 750 ; C 42 ; WX 500 ; N asterisk ; B 96 455 405 750 ; C 43 ; WX 500 ; N plus ; B 44 0 457 505 ; C 44 ; WX 250 ; N comma ; B 80 -146 171 100 ; C 45 ; WX 333 ; N hyphen ; B 45 275 288 358 ; C 46 ; WX 250 ; N period ; B 80 0 171 100 ; C 47 ; WX 278 ; N slash ; B -13 -27 291 750 ; C 48 ; WX 500 ; N zero ; B 46 -15 455 750 ; C 49 ; WX 500 ; N one ; B 74 0 317 750 ; C 50 ; WX 500 ; N two ; B 44 0 447 750 ; C 51 ; WX 500 ; N three ; B 38 -15 447 750 ; C 52 ; WX 500 ; N four ; B 28 0 451 750 ; C 53 ; WX 500 ; N five ; B 43 -15 446 735 ; C 54 ; WX 500 ; N six ; B 43 -15 458 750 ; C 55 ; WX 500 ; N seven ; B 44 0 456 735 ; C 56 ; WX 500 ; N eight ; B 46 -15 454 750 ; C 57 ; WX 500 ; N nine ; B 43 -15 458 750 ; C 58 ; WX 250 ; N colon ; B 80 0 171 547 ; C 59 ; WX 250 ; N semicolon ; B 80 -146 171 547 ; C 60 ; WX 500 ; N less ; B 42 -10 459 518 ; C 61 ; WX 500 ; N equal ; B 44 124 457 384 ; C 62 ; WX 500 ; N greater ; B 42 -10 459 518 ; C 63 ; WX 500 ; N question ; B 60 0 462 750 ; C 64 ; WX 800 ; N at ; B 36 -15 764 750 ; C 65 ; WX 556 ; N A ; B 11 0 546 750 ; C 66 ; WX 556 ; N B ; B 80 0 503 750 ; C 67 ; WX 556 ; N C ; B 53 -18 503 765 ; C 68 ; WX 611 ; N D ; B 82 0 548 750 ; C 69 ; WX 500 ; N E ; B 74 0 451 750 ; C 70 ; WX 444 ; N F ; B 74 0 426 750 ; C 71 ; WX 611 ; N G ; B 54 -18 532 765 ; C 72 ; WX 611 ; N H ; B 79 0 532 750 ; C 73 ; WX 278 ; N I ; B 98 0 181 750 ; C 74 ; WX 444 ; N J ; B 21 -15 368 750 ; C 75 ; WX 556 ; N K ; B 79 0 546 750 ; C 76 ; WX 500 ; N L ; B 83 0 472 750 ; C 77 ; WX 778 ; N M ; B 76 0 702 750 ; C 78 ; WX 611 ; N N ; B 77 0 534 750 ; C 79 ; WX 611 ; N O ; B 59 -18 553 765 ; C 80 ; WX 556 ; N P ; B 86 0 519 750 ; C 81 ; WX 611 ; N Q ; B 59 -34 582 765 ; C 82 ; WX 611 ; N R ; B 86 0 565 750 ; C 83 ; WX 556 ; N S ; B 51 -18 505 765 ; C 84 ; WX 500 ; N T ; B 15 0 486 750 ; C 85 ; WX 611 ; N U ; B 81 -18 531 750 ; C 86 ; WX 556 ; N V ; B 11 0 545 750 ; C 87 ; WX 833 ; N W ; B 17 0 816 750 ; C 88 ; WX 556 ; N X ; B 17 0 539 750 ; C 89 ; WX 556 ; N Y ; B 11 0 546 750 ; C 90 ; WX 500 ; N Z ; B 28 0 473 750 ; C 91 ; WX 333 ; N bracketleft ; B 100 -209 275 750 ; C 92 ; WX 250 ; N backslash ; B -31 0 281 750 ; C 93 ; WX 333 ; N bracketright ; B 58 -209 233 750 ; C 94 ; WX 500 ; N asciicircum ; B 70 333 431 750 ; C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; C 96 ; WX 222 ; N quoteleft ; B 64 521 158 767 ; C 97 ; WX 444 ; N a ; B 31 -15 417 571 ; C 98 ; WX 500 ; N b ; B 75 -15 447 750 ; C 99 ; WX 444 ; N c ; B 44 -15 405 571 ; C 100 ; WX 500 ; N d ; B 48 -15 424 750 ; C 101 ; WX 444 ; N e ; B 43 -15 395 571 ; C 102 ; WX 278 ; N f ; B 12 0 259 752 ; L i fi ; L l fl ; C 103 ; WX 500 ; N g ; B 45 -189 426 571 ; C 104 ; WX 500 ; N h ; B 73 0 428 750 ; C 105 ; WX 222 ; N i ; B 72 0 151 750 ; C 106 ; WX 222 ; N j ; B 13 -190 154 750 ; C 107 ; WX 444 ; N k ; B 69 0 439 750 ; C 108 ; WX 222 ; N l ; B 72 0 151 750 ; C 109 ; WX 778 ; N m ; B 76 0 703 571 ; C 110 ; WX 500 ; N n ; B 73 0 428 571 ; C 111 ; WX 500 ; N o ; B 51 -15 449 571 ; C 112 ; WX 500 ; N p ; B 72 -188 447 571 ; C 113 ; WX 500 ; N q ; B 55 -184 426 571 ; C 114 ; WX 333 ; N r ; B 81 0 322 563 ; C 115 ; WX 444 ; N s ; B 43 -15 400 571 ; C 116 ; WX 278 ; N t ; B 9 0 257 707 ; C 117 ; WX 500 ; N u ; B 77 -15 424 556 ; C 118 ; WX 444 ; N v ; B 13 0 431 556 ; C 119 ; WX 667 ; N w ; B 19 0 649 556 ; C 120 ; WX 444 ; N x ; B 9 0 436 556 ; C 121 ; WX 444 ; N y ; B 5 -190 425 556 ; C 122 ; WX 389 ; N z ; B 24 0 366 556 ; C 123 ; WX 274 ; N braceleft ; B 7 -95 266 750 ; C 124 ; WX 250 ; N bar ; B 93 -250 157 750 ; C 125 ; WX 274 ; N braceright ; B 8 -95 267 750 ; C 126 ; WX 500 ; N asciitilde ; B 44 166 457 345 ; C 161 ; WX 333 ; N exclamdown ; B 121 -179 212 571 ; C 162 ; WX 500 ; N cent ; B 58 -137 418 667 ; C 163 ; WX 500 ; N sterling ; B 30 -15 485 750 ; C 164 ; WX 167 ; N fraction ; B -174 0 341 750 ; C 165 ; WX 500 ; N yen ; B -17 0 518 750 ; C 166 ; WX 500 ; N florin ; B 10 -192 488 750 ; C 167 ; WX 500 ; N section ; B 35 -208 466 750 ; C 168 ; WX 500 ; N currency ; B 24 50 475 553 ; C 169 ; WX 250 ; N quotesingle ; B 99 513 151 739 ; C 170 ; WX 389 ; N quotedblleft ; B 62 521 327 767 ; C 171 ; WX 500 ; N guillemotleft ; B 85 125 415 495 ; C 172 ; WX 278 ; N guilsinglleft ; B 64 125 215 495 ; C 173 ; WX 278 ; N guilsinglright ; B 63 125 214 495 ; C 174 ; WX 500 ; N fi ; B 12 0 427 752 ; C 175 ; WX 500 ; N fl ; B 12 0 425 752 ; C 177 ; WX 500 ; N endash ; B 0 275 500 345 ; C 178 ; WX 500 ; N dagger ; B 40 -176 461 750 ; C 179 ; WX 500 ; N daggerdbl ; B 39 -176 462 750 ; C 180 ; WX 250 ; N periodcentered ; B 80 204 171 304 ; C 182 ; WX 440 ; N paragraph ; B 0 -116 391 750 ; C 183 ; WX 333 ; N bullet ; B 15 222 318 529 ; C 184 ; WX 222 ; N quotesinglbase ; B 64 -146 158 100 ; C 185 ; WX 389 ; N quotedblbase ; B 62 -146 327 100 ; C 186 ; WX 389 ; N quotedblright ; B 62 504 327 750 ; C 187 ; WX 500 ; N guillemotright ; B 85 125 415 495 ; C 188 ; WX 1000 ; N ellipsis ; B 121 0 878 100 ; C 189 ; WX 1111 ; N perthousand ; B 47 -16 1071 750 ; C 191 ; WX 500 ; N questiondown ; B 38 -190 440 559 ; C 193 ; WX 333 ; N grave ; B 35 624 233 765 ; C 194 ; WX 333 ; N acute ; B 100 624 298 765 ; C 195 ; WX 333 ; N circumflex ; B 21 624 313 765 ; C 196 ; WX 333 ; N tilde ; B -3 633 337 749 ; C 197 ; WX 333 ; N macron ; B 10 657 323 715 ; C 198 ; WX 333 ; N breve ; B 12 629 321 765 ; C 199 ; WX 250 ; N dotaccent ; B 86 650 165 750 ; C 200 ; WX 333 ; N dieresis ; B 52 650 281 750 ; C 202 ; WX 250 ; N ring ; B 23 593 227 796 ; C 203 ; WX 333 ; N cedilla ; B 66 -224 281 0 ; C 205 ; WX 333 ; N hungarumlaut ; B 61 624 440 765 ; C 206 ; WX 333 ; N ogonek ; B 0 -191 208 13 ; C 207 ; WX 333 ; N caron ; B 21 624 313 765 ; C 208 ; WX 1000 ; N emdash ; B 0 275 1000 345 ; C 225 ; WX 833 ; N AE ; B 0 0 785 750 ; C 227 ; WX 300 ; N ordfeminine ; B 25 413 276 765 ; C 232 ; WX 500 ; N Lslash ; B -13 0 472 750 ; C 233 ; WX 611 ; N Oslash ; B 29 -43 573 796 ; C 234 ; WX 833 ; N OE ; B 56 -18 787 765 ; C 235 ; WX 300 ; N ordmasculine ; B 20 413 279 765 ; C 241 ; WX 667 ; N ae ; B 26 -15 630 571 ; C 245 ; WX 222 ; N dotlessi ; B 72 0 151 556 ; C 248 ; WX 222 ; N lslash ; B -8 0 231 750 ; C 249 ; WX 500 ; N oslash ; B 25 -46 472 582 ; C 250 ; WX 722 ; N oe ; B 40 -15 676 571 ; C 251 ; WX 500 ; N germandbls ; B 71 -5 445 765 ; C -1 ; WX 444 ; N ecircumflex ; B 43 -15 395 765 ; C -1 ; WX 444 ; N edieresis ; B 43 -15 395 750 ; C -1 ; WX 444 ; N aacute ; B 31 -15 417 765 ; C -1 ; WX 800 ; N registered ; B 8 -18 792 765 ; C -1 ; WX 222 ; N icircumflex ; B -34 0 258 765 ; C -1 ; WX 500 ; N udieresis ; B 77 -15 424 750 ; C -1 ; WX 500 ; N ograve ; B 51 -15 449 765 ; C -1 ; WX 500 ; N uacute ; B 77 -15 424 765 ; C -1 ; WX 500 ; N ucircumflex ; B 77 -15 424 765 ; C -1 ; WX 556 ; N Aacute ; B 11 0 546 959 ; C -1 ; WX 222 ; N igrave ; B -20 0 178 765 ; C -1 ; WX 278 ; N Icircumflex ; B -6 0 286 959 ; C -1 ; WX 444 ; N ccedilla ; B 44 -224 405 571 ; C -1 ; WX 444 ; N adieresis ; B 31 -15 417 750 ; C -1 ; WX 500 ; N Ecircumflex ; B 74 0 451 959 ; C -1 ; WX 444 ; N scaron ; B 43 -15 400 765 ; C -1 ; WX 500 ; N thorn ; B 72 -188 447 750 ; C -1 ; WX 750 ; N trademark ; B 0 329 719 750 ; C -1 ; WX 444 ; N egrave ; B 43 -15 395 765 ; C -1 ; WX 300 ; N threesuperior ; B 17 291 283 750 ; C -1 ; WX 389 ; N zcaron ; B 24 0 366 765 ; C -1 ; WX 444 ; N atilde ; B 31 -15 417 749 ; C -1 ; WX 444 ; N aring ; B 31 -15 417 826 ; C -1 ; WX 500 ; N ocircumflex ; B 51 -15 449 765 ; C -1 ; WX 500 ; N Edieresis ; B 74 0 451 944 ; C -1 ; WX 750 ; N threequarters ; B 21 0 730 750 ; C -1 ; WX 444 ; N ydieresis ; B 5 -190 425 750 ; C -1 ; WX 444 ; N yacute ; B 5 -190 425 765 ; C -1 ; WX 222 ; N iacute ; B 45 0 243 765 ; C -1 ; WX 556 ; N Acircumflex ; B 11 0 546 959 ; C -1 ; WX 611 ; N Uacute ; B 81 -18 531 959 ; C -1 ; WX 444 ; N eacute ; B 43 -15 395 765 ; C -1 ; WX 611 ; N Ograve ; B 59 -18 553 959 ; C -1 ; WX 444 ; N agrave ; B 31 -15 417 765 ; C -1 ; WX 611 ; N Udieresis ; B 81 -18 531 944 ; C -1 ; WX 444 ; N acircumflex ; B 31 -15 417 765 ; C -1 ; WX 278 ; N Igrave ; B 8 0 206 959 ; C -1 ; WX 300 ; N twosuperior ; B 19 300 281 750 ; C -1 ; WX 611 ; N Ugrave ; B 81 -18 531 959 ; C -1 ; WX 750 ; N onequarter ; B 34 0 716 750 ; C -1 ; WX 611 ; N Ucircumflex ; B 81 -18 531 959 ; C -1 ; WX 556 ; N Scaron ; B 51 -18 505 959 ; C -1 ; WX 278 ; N Idieresis ; B 25 0 254 944 ; C -1 ; WX 222 ; N idieresis ; B -3 0 226 750 ; C -1 ; WX 500 ; N Egrave ; B 74 0 451 959 ; C -1 ; WX 611 ; N Oacute ; B 59 -18 553 959 ; C -1 ; WX 500 ; N divide ; B 44 3 457 505 ; C -1 ; WX 556 ; N Atilde ; B 11 0 546 943 ; C -1 ; WX 556 ; N Aring ; B 11 0 546 990 ; C -1 ; WX 611 ; N Odieresis ; B 59 -18 553 944 ; C -1 ; WX 556 ; N Adieresis ; B 11 0 546 944 ; C -1 ; WX 611 ; N Ntilde ; B 77 0 534 943 ; C -1 ; WX 500 ; N Zcaron ; B 28 0 473 959 ; C -1 ; WX 556 ; N Thorn ; B 86 0 519 750 ; C -1 ; WX 278 ; N Iacute ; B 73 0 271 959 ; C -1 ; WX 500 ; N plusminus ; B 44 0 457 505 ; C -1 ; WX 500 ; N multiply ; B 44 48 457 461 ; C -1 ; WX 500 ; N Eacute ; B 74 0 451 959 ; C -1 ; WX 556 ; N Ydieresis ; B 11 0 546 944 ; C -1 ; WX 300 ; N onesuperior ; B 67 300 233 750 ; C -1 ; WX 500 ; N ugrave ; B 77 -15 424 765 ; C -1 ; WX 500 ; N logicalnot ; B 44 117 457 384 ; C -1 ; WX 500 ; N ntilde ; B 73 0 428 749 ; C -1 ; WX 611 ; N Otilde ; B 59 -18 553 943 ; C -1 ; WX 500 ; N otilde ; B 51 -15 449 749 ; C -1 ; WX 556 ; N Ccedilla ; B 53 -224 503 765 ; C -1 ; WX 556 ; N Agrave ; B 11 0 546 959 ; C -1 ; WX 750 ; N onehalf ; B 42 0 709 750 ; C -1 ; WX 611 ; N Eth ; B 9 0 548 750 ; C -1 ; WX 400 ; N degree ; B 50 450 350 750 ; C -1 ; WX 556 ; N Yacute ; B 11 0 546 959 ; C -1 ; WX 611 ; N Ocircumflex ; B 59 -18 553 959 ; C -1 ; WX 500 ; N oacute ; B 51 -15 449 765 ; C -1 ; WX 500 ; N mu ; B 75 -189 422 556 ; C -1 ; WX 500 ; N minus ; B 44 219 457 289 ; C -1 ; WX 500 ; N eth ; B 51 -15 449 831 ; C -1 ; WX 500 ; N odieresis ; B 51 -15 449 750 ; C -1 ; WX 800 ; N copyright ; B 8 -18 792 765 ; C -1 ; WX 250 ; N brokenbar ; B 93 -175 157 675 ; EndCharMetrics StartKernData StartKernPairs 90 KPX A y -18 KPX A w -18 KPX A v -18 KPX A quoteright -55 KPX A Y -55 KPX A W -37 KPX A V -37 KPX A T -55 KPX F period -111 KPX F comma -111 KPX F A -37 KPX L y -37 KPX L quoteright -92 KPX L Y -92 KPX L W -74 KPX L V -74 KPX L T -74 KPX P period -129 KPX P comma -129 KPX P A -37 KPX R Y -18 KPX R T -18 KPX T y -55 KPX T w -74 KPX T u -74 KPX T semicolon -74 KPX T s -74 KPX T r -74 KPX T period -92 KPX T o -74 KPX T i -18 KPX T hyphen -55 KPX T e -74 KPX T comma -92 KPX T colon -74 KPX T c -74 KPX T a -74 KPX T A -55 KPX V u -18 KPX V semicolon -18 KPX V r -18 KPX V period -92 KPX V o -18 KPX V hyphen -18 KPX V e -18 KPX V comma -92 KPX V colon -18 KPX V a -18 KPX V A -37 KPX W period -74 KPX W o -18 KPX W hyphen -18 KPX W e -18 KPX W comma -74 KPX W a -18 KPX W A -18 KPX Y v -18 KPX Y u -37 KPX Y semicolon -37 KPX Y q -55 KPX Y period -111 KPX Y p -37 KPX Y o -55 KPX Y i -18 KPX Y hyphen -74 KPX Y e -55 KPX Y comma -111 KPX Y colon -37 KPX Y a -55 KPX Y A -55 KPX f quoteright 18 KPX quoteleft quoteleft -18 KPX quoteright s -55 KPX quoteright quoteright -18 KPX r z 20 KPX r y 18 KPX r x 20 KPX r w 18 KPX r v 18 KPX r period -74 KPX r hyphen -37 KPX r f 20 KPX r comma -74 KPX r c -20 KPX v period -55 KPX v comma -55 KPX w period -37 KPX w comma -37 KPX y period -55 KPX y comma -55 EndKernPairs EndKernData StartComposites 56 CC Aacute 2 ; PCC A 0 0 ; PCC acute 112 194 ; CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 112 194 ; CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 112 194 ; CC Agrave 2 ; PCC A 0 0 ; PCC grave 112 194 ; CC Aring 2 ; PCC A 0 0 ; PCC ring 153 194 ; CC Atilde 2 ; PCC A 0 0 ; PCC tilde 112 194 ; CC Eacute 2 ; PCC E 0 0 ; PCC acute 84 194 ; CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 84 194 ; CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 84 194 ; CC Egrave 2 ; PCC E 0 0 ; PCC grave 84 194 ; CC Iacute 2 ; PCC I 0 0 ; PCC acute -27 194 ; CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex -27 194 ; CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis -27 194 ; CC Igrave 2 ; PCC I 0 0 ; PCC grave -27 194 ; CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 139 194 ; CC Oacute 2 ; PCC O 0 0 ; PCC acute 139 194 ; CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 139 194 ; CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 139 194 ; CC Ograve 2 ; PCC O 0 0 ; PCC grave 139 194 ; CC Otilde 2 ; PCC O 0 0 ; PCC tilde 139 194 ; CC Scaron 2 ; PCC S 0 0 ; PCC caron 112 194 ; CC Uacute 2 ; PCC U 0 0 ; PCC acute 139 194 ; CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 139 194 ; CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 139 194 ; CC Ugrave 2 ; PCC U 0 0 ; PCC grave 139 194 ; CC Yacute 2 ; PCC Y 0 0 ; PCC acute 112 194 ; CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 112 194 ; CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 84 194 ; 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 82 30 ; CC atilde 2 ; PCC a 0 0 ; PCC tilde 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 -55 0 ; CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -55 0 ; CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -55 0 ; CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -55 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 56 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 56 0 ; CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 56 0 ; CC zcaron 2 ; PCC z 0 0 ; PCC caron 28 0 ; EndComposites EndFontMetrics enscript-1.6.5.90/afm/cobo.afm0000644000175000017500000003662711132443251012706 00000000000000StartFontMetrics 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 enscript-1.6.5.90/afm/ncr.afm0000644000175000017500000004144611132443251012541 00000000000000StartFontMetrics 2.0 Comment Copyright (c) 1985, 1987, 1989, 1991 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Tue May 28 16:31:51 1991 Comment UniqueID 35025 Comment VMusage 30420 37312 FontName NewCenturySchlbk-Roman FullName New Century Schoolbook Roman FamilyName New Century Schoolbook Weight Roman ItalicAngle 0 IsFixedPitch false FontBBox -195 -250 1000 965 UnderlinePosition -100 UnderlineThickness 50 Version 001.007 Notice Copyright (c) 1985, 1987, 1989, 1991 Adobe Systems Incorporated. All Rights Reserved. EncodingScheme AdobeStandardEncoding CapHeight 722 XHeight 464 Ascender 737 Descender -205 StartCharMetrics 228 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 543 218 645 ; C 200 ; WX 333 ; N dieresis ; B 16 543 317 645 ; 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 68 -215 254 0 ; 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 286 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 500 ; N ecircumflex ; B 34 -15 466 695 ; C -1 ; WX 500 ; N edieresis ; B 34 -15 466 645 ; C -1 ; WX 556 ; N aacute ; B 44 -15 542 699 ; C -1 ; WX 737 ; N registered ; B -8 -15 744 737 ; C -1 ; WX 315 ; N icircumflex ; B 1 0 314 695 ; C -1 ; WX 611 ; N udieresis ; B 22 -15 589 645 ; C -1 ; WX 500 ; N ograve ; B 34 -15 466 699 ; C -1 ; WX 611 ; N uacute ; B 22 -15 589 699 ; C -1 ; WX 611 ; N ucircumflex ; B 22 -15 589 695 ; C -1 ; WX 722 ; N Aacute ; B -8 0 730 937 ; C -1 ; WX 315 ; N igrave ; B 8 0 286 699 ; C -1 ; WX 407 ; N Icircumflex ; B 38 0 369 933 ; C -1 ; WX 444 ; N ccedilla ; B 34 -215 426 479 ; C -1 ; WX 556 ; N adieresis ; B 44 -15 542 645 ; C -1 ; WX 722 ; N Ecircumflex ; B 29 0 663 933 ; C -1 ; WX 463 ; N scaron ; B 46 -15 417 695 ; C -1 ; WX 574 ; N thorn ; B 22 -205 540 737 ; C -1 ; WX 1000 ; N trademark ; B 32 318 968 722 ; C -1 ; WX 500 ; N egrave ; B 34 -15 466 699 ; C -1 ; WX 333 ; N threesuperior ; B 18 273 315 705 ; C -1 ; WX 481 ; N zcaron ; B 42 0 439 695 ; C -1 ; WX 556 ; N atilde ; B 44 -15 542 655 ; C -1 ; WX 556 ; N aring ; B 44 -15 542 732 ; C -1 ; WX 500 ; N ocircumflex ; B 34 -15 466 695 ; C -1 ; WX 722 ; N Edieresis ; B 29 0 663 883 ; C -1 ; WX 834 ; N threequarters ; B 28 -15 795 705 ; C -1 ; WX 537 ; N ydieresis ; B 4 -205 533 645 ; C -1 ; WX 537 ; N yacute ; B 4 -205 533 699 ; C -1 ; WX 315 ; N iacute ; B 18 0 307 699 ; C -1 ; WX 722 ; N Acircumflex ; B -8 0 730 933 ; C -1 ; WX 815 ; N Uacute ; B 16 -15 799 937 ; C -1 ; WX 500 ; N eacute ; B 34 -15 466 699 ; C -1 ; WX 778 ; N Ograve ; B 45 -15 733 937 ; C -1 ; WX 556 ; N agrave ; B 44 -15 542 699 ; C -1 ; WX 815 ; N Udieresis ; B 16 -15 799 883 ; C -1 ; WX 556 ; N acircumflex ; B 44 -15 542 695 ; C -1 ; WX 407 ; N Igrave ; B 38 0 369 937 ; C -1 ; WX 333 ; N twosuperior ; B 14 282 319 705 ; C -1 ; WX 815 ; N Ugrave ; B 16 -15 799 937 ; C -1 ; WX 834 ; N onequarter ; B 39 -15 795 705 ; C -1 ; WX 815 ; N Ucircumflex ; B 16 -15 799 933 ; C -1 ; WX 630 ; N Scaron ; B 47 -15 583 933 ; C -1 ; WX 407 ; N Idieresis ; B 38 0 369 883 ; C -1 ; WX 315 ; N idieresis ; B 7 0 308 645 ; C -1 ; WX 722 ; N Egrave ; B 29 0 663 937 ; C -1 ; WX 778 ; N Oacute ; B 45 -15 733 937 ; C -1 ; WX 606 ; N divide ; B 50 -22 556 528 ; C -1 ; WX 722 ; N Atilde ; B -8 0 730 893 ; C -1 ; WX 722 ; N Aring ; B -8 0 730 965 ; C -1 ; WX 778 ; N Odieresis ; B 45 -15 733 883 ; C -1 ; WX 722 ; N Adieresis ; B -8 0 730 883 ; C -1 ; WX 815 ; N Ntilde ; B 24 -15 791 893 ; C -1 ; WX 611 ; N Zcaron ; B 24 0 576 933 ; C -1 ; WX 667 ; N Thorn ; B 29 0 650 722 ; 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 multiply ; B 74 24 532 482 ; C -1 ; WX 722 ; N Eacute ; B 29 0 663 937 ; C -1 ; WX 704 ; N Ydieresis ; B -11 0 715 883 ; C -1 ; WX 333 ; N onesuperior ; B 39 282 294 705 ; C -1 ; WX 611 ; N ugrave ; B 22 -15 589 699 ; C -1 ; WX 606 ; N logicalnot ; B 50 108 556 389 ; C -1 ; WX 611 ; N ntilde ; B 22 0 589 655 ; C -1 ; WX 778 ; N Otilde ; B 45 -15 733 893 ; C -1 ; WX 500 ; N otilde ; B 34 -15 466 655 ; C -1 ; WX 722 ; N Ccedilla ; B 45 -215 668 737 ; C -1 ; WX 722 ; N Agrave ; B -8 0 730 937 ; C -1 ; WX 834 ; N onehalf ; B 39 -15 820 705 ; C -1 ; WX 778 ; N Eth ; B 29 0 733 722 ; C -1 ; WX 400 ; N degree ; B 57 419 343 705 ; C -1 ; WX 704 ; N Yacute ; B -11 0 715 937 ; C -1 ; WX 778 ; N Ocircumflex ; B 45 -15 733 933 ; C -1 ; WX 500 ; N oacute ; B 34 -15 466 699 ; C -1 ; WX 611 ; N mu ; B 22 -205 589 464 ; C -1 ; WX 606 ; N minus ; B 50 217 556 289 ; C -1 ; WX 500 ; N eth ; B 34 -15 466 752 ; C -1 ; WX 500 ; N odieresis ; B 34 -15 466 645 ; C -1 ; WX 737 ; N copyright ; B -8 -15 744 737 ; C -1 ; WX 606 ; N brokenbar ; B 267 -175 339 675 ; EndCharMetrics StartKernData StartKernPairs 169 KPX A y -37 KPX A w -25 KPX A v -37 KPX A quoteright -74 KPX A quotedblright -74 KPX A Y -75 KPX A W -50 KPX A V -75 KPX A U -30 KPX A T -18 KPX B period -37 KPX B comma -37 KPX B A -18 KPX C period -37 KPX C comma -37 KPX C A -18 KPX D period -37 KPX D comma -37 KPX D Y -18 KPX D V -18 KPX F r -10 KPX F period -125 KPX F o -55 KPX F i -10 KPX F e -55 KPX F comma -125 KPX F a -65 KPX F A -50 KPX G period -37 KPX G comma -37 KPX J u -25 KPX J period -74 KPX J o -25 KPX J e -25 KPX J comma -74 KPX J a -25 KPX J A -18 KPX K y -25 KPX K o 10 KPX K e 10 KPX L y -25 KPX L quoteright -100 KPX L quotedblright -100 KPX L Y -74 KPX L W -74 KPX L V -91 KPX L T -75 KPX N period -55 KPX N comma -55 KPX O period -37 KPX O comma -37 KPX O Y -18 KPX O V -18 KPX O T 10 KPX P period -125 KPX P o -37 KPX P e -37 KPX P comma -125 KPX P a -37 KPX P A -55 KPX Q period -25 KPX Q comma -25 KPX S period -37 KPX S comma -37 KPX T semicolon -37 KPX T period -125 KPX T o -55 KPX T hyphen -100 KPX T e -55 KPX T comma -125 KPX T colon -37 KPX T a -55 KPX T O 10 KPX T A -18 KPX U period -100 KPX U comma -100 KPX U A -30 KPX V u -75 KPX V semicolon -75 KPX V period -125 KPX V o -75 KPX V i -18 KPX V hyphen -100 KPX V e -75 KPX V comma -125 KPX V colon -75 KPX V a -85 KPX V O -18 KPX V A -74 KPX W y -55 KPX W u -55 KPX W semicolon -100 KPX W period -125 KPX W o -60 KPX W i -18 KPX W hyphen -100 KPX W e -60 KPX W comma -125 KPX W colon -100 KPX W a -75 KPX W A -50 KPX Y u -91 KPX Y semicolon -75 KPX Y period -100 KPX Y o -100 KPX Y i -18 KPX Y hyphen -125 KPX Y e -100 KPX Y comma -100 KPX Y colon -75 KPX Y a -100 KPX Y O -18 KPX Y A -75 KPX a y -10 KPX a w -10 KPX a v -10 KPX b period -18 KPX b comma -18 KPX c period -18 KPX c l -7 KPX c k -7 KPX c h -7 KPX c comma -18 KPX colon space -37 KPX comma space -37 KPX comma quoteright -37 KPX comma quotedblright -37 KPX e period -18 KPX e comma -18 KPX f quoteright 100 KPX f quotedblright 100 KPX f period -37 KPX f comma -37 KPX g period -25 KPX g comma -25 KPX o period -18 KPX o comma -18 KPX p period -18 KPX p comma -18 KPX period space -37 KPX period quoteright -37 KPX period quotedblright -37 KPX quotedblleft A -74 KPX quotedblright space -37 KPX quoteleft quoteleft -25 KPX quoteleft A -74 KPX quoteright s -25 KPX quoteright quoteright -25 KPX quoteright d -37 KPX r period -100 KPX r hyphen -37 KPX r comma -100 KPX s period -25 KPX s comma -25 KPX semicolon space -37 KPX space quoteleft -37 KPX space quotedblleft -37 KPX space Y -37 KPX space W -37 KPX space V -37 KPX space T -37 KPX space A -37 KPX v period -125 KPX v comma -125 KPX w period -125 KPX w comma -125 KPX w a -18 KPX y period -125 KPX y comma -125 EndKernPairs EndKernData StartComposites 56 CC Aacute 2 ; PCC A 0 0 ; PCC acute 195 238 ; CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 195 238 ; CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 195 238 ; CC Agrave 2 ; PCC A 0 0 ; PCC grave 195 238 ; CC Aring 2 ; PCC A 0 0 ; PCC ring 195 243 ; CC Atilde 2 ; PCC A 0 0 ; PCC tilde 195 238 ; CC Eacute 2 ; PCC E 0 0 ; PCC acute 195 238 ; CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 195 238 ; CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 195 238 ; CC Egrave 2 ; PCC E 0 0 ; PCC grave 195 238 ; CC Iacute 2 ; PCC I 0 0 ; PCC acute 37 238 ; CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 37 238 ; CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 37 238 ; CC Igrave 2 ; PCC I 0 0 ; PCC grave 37 238 ; CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 241 238 ; CC Oacute 2 ; PCC O 0 0 ; PCC acute 223 238 ; CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 223 238 ; CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 223 238 ; CC Ograve 2 ; PCC O 0 0 ; PCC grave 223 238 ; CC Otilde 2 ; PCC O 0 0 ; PCC tilde 223 238 ; CC Scaron 2 ; PCC S 0 0 ; PCC caron 149 238 ; CC Uacute 2 ; PCC U 0 0 ; PCC acute 241 238 ; CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 241 238 ; CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 241 238 ; CC Ugrave 2 ; PCC U 0 0 ; PCC grave 241 238 ; CC Yacute 2 ; PCC Y 0 0 ; PCC acute 216 238 ; CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 186 238 ; CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 139 238 ; CC aacute 2 ; PCC a 0 0 ; PCC acute 112 0 ; CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 112 0 ; CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 112 0 ; CC agrave 2 ; PCC a 0 0 ; PCC grave 112 0 ; CC aring 2 ; PCC a 0 0 ; PCC ring 112 10 ; CC atilde 2 ; PCC a 0 0 ; PCC tilde 112 0 ; CC eacute 2 ; PCC e 0 0 ; PCC acute 84 0 ; CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 84 0 ; CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 84 0 ; CC egrave 2 ; PCC e 0 0 ; PCC grave 84 0 ; CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -9 0 ; CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -9 0 ; CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -9 0 ; CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -9 0 ; CC ntilde 2 ; PCC n 0 0 ; PCC tilde 139 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 65 0 ; 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 yacute 2 ; PCC y 0 0 ; PCC acute 102 0 ; CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 102 0 ; CC zcaron 2 ; PCC z 0 0 ; PCC caron 74 0 ; EndComposites EndFontMetrics enscript-1.6.5.90/88597.txt0000644000175000017500000001373311132443251011772 00000000000000 ISO-8859-7 (ISO Greek) Greek character set (ELOT 928 in Greece) Author: Manolis Lourakis Computer Science Department, University of Crete, GREECE octal hex PostScript HTML entity character ---------------------------------------------------------------------- 000 0x00 non-printable 001 0x01 non-printable 002 0x02 non-printable 003 0x03 non-printable 004 0x04 non-printable 005 0x05 non-printable 006 0x06 non-printable 007 0x07 non-printable 010 0x08 non-printable 011 0x09 non-printable 012 0x0a non-printable 013 0x0b non-printable 014 0x0c non-printable 015 0x0d non-printable 016 0x0e non-printable 017 0x0f non-printable 020 0x10 non-printable 021 0x11 non-printable 022 0x12 non-printable 023 0x13 non-printable 024 0x14 non-printable 025 0x15 non-printable 026 0x16 non-printable 027 0x17 non-printable 030 0x18 non-printable 031 0x19 non-printable 032 0x1a non-printable 033 0x1b non-printable 034 0x1c non-printable 035 0x1d non-printable 036 0x1e non-printable 037 0x1f non-printable 040 0x20 /space 041 0x21 /exclam ! 042 0x22 /quotedbl " " 043 0x23 /numbersign # 044 0x24 /dollar $ 045 0x25 /percent % 046 0x26 /ampersand & & 047 0x27 /quoteright ' 050 0x28 /parenleft ( 051 0x29 /parenright ) 052 0x2a /asterisk * 053 0x2b /plus + 054 0x2c /comma , 055 0x2d /hyphen - 056 0x2e /period . 057 0x2f /slash / 060 0x30 /zero 0 061 0x31 /one 1 062 0x32 /two 2 063 0x33 /three 3 064 0x34 /four 4 065 0x35 /five 5 066 0x36 /six 6 067 0x37 /seven 7 070 0x38 /eight 8 071 0x39 /nine 9 072 0x3a /colon : 073 0x3b /semicolon ; 074 0x3c /less < < 075 0x3d /equal = 076 0x3e /greater > > 077 0x3f /question ? 0100 0x40 /at @ 0101 0x41 /A A 0102 0x42 /B B 0103 0x43 /C C 0104 0x44 /D D 0105 0x45 /E E 0106 0x46 /F F 0107 0x47 /G G 0110 0x48 /H H 0111 0x49 /I I 0112 0x4a /J J 0113 0x4b /K K 0114 0x4c /L L 0115 0x4d /M M 0116 0x4e /N N 0117 0x4f /O O 0120 0x50 /P P 0121 0x51 /Q Q 0122 0x52 /R R 0123 0x53 /S S 0124 0x54 /T T 0125 0x55 /U U 0126 0x56 /V V 0127 0x57 /W W 0130 0x58 /X X 0131 0x59 /Y Y 0132 0x5a /Z Z 0133 0x5b /bracketleft [ 0134 0x5c /backslash \ 0135 0x5d /bracketright ] 0136 0x5e /asciicircum ^ 0137 0x5f /underscore _ 0140 0x60 /quoteleft ` 0141 0x61 /a a 0142 0x62 /b b 0143 0x63 /c c 0144 0x64 /d d 0145 0x65 /e e 0146 0x66 /f f 0147 0x67 /g g 0150 0x68 /h h 0151 0x69 /i i 0152 0x6a /j j 0153 0x6b /k k 0154 0x6c /l l 0155 0x6d /m m 0156 0x6e /n n 0157 0x6f /o o 0160 0x70 /p p 0161 0x71 /q q 0162 0x72 /r r 0163 0x73 /s s 0164 0x74 /t t 0165 0x75 /u u 0166 0x76 /v v 0167 0x77 /w w 0170 0x78 /x x 0171 0x79 /y y 0172 0x7a /z z 0173 0x7b /braceleft { 0174 0x7c /bar | 0175 0x7d /braceright } 0176 0x7e /tilde ~ 0177 0x7f non-printable 0200 0x80 non-printable 0201 0x81 non-printable 0202 0x82 non-printable 0203 0x83 non-printable 0204 0x84 non-printable 0205 0x85 non-printable 0206 0x86 non-printable 0207 0x87 non-printable 0210 0x88 non-printable 0211 0x89 non-printable 0212 0x8a non-printable 0213 0x8b non-printable 0214 0x8c non-printable 0215 0x8d non-printable 0216 0x8e non-printable 0217 0x8f non-printable 0220 0x90 non-printable 0221 0x91 non-printable 0222 0x92 non-printable 0223 0x93 non-printable 0224 0x94 non-printable 0225 0x95 non-printable 0226 0x96 non-printable 0227 0x97 non-printable 0230 0x98 non-printable 0231 0x99 non-printable 0232 0x9a non-printable 0233 0x9b non-printable 0234 0x9c non-printable 0235 0x9d non-printable 0236 0x9e non-printable 0237 0x9f non-printable 0240 0xa0 /space   0241 0xa1 /quoteleft ` 0242 0xa2 /quoteright ' 0243 0xa3 /sterling £ 0244 0xa4 non-printable 0245 0xa5 non-printable 0246 0xa6 /brokenbar ¦ 0247 0xa7 /section § 0250 0xa8 /dieresis ¨ 0251 0xa9 /copyright © 0252 0xaa non-printable 0253 0xab /guillemotleft « 0254 0xac /logicalnot ¬ 0255 0xad /hyphen ­ 0256 0xae non-printable 0257 0xaf /endash ¯ 0260 0xb0 /degree ° 0261 0xb1 /plusminus ± 0262 0xb2 /twosuperior ² 0263 0xb3 /threesuperior ³ 0264 0xb4 /acute ´ 0265 0xb5 /dieresisacute µ 0266 0xb6 /afii9936 ¶ 0267 0xb7 /periodcentered · 0270 0xb8 /afii9937 ¸ 0271 0xb9 /afii9938 ¹ 0272 0xba /afii9939 º 0273 0xbb /guillemotright » 0274 0xbc /afii9940 ¼ 0275 0xbd /onehalf ½ 0276 0xbe /afii9941 ¾ 0277 0xbf /afii9942 ¿ 0300 0xc0 /afii9977 À 0301 0xc1 /afii9793 Á 0302 0xc2 /afii9794  0303 0xc3 /afii9796 à 0304 0xc4 /afii9797 Ä 0305 0xc5 /afii9798 Å 0306 0xc6 /afii9801 Æ 0307 0xc7 /afii9802 Ç 0310 0xc8 /afii9803 È 0311 0xc9 /afii9804 É 0312 0xca /afii9805 Ê 0313 0xcb /afii9806 Ë 0314 0xcc /afii9807 Ì 0315 0xcd /afii9808 Í 0316 0xce /afii9809 Î 0317 0xcf /afii9810 Ï 0320 0xd0 /afii9811 Ð 0321 0xd1 /afii9813 Ñ 0322 0xd2 non-printable 0323 0xd3 /afii9814 Ó 0324 0xd4 /afii9816 Ô 0325 0xd5 /afii9817 Õ 0326 0xd6 /afii9818 Ö 0327 0xd7 /afii9819 × 0330 0xd8 /afii9820 Ø 0331 0xd9 /afii9821 Ù 0332 0xda /afii9943 Ú 0333 0xdb /afii9944 Û 0334 0xdc /afii9968 Ü 0335 0xdd /afii9969 Ý 0336 0xde /afii9970 Þ 0337 0xdf /afii9971 ß 0340 0xe0 /afii9978 à 0341 0xe1 /afii9825 á 0342 0xe2 /afii9826 â 0343 0xe3 /afii9828 ã 0344 0xe4 /afii9829 ä 0345 0xe5 /afii9830 å 0346 0xe6 /afii9833 æ 0347 0xe7 /afii9834 ç 0350 0xe8 /afii9835 è 0351 0xe9 /afii9836 é 0352 0xea /afii9837 ê 0353 0xeb /afii9838 ë 0354 0xec /afii9839 ì 0355 0xed /afii9840 í 0356 0xee /afii9841 î 0357 0xef /afii9842 ï 0360 0xf0 /afii9843 ð 0361 0xf1 /afii9845 ñ 0362 0xf2 /afii9847 ò 0363 0xf3 /afii9846 ó 0364 0xf4 /afii9848 ô 0365 0xf5 /afii9849 õ 0366 0xf6 /afii9850 ö 0367 0xf7 /afii9851 ÷ 0370 0xf8 /afii9852 0371 0xf9 /afii9853 ù 0372 0xfa /afii9975 ú 0373 0xfb /afii9976 û 0374 0xfc /afii9972 ü 0375 0xfd /afii9973 ý 0376 0xfe /afii9974 þ 0377 0xff non-printable enscript-1.6.5.90/missing0000755000175000017500000002623311606344073012133 00000000000000#! /bin/sh # Common stub for a few missing GNU programs while installing. scriptversion=2009-04-28.21; # UTC # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, # 2008, 2009 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, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' sed_minuso='s/.* -o \([^ ]*\).*/\1/p' # 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' autom4te touch the output file, or create a stub one 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] Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and \`g' are ignored when checking the name. 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 # normalize program name to check for. program=`echo "$1" | sed ' s/^gnu-//; t s/^gnu//; t s/^g//; t'` # 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). This is about non-GNU programs, so use $1 not # $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 $program 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 "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` 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 test $# -ne 1; then eval LASTARG="\${$#}" case $LASTARG in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.h fi ;; esac fi if test ! -f y.tab.h; then echo >y.tab.h fi if test ! -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 test $# -ne 1; then eval LASTARG="\${$#}" case $LASTARG in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if test ! -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 "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit $? 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 "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` 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-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: enscript-1.6.5.90/mtr_small.eps0000644000175000017500000003060611132443251013226 00000000000000%!PS-Adobe-2.0 EPSF-2.0 %%Title: /home/mtr/myprogs/enscript/mtr_tiny.eps %%Creator: XV Version 3.10a Rev: 12/29/94 - by John Bradley %%BoundingBox: 279 398 317 443 %%Pages: 1 %%DocumentFonts: %%EndComments %%EndProlog %%Page: 1 1 % remember original state /origstate save def % build a temporary dictionary 20 dict begin % define string to hold a scanline's worth of data /pix 114 string def % define space for color conversions /grays 38 string def % space for gray scale line /npixls 0 def /rgbindx 0 def % lower left corner 279 398 translate % size of image (on paper, in 1/72inch coords) 38.01600 45.00000 scale % define 'colorimage' if it isn't defined % ('colortogray' and 'mergeprocs' come from xwd2ps % via xgrab) /colorimage where % do we know about 'colorimage'? { pop } % yes: pop off the 'dict' returned { % no: define one /colortogray { % define an RGB->I function /rgbdata exch store % call input 'rgbdata' rgbdata length 3 idiv /npixls exch store /rgbindx 0 store 0 1 npixls 1 sub { grays exch rgbdata rgbindx get 20 mul % Red rgbdata rgbindx 1 add get 32 mul % Green rgbdata rgbindx 2 add get 12 mul % Blue add add 64 idiv % I = .5G + .31R + .18B put /rgbindx rgbindx 3 add store } for grays 0 npixls getinterval } bind def % Utility procedure for colorimage operator. % This procedure takes two procedures off the % stack and merges them into a single procedure. /mergeprocs { % def dup length 3 -1 roll dup length dup 5 1 roll 3 -1 roll add array cvx dup 3 -1 roll 0 exch putinterval dup 4 2 roll putinterval } bind def /colorimage { % def pop pop % remove 'false 3' operands {colortogray} mergeprocs image } bind def } ifelse % end of 'false' case 38 45 8 % dimensions of data [38 0 0 -45 0 45] % mapping matrix {currentfile pix readhexstring pop} false 3 colorimage b5b5b5bababababababcbcbcbcbcbcbcbcbcbcbcbcbababababababababababababababa bcbcbcbababababababababab6b6b6b6b6b6b4b4b4b4b4b4b2b2b2808080a0a0a0a0a0a0 6262629393936c6c6ca7a7a7a3a3a3a4a4a4adadadc3c3c3d4d4d41a1a1a202020212121 212121212121 bababababababcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbabababababababababababa babababababab8b8b8b9b9b9b6b6b6b6b6b6b4b4b4b4b4b4b2b2b27f7f7f7171716f6f6f 6f6f6f6d6d6d6e6e6e7070705c5c5c5a5a5a4949495151515c5c5c6c6c6c7e7e7e818181 6b6b6b838383 bababababababcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbabababababab8b8b8b8b8b8 b8b8b8b8b8b8b6b6b6b6b6b6b4b4b4b4b4b4b4b4b4b2b2b2adadad818181737373747474 7878787373737575757777776d6d6d7777776c6c6c6b6b6b6d6d6d707070838383797979 6060607f7f7f b9b9b9bcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbababab8b8b8b8b8b8b8b8b8b8b8b8 b6b6b6b6b6b6b8b8b8b7b7b7acacacadadadb0b0b0afafafaaaaaa818181696969636363 7070706c6c6c6969697a7a7a7272726a6a6a7171715d5d5d6a6a6a6b6b6b6161616f6f6f 5b5b5b616161 bababababababcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbababab8b8b8b8b8b8b8b8b8b7b7b7 babababcbcbc6868688080808282826666668a8a8a8686867e7e7e8282827c7c7c727272 7979798888886969697878787979796e6e6e7272725c5c5c6c6c6c6969696363636e6e6e 575757646464 bcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbababab8b8b8bababab6b6b6b8b8b8b8b8b8 5858586161616363636565656868686969694e4e4e6464647272727979796b6b6b808080 7777776a6a6a7272726262626d6d6d7272727272725b5b5b6464646c6c6c6a6a6a6d6d6d 5b5b5b5e5e5e bcbcbcbabababcbcbcbcbcbcbabababcbcbcbababab8b8b8b6b6b6b5b5b58484844a4a4a 4b4b4b6b6b6b5e5e5e6464645f5f5f5e5e5e6c6c6c6969695a5a5a575757696969808080 5050504848483d3d3d5454546d6d6d6e6e6e6f6f6f5959596464646e6e6e6868686d6d6d 575757626262 babababcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbabababababab3b3b3646464333333484848 3d3d3d4d4d4d5555555353536060606060602828282525255959596b6b6b6767675f5f5f 4343433030303a3a3a5c5c5c7272727070707171715e5e5e6060607171716969696b6b6b 5a5a5a616161 babababcbcbcbcbcbcbcbcbcbabababababab8b8b8b4b4b46161613d3d3d3c3c3c383838 3f3f3f373737262626474747484848494949484848505050444444686868616161454545 3e3e3e3e3e3e5252527373737878786e6e6e7070705e5e5e6161617171716b6b6b6b6b6b 636363646464 bcbcbcbcbcbcbcbcbcbcbcbcbabababababab8b8b89191912b2b2b2f2f2f3c3c3c353535 3535353434343131313f3f3f4848484a4a4a2d2d2d4242424f4f4f7373737474747f7f7f 8383836363635a5a5a7c7c7c7c7c7c6e6e6e7272726060606060607171716a6a6a6c6c6c 666666646464 babababcbcbcbcbcbcbababababababababab7b7b73737372828282d2d2d3b3b3b2c2c2c 2f2f2f2b2b2b2929292727272929293333334242425151516a6a6a7b7b7b7f7f7f909090 a4a4a49d9d9d5959597474748c8c8c9797977676766969699b9b9b7070707373738b8b8b 696969717171 bcbcbcbabababababababababababab8b8b89f9f9f2727272929292b2b2b2d2d2d2c2c2c 2b2b2b2929293131313636363030303434344545455454547373737e7e7e8989899a9a9a b5b5b5bcbcbc5858587575758f8f8f7e7e7e7676766c6c6c6c6c6c747474707070727272 6d6d6d6f6f6f bcbcbcbcbcbcbabababababab8b8b8b7b7b73737372727272f2f2f2929293535352e2e2e 3232322424242727273131313939394242425757576d6d6d7a7a7a7e7e7e8a8a8a949494 adadadc2c2c27474746565659494949494948989898686868888888686868686868a8a8a 8383838a8a8a babababababababababababab8b8b8b5b5b52b2b2b2929292b2b2b282828262626262626 2b2b2b2e2e2e3939394040404747475252526262627474747b7b7b7f7f7f868686969696 b0b0b0c4c4c49898984f4f4f8888888f8f8f4141412a2a2a2626262424242c2c2c303030 373737363636 babababababababababababab8b8b8b9b9b9222222272727262626272727272727292929 3030303b3b3b4646465050505656566464646767677171717575757a7a7a8686869a9a9a b0b0b0bebebeb3b3b36363637474747878785d5d5d5e5e5e6262624040404848485e5e5e 505050555555 bababab8b8b8b8b8b8b8b8b8b6b6b6acacac3131312c2c2c2c2c2c303030313131383838 4444444f4f4f5656565d5d5d6060606969696969696d6d6d6d6d6d7878787e7e7e8a8a8a b2b2b2bcbcbcbfbfbf7f7f7f6b6b6b6a6a6a6565656f6f6f6d6d6d6f6f6f747474757575 535353575757 bababab8b8b8b8b8b8b8b8b8b6b6b6b2b2b22f2f2f2a2a2a3131313535353e3e3e464646 4c4c4c5454545959595b5b5b5b5b5b5e5e5e686868646464696969707070767676737373 8d8d8dadadadc2c2c24646466363636464646666665f5f5f6e6e6e717171696969757575 5d5d5d5b5b5b b8b8b8b8b8b8b6b6b6b8b8b8b6b6b6b3b3b33535353131313131313a3a3a4747474d4d4d 5050504545454545454343434e4e4e5050505d5d5d626262676767595959444444393939 4b4b4b6b6b6bb5b5b54848486a6a6a6969696363636666666e6e6e6e6e6e6f6f6f787878 6262626a6a6a b8b8b8b8b8b8b6b6b6b6b6b6b6b6b6b2b2b24e4e4e3939393535353c3c3c4f4f4f515151 4242424444444747474040404040404949495151516a6a6a9a9a9a4f4f4f363636343434 3e3e3e676767a1a1a17d7d7d5d5d5d6464646262625d5d5d6969696c6c6c646464787878 646464626262 b8b8b8b8b8b8b6b6b6b6b6b6b6b6b6b4b4b4a9a9a92c2c2c3a3a3a3f3f3f555555535353 5656563838382525253e3e3e3d3d3d404040494949626262919191565656494949363636 8989897d7d7d9f9f9fa2a2a26b6b6b6161615e5e5e5d5d5d6666666a6a6a676767737373 646464676767 b6b6b6b6b6b6b6b6b6b6b6b6b4b4b4b2b2b2afafaf484848424242464646525252535353 4545454646463737374343434646464343434a4a4a5c5c5c8989897272725b5b5b6b6b6b 8e8e8ec9c9c9b0b0b0a4a4a47676765959595e5e5e5b5b5b666666676767656565717171 646464686868 b6b6b6b6b6b6b6b6b6b4b4b4b4b4b4b2b2b2b0b0b02828283e3e3e4b4b4b555555575757 5454545656565858586161614f4f4f4747475454545959598e8e8eb0b0b07d7d7d7b7b7b a4a4a4b7b7b7b6b6b68484847b7b7b5959595d5d5d5e5e5e636363666666676767737373 5d5d5d686868 b6b6b6b6b6b6b4b4b4b4b4b4b4b4b4b2b2b2aeaeae8a8a8a4e4e4e4f4f4f575757575757 5959595858585f5f5f5d5d5d5757575757575151515a5a5a8c8c8cb6b6b6ababab949494 8f8f8fb0b0b0c1c1c13a3a3a6666665656565a5a5a5b5b5b626262656565696969727272 848484909090 b4b4b4b4b4b4b4b4b4b4b4b4b2b2b2b2b2b2aeaeaeafafaf4d4d4d474747595959595959 5b5b5b5a5a5a5b5b5b5b5b5b555555525252505050616161818181b7b7b79f9f9fa2a2a2 969696a3a3a3b7b7b79b9b9b6969696767675454546060606464646161616e6e6e6d6d6d 626262656565 b4b4b4b4b4b4b2b2b2b2b2b2b0b0b0b0b0b0acacaca7a7a7555555383838606060595959 5959595959595b5b5b5d5d5d5c5c5c5454545c5c5c5f5f5f6b6b6bb6b6b6969696a2a2a2 aeaeaea4a4a4afafaf9e9e9e6868687676765454546262626262625c5c5c7f7f7f757575 616161909090 b2b2b2b2b2b2b2b2b2b2b2b2b0b0b0aeaeaeacacacaaaaaa818181515151606060595959 5959595959595e5e5e6060605e5e5e5252524040403c3c3c5c5c5c797979a3a3a3a1a1a1 a9a9a9abababb4b4b4a5a5a56868686868684d4d4d5a5a5a5c5c5c5959596b6b6b767676 6b6b6b777777 b2b2b2b2b2b2b4b4b4b0b0b0b0b0b0aeaeaeacacaca8a8a8a7a7a75353535c5c5c5b5b5b 5959596060605e5e5e5f5f5f5f5f5f5e5e5e484848515151767676afafaf9e9e9ea1a1a1 b0b0b0b5b5b5b9b9b95959596a6a6a6969697b7b7b8080808888888e8e8e929292949494 9c9c9c9c9c9c b0b0b0b2b2b2aeaeaea5a5a5aeaeaeacacacaaaaaaa8a8a8a4a4a48b8b8b646464595959 5b5b5b5e5e5e5b5b5b5f5f5f5e5e5e5f5f5f616161595959616161a6a6a69e9e9eadadad b6b6b6bcbcbcc3c3c32828283b3b3b3d3d3d3f3f3f4747474646464d4d4d535353555555 575757585858 b0b0b0b0b0b0aeaeaeaeaeaeacacacacacacaaaaaaa8a8a8a4a4a4a2a2a2a1a1a15f5f5f 5b5b5b5e5e5e5f5f5f5d5d5d5b5b5b5d5d5d4949494444445959595a5a5a969696969696 b9b9b9bebebea8a8a89999994242423f3f3f4545454141413535355252525b5b5b535353 5f5f5f626262 b0b0b0b0b0b0aeaeaeaeaeaeaeaeaeaaaaaaaaaaaaa4a4a4a4a4a4a2a2a2a3a3a3575757 5959596161616161615e5e5e5555553131312c2c2c2e2e2e4242427070706b6b6b595959 b3b3b3bebebe838383ababab4d4d4d5353534f4f4f4040403434344d4d4d4b4b4b555555 5555555b5b5b b0b0b0b0b0b0aeaeaeaeaeaeacacacaaaaaaa6a6a6a4a4a4a2a2a2a0a0a0a0a0a05b5b5b 5d5d5d5e5e5e5e5e5e5b5b5b5555555555555151514b4b4b5a5a5a6d6d6d818181989898 a6a6a6b9b9b9939393b4b4b44848485555555959594343432e2e2e4949494b4b4b494949 5a5a5a727272 aeaeaeaeaeaeacacacaeaeaeaaaaaaa8a8a8a6a6a6a2a2a2a2a2a2a0a0a0a0a0a05c5c5c 5f5f5f6262626464645d5d5d575757555555535353555555595959686868797979808080 a7a7a7b0b0b0adadadbebebe4646465555555d5d5d3636362828284242424c4c4c474747 545454686868 aeaeaeaeaeaeacacacacacacacacaca8a8a8a4a4a4a2a2a2a0a0a0a0a0a0a0a0a0555555 5e5e5e6464646363635c5c5c5a5a5a5757575555555353536363638585859090908f8f8f afafafadadadb0b0b0c2c2c24545455353535555552121212222224343438282828d8d8d 9d9d9d848484 aeaeaeacacacacacacacacacaaaaaaa8a8a8a4a4a4a2a2a2a0a0a09f9f9f8a8a8a4d4d4d 5656565a5a5a6161615e5e5e5959595959595757575454545b5b5b7a7a7a9c9c9ca4a4a4 b9b9b9adadadb0b0b0b2b2b24444444f4f4f4848481f1f1f2727276060607b7b7b6c6c6c 888888b4b4b4 acacacacacacacacacaaaaaaa8a8a8a6a6a6a5a5a5a0a0a0a0a0a0939393959595676767 5252525757575959595d5d5d6262625f5f5f5555555959595c5c5c6e6e6e818181979797 aaaaaaa4a4a4afafaf9a9a9a4141414949493c3c3c2222222121216969694a4a4a5a5a5a 595959747474 aeaeaeacacacacacacaaaaaaa8a8a8a4a4a4a2a2a2a0a0a0a0a0a07676769999997d7d7d 5e5e5e5757575757575b5b5b5d5d5d6868686868686a6a6a6f6f6f808080a9a9a9b5b5b5 b7b7b73535352d2d2d2727272121219292929090908f8f8f8f8f8f8c8c8c939393242424 222222242424 acacacaaaaaaaaaaaaa8a8a8a6a6a6a4a4a4a0a0a0bcbcbcb7b7b78080809f9f9fa2a2a2 7171714949495858585757575d5d5d6161616161616d6d6d838383b1b1b1c0c0c0b6b6b6 b0b0b01a1a1a2f2f2f3131313939399292928f8f8f8f8f8f8a8a8a8787878888882a2a2a 262626484848 aaaaaaaaaaaaa8a8a8a6a6a6aaaaaaaeaeaed5d5d58f8f8fa2a2a29c9c9ca2a2a2a2a2a2 7a7a7a9999995454545757575757576161616565656d6d6da2a2a2b2b2b2b4b4b4b8b8b8 7f7f7f2323232d2d2d4646463f3f3f9292928d8d8d8b8b8b8a8a8a848484818181212121 232323393939 aaaaaaa8a8a89f9f9fb1b1b1d1d1d1c5c5c5878787b5b5b5a1a1a1a6a6a68b8b8ba4a4a4 a4a4a4747474a1a1a15555555f5f5f6363636363636a6a6aaaaaaaa9a9a9b0b0b0a3a3a3 9c9c9cc2c2c23535354747473b3b3b8f8f8f8b8b8b8b8b8b8888888282827d7d7d272727 2121212c2c2c a5a5a5babababcbcbcd8d8d8c2c2c29a9a9abfbfbfafafafa8a8a8adadad808080ababab a2a2a28b8b8b9b9b9b717171626262676767696969676767989898abababafafaf474747 a6a6a6f3f3f3e7e7e73f3f3f7171718d8d8d8b8b8b8989898686868282827d7d7d505050 1f1f1f2a2a2a d5d5d5d2d2d2c8c8c8bebebebbbbbbc4c4c4c4c4c48181819e9e9e919191a8a8a8848484 a9a9a9a4a4a47b7b7bbfbfbf6161616d6d6d6d6d6d7070708e8e8eadadad989898363636 a7a7a7f3f3f3e7e7e7e2e2e28888888c8c8c8585858585858181817f7f7f7c7c7c757575 1d1d1d232323 b9b9b9d4d4d4bfbfbfcfcfcfe5e5e5d7d7d7bebebe8d8d8da5a5a59c9c9caeaeae8c8c8c a4a4a4a6a6a69e9e9e838383dddddd7474746f6f6f7a7a7a8b8b8b9e9e9e5d5d5d282828 a8a8a8efefefe1e1e1f0f0f0e8e8e87878787e7e7e7e7e7e7c7c7c7979797272726e6e6e 4c4c4c212121 dededed9d9d9acacacd0d0d0cdcdcd959595c9c9c9a8a8a88f8f8f959595afafafb1b1b1 808080afafafaaaaaa8e8e8e979797dadada6d6d6d7676767c7c7c7878784a4a4a838383 a6a6a6efefefdfdfdfe8e8e8c7c7c7eeeeee8181816767676b6b6b6969696565655f5f5f 5d5d5d3e3e3e dadadadbdbdbd3d3d3b0b0b0d5d5d5949494ccccccbcbcbc828282a1a1a1767676b6b6b6 b6b6b6999999b1b1b1acacac7b7b7bc4c4c4b9b9b9a2a2a26a6a6a6a6a6a3f3f3faeaeae afafaf9c9c9cefefefe0e0e0c0c0c0dededef0f0f0f1f1f14d4d4d5757575454544e4e4e 4d4d4d4a4a4a aaaaaadededecfcfcfc5c5c5dfdfdfabababb0b0b0cfcfcf969696b5b5b5919191bfbfbf c4c4c48c8c8cbcbcbcb5b5b5acacac8383839292929999996868685a5a5a8e8e8eb1b1b1 565656ecececf0f0f0e6e6e6b3b3b3c5c5c5edededf1f1f1eaeaea4141412d2d2d2f2f2f 2e2e2e3a3a3a showpage % stop using temporary dictionary end % restore original state origstate restore %%Trailer enscript-1.6.5.90/AUTHORS0000644000175000017500000000006311132443251011565 00000000000000Authors of GNU enscript Markku Rossi enscript-1.6.5.90/asciifise.txt0000644000175000017500000001346211132443251013224 00000000000000 7 bit ASCII scands (fi, se) character set octal hex PostScript HTML entity character ---------------------------------------------------------------------- 000 0x00 non-printable 001 0x01 non-printable 002 0x02 non-printable 003 0x03 non-printable 004 0x04 non-printable 005 0x05 non-printable 006 0x06 non-printable 007 0x07 non-printable 010 0x08 non-printable 011 0x09 non-printable 012 0x0a non-printable 013 0x0b non-printable 014 0x0c non-printable 015 0x0d non-printable 016 0x0e non-printable 017 0x0f non-printable 020 0x10 non-printable 021 0x11 non-printable 022 0x12 non-printable 023 0x13 non-printable 024 0x14 non-printable 025 0x15 non-printable 026 0x16 non-printable 027 0x17 non-printable 030 0x18 non-printable 031 0x19 non-printable 032 0x1a non-printable 033 0x1b non-printable 034 0x1c non-printable 035 0x1d non-printable 036 0x1e non-printable 037 0x1f non-printable 040 0x20 /space 041 0x21 /exclam ! 042 0x22 /quotedbl " " 043 0x23 /numbersign # 044 0x24 /dollar $ 045 0x25 /percent % 046 0x26 /ampersand & & 047 0x27 /quoteright ' 050 0x28 /parenleft ( 051 0x29 /parenright ) 052 0x2a /asterisk * 053 0x2b /plus + 054 0x2c /comma , 055 0x2d /hyphen - 056 0x2e /period . 057 0x2f /slash / 060 0x30 /zero 0 061 0x31 /one 1 062 0x32 /two 2 063 0x33 /three 3 064 0x34 /four 4 065 0x35 /five 5 066 0x36 /six 6 067 0x37 /seven 7 070 0x38 /eight 8 071 0x39 /nine 9 072 0x3a /colon : 073 0x3b /semicolon ; 074 0x3c /less < < 075 0x3d /equal = 076 0x3e /greater > > 077 0x3f /question ? 0100 0x40 /at @ 0101 0x41 /A A 0102 0x42 /B B 0103 0x43 /C C 0104 0x44 /D D 0105 0x45 /E E 0106 0x46 /F F 0107 0x47 /G G 0110 0x48 /H H 0111 0x49 /I I 0112 0x4a /J J 0113 0x4b /K K 0114 0x4c /L L 0115 0x4d /M M 0116 0x4e /N N 0117 0x4f /O O 0120 0x50 /P P 0121 0x51 /Q Q 0122 0x52 /R R 0123 0x53 /S S 0124 0x54 /T T 0125 0x55 /U U 0126 0x56 /V V 0127 0x57 /W W 0130 0x58 /X X 0131 0x59 /Y Y 0132 0x5a /Z Z 0133 0x5b /Adieresis [ 0134 0x5c /Odieresis \ 0135 0x5d /Aring ] 0136 0x5e /asciicircum ^ 0137 0x5f /underscore _ 0140 0x60 /quoteleft ` 0141 0x61 /a a 0142 0x62 /b b 0143 0x63 /c c 0144 0x64 /d d 0145 0x65 /e e 0146 0x66 /f f 0147 0x67 /g g 0150 0x68 /h h 0151 0x69 /i i 0152 0x6a /j j 0153 0x6b /k k 0154 0x6c /l l 0155 0x6d /m m 0156 0x6e /n n 0157 0x6f /o o 0160 0x70 /p p 0161 0x71 /q q 0162 0x72 /r r 0163 0x73 /s s 0164 0x74 /t t 0165 0x75 /u u 0166 0x76 /v v 0167 0x77 /w w 0170 0x78 /x x 0171 0x79 /y y 0172 0x7a /z z 0173 0x7b /adieresis { 0174 0x7c /odieresis | 0175 0x7d /aring } 0176 0x7e /tilde ~ 0177 0x7f non-printable 0200 0x80 non-printable 0201 0x81 non-printable 0202 0x82 non-printable 0203 0x83 non-printable 0204 0x84 non-printable 0205 0x85 non-printable 0206 0x86 non-printable 0207 0x87 non-printable 0210 0x88 non-printable 0211 0x89 non-printable 0212 0x8a non-printable 0213 0x8b non-printable 0214 0x8c non-printable 0215 0x8d non-printable 0216 0x8e non-printable 0217 0x8f non-printable 0220 0x90 non-printable 0221 0x91 non-printable 0222 0x92 non-printable 0223 0x93 non-printable 0224 0x94 non-printable 0225 0x95 non-printable 0226 0x96 non-printable 0227 0x97 non-printable 0230 0x98 non-printable 0231 0x99 non-printable 0232 0x9a non-printable 0233 0x9b non-printable 0234 0x9c non-printable 0235 0x9d non-printable 0236 0x9e non-printable 0237 0x9f non-printable 0240 0xa0 non-printable 0241 0xa1 non-printable 0242 0xa2 non-printable 0243 0xa3 non-printable 0244 0xa4 non-printable 0245 0xa5 non-printable 0246 0xa6 non-printable 0247 0xa7 non-printable 0250 0xa8 non-printable 0251 0xa9 non-printable 0252 0xaa non-printable 0253 0xab non-printable 0254 0xac non-printable 0255 0xad non-printable 0256 0xae non-printable 0257 0xaf non-printable 0260 0xb0 non-printable 0261 0xb1 non-printable 0262 0xb2 non-printable 0263 0xb3 non-printable 0264 0xb4 non-printable 0265 0xb5 non-printable 0266 0xb6 non-printable 0267 0xb7 non-printable 0270 0xb8 non-printable 0271 0xb9 non-printable 0272 0xba non-printable 0273 0xbb non-printable 0274 0xbc non-printable 0275 0xbd non-printable 0276 0xbe non-printable 0277 0xbf non-printable 0300 0xc0 non-printable 0301 0xc1 non-printable 0302 0xc2 non-printable 0303 0xc3 non-printable 0304 0xc4 non-printable 0305 0xc5 non-printable 0306 0xc6 non-printable 0307 0xc7 non-printable 0310 0xc8 non-printable 0311 0xc9 non-printable 0312 0xca non-printable 0313 0xcb non-printable 0314 0xcc non-printable 0315 0xcd non-printable 0316 0xce non-printable 0317 0xcf non-printable 0320 0xd0 non-printable 0321 0xd1 non-printable 0322 0xd2 non-printable 0323 0xd3 non-printable 0324 0xd4 non-printable 0325 0xd5 non-printable 0326 0xd6 non-printable 0327 0xd7 non-printable 0330 0xd8 non-printable 0331 0xd9 non-printable 0332 0xda non-printable 0333 0xdb non-printable 0334 0xdc non-printable 0335 0xdd non-printable 0336 0xde non-printable 0337 0xdf non-printable 0340 0xe0 non-printable 0341 0xe1 non-printable 0342 0xe2 non-printable 0343 0xe3 non-printable 0344 0xe4 non-printable 0345 0xe5 non-printable 0346 0xe6 non-printable 0347 0xe7 non-printable 0350 0xe8 non-printable 0351 0xe9 non-printable 0352 0xea non-printable 0353 0xeb non-printable 0354 0xec non-printable 0355 0xed non-printable 0356 0xee non-printable 0357 0xef non-printable 0360 0xf0 non-printable 0361 0xf1 non-printable 0362 0xf2 non-printable 0363 0xf3 non-printable 0364 0xf4 non-printable 0365 0xf5 non-printable 0366 0xf6 non-printable 0367 0xf7 non-printable 0370 0xf8 non-printable 0371 0xf9 non-printable 0372 0xfa non-printable 0373 0xfb non-printable 0374 0xfc non-printable 0375 0xfd non-printable 0376 0xfe non-printable 0377 0xff non-printable enscript-1.6.5.90/ChangeLog0000644000175000017500000003355011606331323012300 000000000000002011-07-10 Tim Retout * po/: Sync all translations from the Translation Project. * compat/gettext.h: New file. * compat/Makefile.am (EXTRA_DIST): Add gettext.h. * src/gsint.h: Use gettext.h instead of own libintl.h include. * src/mkafmmap.c: Likewise. * states/defs.h: Likewise. * src/main.c (main): Join ENSCRIPT_LIBRARY error string together for the benefit of translators. Use ngettext when printing number of pages/copies. * states/hl/mail.st: Support extended mail headers. Savannah bug #25440. * src/main.c (usage): Clarify documentation for short forms of optional arguments. 2011-07-09 Tim Retout * src/main.c (handle_options): Add missing 'w' from getopt_long call. Savannah bug #30651. Apply patch 393791-sliceprint from Debian: * scripts/sliceprint.1: Complete documentation. * scripts/sliceprint.in: Force C locale. Use more liberal regexp when parsing wrapped lines message. Add missing space from before args. Savannah bug #31259. * Makefile.am (SUBDIRS): Move intl to be built before compat. * states/Makefile.am: Use $(datadir) instead of $(prefix)/share. Savannah bug #31609. * src/Makefile.am: Likewise. * src/Makefile.am: Remove ansi2knr option and supporting files. * afmlib/Makefile.am: Likewise. * states/utils.c (eval_expr): Fix typo in error string. * states/main.c (usage): Fix typo in --define usage string. 2010-09-10 W. Trevor King * docs/FAQ.html: Fix typo. 2010-06-02 Tim Retout Fix Savannah bug #28769 (segfault when parsing config file). * src/util.c (CFG_FATAL): Call buffer_ptr on &fname to get configuration filename. * src/util.c (read_config): Delay buffer_uninit call on fname until return points. 2010-03-17 Juergen Daubert * src/main.c: Fix ngettext calls to use '1' explicitly. Fixes Savannah bug #29198. 2010-03-07 Tim Retout * src/gsint.h: Remove version_string and ps_version_string. * src/main.c: Likewise. * src/main.c (version): Update copyright and licensing information. Use autoconf variables instead of hardcoded strings. * src/main.c (usage): Add angle brackets around bug address. * src/psgen.c (dump_ps_header): Set ps_version_string here. 2010-03-06 Tim Retout * configure.ac: Set version to 1.6.5.1. * states/hl/Makefile.am (highlightings): Add f90.st. * INSTALL: Move enscript-specific details into README, and remove from the repository (i.e. just use the standard INSTALL file). * README: Replace all old web/mail addresses. * All Makefile.am files: Add ChangeLog.old to EXTRA_DIST. 2010-02-03 Tim Retout * All ChangeLog files in subdirectories have been renamed to ChangeLog.old. All change log entries from 1.6.5 onwards will be made in this file. 2010-01-28 Tim Retout * docs/states.man (are): Fix typo of 'beginning'. * docs/enscript.man: Fix three misspellings of 'dependent'. 2010-01-25 Tim Retout * configure.ac: Set version to 1.6.5. 2009-12-31 Tim Retout * configure.ac: Set version to 1.6.4.91. 2009-12-27 Tim Retout * configure.ac: Set version to 1.6.4.90. * NEWS: Add noteworthy changes for 1.6.5, and a placeholder for 1.6.4. 2009-01-13 Tim Retout * COPYING: Update to GPLv3 * All files: Update license headers to GPLv3. 2008-02-03 Tim Retout * Makefile.am (EXTRA_DIST): Remove ABOUT-NLS, THANKS and config.rpath, because these will be distributed anyway. Remove autoconf-generated files. * configure: Remove from repository. Remove automake-generated files. * Makefile.in: Remove from repository. * afm/Makefile.in: Likewise. * afmlib/Makefile.in: Likewise. * afmlib/ansi2knr.1: Likewise. * afmlib/ansi2knr.c: Likewise. * compat/Makefile.in: Likewise. * config.guess: Likewise. * config.sub: Likewise. * depcomp: Likewise. * docs/Makefile.in: Likewise. * docs/mdate-sh: Likewise. * docs/texinfo.tex: Likewise. * install-sh: Likewise. * lib/Makefile.in: Likewise. * missing: Likewise. * mkinstalldirs: Likewise. * scripts/Makefile.in: Likewise. * src/Makefile.in: Likewise. * src/ansi2knr.1: Likewise. * src/ansi2knr.c: Likewise. * src/tests/Makefile.in: Likewise. * states/Makefile.in: Likewise. * states/hl/Makefile.in: Likewise. * states/tests/Makefile.in: Likewise. * w32/Makefile.in: Likewise. Remove autopoint-generated files. * ABOUT-NLS: Remove from repository. * config.rpath: Likewise. * intl/ChangeLog: Likewise. * intl/Makefile.in: Likewise. * intl/VERSION: Likewise. * intl/bindtextdom.c: Likewise. * intl/config.charset: Likewise. * intl/dcgettext.c: Likewise. * intl/dcigettext.c: Likewise. * intl/dcngettext.c: Likewise. * intl/dgettext.c: Likewise. * intl/dngettext.c: Likewise. * intl/eval-plural.h: Likewise. * intl/explodename.c: Likewise. * intl/finddomain.c: Likewise. * intl/gettext.c: Likewise. * intl/gettextP.h: Likewise. * intl/gmo.h: Likewise. * intl/hash-string.h: Likewise. * intl/intl-compat.c: Likewise. * intl/l10nflist.c: Likewise. * intl/libgnuintl.h: Likewise. * intl/loadinfo.h: Likewise. * intl/loadmsgcat.c: Likewise. * intl/localcharset.c: Likewise. * intl/locale.alias: Likewise. * intl/localealias.c: Likewise. * intl/localename.c: Likewise. * intl/ngettext.c: Likewise. * intl/os2compat.c: Likewise. * intl/os2compat.h: Likewise. * intl/osdep.c: Likewise. * intl/plural-exp.c: Likewise. * intl/plural-exp.h: Likewise. * intl/plural.c: Likewise. * intl/plural.y: Likewise. * intl/ref-add.sin: Likewise. * intl/ref-del.sin: Likewise. * intl/textdomain.c: Likewise. Remove the 'm4' directory from the repository. * Makefile.am (SUBDIRS): Remove 'm4' directory. * configure.ac: Remove 'm4/Makefile' from AC_CONFIG_FILES. * m4/ChangeLog: Remove from repository. * m4/codeset.m4: Likewise. * m4/gettext.m4: Likewise. * m4/glibc21.m4: Likewise. * m4/iconv.m4: Likewise. * m4/intdiv0.m4: Likewise. * m4/inttypes_h.m4: Likewise. * m4/inttypes.m4: Likewise. * m4/inttypes-pri.m4: Likewise. * m4/isc-posix.m4: Likewise. * m4/lcmessage.m4: Likewise. * m4/lib-ld.m4: Likewise. * m4/lib-link.m4: Likewise. * m4/lib-prefix.m4: Likewise. * m4/Makefile.am: Likewise. * m4/Makefile.in: Likewise. * m4/progtest.m4: Likewise. * m4/stdint_h.m4: Likewise. * m4/uintmax_t.m4: Likewise. * m4/ulonglong.m4: Likewise. 2008-01-29 Tim Retout * configure.ac: Remove AC_CONFIG_COMMANDS macro that was leaving stamp-h files around after `make clean'. * aclocal.m4: Removed from repository. Can be generated with `aclocal'. * config.h.in: Likewise. Can be generated with `autoheader'. 2008-01-06 Tim Retout * configure.ac: Add AM_GNU_GETTEXT_VERSION([0.17]). Remove ALL_LINGUAS. 2008-01-02 Tim Retout * configure.ac: Add description to PATH_SEPARATOR and PATH_SEPARATOR_STR definitions. * acconfig.h: Remove. Silences autoheader warning. * configure.ac (AC_INIT): Quote arguments. (AC_PREREQ): Bump required autoconf version to 2.61. (AM_CONFIG_HEADER): Change to AC_CONFIG_HEADERS, quote arguments. (AC_STDC_HEADERS): Change to AC_HEADER_STDC, quote arguments. (AC_HAVE_HEADERS): Change to AC_CHECK_HEADERS, quote arguments. Result of running autoupdate. Also tidy order of macros. * configure.ac (AC_ISC_POSIX): Replace with AC_USE_SYSTEM_EXTENSIONS to silence some aclocal warnings. * configure.ac (AC_REVISION): Remove. * configure.in: Rename to `configure.ac'. 2008-01-01 Tim Retout * configure.in: Remove --with-cc option from configure script. Remove test for empty CC from around AC_PROG_CC macro. * configure.in (AC_INIT): Change bug report address to . Change package name to `GNU Enscript'. * ChangeLog: Run M-x change-log-redate. Add copyright notice at end. 2007-12-29 Tim Retout * Makefile.am (SUBDIRS): Remove duplicate intl. 2007-10-31 Tim Retout * COPYING: Update to latest revision of GPLv2. * all files: Update FSF address in copyright header. 2003-02-28 gettextize * Makefile.am (SUBDIRS): Add intl. * configure.in (AC_OUTPUT): Add intl/Makefile, 2003-02-28 gettextize * Makefile.am (SUBDIRS): Add m4. (ACLOCAL_AMFLAGS): New variable. (EXTRA_DIST): Add config.rpath. * configure.in (AC_OUTPUT): Add po/Makefile.in, (AM_GNU_GETTEXT_VERSION): Bump to 0.11.5. 1999-07-21 Markku Rossi * README: Added a special note for all US users about the enscript's default output media (which is A4 instead of Letter). 1999-01-19 Markku Rossi * Updated automake to version 1.4. 1999-01-14 Markku Rossi * configure.in: Changed autoconf prereq to 2.13. 1999-01-07 Markku Rossi * Updated development tools: autoconf-2.13, automake-1.3d. 1998-12-31 Markku Rossi * configure.in: Removed a historical call of the AC_LINK_FILES. It is handled in the AM_GNU_GETTEXT. 1998-12-29 Markku Rossi * configure.in: Beta version 1.6.2 released. 1998-12-08 Markku Rossi * Updated gettext to version 0.10.35. * configure.in (ALL_LINGUAS): Added `ru'. 1998-11-11 Markku Rossi * configure.in: Added checks for sys/types.h and sys/stat.h headers. 1998-10-23 Markku Rossi * Moved all documentation stuffs to the `docs' subdirectory. * enscript.1.in: Documented the new highlighting options. 1998-10-16 Markku Rossi * enscript.1.in: Updated the ^@font{} escape's syntax. 1998-10-02 Markku Rossi * configure.in: Added more rules to lookup the gethostname() function. It is located in `libsocket.a' in the SCO OpenServer 5. 1998-09-22 Markku Rossi * enscript.1.in: Replaced `@prefix@/share' and `@prefix@/etc' with `@datadir@' and `@sysconfdir@'. 1998-07-06 Markku Rossi * configure.in: Updated version number to 1.6.2. 1998-07-01 Markku Rossi * 88591.txt: Changed 0xb9 to be `/onesuperior' instead of `/dottlessi'. 1998-06-25 Markku Rossi * configure.in: Added check for the strtoul() function. 1998-06-23 Markku Rossi * configure.in (PSLEVEL): added option --with-ps-level to specify the default PostScript language level that enscript should use. 1998-06-16 Markku Rossi * configure.in: Updated version number to 1.6.1. 1998-06-11 Markku Rossi * Renamed all ISO-8859-* encodings to conform their ISO names. All uses changed. 1998-03-25 Markku Rossi * 88597.txt: Added encoding for ISO-8859-7. Thanks to Manolis Lourakis . 1998-03-09 Markku Rossi * Upgraded automake to version 1.2e. * configure.in: Updated version number to 1.5.6. 1997-09-30 Markku Rossi * 88594.txt: Added encoding for ISO-8859-4 character set. Thanks to Ricardas Cepas for the patches. 1997-07-17 Markku Rossi * Upgraded automake to version 1.2. 1997-07-16 Markku Rossi * Makefile.am: Added THANKS file. 1997-05-22 Markku Rossi * configure.in (SPOOLER): added option --with-spooler to specify the system printer spooler. * Added a banner which shows the user definable options and their current values. This should save some emails. 1997-04-14 Markku Rossi * INSTALL: Updated Autoconf related installation information. * Updated COPYING and COPYING.LIB files to the latest ones. 1997-02-12 Markku Rossi * Makefile.am: Added all FAQ related files to the distribution. 1997-01-23 Markku Rossi * configure.in: Added checks form memmove() and memcpy() and added their replacements to compat. Added check for alloca(). 1997-01-21 Markku Rossi * Created a new tests subdirectory which holds the enscript testsuite. * Automake-1.1l. 1996-11-05 Markku Rossi * 88595.txt: New encoding for ISO-8859-5 (ISO Cyrillic) character set. Thanks for Ildar Khabibrakhmanov for the 88595.txt encoding file. 1996-09-08 Markku Rossi * All encoding description files: changed name of the character 0x2d (-) from `/minus' to `/hyphen'. 1996-09-07 Markku Rossi * koi8.txt: New encoding for Adobe's Standard Cyrillic Font KOI8. Thanks for Ildar Khabibrakhmanov for the koi8.txt encoding file. 1996-08-24 Markku Rossi * Updated developement tools: autoconf-2.10, automake-1.1c, gettext-0.10.23. 1996-07-28 Markku Rossi * Changed __P() macro to ___P() in all files where it was used. Now we won't clash with solaris' math.h which defines __P(). 1996-06-13 Markku Rossi * Automake-1.0. * New subdirectory `scripts' for utility scripts. 1996-06-06 Markku Rossi * gettext-0.10.16. 1996-05-06 Markku Rossi * Automake-0.32. 1996-03-14 Markku Rossi * Automake-0.31. * configure.in: Removed CFLAGS and LDFLAGS defaults, use whatever autoconf gives to us. 1996-03-11 Markku Rossi * 88592.txt: fixed character 0xf0 from /eth to /dbar. 1996-02-25 Markku Rossi * Reorganized source tree: - enscript source is moved to the new `src' sub-directory - `afm' directory is renamed to `afmlib' - `afmfiles' directory is renamed to `afm' * Renamed program to `GNU enscript'. * Made to use Automake utility. The old top level Change log has moved to the src subdirectory. Copyright (C) 1996, 1997, 1998, 1999, 2003, 2007, 2008 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. enscript-1.6.5.90/88599.txt0000644000175000017500000001431511132443251011771 00000000000000 ISO-8859-9 (ISO Latin5) character set octal hex PostScript HTML entity character ---------------------------------------------------------------------- 000 0x00 non-printable 001 0x01 non-printable 002 0x02 non-printable 003 0x03 non-printable 004 0x04 non-printable 005 0x05 non-printable 006 0x06 non-printable 007 0x07 non-printable 010 0x08 non-printable 011 0x09 non-printable 012 0x0a non-printable 013 0x0b non-printable 014 0x0c non-printable 015 0x0d non-printable 016 0x0e non-printable 017 0x0f non-printable 020 0x10 non-printable 021 0x11 non-printable 022 0x12 non-printable 023 0x13 non-printable 024 0x14 non-printable 025 0x15 non-printable 026 0x16 non-printable 027 0x17 non-printable 030 0x18 non-printable 031 0x19 non-printable 032 0x1a non-printable 033 0x1b non-printable 034 0x1c non-printable 035 0x1d non-printable 036 0x1e non-printable 037 0x1f non-printable 040 0x20 /space 041 0x21 /exclam ! 042 0x22 /quotedbl " " 043 0x23 /numbersign # 044 0x24 /dollar $ 045 0x25 /percent % 046 0x26 /ampersand & & 047 0x27 /quoteright ' 050 0x28 /parenleft ( 051 0x29 /parenright ) 052 0x2a /asterisk * 053 0x2b /plus + 054 0x2c /comma , 055 0x2d /hyphen - 056 0x2e /period . 057 0x2f /slash / 060 0x30 /zero 0 061 0x31 /one 1 062 0x32 /two 2 063 0x33 /three 3 064 0x34 /four 4 065 0x35 /five 5 066 0x36 /six 6 067 0x37 /seven 7 070 0x38 /eight 8 071 0x39 /nine 9 072 0x3a /colon : 073 0x3b /semicolon ; 074 0x3c /less < < 075 0x3d /equal = 076 0x3e /greater > > 077 0x3f /question ? 0100 0x40 /at @ 0101 0x41 /A A 0102 0x42 /B B 0103 0x43 /C C 0104 0x44 /D D 0105 0x45 /E E 0106 0x46 /F F 0107 0x47 /G G 0110 0x48 /H H 0111 0x49 /I I 0112 0x4a /J J 0113 0x4b /K K 0114 0x4c /L L 0115 0x4d /M M 0116 0x4e /N N 0117 0x4f /O O 0120 0x50 /P P 0121 0x51 /Q Q 0122 0x52 /R R 0123 0x53 /S S 0124 0x54 /T T 0125 0x55 /U U 0126 0x56 /V V 0127 0x57 /W W 0130 0x58 /X X 0131 0x59 /Y Y 0132 0x5a /Z Z 0133 0x5b /bracketleft [ 0134 0x5c /backslash \ 0135 0x5d /bracketright ] 0136 0x5e /asciicircum ^ 0137 0x5f /underscore _ 0140 0x60 /quoteleft ` 0141 0x61 /a a 0142 0x62 /b b 0143 0x63 /c c 0144 0x64 /d d 0145 0x65 /e e 0146 0x66 /f f 0147 0x67 /g g 0150 0x68 /h h 0151 0x69 /i i 0152 0x6a /j j 0153 0x6b /k k 0154 0x6c /l l 0155 0x6d /m m 0156 0x6e /n n 0157 0x6f /o o 0160 0x70 /p p 0161 0x71 /q q 0162 0x72 /r r 0163 0x73 /s s 0164 0x74 /t t 0165 0x75 /u u 0166 0x76 /v v 0167 0x77 /w w 0170 0x78 /x x 0171 0x79 /y y 0172 0x7a /z z 0173 0x7b /braceleft { 0174 0x7c /bar | 0175 0x7d /braceright } 0176 0x7e /tilde ~ 0177 0x7f non-printable 0200 0x80 non-printable 0201 0x81 non-printable 0202 0x82 non-printable 0203 0x83 non-printable 0204 0x84 non-printable 0205 0x85 non-printable 0206 0x86 non-printable 0207 0x87 non-printable 0210 0x88 non-printable 0211 0x89 non-printable 0212 0x8a non-printable 0213 0x8b non-printable 0214 0x8c non-printable 0215 0x8d non-printable 0216 0x8e non-printable 0217 0x8f non-printable 0220 0x90 non-printable 0221 0x91 non-printable 0222 0x92 non-printable 0223 0x93 non-printable 0224 0x94 non-printable 0225 0x95 non-printable 0226 0x96 non-printable 0227 0x97 non-printable 0230 0x98 non-printable 0231 0x99 non-printable 0232 0x9a non-printable 0233 0x9b non-printable 0234 0x9c non-printable 0235 0x9d non-printable 0236 0x9e non-printable 0237 0x9f non-printable 0240 0xa0 /space   0241 0xa1 /exclamdown ¡ 0242 0xa2 /cent ¢ 0243 0xa3 /sterling £ 0244 0xa4 /currency ¤ 0245 0xa5 /yen ¥ 0246 0xa6 /brokenbar ¦ 0247 0xa7 /section § 0250 0xa8 /dieresis ¨ 0251 0xa9 /copyright © 0252 0xaa /ordfeminine ª 0253 0xab /guillemotleft « 0254 0xac /logicalnot ¬ 0255 0xad /hyphen ­ 0256 0xae /registered ® 0257 0xaf /macron ¯ 0260 0xb0 /degree ° 0261 0xb1 /plusminus ± 0262 0xb2 /twosuperior ² 0263 0xb3 /threesuperior ³ 0264 0xb4 /acute ´ 0265 0xb5 /mu µ 0266 0xb6 /paragraph ¶ 0267 0xb7 /bullet · 0270 0xb8 /cedilla ¸ 0271 0xb9 /onesuperior ¹ 0272 0xba /ordmasculine º 0273 0xbb /guillemotright » 0274 0xbc /onequarter ¼ 0275 0xbd /onehalf ½ 0276 0xbe /threequarters ¾ 0277 0xbf /questiondown ¿ 0300 0xc0 /Agrave À À 0301 0xc1 /Aacute Á Á 0302 0xc2 /Acircumflex   0303 0xc3 /Atilde à à 0304 0xc4 /Adieresis Ä Ä 0305 0xc5 /Aring Å Å 0306 0xc6 /AE Æ Æ 0307 0xc7 /Ccedilla Ç Ç 0310 0xc8 /Egrave È È 0311 0xc9 /Eacute É É 0312 0xca /Ecircumflex Ê Ê 0313 0xcb /Edieresis Ë Ë 0314 0xcc /Igrave Ì Ì 0315 0xcd /Iacute Í Í 0316 0xce /Icircumflex Î Î 0317 0xcf /Idieresis Ï Ï 0320 0xd0 /Gbreve Ð 0321 0xd1 /Ntilde Ñ Ñ 0322 0xd2 /Ograve Ò Ò 0323 0xd3 /Oacute Ó Ó 0324 0xd4 /Ocircumflex Ô Ô 0325 0xd5 /Otilde Õ Õ 0326 0xd6 /Odieresis Ö Ö 0327 0xd7 /multiply × 0330 0xd8 /Oslash Ø Ø 0331 0xd9 /Ugrave Ù Ù 0332 0xda /Uacute Ú Ú 0333 0xdb /Ucircumflex Û Û 0334 0xdc /Udieresis Ü Ü 0335 0xdd /Idotaccent Ý 0336 0xde /Scedilla Þ 0337 0xdf /germandbls ß ß 0340 0xe0 /agrave à à 0341 0xe1 /aacute á á 0342 0xe2 /acircumflex â â 0343 0xe3 /atilde ã ã 0344 0xe4 /adieresis ä ä 0345 0xe5 /aring å å 0346 0xe6 /ae æ æ 0347 0xe7 /ccedilla ç ç 0350 0xe8 /egrave è è 0351 0xe9 /eacute é é 0352 0xea /ecircumflex ê ê 0353 0xeb /edieresis ë ë 0354 0xec /igrave ì ì 0355 0xed /iacute í í 0356 0xee /icircumflex î î 0357 0xef /idieresis ï ï 0360 0xf0 /gbreve ð 0361 0xf1 /ntilde ñ ñ 0362 0xf2 /ograve ò ò 0363 0xf3 /oacute ó ó 0364 0xf4 /ocircumflex ô ô 0365 0xf5 /otilde õ õ 0366 0xf6 /odieresis ö ö 0367 0xf7 /divide ÷ 0370 0xf8 /oslash ø ø 0371 0xf9 /ugrave ù ù 0372 0xfa /uacute ú ú 0373 0xfb /ucircumflex û û 0374 0xfc /udieresis ü ü 0375 0xfd /dotlessi ý 0376 0xfe /scedilla þ 0377 0xff /ydieresis ÿ ÿ