WRITE_CHAR(shell.options);
+ WRITE_SUBTITLE("Helpers");
+ secure_fprintf(ssi, "# Html browser\n");
+ secure_fprintf(ssi, "# command_name is: the binary's name to look for in the path\n");
+ secure_fprintf(ssi, "# If command_name is empty, the program will try various common html browsers\n");
+ secure_fprintf(ssi, "# command_line is:\n");
+ secure_fprintf(ssi, "# \"\" (empty string) = execute binary with html file path as command line\n");
+ secure_fprintf(ssi, "# \"string\" = execute string and use results for command line\n");
+ secure_fprintf(ssi, "# \"!string\" = use text following ! as command line, replacing optional %%s with html file path\n");
+ WRITE_CHAR(helpers.html_browser.command_name);
+ WRITE_CHAR(helpers.html_browser.command_line);
+
+
WRITE_SUBTITLE("External Programs");
secure_fprintf(ssi, "# Maximum of %d programs (external_1 through external_%d)\n", GQ_EDITOR_GENERIC_SLOTS, GQ_EDITOR_GENERIC_SLOTS);
secure_fprintf(ssi, "# external_%d through external_%d are used for file ops\n", GQ_EDITOR_GENERIC_SLOTS + 1, GQ_EDITOR_SLOTS);
READ_CHAR(shell.path);
READ_CHAR(shell.options);
+ /* Helpers */
+ READ_CHAR(helpers.html_browser.command_name);
+ READ_CHAR(helpers.html_browser.command_line);
+
/* External Programs */
if (is_numbered_option(option, "external_", &i))
/*
*-----------------------------------------------------------------------------
- * Open browser with the help Documentation
+ * Open browser with the help Documentation
*-----------------------------------------------------------------------------
*/
{
gchar *result = NULL;
FILE *f;
- char buf[2048];
- int l;
+ gchar buf[2048];
+ gint l;
- if (!binary) return NULL;
+ if (!binary || binary[0] == '\0') return NULL;
if (!file_in_path(binary)) return NULL;
- if (!command) return g_strdup(binary);
+ if (!command || command[0] == '\0') return g_strdup(binary);
if (command[0] == '!') return g_strdup(command + 1);
f = popen(command, "r");
{
if (!result)
{
- int n = 0;
+ gint n = 0;
while (n < l && buf[n] != '\n' && buf[n] != '\r') n++;
if (n > 0) result = g_strndup(buf, n);
*/
static gchar *html_browsers[] =
{
+ /* Our specific script */
+ GQ_APPNAME_LC "_html_browser", NULL,
/* Redhat has a nifty htmlview script to start the user's preferred browser */
"htmlview", NULL,
/* Debian has even better approach with alternatives */
static void help_browser_run(void)
{
- gchar *result = NULL;
+ gchar *result;
gint i;
+ result = command_result(options->helpers.html_browser.command_name, options->helpers.html_browser.command_line);
+
i = 0;
while (!result && html_browsers[i])
{