From 84f963dfa2300a83bc7b6cfe17ca105b3b3604fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Valverde?= Date: Mon, 6 Feb 2023 21:57:51 +0000 Subject: [PATCH] Move ui/version_info.[ch] to wsutil --- CMakeLists.txt | 15 +----------- capinfos.c | 2 +- captype.c | 2 +- dftest.c | 2 +- docbook/wsdg_src/wsdg_tools.adoc | 2 +- dumpcap.c | 2 +- editcap.c | 2 +- epan/dissectors/packet-ssh.c | 1 - epan/epan.c | 9 +++++-- extcap.c | 3 +-- file.c | 2 +- fuzz/CMakeLists.txt | 2 +- fuzz/fuzzshark.c | 2 +- mergecap.c | 2 +- rawshark.c | 2 +- reordercap.c | 2 +- sharkd.c | 2 +- sharkd_daemon.c | 2 +- sharkd_session.c | 2 +- text2pcap.c | 2 +- tfshark.c | 2 +- tshark.c | 2 +- ui/CMakeLists.txt | 23 ++---------------- ui/commandline.c | 2 +- ui/decode_as_utils.c | 1 - ui/export_pdu_ui_utils.c | 2 +- ui/logray/logray_main.cpp | 2 +- ui/logray/logray_main_window.cpp | 2 +- ui/qt/about_dialog.cpp | 2 +- ui/qt/capture_file_properties_dialog.cpp | 2 +- ui/qt/follow_stream_dialog.cpp | 1 - ui/qt/main.cpp | 2 +- ui/qt/welcome_page.cpp | 2 +- ui/qt/wireshark_main_window.cpp | 3 +-- ui/tap_export_pdu.c | 3 +-- ui/text_import.c | 2 +- wsutil/CMakeLists.txt | 8 +++++++ {ui => wsutil}/version_info.c | 30 ++++++++++++++++-------- {ui => wsutil}/version_info.h | 28 ++++++++++++++++++++++ 39 files changed, 96 insertions(+), 83 deletions(-) rename {ui => wsutil}/version_info.c (98%) rename {ui => wsutil}/version_info.h (88%) diff --git a/CMakeLists.txt b/CMakeLists.txt index d1311d1546..87f9be9638 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2592,7 +2592,6 @@ if(BUILD_wireshark AND QT_FOUND) iface_monitor wiretap epan - version_info summary ${QT_LIBRARIES} ${APPLE_APPLICATION_SERVICES_LIBRARY} @@ -2605,6 +2604,7 @@ if(BUILD_wireshark AND QT_FOUND) ${WINSPARKLE_LIBRARIES} $<$:UxTheme.lib> ${SPEEXDSP_LIBRARIES} + ${ZLIB_LIBRARIES} ${MINIZIP_LIBRARIES} ) @@ -2699,7 +2699,6 @@ if(BUILD_logray AND QT_FOUND) iface_monitor wiretap epan - version_info summary ${QT_LIBRARIES} ${APPLE_APPLICATION_SERVICES_LIBRARY} @@ -2860,7 +2859,6 @@ if(BUILD_tshark) wiretap epan wsutil - version_info ${APPLE_CORE_FOUNDATION_LIBRARY} ${APPLE_SYSTEM_CONFIGURATION_LIBRARY} ${WIN_WS2_32_LIBRARY} @@ -2890,7 +2888,6 @@ if(BUILD_tfshark) ui wiretap epan - version_info ${APPLE_CORE_FOUNDATION_LIBRARY} ${APPLE_SYSTEM_CONFIGURATION_LIBRARY} ) @@ -2913,7 +2910,6 @@ if(BUILD_rawshark AND PCAP_FOUND) ui wiretap epan - version_info ${APPLE_CORE_FOUNDATION_LIBRARY} ${APPLE_SYSTEM_CONFIGURATION_LIBRARY} ${WIN_WS2_32_LIBRARY} @@ -2936,7 +2932,6 @@ if(BUILD_sharkd) ui wiretap epan - version_info ${APPLE_CORE_FOUNDATION_LIBRARY} ${APPLE_SYSTEM_CONFIGURATION_LIBRARY} ${WIN_WS2_32_LIBRARY} @@ -2966,7 +2961,6 @@ if(BUILD_dftest) ui wiretap epan - version_info ) set(dftest_FILES dftest.c @@ -3007,7 +3001,6 @@ if(BUILD_text2pcap) wsutil ui epan - version_info ${ZLIB_LIBRARIES} ) set(text2pcap_FILES @@ -3027,7 +3020,6 @@ if(BUILD_mergecap) set(mergecap_LIBS ui wiretap - version_info ${ZLIB_LIBRARIES} ${CMAKE_DL_LIBS} ) @@ -3047,7 +3039,6 @@ if(BUILD_reordercap) set(reordercap_LIBS ui wiretap - version_info ${ZLIB_LIBRARIES} ${CMAKE_DL_LIBS} ) @@ -3068,7 +3059,6 @@ if(BUILD_capinfos) ui wiretap wsutil - version_info ${ZLIB_LIBRARIES} ${GCRYPT_LIBRARIES} ${CMAKE_DL_LIBS} @@ -3091,7 +3081,6 @@ if(BUILD_captype) ui wiretap wsutil - version_info ${ZLIB_LIBRARIES} ${CMAKE_DL_LIBS} ) @@ -3111,7 +3100,6 @@ if(BUILD_editcap) set(editcap_LIBS ui wiretap - version_info ${ZLIB_LIBRARIES} ${GCRYPT_LIBRARIES} ${CMAKE_DL_LIBS} @@ -3136,7 +3124,6 @@ if(BUILD_dumpcap AND PCAP_FOUND) caputils iface_monitor ui - version_info pcap::pcap ${CAP_LIBRARIES} ${ZLIB_LIBRARIES} diff --git a/capinfos.c b/capinfos.c index b315a6e8a8..bb9f2688ec 100644 --- a/capinfos.c +++ b/capinfos.c @@ -62,7 +62,7 @@ #include #include #include -#include +#include #include #ifdef HAVE_PLUGINS diff --git a/captype.c b/captype.c index e3c2a92978..6be70c3d6f 100644 --- a/captype.c +++ b/captype.c @@ -32,7 +32,7 @@ #include #include #include -#include +#include #ifdef HAVE_PLUGINS #include diff --git a/dftest.c b/dftest.c index 72ac4d9eef..9cd2749e1b 100644 --- a/dftest.c +++ b/dftest.c @@ -40,7 +40,7 @@ #include "ui/util.h" #include "ui/cmdarg_err.h" #include "ui/failure_message.h" -#include "ui/version_info.h" +#include "wsutil/version_info.h" static int opt_verbose = 0; #define DFTEST_LOG_NONE 0 diff --git a/docbook/wsdg_src/wsdg_tools.adoc b/docbook/wsdg_src/wsdg_tools.adoc index 98a0896cfd..b884eb72db 100644 --- a/docbook/wsdg_src/wsdg_tools.adoc +++ b/docbook/wsdg_src/wsdg_tools.adoc @@ -378,7 +378,7 @@ A description of `_MSC_VER` and `_MSC_FULL_VER`, and their relation to Visual St can be found at https://learn.microsoft.com/en-us/cpp/preprocessor/predefined-macros?view=msvc-170[Microsoft-specific predefined macros]. -Information on the V{cpp} version can be found in the file _ui/version_info.c_. +Information on the V{cpp} version can be found in the file _wsutil/version_info.c_. After correct installation of the toolchain, typing at the Visual Studio Command line prompt (cmd.exe): diff --git a/dumpcap.c b/dumpcap.c index e09f27d59d..3777ddb7a6 100644 --- a/dumpcap.c +++ b/dumpcap.c @@ -34,7 +34,7 @@ #include #include #include -#include +#include #include #include diff --git a/editcap.c b/editcap.c index 3ef46d9295..e3b8d88788 100644 --- a/editcap.c +++ b/editcap.c @@ -57,7 +57,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/epan/dissectors/packet-ssh.c b/epan/dissectors/packet-ssh.c index 1f8585c0cc..cb50189fc8 100644 --- a/epan/dissectors/packet-ssh.c +++ b/epan/dissectors/packet-ssh.c @@ -58,7 +58,6 @@ #include #include #include -#include #include #include diff --git a/epan/epan.c b/epan/epan.c index 0a95ed64e6..eef96a5805 100644 --- a/epan/epan.c +++ b/epan/epan.c @@ -32,8 +32,7 @@ #include #include #include - -#include +#include #include "conversation.h" #include "except.h" @@ -777,6 +776,9 @@ epan_dissect_packet_contains_field(epan_dissect_t* edt, void epan_gather_compile_info(feature_list l) { + gather_zlib_compile_info(l); + gather_pcre2_compile_info(l); + /* Lua */ #ifdef HAVE_LUA #ifdef HAVE_LUA_UNICODE @@ -874,6 +876,9 @@ epan_gather_compile_info(feature_list l) void epan_gather_runtime_info(feature_list l) { + gather_zlib_runtime_info(l); + gather_pcre2_runtime_info(l); + /* c-ares */ with_feature(l, "c-ares %s", ares_version(NULL)); diff --git a/extcap.c b/extcap.c index 793d484a91..4a1378e28b 100644 --- a/extcap.c +++ b/extcap.c @@ -43,6 +43,7 @@ #include #include #include +#include #include "capture/capture_session.h" #include "capture_opts.h" @@ -50,8 +51,6 @@ #include "extcap.h" #include "extcap_parser.h" -#include "ui/version_info.h" - /* Number of seconds to wait for extcap process to exit after cleanup. * If extcap does not exit before the timeout, it is forcefully terminated. */ diff --git a/file.c b/file.c index b1cd7dd26b..8d3af3f23a 100644 --- a/file.c +++ b/file.c @@ -24,7 +24,7 @@ #include #include #include -#include +#include #include diff --git a/fuzz/CMakeLists.txt b/fuzz/CMakeLists.txt index c4229922b5..4b417db6ee 100644 --- a/fuzz/CMakeLists.txt +++ b/fuzz/CMakeLists.txt @@ -30,7 +30,7 @@ set(fuzzshark_LIBS ui wiretap epan - version_info + wsutil ) if(OSS_FUZZ) if("$ENV{LIB_FUZZING_ENGINE}" STREQUAL "") diff --git a/fuzz/fuzzshark.c b/fuzz/fuzzshark.c index d793b559f1..7742c10a74 100644 --- a/fuzz/fuzzshark.c +++ b/fuzz/fuzzshark.c @@ -27,7 +27,7 @@ #include #include #include -#include +#include #include diff --git a/mergecap.c b/mergecap.c index 1720868dee..b022c2ec93 100644 --- a/mergecap.c +++ b/mergecap.c @@ -35,7 +35,7 @@ #include #include -#include +#include #ifdef HAVE_PLUGINS #include diff --git a/rawshark.c b/rawshark.c index 43aed5f8bc..242965046a 100644 --- a/rawshark.c +++ b/rawshark.c @@ -85,7 +85,7 @@ #include #include -#include +#include #include "capture/capture-pcap-util.h" diff --git a/reordercap.c b/reordercap.c index 083eb0dfed..b7201c27ba 100644 --- a/reordercap.c +++ b/reordercap.c @@ -26,7 +26,7 @@ #include #include #include -#include +#include #include #ifdef HAVE_PLUGINS diff --git a/sharkd.c b/sharkd.c index fe7dafc662..4d9d3784a5 100644 --- a/sharkd.c +++ b/sharkd.c @@ -31,7 +31,7 @@ #include #include #include -#include +#include #include #include diff --git a/sharkd_daemon.c b/sharkd_daemon.c index 5e1c2aec96..5daa7e1856 100644 --- a/sharkd_daemon.c +++ b/sharkd_daemon.c @@ -38,7 +38,7 @@ #endif #include -#include +#include #include "sharkd.h" diff --git a/sharkd_session.c b/sharkd_session.c index 3f5414aee1..2222b8950d 100644 --- a/sharkd_session.c +++ b/sharkd_session.c @@ -55,7 +55,7 @@ #include #include #include -#include +#include #include #include diff --git a/text2pcap.c b/text2pcap.c index c1429f2ee1..0920c8cae8 100644 --- a/text2pcap.c +++ b/text2pcap.c @@ -74,7 +74,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/tfshark.c b/tfshark.c index af5011095e..9224274665 100644 --- a/tfshark.c +++ b/tfshark.c @@ -39,7 +39,7 @@ #include #include #include -#include +#include #include "globals.h" #include diff --git a/tshark.c b/tshark.c index d3dbe62d4e..98dc641e7c 100644 --- a/tshark.c +++ b/tshark.c @@ -51,7 +51,7 @@ #include #include #include -#include +#include #include #include "globals.h" diff --git a/ui/CMakeLists.txt b/ui/CMakeLists.txt index fd0021dbe0..d741aad7c7 100644 --- a/ui/CMakeLists.txt +++ b/ui/CMakeLists.txt @@ -104,31 +104,12 @@ target_include_directories(summary ${GCRYPT_INCLUDE_DIRS} ) -add_library(version_info STATIC version_info.c) - -if(NOT VCSVERSION_OVERRIDE) - add_dependencies(version_info vcs_version) -endif() - -target_link_libraries(version_info - PRIVATE - wsutil - ${ZLIB_LIBRARIES} - ${PCRE2_LIBRARIES} -) - -target_include_directories(version_info - SYSTEM PRIVATE - ${ZLIB_INCLUDE_DIRS} - ${PCRE2_INCLUDE_DIRS} -) - -set_target_properties(ui version_info PROPERTIES +set_target_properties(ui summary PROPERTIES LINK_FLAGS "${WS_LINK_FLAGS}" FOLDER "UI" ) if(MSVC) - set_target_properties(ui version_info PROPERTIES + set_target_properties(ui summary PROPERTIES LINK_FLAGS_DEBUG "${WS_MSVC_DEBUG_LINK_FLAGS}" ) endif() diff --git a/ui/commandline.c b/ui/commandline.c index e37bbb620b..1a1aca9575 100644 --- a/ui/commandline.c +++ b/ui/commandline.c @@ -19,7 +19,7 @@ #include #include -#include +#include #include #include diff --git a/ui/decode_as_utils.c b/ui/decode_as_utils.c index be2164e372..af2295f604 100644 --- a/ui/decode_as_utils.c +++ b/ui/decode_as_utils.c @@ -25,7 +25,6 @@ #include "wsutil/filesystem.h" #include #include "ui/cmdarg_err.h" -#include "ui/version_info.h" /* XXX - We might want to switch this to a UAT */ diff --git a/ui/export_pdu_ui_utils.c b/ui/export_pdu_ui_utils.c index 9192203037..f64ddcb206 100644 --- a/ui/export_pdu_ui_utils.c +++ b/ui/export_pdu_ui_utils.c @@ -15,7 +15,7 @@ #include "globals.h" #include "wsutil/os_version_info.h" #include "wsutil/tempfile.h" -#include "ui/version_info.h" +#include "wsutil/version_info.h" #include #include diff --git a/ui/logray/logray_main.cpp b/ui/logray/logray_main.cpp index df53c09b0e..c18354a8ed 100644 --- a/ui/logray/logray_main.cpp +++ b/ui/logray/logray_main.cpp @@ -36,7 +36,7 @@ #include #include #include -#include +#include #include #include diff --git a/ui/logray/logray_main_window.cpp b/ui/logray/logray_main_window.cpp index 8b5ce9ec9b..0a386a34b7 100644 --- a/ui/logray/logray_main_window.cpp +++ b/ui/logray/logray_main_window.cpp @@ -24,7 +24,7 @@ DIAG_ON(frame-larger-than=) #include #include #include -#include +#include #include #include #include diff --git a/ui/qt/about_dialog.cpp b/ui/qt/about_dialog.cpp index ef6d8791be..cbda5da2a0 100644 --- a/ui/qt/about_dialog.cpp +++ b/ui/qt/about_dialog.cpp @@ -38,7 +38,7 @@ #include "wsutil/file_util.h" #include "wsutil/tempfile.h" #include "wsutil/plugins.h" -#include "ui/version_info.h" +#include "wsutil/version_info.h" #include "ui/capture_globals.h" #include "extcap.h" diff --git a/ui/qt/capture_file_properties_dialog.cpp b/ui/qt/capture_file_properties_dialog.cpp index e1ab88decc..9e5b86a7fd 100644 --- a/ui/qt/capture_file_properties_dialog.cpp +++ b/ui/qt/capture_file_properties_dialog.cpp @@ -17,7 +17,7 @@ #include "wsutil/str_util.h" #include "wsutil/utf8_entities.h" -#include "ui/version_info.h" +#include "wsutil/version_info.h" #include #include "main_application.h" diff --git a/ui/qt/follow_stream_dialog.cpp b/ui/qt/follow_stream_dialog.cpp index 204ed0202e..932a565868 100644 --- a/ui/qt/follow_stream_dialog.cpp +++ b/ui/qt/follow_stream_dialog.cpp @@ -28,7 +28,6 @@ #include "wsutil/file_util.h" #include "wsutil/str_util.h" -#include "ui/version_info.h" #include "ws_symbol_export.h" diff --git a/ui/qt/main.cpp b/ui/qt/main.cpp index cc6beced8e..1e9ee62ebf 100644 --- a/ui/qt/main.cpp +++ b/ui/qt/main.cpp @@ -36,7 +36,7 @@ #include #include #include -#include +#include #include #include diff --git a/ui/qt/welcome_page.cpp b/ui/qt/welcome_page.cpp index ce3c2a986a..ac37a6d930 100644 --- a/ui/qt/welcome_page.cpp +++ b/ui/qt/welcome_page.cpp @@ -16,7 +16,7 @@ #include "ui/capture_globals.h" #include "ui/urls.h" -#include "ui/version_info.h" +#include "wsutil/version_info.h" #include "welcome_page.h" #include diff --git a/ui/qt/wireshark_main_window.cpp b/ui/qt/wireshark_main_window.cpp index ce1401e099..6dc6a7cc10 100644 --- a/ui/qt/wireshark_main_window.cpp +++ b/ui/qt/wireshark_main_window.cpp @@ -24,7 +24,7 @@ DIAG_ON(frame-larger-than=) #include #include #include -#include +#include #include #include #include @@ -3135,4 +3135,3 @@ QString WiresharkMainWindow::findRtpStreams(QVector *stream_id } return NULL; } - diff --git a/ui/tap_export_pdu.c b/ui/tap_export_pdu.c index d37dbd02db..ded820f1a5 100644 --- a/ui/tap_export_pdu.c +++ b/ui/tap_export_pdu.c @@ -17,8 +17,7 @@ #include #include #include - -#include "ui/version_info.h" +#include "wsutil/version_info.h" #include "tap_export_pdu.h" diff --git a/ui/text_import.c b/ui/text_import.c index be39ccfcaf..8017f1ed37 100644 --- a/ui/text_import.c +++ b/ui/text_import.c @@ -99,7 +99,7 @@ #include #include -#include +#include #include #include diff --git a/wsutil/CMakeLists.txt b/wsutil/CMakeLists.txt index bdc1f0f9eb..0935fcaba7 100644 --- a/wsutil/CMakeLists.txt +++ b/wsutil/CMakeLists.txt @@ -81,6 +81,7 @@ set(WSUTIL_PUBLIC_HEADERS type_util.h unicode-utils.h utf8_entities.h + version_info.h ws_assert.h ws_cpuid.h glib-compat.h @@ -143,6 +144,7 @@ set(WSUTIL_COMMON_FILES to_str.c type_util.c unicode-utils.c + version_info.c ws_getopt.c ws_mempbrk.c ws_pipe.c @@ -284,6 +286,10 @@ add_library(wsutil ${CMAKE_BINARY_DIR}/resources/libwsutil.rc ) +if(NOT VCSVERSION_OVERRIDE) + add_dependencies(wsutil vcs_version) +endif() + target_compile_definitions(wsutil PRIVATE WS_BUILD_DLL BUILD_WSUTIL @@ -309,6 +315,7 @@ target_link_libraries(wsutil ${CMAKE_DL_LIBS} ${GCRYPT_LIBRARIES} ${GNUTLS_LIBRARIES} + ${ZLIB_LIBRARIES} ${PCRE2_LIBRARIES} ${WIN_IPHLPAPI_LIBRARY} ${WIN_WS2_32_LIBRARY} @@ -321,6 +328,7 @@ target_include_directories(wsutil SYSTEM ${GNUTLS_INCLUDE_DIRS} PRIVATE ${GMODULE2_INCLUDE_DIRS} + ${ZLIB_INCLUDE_DIRS} ${PCRE2_INCLUDE_DIRS} ) diff --git a/ui/version_info.c b/wsutil/version_info.c similarity index 98% rename from ui/version_info.c rename to wsutil/version_info.c index 2d001f33cf..27390d5b5d 100644 --- a/ui/version_info.c +++ b/wsutil/version_info.c @@ -152,8 +152,14 @@ get_appname_and_version(void) return appname_with_version; } -static void -get_zlib_feature_info(feature_list l) +void +gather_pcre2_compile_info(feature_list l) +{ + with_feature(l, "PCRE2"); +} + +void +gather_zlib_compile_info(feature_list l) { #ifdef HAVE_ZLIB #ifdef ZLIB_VERSION @@ -191,8 +197,6 @@ get_compiled_version_info(gather_feature_func gather_compile) with_feature(&l, "GLib (version unknown)"); #endif - with_feature(&l, "PCRE2"); - get_zlib_feature_info(&l); if (gather_compile != NULL) { gather_compile(&l); @@ -415,8 +419,8 @@ get_compiler_info(GString *str) #endif } -static inline void -get_pcre2_runtime_version_info(feature_list l) +void +gather_pcre2_runtime_info(feature_list l) { /* From pcre2_api(3): * The where argument should point to a buffer that is at least 24 code @@ -441,6 +445,15 @@ get_pcre2_runtime_version_info(feature_list l) g_free(buf_pcre2); } +void +gather_zlib_runtime_info(feature_list l) +{ + (void)l; +#if defined(HAVE_ZLIB) && !defined(_WIN32) + with_feature(l, "zlib %s", zlibVersion()); +#endif +} + /* * Get various library run-time versions, and the OS version, and append * them to the specified GString. @@ -469,10 +482,7 @@ get_runtime_version_info(gather_feature_func gather_runtime) with_feature(&l, "GLib %u.%u.%u", glib_major_version, glib_minor_version, glib_micro_version); - get_pcre2_runtime_version_info(&l); -#if defined(HAVE_ZLIB) && !defined(_WIN32) - with_feature(&l, "zlib %s", zlibVersion()); -#endif + if (gather_runtime != NULL) { gather_runtime(&l); } diff --git a/ui/version_info.h b/wsutil/version_info.h similarity index 88% rename from ui/version_info.h rename to wsutil/version_info.h index 193a8e3482..1285cd2c57 100644 --- a/ui/version_info.h +++ b/wsutil/version_info.h @@ -39,6 +39,7 @@ extern "C" { * put the libcap information into the string, as we currently * don't use libcap in TShark. */ +WS_DLL_PUBLIC void ws_init_version_info(const char *appname, gather_feature_func gather_compile, gather_feature_func gather_runtime); @@ -48,8 +49,17 @@ void ws_init_version_info(const char *appname, * ws_init_version_info(), followed by a string giving the * application version. */ +WS_DLL_PUBLIC const char *get_appname_and_version(void); +WS_DLL_PUBLIC +void +gather_pcre2_compile_info(feature_list l); + +WS_DLL_PUBLIC +void +gather_zlib_compile_info(feature_list l); + /* * Get various library compile-time versions, put them in a GString, * and return the GString. @@ -57,8 +67,17 @@ const char *get_appname_and_version(void); * "gather_compile" is called (if non-null) to add any additional build-time * information. */ +WS_DLL_PUBLIC GString *get_compiled_version_info(gather_feature_func gather_compile); +WS_DLL_PUBLIC +void +gather_pcre2_runtime_info(feature_list l); + +WS_DLL_PUBLIC +void +gather_zlib_runtime_info(feature_list l); + /* * Get various library run-time versions, and the OS version, put them in * a GString, and return the GString. @@ -68,6 +87,7 @@ GString *get_compiled_version_info(gather_feature_func gather_compile); * put the libcap information into the string, as we currently * don't use libcap in TShark. */ +WS_DLL_PUBLIC GString *get_runtime_version_info(gather_feature_func gather_runtime); /* @@ -75,22 +95,26 @@ GString *get_runtime_version_info(gather_feature_func gather_runtime); * from a tree checked out from Wireshark's version control system, * something identifying what version was checked out. */ +WS_DLL_PUBLIC const char *get_ws_vcs_version_info(void); /* * Shorter version of get_ws_vcs_version_info(). */ +WS_DLL_PUBLIC const char *get_ws_vcs_version_info_short(void); /* * Return version number as integers. */ +WS_DLL_PUBLIC void get_ws_version_number(int *major, int *minor, int *micro); /* * Show the program name and version number information on the standard * output; this is used for command-line "show the version" options. */ +WS_DLL_PUBLIC void show_version(void); /* @@ -98,12 +122,16 @@ void show_version(void); * description string, and a "See {URL} for more information" message. * This is used for command-line "help" options. */ +WS_DLL_PUBLIC void show_help_header(const char *description); +WS_DLL_PUBLIC const char *get_copyright_info(void); +WS_DLL_PUBLIC const char *get_license_info(void); +WS_DLL_PUBLIC const char *get_license_info_short(void); #ifdef __cplusplus