From 90d9b9fa6dd12b71e72646d26c596cbf664673e7 Mon Sep 17 00:00:00 2001 From: Alex 'AdUser' Z Date: Fri, 16 Sep 2016 17:08:47 +1000 Subject: [PATCH] * f2b_cmsg_extract_args() now returns argc --- src/cmsg.c | 8 ++++++-- src/cmsg.h | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/cmsg.c b/src/cmsg.c index 94e2fb7..3ce828c 100644 --- a/src/cmsg.c +++ b/src/cmsg.c @@ -11,7 +11,7 @@ f2b_cmsg_convert_args(f2b_cmsg_t *msg) { } } -void +int f2b_cmsg_extract_args(const f2b_cmsg_t *msg, const char **argv) { char prev = '\0'; size_t argc = 0; @@ -22,8 +22,12 @@ f2b_cmsg_extract_args(const f2b_cmsg_t *msg, const char **argv) { for (size_t i = 0; i < msg->size; i++) { if (prev == '\0' && msg->data[i] != '\0') argv[argc] = &msg->data[i], argc++; - if (argc >= DATA_ARGS_MAX) + if (argc >= DATA_ARGS_MAX) { + argc = -1; break; + } prev = msg->data[i]; } + + return argc; } diff --git a/src/cmsg.h b/src/cmsg.h index aa8812a..69935ab 100644 --- a/src/cmsg.h +++ b/src/cmsg.h @@ -50,6 +50,6 @@ typedef struct f2b_cmsg_t { } f2b_cmsg_t; void f2b_cmsg_convert_args(f2b_cmsg_t *msg); -void f2b_cmsg_extract_args(const f2b_cmsg_t *msg, const char **argv); +int f2b_cmsg_extract_args(const f2b_cmsg_t *msg, const char **argv); #endif /* F2B_CMSG_H_ */