*
*/
-#include "../command.h"
-#include "common/argpar/argpar.h"
-#include "common/argpar-utils/argpar-utils.h"
-#include "common/mi-lttng.h"
+#include "../command.hpp"
+#include "common/argpar-utils/argpar-utils.hpp"
+#include "common/mi-lttng.hpp"
+#include "vendor/argpar/argpar.h"
+
#include <lttng/lttng.h>
+
#include <stdio.h>
#ifdef LTTNG_EMBED_HELP
static const char help_msg[] =
#include <lttng-remove-trigger.1.h>
-;
+ ;
#endif
enum {
OPT_OWNER_UID,
};
-static const
-struct argpar_opt_descr remove_trigger_options[] = {
+static const struct argpar_opt_descr remove_trigger_options[] = {
{ OPT_HELP, 'h', "help", false },
{ OPT_LIST_OPTIONS, '\0', "list-options", false },
{ OPT_OWNER_UID, '\0', "owner-uid", true },
ARGPAR_OPT_DESCR_SENTINEL,
};
-static
-bool assign_string(char **dest, const char *src, const char *opt_name)
+static bool assign_string(char **dest, const char *src, const char *opt_name)
{
bool ret;
{
enum lttng_error_code ret_code;
int ret;
- struct argpar_iter *argpar_iter = NULL;
- const struct argpar_item *argpar_item = NULL;
- const char *name = NULL;
+ struct argpar_iter *argpar_iter = nullptr;
+ const struct argpar_item *argpar_item = nullptr;
+ const char *name = nullptr;
int i;
- struct lttng_triggers *triggers = NULL;
+ struct lttng_triggers *triggers = nullptr;
unsigned int triggers_count;
enum lttng_trigger_status trigger_status;
- const struct lttng_trigger *trigger_to_remove = NULL;
- char *owner_uid = NULL;
+ const struct lttng_trigger *trigger_to_remove = nullptr;
+ char *owner_uid = nullptr;
long long uid;
- struct mi_writer *mi_writer = NULL;
+ struct mi_writer *mi_writer = nullptr;
+ const char **args;
if (lttng_opt_mi) {
- mi_writer = mi_lttng_writer_create(
- fileno(stdout), lttng_opt_mi);
+ mi_writer = mi_lttng_writer_create(fileno(stdout), lttng_opt_mi);
if (!mi_writer) {
ret = CMD_ERROR;
goto error;
/* Open command element. */
ret = mi_lttng_writer_command_open(mi_writer,
- mi_lttng_element_command_remove_trigger);
+ mi_lttng_element_command_remove_trigger);
if (ret) {
ret = CMD_ERROR;
goto error;
}
/* Open output element. */
- ret = mi_lttng_writer_open_element(
- mi_writer, mi_lttng_element_command_output);
+ ret = mi_lttng_writer_open_element(mi_writer, mi_lttng_element_command_output);
if (ret) {
ret = CMD_ERROR;
goto error;
}
}
- argc--;
- argv++;
+ args = argv + 1;
- argpar_iter = argpar_iter_create(argc, argv, remove_trigger_options);
+ argpar_iter = argpar_iter_create(argc - 1, args, remove_trigger_options);
if (!argpar_iter) {
ERR("Failed to allocate an argpar iter.");
goto error;
while (true) {
enum parse_next_item_status status;
- status = parse_next_item(argpar_iter, &argpar_item, argv,
- true, NULL);
- if (status == PARSE_NEXT_ITEM_STATUS_ERROR) {
+ status =
+ parse_next_item(argpar_iter, &argpar_item, 1, args, true, nullptr, nullptr);
+ if (status == PARSE_NEXT_ITEM_STATUS_ERROR ||
+ status == PARSE_NEXT_ITEM_STATUS_ERROR_MEMORY) {
goto error;
} else if (status == PARSE_NEXT_ITEM_STATUS_END) {
break;
assert(status == PARSE_NEXT_ITEM_STATUS_OK);
if (argpar_item_type(argpar_item) == ARGPAR_ITEM_TYPE_OPT) {
- const struct argpar_opt_descr *descr =
- argpar_item_opt_descr(argpar_item);
+ const struct argpar_opt_descr *descr = argpar_item_opt_descr(argpar_item);
const char *arg = argpar_item_opt_arg(argpar_item);
switch (descr->id) {
ret = 0;
goto end;
case OPT_LIST_OPTIONS:
- list_cmd_options_argpar(stdout,
- remove_trigger_options);
+ list_cmd_options_argpar(stdout, remove_trigger_options);
ret = 0;
goto end;
case OPT_OWNER_UID:
{
- if (!assign_string(&owner_uid, arg,
- "--owner-uid")) {
+ if (!assign_string(&owner_uid, arg, "--owner-uid")) {
goto error;
}
break;
abort();
}
- trigger_status = lttng_trigger_get_owner_uid(
- trigger, &trigger_uid);
+ trigger_status = lttng_trigger_get_owner_uid(trigger, &trigger_uid);
LTTNG_ASSERT(trigger_status == LTTNG_TRIGGER_STATUS_OK);
if (trigger_uid == uid && strcmp(trigger_name, name) == 0) {
}
if (lttng_opt_mi) {
- ret_code = lttng_trigger_mi_serialize(
- trigger_to_remove, mi_writer, NULL);
+ ret_code = lttng_trigger_mi_serialize(trigger_to_remove, mi_writer, nullptr);
if (ret_code != LTTNG_OK) {
goto error;
}
goto cleanup;
}
- mi_ret = mi_lttng_writer_write_element_bool(mi_writer,
- mi_lttng_element_command_success, ret ? 0 : 1);
+ mi_ret = mi_lttng_writer_write_element_bool(
+ mi_writer, mi_lttng_element_command_success, ret ? 0 : 1);
if (mi_ret) {
ret = 1;
goto cleanup;