summaryrefslogtreecommitdiff
path: root/support/lyluatex/lyluatex-lib.lua
diff options
context:
space:
mode:
Diffstat (limited to 'support/lyluatex/lyluatex-lib.lua')
-rw-r--r--support/lyluatex/lyluatex-lib.lua163
1 files changed, 0 insertions, 163 deletions
diff --git a/support/lyluatex/lyluatex-lib.lua b/support/lyluatex/lyluatex-lib.lua
deleted file mode 100644
index ebe6745eb5..0000000000
--- a/support/lyluatex/lyluatex-lib.lua
+++ /dev/null
@@ -1,163 +0,0 @@
--- luacheck: ignore ly log self luatexbase internalversion font fonts tex token kpse status
-local err, warn, info, log = luatexbase.provides_module({
- name = "lyluatex-lib",
- version = '1.0f', --LYLUATEX_VERSION
- date = "2019/05/27", --LYLUATEX_DATE
- description = "Module lyluatex-lib.",
- author = "The Gregorio Project − (see Contributors.md)",
- copyright = "2015-2019 - jperon and others",
- license = "MIT",
-})
-
-local lib = {}
-lib.TEX_UNITS = {'bp', 'cc', 'cm', 'dd', 'in', 'mm', 'pc', 'pt', 'sp', 'em',
-'ex'}
-
--------------------------
--- General tool functions
-
-function lib.basename(str)
---[[
- Given the full path to a file, return only the file name (without path).
- If there is no slash, return the full name.
---]]
- return str:gsub(".*/(.*)", "%1") or str
-end
-
-
-function lib.contains(table_var, value)
---[[
- Returns the key if the given table contains the given value, or nil.
- A value of 'false' (string) is considered equal to false (Boolean).
---]]
- for k, v in pairs(table_var) do
- if v == value then return k
- elseif v == 'false' and value == false then return k
- end
- end
-end
-
-
-function lib.contains_key(table_var, key)
--- Returs true if the given key is present in the table, nil otherwise.
- for k in pairs(table_var) do
- if k == key then return true end
- end
-end
-
-
-function lib.convert_unit(value)
---[[
- Convert a LaTeX unit, if possible.
- TODO: Understand what this *really* does, what is accepted and returned.
---]]
- if not value then return 0
- elseif value == '' then return false
- elseif value:match('\\') then
- local n, u = value:match('^%d*%.?%d*'), value:match('%a+')
- if n == '' then n = 1 end
- return tonumber(n) * tex.dimen[u] / tex.sp("1pt")
- else return ('%f'):format(tonumber(value) or tex.sp(value) / tex.sp("1pt"))
- end
-end
-
-
-function lib.dirname(str)
---[[
- Given the full path to a file, return only the path (without file name),
- including the last slash. If there is no slash, return an empty string.
---]]
- return str:gsub("(.*/).*", "%1") or ''
-end
-
-
-local fontdata = fonts.hashes.identifiers
-function lib.fontinfo(id)
---[[
- Return a LuaTeX font object based on the given ID
---]]
- return fontdata[id] or font.fonts[id]
-end
-
-
-function lib.max(a, b)
- a, b = tonumber(a), tonumber(b)
- if a > b then return a else return b end
-end
-
-
-function lib.min(a, b)
- a, b = tonumber(a), tonumber(b)
- if a < b then return a else return b end
-end
-
-
-function lib.mkdirs(str)
- local path
- if str:sub(1, 1) == '/' then path = '' else path = '.' end
- for dir in str:gmatch('([^%/]+)') do
- path = path .. '/' .. dir
- lfs.mkdir(path)
- end
-end
-
-
-function lib.orderedpairs(t)
- local key
- local i = 0
- local orderedIndex = {}
- for k in pairs(t) do table.insert(orderedIndex, k) end
- table.sort(orderedIndex)
- return function ()
- i = i + 1
- key = orderedIndex[i]
- if key then return key, t[key] end
- end
-end
-
-
-function lib.readlinematching(s, f)
- if f then
- local result = ''
- while result and not result:find(s) do result = f:read() end
- f:close()
- return result
- end
-end
-
-
-function lib.splitext(str, ext)
---[[
- If 'ext' is supplied return str stripped of the given extension,
- otherwise return the base and extension (if any)
---]]
- return ext and (str:match('(.*)%.'..ext..'$') or str)
- or (str:match('(.*)%.(%w*)$') or str)
-end
-
-
-------------------------------------
--- Engine, version, TeX distribution
-
-local tex_engine = {}
-setmetatable(tex_engine, tex_engine)
-
-function tex_engine:__call()
---[[
- Defines the properties extracted from the first line of jobname.log.
---]]
- local f = io.open(tex.jobname..'.log')
- if not f then return end
- self.engine, self.engine_version, self.dist, self.dist_version, self.format, self.format_version =
- f:read():match(
- 'This is ([^,]*), Version ([^%(]*) %(([^%)]*) ([^%)]*)%)%s+%(format=([^%)]*) ([^)]*)%)'
- )
- f:close()
- return self
-end
-
-function tex_engine:__index(k) return rawget(self(), k) end
-
-
-lib.tex_engine = tex_engine
-return lib