From 3006ffa615d02dabe7431394b07e8b2d9888ca41 Mon Sep 17 00:00:00 2001 From: Peter Wu Date: Mon, 13 Nov 2017 23:43:10 +0000 Subject: CMake,editcap: avoid noise with editcap -F and -T options Avoid printing a noisy "option requires an argument" error when using '-T' and '-F' as documented. Fix warning that started showing on macOS with CMake 3.9.4 about CMP0058 since v2.5.0rc0-1180-g799f4f0e14. Change-Id: Ie0cc352c6b0b2724997e7fe6b49fd5b1f02d1e07 Reviewed-on: https://code.wireshark.org/review/24404 Petri-Dish: Peter Wu Reviewed-by: Ahmad Fatoum Tested-by: Petri Dish Buildbot Reviewed-by: Gerald Combs --- docbook/CMakeLists.txt | 10 ++++++---- editcap.c | 8 +++++++- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/docbook/CMakeLists.txt b/docbook/CMakeLists.txt index 94e9b8f206..946411cf31 100644 --- a/docbook/CMakeLists.txt +++ b/docbook/CMakeLists.txt @@ -81,8 +81,8 @@ foreach(th_command ${WSUG_TOOLS_HELP_COMMANDS}) list(APPEND WSUG_TOOLS_PHONY_DEPS ${th_phony}) add_custom_command( OUTPUT ${th_phony} - COMMAND ${CMAKE_BINARY_DIR}/run/${th_command} -h > ${th_file} - DEPENDS ${CMAKE_BINARY_DIR}/run/${th_command} + COMMAND ${th_command} -h > ${th_file} + DEPENDS ${th_command} ) endforeach() @@ -95,7 +95,8 @@ list(APPEND WSUG_TOOLS_HELP_FILES ${th_file}) list(APPEND WSUG_TOOLS_PHONY_DEPS ${th_phony}) add_custom_command( OUTPUT ${th_phony} - COMMAND ${CMAKE_BINARY_DIR}/run/editcap -F > ${th_file} + COMMAND editcap -F > ${th_file} + DEPENDS editcap ) set(th_file ${CMAKE_CURRENT_SOURCE_DIR}/wsug_src/editcap-T.txt) set(th_phony editcap_T_tools_help) @@ -103,7 +104,8 @@ list(APPEND WSUG_TOOLS_HELP_FILES ${th_file}) list(APPEND WSUG_TOOLS_PHONY_DEPS ${th_phony}) add_custom_command( OUTPUT ${th_phony} - COMMAND ${CMAKE_BINARY_DIR}/run/editcap -T > ${th_file} + COMMAND editcap -T > ${th_file} + DEPENDS editcap ) add_custom_target(update_tools_help diff --git a/editcap.c b/editcap.c index fa6ab2ed57..cc75f6baf5 100644 --- a/editcap.c +++ b/editcap.c @@ -1047,7 +1047,7 @@ main(int argc, char *argv[]) #endif /* Process the options */ - while ((opt = getopt_long(argc, argv, "a:A:B:c:C:dD:E:F:hi:I:Lo:rs:S:t:T:vVw:", long_options, NULL)) != -1) { + while ((opt = getopt_long(argc, argv, ":a:A:B:c:C:dD:E:F:hi:I:Lo:rs:S:t:T:vVw:", long_options, NULL)) != -1) { switch (opt) { case 0x8100: { @@ -1279,6 +1279,7 @@ main(int argc, char *argv[]) break; case '?': /* Bad options if GNU getopt */ + case ':': /* missing option argument */ switch(optopt) { case'F': list_capture_types(stdout); @@ -1287,6 +1288,11 @@ main(int argc, char *argv[]) list_encap_types(stdout); break; default: + if (opt == '?') { + fprintf(stderr, "editcap: invalid option -- '%c'\n", optopt); + } else { + fprintf(stderr, "editcap: option requires an argument -- '%c'\n", optopt); + } print_usage(stderr); ret = INVALID_OPTION; break; -- cgit v1.2.3