| 2709 | } |
| 2710 | |
| 2711 | static struct strbuf store_create_section(const char *key, |
| 2712 | const struct config_store_data *store) |
| 2713 | { |
| 2714 | const char *dot; |
| 2715 | size_t i; |
| 2716 | struct strbuf sb = STRBUF_INIT; |
| 2717 | |
| 2718 | dot = memchr(key, '.', store->baselen); |
| 2719 | if (dot) { |
| 2720 | strbuf_addf(&sb, "[%.*s \"", (int)(dot - key), key); |
| 2721 | for (i = dot - key + 1; i < store->baselen; i++) { |
| 2722 | if (key[i] == '"' || key[i] == '\\') |
| 2723 | strbuf_addch(&sb, '\\'); |
| 2724 | strbuf_addch(&sb, key[i]); |
| 2725 | } |
| 2726 | strbuf_addstr(&sb, "\"]\n"); |
| 2727 | } else { |
| 2728 | strbuf_addch(&sb, '['); |
| 2729 | strbuf_add(&sb, key, store->baselen); |
| 2730 | strbuf_addstr(&sb, "]\n"); |
| 2731 | } |
| 2732 | |
| 2733 | return sb; |
| 2734 | } |
| 2735 | |
| 2736 | static ssize_t write_section(int fd, const char *key, |
| 2737 | const struct config_store_data *store) |
no test coverage detected