From c076033eae06ee3f30c02bfa4d529001379eff6c Mon Sep 17 00:00:00 2001
From: Philipp Gesang <phg42.2a@gmail.com>
Date: Tue, 9 Dec 2014 23:07:55 +0100
Subject: [fontloader] reorganize under the new import scheme
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

For better orientation, the fontloader tree now contains two
subdirectories into which files have been reorganized:

The two files required at runtime for the fontloader and luaotfload-tool
are:

      × ``fontloader-basics-gen.lua``
      × ``fontloader-fontloader.lua``

They are now kept in the ``src/fontloader/runtime/`` subdirectory.

All other files from upstream are now located in
``src/fontloader/misc``. This includes a number of files that have not
yet been part of Luaotfload. Currently, the *misc* set of files is not
packaged along with Luaotfload. This may change in the future when there
is an option to switch the merged fontloader for its constituent files,
or even for upstream.
---
 src/fontloader/misc/fontloader-mplib.tex | 124 +++++++++++++++++++++++++++++++
 1 file changed, 124 insertions(+)
 create mode 100644 src/fontloader/misc/fontloader-mplib.tex

(limited to 'src/fontloader/misc/fontloader-mplib.tex')

diff --git a/src/fontloader/misc/fontloader-mplib.tex b/src/fontloader/misc/fontloader-mplib.tex
new file mode 100644
index 0000000..8af9f2d
--- /dev/null
+++ b/src/fontloader/misc/fontloader-mplib.tex
@@ -0,0 +1,124 @@
+%D \module
+%D   [       file=luatex-mplib,
+%D        version=2009.12.01,
+%D          title=\LUATEX\ Support Macros,
+%D       subtitle=\METAPOST\ to \PDF\ conversion,
+%D         author=Taco Hoekwater \& Hans Hagen,
+%D      copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+
+%D This is the companion to the \LUA\ module \type {supp-mpl.lua}. Further
+%D embedding is up to others. A simple example of usage in plain \TEX\ is:
+%D
+%D \starttyping
+%D \pdfoutput=1
+%D
+%D \input luatex-mplib.tex
+%D
+%D \setmplibformat{plain}
+%D
+%D \mplibcode
+%D   beginfig(1);
+%D     draw fullcircle
+%D       scaled 10cm
+%D       withcolor red
+%D       withpen pencircle xscaled 4mm yscaled 2mm rotated 30 ;
+%D   endfig;
+%D \endmplibcode
+%D
+%D \end
+%D \stoptyping
+
+\def\setmplibformat#1{\def\mplibformat{#1}}
+
+\def\setupmplibcatcodes
+  {\catcode`\{=12 % could be optional .. not really needed
+   \catcode`\}=12 % could be optional .. not really needed
+   \catcode`\#=12
+   \catcode`\^=12
+   \catcode`\~=12
+   \catcode`\_=12
+   \catcode`\%=12
+   \catcode`\&=12
+   \catcode`\$=12 }
+
+\def\mplibcode
+  {\bgroup
+   \setupmplibcatcodes
+   \domplibcode}
+
+\long\def\domplibcode#1\endmplibcode
+  {\egroup
+   \directlua{metapost.process('\mplibformat',[[#1]])}}
+
+%D We default to \type {plain} \METAPOST:
+
+\def\mplibformat{plain}
+
+%D We use a dedicated scratchbox:
+
+\ifx\mplibscratchbox\undefined \newbox\mplibscratchbox \fi
+
+%D Now load the needed \LUA\ code.
+
+\directlua{dofile(kpse.find_file('luatex-mplib.lua'))}
+
+%D The following code takes care of encapsulating the literals:
+
+\def\startMPLIBtoPDF#1#2#3#4%
+  {\hbox\bgroup
+   \xdef\MPllx{#1}\xdef\MPlly{#2}%
+   \xdef\MPurx{#3}\xdef\MPury{#4}%
+   \xdef\MPwidth{\the\dimexpr#3bp-#1bp\relax}%
+   \xdef\MPheight{\the\dimexpr#4bp-#2bp\relax}%
+   \parskip0pt%
+   \leftskip0pt%
+   \parindent0pt%
+   \everypar{}%
+   \setbox\mplibscratchbox\vbox\bgroup
+   \noindent}
+
+\def\stopMPLIBtoPDF
+  {\egroup
+   \setbox\mplibscratchbox\hbox
+     {\hskip-\MPllx bp%
+      \raise-\MPlly bp%
+      \box\mplibscratchbox}%
+   \setbox\mplibscratchbox\vbox to \MPheight
+     {\vfill
+      \hsize\MPwidth
+      \wd\mplibscratchbox0pt%
+      \ht\mplibscratchbox0pt%
+      \dp\mplibscratchbox0pt%
+      \box\mplibscratchbox}%
+   \wd\mplibscratchbox\MPwidth
+   \ht\mplibscratchbox\MPheight
+   \box\mplibscratchbox
+   \egroup}
+
+%D The body of picture, except for text items, is taken care of by:
+
+\ifnum\pdfoutput>0
+    \let\MPLIBtoPDF\pdfliteral
+\else
+    \def\MPLIBtoPDF#1{\special{pdf:literal direct #1}} % not ok yet
+\fi
+
+%D Text items have a special handler:
+
+\def\MPLIBtextext#1#2#3#4#5%
+  {\begingroup
+   \setbox\mplibscratchbox\hbox
+     {\font\temp=#1 at #2bp%
+      \temp
+      #3}%
+   \setbox\mplibscratchbox\hbox
+     {\hskip#4 bp%
+      \raise#5 bp%
+      \box\mplibscratchbox}%
+   \wd\mplibscratchbox0pt%
+   \ht\mplibscratchbox0pt%
+   \dp\mplibscratchbox0pt%
+   \box\mplibscratchbox
+   \endgroup}
+
+\endinput
-- 
cgit v1.2.3

