summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2011-08-14 01:37:52 +0100
committerCaolán McNamara <caolanm@redhat.com>2011-08-15 09:21:48 +0100
commit9124003eb1e398957a85c5c009ac5eddf5e6f28e (patch)
treed1348216600b18f3daa08224a4d4492b53337813 /tools
parentSvByteStringsSortDtor is now finally gone (diff)
downloadcore-9124003eb1e398957a85c5c009ac5eddf5e6f28e.tar.gz
core-9124003eb1e398957a85c5c009ac5eddf5e6f28e.zip
ByteString::IsNumericAscii->comphelper::string::isAsciiDecimalString
shrink ByteString api, remove need for intermediate OString/ByteString with random-ish encoding solely for check
Diffstat (limited to 'tools')
-rw-r--r--tools/inc/tools/string.hxx1
-rw-r--r--tools/source/inet/inetmsg.cxx70
-rw-r--r--tools/source/string/tstring.cxx21
3 files changed, 36 insertions, 56 deletions
diff --git a/tools/inc/tools/string.hxx b/tools/inc/tools/string.hxx
index 1141cd3e2f42..fd89e28fd71e 100644
--- a/tools/inc/tools/string.hxx
+++ b/tools/inc/tools/string.hxx
@@ -258,7 +258,6 @@ public:
sal_Bool IsLowerAscii() const;
sal_Bool IsUpperAscii() const;
sal_Bool IsAlphaAscii() const;
- sal_Bool IsNumericAscii() const;
sal_Bool IsAlphaNumericAscii() const;
ByteString& ToLowerAscii();
diff --git a/tools/source/inet/inetmsg.cxx b/tools/source/inet/inetmsg.cxx
index 1645e9ba7aea..d6b67fe06b4b 100644
--- a/tools/source/inet/inetmsg.cxx
+++ b/tools/source/inet/inetmsg.cxx
@@ -35,7 +35,7 @@
#include <tools/inetstrm.hxx>
#include <rtl/instance.hxx>
#include <rtl/strbuf.hxx>
-
+#include <comphelper/string.hxx>
#include <stdio.h>
//=======================================================================
@@ -310,10 +310,10 @@ static sal_uInt16 ParseNumber (const ByteString& rStr, sal_uInt16& nIndex)
sal_uInt16 n = nIndex;
while ((n < rStr.Len()) && ascii_isDigit(rStr.GetChar(n))) n++;
- ByteString aNum (rStr.Copy (nIndex, (n - nIndex)));
+ rtl::OString aNum (rStr.Copy (nIndex, (n - nIndex)));
nIndex = n;
- return (sal_uInt16)(aNum.ToInt32());
+ return (sal_uInt16)(aNum.toInt32());
}
static sal_uInt16 ParseMonth (const ByteString& rStr, sal_uInt16& nIndex)
@@ -333,69 +333,71 @@ static sal_uInt16 ParseMonth (const ByteString& rStr, sal_uInt16& nIndex)
sal_Bool INetRFC822Message::ParseDateField (
const UniString& rDateFieldW, DateTime& rDateTime)
{
- ByteString rDateField (rDateFieldW, RTL_TEXTENCODING_ASCII_US);
- if (rDateField.Len() == 0) return sal_False;
+ rtl::OString aDateField(rtl::OUStringToOString(rDateFieldW,
+ RTL_TEXTENCODING_ASCII_US));
+
+ if (aDateField.isEmpty()) return sal_False;
- if (rDateField.Search (':') != STRING_NOTFOUND)
+ if (aDateField.indexOf(':') != -1)
{
// Some DateTime format.
sal_uInt16 nIndex = 0;
// Skip over <Wkd> or <Weekday>, leading and trailing space.
- while ((nIndex < rDateField.Len()) &&
- (rDateField.GetChar(nIndex) == ' '))
+ while ((nIndex < aDateField.getLength()) &&
+ (aDateField[nIndex] == ' '))
nIndex++;
while (
- (nIndex < rDateField.Len()) &&
- (ascii_isLetter (rDateField.GetChar(nIndex)) ||
- (rDateField.GetChar(nIndex) == ',') ))
+ (nIndex < aDateField.getLength()) &&
+ (ascii_isLetter (aDateField[nIndex]) ||
+ (aDateField[nIndex] == ',') ))
nIndex++;
- while ((nIndex < rDateField.Len()) &&
- (rDateField.GetChar(nIndex) == ' '))
+ while ((nIndex < aDateField.getLength()) &&
+ (aDateField[nIndex] == ' '))
nIndex++;
- if (ascii_isLetter (rDateField.GetChar(nIndex)))
+ if (ascii_isLetter (aDateField[nIndex]))
{
// Format: ctime().
- if ((rDateField.Len() - nIndex) < 20) return sal_False;
+ if ((aDateField.getLength() - nIndex) < 20) return sal_False;
- rDateTime.SetMonth (ParseMonth (rDateField, nIndex)); nIndex++;
- rDateTime.SetDay (ParseNumber (rDateField, nIndex)); nIndex++;
+ rDateTime.SetMonth (ParseMonth (aDateField, nIndex)); nIndex++;
+ rDateTime.SetDay (ParseNumber (aDateField, nIndex)); nIndex++;
- rDateTime.SetHour (ParseNumber (rDateField, nIndex)); nIndex++;
- rDateTime.SetMin (ParseNumber (rDateField, nIndex)); nIndex++;
- rDateTime.SetSec (ParseNumber (rDateField, nIndex)); nIndex++;
+ rDateTime.SetHour (ParseNumber (aDateField, nIndex)); nIndex++;
+ rDateTime.SetMin (ParseNumber (aDateField, nIndex)); nIndex++;
+ rDateTime.SetSec (ParseNumber (aDateField, nIndex)); nIndex++;
rDateTime.Set100Sec (0);
- sal_uInt16 nYear = ParseNumber (rDateField, nIndex);
+ sal_uInt16 nYear = ParseNumber (aDateField, nIndex);
if (nYear < 100) nYear += 1900;
rDateTime.SetYear (nYear);
}
else
{
// Format: RFC1036 or RFC1123.
- if ((rDateField.Len() - nIndex) < 17) return sal_False;
+ if ((aDateField.getLength() - nIndex) < 17) return sal_False;
- rDateTime.SetDay (ParseNumber (rDateField, nIndex)); nIndex++;
- rDateTime.SetMonth (ParseMonth (rDateField, nIndex)); nIndex++;
+ rDateTime.SetDay (ParseNumber (aDateField, nIndex)); nIndex++;
+ rDateTime.SetMonth (ParseMonth (aDateField, nIndex)); nIndex++;
- sal_uInt16 nYear = ParseNumber (rDateField, nIndex); nIndex++;
+ sal_uInt16 nYear = ParseNumber (aDateField, nIndex); nIndex++;
if (nYear < 100) nYear += 1900;
rDateTime.SetYear (nYear);
- rDateTime.SetHour (ParseNumber (rDateField, nIndex)); nIndex++;
- rDateTime.SetMin (ParseNumber (rDateField, nIndex)); nIndex++;
- rDateTime.SetSec (ParseNumber (rDateField, nIndex)); nIndex++;
+ rDateTime.SetHour (ParseNumber (aDateField, nIndex)); nIndex++;
+ rDateTime.SetMin (ParseNumber (aDateField, nIndex)); nIndex++;
+ rDateTime.SetSec (ParseNumber (aDateField, nIndex)); nIndex++;
rDateTime.Set100Sec (0);
- if ((rDateField.GetChar(nIndex) == '+') ||
- (rDateField.GetChar(nIndex) == '-') )
+ if ((aDateField[nIndex] == '+') ||
+ (aDateField[nIndex] == '-') )
{
// Offset from GMT: "(+|-)HHMM".
- sal_Bool bEast = (rDateField.GetChar(nIndex++) == '+');
- sal_uInt16 nOffset = ParseNumber (rDateField, nIndex);
+ sal_Bool bEast = (aDateField[nIndex++] == '+');
+ sal_uInt16 nOffset = ParseNumber (aDateField, nIndex);
if (nOffset > 0)
{
Time aDiff;
@@ -412,11 +414,11 @@ sal_Bool INetRFC822Message::ParseDateField (
}
}
}
- else if (rDateField.IsNumericAscii())
+ else if (comphelper::string::isAsciiDecimalString(aDateField))
{
// Format: delta seconds.
Time aDelta (0);
- aDelta.SetTime (rDateField.ToInt32() * 100);
+ aDelta.SetTime (aDateField.toInt32() * 100);
DateTime aNow;
aNow += aDelta;
diff --git a/tools/source/string/tstring.cxx b/tools/source/string/tstring.cxx
index 40310cf9591d..e0872ee66049 100644
--- a/tools/source/string/tstring.cxx
+++ b/tools/source/string/tstring.cxx
@@ -163,27 +163,6 @@ sal_Bool ByteString::IsAlphaAscii() const
// -----------------------------------------------------------------------
-sal_Bool ByteString::IsNumericAscii() const
-{
- DBG_CHKTHIS( ByteString, DbgCheckByteString );
-
- sal_Int32 nIndex = 0;
- sal_Int32 nLen = mpData->mnLen;
- const sal_Char* pStr = mpData->maStr;
- while ( nIndex < nLen )
- {
- if ( !((*pStr >= 48) && (*pStr <= 57)) )
- return sal_False;
-
- ++pStr,
- ++nIndex;
- }
-
- return sal_True;
-}
-
-// -----------------------------------------------------------------------
-
sal_Bool ByteString::IsAlphaNumericAscii() const
{
DBG_CHKTHIS( ByteString, DbgCheckByteString );