Jacek Caban : schtasks: Added support for /f argument in create command.

Alexandre Julliard julliard at winehq.org
Mon Jan 22 15:34:55 CST 2018


Module: wine
Branch: master
Commit: a6a5bca50942fe3b8a432ea99673bad00ef5013f
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=a6a5bca50942fe3b8a432ea99673bad00ef5013f

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Mon Jan 22 17:35:55 2018 +0100

schtasks: Added support for /f argument in create command.

Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 programs/schtasks/schtasks.c       | 7 ++++++-
 programs/schtasks/tests/schtasks.c | 3 +++
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/programs/schtasks/schtasks.c b/programs/schtasks/schtasks.c
index 5967e4a..c6b8586 100644
--- a/programs/schtasks/schtasks.c
+++ b/programs/schtasks/schtasks.c
@@ -183,6 +183,7 @@ static int create_command(int argc, WCHAR *argv[])
 {
     const WCHAR *task_name = NULL, *xml_file = NULL;
     ITaskFolder *root = NULL;
+    LONG flags = TASK_CREATE;
     IRegisteredTask *task;
     VARIANT empty;
     BSTR str, xml;
@@ -217,6 +218,10 @@ static int create_command(int argc, WCHAR *argv[])
             task_name = argv[1];
             argc -= 2;
             argv += 2;
+        }else if(!strcmpiW(argv[0], f_optW)) {
+            flags = TASK_CREATE_OR_UPDATE;
+            argc--;
+            argv++;
         }else {
             FIXME("Unsupported argument %s\n", debugstr_w(argv[0]));
             return 1;
@@ -245,7 +250,7 @@ static int create_command(int argc, WCHAR *argv[])
 
     V_VT(&empty) = VT_EMPTY;
     str = SysAllocString(task_name);
-    hres = ITaskFolder_RegisterTask(root, str, xml, TASK_CREATE, empty, empty,
+    hres = ITaskFolder_RegisterTask(root, str, xml, flags, empty, empty,
                                     TASK_LOGON_NONE, empty, &task);
     SysFreeString(str);
     SysFreeString(xml);
diff --git a/programs/schtasks/tests/schtasks.c b/programs/schtasks/tests/schtasks.c
index 9f1b920..8f7176a 100644
--- a/programs/schtasks/tests/schtasks.c
+++ b/programs/schtasks/tests/schtasks.c
@@ -211,6 +211,9 @@ START_TEST(schtasks)
     r = run_command("schtasks /change /tn wine\\winetest /enable");
     ok(r == 0, "r = %u\n", r);
 
+    r = run_command("schtasks /create /xml test.xml /f /tn wine\\winetest");
+    ok(r == 0, "r = %u\n", r); /* task already exists, but /f argument provided */
+
     r = run_command("schtasks /create /xml test.xml /tn wine\\winetest");
     ok(r == 1, "r = %u\n", r); /* task already exists */
 




More information about the wine-cvs mailing list