//this file looks like plain C, but it's actually -*- c++ -*-
#ifndef __TQStringUtils__
#define __TQStringUtils__

#include <iostream>
#include <sstream>
#include <math.h>


#include "TString.h"
#include "TList.h"
#include "TColor.h"
#include "TRegexp.h"
#include "Varargs.h"


namespace TQStringUtils {
 
  extern const TString lowerLetters;
  extern const TString upperLetters;
  extern const TString emptyString;
  extern const TString numerals;
  extern const TString letters;
  extern const TString alphanum;
  extern const TString alphanumvar;
  extern const TString alphanumvarext;
  extern const TString defaultIDchars;
  extern const TString blanks;
  extern const TString blanksAll;
  extern const TString controlReturnCharacters;
  extern const TRegexp latexcmd;
  extern const TRegexp latexmath;
  extern const TRegexp roottex;
  extern const TRegexp html;

  inline const TString& getLowerLetters() {
    return lowerLetters;
  }

  inline const TString& getCapitalLetters() {
    return upperLetters;
  }

  inline const TString& getLetters() {
    return letters;
  }
 
  inline const TString& getNumerals() {
    return numerals;
  }
 
  inline const TString& getDefaultIDCharacters() {
    return defaultIDchars;
  }
 
  inline const TString& getBlanks() {
    return blanks;
  }

  inline const TString& getAllBlanks() {
    return blanksAll;
  }

  inline TString makeBoldWhite(const TString& text) {
    return TString("\033[1m") + text + "\033[0m";
  }

  inline TString makeBoldPink(const TString& text) {
    return TString("\033[1;35m") + text + "\033[0m";
  }

  inline TString makeBoldBlue(const TString& text) {
    return TString("\033[1;34m") + text + "\033[0m";
  }

  inline TString makeBoldYellow(const TString& text) {
    return TString("\033[1;33m") + text + "\033[0m";
  }

  inline TString makeBoldGreen(const TString& text) {
    return TString("\033[1;32m") + text + "\033[0m";
  }

  inline TString makeBoldRed(const TString& text) {
    return TString("\033[1;31m") + text + "\033[0m";
  }

  inline TString makePink(const TString& text) {
    return TString("\033[35m") + text + "\033[0m";
  }

  inline TString makeTurquoise(const TString& text) {
    return TString("\033[36m") + text + "\033[0m";
  }

  inline TString makeBlue(const TString& text) {
    return TString("\033[34m") + text + "\033[0m";
  }

  inline TString makeYellow(const TString& text) {
    return TString("\033[33m") + text + "\033[0m";
  }

  inline TString makeGreen(const TString& text) {
    return TString("\033[32m") + text + "\033[0m";
  }

  inline TString makeRed(const TString& text) {
    return TString("\033[31m") + text + "\033[0m";
  }
 
  TString format(const char *va_(fmt), ...);
  char* vaFormat(const char *fmt, va_list ap); 

  std::vector<TString> getTagPlaceholders(TString in);
  
  bool readCharacter(const TString& text, int& index, int& count);
  TString getSIsuffix(int exponent, const TString& format = "ascii");
  TString getStatusBar(int pos, int max, const TString& def = "[> ]");

  TString getUniqueName(TDirectory * dir, TString proposal = "instance");

  TString getDetails(const TObject * obj);
 
  bool isValidIdentifier(const TString& identifier, const TString& characters = getDefaultIDCharacters(), int minLength = -1, int maxLength = -1);
  TString makeValidIdentifier(const TString& identifier, const TString& characters = getDefaultIDCharacters(), const TString& replacement = "");

  bool getBoolFromString(const TString& boolString, bool &isBool);
  bool getBoolFromString(const TString& boolString);
  TString getStringFromBool(bool boolValue);
  int getColorFromString(TString colorString);
  int interpret(const TString& str);

  TString getColorDefStringLaTeX(const TString& name, int color);
  TString getColorDefStringLaTeX(const TString& name, TColor* color);

  bool isDouble (TString str);
  bool isInteger(TString str);
  bool isNumber (const TString& str);
  bool isBool (const TString& str);
 
  int getEditDistance(const TString& str1, const TString& str2);
  
