mirror of
https://salsa.debian.org/dskoll/remind.git
synced 2026-04-17 23:08:40 +02:00
-- Rearranged directory structure; starting conversion to autoconf.
This commit is contained in:
213
src/rem2ps.h
Normal file
213
src/rem2ps.h
Normal file
@@ -0,0 +1,213 @@
|
||||
/***************************************************************/
|
||||
/* */
|
||||
/* REM2PS.H */
|
||||
/* */
|
||||
/* Define the PostScript prologue */
|
||||
/* */
|
||||
/* This file is part of REMIND. */
|
||||
/* Copyright (C) 1992-1997 by David F. Skoll */
|
||||
/* */
|
||||
/***************************************************************/
|
||||
|
||||
/* $Id: rem2ps.h,v 1.1 1998-01-15 02:50:35 dfs Exp $ */
|
||||
|
||||
char *PSProlog1[] =
|
||||
{
|
||||
"% This file was produced by Remind and Rem2PS, written by",
|
||||
"% David F. Skoll.",
|
||||
"% Remind and Rem2PS are Copyright 1992-1997 David F. Skoll.",
|
||||
"/ISOLatin1Encoding where { pop save true }{ false } ifelse",
|
||||
" /ISOLatin1Encoding [ StandardEncoding 0 45 getinterval aload pop /minus",
|
||||
" StandardEncoding 46 98 getinterval aload pop /dotlessi /grave /acute",
|
||||
" /circumflex /tilde /macron /breve /dotaccent /dieresis /.notdef /ring",
|
||||
" /cedilla /.notdef /hungarumlaut /ogonek /caron /space /exclamdown /cent",
|
||||
" /sterling /currency /yen /brokenbar /section /dieresis /copyright",
|
||||
" /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron",
|
||||
" /degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph",
|
||||
" /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright",
|
||||
" /onequarter /onehalf /threequarters /questiondown /Agrave /Aacute",
|
||||
" /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute",
|
||||
" /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth",
|
||||
" /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply",
|
||||
" /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn",
|
||||
" /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring /ae",
|
||||
" /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute",
|
||||
" /icircumflex /idieresis /eth /ntilde /ograve /oacute /ocircumflex",
|
||||
" /otilde /odieresis /divide /oslash /ugrave /uacute /ucircumflex",
|
||||
" /udieresis /yacute /thorn /ydieresis ] def",
|
||||
"{ restore } if",
|
||||
"",
|
||||
"/reencodeISO { %def",
|
||||
" findfont dup length dict begin",
|
||||
" { 1 index /FID ne { def }{ pop pop } ifelse } forall",
|
||||
" /Encoding ISOLatin1Encoding def",
|
||||
" currentdict end definefont pop",
|
||||
"} bind def",
|
||||
"/copyFont { %def",
|
||||
" findfont dup length dict begin",
|
||||
" { 1 index /FID ne { def } { pop pop } ifelse } forall",
|
||||
" currentdict end definefont pop",
|
||||
"} bind def",
|
||||
"",
|
||||
"% L - Draw a line",
|
||||
"/L {",
|
||||
" newpath moveto lineto stroke",
|
||||
"} bind def",
|
||||
"% string1 string2 strcat string",
|
||||
"% Function: Concatenates two strings together.",
|
||||
"/strcat {",
|
||||
" 2 copy length exch length add",
|
||||
" string dup",
|
||||
" 4 2 roll",
|
||||
" 2 index 0 3 index",
|
||||
" putinterval",
|
||||
" exch length exch putinterval",
|
||||
"} bind def",
|
||||
"% string doheading",
|
||||
"/doheading",
|
||||
"{",
|
||||
" /monthyr exch def",
|
||||
"",
|
||||
" /TitleFont findfont",
|
||||
" TitleSize scalefont setfont",
|
||||
" monthyr stringwidth",
|
||||
" /hgt exch def",
|
||||
" 2 div MaxX MinX add 2 div exch sub /x exch def",
|
||||
" MaxY Border sub TitleSize sub /y exch def",
|
||||
" newpath x y moveto monthyr show",
|
||||
" newpath x y moveto monthyr false charpath flattenpath pathbbox",
|
||||
" pop pop Border sub /y exch def pop",
|
||||
" MinX y MaxX y L",
|
||||
" /topy y def",
|
||||
" /HeadFont findfont HeadSize scalefont setfont",
|
||||
"% Do the days of the week",
|
||||
" MaxX MinX sub 7 div /xincr exch def",
|
||||
" /x MinX def",
|
||||
NULL
|
||||
};
|
||||
char *PSProlog2[] =
|
||||
{
|
||||
" {",
|
||||
" HeadSize x y HeadSize 2 mul sub x xincr add y CenterText",
|
||||
" x xincr add /x exch def",
|
||||
" } forall",
|
||||
" y HeadSize 2 mul sub /y exch def",
|
||||
" MinX y MaxX y L",
|
||||
" /ytop y def /ymin y def",
|
||||
"}",
|
||||
"def",
|
||||
"/CenterText",
|
||||
"{",
|
||||
" /maxy exch def",
|
||||
" /maxx exch def",
|
||||
" /miny exch def",
|
||||
" /minx exch def",
|
||||
" /sz exch def",
|
||||
" /str exch def",
|
||||
" str stringwidth pop",
|
||||
" 2 div maxx minx add 2 div exch sub",
|
||||
" sz 2 div maxy miny add 2 div exch sub",
|
||||
" moveto str show",
|
||||
"} def",
|
||||
"% Variables:",
|
||||
"% curline - a string holding the current line",
|
||||
"% y - current y pos",
|
||||
"% yincr - increment to next line",
|
||||
"% xleft - left margin",
|
||||
"% width - max width.",
|
||||
"% EnterOneWord - given a word, enter it into the box.",
|
||||
"% string EnterOneWord",
|
||||
"/EnterOneWord {",
|
||||
" { EnterOneWordAux",
|
||||
" {exit} if }",
|
||||
" loop",
|
||||
"} bind def",
|
||||
"% EnterOneWordAux - if the word fits, enter it into box and return true.",
|
||||
"% If it doesn't fit, put as much as will fit and return the string and false.",
|
||||
"/EnterOneWordAux {",
|
||||
" /word exch def",
|
||||
" /tmpline curline word strcat def",
|
||||
" tmpline stringwidth pop width gt",
|
||||
" {MoveToNewLine}",
|
||||
" {/curline tmpline ( ) strcat def /word () def}",
|
||||
" ifelse",
|
||||
" word () eq",
|
||||
" {true}",
|
||||
" {word false}",
|
||||
" ifelse",
|
||||
"} bind def",
|
||||
"% MoveToNewLine - move to a new line, resetting word as appropriate",
|
||||
"/MoveToNewLine {",
|
||||
" curline () ne",
|
||||
" {newpath xleft y moveto curline show /curline () def /y y yincr add def} ",
|
||||
" {ChopWord}",
|
||||
" ifelse",
|
||||
"} bind def",
|
||||
"% ChopWord - word won't fit. Chop it and find biggest piece that will fit",
|
||||
"/ChopWord {",
|
||||
" /curline () def",
|
||||
" /len word length def",
|
||||
" /Fcount len 1 sub def",
|
||||
"",
|
||||
" {",
|
||||
" word 0 Fcount getinterval stringwidth pop width le",
|
||||
" {exit} if",
|
||||
" /Fcount Fcount 1 sub def",
|
||||
" } loop",
|
||||
"% Got the count. Display it and reset word",
|
||||
" newpath xleft y moveto word 0 Fcount getinterval show",
|
||||
" /y y yincr add def",
|
||||
" /word word Fcount len Fcount sub getinterval def",
|
||||
"} bind def",
|
||||
"/FinishFormatting {",
|
||||
" word () ne",
|
||||
" {newpath xleft y moveto word show /word () def",
|
||||
" /curline () def /y y yincr add def}",
|
||||
" {curline () ne",
|
||||
" {newpath xleft y moveto curline show /word () def",
|
||||
" /curline () def /y y yincr add def} if}",
|
||||
" ifelse",
|
||||
"} bind def",
|
||||
"% FillBoxWithText - fill a box with text",
|
||||
"% text-array xleft width yincr y FillBoxWithText new-y",
|
||||
"% Returns the new Y-coordinate.",
|
||||
"/FillBoxWithText {",
|
||||
" /y exch def",
|
||||
" /yincr exch def",
|
||||
" /width exch def",
|
||||
" /xleft exch def",
|
||||
" /curline () def",
|
||||
" {EnterOneWord} forall",
|
||||
" FinishFormatting",
|
||||
" y",
|
||||
"} bind def",
|
||||
"% Variables for calendar boxes:",
|
||||
"% ytop - current top position",
|
||||
"% ymin - minimum y reached for current row",
|
||||
"% border ytop xleft width textarray daynum DoCalBox ybot",
|
||||
"% Do the entries for one calendar box. Returns lowest Y-coordinate reached",
|
||||
"/DoCalBox {",
|
||||
" /daynum exch def",
|
||||
" /textarr exch def",
|
||||
" /wid exch def",
|
||||
" /xl exch def",
|
||||
" /yt exch def",
|
||||
" /border exch def",
|
||||
"% Do the day number",
|
||||
" /DayFont findfont DaySize scalefont setfont",
|
||||
" xl wid add border sub daynum stringwidth pop sub",
|
||||
" yt border sub DaySize sub moveto daynum show",
|
||||
"% Do the text entries. Precharge the stack with current y pos.",
|
||||
" /ycur yt border sub DaySize sub DaySize sub 2 add def",
|
||||
" /EntryFont findfont EntrySize scalefont setfont",
|
||||
" ycur",
|
||||
" textarr",
|
||||
" { exch 2 sub /ycur exch def xl border add wid border sub border sub EntrySize 2 add neg",
|
||||
" ycur FillBoxWithText }",
|
||||
" forall",
|
||||
"} bind def",
|
||||
"2 setlinecap",
|
||||
"% Define a default PreCal procedure",
|
||||
"/PreCal { pop pop } bind def",
|
||||
NULL
|
||||
};
|
||||
Reference in New Issue
Block a user