com_lsblob: Print an error message if no blob matched.
[paraslash.git] / write_common.c
index 5988faf77a5cd13f1b4e1930299b8c90073efc3d..b85699367acd45d88eb4044da6450d2717f48437 100644 (file)
@@ -35,10 +35,10 @@ void writer_init(void)
                writers[i].init(&writers[i]);
 }
 /**
- * check if given string is a valid command line for any writer
+ * Check if given string is a valid command line for any writer.
  *
- * \param \wa string of the form writer_name:options
- * \param writer_num contains the number of the writer upon success
+ * \param \wa String of the form writer_name:options.
+ * \param writer_num Contains the number of the writer upon success.
  *
  * This function checks whether \a wa starts with the name of a supported
  * paraslash writer, optionally followed by a colon and any options for that
@@ -47,14 +47,13 @@ void writer_init(void)
  *
  * \return On success, a pointer to the gengetopt args info struct is returned
  * and \a writer_num contains the number of the writer. Otherwise this function
- * returns \p NULL.
+ * prints an error message and calls exit().
  */
-void *check_writer_arg(const char *wa, int *writer_num)
+void *check_writer_arg_or_die(const char *wa, int *writer_num)
 {
        int i;
 
-       *writer_num = -E_WRITE_COMMON_SYNTAX;
-       PARA_INFO_LOG("checking  %s\n", wa);
+       PARA_INFO_LOG("checking %s\n", wa);
        FOR_EACH_WRITER(i) {
                const char *name = writer_names[i];
                size_t len = strlen(name);
@@ -69,8 +68,8 @@ void *check_writer_arg(const char *wa, int *writer_num)
                *writer_num = i;
                return writers[i].parse_config_or_die(c? wa + len + 1 : "");
        }
-       PARA_ERROR_LOG("writer not found\n");
-       return NULL;
+       PARA_EMERG_LOG("invalid writer %s\n", wa);
+       exit(EXIT_FAILURE);
 }
 
 /**
@@ -97,37 +96,6 @@ void register_writer_node(struct writer_node *wn, struct btr_node *parent)
        register_task(&wn->task);
 }
 
-/**
- * Setup a writer node with the default writer.
- *
- * If arg is \p NULL, the OS-dependent default writer is used with an empty
- * configuration string.  It defaults to alsa for Linux, osx for OS X, oss for
- * *BSD and the file writer if neither of these is supported.
- *
- * Once the writer configuration has been retrieved, a writer node is created,
- * its buffer tree node is added to the buffer tree as a child of the given
- * parent.
- *
- * Finally, the new writer node's taks structure is initialized and registered
- * to the paraslash scheduler.
- *
- * \return A pointer to the allocated writer node group.
- */
-int setup_writer_node(const char *arg, struct btr_node *parent,
-               struct writer_node *wn)
-{
-       if (arg)
-               wn->conf = check_writer_arg(arg, &wn->writer_num);
-       else {
-               wn->writer_num = DEFAULT_WRITER;
-               wn->conf = writers[DEFAULT_WRITER].parse_config_or_die("");
-       }
-       if (!wn->conf)
-               return -E_WRITE_COMMON_SYNTAX;
-       register_writer_node(wn, parent);
-       return 1;
-}
-
 /**
  * Print the help text of all writers to stdout.
  *