summaryrefslogtreecommitdiffstats
path: root/app-text/a2ps/files
diff options
context:
space:
mode:
authorSuren A. Chilingaryan <csa@suren.me>2019-09-01 00:00:32 +0200
committerSuren A. Chilingaryan <csa@suren.me>2019-09-01 00:00:32 +0200
commitca9627e70852f6b2e835660df870fe3ab405882d (patch)
tree0a008b1d5b16fa0679a195ed7b5662c7891f591c /app-text/a2ps/files
downloaddarklin4-ca9627e70852f6b2e835660df870fe3ab405882d.tar.gz
darklin4-ca9627e70852f6b2e835660df870fe3ab405882d.tar.bz2
darklin4-ca9627e70852f6b2e835660df870fe3ab405882d.tar.xz
darklin4-ca9627e70852f6b2e835660df870fe3ab405882d.zip
Initial import
Diffstat (limited to 'app-text/a2ps/files')
-rw-r--r--app-text/a2ps/files/50a2ps-gentoo.el5
-rw-r--r--app-text/a2ps/files/a2ps-4.13-manpage-chmod.patch12
-rw-r--r--app-text/a2ps/files/a2ps-4.13-select-freebsd.patch57
-rw-r--r--app-text/a2ps/files/a2ps-4.13-stdout.diff13
-rw-r--r--app-text/a2ps/files/a2ps-4.13c-emacs.patch10
-rw-r--r--app-text/a2ps/files/a2ps-4.13c-fixps.patch19
-rw-r--r--app-text/a2ps/files/a2ps-4.13c-fnmatch-replacement.patch43
-rw-r--r--app-text/a2ps/files/a2ps-4.13c-locale-gentoo.diff25
-rw-r--r--app-text/a2ps/files/a2ps-4.13c-psmandup.diff19
-rw-r--r--app-text/a2ps/files/a2ps-4.13c-psset.patch11
-rw-r--r--app-text/a2ps/files/a2ps-4.13c-stdarg.patch74
-rw-r--r--app-text/a2ps/files/a2ps-4.14-check-mempcpy.patch12
-rw-r--r--app-text/a2ps/files/a2ps-4.14-cleanup.patch106
-rw-r--r--app-text/a2ps/files/a2ps-4.14-fix-stpcpy-proto.patch17
-rw-r--r--app-text/a2ps/files/a2ps-4.14-ja-cleanup.patch122
-rw-r--r--app-text/a2ps/files/a2ps-4.14-psset.patch21
-rw-r--r--app-text/a2ps/files/a2ps-4.14-ptrdiff_t.patch14
-rw-r--r--app-text/a2ps/files/a2ps-ds2.patch53
-rwxr-xr-xapp-text/a2ps/files/cyr2ps49
19 files changed, 682 insertions, 0 deletions
diff --git a/app-text/a2ps/files/50a2ps-gentoo.el b/app-text/a2ps/files/50a2ps-gentoo.el
new file mode 100644
index 0000000..3e12daa
--- /dev/null
+++ b/app-text/a2ps/files/50a2ps-gentoo.el
@@ -0,0 +1,5 @@
+(add-to-list 'load-path "@SITELISP@")
+(autoload 'a2ps-mode "a2ps" nil t)
+(autoload 'a2ps-buffer "a2ps-print" nil t)
+(autoload 'a2ps-region "a2ps-print" nil t)
+(add-to-list 'auto-mode-alist '("\\.a2ps\\'" . a2ps-mode))
diff --git a/app-text/a2ps/files/a2ps-4.13-manpage-chmod.patch b/app-text/a2ps/files/a2ps-4.13-manpage-chmod.patch
new file mode 100644
index 0000000..e0c6112
--- /dev/null
+++ b/app-text/a2ps/files/a2ps-4.13-manpage-chmod.patch
@@ -0,0 +1,12 @@
+diff -ur a2ps-4.13.orig/man/Makefile.maint a2ps-4.13/man/Makefile.maint
+--- a2ps-4.13.orig/man/Makefile.maint 2002-03-04 20:46:26.000000000 +0200
++++ a2ps-4.13/man/Makefile.maint 2007-02-19 21:50:29.000000000 +0200
+@@ -20,7 +20,7 @@
+ --include=$(basename $@).x \
+ --include=common.x \
+ $(executable) > $@-t || exit 1; \
+- chmod -w $@-t || exit 1; \
++ chmod a-w $@-t || exit 1; \
+ rm -f $@ || exit 1; \
+ mv $@-t $@ || exit 1; \
+ else \
diff --git a/app-text/a2ps/files/a2ps-4.13-select-freebsd.patch b/app-text/a2ps/files/a2ps-4.13-select-freebsd.patch
new file mode 100644
index 0000000..a2c3889
--- /dev/null
+++ b/app-text/a2ps/files/a2ps-4.13-select-freebsd.patch
@@ -0,0 +1,57 @@
+--- src/select.c.orig Thu Dec 16 02:04:56 1999
++++ src/select.c Sat Aug 21 12:05:31 2004
+@@ -131,6 +131,36 @@
+ return 1;
+ }
+
++/* escapes the name of a file so that the shell groks it in 'single' q.marks.
++ The resulting pointer has to be free()ed when not longer used. */
++char *
++shell_escape(const char *fn)
++{
++ size_t len = 0;
++ const char *inp;
++ char *retval, *outp;
++
++ for(inp = fn; *inp; ++inp)
++ switch(*inp)
++ {
++ case '\'': len += 4; break;
++ default: len += 1; break;
++ }
++
++ outp = retval = malloc(len + 1);
++ if(!outp)
++ return NULL; /* perhaps one should do better error handling here */
++ for(inp = fn; *inp; ++inp)
++ switch(*inp)
++ {
++ case '\'': *outp++ = '\''; *outp++ = '\\'; *outp++ = '\'', *outp++ = '\''; break;
++ default: *outp++ = *inp; break;
++ }
++ *outp = 0;
++
++ return retval;
++}
++
+ /* What says file about the type of a file (result is malloc'd). NULL
+ if could not be run. */
+
+@@ -144,11 +174,15 @@
+ if (IS_EMPTY (job->file_command))
+ return NULL;
+
++ filename = shell_escape(filename);
++ if(filename == NULL)
++ return NULL;
+ /* Call file(1) with the correct option */
+- command = ALLOCA (char, (2
++ command = ALLOCA (char, (4
+ + strlen (job->file_command)
+ + ustrlen (filename)));
+- sprintf (command, "%s %s", job->file_command, (const char *) filename);
++ sprintf (command, "%s '%s'", job->file_command, (const char *) filename);
++ free(filename);
+ message (msg_tool, (stderr, "Reading pipe: `%s'\n", command));
+ file_out = popen (command, "r");
+
diff --git a/app-text/a2ps/files/a2ps-4.13-stdout.diff b/app-text/a2ps/files/a2ps-4.13-stdout.diff
new file mode 100644
index 0000000..1e40e61
--- /dev/null
+++ b/app-text/a2ps/files/a2ps-4.13-stdout.diff
@@ -0,0 +1,13 @@
+--- lib/printers.c.orig Tue Oct 12 00:01:59 1999
++++ lib/printers.c Wed May 2 11:23:25 2001
+@@ -315,8 +315,8 @@
+ res->ppd = NULL; /* Printer's ppd are not read yet */
+
+ /* Output */
+- /* Default is to send to default printer */
+- res->flag_output_is_printer = true;
++ /* Default is to send to stdout */
++ res->flag_output_is_printer = false;
+ res->flag_output_name = NULL;
+ res->output_is_file = true;
+ res->output_name = NULL;
diff --git a/app-text/a2ps/files/a2ps-4.13c-emacs.patch b/app-text/a2ps/files/a2ps-4.13c-emacs.patch
new file mode 100644
index 0000000..f1cd5d9
--- /dev/null
+++ b/app-text/a2ps/files/a2ps-4.13c-emacs.patch
@@ -0,0 +1,10 @@
+--- a2ps-4.13/contrib/emacs/a2ps-print.el.orig 2005-12-05 08:03:48.000000000 +0100
++++ a2ps-4.13/contrib/emacs/a2ps-print.el 2005-12-06 16:38:14.000000000 +0100
+@@ -93,6 +93,7 @@
+ (concat "--center-title=" name)
+ (concat "--footer=" (concat name " Emacs buffer"))
+ (concat "--pretty-print=" filetype)
++ (concat "-d")
+ ;Uncommenting the following gives a print preview (only):
+ ; (concat "--output=/tmp/foo.ps")
+ )
diff --git a/app-text/a2ps/files/a2ps-4.13c-fixps.patch b/app-text/a2ps/files/a2ps-4.13c-fixps.patch
new file mode 100644
index 0000000..13b196f
--- /dev/null
+++ b/app-text/a2ps/files/a2ps-4.13c-fixps.patch
@@ -0,0 +1,19 @@
+--- contrib/fixps.in.orig 2004-12-20 00:11:40.000000000 +0100
++++ contrib/fixps.in 2004-12-20 00:14:12.000000000 +0100
+@@ -38,7 +38,7 @@
+ run_gs=0
+ # What action to perform: fixps, cat, check, and gs
+ task=fixps
+-tmpdir=/tmp/$program.$$
++tmpdir=`mktemp -d -t fixps.XXXXXX` || { echo "$program: Cannot create temporary dir!" >&2 ; exit 1; }
+ verbose=echo
+
+ # The version/usage strings
+@@ -191,7 +191,6 @@
+ trap "/bin/rm -rf $tmpdir" 0 1 2 3 13 15
+ fi
+
+-mkdir $tmpdir
+ fixps_sed=$tmpdir/fixps.sed
+
+ # If printing from stdin, save into a tmp file
diff --git a/app-text/a2ps/files/a2ps-4.13c-fnmatch-replacement.patch b/app-text/a2ps/files/a2ps-4.13c-fnmatch-replacement.patch
new file mode 100644
index 0000000..c49ab78
--- /dev/null
+++ b/app-text/a2ps/files/a2ps-4.13c-fnmatch-replacement.patch
@@ -0,0 +1,43 @@
+diff -Naurp a2ps-4.13.orig/lib/fnmatch.c a2ps-4.13/lib/fnmatch.c
+--- a2ps-4.13.orig/lib/fnmatch.c 2002-03-04 12:46:25 -0600
++++ a2ps-4.13/lib/fnmatch.c 2006-05-27 11:41:15 -0500
+@@ -27,18 +27,6 @@
+ #include <fnmatch.h>
+ #include <ctype.h>
+
+-
+-/* Comment out all this code if we are using the GNU C Library, and are not
+- actually compiling the library itself. This code is part of the GNU C
+- Library, but also included in many other GNU distributions. Compiling
+- and linking in this code is a waste when using the GNU C library
+- (especially if it is a shared library). Rather than having every GNU
+- program understand `configure --with-gnu-libc' and omit the object files,
+- it is simpler to just do this in the source for each such file. */
+-
+-#if defined _LIBC || !defined __GNU_LIBRARY__
+-
+-
+ # if defined STDC_HEADERS || !defined isascii
+ # define ISASCII(c) 1
+ # else
+@@ -52,10 +40,13 @@
+ extern int errno;
+ # endif
+
++/* fnmatch replacement taken from the GNU C Library for systems that
++ provide a broken implementation. */
++
+ /* Match STRING against the filename pattern PATTERN, returning zero if
+ it matches, nonzero if not. */
+ int
+-fnmatch (const char *pattern, const char *string, int flags)
++rpl_fnmatch (const char *pattern, const char *string, int flags)
+ {
+ register const char *p = pattern, *n = string;
+ register char c;
+@@ -233,5 +224,3 @@ fnmatch (const char *pattern, const char
+
+ # undef FOLD
+ }
+-
+-#endif /* _LIBC or not __GNU_LIBRARY__. */
diff --git a/app-text/a2ps/files/a2ps-4.13c-locale-gentoo.diff b/app-text/a2ps/files/a2ps-4.13c-locale-gentoo.diff
new file mode 100644
index 0000000..0b59956
--- /dev/null
+++ b/app-text/a2ps/files/a2ps-4.13c-locale-gentoo.diff
@@ -0,0 +1,25 @@
+diff -urN a2ps-4.13.ORIG/config.h.in a2ps-4.13/config.h.in
+--- a2ps-4.13.ORIG/config.h.in 2003-09-27 19:33:38.000000000 +0900
++++ a2ps-4.13/config.h.in 2003-09-27 21:25:46.000000000 +0900
+@@ -181,6 +181,9 @@
+ /* Define to 1 if you have the `rename' function. */
+ #undef HAVE_RENAME
+
++/* Define to 1 if you have the <locale.h> header file. */
++#undef HAVE_LOCALE_H
++
+ /* Define to 1 if you have the `setlocale' function. */
+ #undef HAVE_SETLOCALE
+
+diff -urN a2ps-4.13.ORIG/configure.in a2ps-4.13/configure.in
+--- a2ps-4.13.ORIG/configure.in 2003-09-27 19:33:38.000000000 +0900
++++ a2ps-4.13/configure.in 2003-09-27 21:26:05.000000000 +0900
+@@ -71,7 +71,7 @@
+ AC_HEADER_DIRENT
+ AC_CHECK_HEADERS(sys/time.h sys/stat.h sys/types.h sys/ioctl.h \
+ math.h string.h strings.h stdlib.h unistd.h stdarg.h pwd.h malloc.h \
+- memory.h errno.h fcntl.h stdbool.h fnmatch.h)
++ memory.h errno.h fcntl.h stdbool.h fnmatch.h locale.h)
+
+ ## --------------------- ##
+ ## Checks for typedefs. ##
diff --git a/app-text/a2ps/files/a2ps-4.13c-psmandup.diff b/app-text/a2ps/files/a2ps-4.13c-psmandup.diff
new file mode 100644
index 0000000..67f2fab
--- /dev/null
+++ b/app-text/a2ps/files/a2ps-4.13c-psmandup.diff
@@ -0,0 +1,19 @@
+--- contrib/psmandup.in.orig 2004-12-20 00:16:07.000000000 +0100
++++ contrib/psmandup.in 2004-12-20 00:16:39.000000000 +0100
+@@ -36,7 +36,7 @@
+ message=
+ psselect=${PSSELECT:-psselect}
+ psset=${PSSET:-psset}
+-tmpdir=/tmp/$program.$$
++tmpdir=`mktemp -d -t fixps.XXXXXX` || { echo "$program: Cannot create temporary dir!" >&2 ; exit 1; }
+
+ # These two must be kept in synch. They are opposed.
+ verbose=echo
+@@ -185,7 +185,6 @@
+ trap "/bin/rm -rf $tmpdir" 0 1 2 3 13 15
+ fi
+
+-mkdir $tmpdir
+
+ # If printing from stdin, save into a tmp file
+ if test $file = '-'; then
diff --git a/app-text/a2ps/files/a2ps-4.13c-psset.patch b/app-text/a2ps/files/a2ps-4.13c-psset.patch
new file mode 100644
index 0000000..f8fd449
--- /dev/null
+++ b/app-text/a2ps/files/a2ps-4.13c-psset.patch
@@ -0,0 +1,11 @@
+--- a2ps-4.13/contrib/psset.in.orig 2006-03-16 12:30:48.000000000 +0100
++++ a2ps-4.13/contrib/psset.in 2006-03-16 12:28:14.000000000 +0100
+@@ -241,7 +241,7 @@
+ # spaces with a `\' too...
+ pspagedevicelen=`echo "$pspagedevice" | wc -l`
+ pspagedevice=`echo "$pspagedevice" | \
+- sed -e "$pspagedevicelen!s/\$/\\\\\\/;s/^/\\\\\\/"`
++ sed -e "$pspagedevicelen!s/\$/\\\\\\/;s/^ /\\\\\\/"`
+
+ case $at in
+ 0) # Insert last in the Setup, so that we win over other requests.
diff --git a/app-text/a2ps/files/a2ps-4.13c-stdarg.patch b/app-text/a2ps/files/a2ps-4.13c-stdarg.patch
new file mode 100644
index 0000000..4ff1212
--- /dev/null
+++ b/app-text/a2ps/files/a2ps-4.13c-stdarg.patch
@@ -0,0 +1,74 @@
+--- a2ps-4.13-orig/configure.in 2005-08-14 14:13:42.000000000 +0200
++++ a2ps-4.13/configure.in 2005-08-14 14:18:20.000000000 +0200
+@@ -157,6 +157,22 @@
+ [Define to rpl_fnmatch if the replacement function should be used.])
+ fi
+
++# Check for C99 va_copy
++AC_CACHE_CHECK([
++ AC_TRY_LINK([#include <stdarg.h>],
++ [
++ va_list va1, va2;
++
++ va_copy(va2, va1);
++ va_end(va2);
++ ],
++ [ac_cv_va_copy="yes"],[ac_cv_va_copy="no"]
++ )
++])
++if test "x$ac_cv_va_copy"="xyes"; then
++ AC_DEFINE(HAVE_VA_COPY,1,[Define to 1 if C99 va_copy function should be used])
++fi
++
+ # Needed checks for tinyterm.[ch]
+ ad_TINYTERM_CHECKS
+
+--- a2ps-4.13-orig/lib/printlen.c 2002-03-04 19:46:25.000000000 +0100
++++ a2ps-4.13/lib/printlen.c 2005-08-14 14:29:08.000000000 +0200
+@@ -27,15 +27,24 @@
+
+ unsigned long strtoul ();
+
++#if !defined(HAVE_VA_COPY)
+ static int
+ int_printflen (const char *format, va_list *args)
++#else
++static int
++int_printflen (const char *format, va_list args)
++#endif
+ {
+ const char *cp;
+ int total_width = 0;
+ int width = 0;
+ va_list ap;
+
++#ifndef HAVE_VA_COPY
+ memcpy (&ap, args, sizeof (va_list));
++#else
++ va_copy(ap, args);
++#endif
+
+ for (cp = format ; *cp ; cp++)
+ {
+@@ -93,13 +102,21 @@
+ }
+ }
+ }
++
++#ifdef HAVE_VA_COPY
++ va_end(ap);
++#endif
+ return total_width;
+ }
+
+ int
+ vprintflen (const char *format, va_list args)
+ {
++#if !defined(HAVE_VA_COPY)
+ return int_printflen (format, &args);
++#else
++ return int_printflen (format, args);
++#endif
+ }
+
+ int
diff --git a/app-text/a2ps/files/a2ps-4.14-check-mempcpy.patch b/app-text/a2ps/files/a2ps-4.14-check-mempcpy.patch
new file mode 100644
index 0000000..7b820ce
--- /dev/null
+++ b/app-text/a2ps/files/a2ps-4.14-check-mempcpy.patch
@@ -0,0 +1,12 @@
+--- a2ps-4.14-orig/configure.in 2008-04-16 08:36:03.000000000 +0200
++++ a2ps-4.14/configure.in 2008-04-16 08:36:29.000000000 +0200
+@@ -137,7 +137,8 @@
+ ad_REPLACE_FUNC_STRCASECMP
+ ad_REPLACE_FUNC_STRNCASECMP
+ ad_REPLACE_FUNC_RENAME
+-AC_CHECK_FUNCS(uname strchr strerror strerror_r getcwd bcopy bzero tempnam strsignal psignal setlocale)
++AC_CHECK_FUNCS(uname strchr strerror strerror_r getcwd bcopy bzero \
++ tempnam strsignal psignal setlocale mempcpy)
+ ad_FUNC_SYSTEMPAPERNAME
+ ad_FUNC_ATEXIT
+ ad_FUNC_STRFTIME
diff --git a/app-text/a2ps/files/a2ps-4.14-cleanup.patch b/app-text/a2ps/files/a2ps-4.14-cleanup.patch
new file mode 100644
index 0000000..25187f3
--- /dev/null
+++ b/app-text/a2ps/files/a2ps-4.14-cleanup.patch
@@ -0,0 +1,106 @@
+fix missing prototype and printf warnings
+
+--- a/lib/argmatch.c
++++ b/lib/argmatch.c
+@@ -21,6 +21,7 @@
+ #include "argmatch.h"
+
+ #include <stdio.h>
++#include <stdlib.h>
+ #ifdef STDC_HEADERS
+ # include <string.h>
+ #endif
+--- a/lib/encoding.c
++++ b/lib/encoding.c
+@@ -790,7 +790,7 @@ dump_encoding_setup (FILE * stream,
+ /* Create the dictionary and fill it */
+ fprintf (stream, "%% Dictionary for %s support\n",
+ encoding->name);
+- fprintf (stream, "/%sdict %d dict begin\n", encoding->key, nb);
++ fprintf (stream, "/%sdict %zu dict begin\n", encoding->key, nb);
+ for (i = 0 ; i < nb ; i++)
+ fprintf (stream, " /f%s %sEncoding /%s reencode_font\n",
+ font_names [i],
+--- a/lib/output.c
++++ b/lib/output.c
+@@ -84,7 +84,7 @@ new_derivation (enum derivation_type type)
+ static void
+ derivation_self_print (struct derivation * derivation, FILE * stream)
+ {
+- fprintf (stream, "At %x: ", (int) derivation);
++ fprintf (stream, "At %p: ", derivation);
+ switch (derivation->type)
+ {
+ case nothing:
+@@ -525,7 +525,7 @@ output_file (struct output * out, a2ps_job * job,
+ expand_user_string (job, FIRST_FILE (job),
+ (const uchar *) "Expand: requirement",
+ (const uchar *) token));
+- output (dest, expansion);
++ output (dest, "%s", expansion);
+ continue;
+ }
+
+--- a/lib/parseppd.y
++++ b/lib/parseppd.y
+@@ -154,7 +154,7 @@ font_clause :
+ void
+ yyerror (const char *msg)
+ {
+- error_at_line (1, 0, ppdfilename, ppdlineno, msg);
++ error_at_line (1, 0, ppdfilename, ppdlineno, "%s", msg);
+ }
+
+ /*
+--- a/lib/psgen.c
++++ b/lib/psgen.c
+@@ -232,7 +232,7 @@ output_marker (a2ps_job * job, const char * kind, uchar * marker)
+ default:
+ *buf = '\0';
+ ps_escape_char (job, cp[i], buf);
+- output (jdiv, (char *) buf);
++ output (jdiv, "%s", buf);
+ break;
+ }
+ }
+--- a/lib/quotearg.c
++++ b/lib/quotearg.c
+@@ -60,6 +60,7 @@
+
+ #if HAVE_MBRTOWC && HAVE_WCHAR_H
+ # include <wchar.h>
++# include <wctype.h>
+ #else
+ # define iswprint(wc) 1
+ # define mbrtowc(pwc, s, n, ps) 1
+--- a/lib/title.c
++++ b/lib/title.c
+@@ -28,6 +28,7 @@
+ #endif
+
+ #include <stdio.h>
++#include <string.h>
+
+ #if HAVE_VPRINTF || HAVE_DOPRNT || _LIBC
+ # if __STDC__
+--- a/src/long-options.c
++++ b/src/long-options.c
+@@ -22,6 +22,7 @@
+ #endif
+
+ #include <stdio.h>
++#include <stdlib.h>
+ #include <getopt.h>
+ #include "closeout.h"
+ #include "long-options.h"
+--- a/src/parsessh.y
++++ b/src/parsessh.y
+@@ -740,7 +740,7 @@ exception_def_opt:
+ void
+ yyerror (const char *msg)
+ {
+- error_at_line (1, 0, sshfilename, sshlineno, msg);
++ error_at_line (1, 0, sshfilename, sshlineno, "%s", msg);
+ }
+
+ /*
diff --git a/app-text/a2ps/files/a2ps-4.14-fix-stpcpy-proto.patch b/app-text/a2ps/files/a2ps-4.14-fix-stpcpy-proto.patch
new file mode 100644
index 0000000..7c3c690
--- /dev/null
+++ b/app-text/a2ps/files/a2ps-4.14-fix-stpcpy-proto.patch
@@ -0,0 +1,17 @@
+=== modified file 'lib/xstrrpl.c'
+--- lib/xstrrpl.c 2008-04-14 18:04:50 +0000
++++ lib/xstrrpl.c 2008-04-14 18:20:20 +0000
+@@ -20,12 +20,10 @@
+
+ #include "system.h"
+ #include <assert.h>
+ #include "xstrrpl.h"
+
+-extern char * stpcpy();
+-
+ /* Perform subsitutions in string. Result is malloc'd
+ E.g., result = xstrrrpl ("1234", subst) gives result = "112333"
+ where subst = { {"1", "11"}, {"3", "333"}, { "4", ""}}
+ */
+ char *
+
diff --git a/app-text/a2ps/files/a2ps-4.14-ja-cleanup.patch b/app-text/a2ps/files/a2ps-4.14-ja-cleanup.patch
new file mode 100644
index 0000000..16271b3
--- /dev/null
+++ b/app-text/a2ps/files/a2ps-4.14-ja-cleanup.patch
@@ -0,0 +1,122 @@
+diff --git lib/argmatch.c lib/argmatch.c
+index f983e9d..eadc7ea 100644
+--- lib/argmatch.c
++++ lib/argmatch.c
+@@ -21,6 +21,7 @@
+ #include "argmatch.h"
+
+ #include <stdio.h>
++#include <stdlib.h>
+ #ifdef STDC_HEADERS
+ # include <string.h>
+ #endif
+diff --git lib/encoding.c lib/encoding.c
+index 9bd9f2a..f554a6d 100644
+--- lib/encoding.c
++++ lib/encoding.c
+@@ -989,7 +989,7 @@ dump_encoding_setup (FILE * stream,
+ /* Create the dictionary and fill it */
+ fprintf (stream, "%% Dictionary for %s support\n",
+ encoding->name);
+- fprintf (stream, "/%sdict %d dict begin\n", encoding->key,
++ fprintf (stream, "/%sdict %zu dict begin\n", encoding->key,
+ (encoding->composite_flag == true)? nb+nb+ns:nb+ns);
+ for (i = 0 ; i < nb ; i++)
+ fprintf (stream, " /f%s %sEncoding /%s reencode_font\n",
+diff --git lib/output.c lib/output.c
+index b5fc37d..5f67676 100644
+--- lib/output.c
++++ lib/output.c
+@@ -84,7 +84,7 @@ new_derivation (enum derivation_type type)
+ static void
+ derivation_self_print (struct derivation * derivation, FILE * stream)
+ {
+- fprintf (stream, "At %x: ", (int) derivation);
++ fprintf (stream, "At %p: ", derivation);
+ switch (derivation->type)
+ {
+ case nothing:
+@@ -525,7 +525,7 @@ output_file (struct output * out, a2ps_job * job,
+ expand_user_string (job, FIRST_FILE (job),
+ (const uchar *) "Expand: requirement",
+ (const uchar *) token));
+- output (dest, expansion);
++ output (dest, "%s", expansion);
+ continue;
+ }
+
+diff --git lib/parseppd.y lib/parseppd.y
+index a7558ba..c89d188 100644
+--- lib/parseppd.y
++++ lib/parseppd.y
+@@ -154,7 +154,7 @@ font_clause :
+ void
+ yyerror (const char *msg)
+ {
+- error_at_line (1, 0, ppdfilename, ppdlineno, msg);
++ error_at_line (1, 0, ppdfilename, ppdlineno, "%s", msg);
+ }
+
+ /*
+diff --git lib/psgen.c lib/psgen.c
+index 9eeef74..9d7a27d 100644
+--- lib/psgen.c
++++ lib/psgen.c
+@@ -232,7 +232,7 @@ output_marker (a2ps_job * job, const char * kind, uchar * marker)
+ default:
+ *buf = '\0';
+ ps_escape_char (job, cp[i], buf);
+- output (jdiv, (char *) buf);
++ output (jdiv, "%s", buf);
+ break;
+ }
+ }
+diff --git lib/quotearg.c lib/quotearg.c
+index 16d0b91..89db991 100644
+--- lib/quotearg.c
++++ lib/quotearg.c
+@@ -60,6 +60,7 @@
+
+ #if HAVE_MBRTOWC && HAVE_WCHAR_H
+ # include <wchar.h>
++# include <wctype.h>
+ #else
+ # define iswprint(wc) 1
+ # define mbrtowc(pwc, s, n, ps) 1
+diff --git lib/title.c lib/title.c
+index cf4a34b..7a3e87b 100644
+--- lib/title.c
++++ lib/title.c
+@@ -28,6 +28,7 @@
+ #endif
+
+ #include <stdio.h>
++#include <string.h>
+
+ #if HAVE_VPRINTF || HAVE_DOPRNT || _LIBC
+ # if __STDC__
+diff --git src/long-options.c src/long-options.c
+index fb40cd9..7bd77b0 100644
+--- src/long-options.c
++++ src/long-options.c
+@@ -22,6 +22,7 @@
+ #endif
+
+ #include <stdio.h>
++#include <stdlib.h>
+ #include <getopt.h>
+ #include "closeout.h"
+ #include "long-options.h"
+diff --git src/parsessh.y src/parsessh.y
+index 21e9559..569fdb6 100644
+--- src/parsessh.y
++++ src/parsessh.y
+@@ -740,7 +740,7 @@ exception_def_opt:
+ void
+ yyerror (const char *msg)
+ {
+- error_at_line (1, 0, sshfilename, sshlineno, msg);
++ error_at_line (1, 0, sshfilename, sshlineno, "%s", msg);
+ }
+
+ /*
diff --git a/app-text/a2ps/files/a2ps-4.14-psset.patch b/app-text/a2ps/files/a2ps-4.14-psset.patch
new file mode 100644
index 0000000..291c3aa
--- /dev/null
+++ b/app-text/a2ps/files/a2ps-4.14-psset.patch
@@ -0,0 +1,21 @@
+diff -Naur a2ps-4.14.orig/contrib/psset.in a2ps-4.14/contrib/psset.in
+--- a2ps-4.14.orig/contrib/psset.in 2007-12-29 12:29:01.000000000 +0900
++++ a2ps-4.14/contrib/psset.in 2009-04-12 12:17:43.000000000 +0900
+@@ -219,7 +219,7 @@
+ done
+
+ pspagedevice="% Pagedevice definitions:
+-countdictstack
++ countdictstack
+ % Push our own mark, since there can be several PS marks pushed depending
+ % where the failure really occured.
+ /psset_mark
+@@ -227,7 +227,7 @@
+ } stopped
+ % My cleartomark
+ { /psset_mark eq { exit } if } loop
+-countdictstack exch sub dup 0 gt
++ countdictstack exch sub dup 0 gt
+ {
+ { end } repeat
+ }{
diff --git a/app-text/a2ps/files/a2ps-4.14-ptrdiff_t.patch b/app-text/a2ps/files/a2ps-4.14-ptrdiff_t.patch
new file mode 100644
index 0000000..00d955a
--- /dev/null
+++ b/app-text/a2ps/files/a2ps-4.14-ptrdiff_t.patch
@@ -0,0 +1,14 @@
+diff -uNr a2ps-4.14/lib/obstack.h a2ps-4.14.test/lib/obstack.h
+--- a2ps-4.14/lib/obstack.h 2007-12-29 09:37:59.000000000 +0800
++++ a2ps-4.14.test/lib/obstack.h 2009-06-10 18:49:45.000000000 +0900
+@@ -138,9 +138,9 @@
+ #define __need_ptrdiff_t
+ #endif
+ #endif
++#endif
+
+ #include <stddef.h>
+-#endif
+
+ #if defined (__STDC__) && __STDC__
+ #define PTR_INT_TYPE ptrdiff_t
diff --git a/app-text/a2ps/files/a2ps-ds2.patch b/app-text/a2ps/files/a2ps-ds2.patch
new file mode 100644
index 0000000..9d9e011
--- /dev/null
+++ b/app-text/a2ps/files/a2ps-ds2.patch
@@ -0,0 +1,53 @@
+diff -dPNur a2ps-4.13/encoding/koi8.edf a2ps-4.13-new/encoding/koi8.edf
+--- a2ps-4.13/encoding/koi8.edf Fri Sep 4 15:05:13 1998
++++ a2ps-4.13-new/encoding/koi8.edf Wed Dec 27 05:05:37 2000
+@@ -32,22 +32,22 @@
+ EndDocumentation
+
+ # Regular fonts don't support Cyrillic glyphs
+-Default: CourierISOC
++Default: Courier
+
+-Substitute: Courier CourierISOC
+-Substitute: Courier-Bold CourierISOC-Bold
+-Substitute: Courier-BoldOblique CourierISOC-BoldOblique
+-Substitute: Courier-Oblique CourierISOC-Oblique
++Substitute: Courier ERKurier
++Substitute: Courier-Bold ERKurierBold
++Substitute: Courier-BoldOblique ERKurierBoldItalic
++Substitute: Courier-Oblique ERKurierItalic
+
+-Substitute: Times-Roman College
+-Substitute: Times-Bold College-Bold
+-Substitute: Times-Italic College-Italic
+-Substitute: Times-BoldItalic College-Italic
++Substitute: Times-Roman ERBukinist
++Substitute: Times-Bold ERBukinistBold
++Substitute: Times-Italic ERBukinistItalic
++Substitute: Times-BoldItalic ERBukinistBoldItalic
+
+-Substitute: Helvetica Textbook
+-Substitute: Helvetica-Bold Textbook-Bold
+-Substitute: Helvetica-Oblique Textbook-Italic
+-Substitute: Helvetica-BoldOblique Textbook-Italic
++Substitute: Helvetica ERUnivers
++Substitute: Helvetica-Bold ERUniversBold
++Substitute: Helvetica-Oblique ERUniversItalic
++Substitute: Helvetica-BoldOblique ERUniversBoldItalic
+
+ Vector:
+ .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef
+diff -dPNur a2ps-4.13/etc/a2ps_cfg.in a2ps-4.13-new/etc/a2ps_cfg.in
+--- a2ps-4.13/etc/a2ps_cfg.in Thu Feb 24 22:37:44 2000
++++ a2ps-4.13-new/etc/a2ps_cfg.in Wed Jul 18 06:43:05 2001
+@@ -72,8 +72,8 @@
+
+ # It may be useful to extend it so that a2ps can see some
+ # TeX or X11 resources: it likes AFM files and PF[AB] files.
+-#AppendLibraryPath: foo
+-
++AppendLibraryPath: /usr/share/fonts/DarkLin/Type1/ER-KOI8
++#AppendLibraryPath: /usr/share/fonts/default/Type1
+
+ #################################################################
+ # 3) Default settings #
diff --git a/app-text/a2ps/files/cyr2ps b/app-text/a2ps/files/cyr2ps
new file mode 100755
index 0000000..a602228
--- /dev/null
+++ b/app-text/a2ps/files/cyr2ps
@@ -0,0 +1,49 @@
+#! /bin/bash
+
+enc=UTF-8
+case $1 in
+koi|KOI|Koi|koi8|Koi8|KOI8|koi-8|Koi-8|KOI-8|koi-8r|Koi-8r|KOI-8R|koi8r|Koi8r|KOI8R|k|K|Koi8-r|koi8-r|KOI8-R)
+ enc=""
+ shift
+ ;;
+alt|Alt|ALT|dos|Dos|DOS|cp866|Cp866|CP866|A|a)
+ enc=CP866
+ shift
+ ;;
+win|Win|WIN|cp1251|Cp1251|CP1251|W|w)
+ enc=CP1251
+ shift
+ ;;
+UTF-8|utf-8|Utf-8|UTF8|utf8|Utf-8|Unicode|UNICODE|unicode|U|u)
+ enc=UTF-8
+ shift
+ ;;
+esac
+
+
+in=$BASH_ARGV
+if [ "$in" == "-" -o -f "$in" ]; then
+ arglen=$(($#-1))
+ args=${@:1:$arglen}
+else
+ args=$@
+ in="-"
+fi
+
+out=""
+
+if [[ " ${args[*]} " != *" -o "* ]]; then
+ if [ $in == "-" ]; then
+ out="-o -"
+ else
+ out="-o `basename $in`.ps"
+ fi
+fi
+
+
+echo "Encoding: $enc, In: $in, Out: $out, extra args: ${args[*]}"
+if [ -n "$enc" ]; then
+ cat $in | iconv -f UTF-8 -t KOI8-R -c | a2ps $out $args -
+else
+ a2ps $out $args $in
+fi