This file is indexed.

/usr/include/sbml/xml/ExpatHandler.h is in libsbml5-dev 5.16.0+dfsg-1.

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
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
/**
 * @cond doxygenLibsbmlInternal
 *
 * @file    ExpatHandler.h
 * @brief   Redirect Expat events to an XMLHandler
 * @author  Ben Bornstein
 * 
 * <!--------------------------------------------------------------------------
 * This file is part of libSBML.  Please visit http://sbml.org for more
 * information about SBML, and the latest version of libSBML.
 *
 * Copyright (C) 2013-2017 jointly by the following organizations:
 *     1. California Institute of Technology, Pasadena, CA, USA
 *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 *     3. University of Heidelberg, Heidelberg, Germany
 *
 * Copyright (C) 2009-2013 jointly by the following organizations: 
 *     1. California Institute of Technology, Pasadena, CA, USA
 *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 *  
 * Copyright (C) 2006-2008 by the California Institute of Technology,
 *     Pasadena, CA, USA 
 *  
 * Copyright (C) 2002-2005 jointly by the following organizations: 
 *     1. California Institute of Technology, Pasadena, CA, USA
 *     2. Japan Science and Technology Agency, Japan
 * 
 * This library is free software; you can redistribute it and/or modify it
 * under the terms of the GNU Lesser General Public License as published by
 * the Free Software Foundation.  A copy of the license agreement is provided
 * in the file named "LICENSE.txt" included with this software distribution and
 * also available online as http://sbml.org/software/libsbml/license.html
 * ---------------------------------------------------------------------- -->*/

#ifndef ExpatHandler_h
#define ExpatHandler_h

#ifdef __cplusplus

#include <string>

#include <expat.h>
#include <sbml/xml/XMLHandler.h>
#include <sbml/xml/XMLNamespaces.h>
#include <sbml/xml/XMLError.h>


LIBSBML_CPP_NAMESPACE_BEGIN


class ExpatHandler
{
public:

  /**
   * Creates a new ExpatHandler.  Expat events will be redirected to the
   * given XMLHandler.
   */
  ExpatHandler (XML_Parser parser, XMLHandler& handler);


  /**
   * Copy constructor.
   *
   * @param orig the instance to copy.
   */
  ExpatHandler (const ExpatHandler& orig);


  /**
   * Assignment operator
   */
  ExpatHandler& operator=(const ExpatHandler& other);


  /**
   * Destroys this ExpatHandler.
   */
  virtual ~ExpatHandler ();


  /**
   * Receive notification of the beginning of the document.
   */
  void startDocument ();


  /**
   * Receive notification of the XML declaration, i.e.
   * <?xml version="1.0" encoding="UTF-8"?>
   */
  int XML (const XML_Char* version, const XML_Char* encoding);


  /**
   * Receive notification of the start of an element.
   *
   * @param  name   the element name.
   * @param  attrs  the specified or defaulted attributes.
   */
  void startElement (const XML_Char* name, const XML_Char** attrs);


  /**
   * Receive notification of the start of an XML namespace.
   *
   * @param  prefix  the namespace prefix or @c NULL (for xmlns="...").
   * @param  uri     the namespace uri    or @c NULL (for xmlns="").
   */
  void startNamespace (const XML_Char* prefix, const XML_Char* uri);


  /**
   * Receive notification of the end of the document.
   */
  void endDocument ();


  /**
   * Receive notification of the end of an element.
   *
   * @param  name  the element name.
   */
  void endElement (const XML_Char* name);


  /**
   * Receive notification of character data inside an element.
   *
   * @param  chars   the characters.
   * @param  length  the number of characters to use from the character array.
   */
  void characters (const XML_Char* chars, int length);


  /**
   * Returns the column number of the current XML event.
   *
   * @return the column number of the current XML event.
   */
  unsigned int getColumn () const;


  /**
   * Returns the line number of the current XML event.
   *
   * @return the line number of the current XML event.
   */
  unsigned int getLine () const;


  /**
   * Returns @c true or @c false depending on whether the handler
   * caught an error in-between our (liblax) code and Expat.
   */
  XMLError* error() { return mHandlerError; };

  bool hasXMLDeclaration() { return gotXMLDecl; } 
  void setHasXMLDeclaration(bool value) { gotXMLDecl = value; }

protected:

  bool gotXMLDecl;

  XML_Parser    mParser;
  XMLHandler&   mHandler;
  XMLNamespaces mNamespaces;

  XMLError*     mHandlerError;

};


LIBSBML_CPP_NAMESPACE_END

#endif  /* __cplusplus */
#endif  /* ExpatHandler_h */
/** @endcond */