This file is indexed.

/usr/share/texmf-texlive/scripts/texdoc/functions.tlu is in texlive-base 2009-15.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
-- General use functions 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.
--]]

local L = {}
load_env(L, {
    'export_symbols',
    'string', 'io', 'os',
    'pairs', 'ipairs',
    'C',
    'config',
})

-- change '/' to '\' on windows
if os.type == "windows" then
    function win32_hook (path)
        local res = string.gsub (path, '/', '\\')
        return res -- get rid of gsub's 2nd return value
    end
else
    function win32_hook (path)
        return path
    end
end

-- generic error display function (see the error_priority constant)
function err_print (lvl, msg)
    -- be careful: maybe config.verbosity_level is not set yet
    local verbosity_level = config.verbosity_level or 2
    if C.err_priority[lvl] <= verbosity_level then
        io.stderr:write ("texdoc "..lvl..": "..msg.."\n")
    end
end

do --scope of active_debugs
local active_debugs

-- generic debug function
function deb_print(cat, msg)
    -- make sure active_debugs is set
    if not active_debugs then set_active_debugs() end
    -- print message it belongs to an active category
    if active_debugs and active_debugs[cat] or cat == 'XXX' then
        io.stderr:write ("texdoc debug-"..cat..": "..msg.."\n")
    end
end

-- set active_debugs
function set_active_debugs()
    if not config.debug_list then return end
    active_debugs = {}
    -- all debug options imply version info
    if config.debug_list[1] then
        active_debugs.version = true
    else
        return
    end
    -- if 'all' is the first keyword, just activate all categories
    if config.debug_list[1] == 'all' then
        for deb in pairs(C.known_debugs) do
            active_debugs[deb] = true end
        return
    end
    -- activate options from the list
    for _, deb in ipairs(config.debug_list) do
        local deps = C.known_debugs[deb]
        if deps then
            active_debugs[deb] = true
            for _, d in ipairs(deps) do active_debugs[d] = true end
        else
            err_print('warning', "Unknown debug category '"..deb.."'.")
        end
    end
end

end -- scope of active_debugs

-- if zip is support and file is base..'.'..zip with zip in zipext_list, 
-- return base, zip -- otherwise, returns file, nil
function parse_zip(file) 
    if C.support_zipped then
        local zip
        for _, zip in ipairs(config.zipext_list) do
            local l = #zip + 1
            if string.sub(file, -l, -1) == '.'..zip then
                return string.sub(file, 1, -l - 1), zip
            end
        end
    end
    return file, nil
end

-- finally export a few symbols
export_symbols(L, {
    'err_print',
    'deb_print',
    'win32_hook',
    'parse_zip',
})