diff options
Diffstat (limited to 'doc')
-rw-r--r-- | doc/html/headerfilesynonyms | 1 | ||||
-rw-r--r-- | doc/html/headers.html | 1 | ||||
-rw-r--r-- | doc/html/qt.dcf | 2 | ||||
-rw-r--r-- | doc/html/titleindex | 1 | ||||
-rw-r--r-- | doc/html/tqchar-h.html | 425 | ||||
-rw-r--r-- | doc/html/tqchar.html | 2 | ||||
-rw-r--r-- | doc/html/tqstring-h.html | 410 | ||||
-rw-r--r-- | doc/man/man3/tqchar.3qt | 2 |
8 files changed, 492 insertions, 352 deletions
diff --git a/doc/html/headerfilesynonyms b/doc/html/headerfilesynonyms index 0779e83e1..77972e97c 100644 --- a/doc/html/headerfilesynonyms +++ b/doc/html/headerfilesynonyms @@ -123,7 +123,6 @@ tqptrdictiterator.h tqptrdict.h tqptrlistiterator.h tqptrlist.h tqsqlfieldinfo.h tqsqlfield.h tqsqlrecordinfo.h tqsqlrecord.h -tqchar.h tqstring.h tqcharref.h tqstring.h tqconststring.h tqstring.h tqstrlistiterator.h tqstrlist.h diff --git a/doc/html/headers.html b/doc/html/headers.html index cc8c59e29..29ad7e498 100644 --- a/doc/html/headers.html +++ b/doc/html/headers.html @@ -53,6 +53,7 @@ body { background: #ffffff; color: black; } <li><a href="tqcache-h.html">tqcache.h</a> <li><a href="tqcanvas-h.html">tqcanvas.h</a> <li><a href="tqcdestyle-h.html">tqcdestyle.h</a> +<li><a href="tqchar-h.html">tqchar.h</a> <li><a href="tqcheckbox-h.html">tqcheckbox.h</a> <li><a href="tqclipboard-h.html">tqclipboard.h</a> <li><a href="tqcolor-h.html">tqcolor.h</a> diff --git a/doc/html/qt.dcf b/doc/html/qt.dcf index eda8cf1cc..79d3be956 100644 --- a/doc/html/qt.dcf +++ b/doc/html/qt.dcf @@ -865,7 +865,7 @@ <keyword ref="tqchar.html#operator-gt">operator></keyword> <keyword ref="tqchar.html#operator-gt-eq">operator>=</keyword> <section ref="tqchar-members.html" title="List of All Member Functions"/> - <section ref="tqstring-h.html" title="Header File"/> + <section ref="tqchar-h.html" title="Header File"/> </section> <section ref="tqcharref.html" title="TQCharRef Class Reference"> <keyword ref="tqcharref.html">TQCharRef</keyword> diff --git a/doc/html/titleindex b/doc/html/titleindex index a8eec621b..6f2b3091e 100644 --- a/doc/html/titleindex +++ b/doc/html/titleindex @@ -1055,6 +1055,7 @@ tqbuttongroup.h Include File | tqbuttongroup-h.html tqcache.h Include File | tqcache-h.html tqcanvas.h Include File | tqcanvas-h.html tqcdestyle.h Include File | tqcdestyle-h.html +tqchar.h Include File | tqchar-h.html tqcheckbox.h Include File | tqcheckbox-h.html tqclipboard.h Include File | tqclipboard-h.html tqcolor.h Include File | tqcolor-h.html diff --git a/doc/html/tqchar-h.html b/doc/html/tqchar-h.html new file mode 100644 index 000000000..db1fc6fdd --- /dev/null +++ b/doc/html/tqchar-h.html @@ -0,0 +1,425 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> +<title>tqchar.h Include File</title> +<style type="text/css"><!-- +fn { margin-left: 1cm; text-indent: -1cm; } +a:link { color: #004faf; text-decoration: none } +a:visited { color: #672967; text-decoration: none } +body { background: #ffffff; color: black; } +--></style> +</head> +<body> + +<table border="0" cellpadding="0" cellspacing="0" width="100%"> +<tr bgcolor="#E5E5E5"> +<td valign=center> + <a href="index.html"> +<font color="#004faf">Home</font></a> + | <a href="classes.html"> +<font color="#004faf">All Classes</font></a> + | <a href="mainclasses.html"> +<font color="#004faf">Main Classes</font></a> + | <a href="annotated.html"> +<font color="#004faf">Annotated</font></a> + | <a href="groups.html"> +<font color="#004faf">Grouped Classes</font></a> + | <a href="functions.html"> +<font color="#004faf">Functions</font></a> +</td> +<td align="right" valign="center"><img src="logo32.png" align="right" width="64" height="32" border="0"></td></tr></table><h1 align=center>tqchar.h</h1> + +<p>This is the verbatim text of the tqchar.h include file. It is provided only for illustration; the copyright remains with Trolltech. +<hr> +<pre> +/**************************************************************************** +** +** Definition of the TQChar class, and related Unicode functions. +** +** Created : 920609 +** +** Copyright (C) 2015 Timothy Pearson. All rights reserved. +** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved. +** +** 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 [email protected]. +** +** 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 TQCHAR_H +#define TQCHAR_H + +#ifndef QT_H +#include "tqglobal.h" +#endif // QT_H + +class TQString; + +class TQ_EXPORT TQChar +{ +public: + TQChar(); + TQChar( char c ); + TQChar( uchar c ); + TQChar( uchar c, uchar r ); + TQChar( const TQChar& c ); // ### remove in 4.0 to allow compiler optimization + TQChar( ushort rc ); + TQChar( short rc ); + TQChar( uint rc ); + TQChar( int rc ); + + static const TQChar null; // 0000 + static const TQChar replacement; // FFFD + static const TQChar byteOrderMark; // FEFF + static const TQChar byteOrderSwapped; // FFFE + static const TQChar nbsp; // 00A0 + + // Unicode information + + enum Category + { + NoCategory, + + Mark_NonSpacing, // Mn + Mark_SpacingCombining, // Mc + Mark_Enclosing, // Me + + Number_DecimalDigit, // Nd + Number_Letter, // Nl + Number_Other, // No + + Separator_Space, // Zs + Separator_Line, // Zl + Separator_Paragraph, // Zp + + Other_Control, // Cc + Other_Format, // Cf + Other_Surrogate, // Cs + Other_PrivateUse, // Co + Other_NotAssigned, // Cn + + Letter_Uppercase, // Lu + Letter_Lowercase, // Ll + Letter_Titlecase, // Lt + Letter_Modifier, // Lm + Letter_Other, // Lo + + Punctuation_Connector, // Pc + Punctuation_Dash, // Pd + Punctuation_Dask = Punctuation_Dash, // oops + Punctuation_Open, // Ps + Punctuation_Close, // Pe + Punctuation_InitialQuote, // Pi + Punctuation_FinalQuote, // Pf + Punctuation_Other, // Po + + Symbol_Math, // Sm + Symbol_Currency, // Sc + Symbol_Modifier, // Sk + Symbol_Other // So + }; + + enum Direction + { + DirL, DirR, DirEN, DirES, DirET, DirAN, DirCS, DirB, DirS, DirWS, DirON, + DirLRE, DirLRO, DirAL, DirRLE, DirRLO, DirPDF, DirNSM, DirBN + }; + + enum Decomposition + { + Single, Canonical, Font, NoBreak, Initial, Medial, + Final, Isolated, Circle, Super, Sub, Vertical, + Wide, Narrow, Small, Square, Compat, Fraction + }; + + enum Joining + { + OtherJoining, Dual, Right, Center + }; + + enum CombiningClass + { + Combining_BelowLeftAttached = 200, + Combining_BelowAttached = 202, + Combining_BelowRightAttached = 204, + Combining_LeftAttached = 208, + Combining_RightAttached = 210, + Combining_AboveLeftAttached = 212, + Combining_AboveAttached = 214, + Combining_AboveRightAttached = 216, + + Combining_BelowLeft = 218, + Combining_Below = 220, + Combining_BelowRight = 222, + Combining_Left = 224, + Combining_Right = 226, + Combining_AboveLeft = 228, + Combining_Above = 230, + Combining_AboveRight = 232, + + Combining_DoubleBelow = 233, + Combining_DoubleAbove = 234, + Combining_IotaSubscript = 240 + }; + + // ****** WHEN ADDING FUNCTIONS, CONSIDER ADDING TO TQCharRef TOO + + int digitValue() const; + TQChar lower() const; + TQChar upper() const; + + Category category() const; + Direction direction() const; + Joining joining() const; + bool mirrored() const; + TQChar mirroredChar() const; + const TQString &decomposition() const; // ### return just TQString in 4.0 + Decomposition decompositionTag() const; + unsigned char combiningClass() const; + + char latin1() const { return ucs > 0xff ? 0 : (char) ucs; } + ushort unicode() const { return ucs; } +#ifdef Q_NO_PACKED_REFERENCE + ushort &unicode() { return *((ushort*)&ucs); } +#else + ushort &unicode() { return ucs; } +#endif +#ifndef TQT_NO_CAST_ASCII + // like all ifdef'd code this is undocumented + operator char() const { return latin1(); } +#endif + + bool isNull() const { return unicode()==0; } + bool isPrint() const; + bool isPunct() const; + bool isSpace() const; + bool isMark() const; + bool isLetter() const; + bool isNumber() const; + bool isLetterOrNumber() const; + bool isDigit() const; + bool isSymbol() const; + + // Surrogate pairs support + bool isHighSurrogate() const; + bool isLowSurrogate() const; + static bool requiresSurrogates(uint ucs4); + static ushort highSurrogate(uint ucs4); + static ushort lowSurrogate(uint ucs4); + static uint surrogateToUcs4(const TQChar &high, const TQChar &low); + + uchar cell() const { return ((uchar) ucs & 0xff); } + uchar row() const { return ((uchar) (ucs>>8)&0xff); } + void setCell( uchar cell ) { ucs = (ucs & 0xff00) + cell; } + void setRow( uchar row ) { ucs = (((ushort) row)<<8) + (ucs&0xff); } + + static bool networkOrdered() { + int wordSize; + bool bigEndian = FALSE; + tqSysInfo( &wordSize, &bigEndian ); + return bigEndian; + } + + friend inline bool operator==( char ch, TQChar c ); + friend inline bool operator==( TQChar c, char ch ); + friend inline bool operator==( TQChar c1, TQChar c2 ); + friend inline bool operator!=( TQChar c1, TQChar c2 ); + friend inline bool operator!=( char ch, TQChar c ); + friend inline bool operator!=( TQChar c, char ch ); + friend inline bool operator<=( TQChar c, char ch ); + friend inline bool operator<=( char ch, TQChar c ); + friend inline bool operator<=( TQChar c1, TQChar c2 ); + +#if defined(__cplusplus) && __cplusplus >= 201103L + // Explicit declarations to suppress warnings + // This could be removed when TQChar( const TQChar& c ) is removed + TQChar& operator=(const TQChar& other) = default; + ~TQChar() = default; +#endif +private: + ushort ucs; +#if defined(QT_QSTRING_UCS_4) + ushort grp; +#endif +} TQ_PACKED; + + +inline TQChar::TQChar() : ucs( 0 ) +#ifdef QT_QSTRING_UCS_4 + , grp( 0 ) +#endif +{ +} +inline TQChar::TQChar( char c ) : ucs( (uchar)c ) +#ifdef QT_QSTRING_UCS_4 + , grp( 0 ) +#endif +{ +} +inline TQChar::TQChar( uchar c ) : ucs( c ) +#ifdef QT_QSTRING_UCS_4 + , grp( 0 ) +#endif +{ +} +inline TQChar::TQChar( uchar c, uchar r ) : ucs( (r << 8) | c ) +#ifdef QT_QSTRING_UCS_4 + , grp( 0 ) +#endif +{ +} +inline TQChar::TQChar( const TQChar& c ) : ucs( c.ucs ) +#ifdef QT_QSTRING_UCS_4 + , grp( c.grp ) +#endif +{ +} + +inline TQChar::TQChar( ushort rc ) : ucs( rc ) +#ifdef QT_QSTRING_UCS_4 + , grp( 0 ) +#endif +{ +} +inline TQChar::TQChar( short rc ) : ucs( (ushort) rc ) +#ifdef QT_QSTRING_UCS_4 + , grp( 0 ) +#endif +{ +} +inline TQChar::TQChar( uint rc ) : ucs( (ushort ) (rc & 0xffff) ) +#ifdef QT_QSTRING_UCS_4 + , grp( (ushort) ((rc >> 16) & 0xffff) ) +#endif +{ +} +inline TQChar::TQChar( int rc ) : ucs( (ushort) (rc & 0xffff) ) +#ifdef QT_QSTRING_UCS_4 + , grp( (ushort) ((rc >> 16) & 0xffff) ) +#endif +{ +} + +inline bool TQChar::isHighSurrogate() const +{ + return ((ucs & 0xfc00) == 0xd800); +} + +inline bool TQChar::isLowSurrogate() const +{ + return ((ucs & 0xfc00) == 0xdc00); +} + +inline bool TQChar::requiresSurrogates(uint ucs4) +{ + return (ucs4 >= 0x10000); +} + +inline ushort TQChar::highSurrogate(uint ucs4) +{ + return ushort(((ucs4 - 0x10000) >> 10)) | 0xd800; +} + +inline ushort TQChar::lowSurrogate(uint ucs4) +{ + return ushort(ucs4 & 0x03FF) | 0xdc00; +} + +inline uint TQChar::surrogateToUcs4(const TQChar &high, const TQChar &low) +{ + return (uint(high.ucs & 0x03FF) << 10) | (low.ucs & 0x03FF) | 0x10000; +} + +inline bool operator==( char ch, TQChar c ) +{ + return ((uchar) ch) == c.ucs; +} + +inline bool operator==( TQChar c, char ch ) +{ + return ((uchar) ch) == c.ucs; +} + +inline bool operator==( TQChar c1, TQChar c2 ) +{ + return c1.ucs == c2.ucs; +} + +inline bool operator!=( TQChar c1, TQChar c2 ) +{ + return c1.ucs != c2.ucs; +} + +inline bool operator!=( char ch, TQChar c ) +{ + return ((uchar)ch) != c.ucs; +} + +inline bool operator!=( TQChar c, char ch ) +{ + return ((uchar) ch) != c.ucs; +} + +inline bool operator<=( TQChar c, char ch ) +{ + return c.ucs <= ((uchar) ch); +} + +inline bool operator<=( char ch, TQChar c ) +{ + return ((uchar) ch) <= c.ucs; +} + +inline bool operator<=( TQChar c1, TQChar c2 ) +{ + return c1.ucs <= c2.ucs; +} + +inline bool operator>=( TQChar c, char ch ) { return ch <= c; } +inline bool operator>=( char ch, TQChar c ) { return c <= ch; } +inline bool operator>=( TQChar c1, TQChar c2 ) { return c2 <= c1; } +inline bool operator<( TQChar c, char ch ) { return !(ch<=c); } +inline bool operator<( char ch, TQChar c ) { return !(c<=ch); } +inline bool operator<( TQChar c1, TQChar c2 ) { return !(c2<=c1); } +inline bool operator>( TQChar c, char ch ) { return !(ch>=c); } +inline bool operator>( char ch, TQChar c ) { return !(c>=ch); } +inline bool operator>( TQChar c1, TQChar c2 ) { return !(c2>=c1); } + +#endif // TQCHAR_H +</pre> +<!-- eof --> +<p><address><hr><div align=center> +<table width=100% cellspacing=0 border=0><tr> +<td>Copyright © 2007 +<a href="troll.html">Trolltech</a><td align=center><a href="trademarks.html">Trademarks</a> +<td align=right><div align=right>TQt 3.3.8</div> +</table></div></address></body> +</html> diff --git a/doc/html/tqchar.html b/doc/html/tqchar.html index 038003227..3b990d622 100644 --- a/doc/html/tqchar.html +++ b/doc/html/tqchar.html @@ -33,7 +33,7 @@ body { background: #ffffff; color: black; } <p>The TQChar class provides a lightweight Unicode character. <a href="#details">More...</a> <p>Almost all the functions in this class are <a href="threads.html#reentrant">reentrant</a> when TQt is built with thread support. The exception is <a href="#decomposition"><b>decomposition</b></a>(). -</p><p><tt>#include <<a href="tqstring-h.html">tqstring.h</a>></tt> +</p><p><tt>#include <<a href="tqchar-h.html">tqchar.h</a>></tt> <p><a href="tqchar-members.html">List of all member functions.</a> <h2>Public Members</h2> <ul> diff --git a/doc/html/tqstring-h.html b/doc/html/tqstring-h.html index 5387fbc3b..7ff338d13 100644 --- a/doc/html/tqstring-h.html +++ b/doc/html/tqstring-h.html @@ -34,22 +34,23 @@ body { background: #ffffff; color: black; } <hr> <pre> /**************************************************************************** -** $Id: qt/tqstring.h 3.3.8 edited Jan 11 14:38 $ ** ** Definition of the TQString class, and related Unicode functions. ** ** Created : 920609 ** -** Copyright (C) 1992-2007 Trolltech ASA. All rights reserved. +** Copyright (C) 2015 Timothy Pearson. All rights reserved. +** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved. ** ** 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 file LICENSE.GPL 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) +** 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 @@ -66,7 +67,7 @@ body { background: #ffffff; color: black; } ** 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, +** 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. @@ -77,7 +78,7 @@ body { background: #ffffff; color: black; } #define TQSTRING_H #ifndef QT_H -#include "tqcstring.h" +#include "tqcstring.h" #endif // QT_H #ifndef TQT_NO_CAST_ASCII @@ -98,319 +99,29 @@ body { background: #ffffff; color: black; } #endif #endif +#ifndef TQT_NO_SPRINTF +#include <stdarg.h> +#endif -/***************************************************************************** - TQString class - *****************************************************************************/ +#include "tqchar.h" class TQRegExp; class TQString; class TQCharRef; +class TQMutex; template <class T> class TQDeepCopy; -class TQ_EXPORT TQChar { -public: - TQChar(); - TQChar( char c ); - TQChar( uchar c ); - TQChar( uchar c, uchar r ); - TQChar( const TQChar& c ); // ### remove in 4.0 to allow compiler optimization - TQChar( ushort rc ); - TQChar( short rc ); - TQChar( uint rc ); - TQChar( int rc ); - - static const TQChar null; // 0000 - static const TQChar replacement; // FFFD - static const TQChar byteOrderMark; // FEFF - static const TQChar byteOrderSwapped; // FFFE - static const TQChar nbsp; // 00A0 - - // Unicode information - - enum Category - { - NoCategory, - - Mark_NonSpacing, // Mn - Mark_SpacingCombining, // Mc - Mark_Enclosing, // Me - - Number_DecimalDigit, // Nd - Number_Letter, // Nl - Number_Other, // No - - Separator_Space, // Zs - Separator_Line, // Zl - Separator_Paragraph, // Zp - - Other_Control, // Cc - Other_Format, // Cf - Other_Surrogate, // Cs - Other_PrivateUse, // Co - Other_NotAssigned, // Cn - - Letter_Uppercase, // Lu - Letter_Lowercase, // Ll - Letter_Titlecase, // Lt - Letter_Modifier, // Lm - Letter_Other, // Lo - - Punctuation_Connector, // Pc - Punctuation_Dash, // Pd - Punctuation_Dask = Punctuation_Dash, // oops - Punctuation_Open, // Ps - Punctuation_Close, // Pe - Punctuation_InitialQuote, // Pi - Punctuation_FinalQuote, // Pf - Punctuation_Other, // Po - - Symbol_Math, // Sm - Symbol_Currency, // Sc - Symbol_Modifier, // Sk - Symbol_Other // So - }; - - enum Direction - { - DirL, DirR, DirEN, DirES, DirET, DirAN, DirCS, DirB, DirS, DirWS, DirON, - DirLRE, DirLRO, DirAL, DirRLE, DirRLO, DirPDF, DirNSM, DirBN - }; - - enum Decomposition - { - Single, Canonical, Font, NoBreak, Initial, Medial, - Final, Isolated, Circle, Super, Sub, Vertical, - Wide, Narrow, Small, Square, Compat, Fraction - }; - - enum Joining - { - OtherJoining, Dual, Right, Center - }; - - enum CombiningClass - { - Combining_BelowLeftAttached = 200, - Combining_BelowAttached = 202, - Combining_BelowRightAttached = 204, - Combining_LeftAttached = 208, - Combining_RightAttached = 210, - Combining_AboveLeftAttached = 212, - Combining_AboveAttached = 214, - Combining_AboveRightAttached = 216, - - Combining_BelowLeft = 218, - Combining_Below = 220, - Combining_BelowRight = 222, - Combining_Left = 224, - Combining_Right = 226, - Combining_AboveLeft = 228, - Combining_Above = 230, - Combining_AboveRight = 232, - - Combining_DoubleBelow = 233, - Combining_DoubleAbove = 234, - Combining_IotaSubscript = 240 - }; - - // ****** WHEN ADDING FUNCTIONS, CONSIDER ADDING TO TQCharRef TOO - - int digitValue() const; - TQChar lower() const; - TQChar upper() const; - - Category category() const; - Direction direction() const; - Joining joining() const; - bool mirrored() const; - TQChar mirroredChar() const; - const TQString &decomposition() const; // ### return just TQString in 4.0 - Decomposition decompositionTag() const; - unsigned char combiningClass() const; - - char latin1() const { return ucs > 0xff ? 0 : (char) ucs; } - ushort unicode() const { return ucs; } -#ifdef Q_NO_PACKED_REFERENCE - ushort &unicode() { return *(&ucs); } -#else - ushort &unicode() { return ucs; } -#endif -#ifndef TQT_NO_CAST_ASCII - // like all ifdef'd code this is undocumented - operator char() const { return latin1(); } -#endif - - bool isNull() const { return unicode()==0; } - bool isPrint() const; - bool isPunct() const; - bool isSpace() const; - bool isMark() const; - bool isLetter() const; - bool isNumber() const; - bool isLetterOrNumber() const; - bool isDigit() const; - bool isSymbol() const; - - uchar cell() const { return ((uchar) ucs & 0xff); } - uchar row() const { return ((uchar) (ucs>>8)&0xff); } - void setCell( uchar cell ) { ucs = (ucs & 0xff00) + cell; } - void setRow( uchar row ) { ucs = (((ushort) row)<<8) + (ucs&0xff); } - - static bool networkOrdered() { - int wordSize; - bool bigEndian = FALSE; - tqSysInfo( &wordSize, &bigEndian ); - return bigEndian; - } - - friend inline bool operator==( char ch, TQChar c ); - friend inline bool operator==( TQChar c, char ch ); - friend inline bool operator==( TQChar c1, TQChar c2 ); - friend inline bool operator!=( TQChar c1, TQChar c2 ); - friend inline bool operator!=( char ch, TQChar c ); - friend inline bool operator!=( TQChar c, char ch ); - friend inline bool operator<=( TQChar c, char ch ); - friend inline bool operator<=( char ch, TQChar c ); - friend inline bool operator<=( TQChar c1, TQChar c2 ); - -private: - ushort ucs; -#if defined(QT_QSTRING_UCS_4) - ushort grp; -#endif -} TQ_PACKED; - -inline TQChar::TQChar() : ucs( 0 ) -#ifdef QT_QSTRING_UCS_4 - , grp( 0 ) -#endif -{ -} -inline TQChar::TQChar( char c ) : ucs( (uchar)c ) -#ifdef QT_QSTRING_UCS_4 - , grp( 0 ) -#endif -{ -} -inline TQChar::TQChar( uchar c ) : ucs( c ) -#ifdef QT_QSTRING_UCS_4 - , grp( 0 ) -#endif -{ -} -inline TQChar::TQChar( uchar c, uchar r ) : ucs( (r << 8) | c ) -#ifdef QT_QSTRING_UCS_4 - , grp( 0 ) -#endif -{ -} -inline TQChar::TQChar( const TQChar& c ) : ucs( c.ucs ) -#ifdef QT_QSTRING_UCS_4 - , grp( c.grp ) -#endif -{ -} - -inline TQChar::TQChar( ushort rc ) : ucs( rc ) -#ifdef QT_QSTRING_UCS_4 - , grp( 0 ) -#endif -{ -} -inline TQChar::TQChar( short rc ) : ucs( (ushort) rc ) -#ifdef QT_QSTRING_UCS_4 - , grp( 0 ) -#endif -{ -} -inline TQChar::TQChar( uint rc ) : ucs( (ushort ) (rc & 0xffff) ) -#ifdef QT_QSTRING_UCS_4 - , grp( (ushort) ((rc >> 16) & 0xffff) ) -#endif -{ -} -inline TQChar::TQChar( int rc ) : ucs( (ushort) (rc & 0xffff) ) -#ifdef QT_QSTRING_UCS_4 - , grp( (ushort) ((rc >> 16) & 0xffff) ) -#endif -{ -} - -inline bool operator==( char ch, TQChar c ) -{ - return ((uchar) ch) == c.ucs; -} - -inline bool operator==( TQChar c, char ch ) -{ - return ((uchar) ch) == c.ucs; -} - -inline bool operator==( TQChar c1, TQChar c2 ) -{ - return c1.ucs == c2.ucs; -} - -inline bool operator!=( TQChar c1, TQChar c2 ) -{ - return c1.ucs != c2.ucs; -} - -inline bool operator!=( char ch, TQChar c ) -{ - return ((uchar)ch) != c.ucs; -} - -inline bool operator!=( TQChar c, char ch ) -{ - return ((uchar) ch) != c.ucs; -} - -inline bool operator<=( TQChar c, char ch ) -{ - return c.ucs <= ((uchar) ch); -} - -inline bool operator<=( char ch, TQChar c ) -{ - return ((uchar) ch) <= c.ucs; -} - -inline bool operator<=( TQChar c1, TQChar c2 ) -{ - return c1.ucs <= c2.ucs; -} - -inline bool operator>=( TQChar c, char ch ) { return ch <= c; } -inline bool operator>=( char ch, TQChar c ) { return c <= ch; } -inline bool operator>=( TQChar c1, TQChar c2 ) { return c2 <= c1; } -inline bool operator<( TQChar c, char ch ) { return !(ch<=c); } -inline bool operator<( char ch, TQChar c ) { return !(c<=ch); } -inline bool operator<( TQChar c1, TQChar c2 ) { return !(c2<=c1); } -inline bool operator>( TQChar c, char ch ) { return !(ch>=c); } -inline bool operator>( char ch, TQChar c ) { return !(c>=ch); } -inline bool operator>( TQChar c1, TQChar c2 ) { return !(c2>=c1); } - // internal -struct TQ_EXPORT TQStringData : public TQShared { - TQStringData() : - TQShared(), unicode(0), ascii(0), len(0), issimpletext(TRUE), maxl(0), islatin1(FALSE) { ref(); } - TQStringData(TQChar *u, uint l, uint m) : - TQShared(), unicode(u), ascii(0), len(l), issimpletext(FALSE), maxl(m), islatin1(FALSE) { } - ~TQStringData() { if ( unicode ) delete[] ((char*)unicode); - if ( ascii ) delete[] ascii; } +struct TQ_EXPORT TQStringData : public TQShared +{ + TQStringData(); + TQStringData(TQChar *u, uint l, uint m); + ~TQStringData(); void deleteSelf(); TQChar *unicode; char *ascii; - void setDirty() { - if ( ascii ) { - delete [] ascii; - ascii = 0; - } - issimpletext = FALSE; - } + void setDirty(); #ifdef Q_OS_MAC9 uint len; #else @@ -424,6 +135,11 @@ struct TQ_EXPORT TQStringData : public TQShared { #endif uint islatin1 : 1; + bool security_unpaged : 1; + + TQMutex* mutex; + TQCString *cString; + private: #if defined(TQ_DISABLE_COPY) TQStringData( const TQStringData& ); @@ -476,7 +192,7 @@ public: TQString arg( uint a, int fieldWidth = 0, int base = 10 ) const; TQString arg( short a, int fieldWidth = 0, int base = 10 ) const; TQString arg( ushort a, int fieldWidth = 0, int base = 10 ) const; - TQString arg( double a, int fieldWidth = 0, char fmt = 'g', + TQString arg( double a, int fieldWidth = 0, char fmt = 'g', int prec = -1 ) const; TQString arg( char a, int fieldWidth = 0 ) const; TQString arg( TQChar a, int fieldWidth = 0 ) const; @@ -493,6 +209,11 @@ public: __attribute__ ((format (printf, 2, 3))) #endif ; + TQString &vsprintf(const char *format, va_list ap) +#if defined(Q_CC_GNU) && !defined(__INSURE__) + __attribute__ ((format (printf, 2, 0))) +#endif + ; #endif int find( TQChar c, int index=0, bool cs=TRUE ) const; @@ -545,8 +266,8 @@ public: TQString right( uint len ) const; TQString mid( uint index, uint len=0xffffffff) const; - TQString leftJustify( uint width, TQChar fill=' ', bool trunc=FALSE)const; - TQString rightJustify( uint width, TQChar fill=' ',bool trunc=FALSE)const; + TQString leftJustify( uint width, TQChar fill=' ', bool trunc=FALSE)const; + TQString rightJustify( uint width, TQChar fill=' ',bool trunc=FALSE)const; TQString lower() const; TQString upper() const; @@ -648,8 +369,8 @@ public: TQString &setNum( ulong, int base=10 ); TQString &setNum( TQ_LLONG, int base=10 ); TQString &setNum( TQ_ULLONG, int base=10 ); - TQString &setNum( float, char f='g', int prec=6 ); - TQString &setNum( double, char f='g', int prec=6 ); + TQString &setNum( float, char f='g', int prec=6 ); + TQString &setNum( double, char f='g', int prec=6 ); static TQString number( long, int base=10 ); static TQString number( ulong, int base=10); @@ -657,7 +378,7 @@ public: static TQString number( TQ_ULLONG, int base=10); static TQString number( int, int base=10 ); static TQString number( uint, int base=10); - static TQString number( double, char f='g', int prec=6 ); + static TQString number( double, char f='g', int prec=6 ); void setExpand( uint index, TQChar c ); @@ -680,13 +401,7 @@ public: TQChar constref(uint i) const { return at(i); } - TQChar& ref(uint i) - { // Optimized for easy-inlining by simple compilers. - if ( d->count != 1 || i >= d->len ) - subat( i ); - d->setDirty(); - return d->unicode[i]; - } + TQChar& ref(uint i); const TQChar* unicode() const { return d->unicode; } const char* ascii() const; @@ -702,7 +417,7 @@ public: operator const char *() const { return ascii(); } #endif #ifndef TQT_NO_STL - operator std::string() const { return ascii() ? ascii() : ""; } + operator std::string() const { return ascii() ? ascii() : ""; } #endif static TQString fromUcs2( const unsigned short *ucs2 ); @@ -781,14 +496,21 @@ private: friend class TQConstString; friend class TQTextStream; - TQString( TQStringData* dd, bool /* dummy */ ) : d(dd) { } + TQString( TQStringData* dd, bool /* dummy */ ); // needed for TQDeepCopy void detach(); + + void setSecurityUnPaged(bool lock); + static char* unicodeToLatin1( const TQChar*, uint len, bool unpaged ); + friend class TQDeepCopy<TQString>; + friend class TQLineEdit; }; -class TQ_EXPORT TQCharRef { + +class TQ_EXPORT TQCharRef +{ friend class TQString; TQString& s; uint p; @@ -797,8 +519,14 @@ class TQ_EXPORT TQCharRef { public: // most TQChar operations repeated here - // all this is not documented: We just say "like TQChar" and let it be. + // all this is not documented: We just say "like TQChar" and let it be. #ifndef Q_QDOC +#if defined(__cplusplus) && __cplusplus >= 201103L + // tells compiler that we know what we are doing and suppresses -Wdeprecated-copy warnings + TQCharRef(const TQCharRef&) = default; + ~TQCharRef() = default; +#endif + ushort unicode() const { return s.constref(p).unicode(); } char latin1() const { return s.constref(p).latin1(); } @@ -824,6 +552,11 @@ public: bool isNumber() const { return s.constref(p).isNumber(); } bool isLetterOrNumber() { return s.constref(p).isLetterOrNumber(); } bool isDigit() const { return s.constref(p).isDigit(); } + bool isSymbol() const { return s.constref(p).isSymbol(); } + + // Surrogate pairs support + bool isHighSurrogate() const { return s.constref(p).isHighSurrogate(); } + bool isLowSurrogate() const { return s.constref(p).isLowSurrogate(); } int digitValue() const { return s.constref(p).digitValue(); } TQChar lower() const { return s.constref(p).lower(); } @@ -868,25 +601,6 @@ TQ_EXPORT TQDataStream &operator>>( TQDataStream &, TQString & TQString inline functions *****************************************************************************/ -// These two move code into makeSharedNull() and deletesData() -// to improve cache-coherence (and reduce code bloat), while -// keeping the common cases fast. -// -// No safe way to pre-init shared_null on ALL compilers/linkers. -inline TQString::TQString() : - d(shared_null ? shared_null : makeSharedNull()) -{ - d->ref(); -} -// -inline TQString::~TQString() -{ - if ( d->deref() ) { - if ( d != shared_null ) - d->deleteSelf(); - } -} - // needed for TQDeepCopy inline void TQString::detach() { real_detach(); } @@ -1146,7 +860,7 @@ extern TQ_EXPORT TQString qt_winMB2TQString( const char* mb, int len=-1 ); #endif #define Q_DEFINED_QSTRING -#include "tqwinexport.h" +#include "tqwinexport.h" #endif // TQSTRING_H </pre> <!-- eof --> diff --git a/doc/man/man3/tqchar.3qt b/doc/man/man3/tqchar.3qt index 86e001d7c..032b30141 100644 --- a/doc/man/man3/tqchar.3qt +++ b/doc/man/man3/tqchar.3qt @@ -11,7 +11,7 @@ TQChar \- Lightweight Unicode character .SH SYNOPSIS Almost all the functions in this class are reentrant when TQt is built with thread support. The exception is \fBdecomposition\fR(). </p> .PP -\fC#include <tqstring.h>\fR +\fC#include <tqchar.h>\fR .PP .SS "Public Members" .in +1c |