texlive[55693] Master: oops, pdftexcmds.lua in runtime

commits+karl at tug.org commits+karl at tug.org
Sun Jun 28 23:34:37 CEST 2020


Revision: 55693
          http://tug.org/svn/texlive?view=revision&revision=55693
Author:   karl
Date:     2020-06-28 23:34:37 +0200 (Sun, 28 Jun 2020)
Log Message:
-----------
oops, pdftexcmds.lua in runtime

Modified Paths:
--------------
    trunk/Master/tlpkg/libexec/ctan2tds

Added Paths:
-----------
    trunk/Master/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.lua

Removed Paths:
-------------
    trunk/Master/texmf-dist/doc/generic/pdftexcmds/pdftexcmds.lua

Deleted: trunk/Master/texmf-dist/doc/generic/pdftexcmds/pdftexcmds.lua
===================================================================
--- trunk/Master/texmf-dist/doc/generic/pdftexcmds/pdftexcmds.lua	2020-06-28 21:29:20 UTC (rev 55692)
+++ trunk/Master/texmf-dist/doc/generic/pdftexcmds/pdftexcmds.lua	2020-06-28 21:34:37 UTC (rev 55693)
@@ -1,375 +0,0 @@
--- 
---  This is file `pdftexcmds.lua',
---  generated with the docstrip utility.
--- 
---  The original source files were:
--- 
---  pdftexcmds.dtx  (with options: `lua')
---  
---  This is a generated file.
---  
---  Project: pdftexcmds
---  Version: 2020-06-27 v0.33
---  
---  Copyright (C)
---     2007, 2009-2011  Heiko Oberdiek
---     2016-2019        Oberdiek Package Support Group
---  
---  This work may be distributed and/or modified under the
---  conditions of the LaTeX Project Public License, either
---  version 1.3c of this license or (at your option) any later
---  version. This version of this license is in
---     https://www.latex-project.org/lppl/lppl-1-3c.txt
---  and the latest version of this license is in
---     https://www.latex-project.org/lppl.txt
---  and version 1.3 or later is part of all distributions of
---  LaTeX version 2005/12/01 or later.
---  
---  This work has the LPPL maintenance status "maintained".
---  
---  The Current Maintainers of this work are
---  Heiko Oberdiek and the Oberdiek Package Support Group
---  https://github.com/ho-tex/pdftexcmds/issues
---  
---  The Base Interpreter refers to any `TeX-Format',
---  because some files are installed in TDS:tex/generic//.
---  
---  This work consists of the main source file pdftexcmds.dtx
---  and the derived files
---     pdftexcmds.sty, pdftexcmds.pdf, pdftexcmds.ins, pdftexcmds.drv,
---     pdftexcmds.lua.
---  
-oberdiek = oberdiek or {}
-local pdftexcmds = oberdiek.pdftexcmds or {}
-oberdiek.pdftexcmds = pdftexcmds
-local systemexitstatus
-function pdftexcmds.getversion()
-  tex.write("2020-06-27 v0.33")
-end
-function pdftexcmds.strcmp(A, B)
-  if A == B then
-    tex.write("0")
-  elseif A < B then
-    tex.write("-1")
-  else
-    tex.write("1")
-  end
-end
-local function utf8_to_byte(str)
-  local i = 0
-  local n = string.len(str)
-  local t = {}
-  while i < n do
-    i = i + 1
-    local a = string.byte(str, i)
-    if a < 128 then
-      table.insert(t, string.char(a))
-    else
-      if a >= 192 and i < n then
-        i = i + 1
-        local b = string.byte(str, i)
-        if b < 128 or b >= 192 then
-          i = i - 1
-        elseif a == 194 then
-          table.insert(t, string.char(b))
-        elseif a == 195 then
-          table.insert(t, string.char(b + 64))
-        end
-      end
-    end
-  end
-  return table.concat(t)
-end
-function pdftexcmds.escapehex(str, mode)
-  if mode == "byte" then
-    str = utf8_to_byte(str)
-  end
-  tex.write((string.gsub(str, ".",
-    function (ch)
-      return string.format("%02X", string.byte(ch))
-    end
-  )))
-end
-function pdftexcmds.unescapehex(str, mode, patch)
-  local a = 0
-  local first = true
-  local result = {}
-  for i = 1, string.len(str), 1 do
-    local ch = string.byte(str, i)
-    if ch >= 48 and ch <= 57 then
-      ch = ch - 48
-    elseif ch >= 65 and ch <= 70 then
-      ch = ch - 55
-    elseif ch >= 97 and ch <= 102 then
-      ch = ch - 87
-    else
-      ch = nil
-    end
-    if ch then
-      if first then
-        a = ch * 16
-        first = false
-      else
-        table.insert(result, a + ch)
-        first = true
-      end
-    end
-  end
-  if not first then
-    table.insert(result, a)
-  end
-  if patch == 1 then
-    local temp = {}
-    for i, a in ipairs(result) do
-      if a == 0 then
-        table.insert(temp, 1)
-        table.insert(temp, 1)
-      else
-        if a == 1 then
-          table.insert(temp, 1)
-          table.insert(temp, 2)
-        else
-          table.insert(temp, a)
-        end
-      end
-    end
-    result = temp
-  end
-  if mode == "byte" then
-    local utf8 = {}
-    for i, a in ipairs(result) do
-      if a < 128 then
-        table.insert(utf8, a)
-      else
-        if a < 192 then
-          table.insert(utf8, 194)
-          a = a - 128
-        else
-          table.insert(utf8, 195)
-          a = a - 192
-        end
-        table.insert(utf8, a + 128)
-      end
-    end
-    result = utf8
-  end
-  local unpack = _G["unpack"] or table.unpack
-  tex.settoks(pdftexcmds.toks, string.char(unpack(result)))
-end
-function pdftexcmds.escapestring(str, mode)
-  if mode == "byte" then
-    str = utf8_to_byte(str)
-  end
-  tex.write((string.gsub(str, ".",
-    function (ch)
-      local b = string.byte(ch)
-      if b < 33 or b > 126 then
-        return string.format("\\%.3o", b)
-      end
-      if b == 40 or b == 41 or b == 92 then
-        return "\\" .. ch
-      end
-      return nil
-    end
-  )))
-end
-function pdftexcmds.escapename(str, mode)
-  if mode == "byte" then
-    str = utf8_to_byte(str)
-  end
-  tex.write((string.gsub(str, ".",
-    function (ch)
-      local b = string.byte(ch)
-      if b == 0 then
-        return ""
-      end
-      if b <= 32 or b >= 127
-          or b == 35 or b == 37 or b == 40 or b == 41
-          or b == 47 or b == 60 or b == 62 or b == 91
-          or b == 93 or b == 123 or b == 125 then
-        return string.format("#%.2X", b)
-      else
-        return nil
-      end
-    end
-  )))
-end
-function pdftexcmds.filesize(filename)
-  local foundfile = kpse.find_file(filename, "tex", true)
-  if foundfile then
-    local size = lfs.attributes(foundfile, "size")
-    if size then
-      tex.write(size)
-    end
-  end
-end
-function pdftexcmds.filemoddate(filename)
-  local foundfile = kpse.find_file(filename, "tex", true)
-  if foundfile then
-    local date = lfs.attributes(foundfile, "modification")
-    if date then
-      local d = os.date("*t", date)
-      if d.sec >= 60 then
-        d.sec = 59
-      end
-      local u = os.date("!*t", date)
-      local off = 60 * (d.hour - u.hour) + d.min - u.min
-      if d.year ~= u.year then
-        if d.year > u.year then
-          off = off + 1440
-        else
-          off = off - 1440
-        end
-      elseif d.yday ~= u.yday then
-        if d.yday > u.yday then
-          off = off + 1440
-        else
-          off = off - 1440
-        end
-      end
-      local timezone
-      if off == 0 then
-        timezone = "Z"
-      else
-        local hours = math.floor(off / 60)
-        local mins = math.abs(off - hours * 60)
-        timezone = string.format("%+03d'%02d'", hours, mins)
-      end
-      tex.write(string.format("D:%04d%02d%02d%02d%02d%02d%s",
-          d.year, d.month, d.day, d.hour, d.min, d.sec, timezone))
-    end
-  end
-end
-function pdftexcmds.filedump(offset, length, filename)
-  length = tonumber(length)
-  if length and length > 0 then
-    local foundfile = kpse.find_file(filename, "tex", true)
-    if foundfile then
-      offset = tonumber(offset)
-      if not offset then
-        offset = 0
-      end
-      local filehandle = io.open(foundfile, "rb")
-      if filehandle then
-        if offset > 0 then
-          filehandle:seek("set", offset)
-        end
-        local dump = filehandle:read(length)
-        pdftexcmds.escapehex(dump)
-        filehandle:close()
-      end
-    end
-  end
-end
-function pdftexcmds.mdfivesum(str, mode)
-  if mode == "byte" then
-    str = utf8_to_byte(str)
-  end
-  pdftexcmds.escapehex(md5.sum(str))
-end
-function pdftexcmds.filemdfivesum(filename)
-  local foundfile = kpse.find_file(filename, "tex", true)
-  if foundfile then
-    local filehandle = io.open(foundfile, "rb")
-    if filehandle then
-      local contents = filehandle:read("*a")
-      pdftexcmds.escapehex(md5.sum(contents))
-      filehandle:close()
-    end
-  end
-end
-local basetime = 0
-function pdftexcmds.resettimer()
-  basetime = os.clock()
-end
-function pdftexcmds.elapsedtime()
-  local val = (os.clock() - basetime) * 65536 + .5
-  if val > 2147483647 then
-    val = 2147483647
-  end
-  tex.write(string.format("%d", math.floor(val)))
-end
-function pdftexcmds.shellescape()
-  if os.execute then
-    if status
-        and status.luatex_version
-        and status.luatex_version >= 68 then
-      tex.write(os.execute())
-    else
-      local result = os.execute()
-      if result == 0 then
-        tex.write("0")
-      else
-        if result == nil then
-          tex.write("0")
-        else
-          tex.write("1")
-        end
-      end
-    end
-  else
-    tex.write("0")
-  end
-end
-function pdftexcmds.system(cmdline)
-  systemexitstatus = nil
-  texio.write_nl("log", "system(" .. cmdline .. ") ")
-  if os.execute then
-    texio.write("log", "executed.")
-    systemexitstatus = os.execute(cmdline)
-  else
-    texio.write("log", "disabled.")
-  end
-end
-function pdftexcmds.lastsystemstatus()
-  local result = tonumber(systemexitstatus)
-  if result then
-    local x = math.floor(result / 256)
-    tex.write(result - 256 * math.floor(result / 256))
-  end
-end
-function pdftexcmds.lastsystemexit()
-  local result = tonumber(systemexitstatus)
-  if result then
-    tex.write(math.floor(result / 256))
-  end
-end
-function pdftexcmds.pipe(cmdline, patch)
-  local result
-  systemexitstatus = nil
-  texio.write_nl("log", "pipe(" .. cmdline ..") ")
-  if io.popen then
-    texio.write("log", "executed.")
-    local handle = io.popen(cmdline, "r")
-    if handle then
-      result = handle:read("*a")
-      handle:close()
-    end
-  else
-    texio.write("log", "disabled.")
-  end
-  if result then
-    if patch == 1 then
-      local temp = {}
-      for i, a in ipairs(result) do
-        if a == 0 then
-          table.insert(temp, 1)
-          table.insert(temp, 1)
-        else
-          if a == 1 then
-            table.insert(temp, 1)
-            table.insert(temp, 2)
-          else
-            table.insert(temp, a)
-          end
-        end
-      end
-      result = temp
-    end
-    tex.settoks(pdftexcmds.toks, result)
-  else
-    tex.settoks(pdftexcmds.toks, "")
-  end
-end
--- 
---  End of File `pdftexcmds.lua'.