  TString getLongestCommonSubstring(const std::vector<TString>& fullStrings_, const TString& seed);
  TString removeDuplicateSubStrings(const TString& longString, int minLength=16);
  TString removeDuplicateSubStrings(const TString& longString, TString& removedSequence, int minLength=16);
  
  int testNumber(double number, TString test);
 
  bool isEmpty(const TString& str, bool allowBlanks = false);

  bool matchesFilter(const TString& text, TString filter, const TString& orSep = "", bool ignoreBlanks = true);
  bool matches(const TString& text, const TString& pattern);
  bool hasWildcards(TString text);

  int compare(const TString& a, const TString& b);

  int compareHeads(const TString& str1, const TString& str2);
  int compareTails(const TString& str1, const TString& str2);
  TString getMaxCommonHead(TList * strings);

  TString trim(const TString& text, const TString& blanks = getBlanks());
  TString rtrim(const TString& text, const TString& blanks = getBlanks());

  bool append(TString &text, const TString &appendix, const TString& sep = ", ");

  TString getFirstToken(TString text, const TString& sep = ",", bool trim = true, const TString& blocks = "", const TString& quotes = "");
  TList * tokenize(TString text, const TString& sep = ",", bool trim = true, const TString& blocks = "", const TString& quotes = "");
  std::vector<TString> tokenizeVector(TString text, const TString& sep = ",", bool trim = true, const TString& blocks = "", const TString& quotes = "");

  TString concat(TString first, const TString& second);
  TString concat(int n, ...);

  size_t length(const std::string& s);
  size_t length(const TString& s);  
  

#ifndef __CINT__
  template<class T, class U> TString concat(const std::vector<T>& items, const U& sep = ", ", const U& quote="") {
    // concatenate a vector of strings to a single string using the given separator
    static_assert(!std::is_pointer<T>::value,"The vector element must not be a pointer, use concatNames instead!");
    bool first = true;
    std::stringstream ss;
    for(auto item:items){
      if (!first) {
        ss << sep;
      } else {
        first = false;
      }
      if(TQStringUtils::length(quote) == 2){
	ss << quote[0];
      }
      ss << item;
      if(TQStringUtils::length(quote) == 2){
	ss << quote[1];
      }      
    }
    return ss.str().c_str();
  }
  template<class T> TString concat(const std::vector<T>& items, const char* sep = ", ", const char* quote="") {
    return concat<T,std::string>(items,sep,quote);
  }

  template<class T> TString concatNames(const std::vector<T>& items, const TString& sep = ",", const TString& quote="") {
    // concatenate the names of a vector of TObject-derived objects to a single string using the given separator
    if(items.size() < 1) return "<empty>"; 
    bool first = true;
    std::stringstream ss;    
    for(auto it:items){
      if (!first) {
        ss << sep;
      } else {
        first = false;
      }
      if(!it)
        ss << "NULL";
      else {
	if(TQStringUtils::length(quote) == 2){
	  ss << quote[0];
	}	
        ss << it->GetName();
	if(TQStringUtils::length(quote) == 2){
	  ss << quote[1];
	}	
      }
    }
    return ss.str().c_str();
  }
#endif
  TString concatNames(TCollection* c, const TString& sep = ",", const TString& quote="");
  
  bool isEscaped(const TString& text, int pos, const TString& escChar="\\");
  TString removeEscapes(const TString& text, const TString& escapes = "\\");
  TString insertEscapes(const TString& text, const TString& escapes = "\\\"");

  TString repeat(const TString& text, int n, const TString& sep = "");
  TString repeatSpaces(int n);
  TString repeatTabs(int n);

  int getWidth(const TString& text);
  int getCharIndex(const TString& text, int index);

  TString fixedWidth(const TString& text, int width, const TString& options = "l");
  TString fixedWidth(const char* text, int width, const TString& options = "l");
  TString fixedWidth(const TString& text, int width, bool rightJustified);
  TString fixedWidth(const TString& text, int width, const char* options);
  TString fixedWidth(const char* text, int width, const char* options);
  TString fixedWidth(const char* text, int width, bool rightJustified);

  TString maxLength(const TString& text, int maxLength, const TString& appendix = "...");
 
  TString getThousandsSeparators(int value, const TString& sep = "'");
  TString getThousandsSeparators(Long64_t value, const TString& sep = "'");
  TString getThousandsSeparators(TString value, const TString& sep = "'");
 
