251 252 if (lvalue != NULL) { 253 FLength = env->GetStringUTFLength(value); 254 255 if (env->ExceptionCheck() == JNI_TRUE) { 256 throw JavaException(); 257 } 258 259 FData = new char[FLength + 1]; 260 PlatformString::CopyString(FData, FLength + 1, lvalue); 261 262 env->ReleaseStringUTFChars(value, lvalue); 263 264 if (env->ExceptionCheck() == JNI_TRUE) { 265 throw JavaException(); 266 } 267 } 268 } 269 } 270 271 std::string PlatformString::Format(std::string value, ...) { 272 std::string result = value; 273 274 va_list arglist; 275 va_start(arglist, value); 276 277 while (1) { 278 size_t pos = result.find("%s", 0); 279 280 if (pos == TString::npos) { 281 break; 282 } 283 else { 284 char* arg = va_arg(arglist, char*); 285 286 if (arg == NULL) { 287 break; 288 } 289 else { 290 result.replace(pos, strlen("%s"), arg); 291 } 292 } 293 } 294 295 va_end(arglist); 296 297 return result; 298 } 299 300 size_t PlatformString::length() { 301 return FLength; 302 } 303 304 char* PlatformString::c_str() { 305 return FData; 306 } 307 308 char* PlatformString::toMultibyte() { 309 return FData; 310 } | 251 252 if (lvalue != NULL) { 253 FLength = env->GetStringUTFLength(value); 254 255 if (env->ExceptionCheck() == JNI_TRUE) { 256 throw JavaException(); 257 } 258 259 FData = new char[FLength + 1]; 260 PlatformString::CopyString(FData, FLength + 1, lvalue); 261 262 env->ReleaseStringUTFChars(value, lvalue); 263 264 if (env->ExceptionCheck() == JNI_TRUE) { 265 throw JavaException(); 266 } 267 } 268 } 269 } 270 271 TString PlatformString::Format(const TString value, ...) { 272 //std::string PlatformString::Format(std::string value, ...) { 273 TString result = value; 274 275 va_list arglist; 276 va_start(arglist, value); 277 278 while (1) { 279 size_t pos = result.find(_T("%s"), 0); 280 281 if (pos == TString::npos) { 282 break; 283 } 284 else { 285 TCHAR* arg = va_arg(arglist, TCHAR*); 286 287 if (arg == NULL) { 288 break; 289 } 290 else { 291 result.replace(pos, StringLength(_T("%s")), arg); 292 } 293 } 294 } 295 296 va_end(arglist); 297 298 return result; 299 } 300 301 size_t PlatformString::length() { 302 return FLength; 303 } 304 305 char* PlatformString::c_str() { 306 return FData; 307 } 308 309 char* PlatformString::toMultibyte() { 310 return FData; 311 } |