This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
Neels Hofmeyr gerrit-no-reply at lists.osmocom.orgReview at https://gerrit.osmocom.org/5488 cosmetic: logging: simplify logging level VTY cmd doc composition In log_vty_command_description(), which composes a VTY command doc string, use talloc_asprintf_append() to compose the doc string instead of the strangely convoluted way the function worked before this patch. Looking at LOGGING_STR, I came across this function and "by accident" started to refactor it, to understand what it is doing. I considered dropping the patch but since it is already here I might as well submit it. Change-Id: Ib818e2d524c750f07bea2aa585011f40e3ee82e8 --- M src/logging.c 1 file changed, 15 insertions(+), 40 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/88/5488/1 diff --git a/src/logging.c b/src/logging.c index 20ec443..8e65208 100644 --- a/src/logging.c +++ b/src/logging.c @@ -904,59 +904,34 @@ { struct log_info *info = osmo_log_info; char *str; - int i, ret, len = 0, offset = 0, rem; - unsigned int size = - strlen(LOGGING_STR - "Set the log level for a specified category\n") + 1; + int i; assert_loginfo(); - for (i = 0; i < info->num_cat; i++) { - if (info->cat[i].name == NULL) - continue; - size += strlen(info->cat[i].description) + 1; - } - - for (i = 0; i < LOGLEVEL_DEFS; i++) - size += strlen(loglevel_descriptions[i]) + 1; - - size += strlen("Global setting for all subsystems") + 1; - rem = size; - str = talloc_zero_size(tall_log_ctx, size); + str = talloc_zero_size(tall_log_ctx, 4096); if (!str) return NULL; - ret = snprintf(str + offset, rem, LOGGING_STR - "Set the log level for a specified category\n"); - if (ret < 0) - goto err; - OSMO_SNPRINTF_RET(ret, rem, offset, len); +#define SPRINTF(fmt, args...) \ + do {\ + str = talloc_asprintf_append(str, fmt, ## args); \ + if (!str) \ + return NULL; \ + } while(0) - ret = snprintf(str + offset, rem, - "Global setting for all subsystems\n"); - if (ret < 0) - goto err; - OSMO_SNPRINTF_RET(ret, rem, offset, len); + SPRINTF(LOGGING_STR "Set the log level for a specified category\n"); + SPRINTF("Global setting for all subsystems\n"); for (i = 0; i < info->num_cat; i++) { if (info->cat[i].name == NULL) continue; - ret = snprintf(str + offset, rem, "%s\n", - info->cat[i].description); - if (ret < 0) - goto err; - OSMO_SNPRINTF_RET(ret, rem, offset, len); + SPRINTF("%s\n", info->cat[i].description); } - for (i = 0; i < LOGLEVEL_DEFS; i++) { - ret = snprintf(str + offset, rem, "%s\n", - loglevel_descriptions[i]); - if (ret < 0) - goto err; - OSMO_SNPRINTF_RET(ret, rem, offset, len); - } -err: - str[size-1] = '\0'; + for (i = 0; i < LOGLEVEL_DEFS; i++) + SPRINTF("%s\n", loglevel_descriptions[i]); + return str; +#undef SPRINTF } /*! Initialize the Osmocom logging core -- To view, visit https://gerrit.osmocom.org/5488 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ib818e2d524c750f07bea2aa585011f40e3ee82e8 Gerrit-PatchSet: 1 Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Owner: Neels Hofmeyr <nhofmeyr at sysmocom.de>