File enscript-1.6.6-encoding+paper.patch of Package enscript

---
 configure.ac        |   18 ++++++++++++++++++
 lib/Makefile.am     |    1 +
 lib/enscript.cfg.in |   34 +++++++++++++++++++++++++++++++++-
 src/main.c          |    6 ++++++
 src/util.c          |   10 ++++++++++
 5 files changed, 68 insertions(+), 1 deletion(-)

--- configure.ac
+++ configure.ac	2018-01-23 14:31:47.816179389 +0000
@@ -65,6 +65,23 @@ AC_ARG_WITH(media,
 MEDIA=$ac_cv_value_media
 AC_SUBST(MEDIA)
 
+dnl Define the default input encoding.
+AC_ARG_WITH(encoding,
+[  --with-encoding(=ENCODING) use input encoding (ENCODING), default is latin1],
+  if test "X$withval" != "Xno"; then
+    if test "X$withval" = "Xyes"; then
+      ac_cv_value_encoding='latin1'
+    else
+      ac_cv_value_encoding=$withval
+    fi
+  else
+    ac_cv_value_encoding=${ENCODING-latin1}
+  fi,
+  ac_cv_value_encoding=${ENCODING-latin1}
+)
+ENCODING=$ac_cv_value_encoding
+AC_SUBST(ENCODING)
+
 dnl Find the printer spooler command.
 
 AC_CHECK_PROG(SPOOLER, lpr, lpr)
@@ -142,6 +159,7 @@ echo ""
 echo "Option     Change with configure's option   Current value"
 echo "---------------------------------------------------------"
 echo "Media      --with-media=MEDIA               $MEDIA"
+echo "Encoding   --with-encoding=ENCODING         $ENCODING"
 echo "Spooler    --with-spooler=SPOOLER           $SPOOLER"
 echo "PS level   --with-ps-level=LEVEL            $PSLEVEL"
 echo ""
--- lib/Makefile.am
+++ lib/Makefile.am	2018-01-23 14:31:47.816179389 +0000
@@ -35,6 +35,7 @@ EXTRA_DIST = ChangeLog.old enscript.cfg.
 	Makefile-encodings make-encoding.pl
 
 do_subst = sed -e 's%@DATADIR@%$(datadir)%g' \
+               -e 's%@encoding@%@ENCODING@%g' \
                -e 's%@media@%@MEDIA@%g' \
 	       -e 's%@BINDIR@%$(bindir)%g' \
 	       -e 's%@spooler@%@SPOOLER@%g' \
--- lib/enscript.cfg.in
+++ lib/enscript.cfg.in	2018-01-23 14:31:47.816179389 +0000
@@ -40,7 +40,7 @@ AppendCtrlD: 0
 Clean7Bit: 1
 
 # Default input encoding.
-DefaultEncoding: latin1
+DefaultEncoding: @encoding@
 
 # Default fancy header.
 DefaultFancyHeader: enscript
@@ -94,6 +94,38 @@ Media:  Letter		612	792	38	24	574	768
 Media:	A4dj		595	842	24	50	571	818
 Media:  Letterdj        612     792     24      40      588     768
 
+# Define ghostscript page names and their sizes
+Media:	letter		612	792	24	24	574	768
+Media:	note		540	720	24	24	516	696
+Media:	legal		612	1008	24	24	588	984
+Media:	a0		2380	3368	24	24	2356	3344
+Media:	a1		1684	2380	24	24	1660	2356
+Media:	a2		1190	1684	24	24	1166	1660
+Media:	a3		842	1190	24	24	818	1166
+Media:	a4		595	842	24	24	571	818
+Media:	a5		421	595	24	24	397	571
+Media:	a6		297	421	24	24	273	397
+Media:	a7		210	297	24	24	186	273
+Media:	a8		148	210	24	24	124	186
+Media:	a9		105	148	24	24	81	124
+Media:	a10		74	105	24	24	50	81
+Media:	b0		2836	4008	24	24	2812	3984
+Media:	b1		2004	2836	24	24	1980	2812
+Media:	b2		1418	2004	24	24	1394	1980
+Media:	b3		1002	1418	24	24	978	1394
+Media:	b4		709	1002	24	24	685	978
+Media:	b5		501	709	24	24	477	685
+Media:	archE		2592	3456	24	24	2568	3432
+Media:	archD		1728	2592	24	24	1704	2568
+Media:	archC		1296	1728	24	24	1272	1704
+Media:	archB		864	1296	24	24	840	1272
+Media:	archA		648	864	24	24	624	840
+Media:	flsa		612	936	24	24	588	912
+Media:	flse		612	936	24	24	588	912
+Media:	halfletter	396	612	24	24	372	588
+Media:	11x17		792	1224	24	24	768	1200
+Media:	ledger		1224	792	24	24	1200	768
+
 # Spooler option to suppress the job header.
 NoJobHeaderSwitch: -h
 
--- src/main.c
+++ src/main.c	2018-01-23 14:31:47.816179389 +0000
@@ -24,6 +24,8 @@
 
 #include "gsint.h"
 #include "getopt.h"
+#include <locale.h>
+#include <limits.h>
 
 /*
  * Prototypes for static functions.
@@ -959,6 +961,10 @@ main (int argc, char *argv[])
 #if HAVE_LC_MESSAGES
   setlocale (LC_MESSAGES, "");
 #endif
+  setlocale (LC_CTYPE, "");
+#ifdef LC_PAPER
+  setlocale (LC_PAPER, "");
+#endif
 #endif
 #if ENABLE_NLS
   bindtextdomain (PACKAGE, LOCALEDIR);
--- src/util.c
+++ src/util.c	2018-01-23 14:31:47.816179389 +0000
@@ -179,6 +179,16 @@ read_config (char *path, char *file)
 	{
 	  token2 = GET_TOKEN (NULL);
 	  CHECK_TOKEN ();
+#ifdef LC_PAPER
+	  if (!strcasecmp("LC_PAPER", token2))
+	    {
+	      unsigned int paperheight = (unsigned int)nl_langinfo(_NL_PAPER_HEIGHT);
+	      if (paperheight && paperheight == 279)
+		token2 = "letter";
+	      else
+		token2 = "a4";
+	    }
+#endif
 	  xfree (media_name);
 	  media_name = xstrdup (token2);
 	}
openSUSE Build Service is sponsored by