-static struct viewers *parse_options(void)
-{
- if (opt_viewer == NULL) {
- /* Default is babeltrace */
- return &(viewers[VIEWER_BABELTRACE]);
- }
-
-#if 0
- if (strstr(opt_viewer, viewers[VIEWER_LTTV_GUI].exec_name) == 0) {
- return &(viewers[VIEWER_LTTV_GUI]);
- }
-#endif
-
- /*
- * This means that if -e, --viewers is used, we just override everything
- * with it. For supported viewers like lttv, we could simply detect if "-t"
- * is passed and if not, add the trace directory to it.
- */
- return &(viewers[VIEWER_USER_DEFINED]);
-}
-
-/*
- * Alloc an array of string pointer from a simple string having all options
- * seperated by spaces. Also adds the trace path to the arguments.
- *
- * The returning pointer is ready to be passed to execvp().
- */
-static char **alloc_argv_from_user_opts(char *opts, const char *trace_path)
-{
- int i = 0, ignore_space = 0;
- unsigned int num_opts = 1;
- char **argv, *token = opts;
-
- /* Count number of arguments. */
- do {
- if (*token == ' ') {
- /* Use to ignore consecutive spaces */
- if (!ignore_space) {
- num_opts++;
- }
- ignore_space = 1;
- } else {
- ignore_space = 0;
- }
- token++;
- } while (*token != '\0');
-
- /* Add two here for the NULL terminating element and trace path */
- argv = malloc(sizeof(char *) * (num_opts + 2));
- if (argv == NULL) {
- goto error;
- }
-
- token = strtok(opts, " ");
- while (token != NULL) {
- argv[i] = strdup(token);
- token = strtok(NULL, " ");
- i++;
- }
-
- argv[num_opts] = (char *) trace_path;
- argv[num_opts + 1] = NULL;
-
- return argv;
-
-error:
- return NULL;
-}
-
-/*
- * Alloc an array of string pointer from an array of strings. It also adds
- * the trace path to the argv.
- *
- * The returning pointer is ready to be passed to execvp().
- */
-static char **alloc_argv_from_local_opts(const char **opts, size_t opts_len,
- const char *trace_path)
-{
- char **argv;
- size_t size;
-
- size = sizeof(char *) * opts_len;
-
- /* Add two here for the trace_path and the NULL terminating element. */
- argv = malloc(size + 2);
- if (argv == NULL) {