From 7db7ee076f98cc2b3dca7228ae0e38ba4e88715a Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Fri, 28 May 2010 15:54:16 +0000 Subject: luatexbase update (27may10) git-svn-id: svn://tug.org/texlive/trunk@18560 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/tex/luatex/luatexbase/attr.lua | 23 +++++- .../tex/luatex/luatexbase/luatexbase-attr.sty | 26 +++--- .../tex/luatex/luatexbase/luatexbase-cctb.sty | 2 +- .../tex/luatex/luatexbase/luatexbase-compat.sty | 2 +- .../tex/luatex/luatexbase/luatexbase-loader.sty | 2 +- .../tex/luatex/luatexbase/luatexbase-mcb.sty | 2 +- .../tex/luatex/luatexbase/luatexbase-modutils.sty | 4 +- .../tex/luatex/luatexbase/luatexbase-regs.sty | 2 +- .../tex/luatex/luatexbase/luatexbase.sty | 92 ++++++++++++++++++++++ .../texmf-dist/tex/luatex/luatexbase/modutils.lua | 2 +- 10 files changed, 131 insertions(+), 26 deletions(-) create mode 100644 Master/texmf-dist/tex/luatex/luatexbase/luatexbase.sty (limited to 'Master/texmf-dist/tex/luatex/luatexbase') diff --git a/Master/texmf-dist/tex/luatex/luatexbase/attr.lua b/Master/texmf-dist/tex/luatex/luatexbase/attr.lua index f794e350812..74ecd6ac07f 100644 --- a/Master/texmf-dist/tex/luatex/luatexbase/attr.lua +++ b/Master/texmf-dist/tex/luatex/luatexbase/attr.lua @@ -13,8 +13,27 @@ -- module('luatexbase', package.seeall) attributes = {} -function attributedef_from_tex(name, number) - attributes[name] = tonumber(number) +local last_alloc = 0 +function new_attribute(name, silent) + if last_alloc >= 65535 then + if silent then + return -1 + else + error("No room for a new \\attribute", 1) + end + end + last_alloc = last_alloc + 1 + attributes[name] = last_alloc + unset_attribute(name) + if not silent then + texio.write_nl('log', string.format( + 'luatexbase.attributes[%q] = %d', name, last_alloc)) + end + return last_alloc +end +local unset_value = (luatexbase.luatexversion < 37) and -1 or -2147483647 +function unset_attribute(name) + tex.setattribute(attributes[name], unset_value) end -- -- End of File `attr.lua'. diff --git a/Master/texmf-dist/tex/luatex/luatexbase/luatexbase-attr.sty b/Master/texmf-dist/tex/luatex/luatexbase/luatexbase-attr.sty index d839e544bb3..5a78ea8a4fa 100644 --- a/Master/texmf-dist/tex/luatex/luatexbase/luatexbase-attr.sty +++ b/Master/texmf-dist/tex/luatex/luatexbase/luatexbase-attr.sty @@ -52,7 +52,7 @@ \let\x\ProvidesPackage \fi \expandafter\endgroup -\x{luatexbase-attr}[2010/05/12 v0.2 Attributes allocation for LuaTeX] +\x{luatexbase-attr}[2010/05/27 v0.2a Attributes allocation for LuaTeX] \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname RequirePackage\endcsname\relax \input ifluatex.sty @@ -88,28 +88,22 @@ \RequirePackage{luatexbase-loader} \fi \luatexbase@directlua{require('luatexbase.attr')} -\newcount\lltxb@attribute@alloc -\lltxb@attribute@alloc\m@ne \def\newluatexattribute#1{% - \ifnum\lltxb@attribute@alloc<65535\relax - \global\advance\lltxb@attribute@alloc\@ne - \allocationnumber\lltxb@attribute@alloc + \begingroup\escapechar\m@ne \expandafter\expandafter\expandafter + \endgroup \expandafter\expandafter\expandafter + \allocationnumber \luatexbase@directlua{tex.write( + luatexbase.new_attribute("\luatexluaescapestring{\string#1}", true))}% + \ifnum\allocationnumber>\m@ne \global\luatexattributedef#1=\allocationnumber - \unsetluatexattribute#1% - \begingroup\escapechar\m@ne - \luatexbase@directlua{luatexbase.attributedef_from_tex( - '\luatexluaescapestring{\string#1}', '\number\allocationnumber')}% - \endgroup \wlog{\string#1=\string\luatexattribute\the\allocationnumber}% \else \errmessage{No room for a new \string\attribute}% \fi} \def\unsetluatexattribute#1{% - \ifnum\luatexversion<37\relax - #1=-1\relax - \else - #1=-"7FFFFFFF\relax - \fi} + \begingroup\escapechar\m@ne + \luatexbase@directlua{% + luatexbase.unset_attribute("\luatexluaescapestring{\string#1}")}% + \endgroup} \def\setluatexattribute#1#2{% #1=\numexpr#2\relax} \lltxb@attr@AtEnd diff --git a/Master/texmf-dist/tex/luatex/luatexbase/luatexbase-cctb.sty b/Master/texmf-dist/tex/luatex/luatexbase/luatexbase-cctb.sty index ce4cbeda89e..d526f2f46a6 100644 --- a/Master/texmf-dist/tex/luatex/luatexbase/luatexbase-cctb.sty +++ b/Master/texmf-dist/tex/luatex/luatexbase/luatexbase-cctb.sty @@ -52,7 +52,7 @@ \let\x\ProvidesPackage \fi \expandafter\endgroup -\x{luatexbase-cctb}[2010/05/11 v0.2 Catcodetable allocation for LuaTeX] +\x{luatexbase-cctb}[2010/05/27 v0.2a Catcodetable allocation for LuaTeX] \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname RequirePackage\endcsname\relax \input ifluatex.sty diff --git a/Master/texmf-dist/tex/luatex/luatexbase/luatexbase-compat.sty b/Master/texmf-dist/tex/luatex/luatexbase/luatexbase-compat.sty index 672645ee0c1..be5d4e8ac3a 100644 --- a/Master/texmf-dist/tex/luatex/luatexbase/luatexbase-compat.sty +++ b/Master/texmf-dist/tex/luatex/luatexbase/luatexbase-compat.sty @@ -52,7 +52,7 @@ \let\x\ProvidesPackage \fi \expandafter\endgroup -\x{luatexbase-compat}[2010/05/12 v0.2 Compatibility tools for LuaTeX] +\x{luatexbase-compat}[2010/05/27 v0.2a Compatibility tools for LuaTeX] \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname RequirePackage\endcsname\relax \input ifluatex.sty diff --git a/Master/texmf-dist/tex/luatex/luatexbase/luatexbase-loader.sty b/Master/texmf-dist/tex/luatex/luatexbase/luatexbase-loader.sty index f6c300e445f..1609aba726e 100644 --- a/Master/texmf-dist/tex/luatex/luatexbase/luatexbase-loader.sty +++ b/Master/texmf-dist/tex/luatex/luatexbase/luatexbase-loader.sty @@ -52,7 +52,7 @@ \let\x\ProvidesPackage \fi \expandafter\endgroup -\x{luatexbase-loader}[2010/05/12 v0.2 Lua module loader for LuaTeX] +\x{luatexbase-loader}[2010/05/27 v0.2a Lua module loader for LuaTeX] \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname RequirePackage\endcsname\relax \input ifluatex.sty diff --git a/Master/texmf-dist/tex/luatex/luatexbase/luatexbase-mcb.sty b/Master/texmf-dist/tex/luatex/luatexbase/luatexbase-mcb.sty index f761f74a575..0fcd35fc4b9 100644 --- a/Master/texmf-dist/tex/luatex/luatexbase/luatexbase-mcb.sty +++ b/Master/texmf-dist/tex/luatex/luatexbase/luatexbase-mcb.sty @@ -52,7 +52,7 @@ \let\x\ProvidesPackage \fi \expandafter\endgroup -\x{luatexbase-mcb}[2010/05/12 v0.2 Callback management for LuaTeX] +\x{luatexbase-mcb}[2010/05/27 v0.2a Callback management for LuaTeX] \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname RequirePackage\endcsname\relax \input ifluatex.sty diff --git a/Master/texmf-dist/tex/luatex/luatexbase/luatexbase-modutils.sty b/Master/texmf-dist/tex/luatex/luatexbase/luatexbase-modutils.sty index 0d46d515b2f..c33ae6a1c61 100644 --- a/Master/texmf-dist/tex/luatex/luatexbase/luatexbase-modutils.sty +++ b/Master/texmf-dist/tex/luatex/luatexbase/luatexbase-modutils.sty @@ -52,7 +52,7 @@ \let\x\ProvidesPackage \fi \expandafter\endgroup -\x{luatexbase-modutils}[2010/05/12 v0.2 Module utilities for LuaTeX] +\x{luatexbase-modutils}[2010/05/27 v0.2a Module utilities for LuaTeX] \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname RequirePackage\endcsname\relax \input ifluatex.sty @@ -81,7 +81,7 @@ \luatexbase@directlua{require('luatexbase.modutils')} \luatexbase@ensure@primitive{luaescapestring} \def\luatexUseModule#1{\luatexbase@directlua{% - luatexbase.use_module("\luatexluescapestring{#1}")}} + luatexbase.use_module("\luatexluaescapestring{#1}")}} \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname newcommand\endcsname\relax \def\luatexRequireModule#1#2{% diff --git a/Master/texmf-dist/tex/luatex/luatexbase/luatexbase-regs.sty b/Master/texmf-dist/tex/luatex/luatexbase/luatexbase-regs.sty index 7e91965b5cf..816ddd411b1 100644 --- a/Master/texmf-dist/tex/luatex/luatexbase/luatexbase-regs.sty +++ b/Master/texmf-dist/tex/luatex/luatexbase/luatexbase-regs.sty @@ -52,7 +52,7 @@ \let\x\ProvidesPackage \fi \expandafter\endgroup -\x{luatexbase-regs}[2010/05/12 v0.2 Registers allocation for LuaTeX] +\x{luatexbase-regs}[2010/05/27 v0.2a Registers allocation for LuaTeX] \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname RequirePackage\endcsname\relax \input ifluatex.sty diff --git a/Master/texmf-dist/tex/luatex/luatexbase/luatexbase.sty b/Master/texmf-dist/tex/luatex/luatexbase/luatexbase.sty new file mode 100644 index 00000000000..bb66eef832f --- /dev/null +++ b/Master/texmf-dist/tex/luatex/luatexbase/luatexbase.sty @@ -0,0 +1,92 @@ +\MetaPrefix +\MetaPrefix This is file `luatexbase.sty', +\MetaPrefix generated with the docstrip utility. +\MetaPrefix +\MetaPrefix The original source files were: +\MetaPrefix +\MetaPrefix luatexbase.dtx (with options: `texpackage') +\MetaPrefix +\MetaPrefix Written in 2009, 2010 by Manuel Pegourie-Gonnard and Elie Roux. +\MetaPrefix +\MetaPrefix This work is under the CC0 license. +\MetaPrefix See source file 'luatexbase.dtx' for details. +\MetaPrefix + \csname lltxb@core@loaded\endcsname +\expandafter\let\csname lltxb@core@loaded\endcsname\endinput +\begingroup + \catcode123 1 % { + \catcode125 2 % } + \catcode 35 6 % # + \toks0{}% + \def\x{}% + \def\y#1 #2 {% + \toks0\expandafter{\the\toks0 \catcode#1 \the\catcode#1}% + \edef\x{\x \catcode#1 #2}}% + \y 123 1 % { + \y 125 2 % } + \y 35 6 % # + \y 10 12 % ^^J + \y 34 12 % " + \y 36 3 % $ $ + \y 39 12 % ' + \y 40 12 % ( + \y 41 12 % ) + \y 42 12 % * + \y 43 12 % + + \y 44 12 % , + \y 45 12 % - + \y 46 12 % . + \y 47 12 % / + \y 60 12 % < + \y 61 12 % = + \y 64 11 % @ (letter) + \y 62 12 % > + \y 95 12 % _ (other) + \y 96 12 % ` + \edef\y#1{\endgroup\edef#1{\the\toks0\relax}\x}% +\expandafter\y\csname lltxb@core@AtEnd\endcsname +\begingroup + \expandafter\ifx\csname ProvidesPackage\endcsname\relax + \def\x#1[#2]{\immediate\write16{Package: #1 #2}} + \else + \let\x\ProvidesPackage + \fi +\expandafter\endgroup +\x{luatexbase}[2010/05/27 v0.2a Module utilities for LuaTeX] +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname RequirePackage\endcsname\relax + \input ifluatex.sty +\else + \RequirePackage{ifluatex} +\fi +\ifluatex\else + \begingroup + \expandafter\ifx\csname PackageWarningNoLine\endcsname\relax + \def\x#1#2{\begingroup\newlinechar10 + \immediate\write16{Package #1 warning: #2}\endgroup} + \else + \let\x\PackageWarningNoLine + \fi + \expandafter\endgroup + \x{luatexbase}{LuaTeX is required for this package. Aborting.} + \lltxb@core@AtEnd + \expandafter\endinput +\fi +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname RequirePackage\endcsname\relax + \input luatexbase-compat.sty + \input luatexbase-loader.sty + \input luatexbase-regs.sty + \input luatexbase-attr.sty + \input luatexbase-cctb.sty +\else + \RequirePackage{luatexbase-compat} + \RequirePackage{luatexbase-loader} + \RequirePackage{luatexbase-regs} + \RequirePackage{luatexbase-attr} + \RequirePackage{luatexbase-cctb} +\fi +\lltxb@core@AtEnd +\endinput +%% +%% End of file `luatexbase.sty'. diff --git a/Master/texmf-dist/tex/luatex/luatexbase/modutils.lua b/Master/texmf-dist/tex/luatex/luatexbase/modutils.lua index 5abf32c2a3b..64b420c12cb 100644 --- a/Master/texmf-dist/tex/luatex/luatexbase/modutils.lua +++ b/Master/texmf-dist/tex/luatex/luatexbase/modutils.lua @@ -107,7 +107,7 @@ function provides_module(mod) mod.name, mod.version, requiredversion.orig) end end - modules[mod.name] = module + modules[mod.name] = mod texio.write_nl('log', string.format("Lua module: %s %s v%.02f %s\n", mod.name, mod.date, mod.version, mod.description)) end -- cgit v1.2.3