From: Amine Khaldi Date: Thu, 9 Oct 2014 13:03:36 +0000 (+0000) Subject: [TASKKILL] X-Git-Tag: backups/0.3.17@66124~108 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=59df91f2ea4ec86450ca8d9a55041391d7185b08 [TASKKILL] * Sync with Wine 1.7.27. CORE-8540 svn path=/trunk/; revision=64648 --- diff --git a/reactos/base/applications/cmdutils/taskkill/lang/de-DE.rc b/reactos/base/applications/cmdutils/taskkill/lang/de-DE.rc index fa3b99ed95a..ea43a9bae17 100644 --- a/reactos/base/applications/cmdutils/taskkill/lang/de-DE.rc +++ b/reactos/base/applications/cmdutils/taskkill/lang/de-DE.rc @@ -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" +} diff --git a/reactos/base/applications/cmdutils/taskkill/lang/en-US.rc b/reactos/base/applications/cmdutils/taskkill/lang/en-US.rc index aea246ac70b..1e87249cb11 100644 --- a/reactos/base/applications/cmdutils/taskkill/lang/en-US.rc +++ b/reactos/base/applications/cmdutils/taskkill/lang/en-US.rc @@ -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" +} diff --git a/reactos/base/applications/cmdutils/taskkill/lang/ro-RO.rc b/reactos/base/applications/cmdutils/taskkill/lang/ro-RO.rc index a0767a855a5..16b150197d7 100644 --- a/reactos/base/applications/cmdutils/taskkill/lang/ro-RO.rc +++ b/reactos/base/applications/cmdutils/taskkill/lang/ro-RO.rc @@ -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" +} diff --git a/reactos/base/applications/cmdutils/taskkill/lang/ru-RU.rc b/reactos/base/applications/cmdutils/taskkill/lang/ru-RU.rc index f6e54e339bb..f2a134afe1d 100644 --- a/reactos/base/applications/cmdutils/taskkill/lang/ru-RU.rc +++ b/reactos/base/applications/cmdutils/taskkill/lang/ru-RU.rc @@ -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" +} diff --git a/reactos/base/applications/cmdutils/taskkill/lang/sq-AL.rc b/reactos/base/applications/cmdutils/taskkill/lang/sq-AL.rc index 49e58aa02f1..c4ee3dd1bc3 100644 --- a/reactos/base/applications/cmdutils/taskkill/lang/sq-AL.rc +++ b/reactos/base/applications/cmdutils/taskkill/lang/sq-AL.rc @@ -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" +} diff --git a/reactos/base/applications/cmdutils/taskkill/taskkill.c b/reactos/base/applications/cmdutils/taskkill/taskkill.c index 7a4d7f43bc2..894e06a5ea5 100644 --- a/reactos/base/applications/cmdutils/taskkill/taskkill.c +++ b/reactos/base/applications/cmdutils/taskkill/taskkill.c @@ -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; diff --git a/reactos/media/doc/README.WINE b/reactos/media/doc/README.WINE index e76c9fb25b3..b3c61bc0a66 100644 --- a/reactos/media/doc/README.WINE +++ b/reactos/media/doc/README.WINE @@ -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