plug-ins: Recognize https:// in ImageMap plug-in

This adds "https://" as a valid website prefix in the ImageMap URL edit
field, in addition to http://.
It also restores the prefix change that 2.10 had when you switched URL
types. It also fixes code formatting in affected areas.

(cherry picked from commit 6d02eb4505)
This commit is contained in:
Alx Sa 2023-03-10 00:34:48 +00:00 committed by Jehan
parent ec0ecf61b7
commit 685c8bde99

View file

@ -51,35 +51,39 @@ relative_filter(const char *name, gpointer data)
} }
static void static void
url_changed(GtkWidget *widget, gpointer data) url_changed (GtkWidget *widget,
gpointer data)
{ {
AreaInfoDialog_t *param = (AreaInfoDialog_t*) data; AreaInfoDialog_t *param = (AreaInfoDialog_t*) data;
const gchar *url = gtk_entry_get_text(GTK_ENTRY(param->url)); const gchar *url = gtk_entry_get_text (GTK_ENTRY (param->url));
GtkWidget *button; GtkWidget *button;
if (!g_ascii_strncasecmp(url, "http://", sizeof("http://") - 1)) if (! g_ascii_strncasecmp (url, "http://", sizeof ("http://") - 1) ||
button = param->web_site; ! g_ascii_strncasecmp (url, "https://", sizeof ( "https://") - 1))
else if (!g_ascii_strncasecmp(url, "ftp://", sizeof("ftp://") - 1)) button = param->web_site;
button = param->ftp_site; else if (! g_ascii_strncasecmp (url, "ftp://", sizeof ("ftp://") - 1))
else if (!g_ascii_strncasecmp(url, "gopher://", sizeof("gopher://") - 1)) button = param->ftp_site;
button = param->gopher; else if (! g_ascii_strncasecmp (url, "gopher://", sizeof ("gopher://") - 1))
else if (!g_ascii_strncasecmp(url, "file:/", sizeof("file:/") - 1)) button = param->gopher;
button = param->file; else if (! g_ascii_strncasecmp (url, "file:/", sizeof ("file:/") - 1))
else if (!g_ascii_strncasecmp(url, "wais://", sizeof("wais://") - 1)) button = param->file;
button = param->wais; else if (! g_ascii_strncasecmp (url, "wais://", sizeof ("wais://") - 1))
else if (!g_ascii_strncasecmp(url, "telnet://", sizeof("telnet://") - 1)) button = param->wais;
button = param->telnet; else if (! g_ascii_strncasecmp (url, "telnet://", sizeof ("telnet://") - 1))
else if (!g_ascii_strncasecmp(url, "mailto:", sizeof("mailto:") - 1)) button = param->telnet;
button = param->email; else if (! g_ascii_strncasecmp (url, "mailto:", sizeof ("mailto:") - 1))
else button = param->email;
button = param->other; else
button = param->other;
callback_lock = TRUE; callback_lock = TRUE;
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), TRUE); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE);
} }
static void static void
set_url(GtkWidget *widget, AreaInfoDialog_t *param, const gchar *prefix) set_url (GtkWidget *widget,
AreaInfoDialog_t *param,
const gchar *prefix)
{ {
if (callback_lock) if (callback_lock)
{ {
@ -90,16 +94,16 @@ set_url(GtkWidget *widget, AreaInfoDialog_t *param, const gchar *prefix)
if (gtk_widget_get_state (widget) & GTK_STATE_SELECTED) if (gtk_widget_get_state (widget) & GTK_STATE_SELECTED)
{ {
char *p; char *p;
gchar *url = g_strdup(gtk_entry_get_text(GTK_ENTRY(param->url))); gchar *url = g_strdup (gtk_entry_get_text (GTK_ENTRY(param->url)));
p = strstr(url, "//"); /* 'http://' */ p = strstr (url, "//"); /* 'https://' */
if (p) if (p)
{ {
p += 2; p += 2;
} }
else else
{ {
p = strchr(url, ':'); /* 'mailto:' */ p = strchr (url, ':'); /* 'mailto:' */
if (p) if (p)
{ {
p++; p++;
@ -111,61 +115,69 @@ set_url(GtkWidget *widget, AreaInfoDialog_t *param, const gchar *prefix)
p = url; p = url;
} }
} }
p = g_strconcat(prefix, p, NULL); p = g_strconcat (prefix, p, NULL);
gtk_entry_set_text(GTK_ENTRY(param->url), p); gtk_entry_set_text (GTK_ENTRY(param->url), p);
g_free(p); g_free (p);
g_free(url); g_free (url);
} }
} }
gtk_widget_grab_focus(param->url); gtk_widget_grab_focus(param->url);
} }
static void static void
select_web_cb(GtkWidget *widget, AreaInfoDialog_t *param) select_web_cb (GtkWidget *widget,
AreaInfoDialog_t *param)
{ {
set_url(widget, param, "http://"); set_url (widget, param, "https://");
} }
static void static void
select_ftp_cb(GtkWidget *widget, AreaInfoDialog_t *param) select_ftp_cb (GtkWidget *widget,
AreaInfoDialog_t *param)
{ {
set_url(widget, param, "ftp://"); set_url(widget, param, "ftp://");
} }
static void static void
select_gopher_cb(GtkWidget *widget, AreaInfoDialog_t *param) select_gopher_cb (GtkWidget *widget,
AreaInfoDialog_t *param)
{ {
set_url(widget, param, "gopher://"); set_url (widget, param, "gopher://");
} }
static void static void
select_other_cb(GtkWidget *widget, AreaInfoDialog_t *param) select_other_cb (GtkWidget *widget,
AreaInfoDialog_t *param)
{ {
set_url(widget, param, ""); set_url (widget, param, "");
} }
static void static void
select_file_cb(GtkWidget *widget, AreaInfoDialog_t *param) select_file_cb (GtkWidget *widget,
AreaInfoDialog_t *param)
{ {
set_url(widget, param, "file:/"); set_url (widget, param, "file:/");
} }
static void static void
select_wais_cb(GtkWidget *widget, AreaInfoDialog_t *param) select_wais_cb (GtkWidget *widget,
AreaInfoDialog_t *param)
{ {
set_url(widget, param, "wais://"); set_url (widget, param, "wais://");
} }
static void static void
select_telnet_cb(GtkWidget *widget, AreaInfoDialog_t *param) select_telnet_cb (GtkWidget *widget,
AreaInfoDialog_t *param)
{ {
set_url(widget, param, "telnet://"); set_url (widget, param, "telnet://");
} }
static void static void
select_email_cb(GtkWidget *widget, AreaInfoDialog_t *param) select_email_cb (GtkWidget *widget,
AreaInfoDialog_t *param)
{ {
set_url(widget, param, "mailto:"); set_url (widget, param, "mailto:");
} }
static void static void