bug-enscript
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug-enscript] [PATCH 5/8] Flexible encoding and support of locale paper


From: Werner Fink
Subject: [bug-enscript] [PATCH 5/8] Flexible encoding and support of locale paper size
Date: Tue, 23 Jan 2018 15:26:47 +0100

as well paper size names known by ghostscript

Signed-off-by: Werner Fink <address@hidden>
---
 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(-)

diff --git configure.ac configure.ac
index d8659a5..dbb84d2 100644
--- configure.ac
+++ configure.ac
@@ -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 ""
diff --git lib/Makefile.am lib/Makefile.am
index fc40ecd..21bfd99 100644
--- lib/Makefile.am
+++ lib/Makefile.am
@@ -35,6 +35,7 @@ EXTRA_DIST = ChangeLog.old enscript.cfg.in $(pkgdata_DATA)    
\
        Makefile-encodings make-encoding.pl
 
 do_subst = sed -e 'address@hidden@%$(datadir)%g' \
+               -e 'address@hidden@address@hidden@%g' \
                -e 'address@hidden@address@hidden@%g' \
               -e 'address@hidden@%$(bindir)%g' \
               -e 'address@hidden@address@hidden@%g' \
diff --git lib/enscript.cfg.in lib/enscript.cfg.in
index 837613b..10adb3e 100644
--- lib/enscript.cfg.in
+++ lib/enscript.cfg.in
@@ -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
 
diff --git src/main.c src/main.c
index 5117b0e..ef8c220 100644
--- src/main.c
+++ src/main.c
@@ -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);
diff --git src/util.c src/util.c
index 26f072c..5ec7396 100644
--- src/util.c
+++ src/util.c
@@ -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);
        }
-- 
2.12.3




reply via email to

[Prev in Thread] Current Thread [Next in Thread]