summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/scripts/texdoc/config.tlu
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/scripts/texdoc/config.tlu')
-rw-r--r--Master/texmf-dist/scripts/texdoc/config.tlu102
1 files changed, 66 insertions, 36 deletions
diff --git a/Master/texmf-dist/scripts/texdoc/config.tlu b/Master/texmf-dist/scripts/texdoc/config.tlu
index 42d2e779055..cb72343c6ad 100644
--- a/Master/texmf-dist/scripts/texdoc/config.tlu
+++ b/Master/texmf-dist/scripts/texdoc/config.tlu
@@ -1,7 +1,7 @@
--- $Id: config.tlu 16 2017-10-26 22:28:24Z karl $
-- config.tlu: configuration handling for texdoc
--
--- Manuel Pégourié-Gonnard, GPLv3+, see texdoclib.tlu for details
+-- Manuel Pégourié-Gonnard and the TeX Live team, GPLv3,
+-- see texdoclib.tlu for details
-------------------------- hide the config table --------------------------
@@ -136,8 +136,57 @@ function setup_config_from_cl(arg)
local function set_config_elt(key, val)
set_config_element(key, val, {src='cl', name=curr_arg})
end
- while arg[1] and string.match(arg[1],'^%-') do
- curr_arg = table.remove(arg,1)
+
+ -- modified Alternative Get Opt
+ -- cf. http://lua-users.org/wiki/AlternativeGetOpt
+ local function getopt(arg, options)
+ local tmp
+ local tab = {}
+ local saved_arg = { table.unpack(arg) }
+ for k, v in ipairs(saved_arg) do
+ if string.sub(v, 1, 2) == "--" then
+ table.remove(arg, 1)
+ local x = string.find(v, "=", 1, true)
+ if x then tab[string.sub(v, 3, x-1)] = string.sub(v, x+1)
+ else tab[string.sub(v, 3)] = true
+ end
+ elseif string.sub(v, 1, 1) == "-" then
+ table.remove(arg, 1)
+ local y = 2
+ local l = string.len(v)
+ local jopt
+ while (y <= l) do
+ jopt = string.sub(v, y, y)
+ if string.find(options, jopt, 1, true) then
+ if y < l then
+ tmp = string.sub(v, y+1)
+ y = l
+ else
+ table.remove(arg, 1)
+ tmp = saved_arg[k + 1]
+ end
+ if string.match(tmp, '^%-') then
+ tab[jopt] = false
+ else
+ tab[jopt] = tmp
+ end
+ else
+ tab[jopt] = true
+ end
+ y = y + 1
+ end
+ end
+ end
+ return tab
+ end
+
+ opts = getopt(arg, 'd')
+ for k, v in pairs(opts) do
+ if #k == 1 then
+ curr_arg = '-' .. k
+ else
+ curr_arg = '--' .. k
+ end
-- action
if (curr_arg == '-h') or (curr_arg == '--help') then
@@ -167,13 +216,10 @@ function setup_config_from_cl(arg)
set_config_elt('machine_switch', 'true')
-- debug
elseif (curr_arg == '-d') or (curr_arg == '--debug') then
+ if v == true then v = 'all' end
+ set_config_elt('debug_list', v)
+ elseif curr_arg == '-D' then
set_config_elt('debug_list', 'all')
- elseif string.match(curr_arg, '^%-d=') then
- local value = string.gsub(curr_arg, '^%-d=', '')
- set_config_elt('debug_list', value)
- elseif string.match(curr_arg, '^%-%-debug=') then
- local value = string.gsub(curr_arg, '^%-%-debug=', '')
- set_config_elt('debug_list', value)
-- verbosity
elseif (curr_arg == '-q') or (curr_arg == '--quiet') then
set_config_elt('verbosity_level', C.min_verbosity)
@@ -201,37 +247,18 @@ function setup_config_from_env ()
end
end
end
- local function set_config_elt_from_option_env(key, var)
- if (os.type == "windows") then return end
- local value = os.getenv(var)
- if value then
- for cmd in string.gmatch(value, '([^:]+)') do
- if is_in_path(cmd) then
- set_config_element(key, cmd, {src='env', name=var})
- -- don't test other commands if we have found one
- break
- end
- end
- end
- end
set_config_elt_from_vars('viewer_pdf',
- {"PDFVIEWER_texdoc", "TEXDOCVIEW_pdf", "TEXDOC_VIEWER_PDF"})
- set_config_elt_from_option_env('viewer_pdf', "PDFVIEWER")
+ {"PDFVIEWER_texdoc", "PDFVIEWER", "TEXDOCVIEW_pdf", "TEXDOC_VIEWER_PDF"})
set_config_elt_from_vars('viewer_ps',
- {"PSVIEWER_texdoc", "TEXDOCVIEW_ps", "TEXDOC_VIEWER_PS"})
- set_config_elt_from_option_env('viewer_ps', "PSVIEWER")
+ {"PSVIEWER_texdoc", "PSVIEWER", "TEXDOCVIEW_ps", "TEXDOC_VIEWER_PS"})
set_config_elt_from_vars('viewer_dvi',
- {"DVIVIEWER_texdoc", "TEXDOCVIEW_dvi", "TEXDOC_VIEWER_DVI"})
- set_config_elt_from_option_env('viewer_dvi', "DVIVIEWER")
+ {"DVIVIEWER_texdoc", "DVIVIEWER", "TEXDOCVIEW_dvi", "TEXDOC_VIEWER_DVI"})
set_config_elt_from_vars('viewer_html',
- {"BROWSER_texdoc", "TEXDOCVIEW_html", "TEXDOC_VIEWER_HTML"})
- set_config_elt_from_option_env('viewer_html', "BROWSER")
+ {"BROWSER_texdoc", "BROWSER", "TEXDOCVIEW_html", "TEXDOC_VIEWER_HTML"})
set_config_elt_from_vars('viewer_md',
- {"MDVIEWER_texdoc", "TEXDOCVIEW_md", "TEXDOC_VIEWER_MD"})
- set_config_elt_from_option_env('viewer_md', "PAGER")
+ {"MDVIEWER_texdoc", "PAGER", "TEXDOCVIEW_md", "TEXDOC_VIEWER_MD"})
set_config_elt_from_vars('viewer_txt',
- {"PAGER_texdoc", "TEXDOCVIEW_txt", "TEXDOC_VIEWER_TXT"})
- set_config_elt_from_option_env('viewer_txt', "PAGER")
+ {"PAGER_texdoc", "PAGER", "TEXDOCVIEW_txt", "TEXDOC_VIEWER_TXT"})
end
---------------------- options and aliases from files ----------------------
@@ -272,7 +299,7 @@ function confline_to_config(line, file, pos)
end
-- return the list of configuration files
-function get_config_files ()
+function get_config_files()
-- get names
local platform = string.match (kpse.var_value ('SELFAUTOLOC'), '.*/(.*)$')
local names = {
@@ -512,6 +539,7 @@ function setup_config_from_defaults()
verbosity_level = C.def_verbosity,
debug_list = '',
max_lines = '20',
+ fuzzy_level = '5',
}
-- zip-related options
set_config_ls {
@@ -551,3 +579,5 @@ return {
show_config_files = show_config_files,
read_config_file = read_config_file,
}
+
+-- vim: ft=lua: