[luatex] Getting the extra primitives?

Joseph Wright joseph.wright at morningstar2.co.uk
Tue Feb 16 12:41:06 CET 2010


On 16/02/2010 11:13, Taco Hoekwater wrote:
> Straight from pdftexmds:
>
> \long\def\pdf at strcmp#1#2{%
>    \directlua0{%
>      oberdiek.pdftexcmds.strcmp("\luaescapestring{#1}",%
>          "\luaescapestring{#2}")%
>    }%
> }%
>
> With:
>
> function strcmp(A, B)
>    if A == B then
>      tex.write("0")
>    elseif A<  B then
>      tex.write("-1")
>    else
>      tex.write("1")
>    end
> end
>
> In lua, you can simply compare strings using the math operators.

Hello Taco,

Thanks for that (and to Manuel too): I was not sure if there were any 
"pitfalls". Also, that simulates \pdfstrcmp itself, but I was wondering 
about doing the entire functions (missing out all of the \ifnum and 
\expandafter stuff). In partial pseudo-code (and using LaTeX3-style 
function naming):

function strcmp:xxTF (A,B,C,D)
   if A == B then
     [Leave C on input stream]
   else
     [Leave D on input stream]
   end
end

(Also, am I correct in thinking that there is no way to avoid needing 
\unexpanded to get the string comparison "as is"?)
-- 
Joseph Wright


More information about the luatex mailing list