You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/app-text/mpage/files/01_previous_changes.patch

741 lines
20 KiB

Index: mpage-2.5.6/file.c
===================================================================
--- mpage-2.5.6.orig/file.c 2008-08-11 23:14:20.500638502 +0200
+++ mpage-2.5.6/file.c 2008-08-11 23:28:25.560795737 +0200
@@ -363,7 +363,7 @@
Debug(DB_STDIN, "%%iswanted: opt_first[i]: %d\n", opt_first[i]);
Debug(DB_STDIN, "%%iswanted: opt_alt[i]: %d\n", opt_alt[i]);
Debug(DB_STDIN, "%%iswanted: opt_last[i]: %d\n", opt_last[i]);
- if ((sn >= opt_first[i] && (opt_alt[i] <= 1 || (sn - opt_first[i]) % opt_alt[i] == 0) ) &&
+ if ((sn >= opt_first[i]) && ((sn - opt_first[i]) % opt_alt[i] == 0) &&
(sn <= opt_last[i])) {
Debug(DB_STDIN, "%%iswanted: wanted page %d\n", sn);
ps_outpages++;
Index: mpage-2.5.6/mpage.1.in
===================================================================
--- mpage-2.5.6.orig/mpage.1.in 2008-08-11 23:17:10.154306512 +0200
+++ mpage-2.5.6/mpage.1.in 2008-08-11 23:27:23.605265090 +0200
@@ -1,4 +1,4 @@
-.TH MPAGE Local 2008/01/14
+.TH MPAGE 1 2008/01/14
.SH NAME
mpage \- print multiple pages per sheet on PostScript printer
@@ -417,17 +417,33 @@
.TP
.B -t
Toggle printing on both sides of the paper.
-This will toggle duplex mode of the printer.
++This option has 3 states: nop, yes, no, which mean:
+.BR NOP :
+ dont do anything on PostScript, so printer default will be used;
+.BR YES :
+ force printer to do duplex;
+.BR NO :
+force printer not to do it.
+If there is no -t, then the duplex is NOP. If you put some -t on
+the command line, the state toggles as "yes,no,yes,no...".
+So, if your printer is set to print, by default, in duplex mode,
+you will use "-t -t" on command line to force it to print in non-duplex mode.
Use this option only if your printer is capable of printing in duplex mode.
.RI ( default
-off).
+NOP).
.TP
.B -T
-Toggle tumble of every second pages when printing in duplex mode.
-Use this option only if your printer is capable of printing in duplex mode
-and together with
-.BR -t .
+Toggle tumble of every second pages.
+This option has 3 states: nop, yes, no (with behaviour similar to -t).
+So, if your printer is set to print, by default, in duplex mode,
+with tumble on,
+you will use "-T -T" on command line to print in nontumble mode.
+Use this option only if your printer is capable of printing in duplex mode.
+With this version of mpage,
+you may use this option even if you do not use -t.
+.RI ( default
+NOP.)
.TP
.B -u
@@ -546,7 +562,7 @@
environment variables.
.SH FILES
-/usr/tmp/mpageXXXXXX
+/tmp/mpageXXXXXX
.br
PREFIX/share/mpage
Index: mpage-2.5.6/mpage.c
===================================================================
--- mpage-2.5.6.orig/mpage.c 2008-08-11 23:31:51.044505584 +0200
+++ mpage-2.5.6/mpage.c 2008-08-11 23:39:12.205645922 +0200
@@ -44,9 +44,21 @@
struct sheet *thesheet;
char outcommand[LINESIZE]; /* the command which is the output filter */
+ char * paper;
+
current_locale = setlocale(LC_ALL,"");
-
+#ifdef LIBPAPER
+ paperinit();
+ paper = systempapername();
+ if (!paper)
+ {
+ fprintf(stderr,"systempapername() returned NULL! exiting\n");
+ exit(1);
+ }
+ strncpy(opt_page,paper,31);
+#endif
+
#ifdef __EMX__
/*
* wildcard expansion from emx package (used by OS/2)
@@ -235,10 +247,10 @@
fprintf(outfd, "/mp_stm usertime def\n");
fprintf(outfd, "/mp_pgc statusdict begin pagecount end def\n");
fprintf(outfd, "statusdict begin /jobname (%s) def end\n", name);
- if (opt_duplex) {
+ if (opt_duplex && opt_duplex != 4 ) {
fprintf(outfd, "statusdict /setduplexmode known");
fprintf(outfd, " { statusdict begin true setduplexmode end } if\n");
- if (opt_tumble) {
+ if (opt_tumble && opt_tumble != 4 ) {
fprintf(outfd, "statusdict /settumble known ");
fprintf(outfd, "{ statusdict begin true settumble end } if\n");
}
Index: mpage-2.5.6/mpage.h
===================================================================
--- mpage-2.5.6.orig/mpage.h 2008-08-11 23:39:40.279245746 +0200
+++ mpage-2.5.6/mpage.h 2008-08-11 23:45:02.565611800 +0200
@@ -31,6 +31,10 @@
#include <limits.h>
#include <string.h>
+#ifdef LIBPAPER
+#include <paper.h>
+#endif
+
#define VERSION "2.5.6 Januari 2008"
#define TRUE 1
@@ -125,10 +129,11 @@
/*
* set default page size
*/
+#ifndef LIBPAPER
#if !defined(PAGE_DEF)
# define PAGE_DEF "A4"
#endif
-
+#endif
/*
* define print spooler types
*/
@@ -221,9 +226,6 @@
extern int ps_height; /* number of points in the Y direction (11 inches) */
extern char * media; /* name of output page media */
-
-extern struct page_desc paper[];
-
/* array of sheets where pages are ordered for coli ??? */
extern struct sheet coli[];
@@ -280,7 +282,11 @@
extern int opt_width; /* number of columns to fit on reduced page */
extern int opt_mp_header; /* let mpage create a header */
extern int opt_sheetheader; /* let mpage create sheetheaders */
+#ifndef LIBPAPER
extern char * opt_page; /* sheets size: a4 or us letter */
+#else
+extern char opt_page[]; /* sheets size: a4 or us letter */
+#endif
extern int opt_fold; /* fold long lines */
extern int opt_outline; /* print a nice outline around pages */
extern int opt_verbose; /* print a count of pages sent to printer */
Index: mpage-2.5.6/page.c
===================================================================
--- mpage-2.5.6.orig/page.c 2008-08-11 23:48:28.317336922 +0200
+++ mpage-2.5.6/page.c 2008-08-11 23:55:46.090284181 +0200
@@ -21,6 +21,8 @@
#include "mpage.h"
#include "string.h"
+extern struct page_desc paper[];
+
#define PAPERSIZE_FILE "/etc/papersize"
void
check_papersize()
@@ -59,12 +61,24 @@
void
set_page()
{
+#ifndef LIBPAPER
int i = select_pagetype(opt_page);
media = paper[i].media;
ps_width = paper[i].width;
ps_height = paper[i].height;
-
+#else
+ struct paper * ps;
+ ps=paperinfo(opt_page);
+ if (!ps) {
+ fprintf(stderr,"%s: unknown page format: %s\n",
+ MPAGE, opt_page);
+ exit(1);
+ }
+ media = papername(ps);
+ ps_width = paperpswidth(ps);
+ ps_height = paperpsheight(ps);
+#endif
return;
} /* set_page */
@@ -76,11 +90,21 @@
{
int i = 0;
+#ifndef LIBPAPER
while (paper[i].media && strcasecmp(pt, paper[i].media))
i++;
if (paper[i].media)
opt_page = paper[i].media;
else
+#else
+ struct paper * ps;
+
+ strncpy(opt_page,pt,31);
+ opt_page[31]='\0';
+
+ ps=paperinfo(opt_page);
+ if (!ps)
+#endif
fprintf(stderr, "%s: ignoring unknown paper type: %s\n",
MPAGE, pt);
return i;
Index: mpage-2.5.6/FAQ
===================================================================
--- mpage-2.5.6.orig/FAQ 2008-08-11 23:54:21.317453255 +0200
+++ mpage-2.5.6/FAQ 2008-08-11 23:55:38.833870662 +0200
@@ -27,3 +27,14 @@
This information is buried in the dvips manual somewhere, but is not easy
to find!
+
+Using mpage with magicfilter
+============================
+Andreas Jellinghaus <aj@debian.org> writes:
+
+I'm using mpage with lprng and magicfilter. My local magic filter setup
+is /usr/sbin/ljet4l-filter, and this line passes all ASCII files to mpage :
+default pipe /usr/bin/mpage -A -2
+
+I don't want to waste paper with ASCII texts. MPage also works for
+postscript files.
Index: mpage-2.5.6/README
===================================================================
--- mpage-2.5.6.orig/README 2008-08-11 23:56:29.352749569 +0200
+++ mpage-2.5.6/README 2008-08-11 23:07:25.849008850 +0200
@@ -1,28 +1,3 @@
-
-COPYRIGHT:
-
-Mpage and all the files distributed with mpage are covered by copyright:
-
- Copyright (c) 1994-2004 Marcel J.E. Mol, The Netherlands
- Copyright (c) 1988 Mark P. Hahn, Herndon, Virginia
-
- Permission is granted to anyone to make or distribute verbatim
- copies of this document as received, in any medium, provided
- that this copyright notice is preserved, and that the
- distributor grants the recipient permission for further
- redistribution as permitted by this notice.
-
- marcel@mesa.nl
- MESA Consulting B.V.
- Nootdorp
- The Netherlands
- Phone: +31-15-3105252
- Mobile:+31-6-54724868
- Fax: +31-15-3105253
- email: info@mesa.nl http://www.mesa.nl ftp://ftp.mesa.nl
-
-
-=================================================================
DESCRIPTION:
Mpage is a program to reduce and print multiple pages of text per
@@ -30,54 +5,21 @@
It also has limited functionality to do the same directly with postscript
files.
-The following are the files you should have for mpage.
-
- README Notes and descriptions, this file
- README.OS2 OS/2 port description
- Copyright Copyright notice
- CHANGES Change history
- Makefile The Makefile
- TODO Wish List for changes
- FAQ Useful tips and hints
- NEWS Global changes, User visible changes
- Mpage.lsm LSM file for mpage
- args.c Command line and options processing
- encoding.h Definition of internal default character encoding
- encoding.h.CP850 Popular for renaming to encoding.h
- file.c Generic file handling
- glob.c Global variable setup
- mpage.h Definitions
- mpage.c Main Control
- page.c Page layout routines
- post.c PostScript file processing
- sample.c Prints sample page layout pages
- text.c Text file processing
- util.c Misc utility functions
- mpage.1 Manual page
+The following are some of the files you should receive in the Debian
+package:
All.chars Test file containing all ASCII characters
Encodings Directory with character encoding library files
Characters List of Postscript character encoding names
Encoding.format Description on how to create character encoding
library files
- gencodes.c Util program to build All.chars file
- Test Directory with test pages
-
- OS2 Directory with simulated lpr for OS/2
Contrib Directory with contributions by others
Contrib/mfix Fix to mpage that makes it work with ArborText
-
-INSTRUCTIONS:
-
-All you should need to do is run make. Actually it is probably better
-to have a look at the Makefile and to check settings like for example PAGESIZE
-to set the default page size (e.g A4 or Letter ...).
-This will create the programs mpage and msample. Mpage is
-the program to print n-up pages. Msample prints a sample outline. I
-used it for debugging the placement of the layout. It is also handy
-for other layout purposes. It accepts all the arguments that mpage
-does, but does not print files.
+Msample prints a sample outline. I used it for debugging the
+placement of the layout. It is also handy for other layout purposes.
+It accepts all the arguments that mpage does, but does not print
+files.
As a quick sample try:
@@ -87,9 +29,16 @@
or
"groff -man mpage.1 | mpage -2"
+USING ENCODINGS:
-The manual page, mpage.1, formats with UCB or ATT manual macros.
+Example supplied by Vassilis Virvilis. To print Greek characters, use
+the Greek fonts from http://www.csd.uch.gr/~lourakis/genscript/. Both
+enscript and a2ps embed the fonts in the generated postscript
+document. mpage utilizes the printer fonts. Therefore you will have to
+actually install the font for ghostscript. To print the Greek
+characters, use the following command:
+ mpage -FCourier-ISOLatinGreek -CISO-8859.7 test.txt > test.ps
USING MPAGE:
Index: mpage-2.5.6/args.c
===================================================================
--- mpage-2.5.6.orig/args.c 2008-08-11 23:57:11.963177801 +0200
+++ mpage-2.5.6/args.c 2008-08-11 23:07:25.817007026 +0200
@@ -91,7 +91,11 @@
UPDOWN : LEFTRIGHT;
break;
case 'A': /* A4 sized, european paper */
+#ifndef LIBPAPER
opt_page = "A4"; /* deprecated */
+#else
+ strcpy(opt_page,"a4");
+#endif
break;
case 'b': /* base paper type */
OPTARG();
@@ -386,17 +390,25 @@
case 'S':
opt_square = 0;
break;
+// opt_duplex and opt_tumble have 3 possible values:
+// 4 : do not do anything
+// 0 : force printer to do it
+// !0 : force printer not to do it
case 't':
- opt_duplex = 1 - opt_duplex;
+ opt_duplex = ! opt_duplex;
break;
case 'T':
- opt_tumble = 1 - opt_tumble;
+ opt_tumble = ! opt_tumble;
break;
case 'u':
check_utf8 = 1 - check_utf8;
break;
case 'U': /* Letter sized, US paper */
+#ifndef LIBPAPER
opt_page = "Letter"; /* deprecated */
+#else
+ strcpy(opt_page,"letter");
+#endif
break;
case 'v': /* verbose (print page count) */
opt_verbose = 1 - opt_verbose;
Index: mpage-2.5.6/glob.c
===================================================================
--- mpage-2.5.6.orig/glob.c 2008-08-11 23:58:11.934595375 +0200
+++ mpage-2.5.6/glob.c 2008-08-11 23:07:25.829007710 +0200
@@ -327,7 +327,11 @@
int opt_lines = 0; /* lines to fit on reduced page */
int opt_killtrail = 1; /* Quit reading input on %%TRailer */
int opt_width = 0; /* columns to fit on reduced page */
+#ifndef LIBPAPER
char * opt_page = PAGE_DEF; /* default paper size */
+#else
+char opt_page [32]; /* default paper size */
+#endif
/* boolean's: set default to 0 or 1 */
int opt_pr = 0; /* if true use pr(1) to format output */
int opt_mp_header = 0; /* let mpage create headers */
@@ -342,8 +346,12 @@
int opt_last[MAXJARG]; /* print as many as supplied per -j */
int opt_alt[MAXJARG]; /* by default print all sheets, odd+even per -j*/
int opt_file = 1; /* should each file appera on a new sheet */
-int opt_duplex = DEFAULT_DUPLEX; /* duplex mode flag */
-int opt_tumble = 0; /* tumble overy second pages */
+// opt_duplex and opt_tumble have 3 possible values:
+// 4 , aka NOP : dont do anything on PostScript,so printer default will be used
+// 0 , aka yes : force printer to do it
+// !0, aka no : force printer not to do it
+int opt_duplex = 4; /* duplex mode flag */
+int opt_tumble = 4; /* tumble overy second pages */
int opt_textbox = 0; /* don't normally draw box around text */
int opt_input = IN_AUTO; /* select input file format */
int opt_encoding = DEFAULT_ENCODING; /* use default encoding or not */
@@ -420,10 +428,15 @@
-j Print specified sheets: first[-last][%%interval]\n\
-j 1-10 does first 10 sheets, -j 1%%2 prints odd ones, -j 2%%2 even ones.\n\
-J Set the start of the sheet page count\n\
- -t Toggle printing both sides of the paper (Duplex mode, %s)\n\
- -T Toggle tumble of every second pages when printing in duplex mode (off)\n",
- fontname, opt_tabstop, PAGE_DEF, printprog, printarg,
- opt_duplex ? "on" : "off"
++ -t Toggle printing both sides of the paper (NOP,on,off,on...)\n\
++ -T Toggle tumble of every second pages (NOP,on,off,on...)\n",
+ fontname, opt_tabstop,
+#ifndef LIBPAPER
+ PAGE_DEF,
+#else
+ opt_page,
+#endif
+ PAGE_DEF, printprog, printarg
);
fprintf(stderr, "\n(c) 1993-2005 Marcel Mol, marcel@mesa.nl (MESA Consulting)\n");
Index: mpage-2.5.6/Contrib/psprint
===================================================================
--- mpage-2.5.6.orig/Contrib/psprint 2008-08-12 00:01:13.312931539 +0200
+++ mpage-2.5.6/Contrib/psprint 2008-08-11 23:07:25.825007484 +0200
@@ -1,10 +1,9 @@
-#!/bin/ksh -
+#!/bin/sh -
STDIN_TMP_FILE=/tmp/psprint.$$
GS=/usr/local/bin/gs
GSLIB=/usr/local/lib/ghostscript/3.53
-RM=/bin/rm
#
# define print command (SYSV or BSD ish)
# PRINT="lp -or -s"
@@ -20,7 +19,7 @@
${GSLIB}/quit.ps
done
-${RM} -f "${STDIN_TMP_FILE}"
+rm -f "${STDIN_TMP_FILE}"
exit 0
Index: mpage-2.5.6/Encodings/ISO-8859.7
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ mpage-2.5.6/Encodings/ISO-8859.7 2008-08-11 23:07:25.853009079 +0200
@@ -0,0 +1,231 @@
+%%%% ISO-8859.7 character encoding (I think...)
+27 255 % first and last encoding
+027 /florin
+028 /dagger
+029 /daggerdbl
+030 /perthousand
+031 /trademark
+032 /space
+033 /exclam
+034 /quotedbl
+035 /numbersign
+036 /dollar
+037 /percent
+038 /ampersand
+039 /quoteright
+040 /parenleft
+041 /parenright
+042 /asterisk
+043 /plus
+044 /comma
+045 /hyphen
+046 /period
+047 /slash
+048 /zero
+049 /one
+050 /two
+051 /three
+052 /four
+053 /five
+054 /six
+055 /seven
+056 /eight
+057 /nine
+058 /colon
+059 /semicolon
+060 /less
+061 /equal
+062 /greater
+063 /question
+064 /at
+065 /A
+066 /B
+067 /C
+068 /D
+069 /E
+070 /F
+071 /G
+072 /H
+073 /I
+074 /J
+075 /K
+076 /L
+077 /M
+078 /N
+079 /O
+080 /P
+081 /Q
+082 /R
+083 /S
+084 /T
+085 /U
+086 /V
+087 /W
+088 /X
+089 /Y
+090 /Z
+091 /bracketleft
+092 /backslash
+093 /bracketright
+094 /asciicircum
+095 /underscore
+096 /quoteleft
+097 /a
+098 /b
+099 /c
+100 /d
+101 /e
+102 /f
+103 /g
+104 /h
+105 /i
+106 /j
+107 /k
+108 /l
+109 /m
+110 /n
+111 /o
+112 /p
+113 /q
+114 /r
+115 /s
+116 /t
+117 /u
+118 /v
+119 /w
+120 /x
+121 /y
+122 /z
+123 /braceleft
+124 /bar
+125 /braceright
+126 /asciitilde
+127 /.notdef
+128 /.notdef
+129 /.notdef
+130 /.notdef
+131 /.notdef
+132 /.notdef
+133 /.notdef
+134 /.notdef
+135 /.notdef
+136 /.notdef
+137 /.notdef
+138 /.notdef
+139 /.notdef
+140 /.notdef
+141 /.notdef
+142 /.notdef
+143 /.notdef
+144 /.notdef
+145 /.notdef
+146 /.notdef
+147 /.notdef
+148 /.notdef
+149 /.notdef
+150 /.notdef
+151 /.notdef
+152 /.notdef
+153 /.notdef
+154 /.notdef
+155 /.notdef
+156 /.notdef
+157 /.notdef
+158 /.notdef
+159 /.notdef
+160 /space
+161 /quoteleft
+162 /quoteright
+163 /sterling
+164 /.notdef
+165 /.notdef
+166 /brokenbar
+167 /section
+168 /dieresis
+169 /copyright
+170 /.notdef
+171 /guillemotleft
+172 /logicalnot
+173 /hyphen
+174 /.notdef
+175 /endash
+176 /degree
+177 /plusminus
+178 /twosuperior
+179 /threesuperior
+180 /acute
+181 /dieresisacute
+182 /afii9936
+183 /periodcentered
+184 /afii9937
+185 /afii9938
+186 /afii9939
+187 /guillemotright
+188 /afii9940
+189 /onehalf
+190 /afii9941
+191 /afii9942
+192 /afii9977
+193 /afii9793
+194 /afii9794
+195 /afii9796
+196 /afii9797
+197 /afii9798
+198 /afii9801
+199 /afii9802
+200 /afii9803
+201 /afii9804
+202 /afii9805
+203 /afii9806
+204 /afii9807
+205 /afii9808
+206 /afii9809
+207 /afii9810
+208 /afii9811
+209 /afii9813
+210 /.notdef
+211 /afii9814
+212 /afii9816
+213 /afii9817
+214 /afii9818
+215 /afii9819
+216 /afii9820
+217 /afii9821
+218 /afii9943
+219 /afii9944
+220 /afii9968
+221 /afii9969
+222 /afii9970
+223 /afii9971
+224 /afii9978
+225 /afii9825
+226 /afii9826
+227 /afii9828
+228 /afii9829
+229 /afii9830
+230 /afii9833
+231 /afii9834
+232 /afii9835
+233 /afii9836
+234 /afii9837
+235 /afii9838
+236 /afii9839
+237 /afii9840
+238 /afii9841
+239 /afii9842
+240 /afii9843
+241 /afii9845
+242 /afii9847
+243 /afii9846
+244 /afii9848
+245 /afii9849
+246 /afii9850
+247 /afii9851
+248 /afii9852
+249 /afii9853
+250 /afii9975
+251 /afii9976
+252 /afii9972
+253 /afii9973
+254 /afii9974
+255 /.notdef
Index: mpage-2.5.6/Contrib/mfix/mfix.c
===================================================================
--- mpage-2.5.6.orig/Contrib/mfix/mfix.c 2008-08-12 00:02:40.797917022 +0200
+++ mpage-2.5.6/Contrib/mfix/mfix.c 2008-08-11 23:07:25.829007710 +0200
@@ -1,7 +1,7 @@
#include <stdio.h>
-FILE *in=stdin,*out=stdout;
-char line[200]; line2[200];
+FILE *in,*out;
+char line[200], line2[200];
int
strcp(st1,st2)
@@ -15,6 +15,8 @@
main()
{
int i;
+ in = stdin;
+ out = stdout;
for(i=0; i<10; i=1)
{
if (fgets(line,200,in)==NULL) { close(in); close(out); exit(1); }
@@ -41,4 +43,4 @@
fprintf(out,"%s",line);
}
}
-
\ No newline at end of file
+