  TString getIndentationLines(int indent);

  TString formatSignificantDigits(double val, int nDigits);
  char hasStringSwitch(const TString& input);

  bool hasUnquotedStrings(const TString& text, const TString& quotes = "\"'");
  bool hasTFormulaParameters(const TString& text);

  bool printDiffOfLists(TList * l1, TList * l2, bool ignoreMatches = false);

  template <class T> 
  void printVector(const std::vector<T>& vec){
    int len = vec.size();
    TString idxf = TString::Format("%%%dd",(int)ceil(log(len)));
    for(size_t i=0; i<vec.size(); i++){
      std::cout << TString::Format(idxf.Data(),(int)i) << " " << vec[i] << std::endl;
    }
  }

  TString quote (const TString& str, char q = '"');
  TString unquote (TString str, const TString& quotes="\"'");
  void    unquoteInPlace(TString& text, const TString& quotes="\"'");
  TString unblock (TString str, const TString& blocks="(){}[]");


  TString cutUnit (TString &label);
  TString getUnit (TString label);
  TString getWithoutUnit (TString label);

  int removeLeading (TString &text, TString characters, int nMax = -1);
  int removeTrailing (TString &text, TString characters, int nMax = -1);

  bool removeLeadingText (TString &text, TString prefix);
  bool removeTrailingText (TString &text, TString appendix);

  int removeLeadingBlanks (TString &text, int nMax = -1);
  int removeTrailingBlanks(TString &text, int nMax = -1);
  
  int removeAll(TString &text, const TString& chars, TString::ECaseCompare comp = TString::ECaseCompare::kExact, int max=-1);
  
  int countLeading (const TString& text, const TString& characters, int nMax = -1);
  int countTrailing (const TString& text, const TString& characters, int nMax = -1);

  int countText(const TString& haystack, const TString& needle);

  int ensureTrailingText(TString &text, const TString& appendix);
  int ensureLeadingText(TString &text, const TString& prefix);

  int readBlanks (TString &in);
  int readBlanksAndNewlines(TString &in);
  int readBlanksAndNewlines(TString &in, int &nNewlines);
  int readToken (TString &in, TString &out, const TString& characters, int nMax = -1);
  int readBlock (TString &in, TString &out, const TString& blocks="()[]{}", const TString& quotes = "", bool keepEnclosed = false, int ignoreUnexpectedClosingQuotes = -1);
  int readUpTo (TString &in, TString &out, const TString& upTo, const TString& blocks = "", const TString& quotes = "", int ignoreUnexpectedClosingQuotes = -1);
  int readUpToText(TString &in, TString &out, const TString& upTo, const TString& blocks = "", const TString& quotes = "", int ignoreUnexpectedClosingQuotes = -1);
  int readTokenAndBlock(TString & in, TString & out, const TString& characters, const TString& blocks="()[]{}");
  TString readPrefix(TString &in, const TString& delim, const TString& defaultPrefix = "");
  TString expand(TString in, const TString& characters, const TString& blocks, bool embrace = false);
  
  TString replace(TString str, const TString& needle, const TString& newNeedle);
  TString replace(TString str, const char* needle, const TString& newNeedle);
  TString replace(TString str, const TString& needle, const char* newNeedle);
  TString replace(TString str, const char* needle, const char* newNeedle);
  
  std::vector<TString> extractMatches(const TString& string, const TString& regexp);

  bool equal(const TString& first, const TString& second);
  bool requal(const TString& first, const TString& second);

  bool writeTextToFile(TList * text, const TString& filename = "");
  std::vector<TString>* readFileLines(const TString& filename, size_t len = 256, bool allowComments = true);
  size_t readFileLines(std::vector<TString>* lines, const TString& filename, size_t len = 256, bool allowComments = true);
  TString readFile(const TString& filename, const TString& blacklist = "", const TString& replace = "");
  TString readSVGtoDataURI(const TString& filename);
 
  TList* readDefinitionFile(const TString& filename);
 
  TString readTextFromFile(std::istream* input, const char* commentLine = "//", const char* commentBlockOpen = "/*", const char* commentBlockClose = "*/");
 
  TString compactify(const TString& text);
  TString minimize(TString text);

