This file is indexed.

/usr/include/Wt/WRegExpValidator is in libwt-dev 3.3.3+dfsg-4.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
// This may look like C code, but it's really -*- C++ -*-
/*
 * Copyright (C) 2008 Emweb bvba, Kessel-Lo, Belgium.
 *
 * See the LICENSE file for terms of use.
 */
#ifndef WREGEXPVALIDATOR_H_
#define WREGEXPVALIDATOR_H_

#include <limits>
#include <Wt/WValidator>

namespace Wt {

class WRegExp;

/*! \class WRegExpValidator Wt/WRegExpValidator Wt/WRegExpValidator
 *  \brief A validator that checks user input against a regular expression.
 *
 * This validator checks whether user input matches the given (perl-like)
 * regular expression. It checks the complete input; prefix ^ and suffix $
 * are not needed.
 *
 * The following perl features are not supported (since client-side validation
 * cannot handle them):
 * <ul>
 *   <li>No Lookbehind support, i.e. the constructs (?<=text) and (?<!text).
 *     </li>
 *   <li>No atomic grouping, i.e. the construct (?>group).</li>
 *   <li>No conditional expressions, i.e. the consturct (?ifthen|else).</li>
 * </ul>
 *
 * Usage example:
 * \if cpp
 * \code
 * Wt::WLineEdit *lineEdit = new Wt::WLineEdit(this);
 * // an email address validator
 * Wt::WRegExpValidator *validator = new Wt::WRegExpValidator("[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}");
 * lineEdit->setValidator(validator);
 * lineEdit->setText("koen@emweb.be");
 * \endcode
 * \elseif java
 * \code
 * WLineEdit lineEdit = new WLineEdit(this);
 * // an email address validator
 * WRegExpValidator validator = new WRegExpValidator("[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}");
 * lineEdit.setValidator(validator);
 * lineEdit.setText("pieter@emweb.be");
 * \endcode
 * \endif
 *
 * \note This validator does not fully support unicode: it matches on the
 * UTF8-encoded representation of the string.
 *
 * <h3>i18n</h3>
 *
 * The strings used in this class can be translated by overriding
 * the default values for the following localization keys:
 * - Wt.WRegExpValidator.Invalid: Invalid input
 */
class WT_API WRegExpValidator : public WValidator
{
public:
  /*! \brief Sets a new regular expression validator.
   */
  WRegExpValidator(WObject *parent = 0);

  /*! \brief Sets a new regular expression validator that accepts input
   *         that matches the given regular expression.
   *
   * This constructs a validator that matches the perl regular
   * expression \p expr.
   */
  WRegExpValidator(const WT_USTRING& pattern, WObject *parent = 0);

  /*! \brief Destructor.
   */
  ~WRegExpValidator();

  /*! \brief Sets the regular expression for valid input.
   *
   * Sets the perl regular expression \p expr.
   */
  void setRegExp(const WT_USTRING& pattern);

  /*! \brief Returns the regular expression for valid input.
   *
   * Returns the perl regular expression.
   */
  WT_USTRING regExp() const;

  /*! \brief Sets regular expression matching flags.
   */
  void setFlags(WFlags<RegExpFlag> flags);

  /*! \brief Returns regular expression matching flags.
   */
  WFlags<RegExpFlag> flags() const;

  /*! \brief Validates the given input.
   *
   * The input is considered valid only when it is blank for a
   * non-mandatory field, or matches the regular expression.
   */
  virtual Result validate(const WT_USTRING& input) const;

  virtual void createExtConfig(std::ostream& config) const;

  /*! \brief Sets the text to be shown if no match can be found.
   *
   * Sets the text to be shown if no match can be found.
   */
  void setNoMatchText(const WString& text);

  /*! \brief Sets the message to display when the input does not match.
   *
   * The default value is "Invalid input".
   */
  void setInvalidNoMatchText(const WString& text);

  /*! \brief Returns the message displayed when the input does not match.
   *
   * \sa setInvalidNoMatchText(const WString&)
   */
  WString invalidNoMatchText() const;

  virtual std::string javaScriptValidate() const;

private:
  WRegExp *regexp_;
  WString  noMatchText_;

  static void loadJavaScript(WApplication *app);
};

}

#endif // WREGEXPVALIDATOR_H_