[TASKKILL]
authorAmine Khaldi <amine.khaldi@reactos.org>
Thu, 9 Oct 2014 13:03:36 +0000 (13:03 +0000)
committerAmine Khaldi <amine.khaldi@reactos.org>
Thu, 9 Oct 2014 13:03:36 +0000 (13:03 +0000)
* Sync with Wine 1.7.27.
CORE-8540

svn path=/trunk/; revision=64648

reactos/base/applications/cmdutils/taskkill/lang/de-DE.rc
reactos/base/applications/cmdutils/taskkill/lang/en-US.rc
reactos/base/applications/cmdutils/taskkill/lang/ro-RO.rc
reactos/base/applications/cmdutils/taskkill/lang/ru-RU.rc
reactos/base/applications/cmdutils/taskkill/lang/sq-AL.rc
reactos/base/applications/cmdutils/taskkill/taskkill.c
reactos/media/doc/README.WINE

index fa3b99e..ea43a9b 100644 (file)
@@ -1,19 +1,19 @@
 LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
 
 STRINGTABLE
-BEGIN
-    STRING_USAGE "taskkill [/?] [/f] [/im Prozess Name | /pid Prozess ID]\n"
-    STRING_INVALID_OPTION "Fehler: Unbekannte oder ungülige Kommandozeilenoption angegeben.\n"
-    STRING_INVALID_PARAM "Fehler: Ungültiger Kommandozeilenparameter angegeben.\n"
-    STRING_MISSING_OPTION "Fehler: Eine der Optionen /im oder /pid muss angegeben werden.\n"
-    STRING_MISSING_PARAM "Fehler: Option %1 erwartet einen Kommandozeilenparameter.\n"
-    STRING_MUTUAL_EXCLUSIVE "Fehler: Optionen /im und /pid schließen sich gegenseitig aus.\n"
-    STRING_CLOSE_PID_SEARCH "Schließen-Befehl an oberstes Fenster des Prozesses mit PID %1!u! gesendet.\n"
-    STRING_CLOSE_PROC_SRCH "Schließen-Befehl an oberstes Fenster des Prozesses ""%1"" mit PID %2!u! gesendet.\n"
-    STRING_TERM_PID_SEARCH "Prozess mit PID %1!u! wurde erzwungenermaßen beendet.\n"
-    STRING_TERM_PROC_SEARCH "Prozess ""%1"" mit PID %2!u! wurde erzwungenermaßen beendet.\n"
-    STRING_SEARCH_FAILED "Fehler: Konnte Prozess ""%1"" nicht finden.\n"
-    STRING_ENUM_FAILED "Fehler: Prozessliste kann nicht aufgebaut werden.\n"
-    STRING_TERMINATE_FAILED "Fehler: Prozess ""%1"" kann nicht beendet werden.\n"
-    STRING_SELF_TERMINATION "Fehler: Der Prozess kann sich nicht selbst beenden.\n"
-END
+{
+    STRING_USAGE, "Usage: taskkill [/?] [/f] [/im Prozess Name | /pid Prozess ID]\n"
+    STRING_INVALID_OPTION, "Fehler: Unbekannte oder ungülige Kommandozeilenoption angegeben.\n"
+    STRING_INVALID_PARAM, "Fehler: Ungültiger Kommandozeilenparameter angegeben.\n"
+    STRING_MISSING_OPTION, "Fehler: Eine der Optionen /im oder /pid muss angegeben werden.\n"
+    STRING_MISSING_PARAM, "Fehler: Option %1 erwartet einen Kommandozeilenparameter.\n"
+    STRING_MUTUAL_EXCLUSIVE, "Fehler: Optionen /im und /pid schließen sich gegenseitig aus.\n"
+    STRING_CLOSE_PID_SEARCH, "Schließen-Befehl an oberstes Fenster des Prozesses mit PID %1!u! gesendet.\n"
+    STRING_CLOSE_PROC_SRCH, "Schließen-Befehl an oberstes Fenster des Prozesses ""%1"" mit PID %2!u! gesendet.\n"
+    STRING_TERM_PID_SEARCH, "Prozess mit PID %1!u! wurde erzwungenermaßen beendet.\n"
+    STRING_TERM_PROC_SEARCH, "Prozess ""%1"" mit PID %2!u! wurde erzwungenermaßen beendet.\n"
+    STRING_SEARCH_FAILED, "Fehler: Konnte Prozess ""%1"" nicht finden.\n"
+    STRING_ENUM_FAILED, "Fehler: Prozessliste kann nicht aufgebaut werden.\n"
+    STRING_TERMINATE_FAILED, "Fehler: Prozess ""%1"" kann nicht beendet werden.\n"
+    STRING_SELF_TERMINATION, "Fehler: Der Prozess kann sich nicht selbst beenden.\n"
+}
index aea246a..1e87249 100644 (file)
@@ -1,19 +1,19 @@
 LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT
 
 STRINGTABLE
-BEGIN
-    STRING_USAGE "taskkill [/?] [/f] [/im ProcessName | /pid ProcessID]\n"
-    STRING_INVALID_OPTION "Error: Unknown or invalid command line option specified.\n"
-    STRING_INVALID_PARAM "Error: Invalid command line parameter specified.\n"
-    STRING_MISSING_OPTION "Error: One of options /im or /pid must be specified.\n"
-    STRING_MISSING_PARAM "Error: Option %1 expects a command line parameter.\n"
-    STRING_MUTUAL_EXCLUSIVE "Error: Options /im and /pid are mutually exclusive.\n"
-    STRING_CLOSE_PID_SEARCH "Close message sent to top-level windows of process with PID %1!u!.\n"
-    STRING_CLOSE_PROC_SRCH "Close message sent to top-level windows of process ""%1"" with PID %2!u!.\n"
-    STRING_TERM_PID_SEARCH "Process with PID %1!u! was forcibly terminated.\n"
-    STRING_TERM_PROC_SEARCH "Process ""%1"" with PID %2!u! was forcibly terminated.\n"
-    STRING_SEARCH_FAILED "Error: Could not find process ""%1"".\n"
-    STRING_ENUM_FAILED "Error: Unable to enumerate the process list.\n"
-    STRING_TERMINATE_FAILED "Error: Unable to terminate process ""%1"".\n"
-    STRING_SELF_TERMINATION "Error: Process self-termination is not permitted.\n"
-END
+{
+    STRING_USAGE, "Usage: taskkill [/?] [/f] [/im ProcessName | /pid ProcessID]\n"
+    STRING_INVALID_OPTION, "Error: Unknown or invalid command line option specified.\n"
+    STRING_INVALID_PARAM, "Error: Invalid command line parameter specified.\n"
+    STRING_MISSING_OPTION, "Error: One of options /im or /pid must be specified.\n"
+    STRING_MISSING_PARAM, "Error: Option %1 expects a command line parameter.\n"
+    STRING_MUTUAL_EXCLUSIVE, "Error: Options /im and /pid are mutually exclusive.\n"
+    STRING_CLOSE_PID_SEARCH, "Close message sent to top-level windows of process with PID %1!u!.\n"
+    STRING_CLOSE_PROC_SRCH, "Close message sent to top-level windows of process ""%1"" with PID %2!u!.\n"
+    STRING_TERM_PID_SEARCH, "Process with PID %1!u! was forcibly terminated.\n"
+    STRING_TERM_PROC_SEARCH, "Process ""%1"" with PID %2!u! was forcibly terminated.\n"
+    STRING_SEARCH_FAILED, "Error: Could not find process ""%1"".\n"
+    STRING_ENUM_FAILED, "Error: Unable to enumerate the process list.\n"
+    STRING_TERMINATE_FAILED, "Error: Unable to terminate process ""%1"".\n"
+    STRING_SELF_TERMINATION, "Error: Process self-termination is not permitted.\n"
+}
index a0767a8..16b1501 100644 (file)
@@ -3,19 +3,19 @@
 LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL
 
 STRINGTABLE
-BEGIN
-    STRING_USAGE "taskkill [/?] [/f] [/im NumeProces | /pid IdProces]\n"
-    STRING_INVALID_OPTION "Eroare: Opțiune specificată nevalidă sau necunoscută.\n"
-    STRING_INVALID_PARAM "Eroare: Parametrul de comandă specificat este nevalid.\n"
-    STRING_MISSING_OPTION "Eroare: Trebuie specificată una dintre opțiunile /im sau /pid.\n"
-    STRING_MISSING_PARAM "Eroare: Opțiunea %1 necesită un parametru.\n"
-    STRING_MUTUAL_EXCLUSIVE "Eroare: Opțiunile /im și /pid sunt reciproc exclusive.\n"
-    STRING_CLOSE_PID_SEARCH "Către fereastra procesului cu PID %1!u! a fost emis un mesaj de închidere.\n"
-    STRING_CLOSE_PROC_SRCH "Către fereastra procesului «%1» cu PID %2!u! a fost emis un mesaj de închidere.\n"
-    STRING_TERM_PID_SEARCH "Procesul cu PID %1!u! a fost oprit în mod forțat.\n"
-    STRING_TERM_PROC_SEARCH "Procesul «%1» cu PID %2!u! a fost oprit în mod forțat.\n"
-    STRING_SEARCH_FAILED "Eroare: Nu se poate găsi procesul «%1».\n"
-    STRING_ENUM_FAILED "Eroare: Nu se poate enumera lista de procese.\n"
-    STRING_TERMINATE_FAILED "Eroare: Procesul «%1» nu poate fi oprit.\n"
-    STRING_SELF_TERMINATION "Eroare: Auto-terminarea nu este permisă.\n"
-END
+{
+    STRING_USAGE, "Usage: taskkill [/?] [/f] [/im NumeProces | /pid IdProces]\n"
+    STRING_INVALID_OPTION, "Eroare: Opțiune specificată nevalidă sau necunoscută.\n"
+    STRING_INVALID_PARAM, "Eroare: Parametrul de comandă specificat este nevalid.\n"
+    STRING_MISSING_OPTION, "Eroare: Trebuie specificată una dintre opțiunile /im sau /pid.\n"
+    STRING_MISSING_PARAM, "Eroare: Opțiunea %1 necesită un parametru.\n"
+    STRING_MUTUAL_EXCLUSIVE, "Eroare: Opțiunile /im și /pid sunt reciproc exclusive.\n"
+    STRING_CLOSE_PID_SEARCH, "Către fereastra procesului cu PID %1!u! a fost emis un mesaj de închidere.\n"
+    STRING_CLOSE_PROC_SRCH, "Către fereastra procesului «%1» cu PID %2!u! a fost emis un mesaj de închidere.\n"
+    STRING_TERM_PID_SEARCH, "Procesul cu PID %1!u! a fost oprit în mod forțat.\n"
+    STRING_TERM_PROC_SEARCH, "Procesul «%1» cu PID %2!u! a fost oprit în mod forțat.\n"
+    STRING_SEARCH_FAILED, "Eroare: Nu se poate găsi procesul «%1».\n"
+    STRING_ENUM_FAILED, "Eroare: Nu se poate enumera lista de procese.\n"
+    STRING_TERMINATE_FAILED, "Eroare: Procesul «%1» nu poate fi oprit.\n"
+    STRING_SELF_TERMINATION, "Eroare: Auto-terminarea nu este permisă.\n"
+}
index f6e54e3..f2a134a 100644 (file)
@@ -1,19 +1,19 @@
 LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
 
 STRINGTABLE
-BEGIN
-    STRING_USAGE "TASKKILL [/F] [/IM <образ> | /PID <процесс>]\n"
-    STRING_INVALID_OPTION "Error: Unknown or invalid command line option specified.\n"
-    STRING_INVALID_PARAM "Error: Invalid command line parameter specified.\n"
-    STRING_MISSING_OPTION "Error: One of options /im or /pid must be specified.\n"
-    STRING_MISSING_PARAM "Error: Option %1 expects a command line parameter.\n"
-    STRING_MUTUAL_EXCLUSIVE "Error: Options /im and /pid are mutually exclusive.\n"
-    STRING_CLOSE_PID_SEARCH "Close message sent to top-level windows of process with PID %1!u!.\n"
-    STRING_CLOSE_PROC_SRCH "Close message sent to top-level windows of process ""%1"" with PID %2!u!.\n"
-    STRING_TERM_PID_SEARCH "Process with PID %1!u! was forcibly terminated.\n"
-    STRING_TERM_PROC_SEARCH "Process ""%1"" with PID %2!u! was forcibly terminated.\n"
-    STRING_SEARCH_FAILED "Error: Could not find process ""%1"".\n"
-    STRING_ENUM_FAILED "Error: Unable to enumerate the process list.\n"
-    STRING_TERMINATE_FAILED "Error: Unable to terminate process ""%1"".\n"
-    STRING_SELF_TERMINATION "Error: Process self-termination is not permitted.\n"
-END
+{
+    STRING_USAGE, "Usage: TASKKILL [/F] [/IM <образ> | /PID <процесс>]\n"
+    STRING_INVALID_OPTION, "Error: Unknown or invalid command line option specified.\n"
+    STRING_INVALID_PARAM, "Error: Invalid command line parameter specified.\n"
+    STRING_MISSING_OPTION, "Error: One of options /im or /pid must be specified.\n"
+    STRING_MISSING_PARAM, "Error: Option %1 expects a command line parameter.\n"
+    STRING_MUTUAL_EXCLUSIVE, "Error: Options /im and /pid are mutually exclusive.\n"
+    STRING_CLOSE_PID_SEARCH, "Close message sent to top-level windows of process with PID %1!u!.\n"
+    STRING_CLOSE_PROC_SRCH, "Close message sent to top-level windows of process ""%1"" with PID %2!u!.\n"
+    STRING_TERM_PID_SEARCH, "Process with PID %1!u! was forcibly terminated.\n"
+    STRING_TERM_PROC_SEARCH, "Process ""%1"" with PID %2!u! was forcibly terminated.\n"
+    STRING_SEARCH_FAILED, "Error: Could not find process ""%1"".\n"
+    STRING_ENUM_FAILED, "Error: Unable to enumerate the process list.\n"
+    STRING_TERMINATE_FAILED, "Error: Unable to terminate process ""%1"".\n"
+    STRING_SELF_TERMINATION, "Error: Process self-termination is not permitted.\n"
+}
index 49e58aa..c4ee3dd 100644 (file)
@@ -5,19 +5,19 @@
 LANGUAGE LANG_ALBANIAN, SUBLANG_NEUTRAL
 
 STRINGTABLE