  inline TString chartostr(char c){ TString s(""); s+=c; return s;}
  size_t findParenthesisMatch (const TString& str, size_t nextpos, const TString& paropen, const TString& parclose);
  size_t findParenthesisMatch (const TString& str, size_t nextpos, char paropen, char parclose);
  size_t rfindParenthesisMatch(const TString& str, size_t nextpos, const TString& paropen, const TString& parclose);
  size_t rfindParenthesisMatch(const TString& str, size_t nextpos, char paropen, char parclose);
  size_t findFree (const TString& haystack, const TString& needle, const TString& paropen, const TString& parclose, size_t startpos = 0);
  size_t findFree (const TString& haystack, const TString& needle, const TString& parentheses, size_t startpos = 0);
  size_t rfindFree (const TString& haystack, const TString& needle, const TString& paropen, const TString& parclose, size_t startpos = -1);
  size_t rfindFree (const TString& haystack, const TString& needle, const TString& parentheses, size_t startpos = 0);
  size_t findFreeOf (const TString& haystack, const TString& needles, const TString& paropen, const TString& parclose, size_t startpos = 0);
  size_t rfindFreeOf (const TString& haystack, const TString& needles, const TString& paropen, const TString& parclose, size_t startpos = -1);

  int find(const TString& item, const std::vector<TString>& vec);

  int find(const TString& haystack, const TString& needle, int pos = 0);
  int rfind(const TString& haystack, const TString& needle, int pos);
  int findFirstOf(const TString& haystack, const TString& needle, int pos = 0);
  int rfindFirstOf(const TString& haystack, const TString& needle, int pos = 0);
  int findLastOf(const TString& haystack, const TString& needle, int pos);
  int findFirstNotOf(const TString& haystack, const TString& needle, int pos = 0);
  int rfindFirstNotOf(const TString& haystack, const TString& needle, int pos = 0);
  int findLastNotOf(const TString& haystack, const TString& needle, int pos);
 
  inline int rfind (const TString& haystack, const TString& needle){return TQStringUtils::rfind (haystack,needle,haystack.Length());}
  inline int findLastOf (const TString& haystack, const TString& needle){return TQStringUtils::findLastOf (haystack,needle,haystack.Length());}
  inline int findLastNotOf(const TString& haystack, const TString& needle){return TQStringUtils::findLastNotOf(haystack,needle,haystack.Length());}
 
  std::vector<TString> split(const TString& str, const TString& del = " ");
  std::vector<TString> split(const TString& str, const TString& del, const TString& paropen, const TString& parclose);

  TString merge(const std::vector<TString>& vecStr, const TString& del = " ", int start = 0, int stop = 0);

  TString findFormat(const TString& content);

  TString convertPlain2LaTeX(TString text);
  TString convertPlain2HTML(TString text); 
  TString convertLaTeX2Plain(TString text,bool unicod=true);
  TString convertLaTeX2HTML(TString text); 
  TString convertHTML2Plain(TString text,bool unicode=true);
  TString convertHTML2LaTeX(TString text);
  TString convertROOTTeX2Plain(TString text, bool unicode=true);
  TString convertROOTTeX2LaTeX(TString text);
  TString convertROOTTeX2HTML(TString text);
  TString convertLaTeX2ROOTTeX(TString text);
  TString makeUnicodeSuperscript(TString s);
  TString makeUnicodeSubscript(TString s);
  TString makeUppercase(TString s);
  TString makeLowercase(TString s);
  TString makeASCII(const TString& content);
  bool isASCII(TString content);
  
  TString formatValueError(double val, double err, const TString& format = "%g +/- %g");
  TString formatValueErrorPDG(double val, double err, int expval, const TString& format);
  
  int reduceToCommonPrefix(TString& prefix, const TString& other);
  TString replaceEnclosed(TString haystack,TString needle,TString newNeedle, const TString& symbols);
  
  TString padNumber(int num, int length);

}

