summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDimitri van Heesch <doxygen@gmail.com>2019-09-21 14:52:17 (GMT)
committerDimitri van Heesch <doxygen@gmail.com>2019-09-21 14:57:24 (GMT)
commit4a9541d1605333e70b5ab9193d65cb300d8ef18e (patch)
tree2281e5242581485a4b3d61a8f0b3079f5dd30758
parentc35960af3b0b867cbcd31141e94fe1573ad2bcc0 (diff)
downloadDoxygen-4a9541d1605333e70b5ab9193d65cb300d8ef18e.zip
Doxygen-4a9541d1605333e70b5ab9193d65cb300d8ef18e.tar.gz
Doxygen-4a9541d1605333e70b5ab9193d65cb300d8ef18e.tar.bz2
Reduce the use of QString in favor of the more efficient QCString
-rw-r--r--qtools/qcache.h47
-rw-r--r--qtools/qcstring.cpp241
-rw-r--r--qtools/qcstring.h15
-rw-r--r--qtools/qdatetime.cpp28
-rw-r--r--qtools/qdatetime.h12
-rw-r--r--qtools/qdict.h81
-rw-r--r--qtools/qgcache.cpp34
-rw-r--r--qtools/qgcache.h10
-rw-r--r--qtools/qgdict.cpp93
-rw-r--r--qtools/qgdict.h26
-rw-r--r--src/cite.cpp2
-rw-r--r--src/classdef.cpp2
-rw-r--r--src/cmdmapper.cpp4
-rw-r--r--src/cmdmapper.h2
-rw-r--r--src/code.l5
-rw-r--r--src/commentscan.l4
-rw-r--r--src/configimpl.l9
-rw-r--r--src/docparser.cpp14
-rw-r--r--src/docparser.h1
-rw-r--r--src/dotfilepatcher.cpp4
-rw-r--r--src/dotnode.cpp34
-rw-r--r--src/dotrunner.cpp4
-rw-r--r--src/doxygen.cpp2
-rw-r--r--src/eclipsehelp.cpp2
-rw-r--r--src/fortrancode.l2
-rw-r--r--src/fortranscanner.l2
-rw-r--r--src/ftextstream.h6
-rw-r--r--src/htmldocvisitor.cpp16
-rw-r--r--src/index.cpp21
-rw-r--r--src/mandocvisitor.cpp19
-rw-r--r--src/markdown.cpp2
-rw-r--r--src/rtfgen.cpp4
-rw-r--r--src/sortdict.h4
-rw-r--r--src/tclscanner.l20
34 files changed, 388 insertions, 384 deletions
diff --git a/qtools/qcache.h b/qtools/qcache.h
index e1f13d6..39d4f7a 100644
--- a/qtools/qcache.h
+++ b/qtools/qcache.h
@@ -42,46 +42,6 @@
#include "qgcache.h"
#endif // QT_H
-#define USE_ASCII_STRING
-
-#ifndef USE_ASCII_STRING
-
-template<class type> class Q_EXPORT QCache : public QGCache
-{
-public:
- QCache( const QCache<type> &c ) : QGCache(c) {}
- QCache( int maxCost=100, int size=17, bool caseSensitive=TRUE )
- : QGCache( maxCost, size, StringKey, caseSensitive, FALSE ) {}
- ~QCache() { clear(); }
- QCache<type> &operator=( const QCache<type> &c )
- { return (QCache<type>&)QGCache::operator=(c); }
- int maxCost() const { return QGCache::maxCost(); }
- int totalCost() const { return QGCache::totalCost(); }
- void setMaxCost( int m ) { QGCache::setMaxCost(m); }
- uint count() const { return QGCache::count(); }
- uint size() const { return QGCache::size(); }
- bool isEmpty() const { return QGCache::count() == 0; }
- void clear() { QGCache::clear(); }
- bool insert( const QString &k, const type *d, int c=1, int p=0 )
- { return QGCache::insert_string(k,(Item)d,c,p);}
- bool remove( const QString &k )
- { return QGCache::remove_string(k); }
- type *take( const QString &k )
- { return (type *)QGCache::take_string(k); }
- type *find( const QString &k, bool ref=TRUE ) const
- { return (type *)QGCache::find_string(k,ref);}
- type *operator[]( const QString &k ) const
- { return (type *)QGCache::find_string(k);}
- void statistics() const { QGCache::statistics(); }
- int hits() const { return QGCache::hits(); }
- int misses() const { return QGCache::misses(); }
-private:
- void deleteItem( Item d ) { if ( del_item ) delete (type *)d; }
-};
-
-#else
-
-
template<class type> class Q_EXPORT QCache : public QGCache
{
public:
@@ -116,9 +76,6 @@ private:
};
-#endif
-
-
template<class type> class Q_EXPORT QCacheIterator : public QGCacheIterator
{
@@ -136,11 +93,7 @@ public:
type *toLast() { return (type *)QGCacheIterator::toLast(); }
operator type *() const { return (type *)QGCacheIterator::get(); }
type *current() const { return (type *)QGCacheIterator::get(); }
-#ifndef USE_ASCII_STRING
- QString currentKey() const{ return QGCacheIterator::getKeyString(); }
-#else
const char *currentKey() const{ return QGCacheIterator::getKeyAscii(); }
-#endif
type *operator()() { return (type *)QGCacheIterator::operator()();}
type *operator++() { return (type *)QGCacheIterator::operator++(); }
type *operator+=(uint j) { return (type *)QGCacheIterator::operator+=(j);}
diff --git a/qtools/qcstring.cpp b/qtools/qcstring.cpp
index 6a14d66..64417e3 100644
--- a/qtools/qcstring.cpp
+++ b/qtools/qcstring.cpp
@@ -17,6 +17,7 @@
#include "qgstring.h"
#include <qstring.h>
+#include <limits.h>
#include <stdlib.h>
#include <stdio.h>
#include <stdarg.h>
@@ -88,8 +89,9 @@ int QCString::find( const QCString &str, int index, bool cs ) const
int QCString::find( const QRegExp &rx, int index ) const
{
- QString d = QString::fromLatin1( data() );
- return d.find( rx, index );
+ if ( index < 0 )
+ index += length();
+ return rx.match( data(), index );
}
int QCString::findRev( char c, int index, bool cs) const
@@ -146,8 +148,16 @@ int QCString::findRev( const char *str, int index, bool cs) const
int QCString::findRev( const QRegExp &rx, int index ) const
{
- QString d = QString::fromLatin1( data() );
- return d.findRev( rx, index );
+ if ( index < 0 ) // neg index ==> start from end
+ index += length();
+ if ( (uint)index > length() ) // bad index
+ return -1;
+ while( index >= 0 ) {
+ if ( rx.match( data(), index ) == index )
+ return index;
+ index--;
+ }
+ return -1;
}
int QCString::contains( char c, bool cs ) const
@@ -194,8 +204,26 @@ int QCString::contains( const char *str, bool cs ) const
int QCString::contains( const QRegExp &rx ) const
{
- QString d = QString::fromLatin1( data() );
- return d.contains( rx );
+ if ( isEmpty() )
+ return rx.match( data() ) < 0 ? 0 : 1;
+ int count = 0;
+ int index = -1;
+ int len = length();
+ while ( index < len-1 ) { // count overlapping matches
+ index = rx.match( data(), index+1 );
+ if ( index < 0 )
+ break;
+ count++;
+ }
+ return count;
+}
+
+bool QCString::startsWith( const char *s ) const
+{
+ const char *p = data();
+ if (p==0 || s==0) return s==0;
+ while (*p!=0 && *p==*s) p++,s++;
+ return *s==0;
}
bool QCString::stripPrefix(const char *prefix)
@@ -417,53 +445,204 @@ QCString &QCString::replace( uint index, uint len, const char *s)
QCString &QCString::replace( const QRegExp &rx, const char *str )
{
- QString d = QString::fromLatin1( data() );
- QString r = QString::fromLatin1( str );
- d.replace( rx, r );
- operator=( d.ascii() );
+ if ( isEmpty() )
+ return *this;
+ int index = 0;
+ int slen = qstrlen(str);
+ int len;
+ while ( index < (int)length() ) {
+ index = rx.match( data(), index, &len, FALSE );
+ if ( index >= 0 ) {
+ replace( index, len, str );
+ index += slen;
+ if ( !len )
+ break; // Avoid infinite loop on 0-length matches, e.g. [a-z]*
+ }
+ else
+ break;
+ }
return *this;
}
-short QCString::toShort(bool *ok) const
+static bool ok_in_base( char c, int base )
{
- QString s(data());
- return s.toShort(ok);
+ if ( base <= 10 )
+ return c>='0' && c<='9' && (c-'0') < base;
+ else
+ return (c>='0' && c<='9') ||
+ (c >= 'a' && c < char('a'+base-10)) ||
+ (c >= 'A' && c < char('A'+base-10));
}
-ushort QCString::toUShort(bool *ok) const
+short QCString::toShort(bool *ok, int base) const
{
- QString s(data());
- return s.toUShort(ok);
+ long v = toLong( ok, base );
+ if ( ok && *ok && (v < -32768 || v > 32767) ) {
+ *ok = FALSE;
+ v = 0;
+ }
+ return (short)v;
}
-int QCString::toInt(bool *ok) const
+ushort QCString::toUShort(bool *ok,int base) const
{
- QString s(data());
- return s.toInt(ok);
+ ulong v = toULong( ok, base );
+ if ( ok && *ok && (v > 65535) ) {
+ *ok = FALSE;
+ v = 0;
+ }
+ return (ushort)v;
}
-uint QCString::toUInt(bool *ok) const
+int QCString::toInt(bool *ok, int base) const
{
- QString s(data());
- return s.toUInt(ok);
+ return (int)toLong( ok, base );
}
-long QCString::toLong(bool *ok) const
+uint QCString::toUInt(bool *ok,int base) const
{
- QString s(data());
- return s.toLong(ok);
+ return (uint)toULong( ok, base );
}
-ulong QCString::toULong(bool *ok) const
+
+long QCString::toLong(bool *ok,int base) const
{
- QString s(data());
- return s.toULong(ok);
+ const char *p = data();
+ long val=0;
+ int l = length();
+ const long max_mult = INT_MAX / base;
+ bool is_ok = FALSE;
+ int neg = 0;
+ if ( !p )
+ goto bye;
+ while ( l && isspace(*p) ) // skip leading space
+ l--,p++;
+ if ( l && *p == '-' ) {
+ l--;
+ p++;
+ neg = 1;
+ } else if ( *p == '+' ) {
+ l--;
+ p++;
+ }
+
+ // NOTE: toULong() code is similar
+ if ( !l || !ok_in_base(*p,base) )
+ goto bye;
+ while ( l && ok_in_base(*p,base) ) {
+ l--;
+ int dv;
+ if ( *p>='0' && *p<='9' ) {
+ dv = *p-'0';
+ } else {
+ if ( *p >= 'a' && *p <= 'z' )
+ dv = *p - 'a' + 10;
+ else
+ dv = *p - 'A' + 10;
+ }
+ if ( val > max_mult || (val == max_mult && dv > (INT_MAX%base)+neg) )
+ goto bye;
+ val = base*val + dv;
+ p++;
+ }
+ if ( neg )
+ val = -val;
+ while ( l && isspace(*p) ) // skip trailing space
+ l--,p++;
+ if ( !l )
+ is_ok = TRUE;
+bye:
+ if ( ok )
+ *ok = is_ok;
+ return is_ok ? val : 0;
+}
+
+ulong QCString::toULong(bool *ok,int base) const
+{
+ const char *p = data();
+ ulong val=0;
+ int l = length();
+ const ulong max_mult = 429496729; // UINT_MAX/10, rounded down
+ bool is_ok = FALSE;
+ if ( !p )
+ goto bye;
+ while ( l && isspace(*p) ) // skip leading space
+ l--,p++;
+ if ( *p == '+' )
+ l--,p++;
+
+ // NOTE: toLong() code is similar
+ if ( !l || !ok_in_base(*p,base) )
+ goto bye;
+ while ( l && ok_in_base(*p,base) ) {
+ l--;
+ uint dv;
+ if ( *p>='0' && *p<='9' ) {
+ dv = *p-'0';
+ } else {
+ if ( *p >= 'a' && *p <= 'z' )
+ dv = *p - 'a' + 10;
+ else
+ dv = *p - 'A' + 10;
+ }
+ if ( val > max_mult || (val == max_mult && dv > (UINT_MAX%base)) )
+ goto bye;
+ val = base*val + dv;
+ p++;
+ }
+
+ while ( l && isspace(*p) ) // skip trailing space
+ l--,p++;
+ if ( !l )
+ is_ok = TRUE;
+bye:
+ if ( ok )
+ *ok = is_ok;
+ return is_ok ? val : 0;
}
-uint64 QCString::toUInt64(bool *ok) const
+uint64 QCString::toUInt64(bool *ok,int base) const
{
- QString s(data());
- return s.toUInt64(ok);
+ const char *p = data();
+ uint64 val=0;
+ int l = length();
+ const uint64 max_mult = 1844674407370955161ULL; // ULLONG_MAX/10, rounded down
+ bool is_ok = FALSE;
+ if ( !p )
+ goto bye;
+ while ( l && isspace(*p) ) // skip leading space
+ l--,p++;
+ if ( *p == '+' )
+ l--,p++;
+
+ // NOTE: toULong() code is similar
+ if ( !l || !ok_in_base(*p,base) )
+ goto bye;
+ while ( l && ok_in_base(*p,base) ) {
+ l--;
+ uint dv;
+ if ( *p>='0' && *p<='9' ) {
+ dv = *p-'0';
+ } else {
+ if ( *p >= 'a' && *p <= 'z' )
+ dv = *p - 'a' + 10;
+ else
+ dv = *p - 'A' + 10;
+ }
+ if ( val > max_mult || (val == max_mult && dv > (ULLONG_MAX%base)) )
+ goto bye;
+ val = base*val + dv;
+ p++;
+ }
+
+ while ( l && isspace(*p) ) // skip trailing space
+ l--,p++;
+ if ( !l )
+ is_ok = TRUE;
+bye:
+ if ( ok )
+ *ok = is_ok;
+ return is_ok ? val : 0;
}
QCString &QCString::setNum(short n)
diff --git a/qtools/qcstring.h b/qtools/qcstring.h
index abf30b3..f484207 100644
--- a/qtools/qcstring.h
+++ b/qtools/qcstring.h
@@ -282,19 +282,20 @@ public:
QCString &remove( uint index, uint len );
QCString &replace( uint index, uint len, const char *s);
QCString &replace( const QRegExp &rx, const char *str );
- 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;
- uint64 toUInt64( bool *ok=0 ) const;
+ short toShort( bool *ok=0, int base=10 ) const;
+ ushort toUShort( bool *ok=0, int base=10 ) const;
+ int toInt( bool *ok=0, int base=10 ) const;
+ uint toUInt( bool *ok=0, int base=10 ) const;
+ long toLong( bool *ok=0, int base=10 ) const;
+ ulong toULong( bool *ok=0, int base=10 ) const;
+ uint64 toUInt64( bool *ok=0, int base=10 ) const;
QCString &setNum(short n);
QCString &setNum(ushort n);
QCString &setNum(int n);
QCString &setNum(uint n);
QCString &setNum(long n);
QCString &setNum(ulong n);
+ bool startsWith( const char *s ) const;
/** Converts the string to a plain C string */
operator const char *() const
diff --git a/qtools/qdatetime.cpp b/qtools/qdatetime.cpp
index 88569f8..8f1cab2 100644
--- a/qtools/qdatetime.cpp
+++ b/qtools/qdatetime.cpp
@@ -279,7 +279,7 @@ int QDate::daysInYear() const
\sa toString(), dayName()
*/
-QString QDate::monthName( int month ) const
+QCString QDate::monthName( int month ) const
{
#if defined(CHECK_RANGE)
if ( month < 1 || month > 12 ) {
@@ -287,8 +287,7 @@ QString QDate::monthName( int month ) const
month = 1;
}
#endif
- // ### Remove the fromLatin1 during localization
- return QString::fromLatin1(monthNames[month-1]);
+ return monthNames[month-1];
}
/*!
@@ -299,7 +298,7 @@ QString QDate::monthName( int month ) const
\sa toString(), monthName()
*/
-QString QDate::dayName( int weekday ) const
+QCString QDate::dayName( int weekday ) const
{
#if defined(CHECK_RANGE)
if ( weekday < 1 || weekday > 7 ) {
@@ -307,8 +306,7 @@ QString QDate::dayName( int weekday ) const
weekday = 1;
}
#endif
- // ### Remove the fromLatin1 during localization
- return QString::fromLatin1(weekdayNames[weekday-1]);
+ return weekdayNames[weekday-1];
}
@@ -321,14 +319,14 @@ QString QDate::dayName( int weekday ) const
\sa dayName(), monthName()
*/
-QString QDate::toString() const
+QCString QDate::toString() const
{
int y, m, d;
jul2greg( jd, y, m, d );
- QString buf = dayName(dayOfWeek());
+ QCString buf = dayName(dayOfWeek());
buf += ' ';
buf += monthName(m);
- QString t;
+ QCString t;
t.sprintf( " %d %d", d, y);
buf += t;
return buf;
@@ -684,9 +682,9 @@ int QTime::msec() const
before midnight would be "23:59:59".
*/
-QString QTime::toString() const
+QCString QTime::toString() const
{
- QString buf;
+ QCString buf;
buf.sprintf( "%.2d:%.2d:%.2d", hour(), minute(), second() );
return buf;
}
@@ -1190,17 +1188,17 @@ void QDateTime::setTimeUtc_t( uint secsSince1Jan1970UTC )
*/
-QString QDateTime::toString() const
+QCString QDateTime::toString() const
{
- QString buf = d.dayName(d.dayOfWeek());
+ QCString buf = d.dayName(d.dayOfWeek());
buf += ' ';
buf += d.monthName(d.month());
buf += ' ';
- buf += QString().setNum(d.day());
+ buf += QCString().setNum(d.day());
buf += ' ';
buf += t.toString();
buf += ' ';
- buf += QString().setNum(d.year());
+ buf += QCString().setNum(d.year());
return buf;
}
diff --git a/qtools/qdatetime.h b/qtools/qdatetime.h
index 010ae73..63007f3 100644
--- a/qtools/qdatetime.h
+++ b/qtools/qdatetime.h
@@ -39,7 +39,7 @@
#define QDATETIME_H
#ifndef QT_H
-#include "qstring.h"
+#include "qcstring.h"
#endif // QT_H
@@ -65,10 +65,10 @@ public:
int daysInMonth() const; // 28..31
int daysInYear() const; // 365 or 366
- virtual QString monthName( int month ) const;
- virtual QString dayName( int weekday ) const;
+ virtual QCString monthName( int month ) const;
+ virtual QCString dayName( int weekday ) const;
- QString toString() const;
+ QCString toString() const;
bool setYMD( int y, int m, int d );
@@ -119,7 +119,7 @@ public:
int second() const; // 0..59
int msec() const; // 0..999
- QString toString() const;
+ QCString toString() const;
bool setHMS( int h, int m, int s, int ms=0 );
@@ -175,7 +175,7 @@ public:
void setTime_t( uint secsSince1Jan1970UTC );
void setTimeUtc_t( uint secsSince1Jan1970UTC );
- QString toString() const;
+ QCString toString() const;
QDateTime addDays( int days ) const;
QDateTime addSecs( int secs ) const;
diff --git a/qtools/qdict.h b/qtools/qdict.h
index efc5bd0..12db365 100644
--- a/qtools/qdict.h
+++ b/qtools/qdict.h
@@ -42,89 +42,8 @@
#include "qgdict.h"
#endif // QT_H
-#define USE_ASCII_STRING
-
-#ifdef USE_ASCII_STRING
-
#define QAsciiDict QDict
#define QAsciiDictIterator QDictIterator
#include "qasciidict.h"
-#else
-
-template<class type> class Q_EXPORT QDict : private QGDict
-{
-public:
- QDict(int size=17, bool caseSensitive=TRUE)
- : QGDict(size,StringKey,caseSensitive,FALSE) {}
- QDict( const QDict<type> &d ) : QGDict(d) {}
- ~QDict() { clear(); }
- QDict<type> &operator=(const QDict<type> &d)
- { return (QDict<type>&)QGDict::operator=(d); }
-
- // capacity
- uint count() const { return QGDict::count(); }
- uint size() const { return QGDict::size(); }
- bool isEmpty() const { return QGDict::count() == 0; }
-
- // modifiers
- void insert( const QString &k, const type *d )
- { QGDict::look_string(k,(Item)d,1); }
- void replace( const QString &k, const type *d )
- { QGDict::look_string(k,(Item)d,2); }
- bool remove( const QString &k ) { return QGDict::remove_string(k); }
- type *take( const QString &k ) { return (type *)QGDict::take_string(k); }
- void clear() { QGDict::clear(); }
- void resize( uint n ) { QGDict::resize(n); }
-
- // search
- type *find( const QString &k ) const
- { return (type *)((QGDict*)this)->QGDict::look_string(k,0,0); }
- type *operator[]( const QString &k ) const
- { return (type *)((QGDict*)this)->QGDict::look_string(k,0,0); }
-
- // operations
- void statistics() const { QGDict::statistics(); }
-private:
- void deleteItem( Item d );
-
- // new to be reimplemented methods
- virtual int compareValues(const type *t1,const type *t2) const
- { return const_cast<QDict<type>*>(this)->QGDict::compareItems((QCollection::Item)t1,(QCollection::Item)t2); }
-
- // reimplemented methods
- virtual int compareItems(QCollection::Item i1,QCollection::Item i2)
- { return compareValues((const type*)i1,(const type*)i2); }
-};
-
-#if defined(Q_DELETING_VOID_UNDEFINED)
-template<> inline void QDict<void>::deleteItem( Item )
-{
-}
-#endif
-
-template<class type> inline void QDict<type>::deleteItem( QCollection::Item d )
-{
- if ( del_item ) delete (type *)d;
-}
-
-
-template<class type> class Q_EXPORT QDictIterator : public QGDictIterator
-{
-public:
- QDictIterator(const QDict<type> &d) :QGDictIterator((QGDict &)d) {}
- ~QDictIterator() {}
- uint count() const { return dict->count(); }
- bool isEmpty() const { return dict->count() == 0; }
- type *toFirst() { return (type *)QGDictIterator::toFirst(); }
- operator type *() const { return (type *)QGDictIterator::get(); }
- type *current() const { return (type *)QGDictIterator::get(); }
- QString currentKey() const{ return QGDictIterator::getKeyString(); }
- type *operator()() { return (type *)QGDictIterator::operator()(); }
- type *operator++() { return (type *)QGDictIterator::operator++(); }
- type *operator+=(uint j) { return (type *)QGDictIterator::operator+=(j);}
-};
-
-#endif // USE_ASCII_STRING
-
#endif // QDICT_H
diff --git a/qtools/qgcache.cpp b/qtools/qgcache.cpp
index 03150fe..230823c 100644
--- a/qtools/qgcache.cpp
+++ b/qtools/qgcache.cpp
@@ -190,21 +190,21 @@ public:
QCDict( uint size, uint kt, bool caseSensitive, bool copyKeys )
: QGDict( size, (KeyType)kt, caseSensitive, copyKeys ) {}
- QCacheItem *find_string(const QString &key) const
+ QCacheItem *find_string(const QCString &key) const
{ return (QCacheItem*)((QCDict*)this)->look_string(key, 0, 0); }
QCacheItem *find_ascii(const char *key) const
{ return (QCacheItem*)((QCDict*)this)->look_ascii(key, 0, 0); }
QCacheItem *find_int(long key) const
{ return (QCacheItem*)((QCDict*)this)->look_int(key, 0, 0); }
- QCacheItem *take_string(const QString &key)
+ QCacheItem *take_string(const QCString &key)
{ return (QCacheItem*)QGDict::take_string(key); }
QCacheItem *take_ascii(const char *key)
{ return (QCacheItem*)QGDict::take_ascii(key); }
QCacheItem *take_int(long key)
{ return (QCacheItem*)QGDict::take_int(key); }
- bool insert_string( const QString &key, const QCacheItem *ci )
+ bool insert_string( const QCString &key, const QCacheItem *ci )
{ return QGDict::look_string(key,(Item)ci,1)!=0;}
bool insert_ascii( const char *key, const QCacheItem *ci )
{ return QGDict::look_ascii(key,(Item)ci,1)!=0;}
@@ -212,7 +212,7 @@ public:
{ return QGDict::look_int(key,(Item)ci,1)!=0;}
bool remove_string( QCacheItem *item )
- { return QGDict::remove_string(*((QString*)(item->key)),item); }
+ { return QGDict::remove_string(*((QCString*)(item->key)),item); }
bool remove_ascii( QCacheItem *item )
{ return QGDict::remove_ascii((const char *)item->key,item); }
bool remove_int( QCacheItem *item )
@@ -345,7 +345,7 @@ void QGCache::setMaxCost( int maxCost )
invalid.
*/
-bool QGCache::insert_string( const QString &key, QCollection::Item data,
+bool QGCache::insert_string( const QCString &key, QCollection::Item data,
int cost, int priority)
{
if ( tCost + cost > mCost ) {
@@ -365,7 +365,7 @@ bool QGCache::insert_string( const QString &key, QCollection::Item data,
priority = -32768;
else if ( priority > 32767 )
priority = 32677;
- QCacheItem *ci = new QCacheItem( new QString(key), newItem(data),
+ QCacheItem *ci = new QCacheItem( new QCString(key), newItem(data),
cost, (short)priority );
CHECK_PTR( ci );
lruList->insert( 0, ci );
@@ -417,7 +417,7 @@ bool QGCache::insert_other( const char *key, QCollection::Item data,
Removes an item from the cache.
*/
-bool QGCache::remove_string( const QString &key )
+bool QGCache::remove_string( const QCString &key )
{
Item d = take_string( key );
if ( d )
@@ -442,7 +442,7 @@ bool QGCache::remove_other( const char *key )
Takes an item out of the cache (no delete).
*/
-QCollection::Item QGCache::take_string( const QString &key )
+QCollection::Item QGCache::take_string( const QCString &key )
{
QCacheItem *ci = dict->take_string( key ); // take from dict
Item d;
@@ -450,7 +450,7 @@ QCollection::Item QGCache::take_string( const QString &key )
d = ci->data;
tCost -= ci->cost;
lruList->take( ci ); // take from list
- delete (QString*)ci->key;
+ delete (QCString*)ci->key;
delete ci;
} else {
d = 0;
@@ -497,7 +497,7 @@ void QGCache::clear()
switch ( keytype ) {
case StringKey:
dict->remove_string( ci );
- delete (QString*)ci->key;
+ delete (QCString*)ci->key;
break;
case AsciiKey:
dict->remove_ascii( ci );
@@ -522,7 +522,7 @@ void QGCache::clear()
Finds an item in the cache.
*/
-QCollection::Item QGCache::find_string( const QString &key, bool ref ) const
+QCollection::Item QGCache::find_string( const QCString &key, bool ref ) const
{
QCacheItem *ci = dict->find_string( key );
#if defined(DEBUG)
@@ -599,7 +599,7 @@ bool QGCache::makeRoomFor( int cost, int priority )
switch ( keytype ) {
case StringKey:
dict->remove_string( ci );
- delete (QString*)ci->key;
+ delete (QCString*)ci->key;
break;
case AsciiKey:
dict->remove_ascii( ci );
@@ -628,9 +628,9 @@ bool QGCache::makeRoomFor( int cost, int priority )
void QGCache::statistics() const
{
#if defined(DEBUG)
- QString line;
+ QCString line;
line.fill( '*', 80 );
- qDebug( "%s",line.ascii() );
+ qDebug( "%s",line.data() );
qDebug( "CACHE STATISTICS:" );
qDebug( "cache contains %d item%s, with a total cost of %d",
count(), count() != 1 ? "s" : "", tCost );
@@ -651,7 +651,7 @@ void QGCache::statistics() const
lruList->dumps != 1 ? "have" : "has", lruList->dumpCosts );
qDebug( "Statistics from internal dictionary class:" );
dict->statistics();
- qDebug( "%s",line.ascii() );
+ qDebug( "%s",line.data() );
#endif
}
@@ -794,10 +794,10 @@ QCollection::Item QGCacheIterator::get() const
Returns the key of the current item.
*/
-QString QGCacheIterator::getKeyString() const
+QCString QGCacheIterator::getKeyString() const
{
QCacheItem *item = it->current();
- return item ? *((QString*)item->key) : QString::null;
+ return item ? *((QCString*)item->key) : QCString();
}
/*!
diff --git a/qtools/qgcache.h b/qtools/qgcache.h
index a71f6d3..5d8a243 100644
--- a/qtools/qgcache.h
+++ b/qtools/qgcache.h
@@ -70,16 +70,16 @@ protected:
void setMaxCost( int maxCost );
void clear();
- bool insert_string( const QString &key, QCollection::Item,
+ bool insert_string( const QCString &key, QCollection::Item,
int cost, int priority );
bool insert_other( const char *key, QCollection::Item,
int cost, int priority );
- bool remove_string( const QString &key );
+ bool remove_string( const QCString &key );
bool remove_other( const char *key );
- QCollection::Item take_string( const QString &key );
+ QCollection::Item take_string( const QCString &key );
QCollection::Item take_other( const char *key );
- QCollection::Item find_string( const QString &key, bool ref=TRUE ) const;
+ QCollection::Item find_string( const QCString &key, bool ref=TRUE ) const;
QCollection::Item find_other( const char *key, bool ref=TRUE ) const;
void statistics() const;
@@ -112,7 +112,7 @@ protected:
QCollection::Item toLast();
QCollection::Item get() const;
- QString getKeyString() const;
+ QCString getKeyString() const;
const char *getKeyAscii() const;
intptr_t getKeyInt() const;
diff --git a/qtools/qgdict.cpp b/qtools/qgdict.cpp
index ab3fea9..a3db8de 100644
--- a/qtools/qgdict.cpp
+++ b/qtools/qgdict.cpp
@@ -83,36 +83,9 @@ public:
Returns the hash key for \e key, when key is a string.
*/
-int QGDict::hashKeyString( const QString &key )
+int QGDict::hashKeyString( const QCString &key )
{
-#if defined(CHECK_NULL)
- if ( key.isNull() )
- qWarning( "QGDict::hashStringKey: Invalid null key" );
-#endif
- int i;
- uint h=0;
- uint g;
- int len = key.length();
- const QChar *p = key.unicode();
- if ( cases ) { // case sensitive
- for ( i=0; i<len; i++ ) {
- h = (h<<4) + p[i].cell();
- if ( (g = h & 0xf0000000) )
- h ^= g >> 24;
- h &= ~g;
- }
- } else { // case insensitive
- for ( i=0; i<len; i++ ) {
- h = (h<<4) + p[i].lower().cell();
- if ( (g = h & 0xf0000000) )
- h ^= g >> 24;
- h &= ~g;
- }
- }
- int index = h;
- if ( index < 0 ) // adjust index to table size
- index = -index;
- return index;
+ return hashKeyAscii(key.data());
}
/*!
@@ -337,7 +310,7 @@ QGDict &QGDict::operator=( const QGDict &dict )
*/
-/*! \fn QString QGDictIterator::getKeyString() const
+/*! \fn QCString QGDictIterator::getKeyString() const
\internal
*/
@@ -379,21 +352,21 @@ QGDict &QGDict::operator=( const QGDict &dict )
The do-it-all function; op is one of op_find, op_insert, op_replace
*/
-QCollection::Item QGDict::look_string( const QString &key, QCollection::Item d, int op )
+QCollection::Item QGDict::look_string( const QCString &key, QCollection::Item d, int op )
{
- QStringBucket *n;
+ QCStringBucket *n;
int index = hashKeyString(key) % vlen;
if ( op == op_find ) { // find
if ( cases ) {
- for ( n=(QStringBucket*)vec[index]; n;
- n=(QStringBucket*)n->getNext() ) {
+ for ( n=(QCStringBucket*)vec[index]; n;
+ n=(QCStringBucket*)n->getNext() ) {
if ( key == n->getKey() )
return n->getData(); // item found
}
} else {
- QString k = key.lower();
- for ( n=(QStringBucket*)vec[index]; n;
- n=(QStringBucket*)n->getNext() ) {
+ QCString k = key.lower();
+ for ( n=(QCStringBucket*)vec[index]; n;
+ n=(QCStringBucket*)n->getNext() ) {
if ( k == n->getKey().lower() )
return n->getData(); // item found
}
@@ -405,7 +378,7 @@ QCollection::Item QGDict::look_string( const QString &key, QCollection::Item d,
remove_string( key );
}
// op_insert or op_replace
- n = new QStringBucket(key,newItem(d),vec[index]);
+ n = new QCStringBucket(key,newItem(d),vec[index]);
CHECK_PTR( n );
#if defined(CHECK_NULL)
if ( n->getData() == 0 )
@@ -542,10 +515,10 @@ void QGDict::resize( uint newsize )
switch ( keytype ) {
case StringKey:
{
- QStringBucket *n=(QStringBucket *)old_vec[index];
+ QCStringBucket *n=(QCStringBucket *)old_vec[index];
while ( n ) {
look_string( n->getKey(), n->getData(), op_insert );
- QStringBucket *t=(QStringBucket *)n->getNext();
+ QCStringBucket *t=(QCStringBucket *)n->getNext();
delete n;
n = t;
}
@@ -624,16 +597,16 @@ void QGDict::unlink_common( int index, QBaseBucket *node, QBaseBucket *prev )
numItems--;
}
-QStringBucket *QGDict::unlink_string( const QString &key, QCollection::Item d )
+QCStringBucket *QGDict::unlink_string( const QCString &key, QCollection::Item d )
{
if ( numItems == 0 ) // nothing in dictionary
return 0;
- QStringBucket *n;
- QStringBucket *prev = 0;
+ QCStringBucket *n;
+ QCStringBucket *prev = 0;
int index = hashKeyString(key) % vlen;
if ( cases ) {
- for ( n=(QStringBucket*)vec[index]; n;
- n=(QStringBucket*)n->getNext() ) {
+ for ( n=(QCStringBucket*)vec[index]; n;
+ n=(QCStringBucket*)n->getNext() ) {
bool found = (key == n->getKey());
if ( found && d )
found = (n->getData() == d);
@@ -644,9 +617,9 @@ QStringBucket *QGDict::unlink_string( const QString &key, QCollection::Item d )
prev = n;
}
} else {
- QString k = key.lower();
- for ( n=(QStringBucket*)vec[index]; n;
- n=(QStringBucket*)n->getNext() ) {
+ QCString k = key.lower();
+ for ( n=(QCStringBucket*)vec[index]; n;
+ n=(QCStringBucket*)n->getNext() ) {
bool found = (k == n->getKey().lower());
if ( found && d )
found = (n->getData() == d);
@@ -729,9 +702,9 @@ QPtrBucket *QGDict::unlink_ptr( void *key, QCollection::Item d )
item when several items have the same key).
*/
-bool QGDict::remove_string( const QString &key, QCollection::Item item )
+bool QGDict::remove_string( const QCString &key, QCollection::Item item )
{
- QStringBucket *n = unlink_string( key, item );
+ QCStringBucket *n = unlink_string( key, item );
if ( n ) {
deleteItem( n->getData() );
delete n;
@@ -785,9 +758,9 @@ bool QGDict::remove_ptr( void *key, QCollection::Item item )
/*! \internal */
-QCollection::Item QGDict::take_string( const QString &key )
+QCollection::Item QGDict::take_string( const QCString &key )
{
- QStringBucket *n = unlink_string( key );
+ QCStringBucket *n = unlink_string( key );
Item d;
if ( n ) {
d = n->getData();
@@ -864,9 +837,9 @@ void QGDict::clear()
switch ( keytype ) {
case StringKey:
{
- QStringBucket *n=(QStringBucket *)vec[j];
+ QCStringBucket *n=(QCStringBucket *)vec[j];
while ( n ) {
- QStringBucket *next = (QStringBucket*)n->getNext();
+ QCStringBucket *next = (QCStringBucket*)n->getNext();
deleteItem( n->getData() );
delete n;
n = next;
@@ -930,14 +903,14 @@ void QGDict::clear()
void QGDict::statistics() const
{
#if defined(DEBUG)
- QString line;
+ QCString line;
line.fill( '-', 60 );
double real, ideal;
- qDebug( "%s",line.ascii() );
+ qDebug( "%s",line.data() );
qDebug( "DICTIONARY STATISTICS:" );
if ( count() == 0 ) {
qDebug( "Empty!" );
- qDebug( "%s", line.ascii() );
+ qDebug( "%s", line.data() );
return;
}
real = 0.0;
@@ -966,7 +939,7 @@ void QGDict::statistics() const
qDebug( "Real dist = %g", real );
qDebug( "Rand dist = %g", ideal );
qDebug( "Real/Rand = %g", real/ideal );
- qDebug( "%s",line.ascii() );
+ qDebug( "%s",line.data() );
#endif // DEBUG
}
@@ -1004,7 +977,7 @@ QDataStream &QGDict::read( QDataStream &s )
switch ( keytype ) {
case StringKey:
{
- QString k;
+ QCString k;
s >> k;
read( s, d );
look_string( k, d, op_insert );
@@ -1060,7 +1033,7 @@ QDataStream& QGDict::write( QDataStream &s ) const
while ( n ) { // write all buckets
switch ( keytype ) {
case StringKey:
- s << ((QStringBucket*)n)->getKey();
+ s << ((QCStringBucket*)n)->getKey();
break;
case AsciiKey:
s << ((QAsciiBucket*)n)->getKey();
diff --git a/qtools/qgdict.h b/qtools/qgdict.h
index a5c8aa0..cf023fd 100644
--- a/qtools/qgdict.h
+++ b/qtools/qgdict.h
@@ -40,7 +40,7 @@
#ifndef QT_H
#include "qcollection.h"
-#include "qstring.h"
+#include "qcstring.h"
#endif // QT_H
class QGDictIterator;
@@ -60,14 +60,14 @@ protected:
QBaseBucket *next;
};
-class QStringBucket : public QBaseBucket
+class QCStringBucket : public QBaseBucket
{
public:
- QStringBucket( const QString &k, QCollection::Item d, QBaseBucket *n )
+ QCStringBucket( const QCString &k, QCollection::Item d, QBaseBucket *n )
: QBaseBucket(d,n), key(k) {}
- const QString &getKey() const { return key; }
+ const QCString &getKey() const { return key; }
private:
- QString key;
+ QCString key;
};
class QAsciiBucket : public QBaseBucket
@@ -106,7 +106,7 @@ class Q_EXPORT QGDict : public QCollection // generic dictionary class
public:
uint count() const { return numItems; }
uint size() const { return vlen; }
- QCollection::Item look_string( const QString& key, QCollection::Item,
+ QCollection::Item look_string( const QCString& key, QCollection::Item,
int );
QCollection::Item look_ascii( const char *key, QCollection::Item, int );
QCollection::Item look_int( long key, QCollection::Item, int );
@@ -124,11 +124,11 @@ protected:
QGDict &operator=( const QGDict & );
- bool remove_string( const QString &key, QCollection::Item item=0 );
+ bool remove_string( const QCString &key, QCollection::Item item=0 );
bool remove_ascii( const char *key, QCollection::Item item=0 );
bool remove_int( long key, QCollection::Item item=0 );
bool remove_ptr( void *key, QCollection::Item item=0 );
- QCollection::Item take_string( const QString &key );
+ QCollection::Item take_string( const QCString &key );
QCollection::Item take_ascii( const char *key );
QCollection::Item take_int( long key );
QCollection::Item take_ptr( void *key );
@@ -136,7 +136,7 @@ protected:
void clear();
void resize( uint );
- int hashKeyString( const QString & );
+ int hashKeyString( const QCString & );
int hashKeyAscii( const char * );
void statistics() const;
@@ -154,7 +154,7 @@ private:
uint copyk : 1;
QGDItList *iterators;
void unlink_common( int, QBaseBucket *, QBaseBucket * );
- QStringBucket *unlink_string( const QString &,
+ QCStringBucket *unlink_string( const QCString &,
QCollection::Item item = 0 );
QAsciiBucket *unlink_ascii( const char *, QCollection::Item item = 0 );
QIntBucket *unlink_int( long, QCollection::Item item = 0 );
@@ -176,7 +176,7 @@ public:
QCollection::Item toFirst();
QCollection::Item get() const;
- QString getKeyString() const;
+ QCString getKeyString() const;
const char *getKeyAscii() const;
intptr_t getKeyInt() const;
void *getKeyPtr() const;
@@ -198,9 +198,9 @@ inline QCollection::Item QGDictIterator::get() const
return curNode ? curNode->getData() : 0;
}
-inline QString QGDictIterator::getKeyString() const
+inline QCString QGDictIterator::getKeyString() const
{
- return curNode ? ((QStringBucket*)curNode)->getKey() : QString::null;
+ return curNode ? ((QCStringBucket*)curNode)->getKey() : QCString();
}
inline const char *QGDictIterator::getKeyAscii() const
diff --git a/src/cite.cpp b/src/cite.cpp
index a36f62c..42f695f 100644
--- a/src/cite.cpp
+++ b/src/cite.cpp
@@ -79,7 +79,7 @@ void CiteDict::writeLatexBibliography(FTextStream &t)
{
if (i) t << ",";
i++;
- t << bibTmpFile << QString().setNum(i);
+ t << bibTmpFile << QCString().setNum(i);
}
}
bibdata = citeDataList.next();
diff --git a/src/classdef.cpp b/src/classdef.cpp
index b38518c..7548c6c 100644
--- a/src/classdef.cpp
+++ b/src/classdef.cpp
@@ -1890,7 +1890,7 @@ void ClassDefImpl::writeIncludeFilesForSlice(OutputList &ol) const
QFileInfo info(s);
if (info.exists())
{
- QString prefix = info.absFilePath();
+ QCString prefix = info.absFilePath().utf8();
if (prefix.at(prefix.length() - 1) != '/')
{
prefix += '/';
diff --git a/src/cmdmapper.cpp b/src/cmdmapper.cpp
index b4d35d4..d766fa3 100644
--- a/src/cmdmapper.cpp
+++ b/src/cmdmapper.cpp
@@ -239,14 +239,14 @@ int Mapper::map(const char *n)
return !name.isEmpty() && (result=m_map.find(name)) ? *result: 0;
}
-QString Mapper::find(const int n)
+QCString Mapper::find(const int n)
{
QDictIterator<int> mapIterator(m_map);
for (int *curVal = mapIterator.toFirst();(curVal = mapIterator.current());++mapIterator)
{
if (*curVal == n || (*curVal == (n | SIMPLESECT_BIT))) return mapIterator.currentKey();
}
- return NULL;
+ return QCString();
}
Mapper::Mapper(const CommandMap *cm,bool caseSensitive) : m_map(89), m_cs(caseSensitive)
diff --git a/src/cmdmapper.h b/src/cmdmapper.h
index d670cd4..e0a2e65 100644
--- a/src/cmdmapper.h
+++ b/src/cmdmapper.h
@@ -214,7 +214,7 @@ class Mapper
{
public:
int map(const char *n);
- QString find(const int n);
+ QCString find(const int n);
Mapper(const CommandMap *cm,bool caseSensitive);
private:
QDict<int> m_map;
diff --git a/src/code.l b/src/code.l
index 5ed8866..4998705 100644
--- a/src/code.l
+++ b/src/code.l
@@ -1327,9 +1327,8 @@ static void generateFunctionLink(CodeOutputInterface &ol,const char *funcName)
//CodeClassDef *ccd=0;
ClassDef *ccd=0;
QCString locScope=g_classScope;
- QString qq=removeRedundantWhiteSpace(funcName);
- if (g_insidePHP && qq.startsWith("self::")) qq=qq.mid(4);
- QCString locFunc(qq.data());
+ QCString locFunc=removeRedundantWhiteSpace(funcName);
+ if (g_insidePHP && locFunc.startsWith("self::")) locFunc=locFunc.mid(4);
QCString funcScope;
QCString funcWithScope=locFunc;
QCString funcWithFullScope=locFunc;
diff --git a/src/commentscan.l b/src/commentscan.l
index abf218c..7c9929c 100644
--- a/src/commentscan.l
+++ b/src/commentscan.l
@@ -1180,7 +1180,7 @@ RCSTAG "$"{ID}":"[^\n$]+"$"
addOutput(yytext);
}
<Comment>{B}*{CMD}"~"[a-z_A-Z-]* { // language switch command
- QCString langId = QString(yytext).stripWhiteSpace().data()+2;
+ QCString langId = QCString(yytext).stripWhiteSpace().data()+2;
if (!langId.isEmpty() &&
qstricmp(Config_getEnum(OUTPUT_LANGUAGE),langId)!=0)
{ // enable language specific section
@@ -1190,7 +1190,7 @@ RCSTAG "$"{ID}":"[^\n$]+"$"
<Comment>{B}*{CMD}"f{"[^}\n]+"}"("{"?) { // start of a formula with custom environment
setOutput(OutputDoc);
formulaText="\\begin";
- formulaEnv=QString(yytext).stripWhiteSpace().data()+2;
+ formulaEnv=QCString(yytext).stripWhiteSpace().data()+2;
if (formulaEnv.at(formulaEnv.length()-1)=='{')
{
// remove trailing open brace
diff --git a/src/configimpl.l b/src/configimpl.l
index 7d22859..e657745 100644
--- a/src/configimpl.l
+++ b/src/configimpl.l
@@ -1290,14 +1290,13 @@ static void cleanUpPaths(QStrList &str)
if (fi.exists() && fi.isDir())
{
int i = str.at();
- QString p = fi.absFilePath();
- if (p.at(p.length()-1)!='/')
- p.append('/');
+ QCString p = fi.absFilePath().utf8();
+ if (p[p.length()-1]!='/') p+='/';
str.remove();
if (str.at()==i) // did not remove last item
- str.insert(i,p.utf8());
+ str.insert(i,p);
else
- str.append(p.utf8());
+ str.append(p);
}
}
sfp = str.next();
diff --git a/src/docparser.cpp b/src/docparser.cpp
index 2ee3d7d..da4cfb2 100644
--- a/src/docparser.cpp
+++ b/src/docparser.cpp
@@ -6897,7 +6897,7 @@ int DocSection::parse()
}
else if (retval==RetVal_Subsubsection && m_level<=Doxygen::subpageNestingLevel+2)
{
- if ((m_level<=1+Doxygen::subpageNestingLevel) && !QString(g_token->sectionId).startsWith("autotoc_md"))
+ if ((m_level<=1+Doxygen::subpageNestingLevel) && !g_token->sectionId.startsWith("autotoc_md"))
warn_doc_error(g_fileName,doctokenizerYYlineno,"Unexpected subsubsection command found inside %s!",sectionLevelToName[m_level]);
// then parse any number of nested sections
while (retval==RetVal_Subsubsection) // more sections follow
@@ -6912,7 +6912,7 @@ int DocSection::parse()
}
else if (retval==RetVal_Paragraph && m_level<=QMIN(5,Doxygen::subpageNestingLevel+3))
{
- if ((m_level<=2+Doxygen::subpageNestingLevel) && !QString(g_token->sectionId).startsWith("autotoc_md"))
+ if ((m_level<=2+Doxygen::subpageNestingLevel) && !g_token->sectionId.startsWith("autotoc_md"))
warn_doc_error(g_fileName,doctokenizerYYlineno,"Unexpected paragraph command found inside %s!",sectionLevelToName[m_level]);
// then parse any number of nested sections
while (retval==RetVal_Paragraph) // more sections follow
@@ -7084,8 +7084,10 @@ void DocRoot::parse()
}
if (retval==RetVal_Paragraph)
{
- if (!QString(g_token->sectionId).startsWith("autotoc_md"))
+ if (!g_token->sectionId.startsWith("autotoc_md"))
+ {
warn_doc_error(g_fileName,doctokenizerYYlineno,"found paragraph command outside of subsubsection context!");
+ }
while (retval==RetVal_Paragraph)
{
if (!g_token->sectionId.isEmpty())
@@ -7113,7 +7115,7 @@ void DocRoot::parse()
}
if (retval==RetVal_Subsubsection)
{
- if (!(QString(g_token->sectionId).startsWith("autotoc_md")))
+ if (!(g_token->sectionId.startsWith("autotoc_md")))
warn_doc_error(g_fileName,doctokenizerYYlineno,"found subsubsection command outside of subsection context!");
while (retval==RetVal_Subsubsection)
{
@@ -7142,8 +7144,10 @@ void DocRoot::parse()
}
if (retval==RetVal_Subsection)
{
- if (!(QString(g_token->sectionId).startsWith("autotoc_md")))
+ if (!g_token->sectionId.startsWith("autotoc_md"))
+ {
warn_doc_error(g_fileName,doctokenizerYYlineno,"found subsection command outside of section context!");
+ }
while (retval==RetVal_Subsection)
{
if (!g_token->sectionId.isEmpty())
diff --git a/src/docparser.h b/src/docparser.h
index 84868f7..02fe135 100644
--- a/src/docparser.h
+++ b/src/docparser.h
@@ -22,6 +22,7 @@
#include <stdio.h>
#include <qlist.h>
+#include <qstring.h>
#include <qcstring.h>
#include "docvisitor.h"
diff --git a/src/dotfilepatcher.cpp b/src/dotfilepatcher.cpp
index 92a5618..efc6341 100644
--- a/src/dotfilepatcher.cpp
+++ b/src/dotfilepatcher.cpp
@@ -337,8 +337,8 @@ bool DotFilePatcher::run() const
//printf("DotFilePatcher::addSVGConversion: file=%s zoomable=%d\n",
// m_patchFile.data(),map->zoomable);
}
- QString tmpName = QString::fromUtf8(m_patchFile+".tmp");
- QString patchFile = QString::fromUtf8(m_patchFile);
+ QCString tmpName = m_patchFile+".tmp";
+ QCString patchFile = m_patchFile;
if (!QDir::current().rename(patchFile,tmpName))
{
err("Failed to rename file %s to %s!\n",m_patchFile.data(),tmpName.data());
diff --git a/src/dotnode.cpp b/src/dotnode.cpp
index 491bcb5..9eccdde 100644
--- a/src/dotnode.cpp
+++ b/src/dotnode.cpp
@@ -176,12 +176,12 @@ static void writeBoxMemberList(FTextStream &t,
QCString DotNode::convertLabel(const QCString &l)
{
- QString bBefore("\\_/<({[: =-+@%#~?$"); // break before character set
- QString bAfter(">]),:;|"); // break after character set
- QString p(l);
+ QCString bBefore("\\_/<({[: =-+@%#~?$"); // break before character set
+ QCString bAfter(">]),:;|"); // break after character set
+ QCString p(l);
if (p.isEmpty()) return QCString();
- QString result;
- QChar c,pc=0;
+ QCString result;
+ char c,pc=0;
uint idx = 0;
int len=p.length();
int charsLeft=len;
@@ -190,18 +190,18 @@ QCString DotNode::convertLabel(const QCString &l)
while (idx < p.length())
{
c = p[idx++];
- QString replacement;
+ QCString replacement;
switch(c)
{
- case '\\': replacement="\\\\"; break;
- case '\n': replacement="\\n"; break;
- case '<': replacement="\\<"; break;
- case '>': replacement="\\>"; break;
- case '|': replacement="\\|"; break;
- case '{': replacement="\\{"; break;
- case '}': replacement="\\}"; break;
- case '"': replacement="\\\""; break;
- default: replacement=c; break;
+ case '\\': replacement="\\\\"; break;
+ case '\n': replacement="\\n"; break;
+ case '<': replacement="\\<"; break;
+ case '>': replacement="\\>"; break;
+ case '|': replacement="\\|"; break;
+ case '{': replacement="\\{"; break;
+ case '}': replacement="\\}"; break;
+ case '"': replacement="\\\""; break;
+ default: replacement+=c; break;
}
// Some heuristics to insert newlines to prevent too long
// boxes and at the same time prevent ugly breaks
@@ -219,7 +219,7 @@ QCString DotNode::convertLabel(const QCString &l)
sinceLast=1;
}
else if (charsLeft>1+foldLen/4 && sinceLast>foldLen+foldLen/3 &&
- !isupper(c) && p[idx].category()==QChar::Letter_Uppercase)
+ !isupper(c) && isupper(p[idx]))
{
result+=replacement;
result+="\\l";
@@ -241,7 +241,7 @@ QCString DotNode::convertLabel(const QCString &l)
charsLeft--;
pc=c;
}
- return result.utf8();
+ return result;
}
static QCString stripProtectionPrefix(const QCString &s)
diff --git a/src/dotrunner.cpp b/src/dotrunner.cpp
index c01a4e5..a97d8af 100644
--- a/src/dotrunner.cpp
+++ b/src/dotrunner.cpp
@@ -63,8 +63,8 @@ static void checkPngResult(const char *imgName)
static bool resetPDFSize(const int width,const int height, const char *base)
{
- QString tmpName = QString::fromUtf8(QCString(base)+".tmp");
- QString patchFile = QString::fromUtf8(QCString(base)+".dot");
+ QCString tmpName = QCString(base)+".tmp";
+ QCString patchFile = QCString(base)+".dot";
if (!QDir::current().rename(patchFile,tmpName))
{
err("Failed to rename file %s to %s!\n",patchFile.data(),tmpName.data());
diff --git a/src/doxygen.cpp b/src/doxygen.cpp
index c15eddd..7b4810e 100644
--- a/src/doxygen.cpp
+++ b/src/doxygen.cpp
@@ -9434,7 +9434,7 @@ static void copyLogo(const QCString &outputOption)
}
}
-static void copyExtraFiles(QStrList files,const QString &filesOption,const QCString &outputOption)
+static void copyExtraFiles(QStrList files,const QCString &filesOption,const QCString &outputOption)
{
uint i;
for (i=0; i<files.count(); ++i)
diff --git a/src/eclipsehelp.cpp b/src/eclipsehelp.cpp
index dab001a..2757308 100644
--- a/src/eclipsehelp.cpp
+++ b/src/eclipsehelp.cpp
@@ -115,7 +115,7 @@ void EclipseHelp::finalize()
QFile pluginFile(name);
if (pluginFile.open(IO_WriteOnly))
{
- QString docId = Config_getString(ECLIPSE_DOC_ID);
+ QCString docId = Config_getString(ECLIPSE_DOC_ID);
FTextStream t(&pluginFile);
t << "<plugin name=\"" << docId << "\" id=\"" << docId << "\"" << endl;
t << " version=\"1.0.0\" provider-name=\"Doxygen\">" << endl;
diff --git a/src/fortrancode.l b/src/fortrancode.l
index eee4d47..d372299 100644
--- a/src/fortrancode.l
+++ b/src/fortrancode.l
@@ -971,7 +971,7 @@ LANGUAGE_BIND_SPEC BIND{BS}"("{BS}C{BS}(,{BS}NAME{BS}"="{BS}"\""(.*)"\""{BS})?")
<Start>{TYPE_SPEC}/[,:( ] {
QCString typ = yytext;
typ = removeRedundantWhiteSpace(typ.lower());
- if (QString(typ).startsWith("real")) YY_FTN_REJECT;
+ if (typ.startsWith("real")) YY_FTN_REJECT;
if (typ == "type" || typ == "class" || typ == "procedure") inTypeDecl = 1;
yy_push_state(YY_START);
BEGIN(Declaration);
diff --git a/src/fortranscanner.l b/src/fortranscanner.l
index 38abb89..d75134a 100644
--- a/src/fortranscanner.l
+++ b/src/fortranscanner.l
@@ -1985,7 +1985,7 @@ SymbolModifiers& SymbolModifiers::operator|=(QCString mdfStringArg)
else
newMdf.passVar = "";
}
- else if (QString(mdfString.data()).startsWith("bind"))
+ else if (mdfString.startsWith("bind"))
{
// we need here the original string as we want to don't want to have the lowercase name between the quotes of the name= part
newMdf.bindVar = extractBind(mdfStringArg);
diff --git a/src/ftextstream.h b/src/ftextstream.h
index d073f40..bfc5bd5 100644
--- a/src/ftextstream.h
+++ b/src/ftextstream.h
@@ -23,7 +23,6 @@ class FTextStream
FTextStream &operator<<( char );
FTextStream &operator<<( const char *);
- FTextStream &operator<<( const QString & );
FTextStream &operator<<( const QCString & );
FTextStream &operator<<( signed short );
FTextStream &operator<<( unsigned short );
@@ -59,11 +58,6 @@ inline FTextStream &FTextStream::operator<<( const char* s)
return *this;
}
-inline FTextStream &FTextStream::operator<<( const QString & s)
-{
- return operator<<(s.data());
-}
-
inline FTextStream &FTextStream::operator<<( const QCString &s)
{
return operator<<(s.data());
diff --git a/src/htmldocvisitor.cpp b/src/htmldocvisitor.cpp
index c7fcaf8..513c3a4 100644
--- a/src/htmldocvisitor.cpp
+++ b/src/htmldocvisitor.cpp
@@ -65,7 +65,7 @@ static const char *contexts[10] =
"intertd" // 9
};
-static QCString convertIndexWordToAnchor(const QString &word)
+static QCString convertIndexWordToAnchor(const QCString &word)
{
static char hex[] = "0123456789abcdef";
static int cnt = 0;
@@ -1550,7 +1550,7 @@ void HtmlDocVisitor::visitPre(DocHtmlTable *t)
}
}
- QString attrs = htmlAttribsToString(t->attribs());
+ QCString attrs = htmlAttribsToString(t->attribs());
if (attrs.isEmpty())
{
m_t << "<table";
@@ -1685,7 +1685,7 @@ void HtmlDocVisitor::visitPre(DocImage *img)
forceEndParagraph(img);
}
if (m_hide) return;
- QString baseName=img->name();
+ QCString baseName=img->name();
int i;
if ((i=baseName.findRev('/'))!=-1 || (i=baseName.findRev('\\'))!=-1)
{
@@ -1912,9 +1912,9 @@ void HtmlDocVisitor::visitPost(DocRef *ref)
void HtmlDocVisitor::visitPre(DocSecRefItem *ref)
{
if (m_hide) return;
- QString refName=ref->file();
+ QCString refName=ref->file();
if (refName.right(Doxygen::htmlFileExtension.length())!=
- QString(Doxygen::htmlFileExtension))
+ QCString(Doxygen::htmlFileExtension))
{
refName+=Doxygen::htmlFileExtension;
}
@@ -1946,7 +1946,7 @@ void HtmlDocVisitor::visitPost(DocSecRefList *s)
//void HtmlDocVisitor::visitPre(DocLanguage *l)
//{
-// QString langId = Config_getEnum(OUTPUT_LANGUAGE);
+// QCString langId = Config_getEnum(OUTPUT_LANGUAGE);
// if (l->id().lower()!=langId.lower())
// {
// pushEnabled();
@@ -1956,7 +1956,7 @@ void HtmlDocVisitor::visitPost(DocSecRefList *s)
//
//void HtmlDocVisitor::visitPost(DocLanguage *l)
//{
-// QString langId = Config_getEnum(OUTPUT_LANGUAGE);
+// QCString langId = Config_getEnum(OUTPUT_LANGUAGE);
// if (l->id().lower()!=langId.lower())
// {
// popEnabled();
@@ -2144,7 +2144,7 @@ void HtmlDocVisitor::visitPre(DocHtmlBlockQuote *b)
{
if (m_hide) return;
forceEndParagraph(b);
- QString attrs = htmlAttribsToString(b->attribs());
+ QCString attrs = htmlAttribsToString(b->attribs());
if (attrs.isEmpty())
{
m_t << "<blockquote" << getDirHtmlClassOfNode(getTextDirByConfig(b), "doxtable")
diff --git a/src/index.cpp b/src/index.cpp
index f5faea4..1acd941 100644
--- a/src/index.cpp
+++ b/src/index.cpp
@@ -1943,6 +1943,11 @@ inline bool isId1(int c)
return (c<127 && c>31); // printable ASCII character
}
+static QCString letterToString(uint letter)
+{
+ return QString(QChar(letter)).utf8();
+}
+
static QCString letterToLabel(uint startLetter)
{
char s[11]; // max 0x12345678 + '\0'
@@ -2101,7 +2106,7 @@ static void writeAlphabeticalClassList(OutputList &ol, ClassDef::CompoundType ct
if (headerItems) alphaLinks += "&#160;|&#160;";
headerItems++;
QCString li = letterToLabel(*pLetter);
- QCString ls = QString(QChar(*pLetter)).utf8();
+ QCString ls = letterToString(*pLetter);
alphaLinks += (QCString)"<a class=\"qindex\" href=\"#letter_" +
li + "\">" +
ls + "</a>";
@@ -2244,7 +2249,7 @@ static void writeAlphabeticalClassList(OutputList &ol, ClassDef::CompoundType ct
ol.writeString("<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">"
"<tr>"
"<td><div class=\"ah\">&#160;&#160;");
- ol.writeString(QString(QChar(cell->letter())).utf8());
+ ol.writeString(letterToString(cell->letter()));
ol.writeString( "&#160;&#160;</div>"
"</td>"
"</tr>"
@@ -2839,7 +2844,7 @@ static void writeMemberList(OutputList &ol,bool useSections,int page,
if (!firstItem) ol.endItemListItem();
if (!firstSection) ol.endItemList();
QCString cs = letterToLabel(ml->letter());
- QCString cl = QString(QChar(ml->letter())).utf8();
+ QCString cl = letterToString(ml->letter());
QCString anchor=(QCString)"index_"+convertToId(cs);
QCString title=(QCString)"- "+cl+" -";
ol.startSection(anchor,title,SectionInfo::Subsection);
@@ -3120,7 +3125,7 @@ static void writeQuickMemberIndex(OutputList &ol,
{
uint i = ml->letter();
QCString is = letterToLabel(i);
- QCString ci = QString(QChar(i)).utf8();
+ QCString ci = letterToString(i);
QCString anchor;
QCString extension=Doxygen::htmlFileExtension;
if (!multiPage)
@@ -3210,7 +3215,7 @@ static void writeClassMemberIndexFiltered(OutputList &ol, ClassMemberHighlight h
{
fileName+="_"+letterToLabel(page);
}
- QCString cs = QString(QChar(page)).utf8();
+ QCString cs = letterToString(page);
if (addToIndex)
{
Doxygen::indexList->addContentsItem(FALSE,cs,0,fileName,0,FALSE,TRUE);
@@ -3389,7 +3394,7 @@ static void writeFileMemberIndexFiltered(OutputList &ol, FileMemberHighlight hl)
{
fileName+="_"+letterToLabel(page);
}
- QCString cs = QString(QChar(page)).utf8();
+ QCString cs = letterToString(page);
if (addToIndex)
{
Doxygen::indexList->addContentsItem(FALSE,cs,0,fileName,0,FALSE,TRUE);
@@ -3565,7 +3570,7 @@ static void writeNamespaceMemberIndexFiltered(OutputList &ol,
{
fileName+="_"+letterToLabel(page);
}
- QCString cs = QString(QChar(page)).utf8();
+ QCString cs = letterToString(page);
if (addToIndex)
{
Doxygen::indexList->addContentsItem(FALSE,cs,0,fileName,0,FALSE,TRUE);
@@ -5200,7 +5205,7 @@ void renderMemberIndicesAsJs(FTextStream &t,
if (!firstLetter) t << "," << endl;
uint letter = ml->letter();
QCString is = letterToLabel(letter);
- QCString ci = QString(QChar(letter)).utf8();
+ QCString ci = letterToString(letter);
QCString anchor;
QCString extension=Doxygen::htmlFileExtension;
QCString fullName = getInfo(i)->fname;
diff --git a/src/mandocvisitor.cpp b/src/mandocvisitor.cpp
index 997b24e..21e7cb9 100644
--- a/src/mandocvisitor.cpp
+++ b/src/mandocvisitor.cpp
@@ -905,25 +905,6 @@ void ManDocVisitor::visitPost(DocSecRefList *)
m_t << ".PP" << endl;
}
-//void ManDocVisitor::visitPre(DocLanguage *l)
-//{
-// QString langId = Config_getEnum(OUTPUT_LANGUAGE);
-// if (l->id().lower()!=langId.lower())
-// {
-// pushEnabled();
-// m_hide = TRUE;
-// }
-//}
-//
-//void ManDocVisitor::visitPost(DocLanguage *l)
-//{
-// QString langId = Config_getEnum(OUTPUT_LANGUAGE);
-// if (l->id().lower()!=langId.lower())
-// {
-// popEnabled();
-// }
-//}
-
void ManDocVisitor::visitPre(DocParamSect *s)
{
if (m_hide) return;
diff --git a/src/markdown.cpp b/src/markdown.cpp
index e63bf10..ce28540 100644
--- a/src/markdown.cpp
+++ b/src/markdown.cpp
@@ -2590,7 +2590,7 @@ void MarkdownFileParser::parseInput(const char *fileName,
QCString docs = fileBuf;
QCString id;
QCString title=extractPageTitle(docs,id).stripWhiteSpace();
- if (QString(id).startsWith("autotoc_md")) id = "";
+ if (id.startsWith("autotoc_md")) id = "";
g_indentLevel=title.isEmpty() ? 0 : -1;
QCString titleFn = QFileInfo(fileName).baseName().utf8();
QCString fn = QFileInfo(fileName).fileName().utf8();
diff --git a/src/rtfgen.cpp b/src/rtfgen.cpp
index 229a817..f32936e 100644
--- a/src/rtfgen.cpp
+++ b/src/rtfgen.cpp
@@ -3049,7 +3049,9 @@ void RTFGenerator::endInlineMemberDoc()
void RTFGenerator::writeLineNumber(const char *,const char *,const char *,int l)
{
DoxyCodeLineOpen = TRUE;
- t << QString("%1").arg(l,5) << " ";
+ QCString lineNumber;
+ lineNumber.sprintf("%05d",l);
+ t << lineNumber << " ";
}
void RTFGenerator::startCodeLine(bool)
{
diff --git a/src/sortdict.h b/src/sortdict.h
index 4db330f..52eccd3 100644
--- a/src/sortdict.h
+++ b/src/sortdict.h
@@ -237,10 +237,6 @@ class SDict
{
return m_dict->find(key);
}
- T *find(const QString &key)
- {
- return m_dict->find(key);
- }
int findAt(const QCString &key)
{
T *item = find(key);
diff --git a/src/tclscanner.l b/src/tclscanner.l
index a680cf9..e763575 100644
--- a/src/tclscanner.l
+++ b/src/tclscanner.l
@@ -425,7 +425,7 @@ static struct
int code_linenumbers; // if true create line numbers in code
const char *code_font; // used font to codify
bool config_autobrief; // value of configuration option
- QMap<QString,QString> config_subst; // map of configuration option values
+ QMap<QCString,QCString> config_subst; // map of configuration option values
QCString input_string; // file contents
int input_position; // position in file
QCString file_name; // name of used file
@@ -464,7 +464,7 @@ static struct
// scanner functions
static int yyread(char *buf,int max_size);
-static tcl_scan *tcl_scan_start(char type, QString content, QCString ns, Entry *entry_cls, Entry *entry_fn);
+static tcl_scan *tcl_scan_start(char type, QCString content, QCString ns, Entry *entry_cls, Entry *entry_fn);
static void tcl_scan_end();
static void tcl_comment(int what,const char *text);
static void tcl_word(int what,const char *text);
@@ -729,7 +729,7 @@ static void tcl_codify(const char *s,const char *str)
}
//! Codify 'str' with special font class 's'.
-static void tcl_codify(const char *s,const QString &str)
+static void tcl_codify(const char *s,const QCString &str)
{
if (tcl.code==NULL) return;
tcl_codify(s,str);
@@ -1135,10 +1135,10 @@ D
//! Start new scan context for given 'content'.
// @return created new scan context.
-static tcl_scan *tcl_scan_start(char type, QString content, QCString ns, Entry *entry_cl, Entry *entry_fn)
+static tcl_scan *tcl_scan_start(char type, QCString content, QCString ns, Entry *entry_cl, Entry *entry_fn)
{
tcl_scan *myScan=tcl.scan.at(0);
-tcl_inf("line=%d type=%d '%s'\n",tcl.line_body0,type,content.ascii());
+tcl_inf("line=%d type=%d '%s'\n",tcl.line_body0,type,content.data());
myScan->line1=yylineno;
yy_push_state(TOP);
@@ -1167,7 +1167,7 @@ tcl_inf("line=%d type=%d '%s'\n",tcl.line_body0,type,content.ascii());
myScan->entry_cl = entry_cl;
myScan->entry_fn = entry_fn;
myScan->entry_scan = tcl.entry_current;
- myScan->buffer_state=yy_scan_string(content.ascii());
+ myScan->buffer_state=yy_scan_string(content.data());
myScan->line0=tcl.line_body0;
myScan->line1=tcl.line_body1;
myScan->after.clear();
@@ -2562,7 +2562,7 @@ tcl_inf("->\n");
if (myStr.left(2)=="::") myStr = myStr.mid(2);
if (tcl.config_subst.contains(myStr))
{
- myStr=tcl.config_subst[myStr].utf8();
+ myStr=tcl.config_subst[myStr];
}
if (myStr=="private")
{
@@ -2598,7 +2598,7 @@ tcl_inf("->\n");
if (myStr.left(2)=="::") myStr = myStr.mid(2);
if (tcl.config_subst.contains(myStr))
{
- myStr=tcl.config_subst[myStr].utf8();
+ myStr=tcl.config_subst[myStr];
}
}
if (myStr=="proc")
@@ -3018,7 +3018,7 @@ void TclLanguageScanner::parseCode(CodeOutputInterface & codeOutIntf,
}
}
- QString myStr="Codifying..";
+ QCString myStr="Codifying..";
if (scopeName)
{
myStr +=" scope=";
@@ -3041,7 +3041,7 @@ void TclLanguageScanner::parseCode(CodeOutputInterface & codeOutIntf,
myStr+=" file=";
myStr+=fileDef->fileName();
}
-tcl_inf("%s (%d,%d) %d %d\n",myStr.ascii(),startLine,endLine,isExampleBlock,inlineFragment);
+tcl_inf("%s (%d,%d) %d %d\n",myStr.data(),startLine,endLine,isExampleBlock,inlineFragment);
//tcl_inf("%s\n"input.data());
tcl_init();
tcl.collectXRefs = collectXRefs;