MCPcopy Create free account
hub / github.com/DeusData/codebase-memory-mcp / yaml_doc_init

Function yaml_doc_init

src/cli/config_yaml_edit.c:1082–1107  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1080}
1081
1082static int yaml_doc_init(yaml_doc_t *doc, const char *data, size_t len) {
1083 memset(doc, 0, sizeof(*doc));
1084 doc->data = data;
1085 doc->len = len;
1086 if (yaml_build_lines(doc) != 0) {
1087 return YAML_ERROR;
1088 }
1089 for (size_t i = 0; i < doc->line_count; i++) {
1090 const yaml_line_t *line = &doc->lines[i];
1091 if (line->indent == 0U && !line->blank && !line->comment) {
1092 size_t len_no_eol = line->text_end - line->start;
1093 if ((len_no_eol == YAML_DOC_MARKER_LEN &&
1094 memcmp(doc->data + line->start, "---", YAML_DOC_MARKER_LEN) == 0) ||
1095 (len_no_eol == YAML_DOC_MARKER_LEN &&
1096 memcmp(doc->data + line->start, "...", YAML_DOC_MARKER_LEN) == 0)) {
1097 yaml_doc_free(doc);
1098 return YAML_ERROR;
1099 }
1100 }
1101 }
1102 if (yaml_validate_root_mapping(doc) != 0) {
1103 yaml_doc_free(doc);
1104 return YAML_ERROR;
1105 }
1106 return 0;
1107}
1108
1109static size_t yaml_skip_spaces(const char *data, size_t pos, size_t end) {
1110 while (pos < end && data[pos] == ' ') {

Calls 3

yaml_build_linesFunction · 0.85
yaml_doc_freeFunction · 0.85

Tested by

no test coverage detected