Copied: trunk/Master/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.lua (from rev 55692, trunk/Master/texmf-dist/doc/generic/pdftexcmds/pdftexcmds.lua)
===================================================================
--- trunk/Master/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.lua	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.lua	2020-06-28 21:34:37 UTC (rev 55693)
@@ -0,0 +1,375 @@
+-- 
+--  This is file `pdftexcmds.lua',
+--  generated with the docstrip utility.
+-- 
+--  The original source files were:
+-- 
+--  pdftexcmds.dtx  (with options: `lua')
+--  
+--  This is a generated file.
+--  
+--  Project: pdftexcmds
+--  Version: 2020-06-27 v0.33
+--  
+--  Copyright (C)
+--     2007, 2009-2011  Heiko Oberdiek
+--     2016-2019        Oberdiek Package Support Group
+--  
+--  This work may be distributed and/or modified under the
+--  conditions of the LaTeX Project Public License, either
+--  version 1.3c of this license or (at your option) any later
+--  version. This version of this license is in
+--     https://www.latex-project.org/lppl/lppl-1-3c.txt
+--  and the latest version of this license is in
+--     https://www.latex-project.org/lppl.txt
+--  and version 1.3 or later is part of all distributions of
+--  LaTeX version 2005/12/01 or later.
+--  
+--  This work has the LPPL maintenance status "maintained".
+--  
+--  The Current Maintainers of this work are
+--  Heiko Oberdiek and the Oberdiek Package Support Group
+--  https://github.com/ho-tex/pdftexcmds/issues
+--  
+--  The Base Interpreter refers to any `TeX-Format',
+--  because some files are installed in TDS:tex/generic//.
+--  
+--  This work consists of the main source file pdftexcmds.dtx
+--  and the derived files
+--     pdftexcmds.sty, pdftexcmds.pdf, pdftexcmds.ins, pdftexcmds.drv,
+--     pdftexcmds.lua.
+--  
+oberdiek = oberdiek or {}
+local pdftexcmds = oberdiek.pdftexcmds or {}
+oberdiek.pdftexcmds = pdftexcmds
+local systemexitstatus
+function pdftexcmds.getversion()
+  tex.write("2020-06-27 v0.33")
+end
+function pdftexcmds.strcmp(A, B)
+  if A == B then
+    tex.write("0")
+  elseif A < B then
+    tex.write("-1")
+  else
+    tex.write("1")
+  end
+end
+local function utf8_to_byte(str)
+  local i = 0
+  local n = string.len(str)
+  local t = {}
+  while i < n do
+    i = i + 1
+    local a = string.byte(str, i)
+    if a < 128 then
+      table.insert(t, string.char(a))
+    else
+      if a >= 192 and i < n then
+        i = i + 1
+        local b = string.byte(str, i)
+        if b < 128 or b >= 192 then
+          i = i - 1
+        elseif a == 194 then
+          table.insert(t, string.char(b))
+        elseif a == 195 then
+          table.insert(t, string.char(b + 64))
+        end
+      end
+    end
+  end
+  return table.concat(t)
+end
+function pdftexcmds.escapehex(str, mode)
+  if mode == "byte" then
+    str = utf8_to_byte(str)
+  end
+  tex.write((string.gsub(str, ".",
+    function (ch)
+      return string.format("%02X", string.byte(ch))
+    end
+  )))
+end
+function pdftexcmds.unescapehex(str, mode, patch)
+  local a = 0
+  local first = true
+  local result = {}
+  for i = 1, string.len(str), 1 do
+    local ch = string.byte(str, i)
+    if ch >= 48 and ch <= 57 then
+      ch = ch - 48
+    elseif ch >= 65 and ch <= 70 then
+      ch = ch - 55
+    elseif ch >= 97 and ch <= 102 then
+      ch = ch - 87
+    else
+      ch = nil
+    end
+    if ch then
+      if first then
+        a = ch * 16
+        first = false
+      else
+        table.insert(result, a + ch)
+        first = true
+      end
+    end
+  end
+  if not first then
+    table.insert(result, a)
+  end
+  if patch == 1 then
+    local temp = {}
+    for i, a in ipairs(result) do
+      if a == 0 then
+        table.insert(temp, 1)
+        table.insert(temp, 1)
+      else
+        if a == 1 then
+          table.insert(temp, 1)
+          table.insert(temp, 2)
+        else
+          table.insert(temp, a)
+        end
+      end
+    end
+    result = temp
+  end
+  if mode == "byte" then
+    local utf8 = {}
+    for i, a in ipairs(result) do
+      if a < 128 then
+        table.insert(utf8, a)
+      else
+        if a < 192 then
+          table.insert(utf8, 194)
+          a = a - 128
+        else
+          table.insert(utf8, 195)
+          a = a - 192
+        end
+        table.insert(utf8, a + 128)
+      end
+    end
+    result = utf8
+  end
+  local unpack = _G["unpack"] or table.unpack
+  tex.settoks(pdftexcmds.toks, string.char(unpack(result)))
+end
+function pdftexcmds.escapestring(str, mode)
+  if mode == "byte" then
+    str = utf8_to_byte(str)
+  end
+  tex.write((string.gsub(str, ".",
+    function (ch)
+      local b = string.byte(ch)
+      if b < 33 or b > 126 then
+        return string.format("\\%.3o", b)
+      end
+      if b == 40 or b == 41 or b == 92 then
+        return "\\" .. ch
+      end
+      return nil
+    end
+  )))
+end
+function pdftexcmds.escapename(str, mode)
+  if mode == "byte" then
+    str = utf8_to_byte(str)
+  end
+  tex.write((string.gsub(str, ".",
+    function (ch)
+      local b = string.byte(ch)
+      if b == 0 then
+        return ""
+      end
+      if b <= 32 or b >= 127
+          or b == 35 or b == 37 or b == 40 or b == 41
+          or b == 47 or b == 60 or b == 62 or b == 91
+          or b == 93 or b == 123 or b == 125 then
+        return string.format("#%.2X", b)
+      else
+        return nil
+      end
+    end
+  )))
+end
+function pdftexcmds.filesize(filename)
+  local foundfile = kpse.find_file(filename, "tex", true)
+  if foundfile then
+    local size = lfs.attributes(foundfile, "size")
+    if size then
+      tex.write(size)
+    end
+  end
+end
+function pdftexcmds.filemoddate(filename)
+  local foundfile = kpse.find_file(filename, "tex", true)
+  if foundfile then
+    local date = lfs.attributes(foundfile, "modification")
+    if date then
+      local d = os.date("*t", date)
+      if d.sec >= 60 then
+        d.sec = 59
+      end
+      local u = os.date("!*t", date)
+      local off = 60 * (d.hour - u.hour) + d.min - u.min
+      if d.year ~= u.year then
+        if d.year > u.year then
+          off = off + 1440
+        else
+          off = off - 1440
+        end
+      elseif d.yday ~= u.yday then
+        if d.yday > u.yday then
+          off = off + 1440
+        else
+          off = off - 1440
+        end
+      end
+      local timezone
+      if off == 0 then
+        timezone = "Z"
+      else
+        local hours = math.floor(off / 60)
+        local mins = math.abs(off - hours * 60)
+        timezone = string.format("%+03d'%02d'", hours, mins)
+      end
+      tex.write(string.format("D:%04d%02d%02d%02d%02d%02d%s",
+          d.year, d.month, d.day, d.hour, d.min, d.sec, timezone))
+    end
+  end
+end
+function pdftexcmds.filedump(offset, length, filename)
+  length = tonumber(length)
+  if length and length > 0 then
+    local foundfile = kpse.find_file(filename, "tex", true)
+    if foundfile then
+      offset = tonumber(offset)
+      if not offset then
+        offset = 0
+      end
+      local filehandle = io.open(foundfile, "rb")
+      if filehandle then
+        if offset > 0 then
+          filehandle:seek("set", offset)
+        end
+        local dump = filehandle:read(length)
+        pdftexcmds.escapehex(dump)
+        filehandle:close()
+      end
+    end
+  end
+end
+function pdftexcmds.mdfivesum(str, mode)
+  if mode == "byte" then
+    str = utf8_to_byte(str)
+  end
+  pdftexcmds.escapehex(md5.sum(str))
+end
+function pdftexcmds.filemdfivesum(filename)
+  local foundfile = kpse.find_file(filename, "tex", true)
+  if foundfile then
+    local filehandle = io.open(foundfile, "rb")
+    if filehandle then
+      local contents = filehandle:read("*a")
+      pdftexcmds.escapehex(md5.sum(contents))
+      filehandle:close()
+    end
+  end
+end
+local basetime = 0
+function pdftexcmds.resettimer()
+  basetime = os.clock()
+end
+function pdftexcmds.elapsedtime()
+  local val = (os.clock() - basetime) * 65536 + .5
+  if val > 2147483647 then
+    val = 2147483647
+  end
+  tex.write(string.format("%d", math.floor(val)))
+end
+function pdftexcmds.shellescape()
+  if os.execute then
+    if status
+        and status.luatex_version
+        and status.luatex_version >= 68 then
+      tex.write(os.execute())
+    else
+      local result = os.execute()
+      if result == 0 then
+        tex.write("0")
+      else
+        if result == nil then
+          tex.write("0")
+        else
+          tex.write("1")
+        end
+      end
+    end
+  else
+    tex.write("0")
+  end
+end
+function pdftexcmds.system(cmdline)
+  systemexitstatus = nil
+  texio.write_nl("log", "system(" .. cmdline .. ") ")
+  if os.execute then
+    texio.write("log", "executed.")
+    systemexitstatus = os.execute(cmdline)
+  else
+    texio.write("log", "disabled.")
+  end
+end
+function pdftexcmds.lastsystemstatus()
+  local result = tonumber(systemexitstatus)
+  if result then
+    local x = math.floor(result / 256)
+    tex.write(result - 256 * math.floor(result / 256))
+  end
+end
+function pdftexcmds.lastsystemexit()
+  local result = tonumber(systemexitstatus)
+  if result then
+    tex.write(math.floor(result / 256))
+  end
+end
+function pdftexcmds.pipe(cmdline, patch)
+  local result
+  systemexitstatus = nil
+  texio.write_nl("log", "pipe(" .. cmdline ..") ")
+  if io.popen then
+    texio.write("log", "executed.")
+    local handle = io.popen(cmdline, "r")
+    if handle then
+      result = handle:read("*a")
+      handle:close()
+    end
+  else
+    texio.write("log", "disabled.")
+  end
+  if result then
+    if patch == 1 then
+      local temp = {}
+      for i, a in ipairs(result) do
+        if a == 0 then
+          table.insert(temp, 1)
+          table.insert(temp, 1)
+        else
+          if a == 1 then
+            table.insert(temp, 1)
+            table.insert(temp, 2)
+          else
+            table.insert(temp, a)
+          end
+        end
+      end
+      result = temp
+    end
+    tex.settoks(pdftexcmds.toks, result)
+  else
+    tex.settoks(pdftexcmds.toks, "")
+  end
+end
+-- 
+--  End of File `pdftexcmds.lua'.

Modified: trunk/Master/tlpkg/libexec/ctan2tds
===================================================================
--- trunk/Master/tlpkg/libexec/ctan2tds	2020-06-28 21:29:20 UTC (rev 55692)
+++ trunk/Master/tlpkg/libexec/ctan2tds	2020-06-28 21:34:37 UTC (rev 55693)
@@ -2027,6 +2027,7 @@
  'patch',       '\.tex',
  'pdf-trans',   'pdf-trans.tex',
  'pdfcprot',    '\.cpa|\.sty',
+ 'pdftexcmds',	'\.lua$|' . $standardtex,
  'pdfscreen',   'overlay.*pdf|but.*pdf|left.*pdf|right\.pdf|pdfscreen.sty',
  'pdfslide',    '\.jpg|\.sty|\.clo|\.cfg|meta.*\.pdf',
  'pdfx',        '\.(def|dfu|icc|xmp)$|(glyph|Profiles).*tex|pdfx\.sty|ICC_LIC',



More information about the tex-live-commits mailing list.