diff options
Diffstat (limited to '')
-rw-r--r-- | src/stable/string.cpp | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/src/stable/string.cpp b/src/stable/string.cpp index d1f76aa..dd484fd 100644 --- a/src/stable/string.cpp +++ b/src/stable/string.cpp | |||
@@ -1269,10 +1269,30 @@ Bu::String Bu::String::FormatProxy::end() const | |||
1269 | else | 1269 | else |
1270 | { | 1270 | { |
1271 | String sNum; | 1271 | String sNum; |
1272 | while( s && *s >= '0' && *s <= '9' ) | 1272 | if( *s == '{' ) |
1273 | { | 1273 | { |
1274 | sNum += *s; | ||
1275 | s++; | 1274 | s++; |
1275 | while( s && *s >= '0' && *s <= '9' ) | ||
1276 | { | ||
1277 | sNum += *s; | ||
1278 | s++; | ||
1279 | } | ||
1280 | if( !s || *s != '}' ) | ||
1281 | { | ||
1282 | delete[] aArg; | ||
1283 | throw Bu::ExceptionBase( | ||
1284 | "Argument started with a '{' but terminated " | ||
1285 | "with a '%c' instead of '}'.", *s ); | ||
1286 | } | ||
1287 | s++; | ||
1288 | } | ||
1289 | else | ||
1290 | { | ||
1291 | while( s && *s >= '0' && *s <= '9' ) | ||
1292 | { | ||
1293 | sNum += *s; | ||
1294 | s++; | ||
1295 | } | ||
1276 | } | 1296 | } |
1277 | int iIndex = strtol( sNum.getStr(), 0, 10 )-1; | 1297 | int iIndex = strtol( sNum.getStr(), 0, 10 )-1; |
1278 | if( iIndex < 0 || iIndex >= iCount ) | 1298 | if( iIndex < 0 || iIndex >= iCount ) |