[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
- [bug-enscript] Various patches to enhance enscript, Werner Fink, 2018/01/23
- [bug-enscript] [PATCH 2/8] Add a patch from Josh Zenker for bash highlight, Werner Fink, 2018/01/23
- [bug-enscript] [PATCH 3/8] Automake 1.12 and up no longer supports pre-ANSI, Werner Fink, 2018/01/23
- [bug-enscript] [PATCH 5/8] Flexible encoding and support of locale paper size,
Werner Fink <=
- [bug-enscript] [PATCH 6/8] Add optional address for mailto option, Werner Fink, 2018/01/23
- [bug-enscript] [PATCH 8/8] Simply avoid warnings of modern gcc, Werner Fink, 2018/01/23
- [bug-enscript] [PATCH 1/8] Add a patch from Josh Zenker to fix perl highlight, Werner Fink, 2018/01/23
- [bug-enscript] [PATCH 7/8] Mention options for helper apps in manual page, Werner Fink, 2018/01/23
- [bug-enscript] [PATCH 4/8] Add support for baltic locale as well as for Euro, Werner Fink, 2018/01/23