Handle extraneous cli args as urls
This commit is contained in:
parent
73c9321361
commit
aab55d8cff
|
@ -21,10 +21,11 @@ Comment[fr]=Discutez avec tout le monde sur l'Internet Relay Chat
|
||||||
Comment[de]=Sich über Internet Relay Chat mit andern Leuten unterhalten
|
Comment[de]=Sich über Internet Relay Chat mit andern Leuten unterhalten
|
||||||
Comment[it]=Chiacchierare con la gente sull'Internet Relay Chat
|
Comment[it]=Chiacchierare con la gente sull'Internet Relay Chat
|
||||||
Comment[nb]=Snakk med mennesker på Internet Relay Chat
|
Comment[nb]=Snakk med mennesker på Internet Relay Chat
|
||||||
Exec=hexchat
|
Exec=hexchat %U
|
||||||
Icon=hexchat
|
Icon=hexchat
|
||||||
Terminal=false
|
Terminal=false
|
||||||
Type=Application
|
Type=Application
|
||||||
Categories=GTK;Network;IRCClient;
|
Categories=GTK;Network;IRCClient;
|
||||||
StartupNotify=true
|
StartupNotify=true
|
||||||
X-GNOME-UsesNotifications=true
|
X-GNOME-UsesNotifications=true
|
||||||
|
MimeType=x-scheme-handler/irc;x-scheme-handler/ircs;
|
||||||
|
|
|
@ -105,6 +105,7 @@ int hexchat_is_quitting = FALSE;
|
||||||
int arg_dont_autoconnect = FALSE;
|
int arg_dont_autoconnect = FALSE;
|
||||||
int arg_skip_plugins = FALSE;
|
int arg_skip_plugins = FALSE;
|
||||||
char *arg_url = NULL;
|
char *arg_url = NULL;
|
||||||
|
char **arg_urls = NULL;
|
||||||
char *arg_command = NULL;
|
char *arg_command = NULL;
|
||||||
gint arg_existing = FALSE;
|
gint arg_existing = FALSE;
|
||||||
|
|
||||||
|
@ -400,6 +401,7 @@ irc_init (session *sess)
|
||||||
{
|
{
|
||||||
static int done_init = FALSE;
|
static int done_init = FALSE;
|
||||||
char *buf;
|
char *buf;
|
||||||
|
int i;
|
||||||
|
|
||||||
if (done_init)
|
if (done_init)
|
||||||
return;
|
return;
|
||||||
|
@ -432,6 +434,17 @@ irc_init (session *sess)
|
||||||
g_free (buf);
|
g_free (buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (arg_urls != NULL)
|
||||||
|
{
|
||||||
|
for (i = 0; i < g_strv_length(arg_urls); i++)
|
||||||
|
{
|
||||||
|
buf = g_strdup_printf ("%s %s", i==0? "server" : "newserver", arg_urls[i]);
|
||||||
|
handle_command (sess, buf, FALSE);
|
||||||
|
g_free (buf);
|
||||||
|
}
|
||||||
|
g_strfreev (arg_urls);
|
||||||
|
}
|
||||||
|
|
||||||
if (arg_command != NULL)
|
if (arg_command != NULL)
|
||||||
{
|
{
|
||||||
g_free (arg_command);
|
g_free (arg_command);
|
||||||
|
@ -924,17 +937,17 @@ xchat_init (void)
|
||||||
servlist_init (); /* load server list */
|
servlist_init (); /* load server list */
|
||||||
|
|
||||||
/* if we got a URL, don't open the server list GUI */
|
/* if we got a URL, don't open the server list GUI */
|
||||||
if (!prefs.hex_gui_slist_skip && !arg_url)
|
if (!prefs.hex_gui_slist_skip && !arg_url && !arg_urls)
|
||||||
fe_serverlist_open (NULL);
|
fe_serverlist_open (NULL);
|
||||||
|
|
||||||
/* turned OFF via -a arg */
|
/* turned OFF via -a arg or by passing urls */
|
||||||
if (!arg_dont_autoconnect)
|
if (!arg_dont_autoconnect && !arg_urls)
|
||||||
{
|
{
|
||||||
/* do any auto connects */
|
/* do any auto connects */
|
||||||
if (!servlist_have_auto ()) /* if no new windows open .. */
|
if (!servlist_have_auto ()) /* if no new windows open .. */
|
||||||
{
|
{
|
||||||
/* and no serverlist gui ... */
|
/* and no serverlist gui ... */
|
||||||
if (prefs.hex_gui_slist_skip || arg_url)
|
if (prefs.hex_gui_slist_skip || arg_url || arg_urls)
|
||||||
/* we'll have to open one. */
|
/* we'll have to open one. */
|
||||||
new_ircwindow (NULL, NULL, SESS_SERVER, 0);
|
new_ircwindow (NULL, NULL, SESS_SERVER, 0);
|
||||||
} else
|
} else
|
||||||
|
@ -943,7 +956,7 @@ xchat_init (void)
|
||||||
}
|
}
|
||||||
} else
|
} else
|
||||||
{
|
{
|
||||||
if (prefs.hex_gui_slist_skip || arg_url)
|
if (prefs.hex_gui_slist_skip || arg_url || arg_urls)
|
||||||
new_ircwindow (NULL, NULL, SESS_SERVER, 0);
|
new_ircwindow (NULL, NULL, SESS_SERVER, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,6 +26,7 @@ extern int hexchat_is_quitting;
|
||||||
extern gint arg_skip_plugins; /* command-line args */
|
extern gint arg_skip_plugins; /* command-line args */
|
||||||
extern gint arg_dont_autoconnect;
|
extern gint arg_dont_autoconnect;
|
||||||
extern char *arg_url;
|
extern char *arg_url;
|
||||||
|
extern char **arg_urls;
|
||||||
extern char *arg_command;
|
extern char *arg_command;
|
||||||
extern gint arg_existing;
|
extern gint arg_existing;
|
||||||
|
|
||||||
|
|
|
@ -131,6 +131,7 @@ static const GOptionEntry gopt_entries[] =
|
||||||
#endif
|
#endif
|
||||||
{"minimize", 0, 0, G_OPTION_ARG_INT, &arg_minimize, N_("Begin minimized. Level 0=Normal 1=Iconified 2=Tray"), N_("level")},
|
{"minimize", 0, 0, G_OPTION_ARG_INT, &arg_minimize, N_("Begin minimized. Level 0=Normal 1=Iconified 2=Tray"), N_("level")},
|
||||||
{"version", 'v', 0, G_OPTION_ARG_NONE, &arg_show_version, N_("Show version information"), NULL},
|
{"version", 'v', 0, G_OPTION_ARG_NONE, &arg_show_version, N_("Show version information"), NULL},
|
||||||
|
{G_OPTION_REMAINING, '\0', 0, G_OPTION_ARG_STRING_ARRAY, &arg_urls, NULL, NULL},
|
||||||
{NULL}
|
{NULL}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue