fixeria has submitted this change. ( 
https://gerrit.osmocom.org/c/libosmocore/+/19577 )

Change subject: vty/command: reflect global attributes in the XML reference
......................................................................

vty/command: reflect global attributes in the XML reference

Given that commands with either/both of the following attributes:

  - CMD_ATTR_DEPRECATED,
  - CMD_ATTR_HIDDEN,

never end up in the XML reference, only CMD_ATTR_IMMEDIATE would
be reflected for commands taking effect immediately as follows:

  <command id='foo'>
    <!-- Global attributes -->
    <attributes scope='global'>
      <attribute doc='This command applies immediately' />
    </attributes>

    <!-- Application specific attributes -->
    <attributes scope='application'>
      <!-- ... -->
    </attributes>

    <params>
      <!-- ... -->
    </params>
  </command>

Change-Id: I8476c1163c23a9a52641987acf3df0b8c49d8f7b
Related: SYS#4937
---
M src/vty/command.c
1 file changed, 26 insertions(+), 0 deletions(-)

Approvals:
  Jenkins Builder: Verified
  dexter: Looks good to me, approved; Verified
  pespin: Looks good to me, but someone else must approve



diff --git a/src/vty/command.c b/src/vty/command.c
index bad2688..30c39a7 100644
--- a/src/vty/command.c
+++ b/src/vty/command.c
@@ -622,6 +622,13 @@

 typedef int (*print_func_t)(void *data, const char *fmt, ...);

+static const struct value_string cmd_attr_desc[] = {
+       { CMD_ATTR_DEPRECATED,          "This command is deprecated" },
+       { CMD_ATTR_HIDDEN,              "This command is hidden" },
+       { CMD_ATTR_IMMEDIATE,           "This command applies immediately" },
+       { 0, NULL }
+};
+
 /*
  * Write one cmd_element as XML via a print_func_t.
  */
@@ -632,6 +639,25 @@

        print_func(data, "    <command id='%s'>%s", xml_string, newline);

+       /* Print global attributes and their description */
+       if (cmd->attr != 0x00) { /* ... if at least one flag is set */
+               print_func(data, "      <attributes scope='global'>%s", 
newline);
+
+               for (i = 0; i < ARRAY_SIZE(cmd_attr_desc) - 1; i++) {
+                       char *xml_att_desc;
+
+                       if (~cmd->attr & cmd_attr_desc[i].value)
+                               continue;
+
+                       xml_att_desc = xml_escape(cmd_attr_desc[i].str);
+                       print_func(data, "        <attribute doc='%s' />%s",
+                                  xml_att_desc, newline);
+                       talloc_free(xml_att_desc);
+               }
+
+               print_func(data, "      </attributes>%s", newline);
+       }
+
        /* Print application specific attributes and their description */
        if (cmd->usrattr != 0x00) { /* ... if at least one flag is set */
                print_func(data, "      <attributes scope='application'>%s", 
newline);

--
To view, visit https://gerrit.osmocom.org/c/libosmocore/+/19577
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: libosmocore
Gerrit-Branch: master
Gerrit-Change-Id: I8476c1163c23a9a52641987acf3df0b8c49d8f7b
Gerrit-Change-Number: 19577
Gerrit-PatchSet: 2
Gerrit-Owner: fixeria <[email protected]>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: dexter <[email protected]>
Gerrit-Reviewer: fixeria <[email protected]>
Gerrit-Reviewer: laforge <[email protected]>
Gerrit-Reviewer: pespin <[email protected]>
Gerrit-MessageType: merged

Reply via email to