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

Function emit_property

internal/cbm/iris_export_xml.c:210–259  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

208}
209
210static void emit_property(UdlBuf *b, const char *ps, const char *pe) {
211 char pn[MAX_NAME];
212 extract_attr(ps, pe, "name", pn, sizeof(pn));
213 if (!pn[0])
214 return;
215 char pt[MAX_NAME] = "";
216 elem_content(ps, pe, "Type", pt, sizeof(pt));
217 PropParam params[MAX_PARAMS];
218 int np = 0;
219 const char *pp = ps;
220 while (pp < pe && np < MAX_PARAMS) {
221 const char *po = find_s(pp, pe, "<Parameter ");
222 if (!po)
223 break;
224 const char *pg = find_s(po, pe, ">");
225 if (!pg)
226 break;
227 extract_attr(po, pg, "name", params[np].param_name, MAX_NAME);
228 extract_attr(po, pg, "value", params[np].param_value, MAX_NAME);
229 if (!params[np].param_value[0]) {
230 char db[MAX_NAME];
231 const char *a = elem_content(po, pe, "Parameter", db, MAX_NAME);
232 if (a && db[0])
233 strncpy(params[np].param_value, db, MAX_NAME - 1);
234 }
235 if (params[np].param_name[0])
236 np++;
237 pp = pg + 1;
238 }
239 ub_app(b, "Property ");
240 ub_app(b, pn);
241 if (pt[0]) {
242 ub_app(b, " As ");
243 ub_app(b, pt);
244 }
245 if (np > 0) {
246 ub_app(b, "(");
247 for (int i = 0; i < np; i++) {
248 if (i > 0)
249 ub_app(b, ", ");
250 ub_app(b, params[i].param_name);
251 if (params[i].param_value[0]) {
252 ub_app(b, " = ");
253 ub_app(b, params[i].param_value);
254 }
255 }
256 ub_app(b, ")");
257 }
258 ub_app(b, ";\n\n");
259}
260
261static void emit_parameter(UdlBuf *b, const char *ps, const char *pe) {
262 char pn[MAX_NAME];

Callers 1

transcode_classFunction · 0.85

Calls 4

extract_attrFunction · 0.85
elem_contentFunction · 0.85
find_sFunction · 0.85
ub_appFunction · 0.85

Tested by

no test coverage detected