| 2424 | } |
| 2425 | |
| 2426 | static void cbm_env_home_dir(const char *env_name, const char *home_dir, const char *fallback, |
| 2427 | char *out, size_t out_sz) { |
| 2428 | char env_buf[CLI_BUF_1K]; |
| 2429 | const char *custom = cbm_safe_getenv(env_name, env_buf, sizeof(env_buf), NULL); |
| 2430 | out[0] = '\0'; |
| 2431 | if (custom && custom[0] && cbm_expand_user_path(home_dir, custom, out, out_sz)) { |
| 2432 | return; |
| 2433 | } |
| 2434 | int written = snprintf(out, out_sz, "%s/%s", home_dir, fallback); |
| 2435 | if (written < 0 || (size_t)written >= out_sz) { |
| 2436 | out[0] = '\0'; |
| 2437 | } |
| 2438 | } |
| 2439 | |
| 2440 | static void cbm_kiro_home_dir(const char *home_dir, char *out, size_t out_sz) { |
| 2441 | cbm_env_home_dir("KIRO_HOME", home_dir, ".kiro", out, out_sz); |
no test coverage detected