-BEGIN
-    STRING_USAGE "taskkill [/?] [/f] [/im ProcessName | /pid ProcessID]\n"
-    STRING_INVALID_OPTION "Gabim: Panjohur ose i pavlefshëm opsioni linjes komandes i specifikuar.\n"
-    STRING_INVALID_PARAM "Gabim: Pavlefshëm parametri i specifikuar ne linjen e komandes.\n"
-    STRING_MISSING_OPTION "Gabim: Njera nga opsionet /im ose /pid duhet te specifikohet.\n"
-    STRING_MISSING_PARAM "Gabim: Opsioni %1 kalon parametrin i linjes se komandes.\n"
-    STRING_MUTUAL_EXCLUSIVE "Gabim: Opsioni /im dhe /pid janë exclusiv reciprokisht.\n"
-    STRING_CLOSE_PID_SEARCH "Mbyll mesazhin e derguar ne dritaren e nivelin-lart te proceseve me PID %1!u!.\n"
-    STRING_CLOSE_PROC_SRCH "Mbyll mesazhin e derguar ne dritaren e nivelin-lart te proceseve ""%1"" me PID %2!u!.\n"
-    STRING_TERM_PID_SEARCH "Proceso me PID %1!u! u mbyll me force.\n"
-    STRING_TERM_PROC_SEARCH "Proces ""%1"" me PID %2!u! u mbyll me force.\n"
-    STRING_SEARCH_FAILED "Gabim: Nuk u gjend procesi ""%1"".\n"
-    STRING_ENUM_FAILED "Gabim: Në pamundësi për të numëruar listën proceseve.\n"
-    STRING_TERMINATE_FAILED "Gabim: Pamundur mbyllja e proceseve ""%1"".\n"
-    STRING_SELF_TERMINATION "Gabim: Procesi vetë-përfundimi nuk është i lejuar.\n"
-END
+{
+    STRING_USAGE, "Usage: taskkill [/?] [/f] [/im ProcessName | /pid ProcessID]\n"
+    STRING_INVALID_OPTION, "Gabim: Panjohur ose i pavlefshëm opsioni linjes komandes i specifikuar.\n"
+    STRING_INVALID_PARAM, "Gabim: Pavlefshëm parametri i specifikuar ne linjen e komandes.\n"
+    STRING_MISSING_OPTION, "Gabim: Njera nga opsionet /im ose /pid duhet te specifikohet.\n"
+    STRING_MISSING_PARAM, "Gabim: Opsioni %1 kalon parametrin i linjes se komandes.\n"
+    STRING_MUTUAL_EXCLUSIVE, "Gabim: Opsioni /im dhe /pid janë exclusiv reciprokisht.\n"
+    STRING_CLOSE_PID_SEARCH, "Mbyll mesazhin e derguar ne dritaren e nivelin-lart te proceseve me PID %1!u!.\n"
+    STRING_CLOSE_PROC_SRCH, "Mbyll mesazhin e derguar ne dritaren e nivelin-lart te proceseve ""%1"" me PID %2!u!.\n"
+    STRING_TERM_PID_SEARCH, "Proceso me PID %1!u! u mbyll me force.\n"
+    STRING_TERM_PROC_SEARCH, "Proces ""%1"" me PID %2!u! u mbyll me force.\n"
+    STRING_SEARCH_FAILED, "Gabim: Nuk u gjend procesi ""%1"".\n"
+    STRING_ENUM_FAILED, "Gabim: Në pamundësi për të numëruar listën proceseve.\n"
+    STRING_TERMINATE_FAILED, "Gabim: Pamundur mbyllja e proceseve ""%1"".\n"
+    STRING_SELF_TERMINATION, "Gabim: Procesi vetë-përfundimi nuk është i lejuar.\n"
+}
index 7a4d7f4..894e06a 100644 (file)
@@ -32,7 +32,7 @@
 
 WINE_DEFAULT_DEBUG_CHANNEL(taskkill);
 
