From: Zhiyi Zhang zzhang@codeweavers.com
Some filters such as STATUS and CPUTIME are not implemented.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48596 --- po/ar.po | 6 + po/ast.po | 6 + po/bg.po | 5 + po/ca.po | 6 + po/cs.po | 6 + po/da.po | 6 + po/de.po | 6 + po/el.po | 4 + po/en.po | 4 + po/en_US.po | 4 + po/eo.po | 6 + po/es.po | 6 + po/fa.po | 5 + po/fi.po | 6 + po/fr.po | 6 + po/he.po | 5 + po/hi.po | 4 + po/hr.po | 6 + po/hu.po | 6 + po/it.po | 6 + po/ja.po | 6 + po/ko.po | 6 + po/lt.po | 6 + po/ml.po | 4 + po/nb_NO.po | 6 + po/nl.po | 6 + po/or.po | 4 + po/pa.po | 4 + po/pl.po | 6 + po/pt_BR.po | 6 + po/pt_PT.po | 6 + po/rm.po | 4 + po/ro.po | 5 + po/ru.po | 6 + po/si.po | 4 + po/sk.po | 4 + po/sl.po | 6 + po/sr_RS@cyrillic.po | 5 + po/sr_RS@latin.po | 5 + po/sv.po | 6 + po/ta.po | 4 + po/te.po | 4 + po/th.po | 5 + po/tr.po | 6 + po/uk.po | 6 + po/wa.po | 5 + po/wine.pot | 4 + po/zh_CN.po | 6 + po/zh_TW.po | 6 + programs/tasklist/tasklist.c | 173 ++++++++++++++++++++++++++++- programs/tasklist/tasklist.h | 32 ++++++ programs/tasklist/tasklist.rc | 1 + programs/tasklist/tests/tasklist.c | 104 +++++++++++++++++ 53 files changed, 565 insertions(+), 5 deletions(-)
diff --git a/po/ar.po b/po/ar.po index bf531313a6d..a6c78236bc4 100644 --- a/po/ar.po +++ b/po/ar.po @@ -18529,6 +18529,12 @@ msgstr "حسنًا" msgid "ERROR: Invalid syntax\n" msgstr "خطأ : اسم المفتاح غير سليم\n"
+#: programs/tasklist/tasklist.rc:37 +#, fuzzy +#| msgid "The filename cannot be resolved.\n" +msgid "ERROR: The search filter cannot be recognized.\n" +msgstr "لم يتمكن من تحليل اسم الملف.\n" + #: programs/taskmgr/taskmgr.rc:37 programs/taskmgr/taskmgr.rc:108 msgid "&New Task (Run...)" msgstr "م&همة جديدة (تشغيل)..." diff --git a/po/ast.po b/po/ast.po index 1d8d339290c..7acae63fbcf 100644 --- a/po/ast.po +++ b/po/ast.po @@ -17170,6 +17170,12 @@ msgstr "Aceutar" msgid "ERROR: Invalid syntax\n" msgstr "reg: La sintaxis nun ye válida. "
+#: programs/tasklist/tasklist.rc:37 +#, fuzzy +#| msgid "The file cannot be accessed.\n" +msgid "ERROR: The search filter cannot be recognized.\n" +msgstr "Nun pue accedese al ficheru.\n" + #: programs/taskmgr/taskmgr.rc:37 programs/taskmgr/taskmgr.rc:108 msgid "&New Task (Run...)" msgstr "" diff --git a/po/bg.po b/po/bg.po index 225d0232f24..f5bd71825b0 100644 --- a/po/bg.po +++ b/po/bg.po @@ -17168,6 +17168,11 @@ msgstr "OK" msgid "ERROR: Invalid syntax\n" msgstr "Невалидни знаци в пътя.\n"
+#: programs/tasklist/tasklist.rc:37 +#, fuzzy +msgid "ERROR: The search filter cannot be recognized.\n" +msgstr "'%s' не може да бъде намерен." + #: programs/taskmgr/taskmgr.rc:37 programs/taskmgr/taskmgr.rc:108 msgid "&New Task (Run...)" msgstr "" diff --git a/po/ca.po b/po/ca.po index 0f34e6a5766..1ea63510af7 100644 --- a/po/ca.po +++ b/po/ca.po @@ -17449,6 +17449,12 @@ msgstr "D'acord" msgid "ERROR: Invalid syntax\n" msgstr "reg: La sintaxi no és vàlida. "
+#: programs/tasklist/tasklist.rc:37 +#, fuzzy +#| msgid "The filename cannot be resolved.\n" +msgid "ERROR: The search filter cannot be recognized.\n" +msgstr "No es pot resoldre el nom de fitxer.\n" + #: programs/taskmgr/taskmgr.rc:37 programs/taskmgr/taskmgr.rc:108 msgid "&New Task (Run...)" msgstr "&Tasca nova (executa...)" diff --git a/po/cs.po b/po/cs.po index 1e2d93d4aa1..71ed79441db 100644 --- a/po/cs.po +++ b/po/cs.po @@ -17933,6 +17933,12 @@ msgstr "OK" msgid "ERROR: Invalid syntax\n" msgstr "reg: Neplatná syntaxe. "
+#: programs/tasklist/tasklist.rc:37 +#, fuzzy +#| msgid "The file cannot be accessed.\n" +msgid "ERROR: The search filter cannot be recognized.\n" +msgstr "K souboru není možné přistupovat.\n" + #: programs/taskmgr/taskmgr.rc:37 programs/taskmgr/taskmgr.rc:108 msgid "&New Task (Run...)" msgstr "&Nová úloha (Spustit...)" diff --git a/po/da.po b/po/da.po index db9b0dc4f3c..38ccb7bd64b 100644 --- a/po/da.po +++ b/po/da.po @@ -18440,6 +18440,12 @@ msgstr "OK" msgid "ERROR: Invalid syntax\n" msgstr "Fejl: Ugyldigt nøgle navn\n"
+#: programs/tasklist/tasklist.rc:37 +#, fuzzy +#| msgid "The filename cannot be resolved.\n" +msgid "ERROR: The search filter cannot be recognized.\n" +msgstr "Filnavnet kan ikke afklares.\n" + #: programs/taskmgr/taskmgr.rc:37 programs/taskmgr/taskmgr.rc:108 msgid "&New Task (Run...)" msgstr "&Ny opgave (Kør...)" diff --git a/po/de.po b/po/de.po index 8381cee3917..6cec8fc4c0d 100644 --- a/po/de.po +++ b/po/de.po @@ -17416,6 +17416,12 @@ msgstr "OK" msgid "ERROR: Invalid syntax\n" msgstr "reg: Ungültige Syntax. "
+#: programs/tasklist/tasklist.rc:37 +#, fuzzy +#| msgid "The filename cannot be resolved.\n" +msgid "ERROR: The search filter cannot be recognized.\n" +msgstr "Der Dateiname konnte nicht gefunden werden.\n" + #: programs/taskmgr/taskmgr.rc:37 programs/taskmgr/taskmgr.rc:108 msgid "&New Task (Run...)" msgstr "&Neuer Task (Ausführen...)" diff --git a/po/el.po b/po/el.po index 9a9f4a773fa..75f969c29b5 100644 --- a/po/el.po +++ b/po/el.po @@ -16803,6 +16803,10 @@ msgstr "" msgid "ERROR: Invalid syntax\n" msgstr "Μη έγγυρος(οι) χαρακτήρας(ες) στο μονοπάτι.\n"
+#: programs/tasklist/tasklist.rc:37 +msgid "ERROR: The search filter cannot be recognized.\n" +msgstr "" + #: programs/taskmgr/taskmgr.rc:37 programs/taskmgr/taskmgr.rc:108 msgid "&New Task (Run...)" msgstr "" diff --git a/po/en.po b/po/en.po index a9d5d6f696f..da810c973fa 100644 --- a/po/en.po +++ b/po/en.po @@ -17298,6 +17298,10 @@ msgstr "K" msgid "ERROR: Invalid syntax\n" msgstr "ERROR: Invalid syntax\n"
+#: programs/tasklist/tasklist.rc:37 +msgid "ERROR: The search filter cannot be recognized.\n" +msgstr "ERROR: The search filter cannot be recognized.\n" + #: programs/taskmgr/taskmgr.rc:37 programs/taskmgr/taskmgr.rc:108 msgid "&New Task (Run...)" msgstr "&New Task (Run...)" diff --git a/po/en_US.po b/po/en_US.po index 1b7a438b554..d63f36220fa 100644 --- a/po/en_US.po +++ b/po/en_US.po @@ -17298,6 +17298,10 @@ msgstr "K" msgid "ERROR: Invalid syntax\n" msgstr "ERROR: Invalid syntax\n"
+#: programs/tasklist/tasklist.rc:37 +msgid "ERROR: The search filter cannot be recognized.\n" +msgstr "ERROR: The search filter cannot be recognized.\n" + #: programs/taskmgr/taskmgr.rc:37 programs/taskmgr/taskmgr.rc:108 msgid "&New Task (Run...)" msgstr "&New Task (Run...)" diff --git a/po/eo.po b/po/eo.po index 8daca85e4ad..30413e5976e 100644 --- a/po/eo.po +++ b/po/eo.po @@ -17492,6 +17492,12 @@ msgstr "Bone" msgid "ERROR: Invalid syntax\n" msgstr "Nevalida nomo de kunuzata aparato.\n"
+#: programs/tasklist/tasklist.rc:37 +#, fuzzy +#| msgid "The filename cannot be resolved.\n" +msgid "ERROR: The search filter cannot be recognized.\n" +msgstr "La dosiernomo ne eblas solvi.\n" + #: programs/taskmgr/taskmgr.rc:37 programs/taskmgr/taskmgr.rc:108 msgid "&New Task (Run...)" msgstr "" diff --git a/po/es.po b/po/es.po index 35ff69721e2..64b81c5f619 100644 --- a/po/es.po +++ b/po/es.po @@ -17774,6 +17774,12 @@ msgstr "Aceptar" msgid "ERROR: Invalid syntax\n" msgstr "reg: Sintaxis inválida. "
+#: programs/tasklist/tasklist.rc:37 +#, fuzzy +#| msgid "The filename cannot be resolved.\n" +msgid "ERROR: The search filter cannot be recognized.\n" +msgstr "No puede resolverse el nombre del fichero.\n" + #: programs/taskmgr/taskmgr.rc:37 programs/taskmgr/taskmgr.rc:108 msgid "&New Task (Run...)" msgstr "&Nueva Tarea (Ejecutar...)" diff --git a/po/fa.po b/po/fa.po index 3d9783df060..09bf4d57cfe 100644 --- a/po/fa.po +++ b/po/fa.po @@ -16997,6 +16997,11 @@ msgstr "قبول" msgid "ERROR: Invalid syntax\n" msgstr "پروندههای متنی (*.txt).\n"
+#: programs/tasklist/tasklist.rc:37 +#, fuzzy +msgid "ERROR: The search filter cannot be recognized.\n" +msgstr "'%s' پیدا نشد." + #: programs/taskmgr/taskmgr.rc:37 programs/taskmgr/taskmgr.rc:108 msgid "&New Task (Run...)" msgstr "" diff --git a/po/fi.po b/po/fi.po index 01cb0632d9a..b82c301ed48 100644 --- a/po/fi.po +++ b/po/fi.po @@ -17273,6 +17273,12 @@ msgstr "OK" msgid "ERROR: Invalid syntax\n" msgstr "reg: Syntaksi ei kelpaa. "
+#: programs/tasklist/tasklist.rc:37 +#, fuzzy +#| msgid "The filename cannot be resolved.\n" +msgid "ERROR: The search filter cannot be recognized.\n" +msgstr "Tiedostonimeä ei pystytä tulkitsemaan.\n" + #: programs/taskmgr/taskmgr.rc:37 programs/taskmgr/taskmgr.rc:108 msgid "&New Task (Run...)" msgstr "&Uusi tehtävä (Suorita...)" diff --git a/po/fr.po b/po/fr.po index 00e199a7283..bcf6d3ead08 100644 --- a/po/fr.po +++ b/po/fr.po @@ -18015,6 +18015,12 @@ msgstr "OK" msgid "ERROR: Invalid syntax\n" msgstr "reg : syntaxe invalide. "
+#: programs/tasklist/tasklist.rc:37 +#, fuzzy +#| msgid "The filename cannot be resolved.\n" +msgid "ERROR: The search filter cannot be recognized.\n" +msgstr "Impossible de résoudre le nom de fichier.\n" + #: programs/taskmgr/taskmgr.rc:37 programs/taskmgr/taskmgr.rc:108 msgid "&New Task (Run...)" msgstr "&Nouvelle tâche (Exécuter...)" diff --git a/po/he.po b/po/he.po index e74f56ef570..d3cd7591551 100644 --- a/po/he.po +++ b/po/he.po @@ -17946,6 +17946,11 @@ msgstr "אישור" msgid "ERROR: Invalid syntax\n" msgstr "Error: Invalid key name\n"
+#: programs/tasklist/tasklist.rc:37 +#, fuzzy +msgid "ERROR: The search filter cannot be recognized.\n" +msgstr "'%s' לא נמצא." + #: programs/taskmgr/taskmgr.rc:37 programs/taskmgr/taskmgr.rc:108 msgid "&New Task (Run...)" msgstr "משימה &חדשה (הפעלה...)" diff --git a/po/hi.po b/po/hi.po index 4cd0a98235c..dd87c8640e0 100644 --- a/po/hi.po +++ b/po/hi.po @@ -16471,6 +16471,10 @@ msgstr "" msgid "ERROR: Invalid syntax\n" msgstr ""
+#: programs/tasklist/tasklist.rc:37 +msgid "ERROR: The search filter cannot be recognized.\n" +msgstr "" + #: programs/taskmgr/taskmgr.rc:37 programs/taskmgr/taskmgr.rc:108 msgid "&New Task (Run...)" msgstr "" diff --git a/po/hr.po b/po/hr.po index d537fd018f4..73a2e82f90b 100644 --- a/po/hr.po +++ b/po/hr.po @@ -17900,6 +17900,12 @@ msgstr "U redu" msgid "ERROR: Invalid syntax\n" msgstr "Greška: Neispravan naziv ključa\n"
+#: programs/tasklist/tasklist.rc:37 +#, fuzzy +#| msgid "The filename cannot be resolved.\n" +msgid "ERROR: The search filter cannot be recognized.\n" +msgstr "Naziv datoteke se ne može dohvatit.\n" + #: programs/taskmgr/taskmgr.rc:37 programs/taskmgr/taskmgr.rc:108 msgid "&New Task (Run...)" msgstr "&Novi zadatak (Pokreni...)" diff --git a/po/hu.po b/po/hu.po index 5957b5fb67b..dc25fabe578 100644 --- a/po/hu.po +++ b/po/hu.po @@ -18431,6 +18431,12 @@ msgstr "OK" msgid "ERROR: Invalid syntax\n" msgstr "Hiba: Érvénytelen kulcsnév\n"
+#: programs/tasklist/tasklist.rc:37 +#, fuzzy +#| msgid "The filename cannot be resolved.\n" +msgid "ERROR: The search filter cannot be recognized.\n" +msgstr "A fájlnév nem található!.\n" + #: programs/taskmgr/taskmgr.rc:37 programs/taskmgr/taskmgr.rc:108 msgid "&New Task (Run...)" msgstr "Új feladat (f&uttatás...)" diff --git a/po/it.po b/po/it.po index 49eaa2ef94f..f68cb65dde5 100644 --- a/po/it.po +++ b/po/it.po @@ -18518,6 +18518,12 @@ msgstr "Ok" msgid "ERROR: Invalid syntax\n" msgstr "Errore: nome della chiave non valido\n"
+#: programs/tasklist/tasklist.rc:37 +#, fuzzy +#| msgid "The filename cannot be resolved.\n" +msgid "ERROR: The search filter cannot be recognized.\n" +msgstr "Impossibile risolvere il nome del file.\n" + #: programs/taskmgr/taskmgr.rc:37 programs/taskmgr/taskmgr.rc:108 msgid "&New Task (Run...)" msgstr "&Nuovo processo (Esegui...)" diff --git a/po/ja.po b/po/ja.po index fe05c12612f..ed6bba051ba 100644 --- a/po/ja.po +++ b/po/ja.po @@ -17310,6 +17310,12 @@ msgstr "OK" msgid "ERROR: Invalid syntax\n" msgstr "reg: 無効な構文です。"
+#: programs/tasklist/tasklist.rc:37 +#, fuzzy +#| msgid "The filename cannot be resolved.\n" +msgid "ERROR: The search filter cannot be recognized.\n" +msgstr "ファイル名は解決できません。\n" + #: programs/taskmgr/taskmgr.rc:37 programs/taskmgr/taskmgr.rc:108 msgid "&New Task (Run...)" msgstr "新しいタスクの実行(&N)..." diff --git a/po/ko.po b/po/ko.po index 1af2e5a6aa7..c5a22683c02 100644 --- a/po/ko.po +++ b/po/ko.po @@ -17250,6 +17250,12 @@ msgstr "확인" msgid "ERROR: Invalid syntax\n" msgstr "reg: 잘못된 구문. "
+#: programs/tasklist/tasklist.rc:37 +#, fuzzy +#| msgid "The filename cannot be resolved.\n" +msgid "ERROR: The search filter cannot be recognized.\n" +msgstr "파일 이름을 확인할 수 없습니다.\n" + #: programs/taskmgr/taskmgr.rc:37 programs/taskmgr/taskmgr.rc:108 msgid "&New Task (Run...)" msgstr "새 작업(&N) (실행...)" diff --git a/po/lt.po b/po/lt.po index bd9e0b2718b..fee636cdde3 100644 --- a/po/lt.po +++ b/po/lt.po @@ -17325,6 +17325,12 @@ msgstr "Gerai" msgid "ERROR: Invalid syntax\n" msgstr "reg: Netinkama sintaksė. "
+#: programs/tasklist/tasklist.rc:37 +#, fuzzy +#| msgid "The filename cannot be resolved.\n" +msgid "ERROR: The search filter cannot be recognized.\n" +msgstr "Nepavyko nustatyti failo vardo.\n" + #: programs/taskmgr/taskmgr.rc:37 programs/taskmgr/taskmgr.rc:108 msgid "&New Task (Run...)" msgstr "&Nauja užduotis (vykdyti...)" diff --git a/po/ml.po b/po/ml.po index 325901ba3fb..111a2423085 100644 --- a/po/ml.po +++ b/po/ml.po @@ -16474,6 +16474,10 @@ msgstr "ശരി" msgid "ERROR: Invalid syntax\n" msgstr ""
+#: programs/tasklist/tasklist.rc:37 +msgid "ERROR: The search filter cannot be recognized.\n" +msgstr "" + #: programs/taskmgr/taskmgr.rc:37 programs/taskmgr/taskmgr.rc:108 msgid "&New Task (Run...)" msgstr "" diff --git a/po/nb_NO.po b/po/nb_NO.po index a34852e4967..eb2930c22ef 100644 --- a/po/nb_NO.po +++ b/po/nb_NO.po @@ -17995,6 +17995,12 @@ msgstr "OK" msgid "ERROR: Invalid syntax\n" msgstr "reg: Ugyldig syntaks. "
+#: programs/tasklist/tasklist.rc:37 +#, fuzzy +#| msgid "The filename cannot be resolved.\n" +msgid "ERROR: The search filter cannot be recognized.\n" +msgstr "Kan ikke slå opp filnavnet.\n" + #: programs/taskmgr/taskmgr.rc:37 programs/taskmgr/taskmgr.rc:108 msgid "&New Task (Run...)" msgstr "&Ny oppgave (Kjør...)" diff --git a/po/nl.po b/po/nl.po index 7af274d43e1..9e9fc388065 100644 --- a/po/nl.po +++ b/po/nl.po @@ -17390,6 +17390,12 @@ msgstr "OK" msgid "ERROR: Invalid syntax\n" msgstr "reg: Foutieve syntax. "
+#: programs/tasklist/tasklist.rc:37 +#, fuzzy +#| msgid "The filename cannot be resolved.\n" +msgid "ERROR: The search filter cannot be recognized.\n" +msgstr "De bestandsnaam kan niet worden geresolveerd.\n" + #: programs/taskmgr/taskmgr.rc:37 programs/taskmgr/taskmgr.rc:108 msgid "&New Task (Run...)" msgstr "&Nieuwe taak (uitvoeren...)" diff --git a/po/or.po b/po/or.po index 7446fea78bf..325e5f97606 100644 --- a/po/or.po +++ b/po/or.po @@ -16456,6 +16456,10 @@ msgstr "" msgid "ERROR: Invalid syntax\n" msgstr ""
+#: programs/tasklist/tasklist.rc:37 +msgid "ERROR: The search filter cannot be recognized.\n" +msgstr "" + #: programs/taskmgr/taskmgr.rc:37 programs/taskmgr/taskmgr.rc:108 msgid "&New Task (Run...)" msgstr "" diff --git a/po/pa.po b/po/pa.po index 2f727360d4c..59aca39767b 100644 --- a/po/pa.po +++ b/po/pa.po @@ -16456,6 +16456,10 @@ msgstr "" msgid "ERROR: Invalid syntax\n" msgstr ""
+#: programs/tasklist/tasklist.rc:37 +msgid "ERROR: The search filter cannot be recognized.\n" +msgstr "" + #: programs/taskmgr/taskmgr.rc:37 programs/taskmgr/taskmgr.rc:108 msgid "&New Task (Run...)" msgstr "" diff --git a/po/pl.po b/po/pl.po index 8637c10caba..071574c7e5f 100644 --- a/po/pl.po +++ b/po/pl.po @@ -17530,6 +17530,12 @@ msgstr "OK" msgid "ERROR: Invalid syntax\n" msgstr "reg: Nieprawidłowa składnia. "
+#: programs/tasklist/tasklist.rc:37 +#, fuzzy +#| msgid "The filename cannot be resolved.\n" +msgid "ERROR: The search filter cannot be recognized.\n" +msgstr "Nie można rozbić nazwy pliku.\n" + #: programs/taskmgr/taskmgr.rc:37 programs/taskmgr/taskmgr.rc:108 msgid "&New Task (Run...)" msgstr "&Nowe zadanie (Uruchom...)" diff --git a/po/pt_BR.po b/po/pt_BR.po index 62e3721b69e..8fdcfeb808f 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -17592,6 +17592,12 @@ msgstr "OK" msgid "ERROR: Invalid syntax\n" msgstr "reg: Sintaxe inválida. "
+#: programs/tasklist/tasklist.rc:37 +#, fuzzy +#| msgid "The filename cannot be resolved.\n" +msgid "ERROR: The search filter cannot be recognized.\n" +msgstr "O nome de arquivo não pode ser resolvido.\n" + #: programs/taskmgr/taskmgr.rc:37 programs/taskmgr/taskmgr.rc:108 msgid "&New Task (Run...)" msgstr "&Nova Tarefa (Executar...)" diff --git a/po/pt_PT.po b/po/pt_PT.po index d1c5dac5a51..43bef658f39 100644 --- a/po/pt_PT.po +++ b/po/pt_PT.po @@ -18166,6 +18166,12 @@ msgstr "OK" msgid "ERROR: Invalid syntax\n" msgstr "reg: Sintaxe inválida. "
+#: programs/tasklist/tasklist.rc:37 +#, fuzzy +#| msgid "The filename cannot be resolved.\n" +msgid "ERROR: The search filter cannot be recognized.\n" +msgstr "O nome de ficheiro não pode ser resolvido.\n" + #: programs/taskmgr/taskmgr.rc:37 programs/taskmgr/taskmgr.rc:108 msgid "&New Task (Run...)" msgstr "&Nova Tarefa (Executar...)" diff --git a/po/rm.po b/po/rm.po index 085f54bf0f7..ae89c0d4435 100644 --- a/po/rm.po +++ b/po/rm.po @@ -16588,6 +16588,10 @@ msgstr "" msgid "ERROR: Invalid syntax\n" msgstr "Tuot las datotecas (*.*).\n"
+#: programs/tasklist/tasklist.rc:37 +msgid "ERROR: The search filter cannot be recognized.\n" +msgstr "" + #: programs/taskmgr/taskmgr.rc:37 programs/taskmgr/taskmgr.rc:108 msgid "&New Task (Run...)" msgstr "" diff --git a/po/ro.po b/po/ro.po index d68f3bbbc84..63f6b919634 100644 --- a/po/ro.po +++ b/po/ro.po @@ -18195,6 +18195,11 @@ msgstr "OK" msgid "ERROR: Invalid syntax\n" msgstr "reg: Sintaxă nevalidă. "
+#: programs/tasklist/tasklist.rc:37 +#, fuzzy +msgid "ERROR: The search filter cannot be recognized.\n" +msgstr "'%s' nu a fost găsit." + #: programs/taskmgr/taskmgr.rc:37 programs/taskmgr/taskmgr.rc:108 msgid "&New Task (Run...)" msgstr "Sarcină &nouă (executare...)" diff --git a/po/ru.po b/po/ru.po index f62c674016c..6f9167767da 100644 --- a/po/ru.po +++ b/po/ru.po @@ -17559,6 +17559,12 @@ msgstr "ОК" msgid "ERROR: Invalid syntax\n" msgstr "reg: неверный синтаксис. "
+#: programs/tasklist/tasklist.rc:37 +#, fuzzy +#| msgid "The filename cannot be resolved.\n" +msgid "ERROR: The search filter cannot be recognized.\n" +msgstr "Не удалось разобрать имя файла.\n" + #: programs/taskmgr/taskmgr.rc:37 programs/taskmgr/taskmgr.rc:108 msgid "&New Task (Run...)" msgstr "&Новая задача (Выполнить...)" diff --git a/po/si.po b/po/si.po index ce493b00d05..2bffc22843f 100644 --- a/po/si.po +++ b/po/si.po @@ -17223,6 +17223,10 @@ msgstr "හරි" msgid "ERROR: Invalid syntax\n" msgstr "reg: අවලංගු රීති."
+#: programs/tasklist/tasklist.rc:37 +msgid "ERROR: The search filter cannot be recognized.\n" +msgstr "" + #: programs/taskmgr/taskmgr.rc:37 programs/taskmgr/taskmgr.rc:108 msgid "&New Task (Run...)" msgstr "අලුත් කාර්යයක් (ධාවන කරන්න...) (&N)" diff --git a/po/sk.po b/po/sk.po index 69c37198d89..3ee83cbaa65 100644 --- a/po/sk.po +++ b/po/sk.po @@ -17669,6 +17669,10 @@ msgstr "OK" msgid "ERROR: Invalid syntax\n" msgstr "Nesprávny názov.\n"
+#: programs/tasklist/tasklist.rc:37 +msgid "ERROR: The search filter cannot be recognized.\n" +msgstr "" + #: programs/taskmgr/taskmgr.rc:37 programs/taskmgr/taskmgr.rc:108 msgid "&New Task (Run...)" msgstr "&Nová úloha (Spusti...)" diff --git a/po/sl.po b/po/sl.po index 281d36cabea..f1fb0d7630f 100644 --- a/po/sl.po +++ b/po/sl.po @@ -18455,6 +18455,12 @@ msgstr "V redu" msgid "ERROR: Invalid syntax\n" msgstr "Napaka: neveljavno ime ključa\n"
+#: programs/tasklist/tasklist.rc:37 +#, fuzzy +#| msgid "The filename cannot be resolved.\n" +msgid "ERROR: The search filter cannot be recognized.\n" +msgstr "Imena datoteke ni mogoče razrešiti.\n" + #: programs/taskmgr/taskmgr.rc:37 programs/taskmgr/taskmgr.rc:108 msgid "&New Task (Run...)" msgstr "&Novo opravilo (Zaženi ...)" diff --git a/po/sr_RS@cyrillic.po b/po/sr_RS@cyrillic.po index d9d1183cf30..24f04868bf6 100644 --- a/po/sr_RS@cyrillic.po +++ b/po/sr_RS@cyrillic.po @@ -17744,6 +17744,11 @@ msgstr "У реду" msgid "ERROR: Invalid syntax\n" msgstr "Неисправна синтакса.\n"
+#: programs/tasklist/tasklist.rc:37 +#, fuzzy +msgid "ERROR: The search filter cannot be recognized.\n" +msgstr "Датотека „%s“ није пронађена." + #: programs/taskmgr/taskmgr.rc:37 programs/taskmgr/taskmgr.rc:108 msgid "&New Task (Run...)" msgstr "" diff --git a/po/sr_RS@latin.po b/po/sr_RS@latin.po index 4073d77a571..03cf504ff1e 100644 --- a/po/sr_RS@latin.po +++ b/po/sr_RS@latin.po @@ -17939,6 +17939,11 @@ msgstr "U redu" msgid "ERROR: Invalid syntax\n" msgstr "Neispravna sintaksa.\n"
+#: programs/tasklist/tasklist.rc:37 +#, fuzzy +msgid "ERROR: The search filter cannot be recognized.\n" +msgstr "Datoteka „%s“ nije pronađena." + #: programs/taskmgr/taskmgr.rc:37 programs/taskmgr/taskmgr.rc:108 msgid "&New Task (Run...)" msgstr "" diff --git a/po/sv.po b/po/sv.po index 1a2843a1288..2b6b98d6ee7 100644 --- a/po/sv.po +++ b/po/sv.po @@ -18127,6 +18127,12 @@ msgstr "OK" msgid "ERROR: Invalid syntax\n" msgstr "reg: Ogiltig syntax. "
+#: programs/tasklist/tasklist.rc:37 +#, fuzzy +#| msgid "The filename cannot be resolved.\n" +msgid "ERROR: The search filter cannot be recognized.\n" +msgstr "Filnamnet kan inte hittas.\n" + #: programs/taskmgr/taskmgr.rc:37 programs/taskmgr/taskmgr.rc:108 msgid "&New Task (Run...)" msgstr "&Ny aktivitet (Kör...)" diff --git a/po/ta.po b/po/ta.po index 0913eb07765..7ff4e75bba0 100644 --- a/po/ta.po +++ b/po/ta.po @@ -16440,6 +16440,10 @@ msgstr "சரி" msgid "ERROR: Invalid syntax\n" msgstr ""
+#: programs/tasklist/tasklist.rc:37 +msgid "ERROR: The search filter cannot be recognized.\n" +msgstr "" + #: programs/taskmgr/taskmgr.rc:37 programs/taskmgr/taskmgr.rc:108 msgid "&New Task (Run...)" msgstr "" diff --git a/po/te.po b/po/te.po index 81daf55f999..6637c77f80b 100644 --- a/po/te.po +++ b/po/te.po @@ -16456,6 +16456,10 @@ msgstr "" msgid "ERROR: Invalid syntax\n" msgstr ""
+#: programs/tasklist/tasklist.rc:37 +msgid "ERROR: The search filter cannot be recognized.\n" +msgstr "" + #: programs/taskmgr/taskmgr.rc:37 programs/taskmgr/taskmgr.rc:108 msgid "&New Task (Run...)" msgstr "" diff --git a/po/th.po b/po/th.po index 00ee36cc9a4..0bd5781e5b6 100644 --- a/po/th.po +++ b/po/th.po @@ -17107,6 +17107,11 @@ msgstr "ตกลง" msgid "ERROR: Invalid syntax\n" msgstr "แฟ้มตํารา (*.txt).\n"
+#: programs/tasklist/tasklist.rc:37 +#, fuzzy +msgid "ERROR: The search filter cannot be recognized.\n" +msgstr "ไม่พบข้อความ '%s' ที่ต้องการค้นหา.\n" + #: programs/taskmgr/taskmgr.rc:37 programs/taskmgr/taskmgr.rc:108 msgid "&New Task (Run...)" msgstr "" diff --git a/po/tr.po b/po/tr.po index 82624719b08..f0090b9e477 100644 --- a/po/tr.po +++ b/po/tr.po @@ -17356,6 +17356,12 @@ msgstr "Tamam" msgid "ERROR: Invalid syntax\n" msgstr "reg: Geçersiz sözdizimi. "
+#: programs/tasklist/tasklist.rc:37 +#, fuzzy +#| msgid "The filename cannot be resolved.\n" +msgid "ERROR: The search filter cannot be recognized.\n" +msgstr "Dosya adı çözülemedi.\n" + #: programs/taskmgr/taskmgr.rc:37 programs/taskmgr/taskmgr.rc:108 msgid "&New Task (Run...)" msgstr "&Yeni Görev (Çalıştır...)" diff --git a/po/uk.po b/po/uk.po index 6aa152044f2..04fe18bb64e 100644 --- a/po/uk.po +++ b/po/uk.po @@ -17413,6 +17413,12 @@ msgstr "OK" msgid "ERROR: Invalid syntax\n" msgstr "reg: Невірний синтаксис. "
+#: programs/tasklist/tasklist.rc:37 +#, fuzzy +#| msgid "The filename cannot be resolved.\n" +msgid "ERROR: The search filter cannot be recognized.\n" +msgstr "Ім'я файлу не може бути вирішене.\n" + #: programs/taskmgr/taskmgr.rc:37 programs/taskmgr/taskmgr.rc:108 msgid "&New Task (Run...)" msgstr "&Нове завдання (Виконати...)" diff --git a/po/wa.po b/po/wa.po index c5c5091946f..fd35c5bf626 100644 --- a/po/wa.po +++ b/po/wa.po @@ -16959,6 +16959,11 @@ msgstr "I Va" msgid "ERROR: Invalid syntax\n" msgstr "Fitchîs tekse (*.txt).\n"
+#: programs/tasklist/tasklist.rc:37 +#, fuzzy +msgid "ERROR: The search filter cannot be recognized.\n" +msgstr "'%s' pout nén esse trové." + #: programs/taskmgr/taskmgr.rc:37 programs/taskmgr/taskmgr.rc:108 msgid "&New Task (Run...)" msgstr "" diff --git a/po/wine.pot b/po/wine.pot index 2b9f54a74af..5ba23a8b291 100644 --- a/po/wine.pot +++ b/po/wine.pot @@ -16363,6 +16363,10 @@ msgstr "" msgid "ERROR: Invalid syntax\n" msgstr ""
+#: programs/tasklist/tasklist.rc:37 +msgid "ERROR: The search filter cannot be recognized.\n" +msgstr "" + #: programs/taskmgr/taskmgr.rc:37 programs/taskmgr/taskmgr.rc:108 msgid "&New Task (Run...)" msgstr "" diff --git a/po/zh_CN.po b/po/zh_CN.po index d9447b31f26..131a13988e9 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -17069,6 +17069,12 @@ msgstr "确定" msgid "ERROR: Invalid syntax\n" msgstr "reg: 语法无效。"
+#: programs/tasklist/tasklist.rc:37 +#, fuzzy +#| msgid "The filename cannot be resolved.\n" +msgid "ERROR: The search filter cannot be recognized.\n" +msgstr "不能解析文件名。\n" + #: programs/taskmgr/taskmgr.rc:37 programs/taskmgr/taskmgr.rc:108 msgid "&New Task (Run...)" msgstr "新任务(&N)..." diff --git a/po/zh_TW.po b/po/zh_TW.po index 45e5c57de2c..772d46e00cf 100644 --- a/po/zh_TW.po +++ b/po/zh_TW.po @@ -17134,6 +17134,12 @@ msgstr "確定" msgid "ERROR: Invalid syntax\n" msgstr "reg: 無效的語法。 "
+#: programs/tasklist/tasklist.rc:37 +#, fuzzy +#| msgid "The filename cannot be resolved.\n" +msgid "ERROR: The search filter cannot be recognized.\n" +msgstr "無法解析檔案名稱。\n" + #: programs/taskmgr/taskmgr.rc:37 programs/taskmgr/taskmgr.rc:108 msgid "&New Task (Run...)" msgstr "執行新工作(&N)..." diff --git a/programs/tasklist/tasklist.c b/programs/tasklist/tasklist.c index c8cb8804c3a..4f866f6b727 100644 --- a/programs/tasklist/tasklist.c +++ b/programs/tasklist/tasklist.c @@ -173,6 +173,9 @@ static BOOL tasklist_get_process_info(const PROCESSENTRY32W *process_entry, stru if (info->memory_usage[0] == '\0') wcscpy(info->memory_usage, L"N/A");
+ info->pid_value = process_entry->th32ProcessID; + info->memory_usage_value = memory_counters.WorkingSetSize / 1024; + info->session_id_value = session_id; wcscpy(info->image_name, process_entry->szExeFile); swprintf(info->pid, ARRAY_SIZE(info->pid), L"%u", process_entry->th32ProcessID); wcscpy(info->session_name, session_id == 0 ? L"Services" : L"Console"); @@ -180,6 +183,67 @@ static BOOL tasklist_get_process_info(const PROCESSENTRY32W *process_entry, stru return TRUE; }
+static BOOL tasklist_check_filters(const struct tasklist_filter *filter, + const struct tasklist_process_info *info) +{ + DWORD left_dword_operand, right_dword_operand; + const WCHAR *left_string_operand = NULL; + BOOL eval; + + while (filter) + { + left_string_operand = NULL; + left_dword_operand = 0; + eval = FALSE; + + if (filter->name == IMAGENAME) + left_string_operand = info->image_name; + else if (filter->name == SESSIONNAME) + left_string_operand = info->session_name; + else if (filter->name == PID) + left_dword_operand = info->pid_value; + else if (filter->name == SESSION) + left_dword_operand = info->session_id_value; + else if (filter->name == MEMUSAGE) + left_dword_operand = info->memory_usage_value; + + if (left_string_operand) + { + eval = wcsicmp(left_string_operand, filter->value); + if (filter->op == EQ) + eval = !eval; + } + else + { + if (swscanf(filter->value, L"%lu", &right_dword_operand) != 1) + { + WINE_ERR("Invalid filter operand %s.\n", wine_dbgstr_w(filter->value)); + return FALSE; + } + + if (filter->op == EQ) + eval = left_dword_operand == right_dword_operand; + else if (filter->op == NE) + eval = left_dword_operand != right_dword_operand; + else if (filter->op == GT) + eval = left_dword_operand > right_dword_operand; + else if (filter->op == LT) + eval = left_dword_operand < right_dword_operand; + else if (filter->op == GE) + eval = left_dword_operand >= right_dword_operand; + else if (filter->op == LE) + eval = left_dword_operand <= right_dword_operand; + } + + if (!eval) + return FALSE; + + filter = filter->next; + } + + return TRUE; +} + static void tasklist_print(const struct tasklist_options *options) { struct tasklist_process_info header, info; @@ -207,6 +271,9 @@ static void tasklist_print(const struct tasklist_options *options) if (!tasklist_get_process_info(&process_list[i], &info)) continue;
+ if (!tasklist_check_filters(options->filters, &info)) + continue; + if (options->format == TABLE) wprintf(L"%-25.25s %8.8s %-16.16s %11.11s %12s\n", info.image_name, info.pid, info.session_name, info.session_number, info.memory_usage); @@ -232,7 +299,9 @@ static void tasklist_print(const struct tasklist_options *options) int __cdecl wmain(int argc, WCHAR *argv[]) { struct tasklist_options options = {0}; - int i; + struct tasklist_filter *filter, *next, **filter_ptr = &options.filters; + WCHAR *filter_name, *filter_op, *buffer; + int i, ret = 0;
for (i = 0; i < argc; i++) WINE_TRACE("%s ", wine_dbgstr_w(argv[i])); @@ -243,7 +312,7 @@ int __cdecl wmain(int argc, WCHAR *argv[]) if (!wcscmp(argv[i], L"/?")) { tasklist_message(STRING_USAGE); - return 0; + goto done; } else if (!wcsicmp(argv[i], L"/nh")) { @@ -254,7 +323,8 @@ int __cdecl wmain(int argc, WCHAR *argv[]) if (i + 1 >= argc) { tasklist_error(STRING_INVALID_SYNTAX); - return 1; + ret = 1; + goto done; } else if (!wcsicmp(argv[i + 1], L"TABLE")) { @@ -271,9 +341,93 @@ int __cdecl wmain(int argc, WCHAR *argv[]) else { tasklist_error(STRING_INVALID_SYNTAX); - return 1; + ret = 1; + goto done; } } + else if (!wcsicmp(argv[i], L"/fi")) + { + if (i + 1 >= argc || !(filter_name = wcstok(argv[i + 1], L" ", &buffer))) + { + tasklist_error(STRING_INVALID_SYNTAX); + ret = 1; + goto done; + } + + filter = calloc(1, sizeof(*filter)); + if (!filter) + { + WINE_ERR("Out of memory.\n"); + ret = 1; + goto done; + } + + if (!wcsicmp(filter_name, L"IMAGENAME")) + filter->name = IMAGENAME; + else if (!wcsicmp(filter_name, L"PID")) + filter->name = PID; + else if (!wcsicmp(filter_name, L"SESSION")) + filter->name = SESSION; + else if (!wcsicmp(filter_name, L"SESSIONNAME")) + filter->name = SESSIONNAME; + else if (!wcsicmp(filter_name, L"MEMUSAGE")) + filter->name = MEMUSAGE; + else + { + WINE_WARN("Ignoring filter %s.\n", wine_dbgstr_w(filter_name)); + free(filter); + continue; + } + + filter_op = wcstok(NULL, L" ", &buffer); + if (!filter_op) + { + tasklist_error(STRING_FILTER_NOT_RECOGNIZED); + free(filter); + ret = 1; + goto done; + } + + if (!wcsicmp(filter_op, L"EQ")) + filter->op = EQ; + else if (!wcsicmp(filter_op, L"NE")) + filter->op = NE; + else if (!wcsicmp(filter_op, L"GT")) + filter->op = GT; + else if (!wcsicmp(filter_op, L"LT")) + filter->op = LT; + else if (!wcsicmp(filter_op, L"GE")) + filter->op = GE; + else if (!wcsicmp(filter_op, L"LE")) + filter->op = LE; + else + { + tasklist_error(STRING_FILTER_NOT_RECOGNIZED); + free(filter); + ret = 1; + goto done; + } + + if (filter->op >= GT && filter->name != PID && filter->name != SESSION && filter->name != MEMUSAGE) + { + tasklist_error(STRING_FILTER_NOT_RECOGNIZED); + free(filter); + ret = 1; + goto done; + } + + filter->value = wcstok(NULL, L" ", &buffer); + if (!filter->value) + { + tasklist_error(STRING_FILTER_NOT_RECOGNIZED); + free(filter); + ret = 1; + goto done; + } + + *filter_ptr = filter; + filter_ptr = &filter->next; + } else { WINE_WARN("Ignoring option %s\n", wine_dbgstr_w(argv[i])); @@ -281,5 +435,14 @@ int __cdecl wmain(int argc, WCHAR *argv[]) }
tasklist_print(&options); - return 0; + +done: + next = options.filters; + while (next) + { + filter = next->next; + free(next); + next = filter; + } + return ret; } diff --git a/programs/tasklist/tasklist.h b/programs/tasklist/tasklist.h index 5e4e90960ea..7b05224757f 100644 --- a/programs/tasklist/tasklist.h +++ b/programs/tasklist/tasklist.h @@ -28,6 +28,7 @@ #define STRING_MEM_USAGE 106 #define STRING_K 107 #define STRING_INVALID_SYNTAX 108 +#define STRING_FILTER_NOT_RECOGNIZED 109
enum tasklist_format { @@ -36,8 +37,38 @@ enum tasklist_format LIST = 2, };
+enum tasklist_filter_name +{ + IMAGENAME = 1, + PID = 2, + SESSION = 3, + SESSIONNAME = 4, + MEMUSAGE = 5, +}; + +enum tasklist_filter_operator +{ + EQ = 0, + NE = 1, + GT = 2, + LT = 3, + GE = 4, + LE = 5, +}; + +struct tasklist_filter +{ + enum tasklist_filter_name name; + enum tasklist_filter_operator op; + WCHAR *value; + struct tasklist_filter *next; +}; + struct tasklist_process_info { + DWORD pid_value; + DWORD memory_usage_value; + DWORD session_id_value; WCHAR image_name[32]; WCHAR pid[32]; WCHAR session_name[32]; @@ -49,4 +80,5 @@ struct tasklist_options { BOOL no_header; enum tasklist_format format; + struct tasklist_filter *filters; }; diff --git a/programs/tasklist/tasklist.rc b/programs/tasklist/tasklist.rc index f92b0348f72..b5aaccc5391 100644 --- a/programs/tasklist/tasklist.rc +++ b/programs/tasklist/tasklist.rc @@ -33,6 +33,7 @@ STRINGTABLE STRING_MEM_USAGE, "Mem Usage" STRING_K, "K" STRING_INVALID_SYNTAX, "ERROR: Invalid syntax\n" + STRING_FILTER_NOT_RECOGNIZED, "ERROR: The search filter cannot be recognized.\n" }
#define WINE_FILEDESCRIPTION_STR "Wine tasklist" diff --git a/programs/tasklist/tests/tasklist.c b/programs/tasklist/tests/tasklist.c index 011bfdeb382..28c15ed3984 100644 --- a/programs/tasklist/tests/tasklist.c +++ b/programs/tasklist/tests/tasklist.c @@ -17,6 +17,7 @@ */
#include <windows.h> +#include <psapi.h> #include "wine/test.h"
#define MAX_BUFFER 65536 @@ -164,6 +165,108 @@ static void test_format(void) ok(!!pos, "Failed to list tasklist.exe.\n"); }
+static void test_filter(void) +{ + char options[256], *pos, basename[64]; + HANDLE current_process; + DWORD current_pid; + + current_pid = GetCurrentProcessId(); + current_process = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, current_pid); + GetModuleBaseNameA(current_process, NULL, basename, ARRAY_SIZE(basename)); + CloseHandle(current_process); + + /* /fi */ + /* no value for fi */ + run_tasklist("/fi", 1); + ok(stdout_size == 0, "Unexpected stdout buffer size %ld.\n", stdout_size); + ok(stderr_size > 0, "Unexpected stderr buffer size %ld.\n", stderr_size); + + /* IMAGENAME eq */ + sprintf(options, "/fi "IMAGENAME eq %s"", basename); + run_tasklist(options, 0); + ok(stdout_size > 0, "Unexpected stdout buffer size %ld.\n", stdout_size); + ok(stderr_size == 0, "Unexpected stderr buffer size %ld.\n", stderr_size); + pos = strstr(stdout_buffer, basename); + ok(!!pos, "Failed to list %s.\n", basename); + + /* IMAGENAME ne */ + sprintf(options, "/fi "IMAGENAME ne %s"", basename); + run_tasklist(options, 0); + ok(stdout_size > 0, "Unexpected stdout buffer size %ld.\n", stdout_size); + ok(stderr_size == 0, "Unexpected stderr buffer size %ld.\n", stderr_size); + pos = strstr(stdout_buffer, basename); + ok(!pos, "Got %s.\n", basename); + pos = strstr(stdout_buffer, "tasklist.exe"); + ok(!!pos, "Failed to list tasklist.exe.\n"); + + /* PID eq */ + sprintf(options, "/fi "PID eq %ld"", current_pid); + run_tasklist(options, 0); + ok(stdout_size > 0, "Unexpected stdout buffer size %ld.\n", stdout_size); + ok(stderr_size == 0, "Unexpected stderr buffer size %ld.\n", stderr_size); + pos = strstr(stdout_buffer, basename); + ok(!!pos, "Failed to list %s.\n", basename); + + /* PID ne */ + sprintf(options, "/fi "PID ne %ld"", current_pid); + run_tasklist(options, 0); + ok(stdout_size > 0, "Unexpected stdout buffer size %ld.\n", stdout_size); + ok(stderr_size == 0, "Unexpected stderr buffer size %ld.\n", stderr_size); + pos = strstr(stdout_buffer, basename); + ok(!pos, "Got %s.\n", basename); + pos = strstr(stdout_buffer, "tasklist.exe"); + ok(!!pos, "Failed to list tasklist.exe.\n"); + + /* PID gt */ + sprintf(options, "/fi "PID gt %ld"", current_pid - 1); + run_tasklist(options, 0); + ok(stdout_size > 0, "Unexpected stdout buffer size %ld.\n", stdout_size); + ok(stderr_size == 0, "Unexpected stderr buffer size %ld.\n", stderr_size); + pos = strstr(stdout_buffer, basename); + ok(!!pos, "Failed to list %s.\n", basename); + + /* PID lt */ + sprintf(options, "/fi "PID lt %ld"", current_pid + 1); + run_tasklist(options, 0); + ok(stdout_size > 0, "Unexpected stdout buffer size %ld.\n", stdout_size); + ok(stderr_size == 0, "Unexpected stderr buffer size %ld.\n", stderr_size); + pos = strstr(stdout_buffer, basename); + ok(!!pos, "Failed to list %s.\n", basename); + + /* PID ge */ + sprintf(options, "/fi "PID ge %ld"", current_pid); + run_tasklist(options, 0); + ok(stdout_size > 0, "Unexpected stdout buffer size %ld.\n", stdout_size); + ok(stderr_size == 0, "Unexpected stderr buffer size %ld.\n", stderr_size); + pos = strstr(stdout_buffer, basename); + ok(!!pos, "Failed to list %s.\n", basename); + + /* PID le */ + sprintf(options, "/fi "PID le %ld"", current_pid); + run_tasklist(options, 0); + ok(stdout_size > 0, "Unexpected stdout buffer size %ld.\n", stdout_size); + ok(stderr_size == 0, "Unexpected stderr buffer size %ld.\n", stderr_size); + pos = strstr(stdout_buffer, basename); + ok(!!pos, "Failed to list %s.\n", basename); + + /* IMAGENAME eq + PID eq */ + sprintf(options, "/fi "IMAGENAME eq %s" /fi "PID eq %ld"", basename, current_pid); + run_tasklist(options, 0); + ok(stdout_size > 0, "Unexpected stdout buffer size %ld.\n", stdout_size); + ok(stderr_size == 0, "Unexpected stderr buffer size %ld.\n", stderr_size); + pos = strstr(stdout_buffer, basename); + ok(!!pos, "Failed to list %s.\n", basename); + + /* IMAGENAME eq + PID eq with wrong PID */ + sprintf(options, "/fi "IMAGENAME eq %s" /fi "PID eq %ld"", basename, current_pid + 1); + run_tasklist(options, 0); + ok(stdout_size > 0, "Unexpected stdout buffer size %ld.\n", stdout_size); + ok(stderr_size == 0, "Unexpected stderr buffer size %ld.\n", stderr_size); + pos = strstr(stdout_buffer, basename); + ok(!pos, "Got %s.\n", basename); +} + START_TEST(tasklist) { if (PRIMARYLANGID(GetUserDefaultUILanguage()) != LANG_ENGLISH) @@ -175,4 +278,5 @@ START_TEST(tasklist) test_basic(); test_no_header(); test_format(); + test_filter(); }