From 298b5105d4a63a60509fa95f7826173b5e91813a Mon Sep 17 00:00:00 2001
From: Khaled Hosny <khaledhosny@eglug.org>
Date: Fri, 8 Jan 2010 20:57:05 +0200
Subject: Move 'font-msc' module to its own file

For easier maintenance.
---
 luaotfload.dtx | 179 ---------------------------------------------------------
 1 file changed, 179 deletions(-)

(limited to 'luaotfload.dtx')

diff --git a/luaotfload.dtx b/luaotfload.dtx
index 86c5b8d..afcc7bb 100644
--- a/luaotfload.dtx
+++ b/luaotfload.dtx
@@ -78,7 +78,6 @@ and the derived files
 \generate{%
   \usedir{tex/luatex/luaotfload}%
   \file{luaotfload.lua}{\from{luaotfload.dtx}{lua}}%%
-  \file{otfl-font-msc.lua}{\from{luaotfload.dtx}{font-msc}}%%
 }
 
 \obeyspaces
@@ -583,184 +582,6 @@ end
 %</lua>
 % \fi
 %
-% \section{\texttt{otfl-font-msc.lua}}
-%
-% \iffalse
-%<*font-msc>
-% \fi
-%
-%    First, some initializations.
-%
-%    \begin{macrocode}
-
-if not modules then modules = { } end modules ['font-msc'] = {
-    version   = 1.001,
-    comment   = "companion to font-otf.lua (miscellaneous)",
-    author    = "Khaled Hosny",
-    copyright = "Khaled Hosny",
-    license   = "GPL"
-}
-
-%    \end{macrocode}
-%
-%    Support for font slanting and extending.
-%
-%    \begin{macrocode}
-
-fonts.triggers            = fonts.triggers            or { }
-fonts.initializers        = fonts.initializers        or { }
-fonts.initializers.common = fonts.initializers.common or { }
-
-local initializers, format = fonts.initializers, string.format
-
-table.insert(fonts.triggers,"slant")
-
-function fonts.initializers.common.slant(tfmdata,value)
-    value = tonumber(value)
-    if not value then
-        value =  0
-    elseif value >  1 then
-        value =  1
-    elseif value < -1 then
-        value = -1
-    end
-    tfmdata.slant_factor = value
-end
-
-initializers.base.otf.slant = initializers.common.slant
-initializers.node.otf.slant = initializers.common.slant
-
-table.insert(fonts.triggers,"extend")
-
-function initializers.common.extend(tfmdata,value)
-    value = tonumber(value)
-    if not value then
-        value =  0
-    elseif value >  10 then
-        value =  10
-    elseif value < -10 then
-        value = -10
-    end
-    tfmdata.extend_factor = value
-end
-
-initializers.base.otf.extend = initializers.common.extend
-initializers.node.otf.extend = initializers.common.extend
-
-%    \end{macrocode}
-%
-%    Support for font color.
-%
-%    \begin{macrocode}
-
-table.insert(fonts.triggers,"color")
-
-function initializers.common.color(tfmdata,value)
-    if value then
-        tfmdata.color = value
-    end
-end
-
-initializers.base.otf.color = initializers.common.color
-initializers.node.otf.color = initializers.common.color
-
-local function hex2dec(hex,one)
-    if one then
-        return format("%.1g", tonumber(hex, 16)/255)
-    else
-        return format("%.3g", tonumber(hex, 16)/255)
-    end
-end
-
-local res
-
-local function pageresources(a)
-    local res2
-    if not res then
-       res = "/TransGs1<</ca 1/CA 1>>"
-    end
-    res2 = format("/TransGs%s<</ca %s/CA %s>>", a, a, a)
-    res  = format("%s%s", res, res:find(res2) and "" or res2)
-end
-
-local function hex_to_rgba(hex)
-    local r, g, b, a, push, pop, res3
-    if hex then
-        if #hex == 6 then
-            _, _, r, g, b    = hex:find('(..)(..)(..)')
-        elseif #hex == 8 then
-            _, _, r, g, b, a = hex:find('(..)(..)(..)(..)')
-            a                = hex2dec(a,true)
-            pageresources(a)
-        end
-    else
-        return nil
-    end
-    r = hex2dec(r)
-    g = hex2dec(g)
-    b = hex2dec(b)
-    if a then
-        push = format('/TransGs%g gs %s %s %s rg', a, r, g, b)
-        pop  = '0 g /TransGs1 gs'
-    else
-        push = format('%s %s %s rg', r, g, b)
-        pop  = '0 g'
-    end
-    return push, pop
-end
-
-local glyph   = node.id('glyph')
-local hlist   = node.id('hlist')
-local vlist   = node.id('vlist')
-local whatsit = node.id('whatsit')
-
-local function colorize(head)
-   for n in node.traverse(head) do
-       if n.id == hlist or n.id == vlist then
-           colorize(n.list)
-       end
-       if n.id == glyph then
-           local tfmdata = fonts.ids[n.font]
-           if tfmdata and tfmdata.color then
-               local prev = n.prev
-               local next = n.next
-               local pushcolor, popcolor = hex_to_rgba(tfmdata.color)
-               if prev.id == glyph and fonts.ids[prev.font].color == tfmdata.color then
-               else
-                   local push = node.new(whatsit, 8)
-                   push.mode  = 1
-                   push.data  = pushcolor
-                   head       = node.insert_before(head, n, push)
-               end
-               if next.id == glyph and fonts.ids[next.font].color == tfmdata.color then
-               else
-                   local pop  = node.new(whatsit, 8)
-                   pop.mode   = 1
-                   pop.data   = popcolor
-                   head       = node.insert_after(head, n, pop)
-               end
-           end
-       end
-   end
-   return head
-end
-
-local function finalize(head)
-    if res then
-        tex.pdfpageresources = format("%s\n/ExtGState<<%s>>", tex.pdfpageresources, res)
-    end
-    return head
-end
-
-callback.add("hpack_filter",         colorize, "Font color")
-callback.add("pre_linebreak_filter", colorize, "Font color")
-callback.add("pre_output_filter",    finalize, "Finalize hack")
-
-%    \end{macrocode}
-% \iffalse
-%</font-msc>
-% \fi
-%
 % \section{\texttt{luaotfload.sty}}
 %
 % \iffalse
-- 
cgit v1.2.3

