| 205 | |
| 206 | |
| 207 | char* UI_sprintf(StableDynarray<char>* string_array, const char *format, ...) { |
| 208 | |
| 209 | va_list va; |
| 210 | va_start(va, format); |
| 211 | int size = vsnprintf(0, 0, format, va); |
| 212 | char* result = 0; |
| 213 | |
| 214 | if (string_array->count + size + 1 < string_array->capacity) |
| 215 | { |
| 216 | string_array->commit(string_array->_grow_capacity(string_array->count + size + 1)); |
| 217 | } |
| 218 | |
| 219 | if (size >= 0) { |
| 220 | result = &string_array->data[string_array->count]; |
| 221 | vsnprintf(&string_array->data[string_array->count], size + 1, format, va); |
| 222 | string_array->count += size + 1; |
| 223 | } |
| 224 | va_end(va); |
| 225 | |
| 226 | return result; |
| 227 | } |
| 228 | |
| 229 | UI_Block *UI_get_current_parent(UI_Context *ctx) { |
| 230 | if (ctx->parents.count) |
no test coverage detected