diff options
Diffstat (limited to 'Master/texmf-dist/scripts/texdoc/config.tlu')
-rw-r--r-- | Master/texmf-dist/scripts/texdoc/config.tlu | 102 |
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: |