MCPcopy Create free account
hub / github.com/ClassiCube/ClassiCube / String_Format4

Function String_Format4

src/String.c:433–499  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

431 String_Format4(str, format, a1, a2, a3, NULL);
432}
433void String_Format4(cc_string* str, const char* format, const void* a1, const void* a2, const void* a3, const void* a4) {
434 const void* arg;
435 int i, j = 0, digits;
436
437 const void* args[4];
438 args[0] = a1; args[1] = a2; args[2] = a3; args[3] = a4;
439
440 for (i = 0; format[i]; i++) {
441 if (format[i] != '%') { String_Append(str, format[i]); continue; }
442 arg = args[j++];
443
444 switch (format[++i]) {
445 case 'b':
446 String_AppendInt(str, *((cc_uint8*)arg));
447 break;
448 case 'i':
449 String_AppendInt(str, *((int*)arg));
450 break;
451 case 'f':
452 digits = format[++i] - '0';
453 String_AppendFloat(str, *((float*)arg), digits);
454 break;
455 case 'p':
456 digits = format[++i] - '0';
457 String_AppendPaddedInt(str, *((int*)arg), digits);
458 break;
459 case 't':
460 String_AppendBool(str, *((cc_bool*)arg));
461 break;
462 case 'c':
463 String_AppendConst(str, (char*)arg);
464 break;
465 case 's':
466 String_AppendString(str, (cc_string*)arg);
467 break;
468 case 'r':
469 String_Append(str, *((char*)arg));
470 break;
471 case 'x':
472 if (sizeof(cc_uintptr) == 4) {
473 String_Hex32(str, *((cc_uint32*)arg));
474 } else {
475 String_Hex64(str, *((cc_uint64*)arg));
476 }
477 break;
478 case 'h':
479 String_Hex32(str, *((cc_uint32*)arg));
480 break;
481 case 'e':
482 digits = *((int*)arg);
483 if (digits >= -0xFFFF && digits <= 0xFFFF) {
484 String_AppendInt(str, digits);
485 } else {
486 String_Hex32(str, (cc_uint32)digits);
487 }
488 break;
489 case '%':
490 String_Append(str, '%');

Callers 9

DynamicLib_DescribeErrorFunction · 0.85
KeyBindsScreen_UpdateFunction · 0.85
Chat_Add4Function · 0.85
Platform_Log4Function · 0.85
IPv4_ToStringFunction · 0.85
String_Format1Function · 0.85
String_Format2Function · 0.85
String_Format3Function · 0.85

Calls 9

String_AppendFunction · 0.85
String_AppendIntFunction · 0.85
String_AppendFloatFunction · 0.85
String_AppendPaddedIntFunction · 0.85
String_AppendBoolFunction · 0.85
String_AppendConstFunction · 0.85
String_AppendStringFunction · 0.85
String_Hex32Function · 0.85
String_Hex64Function · 0.85

Tested by

no test coverage detected