summaryrefslogtreecommitdiffstats
path: root/tqtinterface/qt4/src/tools/tqcstring.h
diff options
context:
space:
mode:
Diffstat (limited to 'tqtinterface/qt4/src/tools/tqcstring.h')
-rw-r--r--tqtinterface/qt4/src/tools/tqcstring.h792
1 files changed, 792 insertions, 0 deletions
diff --git a/tqtinterface/qt4/src/tools/tqcstring.h b/tqtinterface/qt4/src/tools/tqcstring.h
new file mode 100644
index 0000000..8568713
--- /dev/null
+++ b/tqtinterface/qt4/src/tools/tqcstring.h
@@ -0,0 +1,792 @@
+/****************************************************************************
+**
+** Definition of the extended char array operations,
+** and TQByteArray and TQCString classes
+**
+** Created : 920609
+**
+** Copyright (C) 2010 Timothy Pearson and (C) 1992-2008 Trolltech ASA.
+**
+** This file is part of the tools module of the TQt GUI Toolkit.
+**
+** This file may be used under the terms of the GNU General
+** Public License versions 2.0 or 3.0 as published by the Free
+** Software Foundation and appearing in the files LICENSE.GPL2
+** and LICENSE.GPL3 included in the packaging of this file.
+** Alternatively you may (at your option) use any later version
+** of the GNU General Public License if such license has been
+** publicly approved by Trolltech ASA (or its successors, if any)
+** and the KDE Free TQt Foundation.
+**
+** Please review the following information to ensure GNU General
+** Public Licensing requirements will be met:
+** http://trolltech.com/products/qt/licenses/licensing/opensource/.
+** If you are unsure which license is appropriate for your use, please
+** review the following information:
+** http://trolltech.com/products/qt/licenses/licensing/licensingoverview
+** or contact the sales department at sales@trolltech.com.
+**
+** This file may be used under the terms of the Q Public License as
+** defined by Trolltech ASA and appearing in the file LICENSE.TQPL
+** included in the packaging of this file. Licensees holding valid TQt
+** Commercial licenses may use this file in accordance with the TQt
+** Commercial License Agreement provided with the Software.
+**
+** This file is provided "AS IS" with NO WARRANTY OF ANY KIND,
+** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted
+** herein.
+**
+**********************************************************************/
+
+#ifndef TQCSTRING_H
+#define TQCSTRING_H
+
+#include "tqtglobaldefines.h"
+
+#ifndef TQT_H
+#include "tqmemarray.h"
+#endif // TQT_H
+
+#include <string.h>
+
+#ifdef USE_QT4
+
+#include <Qt/qbytearray.h>
+#include <Qt/qregexp.h>
+#include <Qt/qstring.h>
+
+#endif // USE_QT4
+
+/*****************************************************************************
+ Safe and portable C string functions; extensions to standard string.h
+ *****************************************************************************/
+
+TQ_EXPORT void *tqmemmove( void *dst, const void *src, uint len );
+
+TQ_EXPORT char *tqstrdup( const char * );
+
+TQ_EXPORT inline uint tqstrlen( const char *str )
+{ return str ? (uint)strlen(str) : 0u; }
+
+TQ_EXPORT inline char *tqstrcpy( char *dst, const char *src )
+{ return src ? strcpy(dst, src) : 0; }
+
+TQ_EXPORT char *tqstrncpy( char *dst, const char *src, uint len );
+
+TQ_EXPORT inline int tqstrcmp( const char *str1, const char *str2 )
+{
+ return ( str1 && str2 ) ? strcmp( str1, str2 )
+ : ( str1 ? 1 : ( str2 ? -1 : 0 ) );
+}
+
+TQ_EXPORT inline int tqstrncmp( const char *str1, const char *str2, uint len )
+{
+ return ( str1 && str2 ) ? strncmp( str1, str2, len )
+ : ( str1 ? 1 : ( str2 ? -1 : 0 ) );
+}
+
+TQ_EXPORT int tqstricmp( const char *, const char * );
+
+TQ_EXPORT int tqstrnicmp( const char *, const char *, uint len );
+
+#ifndef TQT_CLEAN_NAMESPACE
+TQ_EXPORT inline uint cstrlen( const char *str )
+{ return (uint)strlen(str); }
+
+TQ_EXPORT inline char *cstrcpy( char *dst, const char *src )
+{ return strcpy(dst,src); }
+
+TQ_EXPORT inline int cstrcmp( const char *str1, const char *str2 )
+{ return strcmp(str1,str2); }
+
+TQ_EXPORT inline int cstrncmp( const char *str1, const char *str2, uint len )
+{ return strncmp(str1,str2,len); }
+#endif
+
+
+// qChecksum: Internet checksum
+
+TQ_EXPORT TQ_UINT16 qChecksum( const char *s, uint len );
+
+/*****************************************************************************
+ TQByteArray class
+ *****************************************************************************/
+
+#ifdef USE_QT4
+
+// NOTE: Qt4 uses implicit sharing
+// Qt3 used explicit sharing
+
+class TQ_EXPORT TQByteArray : public QByteArray
+{
+public:
+ TQByteArray() : QByteArray() {}
+ TQByteArray( int size ) : QByteArray( size, '\0' ) {}
+ ~TQByteArray();
+
+ TQByteArray(const char *cs) : QByteArray( cs ) {}
+ TQByteArray(const char *cs, int size) : QByteArray( cs, size ) {}
+ TQByteArray(int size, char c) : QByteArray( size, c ) {}
+ TQByteArray(int size, Qt::Initialization init ) : QByteArray( size, init ) {}
+ TQByteArray(const TQByteArray &ba ) : QByteArray( ba/*.data(), ba.size()*/ ) {}
+ TQByteArray(const QByteArray &ba ) : QByteArray( ba/*.data(), ba.size()*/ ) {}
+
+ inline char *data() { if (isNull()) return 0; return QByteArray::data(); }
+ inline const char *data() const { if (isNull()) return 0; return QByteArray::data(); }
+ inline const char *constData() const { if (isNull()) return 0; return QByteArray::constData(); }
+
+ inline TQByteArray& assign( const TQByteArray& a ) { *this->operator=(a); return *this; }
+ inline TQByteArray& assign( const char *a, uint n ) { clear(); resize(n); insert(0, a, n); return *this; }
+ inline TQByteArray& duplicate(const TQByteArray& a) { *this = a; return *this; }
+ inline TQByteArray& duplicate(const char *a, uint n) { *this = TQByteArray(a, n); return *this; }
+ inline bool fill( char ch, int size = -1 ) { QByteArray::fill(ch, size); return TRUE; }
+ inline void resetRawData(const char *, uint) { clear(); }
+ inline QByteArray& setRawData(const char *a, uint n) { *this = fromRawData(a, n); return *this; } // Yes, I know about the built-in Qt4 version of this function. It is potentially unstable (corrupts memory) as of Qt4.7 and should not yet be used. Reevaluate this at Qt4.8 or above. [FIXME]
+ inline QByteArray lower() const { return toLower(); }
+ inline QByteArray upper() const { return toUpper(); }
+ inline QByteArray stripWhiteSpace() const { return trimmed(); }
+ inline QByteArray simplifyWhiteSpace() const { return simplified(); }
+ inline int tqfind(int c, int from = 0) const { return indexOf(c, from); }
+ inline int tqfind(char c, int from = 0) const { return indexOf(c, from); }
+ inline int tqfind(const char *c, int from = 0) const { return indexOf(c, from); }
+ inline int tqfind(const QByteArray &ba, int from = 0) const { return indexOf(ba, from); }
+ inline int tqfindRev(char c, int from = -1) const { return lastIndexOf(c, from); }
+ inline int tqfindRev(const char *c, int from = -1) const { return lastIndexOf(c, from); }
+ inline int tqfindRev(const QByteArray &ba, int from = -1) const { return lastIndexOf(ba, from); }
+#ifndef QT_NO_CAST_TO_ASCII
+ inline int tqfind(const QString &s, int from = 0) const;
+ inline int tqfindRev(const QString &s, int from = -1) const;
+#endif
+ inline TQByteArray copy() const { return TQByteArray(*this); }
+ inline QByteRef tqat( int i ) {
+// #ifdef TQT_CHECK_RANGE
+ if ( (i >= size()) || (i < 0) ) {
+ qWarning( "TQByteArray::tqat: Absolute index %d out of range", i );
+ i = 0;
+ }
+// #endif
+ return QByteArray::operator[](i);
+ }
+ inline bool tqresize( uint newlen ) { resize(newlen); return true; }
+ inline bool tqresize( uint newlen, TQGArray::Optimization ) { resize(newlen); return true; }
+
+ inline char &operator[]( int i ) {
+// #ifdef TQT_CHECK_RANGE
+ if ( (i >= size()) || (i < 0) ) {
+ qWarning( "TQByteArray::operator[]: Absolute index %d out of range", i );
+ i = 0;
+ }
+// #endif
+ return *(this->data()+i);
+ }
+
+ using QByteArray::operator=;
+
+ // Interoperability
+// static const TQByteArray& convertFromQByteArray( QByteArray& qba );
+ static const TQByteArray convertFromQByteArray( QByteArray& qba );
+};
+
+// Interoperability
+// inline static const TQByteArray& convertFromQByteArray( const QByteArray& qba ) {
+// return (*static_cast<const TQByteArray*>(&qba));
+// }
+inline static const TQByteArray convertFromQByteArray( const QByteArray& qba ) {
+ return TQByteArray(qba);
+}
+
+#ifndef TQT_NO_COMPRESS
+TQ_EXPORT TQByteArray tqCompress( const uchar* data, int nbytes );
+TQ_EXPORT TQByteArray tqUncompress( const uchar* data, int nbytes );
+TQ_EXPORT inline TQByteArray tqCompress( const TQByteArray& data)
+{ return tqCompress( (const uchar*)data.data(), data.size() ); }
+TQ_EXPORT inline TQByteArray tqUncompress( const TQByteArray& data )
+{ return tqUncompress( (const uchar*)data.data(), data.size() ); }
+#endif
+
+/*****************************************************************************
+ TQByteArray stream functions
+ *****************************************************************************/
+#ifndef TQT_NO_DATASTREAM
+TQ_EXPORT TQDataStream &operator<<( TQDataStream &tqds, const TQByteArray &tqba );
+TQ_EXPORT TQDataStream &operator>>( TQDataStream &tqds, TQByteArray &tqba );
+#endif
+
+#else // USE_QT4
+
+#if defined(TQ_TQDOC)
+/*
+ We want qdoc to document TQByteArray as a real class that inherits
+ TQMemArray<char> and that is inherited by TQBitArray.
+*/
+class TQByteArray : public TQMemArray<char>
+{
+public:
+ TQByteArray();
+ TQByteArray( int size );
+};
+#else
+typedef TQMemArray<char> TQByteArray;
+#endif
+
+#ifndef TQT_NO_COMPRESS
+TQ_EXPORT TQByteArray tqCompress( const uchar* data, int nbytes );
+TQ_EXPORT TQByteArray tqUncompress( const uchar* data, int nbytes );
+TQ_EXPORT inline TQByteArray tqCompress( const TQByteArray& data)
+{ return tqCompress( (const uchar*)data.data(), data.size() ); }
+TQ_EXPORT inline TQByteArray tqUncompress( const TQByteArray& data )
+{ return tqUncompress( (const uchar*)data.data(), data.size() ); }
+#endif
+
+/*****************************************************************************
+ TQByteArray stream functions
+ *****************************************************************************/
+#ifndef TQT_NO_DATASTREAM
+TQ_EXPORT TQDataStream &operator<<( TQDataStream &, const TQByteArray & );
+TQ_EXPORT TQDataStream &operator>>( TQDataStream &, TQByteArray & );
+#endif
+
+#endif // USE_QT4
+
+/*****************************************************************************
+ TQCString class
+ *****************************************************************************/
+
+// #ifdef USE_QT4
+#if 0
+
+#include <QtCore/qbytearray.h>
+#include <QtCore/qdatastream.h>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(Qt3SupportLight)
+
+/*****************************************************************************
+ QCString class
+ *****************************************************************************/
+
+class QRegExp;
+
+class TQCString : public TQByteArray
+{
+public:
+ TQCString() : TQByteArray() {}
+ TQCString(int size);
+ TQCString(const TQCString &s) : TQByteArray(s) {}
+ TQCString(const QByteArray &ba) : TQByteArray(ba.constData()) {}
+ TQCString(const char *str);
+ TQCString(const char *str, uint maxlen);
+
+ ~TQCString();
+
+ TQCString &operator=(const TQCString &s);
+ TQCString &operator=(const char *str);
+ TQCString &operator=(const QByteArray &ba);
+
+ TQCString copy() const { return *this; }
+ TQCString &sprintf(const char *format, ...);
+
+ TQCString left(uint len) const { return QByteArray::left(len); }
+ TQCString right(uint len) const { return QByteArray::right(len); }
+ TQCString mid(uint index, uint len=0xffffffff) const { return QByteArray::mid(index, len); }
+
+ TQCString leftJustify(uint width, char fill=' ', bool trunc=false)const;
+ TQCString rightJustify(uint width, char fill=' ',bool trunc=false)const;
+
+ TQCString lower() const { return QByteArray::toLower(); }
+ TQCString upper() const { return QByteArray::toUpper(); }
+
+ TQCString stripWhiteSpace() const { return QByteArray::trimmed(); }
+ TQCString simplifyWhiteSpace() const { return QByteArray::simplified(); }
+
+ uint length() const;
+ bool truncate( uint pos );
+
+ TQCString &insert(uint index, const char *c) { QByteArray::insert(index, c); return *this; }
+ TQCString &insert(uint index, char c) { QByteArray::insert(index, c); return *this; }
+ TQCString &append(const char *c) { QByteArray::append(c); return *this; }
+ TQCString &prepend(const char *c) { QByteArray::prepend(c); return *this; }
+ TQCString &remove(uint index, uint len) { QByteArray::remove(index, len); return *this; }
+ TQCString &tqreplace(uint index, uint len, const char *c)
+ { TQByteArray::replace(index, len, c); return *this; }
+ TQCString &tqreplace(char c, const TQCString &after) { return tqreplace(c, after.constData()); }
+ TQCString &tqreplace(char c, const char *after) { QByteArray::replace(c, after); return *this; }
+ TQCString &tqreplace(const TQCString &b, const TQCString &a)
+ { return tqreplace(b.constData(), a.constData()); }
+ TQCString &tqreplace(const char *b, const char *a) { QByteArray::replace(b, a); return *this; }
+ TQCString &tqreplace(char b, char a) { QByteArray::replace(b, a); return *this; }
+
+ short toShort(bool *ok=0) const;
+ ushort toUShort(bool *ok=0) const;
+ int toInt(bool *ok=0) const;
+ uint toUInt(bool *ok=0) const;
+ long toLong(bool *ok=0) const;
+ ulong toULong(bool *ok=0) const;
+ float toFloat(bool *ok=0) const;
+ double toDouble(bool *ok=0) const;
+
+ TQCString &setStr(const char *s) { *this = s; return *this; }
+ TQCString &setNum(short);
+ TQCString &setNum(ushort);
+ TQCString &setNum(int);
+ TQCString &setNum(uint);
+ TQCString &setNum(long);
+ TQCString &setNum(ulong);
+ TQCString &setNum(float, char f='g', int prec=6);
+ TQCString &setNum(double, char f='g', int prec=6);
+
+ bool setExpand(uint index, char c);
+
+ int tqcontains( char c, bool cs=TRUE ) const;
+ int tqcontains( const char *str, bool cs=TRUE ) const;
+#ifndef TQT_NO_REGEXP
+ int tqcontains( const QRegExp & ) const;
+#endif
+
+ int tqfind( char c, int index=0, bool cs=TRUE ) const;
+ int tqfind( const char *str, int index=0, bool cs=TRUE ) const;
+#ifndef TQT_NO_REGEXP
+ int tqfind( const QRegExp &re, int index=0 ) const;
+#endif
+
+#ifndef TQT_NO_REGEXP
+ TQCString &tqreplace( const QRegExp &, const char * );
+#endif
+
+// inline const char * tqstringFromPos( int index ) { const char & ref = (*this)[index]; return &ref; }
+ inline const char * tqstringFromPos( int index ) { return constData() + index; }
+
+ operator const char *() const;
+
+ TQCString &operator+=( const char *str );
+ TQCString &operator+=( char c );
+ TQCString &operator+=( const QString qs );
+ TQCString &operator+=( const QByteArray qba );
+ TQCString &operator+=( const TQCString tqcs );
+
+private:
+ int tqfind( const char *str, int index, bool cs, uint l ) const;
+};
+
+inline TQCString::operator const char *() const
+{ return (const char *)data(); }
+
+/*****************************************************************************
+ TQCString stream functions
+ *****************************************************************************/
+#ifndef QT_NO_DATASTREAM
+QDataStream &operator<<(QDataStream &d, const TQCString &s);
+QDataStream &operator>>(QDataStream &d, TQCString &s);
+
+TQDataStream &operator<<(TQDataStream &d, const TQCString &s);
+TQDataStream &operator>>(TQDataStream &d, TQCString &s);
+#endif
+
+/*****************************************************************************
+ TQCString inline functions
+ *****************************************************************************/
+
+inline TQCString &TQCString::setNum(short n)
+{ return setNum(long(n)); }
+
+inline TQCString &TQCString::setNum(ushort n)
+{ return setNum(ulong(n)); }
+
+inline TQCString &TQCString::setNum(int n)
+{ return setNum(long(n)); }
+
+inline TQCString &TQCString::setNum(uint n)
+{ return setNum(ulong(n)); }
+
+inline TQCString &TQCString::setNum(float n, char f, int prec)
+{ return setNum(double(n),f,prec); }
+
+/*****************************************************************************
+ TQCString non-member operators
+ *****************************************************************************/
+
+Q_COMPAT_EXPORT inline bool operator==(const TQCString &s1, const TQCString &s2)
+{ return tqstrcmp(s1, s2) == 0; }
+
+Q_COMPAT_EXPORT inline bool operator==(const TQCString &s1, const char *s2)
+{ return tqstrcmp(s1, s2) == 0; }
+
+Q_COMPAT_EXPORT inline bool operator==(const char *s1, const TQCString &s2)
+{ return tqstrcmp(s1, s2) == 0; }
+
+Q_COMPAT_EXPORT inline bool operator!=(const TQCString &s1, const TQCString &s2)
+{ return tqstrcmp(s1, s2) != 0; }
+
+Q_COMPAT_EXPORT inline bool operator!=(const TQCString &s1, const char *s2)
+{ return tqstrcmp(s1, s2) != 0; }
+
+Q_COMPAT_EXPORT inline bool operator!=(const char *s1, const TQCString &s2)
+{ return tqstrcmp(s1, s2) != 0; }
+
+Q_COMPAT_EXPORT inline bool operator<(const TQCString &s1, const TQCString& s2)
+{ return tqstrcmp(s1, s2) < 0; }
+
+Q_COMPAT_EXPORT inline bool operator<(const TQCString &s1, const char *s2)
+{ return tqstrcmp(s1, s2) < 0; }
+
+Q_COMPAT_EXPORT inline bool operator<(const char *s1, const TQCString &s2)
+{ return tqstrcmp(s1, s2) < 0; }
+
+Q_COMPAT_EXPORT inline bool operator<=(const TQCString &s1, const TQCString &s2)
+{ return tqstrcmp(s1, s2) <= 0; }
+
+Q_COMPAT_EXPORT inline bool operator<=(const TQCString &s1, const char *s2)
+{ return tqstrcmp(s1, s2) <= 0; }
+
+Q_COMPAT_EXPORT inline bool operator<=(const char *s1, const TQCString &s2)
+{ return tqstrcmp(s1, s2) <= 0; }
+
+Q_COMPAT_EXPORT inline bool operator>(const TQCString &s1, const TQCString &s2)
+{ return tqstrcmp(s1, s2) > 0; }
+
+Q_COMPAT_EXPORT inline bool operator>(const TQCString &s1, const char *s2)
+{ return tqstrcmp(s1, s2) > 0; }
+
+Q_COMPAT_EXPORT inline bool operator>(const char *s1, const TQCString &s2)
+{ return tqstrcmp(s1, s2) > 0; }
+
+Q_COMPAT_EXPORT inline bool operator>=(const TQCString &s1, const TQCString& s2)
+{ return tqstrcmp(s1, s2) >= 0; }
+
+Q_COMPAT_EXPORT inline bool operator>=(const TQCString &s1, const char *s2)
+{ return tqstrcmp(s1, s2) >= 0; }
+
+Q_COMPAT_EXPORT inline bool operator>=(const char *s1, const TQCString &s2)
+{ return tqstrcmp(s1, s2) >= 0; }
+
+Q_COMPAT_EXPORT inline const TQCString operator+(const TQCString &s1,
+ const TQCString &s2)
+{
+ TQCString tmp(s1);
+ tmp += s2;
+ return tmp;
+}
+Q_COMPAT_EXPORT inline const TQCString operator+(const TQCString &s1,
+ const QByteArray &s2)
+{
+ QByteArray tmp(s1);
+ tmp += s2;
+ return tmp;
+}
+Q_COMPAT_EXPORT inline const TQCString operator+(const QByteArray &s1,
+ const TQCString &s2)
+{
+ QByteArray tmp(s1);
+ tmp += s2;
+ return tmp;
+}
+
+Q_COMPAT_EXPORT inline const TQCString operator+(const TQCString &s1, const char *s2)
+{
+ TQCString tmp(s1);
+ tmp += s2;
+ return tmp;
+}
+
+Q_COMPAT_EXPORT inline const TQCString operator+(const char *s1, const TQCString &s2)
+{
+ TQCString tmp(s1);
+ tmp += s2;
+ return tmp;
+}
+
+Q_COMPAT_EXPORT inline const TQCString operator+(const TQCString &s1, char c2)
+{
+ TQCString tmp(s1);
+ tmp += c2;
+ return tmp;
+}
+
+Q_COMPAT_EXPORT inline const TQCString operator+(char c1, const TQCString &s2)
+{
+ TQCString tmp;
+ tmp += c1;
+ tmp += s2;
+ return tmp;
+}
+
+inline uint TQCString::length() const
+{
+ return tqstrlen( data() );
+}
+
+inline bool TQCString::truncate( uint pos )
+{
+ return tqresize(pos+1);
+}
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#else // USE_QT4
+
+class TQRegExp;
+
+class TQ_EXPORT TQCString : public TQByteArray // C string class
+{
+public:
+ TQCString() {} // make null string
+ TQCString( int size ); // allocate size incl. \0
+ TQCString( const TQCString &s ) : TQByteArray( s ) {}
+ TQCString( const QByteArray ba ) : TQByteArray( ba ) {}
+ TQCString( const char *str ); // deep copy
+ TQCString( const char *str, uint maxlen ); // deep copy, max length
+ ~TQCString();
+
+ TQCString &operator=( const TQCString &s );// shallow copy
+ TQCString &operator=( const char *str ); // deep copy
+ TQCString &operator=(const QByteArray &ba);
+
+ bool isNull() const;
+ bool isEmpty() const;
+ uint length() const;
+ bool resize( uint newlen ) { return tqresize(newlen); }
+ bool tqresize( uint newlen );
+ bool truncate( uint pos );
+ bool fill( char c, int len = -1 );
+
+ TQCString copy() const;
+
+ TQCString &sprintf( const char *format, ... );
+
+ int tqfind( char c, int index=0, bool cs=TRUE ) const;
+ int tqfind( const char *str, int index=0, bool cs=TRUE ) const;
+#ifndef TQT_NO_REGEXP
+ int tqfind( const TQRegExp &, int index=0 ) const;
+#endif
+ int tqfindRev( char c, int index=-1, bool cs=TRUE) const;
+ int tqfindRev( const char *str, int index=-1, bool cs=TRUE) const;
+#ifndef TQT_NO_REGEXP_CAPTURE
+ int tqfindRev( const TQRegExp &, int index=-1 ) const;
+#endif
+ int tqcontains( char c, bool cs=TRUE ) const;
+ int tqcontains( const char *str, bool cs=TRUE ) const;
+#ifndef TQT_NO_REGEXP
+ int tqcontains( const TQRegExp & ) const;
+#endif
+ TQCString left( uint len ) const;
+ TQCString right( uint len ) const;
+ TQCString mid( uint index, uint len=0xffffffff) const;
+
+ TQCString leftJustify( uint width, char fill=' ', bool trunc=FALSE)const;
+ TQCString rightJustify( uint width, char fill=' ',bool trunc=FALSE)const;
+
+ TQCString lower() const;
+ TQCString upper() const;
+
+ TQCString stripWhiteSpace() const;
+ TQCString simplifyWhiteSpace() const;
+
+ TQCString &insert( uint index, const char * );
+ TQCString &insert( uint index, char );
+ TQCString &append( const char * );
+ TQCString &prepend( const char * );
+ TQCString &remove( uint index, uint len );
+ TQCString &tqreplace( uint index, uint len, const char * );
+#ifndef TQT_NO_REGEXP
+ TQCString &tqreplace( const TQRegExp &, const char * );
+#endif
+ TQCString &tqreplace( char c, const char *after );
+ TQCString &tqreplace( const char *, const char * );
+ TQCString &tqreplace( char, char );
+
+ short toShort( bool *ok=0 ) const;
+ ushort toUShort( bool *ok=0 ) const;
+ int toInt( bool *ok=0 ) const;
+ uint toUInt( bool *ok=0 ) const;
+ long toLong( bool *ok=0 ) const;
+ ulong toULong( bool *ok=0 ) const;
+ float toFloat( bool *ok=0 ) const;
+ double toDouble( bool *ok=0 ) const;
+
+ TQCString &setStr( const char *s );
+ TQCString &setNum( short );
+ TQCString &setNum( ushort );
+ TQCString &setNum( int );
+ TQCString &setNum( uint );
+ TQCString &setNum( long );
+ TQCString &setNum( ulong );
+ TQCString &setNum( float, char f='g', int prec=6 );
+ TQCString &setNum( double, char f='g', int prec=6 );
+
+ inline const char * tqstringFromPos( int index ) { return constData() + index; }
+
+ bool setExpand( uint index, char c );
+
+ operator const char *() const;
+ TQCString &operator+=( const char *str );
+ TQCString &operator+=( char c );
+ TQCString &operator+=( const QString qs );
+ TQCString &operator+=( const QByteArray qba );
+ TQCString &operator+=( const TQCString tqcs );
+private:
+ int tqfind( const char *str, int index, bool cs, uint l ) const;
+};
+
+/*****************************************************************************
+ TQCString stream functions
+ *****************************************************************************/
+#ifndef TQT_NO_DATASTREAM
+TQ_EXPORT TQDataStream &operator<<( TQDataStream &, const TQCString & );
+TQ_EXPORT TQDataStream &operator>>( TQDataStream &, TQCString & );
+#endif
+
+/*****************************************************************************
+ TQCString inline functions
+ *****************************************************************************/
+
+inline TQCString &TQCString::operator=( const TQCString &s )
+{ return (TQCString&)assign( s ); }
+
+inline TQCString &TQCString::operator=( const char *str )
+{ return (TQCString&)duplicate( str, tqstrlen(str)+1 ); }
+
+inline bool TQCString::isNull() const
+{ return data() == 0; }
+
+inline bool TQCString::isEmpty() const
+{ return data() == 0 || *data() == '\0'; }
+
+inline uint TQCString::length() const
+{ return tqstrlen( data() ); }
+
+inline bool TQCString::truncate( uint pos )
+{ return resize(pos+1); }
+
+inline TQCString TQCString::copy() const
+{ return TQCString( data() ); }
+
+inline TQCString &TQCString::prepend( const char *s )
+{ return insert(0,s); }
+
+inline TQCString &TQCString::append( const char *s )
+{ return operator+=(s); }
+
+inline TQCString &TQCString::setNum( short n )
+{ return setNum((long)n); }
+
+inline TQCString &TQCString::setNum( ushort n )
+{ return setNum((ulong)n); }
+
+inline TQCString &TQCString::setNum( int n )
+{ return setNum((long)n); }
+
+inline TQCString &TQCString::setNum( uint n )
+{ return setNum((ulong)n); }
+
+inline TQCString &TQCString::setNum( float n, char f, int prec )
+{ return setNum((double)n,f,prec); }
+
+inline TQCString::operator const char *() const
+{ return (const char *)data(); }
+
+
+/*****************************************************************************
+ TQCString non-member operators
+ *****************************************************************************/
+
+TQ_EXPORT inline bool operator==( const TQCString &s1, const TQCString &s2 )
+{ return tqstrcmp( s1.data(), s2.data() ) == 0; }
+
+TQ_EXPORT inline bool operator==( const TQCString &s1, const char *s2 )
+{ return tqstrcmp( s1.data(), s2 ) == 0; }
+
+TQ_EXPORT inline bool operator==( const char *s1, const TQCString &s2 )
+{ return tqstrcmp( s1, s2.data() ) == 0; }
+
+TQ_EXPORT inline bool operator!=( const TQCString &s1, const TQCString &s2 )
+{ return tqstrcmp( s1.data(), s2.data() ) != 0; }
+
+TQ_EXPORT inline bool operator!=( const TQCString &s1, const char *s2 )
+{ return tqstrcmp( s1.data(), s2 ) != 0; }
+
+TQ_EXPORT inline bool operator!=( const char *s1, const TQCString &s2 )
+{ return tqstrcmp( s1, s2.data() ) != 0; }
+
+TQ_EXPORT inline bool operator<( const TQCString &s1, const TQCString& s2 )
+{ return tqstrcmp( s1.data(), s2.data() ) < 0; }
+
+TQ_EXPORT inline bool operator<( const TQCString &s1, const char *s2 )
+{ return tqstrcmp( s1.data(), s2 ) < 0; }
+
+TQ_EXPORT inline bool operator<( const char *s1, const TQCString &s2 )
+{ return tqstrcmp( s1, s2.data() ) < 0; }
+
+TQ_EXPORT inline bool operator<=( const TQCString &s1, const TQCString &s2 )
+{ return tqstrcmp( s1.data(), s2.data() ) <= 0; }
+
+TQ_EXPORT inline bool operator<=( const TQCString &s1, const char *s2 )
+{ return tqstrcmp( s1.data(), s2 ) <= 0; }
+
+TQ_EXPORT inline bool operator<=( const char *s1, const TQCString &s2 )
+{ return tqstrcmp( s1, s2.data() ) <= 0; }
+
+TQ_EXPORT inline bool operator>( const TQCString &s1, const TQCString &s2 )
+{ return tqstrcmp( s1.data(), s2.data() ) > 0; }
+
+TQ_EXPORT inline bool operator>( const TQCString &s1, const char *s2 )
+{ return tqstrcmp( s1.data(), s2 ) > 0; }
+
+TQ_EXPORT inline bool operator>( const char *s1, const TQCString &s2 )
+{ return tqstrcmp( s1, s2.data() ) > 0; }
+
+TQ_EXPORT inline bool operator>=( const TQCString &s1, const TQCString& s2 )
+{ return tqstrcmp( s1.data(), s2.data() ) >= 0; }
+
+TQ_EXPORT inline bool operator>=( const TQCString &s1, const char *s2 )
+{ return tqstrcmp( s1.data(), s2 ) >= 0; }
+
+TQ_EXPORT inline bool operator>=( const char *s1, const TQCString &s2 )
+{ return tqstrcmp( s1, s2.data() ) >= 0; }
+
+TQ_EXPORT inline const TQCString operator+( const TQCString &s1,
+ const TQCString &s2 )
+{
+ TQCString tmp( s1.data() );
+ tmp += static_cast<const char *>(s2);
+ return tmp;
+}
+
+TQ_EXPORT inline const TQCString operator+( const TQCString &s1, const char *s2 )
+{
+ TQCString tmp( s1.data() );
+ tmp += s2;
+ return tmp;
+}
+
+TQ_EXPORT inline const TQCString operator+( const char *s1, const TQCString &s2 )
+{
+ TQCString tmp( s1 );
+ tmp += static_cast<const char *>(s2);
+ return tmp;
+}
+
+TQ_EXPORT inline const TQCString operator+( const TQCString &s1, char c2 )
+{
+ TQCString tmp( s1.data() );
+ tmp += c2;
+ return tmp;
+}
+
+TQ_EXPORT inline const TQCString operator+( char c1, const TQCString &s2 )
+{
+ TQCString tmp;
+ tmp += c1;
+ tmp += static_cast<const char *>(s2);
+ return tmp;
+}
+#include "tqwinexport.h"
+
+#endif // USE_QT4
+
+#endif // TQCSTRING_H