From: Zhiyi Zhang zzhang@codeweavers.com
--- programs/tasklist/tasklist.c | 23 ++++++++++++++++------- programs/tasklist/tasklist.h | 5 +++++ programs/tasklist/tests/tasklist.c | 15 +++++++++++++++ 3 files changed, 36 insertions(+), 7 deletions(-)
diff --git a/programs/tasklist/tasklist.c b/programs/tasklist/tasklist.c index 23e32992184..d845cfea8e7 100644 --- a/programs/tasklist/tasklist.c +++ b/programs/tasklist/tasklist.c @@ -210,17 +210,21 @@ done: return ret; }
-static void tasklist_print(void) +static void tasklist_print(const struct tasklist_options *options) { struct tasklist_process_info header, info; DWORD *pid_list, list_count, i;
tasklist_printfW(GetStdHandle(STD_OUTPUT_HANDLE), L"\r\n"); - tasklist_get_header(&header); - tasklist_printfW(GetStdHandle(STD_OUTPUT_HANDLE), - L"%-25.25s %8.8s %-16.16s %11.11s %12.12s\r\n" - L"========================= ======== ================ =========== ============\r\n", - header.image_name, header.pid, header.session_name, header.session_number, header.memory_usage); + + if (!options->no_header) + { + tasklist_get_header(&header); + tasklist_printfW(GetStdHandle(STD_OUTPUT_HANDLE), + L"%-25.25s %8.8s %-16.16s %11.11s %12.12s\r\n" + L"========================= ======== ================ =========== ============\r\n", + header.image_name, header.pid, header.session_name, header.session_number, header.memory_usage); + }
pid_list = enumerate_processes(&list_count); for (i = 0; i < list_count; ++i) @@ -237,6 +241,7 @@ static void tasklist_print(void)
int __cdecl wmain(int argc, WCHAR *argv[]) { + struct tasklist_options options = {0}; int i;
for (i = 0; i < argc; i++) @@ -250,12 +255,16 @@ int __cdecl wmain(int argc, WCHAR *argv[]) tasklist_message(STRING_USAGE); return 0; } + else if (!wcsicmp(argv[i], L"/nh")) + { + options.no_header = TRUE; + } else { WINE_WARN("Ignoring option %s\n", wine_dbgstr_w(argv[i])); } }
- tasklist_print(); + tasklist_print(&options); return 0; } diff --git a/programs/tasklist/tasklist.h b/programs/tasklist/tasklist.h index 707121680ec..6add1f30277 100644 --- a/programs/tasklist/tasklist.h +++ b/programs/tasklist/tasklist.h @@ -36,3 +36,8 @@ struct tasklist_process_info WCHAR session_number[32]; WCHAR memory_usage[32]; }; + +struct tasklist_options +{ + BOOL no_header; +}; diff --git a/programs/tasklist/tests/tasklist.c b/programs/tasklist/tests/tasklist.c index cd4a2be0178..2c4d77855b0 100644 --- a/programs/tasklist/tests/tasklist.c +++ b/programs/tasklist/tests/tasklist.c @@ -108,6 +108,20 @@ static void test_basic(void) ok(stderr_size == 0, "Unexpected stderr buffer size %ld.\n", stderr_size); }
+static void test_no_header(void) +{ + char *pos; + + /* /nh */ + run_tasklist("/nh", 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, "Image Name"); + ok(!pos, "Got header.\n"); + pos = strstr(stdout_buffer, "="); + ok(!pos, "Got header.\n"); +} + START_TEST(tasklist) { if (PRIMARYLANGID(GetUserDefaultUILanguage()) != LANG_ENGLISH) @@ -117,4 +131,5 @@ START_TEST(tasklist) }
test_basic(); + test_no_header(); }