summaryrefslogtreecommitdiff
path: root/Master/texmf/scripts/texdoc
diff options
context:
space:
mode:
authorManuel Pégourié-Gonnard <mpg@elzevir.fr>2010-02-24 00:25:19 +0000
committerManuel Pégourié-Gonnard <mpg@elzevir.fr>2010-02-24 00:25:19 +0000
commit6656d2306077966300b0abf8e3f43e595a751d2a (patch)
tree51bb60667411aa368985edd4ae710842fa30628f /Master/texmf/scripts/texdoc
parent6ac194c6022aa3ae3716efae6a33d540954708ee (diff)
texdoc update
git-svn-id: svn://tug.org/texlive/trunk@17169 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf/scripts/texdoc')
-rw-r--r--Master/texmf/scripts/texdoc/config.tlu20
-rw-r--r--Master/texmf/scripts/texdoc/constants.tlu35
-rw-r--r--Master/texmf/scripts/texdoc/functions.tlu26
-rw-r--r--Master/texmf/scripts/texdoc/main.tlu5
4 files changed, 61 insertions, 25 deletions
diff --git a/Master/texmf/scripts/texdoc/config.tlu b/Master/texmf/scripts/texdoc/config.tlu
index 475f2f71fbf..be82dbf72d1 100644
--- a/Master/texmf/scripts/texdoc/config.tlu
+++ b/Master/texmf/scripts/texdoc/config.tlu
@@ -11,7 +11,7 @@ load_env(L, {
'string', 'table', 'os', 'kpse', 'lfs', 'io',
'ipairs', 'pairs', 'tonumber', 'tostring', 'setmetatable', 'next', 'print',
'assert', 'error',
- 'err_print', 'win32_hook', 'deb_print',
+ 'err_print', 'win32_hook', 'deb_print', 'print_usage',
'confline_to_alias', 'confline_to_score',
'C',
'config',
@@ -49,6 +49,8 @@ function set_config_element (key, value, context)
if not is_known then config_warn(key, nil, context, true) return end
-- exit if key is already set (/!\ must test for nil, not false)
if not (config[key] == nil) then return nil end
+ -- record the source of the setting
+ real_set_config(key..'_src', context.src)
-- detect the type of the key
if string.match(key, '_list$') then
-- coma-separated list
@@ -143,7 +145,9 @@ function setup_config_from_cl(arg)
curr_arg = table.remove(arg,1)
-- special options
if (curr_arg == '-h') or (curr_arg == '--help') then
- print (C.usage_msg)
+ setup_config_from_files()
+ setup_config_from_defaults()
+ print_usage()
os.exit(C.exit_ok)
elseif (curr_arg == '-V') or (curr_arg == '--version') then
print (C.progname .. ' ' .. C.version )
@@ -449,6 +453,7 @@ function setup_config_from_defaults()
else -- generic Unix
set_config_ls {
viewer_dvi = guess_viewer {
+ {'xdvi', '(xdvi %s) &'},
{'evince', '(evince %s) &'},
{'okular', '(okular %s) &'},
{'kdvi', '(kdvi %s) &'},
@@ -459,7 +464,6 @@ function setup_config_from_defaults()
{'dvilx', '(dvilx %s) &'},
{'advi', '(advi %s) &'},
{'xdvik-ja', '(xdvik-ja %s) &'},
- {'xdvi', '(xdvi %s) &'},
{'see', '(see %s) &'}
},
viewer_html = guess_viewer {
@@ -475,18 +479,18 @@ function setup_config_from_defaults()
{'see', 'see'}
},
viewer_pdf = guess_viewer {
+ {'xpdf', '(xpdf %s) &'},
{'evince', '(evince %s) &'},
{'okular', '(okular %s) &'},
{'kpdf', '(kpdf %s) &'},
- {'xpdf', '(xpdf %s) &'},
{'acroread', '(xpdf %s) &'},
{'see', '(see %s) &'}
},
viewer_ps = guess_viewer {
+ {'gv', '(gv %s) &'},
{'evince', '(evince %s) &'},
{'okular', '(okular %s) &'},
{'kghostview', '(kghostview %s) &'},
- {'gv', '(gv %s) &'},
{'see', '(see %s) &'}
},
viewer_txt = guess_viewer {
@@ -518,10 +522,10 @@ end
-- the default value of config.alias_switch depends on the mode as follows
function alias_from_mode (mode) -- /!\ returns a string!
- if (mode == 'view') or (mode == 'mixed') or (mode == 'list') then
- return 'true'
- else
+ if (mode == 'regex') then
return 'false'
+ else
+ return 'true'
end
end
diff --git a/Master/texmf/scripts/texdoc/constants.tlu b/Master/texmf/scripts/texdoc/constants.tlu
index e7023815cf0..c31f8183fa2 100644
--- a/Master/texmf/scripts/texdoc/constants.tlu
+++ b/Master/texmf/scripts/texdoc/constants.tlu
@@ -23,10 +23,10 @@ usage_msg = [[
Usage: texdoc [OPTION]... [NAME]...
Try to find appropriate TeX documentation for the specified NAME(s).
-The default (view mode) is to display the documentation.
-
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.
@@ -35,13 +35,13 @@ With no NAME, print information about texdoc (--help, --version, --files).
-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.
- -M, --machine Machine-readable output (list or showall modes).
-
- -a, --alias Use the alias table. (default)
- -A, --noalias Don't use the alias table.
-i, --interact Use interactive menus. (default)
-I, --nointeract Use plain lists, no interaction required.
+ -M, --machine Machine-readable output for lists (implies -I).
+
+ -a, --alias Use the alias table. (default)
+ -A, --noalias Don't use the alias table.
-q, --quiet Suppress warnings and most error messages.
-v, --verbose Print additional information (eg, viewer command).
@@ -52,13 +52,14 @@ Files: <texmf>/texdoc/texdoc.cnf, see output of the --files option.
Homepage: http://tug.org/texdoc/
Manual: displayed by `texdoc texdoc'.]]
-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'
+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' },
+ { name = 'alias_switch', [true] = '--alias', [false] = '--noalias' },
+}
known_options = {
'viewer_.*',
@@ -77,6 +78,14 @@ known_options = {
'zipext_list',
}
+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,
diff --git a/Master/texmf/scripts/texdoc/functions.tlu b/Master/texmf/scripts/texdoc/functions.tlu
index e93debafffc..22d44c9336a 100644
--- a/Master/texmf/scripts/texdoc/functions.tlu
+++ b/Master/texmf/scripts/texdoc/functions.tlu
@@ -8,8 +8,8 @@ See texdoc.tlu for details.
local L = {}
load_env(L, {
'export_symbols',
- 'string', 'io', 'os',
- 'pairs', 'ipairs', 'tonumber',
+ 'string', 'io', 'os', 'table', 'tostring',
+ 'print', 'pairs', 'ipairs', 'tonumber',
'C',
'config',
})
@@ -91,10 +91,32 @@ function parse_zip(file)
return file, nil
end
+-- print a usage message, with the proper 'active values' line
+function print_usage()
+ local default, files = {}, {}
+ for _, param in ipairs(C.usage_settings) do
+ local display = param[config[param.name]]
+ if config[param.name..'_src'] == 'def' then
+ table.insert(default, display)
+ elseif config[param.name..'_src'] == 'file' then
+ table.insert(files, display)
+ end
+ end
+ def = table.concat(default, ', ')
+ conf = table.concat(files, ', ')
+ if not (def == '') then def = def..' (default)' end
+ if not (conf == '') then conf = conf..' (user config)' end
+ local sep = (def == '' or conf == '') and '' or '; '
+ local settings = C.usage_settings_ph..' '..def..sep..conf..'.'
+ local usage_msg = string.gsub(C.usage_msg, C.usage_settings_ph, settings)
+ print(usage_msg)
+end
+
-- finally export a few symbols
export_symbols(L, {
'err_print',
'deb_print',
'win32_hook',
'parse_zip',
+ 'print_usage',
})
diff --git a/Master/texmf/scripts/texdoc/main.tlu b/Master/texmf/scripts/texdoc/main.tlu
index cb105eabda3..de6d62d23e7 100644
--- a/Master/texmf/scripts/texdoc/main.tlu
+++ b/Master/texmf/scripts/texdoc/main.tlu
@@ -8,10 +8,11 @@ See texdoc.tlu for details.
local L = {}
load_env(L, {
'os',
- 'print', 'ipairs',
+ 'ipairs',
'arg',
'C',
'setup_config_and_alias',
+ 'print_usage',
'get_doclist',
'deliver_results',
})
@@ -21,7 +22,7 @@ setup_config_and_alias(arg)
-- make sure we actually have argument(s)
if not arg[1] then
- print(C.usage_msg)
+ print_usage()
os.exit(C.exit_usage)
end