-static int force_termination;
+static BOOL force_termination = FALSE;
 
 static WCHAR **task_list;
 static unsigned int task_count;
@@ -450,36 +450,46 @@ static BOOL add_to_task_list(WCHAR *name)
  * options are detected as parameters when placed after options that accept one. */
 static BOOL process_arguments(int argc, WCHAR *argv[])
 {
-    static const WCHAR slashForceTerminate[] = {'/','f',0};
-    static const WCHAR slashImage[] = {'/','i','m',0};
-    static const WCHAR slashPID[] = {'/','p','i','d',0};
-    static const WCHAR slashHelp[] = {'/','?',0};
-    static const WCHAR slashTerminateChildren[] = {'/','t',0};
+    static const WCHAR opForceTerminate[] = {'f',0};
+    static const WCHAR opImage[] = {'i','m',0};
+    static const WCHAR opPID[] = {'p','i','d',0};
+    static const WCHAR opHelp[] = {'?',0};
+    static const WCHAR opTerminateChildren[] = {'t',0};
 
     if (argc > 1)
     {
         int i;
-        BOOL has_im = 0, has_pid = 0;
+        WCHAR *argdata;
+        BOOL has_im = FALSE, has_pid = FALSE;
 
         /* Only the lone help option is recognized. */
-        if (argc == 2 && !strcmpW(slashHelp, argv[1]))
+        if (argc == 2)
         {
-            taskkill_message(STRING_USAGE);
-            exit(0);
+            argdata = argv[1];
+            if ((*argdata == '/' || *argdata == '-') && !strcmpW(opHelp, argdata + 1))
+            {
+                taskkill_message(STRING_USAGE);
+                exit(0);
+            }
         }
 
         for (i = 1; i < argc; i++)
         {
-            int got_im = 0, got_pid = 0;
+            BOOL got_im = FALSE, got_pid = FALSE;
+
+            argdata = argv[i];
+            if (*argdata != '/' && *argdata != '-')
+                goto invalid;
+            argdata++;
 
-            if (!strcmpiW(slashTerminateChildren, argv[i]))
-                WINE_FIXME("/T not supported\n");
-            if (!strcmpiW(slashForceTerminate, argv[i]))
-                force_termination = 1;
+            if (!strcmpiW(opTerminateChildren, argdata))
+                WINE_FIXME("argument T not supported\n");
+            if (!strcmpiW(opForceTerminate, argdata))
+                force_termination = TRUE;
             /* Options /IM and /PID appear to behave identically, except for
              * the fact that they cannot be specified at the same time. */
-            else if ((got_im = !strcmpiW(slashImage, argv[i])) ||
-                     (got_pid = !strcmpiW(slashPID, argv[i])))
+            else if ((got_im = !strcmpiW(opImage, argdata)) ||
+                     (got_pid = !strcmpiW(opPID, argdata)))
             {
                 if (!argv[i + 1])
                 {
@@ -488,8 +498,8 @@ static BOOL process_arguments(int argc, WCHAR *argv[])
                     return FALSE;
                 }
 
-                if (got_im) has_im = 1;
-                if (got_pid) has_pid = 1;
+                if (got_im) has_im = TRUE;
+                if (got_pid) has_pid = TRUE;
 
                 if (has_im && has_pid)
                 {
@@ -504,6 +514,7 @@ static BOOL process_arguments(int argc, WCHAR *argv[])
             }
             else
             {
+                invalid:
                 taskkill_message(STRING_INVALID_OPTION);
                 taskkill_message(STRING_USAGE);
                 return FALSE;
index e76c9fb..b3c61bc 100644 (file)
@@ -234,7 +234,7 @@ reactos/dll/cpl/inetcpl               # Synced to Wine-1.7.27
 ReactOS shares the following programs with Winehq.
 
 reactos/base/applications/cmdutils/reg      # Synced to Wine-1.7.27
-reactos/base/applications/cmdutils/taskkill # Synced to Wine-1.7.1
+reactos/base/applications/cmdutils/taskkill # Synced to Wine-1.7.27
 reactos/base/applications/cmdutils/wmic     # Synced to Wine-1.7.1
 reactos/base/applications/cmdutils/xcopy    # Synced to Wine-1.7.1
 reactos/base/applications/games/winmine     # Forked at Wine-1_3_5