MCPcopy Create free account
hub / github.com/IoLanguage/io / UArray_fromVargs_

Function UArray_fromVargs_

libs/basekit/source/UArray_format.c:35–84  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

33}
34
35void UArray_fromVargs_(UArray *self, const char *format, va_list ap) {
36 while (*format) {
37 if (*format == '%') {
38 format++;
39
40 if (*format == 's') {
41 char *s = va_arg(ap, char *);
42 if (!s) {
43 printf("UArray_fromVargs_ missing param");
44 return;
45 }
46 UArray_appendCString_(self, s);
47 } else if (*format == 'i' || *format == 'd') {
48 int i = va_arg(ap, int);
49 char s[100];
50
51 snprintf(s, 100, "%i", i);
52 UArray_appendCString_(self, s);
53 } else if (*format == 'f') {
54 double d = va_arg(ap, double);
55 char s[100];
56
57 snprintf(s, 100, "%f", d);
58 UArray_appendCString_(self, s);
59 } else if (*format == 'p') {
60 void *p = va_arg(ap, void *);
61 char s[100];
62
63 snprintf(s, 100, "%p", p);
64 UArray_appendCString_(self, s);
65 }
66 // new format command for a given number adding spaces
67 else if (*format == '#') {
68 int n, i = va_arg(ap, int);
69 char *s = " ";
70
71 for (n = 0; n < i; n++) {
72 UArray_appendCString_(self, s);
73 }
74 }
75 } else {
76 char s[2];
77
78 snprintf(s, 2, "%c", *format);
79 UArray_appendCString_(self, s);
80 }
81
82 format++;
83 }
84}
85
86UArray *UArray_asNewHexStringUArray(UArray *self) {
87 size_t i, newSize = self->size * 2;

Callers 2

UArray_newWithVargs_Function · 0.85
UArray_fromFormat_Function · 0.85

Calls 2

UArray_appendCString_Function · 0.85
snprintfFunction · 0.85

Tested by

no test coverage detected