Add new function nmem_strsplitx.
[yaz-moved-to-github.git] / src / sc.c
index 9336e60..ef5d097 100644 (file)
--- a/src/sc.c
+++ b/src/sc.c
@@ -1,12 +1,14 @@
 /* This file is part of the YAZ toolkit.
- * Copyright (C) 1995-2008 Index Data
+ * Copyright (C) 1995-2011 Index Data
  * See the file LICENSE for details.
  */
-
 /**
  * \file sc.c
  * \brief Windows Service Control
  */
+#if HAVE_CONFIG_H
+#include <config.h>
+#endif
 
 #ifdef WIN32
 #include <windows.h>
@@ -41,7 +43,7 @@ struct sc_s {
 
 yaz_sc_t yaz_sc_create(const char *service_name, const char *display_name)
 {
-    yaz_sc_t s = xmalloc(sizeof(*s));
+    yaz_sc_t s = (yaz_sc_t) xmalloc(sizeof(*s));
 
     s->service_name = service_name ? xstrdup(service_name) : 0;
     s->display_name = display_name ? xstrdup(display_name) : 0;
@@ -268,7 +270,11 @@ int yaz_sc_program(yaz_sc_t s, int argc, char **argv,
             for (i = 1; i < argc; i++)
             {
                 wrbuf_puts(w, " ");
+                if (strchr(argv[i], ' '))
+                    wrbuf_puts(w, "\"");
                 wrbuf_puts(w, argv[i]);
+                if (strchr(argv[i], ' '))
+                    wrbuf_puts(w, "\"");
             }
             wrbuf_puts(w, " -run \"");
             wrbuf_puts(w, cwdstr);
@@ -373,6 +379,7 @@ void yaz_sc_destroy(yaz_sc_t *s)
 /*
  * Local variables:
  * c-basic-offset: 4
+ * c-file-style: "Stroustrup"
  * indent-tabs-mode: nil
  * End:
  * vim: shiftwidth=4 tabstop=8 expandtab