-- Global "constants" for texdoc. --[[ Copyright 2008, 2009 Manuel Pégourié-Gonnard Distributed under the terms of the GNU GPL version 3 or later. See texdoc.tlu for details. --]] -- Load a private environment. -- A name 'foo' defined here will be globally visible as 'C.foo', see EOF. local L = {} load_env(L, { 'setmetatable', 'arg', }) -- progname and version fullname = arg[0] progname = 'texdoc' version = '0.72' -- make sure to update setup_config_from_cl() accordingly -- and set a default value in setup_config_from_defaults() if relevant usage_msg = [[ Usage: texdoc [OPTION]... [NAME]... Try to find appropriate TeX documentation for the specified NAME(s). With no NAME, print information about texdoc (--help, --version, --files). Current settings: -h, --help Print this help message. -V, --version Print the version number. -f, --files Print the list of configuration files used. -w, --view Use view mode: start a viewer. (default) -m, --mixed Use mixed mode (view or list). -l, --list Use list mode: show a list of results. -s, --showall Use showall mode: show also "bad" results. -i, --interact Use interactive menus. (default) -I, --nointeract Use plain lists, no interaction required. -M, --machine Machine-readable output for lists (implies -I). -q, --quiet Suppress warnings and most error messages. -v, --verbose Print additional information (eg, viewer command). -d, --debug[=list] Print debug info for selected items (default: all). Environment: PAGER, BROWSER, PDFVIEWER, PSVIEWER, DVIVIEWER. Files: /texdoc/texdoc.cnf, see output of the --files option. Homepage: http://tug.org/texdoc/ Manual: displayed by `texdoc texdoc'.]] usage_settings_ph = 'Current settings:' -- keep ../doc/texdoc wrapper in sync! usage_settings = { { name = 'mode', view = '--view', mixed = '--mixed', list = '--list', showall = '--showall' }, { name = 'interact_switch', [true] = '--interact', [false] = '--nointeract' }, } known_options = { 'viewer_.*', 'mode', 'interact_switch', 'machine_switch', 'alias_switch', 'ext_list', 'badext_list', 'verbosity_level', 'debug_list', 'lastfile_switch', 'rm_dir', 'rm_file', 'unzip_.*', 'zipext_list', 'max_lines', } error_msg = [[ Try `texdoc --help' for a short help, `texdoc texdoc' for the user manual.]] notfound_msg = [[ Sorry, no documentation found for PKGNAME. If you are unsure about the name, try searching CTAN's TeX catalogue at http://ctan.org/search.html#byDescription.]] notfound_msg_ph = 'PKGNAME' err_priority = { error = 1, warning = 2, info = 3, } min_verbosity='0' max_verbosity='3' def_verbosity='2' exit_ok = 0 exit_error = 1 -- apparently hard-coded in Lua exit_usage = 2 known_debugs = { version = {}, files = {}, config = {'files'}, view = {}, texdocs = {}, score = {}, tlpdb = {} } -- various cache or non-cache files cache_name = 'texdoc/cache-tlpdb.lua' -- relative to TEXMFVAR data_meta_name = 'Data.meta.lua' data_tlpdb_name = 'Data.tlpdb.lua' place_holder = '%%s' -- used for viewer commands -- Make global C a read-only proxy to the local environment. -- Note this is not deep read-only: C.known_debugs is read-only, but -- C.known_debugs.version isn't, for instance. assert(next(C) == nil, 'Internal error: table of constants should be empty at this point') setmetatable(C, { __index = L, __newindew = function () error('Internal error: attempt to modify a constant.') end })