diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-10 20:34:10 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-10 20:34:10 +0000 |
commit | e4ba6dbc3f1e76890b22773807ea37fe8fa2b1bc (patch) | |
tree | 68cb5ef9081156392f1dd62a00c6ccc1451b93df /ui/help_url.c | |
parent | Initial commit. (diff) | |
download | wireshark-e4ba6dbc3f1e76890b22773807ea37fe8fa2b1bc.tar.xz wireshark-e4ba6dbc3f1e76890b22773807ea37fe8fa2b1bc.zip |
Adding upstream version 4.2.2.upstream/4.2.2
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'ui/help_url.c')
-rw-r--r-- | ui/help_url.c | 308 |
1 files changed, 308 insertions, 0 deletions
diff --git a/ui/help_url.c b/ui/help_url.c new file mode 100644 index 00000000..ec016ddb --- /dev/null +++ b/ui/help_url.c @@ -0,0 +1,308 @@ +/* help_url.c + * + * Some content from gtk/help_dlg.c by Laurent Deniel <laurent.deniel@free.fr> + * + * Wireshark - Network traffic analyzer + * By Gerald Combs <gerald@wireshark.org> + * Copyright 2000 Gerald Combs + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "config.h" + +#include <string.h> + +#include <glib.h> + +#include "help_url.h" +#include "urls.h" +#include "wsutil/filesystem.h" +#include <wsutil/ws_assert.h> + +// To do: +// - Automatically generate part or all of this, e.g. by parsing +// the DocBook XML or the chunked HTML. + +/* + * Open the help dialog and show a specific HTML help page. + */ +gchar * +user_guide_url(const gchar *page) { + GString *url = g_string_new(""); + +#if defined(_WIN32) + /* + * The User's Guide is in a directory named "Wireshark User's Guide" in + * the program directory. + */ + + GString *ug_dir = g_string_new(""); + g_string_printf(ug_dir, "%s\\Wireshark User's Guide", get_datafile_dir()); + if (g_file_test(ug_dir->str, G_FILE_TEST_IS_DIR)) { + g_string_printf(url, "file:///%s/%s", ug_dir->str, page); + } + g_string_free(ug_dir, TRUE); +#else + char *path = g_build_filename(get_doc_dir(), "wsug_html_chunked", page, NULL); + if (g_file_test(path, G_FILE_TEST_IS_REGULAR)) { + /* try to open the HTML page from the filesystem */ + g_string_printf(url, "file://%s", path); + } + g_free(path); + path = NULL; +#endif /* _WIN32 */ + + + /* Fall back to wireshark.org. */ + if (url->len == 0) { + g_string_printf(url, WS_DOCS_URL "wsug_html_chunked/%s", page); + } + return g_string_free(url, FALSE); +} + +gchar * +topic_action_url(topic_action_e action) +{ + gchar *url; + + switch(action) { + /* pages online at www.wireshark.org */ + case(ONLINEPAGE_HOME): + url = g_strdup(WS_HOME_PAGE_URL); + break; + case(ONLINEPAGE_WIKI): + url = g_strdup(WS_WIKI_HOME_URL); + break; + case(ONLINEPAGE_DOWNLOAD): + url = g_strdup(WS_DOWNLOAD_URL); + break; + case(ONLINEPAGE_DOCS): + url = g_strdup(WS_DOCS_URL); + break; + case(ONLINEPAGE_USERGUIDE): + url = g_strdup(WS_DOCS_URL "wsug_html_chunked/"); + break; + case(ONLINEPAGE_FAQ): + url = g_strdup(WS_FAQ_URL); + break; + case(ONLINEPAGE_ASK): + url = g_strdup(WS_Q_AND_A_URL); + break; + case(ONLINEPAGE_SAMPLE_FILES): + url = g_strdup(WS_WIKI_URL("SampleCaptures")); + break; + case(ONLINEPAGE_CAPTURE_SETUP): + url = g_strdup(WS_WIKI_URL("CaptureSetup")); + break; + case(ONLINEPAGE_NETWORK_MEDIA): + url = g_strdup(WS_WIKI_URL("CaptureSetup/NetworkMedia")); + break; + case(ONLINEPAGE_SAMPLE_CAPTURES): + url = g_strdup(WS_WIKI_URL("SampleCaptures")); + break; + case(ONLINEPAGE_SECURITY): + url = g_strdup(WS_WIKI_URL("Security")); + break; + case(ONLINEPAGE_CHIMNEY): + url = g_strdup(WS_WIKI_URL("CaptureSetup/Offloading#chimney")); + break; + + /* local manual pages */ + case(LOCALPAGE_MAN_WIRESHARK): + url = doc_file_url("wireshark.html"); + break; + case(LOCALPAGE_MAN_WIRESHARK_FILTER): + url = doc_file_url("wireshark-filter.html"); + break; + case(LOCALPAGE_MAN_CAPINFOS): + url = doc_file_url("capinfos.html"); + break; + case(LOCALPAGE_MAN_DUMPCAP): + url = doc_file_url("dumpcap.html"); + break; + case(LOCALPAGE_MAN_EDITCAP): + url = doc_file_url("editcap.html"); + break; + case(LOCALPAGE_MAN_MERGECAP): + url = doc_file_url("mergecap.html"); + break; + case(LOCALPAGE_MAN_RAWSHARK): + url = doc_file_url("rawshark.html"); + break; + case(LOCALPAGE_MAN_REORDERCAP): + url = doc_file_url("reordercap.html"); + break; + case(LOCALPAGE_MAN_TEXT2PCAP): + url = doc_file_url("text2pcap.html"); + break; + case(LOCALPAGE_MAN_TSHARK): + url = doc_file_url("tshark.html"); + break; + + /* Release Notes */ + case(LOCALPAGE_RELEASE_NOTES): + url = doc_file_url("release-notes.html"); + break; + + /* local help pages (User's Guide) */ + case(HELP_CONTENT): + url = user_guide_url( "index.html"); + break; + case(HELP_CAPTURE_OPTIONS): + url = user_guide_url("ChCapCaptureOptions.html"); + break; + case(HELP_CAPTURE_FILTERS_DIALOG): + url = user_guide_url("ChWorkDefineFilterSection.html"); + break; + case(HELP_DISPLAY_FILTERS_DIALOG): + url = user_guide_url("ChWorkDefineFilterSection.html"); + break; + case(HELP_FILTER_EXPRESSION_DIALOG): + url = user_guide_url("ChWorkFilterAddExpressionSection.html"); + break; + case(HELP_COLORING_RULES_DIALOG): + url = user_guide_url("ChCustColorizationSection.html"); + break; + case(HELP_CONFIG_PROFILES_DIALOG): + url = user_guide_url("ChCustConfigProfilesSection.html"); + break; + case(HELP_PRINT_DIALOG): + url = user_guide_url("ChIOPrintSection.html"); + break; + case(HELP_FIND_DIALOG): + url = user_guide_url("ChWorkFindPacketSection.html"); + break; + case(HELP_FIREWALL_DIALOG): + url = user_guide_url("ChUseToolsMenuSection.html"); + break; + case(HELP_GOTO_DIALOG): + url = user_guide_url("ChWorkGoToPacketSection.html"); + break; + case(HELP_CAPTURE_OPTIONS_DIALOG): + url = user_guide_url("ChCapCaptureOptions.html"); + break; + case(HELP_CAPTURE_INFO_DIALOG): + url = user_guide_url("ChCapRunningSection.html"); + break; + case(HELP_CAPTURE_MANAGE_INTERFACES_DIALOG): + url = user_guide_url("ChCapManageInterfacesSection.html"); + break; + case(HELP_ENABLED_PROTOCOLS_DIALOG): + url = user_guide_url("ChCustProtocolDissectionSection.html"); + break; + case(HELP_ENABLED_HEURISTICS_DIALOG): + url = user_guide_url("ChCustProtocolDissectionSection.html"); + break; + case(HELP_DECODE_AS_DIALOG): + url = user_guide_url("ChCustProtocolDissectionSection.html"); + break; + case(HELP_DECODE_AS_SHOW_DIALOG): + url = user_guide_url("ChCustProtocolDissectionSection.html"); + break; + case(HELP_FOLLOW_STREAM_DIALOG): + url = user_guide_url("ChAdvFollowStreamSection.html"); + break; + case(HELP_SHOW_PACKET_BYTES_DIALOG): + url = user_guide_url("ChAdvShowPacketBytes.html"); + break; + case(HELP_EXPERT_INFO_DIALOG): + url = user_guide_url("ChAdvExpert.html"); + break; + case(HELP_EXTCAP_OPTIONS_DIALOG): + url = doc_file_url("extcap.html"); + break; + case(HELP_STATS_SUMMARY_DIALOG): + url = user_guide_url("ChStatSummary.html"); + break; + case(HELP_STATS_PROTO_HIERARCHY_DIALOG): + url = user_guide_url("ChStatHierarchy.html"); + break; + case(HELP_STATS_ENDPOINTS_DIALOG): + url = user_guide_url("ChStatEndpoints.html"); + break; + case(HELP_STATS_CONVERSATIONS_DIALOG): + url = user_guide_url("ChStatConversations.html"); + break; + case(HELP_STATS_IO_GRAPH_DIALOG): + url = user_guide_url("ChStatIOGraphs.html"); + break; + case(HELP_STATS_LTE_MAC_TRAFFIC_DIALOG): + url = user_guide_url("ChTelLTE.html#ChTelLTEMACTraffic"); + break; + case(HELP_STATS_LTE_RLC_TRAFFIC_DIALOG): + url = user_guide_url("ChTelLTE.html#ChTelLTERLCTraffic"); + break; + case(HELP_STATS_TCP_STREAM_GRAPHS_DIALOG): + url = user_guide_url("ChStatTCPStreamGraphs.html"); + break; + case(HELP_STATS_WLAN_TRAFFIC_DIALOG): + url = user_guide_url("ChWirelessWLANTraffic.html"); + break; + case(HELP_FILESET_DIALOG): + url = user_guide_url("ChIOFileSetSection.html"); + break; + case(HELP_CAPTURE_INTERFACE_OPTIONS_DIALOG): + url = user_guide_url("ChCustPreferencesSection.html#ChCustInterfaceOptionsSection"); + break; + case(HELP_PREFERENCES_DIALOG): + url = user_guide_url("ChCustPreferencesSection.html"); + break; + case(HELP_EXPORT_FILE_DIALOG): + case(HELP_EXPORT_FILE_WIN32_DIALOG): + url = user_guide_url("ChIOExportSection.html"); + break; + case(HELP_EXPORT_BYTES_DIALOG): + url = user_guide_url("ChIOExportSection.html#ChIOExportSelectedDialog"); + break; + case(HELP_EXPORT_OBJECT_LIST): + url = user_guide_url("ChIOExportSection.html#ChIOExportObjectsDialog"); + break; + case(HELP_OPEN_DIALOG): + case(HELP_OPEN_WIN32_DIALOG): + url = user_guide_url("ChIOOpenSection.html"); + break; + case(HELP_MERGE_DIALOG): + case(HELP_MERGE_WIN32_DIALOG): + url = user_guide_url("ChIOMergeSection.html"); + break; + case(HELP_IMPORT_DIALOG): + url = user_guide_url("ChIOImportSection.html"); + break; + case(HELP_SAVE_DIALOG): + case(HELP_SAVE_WIN32_DIALOG): + url = user_guide_url("ChIOSaveSection.html"); + break; + case(HELP_TIME_SHIFT_DIALOG): + url = user_guide_url("ChWorkShiftTimePacketSection.html"); + break; + case(HELP_TELEPHONY_VOIP_CALLS_DIALOG): + url = user_guide_url("ChTelVoipCalls.html"); + break; + case(HELP_TELEPHONY_RTP_ANALYSIS_DIALOG): + url = user_guide_url("ChTelRTP.html#ChTelRTPAnalysis"); + break; + case(HELP_TELEPHONY_RTP_STREAMS_DIALOG): + url = user_guide_url("ChTelRTP.html#ChTelRTPStreams"); + break; + case(HELP_NEW_PACKET_DIALOG): + url = user_guide_url("ChapterWork.html#ChWorkPacketSepView"); + break; + case(HELP_IAX2_ANALYSIS_DIALOG): + url = user_guide_url("ChTelIAX2Analysis.html"); + break; + case(HELP_TELEPHONY_RTP_PLAYER_DIALOG): + url = user_guide_url("ChTelRTP.html#ChTelRtpPlayer"); + break; + case(HELP_STAT_FLOW_GRAPH): + url = user_guide_url("ChStatFlowGraph.html"); + break; + + case(TOPIC_ACTION_NONE): + default: + url = g_strdup(WS_HOME_PAGE_URL); + ws_assert_not_reached(); + } + + return url; +} |