ui: move filesystem code to wsutil/filesystem.c

This function can be used by code outside ui (eg. extcap).

Ping-Bug: 13218
Change-Id: Ic11f7acebefeaf777692df044ebff9b1bc387aa3
Reviewed-on: https://code.wireshark.org/review/19178
Petri-Dish: Dario Lombardo <lomato@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
This commit is contained in:
Dario Lombardo 2016-12-09 11:46:20 +01:00 committed by Michael Mann
parent 8dca05f188
commit 43000acd74
5 changed files with 37 additions and 37 deletions

View File

@ -114,6 +114,8 @@
#include "ui/gtk/webbrowser.h"
#include <wsutil/filesystem.h>
#if defined(G_OS_WIN32)
/* Win32 - use Windows shell services to start a browser */
#include <windows.h>

View File

@ -36,33 +36,6 @@
#include <wsutil/unicode-utils.h>
#endif
/*
* Given a filename return a filesystem URL. Relative paths are prefixed with
* the datafile directory path.
*/
gchar *
data_file_url(const gchar *filename)
{
gchar *file_path;
gchar *uri;
/* Absolute path? */
if(g_path_is_absolute(filename)) {
file_path = g_strdup(filename);
} else if(running_in_build_directory()) {
file_path = g_strdup_printf("%s/doc/%s", get_datafile_dir(), filename);
} else {
file_path = g_strdup_printf("%s/%s", get_datafile_dir(), filename);
}
/* XXX - check, if the file is really existing, otherwise display a simple_dialog about the problem */
/* convert filename to uri */
uri = g_filename_to_uri(file_path, NULL, NULL);
g_free(file_path);
return uri;
}
const char *
topic_online_url(topic_action_e action)
{

View File

@ -124,16 +124,6 @@ typedef enum {
HELP_TELEPHONY_RTP_PLAYER_DIALOG
} topic_action_e;
/** Given a filename return a filesystem URL. Relative paths are prefixed with
* the datafile directory path.
*
* @param filename A file name or path. Relative paths will be prefixed with
* the data file directory path.
* @return A filesystem URL for the file or NULL on failure. A non-NULL return
* value must be freed with g_free().
*/
gchar *data_file_url(const gchar *filename);
/** Given a topic action return its online (www.wireshark.org) URL or NULL.
*
* @param action Topic action, e.g. ONLINEPAGE_HOME or ONLINEPAGE_ASK.

View File

@ -2121,6 +2121,29 @@ done:
return FALSE;
}
gchar *
data_file_url(const gchar *filename)
{
gchar *file_path;
gchar *uri;
/* Absolute path? */
if(g_path_is_absolute(filename)) {
file_path = g_strdup(filename);
} else if(running_in_build_directory()) {
file_path = g_strdup_printf("%s/doc/%s", get_datafile_dir(), filename);
} else {
file_path = g_strdup_printf("%s/%s", get_datafile_dir(), filename);
}
/* XXX - check, if the file is really existing, otherwise display a simple_dialog about the problem */
/* convert filename to uri */
uri = g_filename_to_uri(file_path, NULL, NULL);
g_free(file_path);
return uri;
}
/*
* Editor modelines
*

View File

@ -292,6 +292,18 @@ WS_DLL_PUBLIC gboolean files_identical(const char *fname1, const char *fname2);
WS_DLL_PUBLIC gboolean copy_file_binary_mode(const char *from_filename,
const char *to_filename);
/*
* Given a filename return a filesystem URL. Relative paths are prefixed with
* the datafile directory path.
*
* @param filename A file name or path. Relative paths will be prefixed with
* the data file directory path.
* @return A filesystem URL for the file or NULL on failure. A non-NULL return
* value must be freed with g_free().
*/
WS_DLL_PUBLIC gchar* data_file_url(const gchar *filename);
#ifdef __cplusplus
}
#endif /* __cplusplus */