#endif
 TQStringUtils.h:1
 TQStringUtils.h:2
 TQStringUtils.h:3
 TQStringUtils.h:4
 TQStringUtils.h:5
 TQStringUtils.h:6
 TQStringUtils.h:7
 TQStringUtils.h:8
 TQStringUtils.h:9
 TQStringUtils.h:10
 TQStringUtils.h:11
 TQStringUtils.h:12
 TQStringUtils.h:13
 TQStringUtils.h:14
 TQStringUtils.h:15
 TQStringUtils.h:16
 TQStringUtils.h:17
 TQStringUtils.h:18
 TQStringUtils.h:19
 TQStringUtils.h:20
 TQStringUtils.h:21
 TQStringUtils.h:22
 TQStringUtils.h:23
 TQStringUtils.h:24
 TQStringUtils.h:25
 TQStringUtils.h:26
 TQStringUtils.h:27
 TQStringUtils.h:28
 TQStringUtils.h:29
 TQStringUtils.h:30
 TQStringUtils.h:31
 TQStringUtils.h:32
 TQStringUtils.h:33
 TQStringUtils.h:34
 TQStringUtils.h:35
 TQStringUtils.h:36
 TQStringUtils.h:37
 TQStringUtils.h:38
 TQStringUtils.h:39
 TQStringUtils.h:40
 TQStringUtils.h:41
 TQStringUtils.h:42
 TQStringUtils.h:43
 TQStringUtils.h:44
 TQStringUtils.h:45
 TQStringUtils.h:46
 TQStringUtils.h:47
 TQStringUtils.h:48
 TQStringUtils.h:49
 TQStringUtils.h:50
 TQStringUtils.h:51
 TQStringUtils.h:52
 TQStringUtils.h:53
 TQStringUtils.h:54
 TQStringUtils.h:55
 TQStringUtils.h:56
 TQStringUtils.h:57
 TQStringUtils.h:58
 TQStringUtils.h:59
 TQStringUtils.h:60
 TQStringUtils.h:61
 TQStringUtils.h:62
 TQStringUtils.h:63
 TQStringUtils.h:64
 TQStringUtils.h:65
 TQStringUtils.h:66
 TQStringUtils.h:67
 TQStringUtils.h:68
 TQStringUtils.h:69
 TQStringUtils.h:70
 TQStringUtils.h:71
 TQStringUtils.h:72
 TQStringUtils.h:73
 TQStringUtils.h:74
 TQStringUtils.h:75
 TQStringUtils.h:76
 TQStringUtils.h:77
 TQStringUtils.h:78
 TQStringUtils.h:79
 TQStringUtils.h:80
 TQStringUtils.h:81
 TQStringUtils.h:82
 TQStringUtils.h:83
 TQStringUtils.h:84
 TQStringUtils.h:85
 TQStringUtils.h:86
 TQStringUtils.h:87
 TQStringUtils.h:88
 TQStringUtils.h:89
 TQStringUtils.h:90
 TQStringUtils.h:91
 TQStringUtils.h:92
 TQStringUtils.h:93
 TQStringUtils.h:94
 TQStringUtils.h:95
 TQStringUtils.h:96
 TQStringUtils.h:97
 TQStringUtils.h:98
 TQStringUtils.h:99
 TQStringUtils.h:100
 TQStringUtils.h:101
 TQStringUtils.h:102
 TQStringUtils.h:103
 TQStringUtils.h:104
 TQStringUtils.h:105
 TQStringUtils.h:106
 TQStringUtils.h:107
 TQStringUtils.h:108
 TQStringUtils.h:109
 TQStringUtils.h:110
 TQStringUtils.h:111
 TQStringUtils.h:112
 TQStringUtils.h:113
 TQStringUtils.h:114
 TQStringUtils.h:115
 TQStringUtils.h:116
 TQStringUtils.h:117
 TQStringUtils.h:118
 TQStringUtils.h:119
 TQStringUtils.h:120
 TQStringUtils.h:121
 TQStringUtils.h:122
 TQStringUtils.h:123
 TQStringUtils.h:124
 TQStringUtils.h:125
 TQStringUtils.h:126
 TQStringUtils.h:127
 TQStringUtils.h:128
 TQStringUtils.h:129
 TQStringUtils.h:130
 TQStringUtils.h:131
 TQStringUtils.h:132
 TQStringUtils.h:133
 TQStringUtils.h:134
 TQStringUtils.h:135
 TQStringUtils.h:136
 TQStringUtils.h:137
 TQStringUtils.h:138
 TQStringUtils.h:139
 TQStringUtils.h:140
 TQStringUtils.h:141
 TQStringUtils.h:142
 TQStringUtils.h:143
 TQStringUtils.h:144
 TQStringUtils.h:145
 TQStringUtils.h:146
 TQStringUtils.h:147
 TQStringUtils.h:148
 TQStringUtils.h:149
 TQStringUtils.h:150
 TQStringUtils.h:151
 TQStringUtils.h:152
 TQStringUtils.h:153
 TQStringUtils.h:154
 TQStringUtils.h:155
 TQStringUtils.h:156
 TQStringUtils.h:157
 TQStringUtils.h:158
 TQStringUtils.h:159
 TQStringUtils.h:160
 TQStringUtils.h:161
 TQStringUtils.h:162
 TQStringUtils.h:163
 TQStringUtils.h:164
 TQStringUtils.h:165
 TQStringUtils.h:166
 TQStringUtils.h:167
 TQStringUtils.h:168
 TQStringUtils.h:169
 TQStringUtils.h:170
 TQStringUtils.h:171
 TQStringUtils.h:172
 TQStringUtils.h:173
 TQStringUtils.h:174
 TQStringUtils.h:175
 TQStringUtils.h:176
 TQStringUtils.h:177
 TQStringUtils.h:178
 TQStringUtils.h:179
 TQStringUtils.h:180
 TQStringUtils.h:181
 TQStringUtils.h:182
 TQStringUtils.h:183
 TQStringUtils.h:184
 TQStringUtils.h:185
 TQStringUtils.h:186
 TQStringUtils.h:187
 TQStringUtils.h:188
 TQStringUtils.h:189
 TQStringUtils.h:190
 TQStringUtils.h:191
 TQStringUtils.h:192
 TQStringUtils.h:193
 TQStringUtils.h:194
 TQStringUtils.h:195
 TQStringUtils.h:196
 TQStringUtils.h:197
 TQStringUtils.h:198
 TQStringUtils.h:199
 TQStringUtils.h:200
 TQStringUtils.h:201
 TQStringUtils.h:202
 TQStringUtils.h:203
 TQStringUtils.h:204
 TQStringUtils.h:205
 TQStringUtils.h:206
 TQStringUtils.h:207
 TQStringUtils.h:208
 TQStringUtils.h:209
 TQStringUtils.h:210
 TQStringUtils.h:211
 TQStringUtils.h:212
 TQStringUtils.h:213
 TQStringUtils.h:214
 TQStringUtils.h:215
 TQStringUtils.h:216
 TQStringUtils.h:217
 TQStringUtils.h:218
 TQStringUtils.h:219
 TQStringUtils.h:220
 TQStringUtils.h:221
 TQStringUtils.h:222
 TQStringUtils.h:223
 TQStringUtils.h:224
 TQStringUtils.h:225
 TQStringUtils.h:226
 TQStringUtils.h:227
 TQStringUtils.h:228
 TQStringUtils.h:229
 TQStringUtils.h:230
 TQStringUtils.h:231
 TQStringUtils.h:232
 TQStringUtils.h:233
 TQStringUtils.h:234
 TQStringUtils.h:235
 TQStringUtils.h:236
 TQStringUtils.h:237
 TQStringUtils.h:238
 TQStringUtils.h:239
 TQStringUtils.h:240
 TQStringUtils.h:241
 TQStringUtils.h:242
 TQStringUtils.h:243
 TQStringUtils.h:244
 TQStringUtils.h:245
 TQStringUtils.h:246
 TQStringUtils.h:247
 TQStringUtils.h:248
 TQStringUtils.h:249
 TQStringUtils.h:250
 TQStringUtils.h:251
 TQStringUtils.h:252
 TQStringUtils.h:253
 TQStringUtils.h:254
 TQStringUtils.h:255
 TQStringUtils.h:256
 TQStringUtils.h:257
 TQStringUtils.h:258
 TQStringUtils.h:259
 TQStringUtils.h:260
 TQStringUtils.h:261
 TQStringUtils.h:262
 TQStringUtils.h:263
 TQStringUtils.h:264
 TQStringUtils.h:265
 TQStringUtils.h:266
 TQStringUtils.h:267
 TQStringUtils.h:268
 TQStringUtils.h:269
 TQStringUtils.h:270
 TQStringUtils.h:271
 TQStringUtils.h:272
 TQStringUtils.h:273
 TQStringUtils.h:274
 TQStringUtils.h:275
 TQStringUtils.h:276
 TQStringUtils.h:277
 TQStringUtils.h:278
 TQStringUtils.h:279
 TQStringUtils.h:280
 TQStringUtils.h:281
 TQStringUtils.h:282
 TQStringUtils.h:283
 TQStringUtils.h:284
 TQStringUtils.h:285
 TQStringUtils.h:286
 TQStringUtils.h:287
 TQStringUtils.h:288
 TQStringUtils.h:289
 TQStringUtils.h:290
 TQStringUtils.h:291
 TQStringUtils.h:292
 TQStringUtils.h:293
 TQStringUtils.h:294
 TQStringUtils.h:295
 TQStringUtils.h:296
 TQStringUtils.h:297
 TQStringUtils.h:298
 TQStringUtils.h:299
 TQStringUtils.h:300
 TQStringUtils.h:301
 TQStringUtils.h:302
 TQStringUtils.h:303
 TQStringUtils.h:304
 TQStringUtils.h:305
 TQStringUtils.h:306
 TQStringUtils.h:307
 TQStringUtils.h:308
 TQStringUtils.h:309
 TQStringUtils.h:310
 TQStringUtils.h:311
 TQStringUtils.h:312
 TQStringUtils.h:313
 TQStringUtils.h:314
 TQStringUtils.h:315
 TQStringUtils.h:316
 TQStringUtils.h:317
 TQStringUtils.h:318
 TQStringUtils.h:319
 TQStringUtils.h:320
 TQStringUtils.h:321
 TQStringUtils.h:322
 TQStringUtils.h:323
 TQStringUtils.h:324
 TQStringUtils.h:325
 TQStringUtils.h:326
 TQStringUtils.h:327
 TQStringUtils.h:328
 TQStringUtils.h:329
 TQStringUtils.h:330
 TQStringUtils.h:331
 TQStringUtils.h:332
 TQStringUtils.h:333
 TQStringUtils.h:334
 TQStringUtils.h:335
 TQStringUtils.h:336
 TQStringUtils.h:337
 TQStringUtils.h:338
 TQStringUtils.h:339
 TQStringUtils.h:340
 TQStringUtils.h:341
 TQStringUtils.h:342
 TQStringUtils.h:343
 TQStringUtils.h:344
 TQStringUtils.h:345
 TQStringUtils.h:346
 TQStringUtils.h:347
 TQStringUtils.h:348
 TQStringUtils.h:349
 TQStringUtils.h:350
 TQStringUtils.h:351
 TQStringUtils.h:352
 TQStringUtils.h:353
 TQStringUtils.h:354
 TQStringUtils.h:355
 TQStringUtils.h:356
 TQStringUtils.h:357
 TQStringUtils.h:358
 TQStringUtils.h:359
 TQStringUtils.h:360
 TQStringUtils.h:361
 TQStringUtils.h:362
 TQStringUtils.h:363
 TQStringUtils.h:364
 TQStringUtils.h:365
 TQStringUtils.h:366
 TQStringUtils.h:367
 TQStringUtils.h:368
 TQStringUtils.h:369
 TQStringUtils.h:370
 TQStringUtils.h:371
 TQStringUtils.h:372
 TQStringUtils.h:373
 TQStringUtils.h:374
 TQStringUtils.h:375
 TQStringUtils.h:376
 TQStringUtils.h:377
 TQStringUtils.h:378
 TQStringUtils.h:379
 TQStringUtils.h:380
 TQStringUtils.h:381
 TQStringUtils.h:382
 TQStringUtils.h:383
 TQStringUtils.h:384
 TQStringUtils.h:385
 TQStringUtils.h:386
 TQStringUtils.h:387
 TQStringUtils.h:388
 TQStringUtils.h:389
 TQStringUtils.h:390
 TQStringUtils.h:391
 TQStringUtils.h:392
 TQStringUtils.h:393
 TQStringUtils.h:394
 TQStringUtils.h:395
 TQStringUtils.h:396
 TQStringUtils.h:397
 TQStringUtils.h:398
 TQStringUtils.h:399