From 89e6f76b27bb9e1dc1136ee1b100c3e68c84a8c0 Mon Sep 17 00:00:00 2001 From: CoprDistGit Date: Tue, 6 Aug 2024 02:45:06 +0000 Subject: automatic import of libpaper --- libpaper-useglibcfallback.patch | 80 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 libpaper-useglibcfallback.patch (limited to 'libpaper-useglibcfallback.patch') diff --git a/libpaper-useglibcfallback.patch b/libpaper-useglibcfallback.patch new file mode 100644 index 0000000..1216055 --- /dev/null +++ b/libpaper-useglibcfallback.patch @@ -0,0 +1,80 @@ +diff -up libpaper-1.1.24+nmu3/lib/paper.c.useglibcfallback libpaper-1.1.24+nmu3/lib/paper.c +--- libpaper-1.1.24+nmu3/lib/paper.c.useglibcfallback 2010-04-24 08:12:11.000000000 -0400 ++++ libpaper-1.1.24+nmu3/lib/paper.c 2014-04-22 15:58:33.120039001 -0400 +@@ -20,6 +20,9 @@ + + #include + ++#include ++#include ++ + #include "paper.h" + + struct paper { +@@ -108,6 +111,27 @@ in PAPERCONFVAR, fall-back to the old be + } + + const char* defaultpapername(void) { ++#if defined(LC_PAPER) && defined(_GNU_SOURCE) ++ ++#define NL_PAPER_GET(x) \ ++ ((union { char *string; unsigned int word; })nl_langinfo(x)).word ++ ++#define PT_TO_MM(v) (unsigned int)((v * 2.54 * 10 / 72) + 0.5) ++ ++ const struct paper* pp; ++ ++ unsigned int w = NL_PAPER_GET(_NL_PAPER_WIDTH); ++ unsigned int h = NL_PAPER_GET(_NL_PAPER_HEIGHT); ++ ++ for (pp = paperfirst(); pp; pp = papernext(pp)) { ++ if ( ++ PT_TO_MM(pp->pswidth) == w && ++ PT_TO_MM(pp->psheight) == h ++ ) { ++ return pp->name; ++ } ++ } ++#endif + return PAPERSIZE; + } + +diff -up libpaper-1.1.24+nmu3/man/paperconf.1.in.useglibcfallback libpaper-1.1.24+nmu3/man/paperconf.1.in +--- libpaper-1.1.24+nmu3/man/paperconf.1.in.useglibcfallback 2014-04-22 15:58:33.121038995 -0400 ++++ libpaper-1.1.24+nmu3/man/paperconf.1.in 2014-04-22 16:00:15.973428376 -0400 +@@ -48,10 +48,12 @@ looking in order at the + .B @PAPERSIZEVAR@ + environment variable, at the contents of the file specified by the + .B @PAPERCONFVAR@ +-environment variable, at the contents of ++environment variable, at the contents of the file + .B @PAPERCONF@ +-or by using +-.B letter ++, consulting the values controlled by the ++.B LC_PAPER ++locale setting, or by using ++.B @PAPERSIZE@ + as a fall-back value if none of the other alternatives are successful. + By default, width and height of the paper are printed in PostScript points. + .SH OPTIONS +diff -up libpaper-1.1.24+nmu3/src/paperconf.c.useglibcfallback libpaper-1.1.24+nmu3/src/paperconf.c +--- libpaper-1.1.24+nmu3/src/paperconf.c.useglibcfallback 2012-05-03 15:05:12.000000000 -0400 ++++ libpaper-1.1.24+nmu3/src/paperconf.c 2014-04-22 15:58:33.121038995 -0400 +@@ -13,6 +13,7 @@ + #include + + #include ++#include + + + /* needed for GNU/Hurd */ +@@ -99,6 +100,8 @@ int main(int argc, char** argv) + + const char* progname; + ++ setlocale(LC_ALL, ""); ++ + progname = strrchr(*argv, '/'); + if (progname) { + ++progname; -- cgit v1.2.3