summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Buland <eichlan@xagasoft.com>2010-03-31 14:23:55 +0000
committerMike Buland <eichlan@xagasoft.com>2010-03-31 14:23:55 +0000
commitdb45c881d98f2288aa26960e5eae6070f792b82a (patch)
tree21c3a259c7dcb9312d12acfaef2e76fd910d4de1
parent85315f2cc85a0c44055cd94c1b7de8cfe11b46e1 (diff)
downloadlibbu++-db45c881d98f2288aa26960e5eae6070f792b82a.tar.gz
libbu++-db45c881d98f2288aa26960e5eae6070f792b82a.tar.bz2
libbu++-db45c881d98f2288aa26960e5eae6070f792b82a.tar.xz
libbu++-db45c881d98f2288aa26960e5eae6070f792b82a.zip
Removed the bool cast operator from FBasicString. It turns out it was causing
way, way, way more problems than it solved. A number of libbu++ tests were inacurate because of it, there were problems in several other programs, and there may be more that have problems we haven't found yet because of this. This will most likely cause complitaion errors, especially in places we didn't expect, where strings were being stored into or passed as integers and the like. In cases where you were just testing a string, just call the "isSet()" function, which is functionally equivellent to the old bool cast operator.
-rw-r--r--src/csvreader.cpp3
-rw-r--r--src/fbasicstring.h5
-rw-r--r--src/formatter.cpp2
-rw-r--r--src/formatter.h4
-rw-r--r--src/optparser.cpp14
-rw-r--r--src/tafwriter.cpp2
-rw-r--r--src/tests/fstrstd.cpp2
-rw-r--r--src/tools/myriad.cpp4
-rw-r--r--src/unit/fstring.unit2
-rw-r--r--src/unit/hash.unit8
10 files changed, 25 insertions, 21 deletions
diff --git a/src/csvreader.cpp b/src/csvreader.cpp
index b045773..c63fe06 100644
--- a/src/csvreader.cpp
+++ b/src/csvreader.cpp
@@ -71,6 +71,9 @@ Bu::FString Bu::CsvReader::decodeExcel( Bu::FString::iterator &i )
71 71
72 for(; i && (*i == ' ' || *i == '\t'); i++ ) { } 72 for(; i && (*i == ' ' || *i == '\t'); i++ ) { }
73 73
74 if( !i )
75 return sRet;
76
74 if( *i == '\"' ) 77 if( *i == '\"' )
75 { 78 {
76 for( i++ ; i; i++ ) 79 for( i++ ; i; i++ )
diff --git a/src/fbasicstring.h b/src/fbasicstring.h
index 4907d61..e965de8 100644
--- a/src/fbasicstring.h
+++ b/src/fbasicstring.h
@@ -335,7 +335,7 @@ namespace Bu
335 if( !pChunk ) return false; 335 if( !pChunk ) return false;
336 return pChunk->pData[iPos] != c; 336 return pChunk->pData[iPos] != c;
337 } 337 }
338 338
339 operator bool() const 339 operator bool() const
340 { 340 {
341 return pChunk != NULL; 341 return pChunk != NULL;
@@ -1598,11 +1598,12 @@ namespace Bu
1598 return pFirst->pData; 1598 return pFirst->pData;
1599 } 1599 }
1600 */ 1600 */
1601 1601 /*
1602 operator bool() const 1602 operator bool() const
1603 { 1603 {
1604 return (core->pFirst != NULL); 1604 return (core->pFirst != NULL);
1605 } 1605 }
1606 */
1606 1607
1607 bool isSet() const 1608 bool isSet() const
1608 { 1609 {
diff --git a/src/formatter.cpp b/src/formatter.cpp
index 7ebe256..3e0f41e 100644
--- a/src/formatter.cpp
+++ b/src/formatter.cpp
@@ -459,7 +459,7 @@ Bu::Formatter &Bu::operator>>( Bu::Formatter &f, long double &flt )
459Bu::Formatter &Bu::operator>>( Bu::Formatter &f, bool &b ) 459Bu::Formatter &Bu::operator>>( Bu::Formatter &f, bool &b )
460{ 460{
461 Bu::FString sStr = f.readToken(); 461 Bu::FString sStr = f.readToken();
462 if( !sStr ) 462 if( !sStr.isSet() )
463 return f; 463 return f;
464 char c = *sStr.begin(); 464 char c = *sStr.begin();
465 if( c == 'y' || c == 'Y' || c == 't' || c == 'T' ) 465 if( c == 'y' || c == 'Y' || c == 't' || c == 'T' )
diff --git a/src/formatter.h b/src/formatter.h
index ec84be5..47592ad 100644
--- a/src/formatter.h
+++ b/src/formatter.h
@@ -204,7 +204,7 @@ namespace Bu
204 template<typename type> 204 template<typename type>
205 void iparse( type &i, const Bu::FString &sBuf ) 205 void iparse( type &i, const Bu::FString &sBuf )
206 { 206 {
207 if( !sBuf ) 207 if( !sBuf.isSet() )
208 return; 208 return;
209 if( sBuf[0] != '+' && sBuf[0] != '-' && 209 if( sBuf[0] != '+' && sBuf[0] != '-' &&
210 (sBuf[0] < '0' && sBuf[0] > '9') ) 210 (sBuf[0] < '0' && sBuf[0] > '9') )
@@ -230,7 +230,7 @@ namespace Bu
230 template<typename type> 230 template<typename type>
231 void uparse( type &i, const Bu::FString &sBuf ) 231 void uparse( type &i, const Bu::FString &sBuf )
232 { 232 {
233 if( !sBuf ) 233 if( !sBuf.isSet() )
234 return; 234 return;
235 if( sBuf[0] != '+' && 235 if( sBuf[0] != '+' &&
236 (sBuf[0] < '0' && sBuf[0] > '9') ) 236 (sBuf[0] < '0' && sBuf[0] > '9') )
diff --git a/src/optparser.cpp b/src/optparser.cpp
index bbac9d5..53efe92 100644
--- a/src/optparser.cpp
+++ b/src/optparser.cpp
@@ -53,7 +53,7 @@ void Bu::OptParser::parse( int argc, char **argv )
53 { 53 {
54 Bu::StrArray aParams( iCount ); 54 Bu::StrArray aParams( iCount );
55 aParams.append( sOpt ); 55 aParams.append( sOpt );
56 if( sExtraParam ) 56 if( sExtraParam.isSet() )
57 { 57 {
58 aParams.append( argv[j]+iEPos+1 ); 58 aParams.append( argv[j]+iEPos+1 );
59 } 59 }
@@ -65,11 +65,11 @@ void Bu::OptParser::parse( int argc, char **argv )
65 } 65 }
66 else if( pOpt->pProxy ) 66 else if( pOpt->pProxy )
67 { 67 {
68 if( pOpt->sOverride ) 68 if( pOpt->sOverride.isSet() )
69 { 69 {
70 pOpt->pProxy->setValue( pOpt->sOverride ); 70 pOpt->pProxy->setValue( pOpt->sOverride );
71 } 71 }
72 else if( sExtraParam ) 72 else if( sExtraParam.isSet() )
73 { 73 {
74 pOpt->pProxy->setValue( sExtraParam ); 74 pOpt->pProxy->setValue( sExtraParam );
75 } 75 }
@@ -117,7 +117,7 @@ void Bu::OptParser::parse( int argc, char **argv )
117 } 117 }
118 else if( pOpt->pProxy ) 118 else if( pOpt->pProxy )
119 { 119 {
120 if( pOpt->sOverride ) 120 if( pOpt->sOverride.isSet() )
121 { 121 {
122 pOpt->pProxy->setValue( pOpt->sOverride ); 122 pOpt->pProxy->setValue( pOpt->sOverride );
123 } 123 }
@@ -172,7 +172,7 @@ void Bu::OptParser::addOption( const Option &opt )
172 lOption.append( opt ); 172 lOption.append( opt );
173 if( opt.cOpt != '\0' ) 173 if( opt.cOpt != '\0' )
174 hsOption.insert( opt.cOpt, &lOption.last() ); 174 hsOption.insert( opt.cOpt, &lOption.last() );
175 if( opt.sOpt ) 175 if( opt.sOpt.isSet() )
176 hlOption.insert( opt.sOpt, &lOption.last() ); 176 hlOption.insert( opt.sOpt, &lOption.last() );
177} 177}
178 178
@@ -226,7 +226,7 @@ int Bu::OptParser::optHelp( StrArray /*aParams*/ )
226 if( (*i).cOpt != '\0' ) 226 if( (*i).cOpt != '\0' )
227 bHasShort = true; 227 bHasShort = true;
228 int lOptSize = (*i).sOpt.getSize() + (*i).sHelpDefault.getSize(); 228 int lOptSize = (*i).sOpt.getSize() + (*i).sHelpDefault.getSize();
229 if( (*i).sOpt && iMaxWidth < lOptSize ) 229 if( (*i).sOpt.isSet() && iMaxWidth < lOptSize )
230 iMaxWidth = lOptSize; 230 iMaxWidth = lOptSize;
231 } 231 }
232 int iIndent = 4; 232 int iIndent = 4;
@@ -260,7 +260,7 @@ int Bu::OptParser::optHelp( StrArray /*aParams*/ )
260 } 260 }
261 if( iMaxWidth > 0 ) 261 if( iMaxWidth > 0 )
262 { 262 {
263 if( (*i).sOpt ) 263 if( (*i).sOpt.isSet() )
264 { 264 {
265 sio << "--" << Fmt(iMaxWidth, Fmt::Left) 265 sio << "--" << Fmt(iMaxWidth, Fmt::Left)
266 << (*i).sOpt + (*i).sHelpDefault; 266 << (*i).sOpt + (*i).sHelpDefault;
diff --git a/src/tafwriter.cpp b/src/tafwriter.cpp
index 7564e74..215cb68 100644
--- a/src/tafwriter.cpp
+++ b/src/tafwriter.cpp
@@ -28,7 +28,7 @@ void Bu::TafWriter::writeGroup( const Bu::TafGroup *pRoot )
28{ 28{
29 ident(); 29 ident();
30 sOut.write("{", 1 ); 30 sOut.write("{", 1 );
31 if( pRoot->getName() ) 31 if( pRoot->getName().isSet() )
32 writeString( pRoot->getName() ); 32 writeString( pRoot->getName() );
33 sOut.write(":\n", 2 ); 33 sOut.write(":\n", 2 );
34 iDepth++; 34 iDepth++;
diff --git a/src/tests/fstrstd.cpp b/src/tests/fstrstd.cpp
index 5999ecd..86d7c5c 100644
--- a/src/tests/fstrstd.cpp
+++ b/src/tests/fstrstd.cpp
@@ -12,5 +12,5 @@ int main()
12{ 12{
13 Bu::FString s("Hey there, dude.\n"); 13 Bu::FString s("Hey there, dude.\n");
14 14
15 std::cout << s << 5; 15// std::cout << s << 5;
16} 16}
diff --git a/src/tools/myriad.cpp b/src/tools/myriad.cpp
index 4147579..b3067d2 100644
--- a/src/tools/myriad.cpp
+++ b/src/tools/myriad.cpp
@@ -75,7 +75,7 @@ int main( int argc, char *argv[] )
75 switch( opts.eMode ) 75 switch( opts.eMode )
76 { 76 {
77 case modeCreate: 77 case modeCreate:
78 if( !opts.sOutput ) 78 if( !opts.sOutput.isSet() )
79 { 79 {
80 sio << "Please specify an output file to create a stream for." 80 sio << "Please specify an output file to create a stream for."
81 << sio.nl; 81 << sio.nl;
@@ -90,7 +90,7 @@ int main( int argc, char *argv[] )
90 break; 90 break;
91 91
92 case modeInfo: 92 case modeInfo:
93 if( !opts.sInput ) 93 if( !opts.sInput.isSet() )
94 { 94 {
95 sio << "Please specify an input file to display info about." 95 sio << "Please specify an input file to display info about."
96 << sio.nl; 96 << sio.nl;
diff --git a/src/unit/fstring.unit b/src/unit/fstring.unit
index fe41ae9..8aaae93 100644
--- a/src/unit/fstring.unit
+++ b/src/unit/fstring.unit
@@ -74,7 +74,7 @@
74 unitTest( a == "ab" ); 74 unitTest( a == "ab" );
75 a += "cdefghijklmnop"; 75 a += "cdefghijklmnop";
76 a.remove( 5, 1 ); 76 a.remove( 5, 1 );
77 unitTest( a = "abcdeghijklmnop" ); 77 unitTest( a == "abcdeghijklmnop" );
78} 78}
79 79
80{%add1} 80{%add1}
diff --git a/src/unit/hash.unit b/src/unit/hash.unit
index 9edc61e..c0a10e3 100644
--- a/src/unit/hash.unit
+++ b/src/unit/hash.unit
@@ -45,13 +45,13 @@ typedef Bu::Hash<int, Bu::FString> IntStrHash;
45 unitTest( h["Hi"].getValue() == "Yo" ); 45 unitTest( h["Hi"].getValue() == "Yo" );
46 46
47 StrStrHash h2(h); 47 StrStrHash h2(h);
48 unitTest( h2["Hi"].getValue() = "Yo" ); 48 unitTest( h2["Hi"].getValue() == "Yo" );
49 unitTest( h2["Bye"].getValue() = "Later" ); 49 unitTest( h2["Bye"].getValue() == "Later" );
50 50
51 StrStrHash h3; 51 StrStrHash h3;
52 h3 = h; 52 h3 = h;
53 unitTest( h3["Hi"].getValue() = "Yo" ); 53 unitTest( h3["Hi"].getValue() == "Yo" );
54 unitTest( h3["Bye"].getValue() = "Later" ); 54 unitTest( h3["Bye"].getValue() == "Later" );
55} 55}
56 56
57{%insert3} 57{%insert3}