This file is indexed.

/usr/include/xmltooling/util/PathResolver.h is in libxmltooling-dev 1.6.4-1ubuntu2.

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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
/**
 * Licensed to the University Corporation for Advanced Internet
 * Development, Inc. (UCAID) under one or more contributor license
 * agreements. See the NOTICE file distributed with this work for
 * additional information regarding copyright ownership.
 *
 * UCAID licenses this file to you under the Apache License,
 * Version 2.0 (the "License"); you may not use this file except
 * in compliance with the License. You may obtain a copy of the
 * License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
 * either express or implied. See the License for the specific
 * language governing permissions and limitations under the License.
 */

/**
 * @file xmltooling/util/PathResolver.h
 *
 * Resolves local filenames into absolute pathnames.
 */

#if !defined(__xmltooling_pathres_h__)
#define __xmltooling_pathres_h__

#include <xmltooling/base.h>

#include <string>

namespace xmltooling {
    /**
     * Resolves local filenames into absolute pathnames.
     */
    class XMLTOOL_API PathResolver
    {
        MAKE_NONCOPYABLE(PathResolver);
    public:
        PathResolver();
        virtual ~PathResolver();

        /** Types of file resources to resolve. */
        enum file_type_t {
            XMLTOOLING_LIB_FILE,
            XMLTOOLING_LOG_FILE,
            XMLTOOLING_XML_FILE,
            XMLTOOLING_RUN_FILE,
            XMLTOOLING_CFG_FILE,
            XMLTOOLING_CACHE_FILE
        };

        /**
         * Set the default package to use when resolving files.
         *
         * @param pkgname name of default package to use
         */
        virtual void setDefaultPackageName(const char* pkgname);

        /**
         * Set the default installation prefix to use when resolving files.
         *
         * @param prefix name of default prefix to use
         */
        virtual void setDefaultPrefix(const char* prefix);

        /**
         * Set the lib directory to use when resolving files.
         * <p>If relative, the default prefix will be prepended.
         *
         * @param dir    the library directory to use
         */
        virtual void setLibDir(const char* dir);

        /**
         * Set the log directory to use when resolving files.
         * <p>If relative, the default prefix will be prepended.
         *
         * @param dir    the log directory to use
         */
        virtual void setLogDir(const char* dir);

        /**
         * Set the XML directory to use when resolving files.
         * <p>If relative, the default prefix will be prepended.
         *
         * @param dir    the XML directory to use
         */
        virtual void setXMLDir(const char* dir);

        /**
         * Set the run directory to use when resolving files.
         * <p>If relative, the default prefix will be prepended.
         *
         * @param dir    the run directory to use
         */
        virtual void setRunDir(const char* dir);

        /**
         * Set the config directory to use when resolving files.
         * <p>If relative, the default prefix will be prepended.
         *
         * @param dir    the config directory to use
         */
        virtual void setCfgDir(const char* dir);

        /**
         * Set the cache directory to use when resolving files.
         * <p>If relative, the default prefix will be prepended.
         *
         * @param dir    the cache directory to use
         */
        virtual void setCacheDir(const char* dir);

        /**
         * Changes the input filename into an absolute pathname to the same file.
         *
         * @param s         filename to resolve
         * @param filetype  type of file being resolved
         * @param pkgname   application package name to use in resolving the file (or nullptr for the default)
         * @param prefix    installation prefix to use in resolving the file (or nullptr for the default)
         *
         * @return a const reference to the input string
         */
        virtual const std::string& resolve(std::string& s, file_type_t filetype, const char* pkgname=nullptr, const char* prefix=nullptr) const;

    private:
        bool isAbsolute(const char* s) const;

        std::string m_defaultPackage,m_defaultPrefix,m_lib,m_log,m_xml,m_run,m_cfg,m_cache;
    };
};

#endif /* __xmltooling_pathres_h__ */