g_error_free(error);
ret = FALSE;
} else {
+ /* No data required */
+ if ( vt == NULL )
+ return TRUE;
+
gchar line[512];
FILE *diag;
diag = fdopen(babel_stdout, "r");
if (unbuffer_loc)
args[i++] = unbuffer_loc;
args[i++] = gpsbabel_loc;
- for (j = 0; sub_args[j]; j++)
- args[i++] = sub_args[j];
+ for (j = 0; sub_args[j]; j++) {
+ /* some version of gpsbabel can not take extra blank arg */
+ if (sub_args[j][0] != '\0')
+ args[i++] = sub_args[j];
+ }
args[i++] = "-o";
args[i++] = "gpx";
- args[i++] = from;
+ args[i++] = "-f";
+ args[i++] = (char *)from;
+ args[i++] = "-F";
args[i++] = name_dst;
args[i] = NULL;
g_free ( unbuffer_loc );
g_strfreev(sub_args);
- }
+ } else
+ g_warning("gpsbabel not found in PATH");
g_free(gpsbabel_loc);
}
g_remove(name_dst);
g_free(name_dst);
- /* FIXME: free babelargs ? */
return ret;
}
gboolean a_babel_convert_from_url ( VikTrwLayer *vt, const char *url, const char *input_type, BabelStatusFunc cb, gpointer user_data )
{
- static DownloadOptions options = {NULL, 0, a_check_html_file};
+ static DownloadMapOptions options = { FALSE, FALSE, NULL, 0, a_check_kml_file};
gint fd_src;
int fetch_ret;
gboolean ret = FALSE;
babelargs = g_strdup_printf(" -i %s", input_type);
- fetch_ret = a_http_download_get_url(url, "", name_src, &options);
+ fetch_ret = a_http_download_get_url(url, "", name_src, &options, NULL);
if (fetch_ret == 0)
ret = a_babel_convert_from( vt, babelargs, NULL, name_src, NULL);
args[i++] = "-i";
args[i++] = "gpx";
for (j = 0; sub_args[j]; j++)
- args[i++] = sub_args[j];
+ /* some version of gpsbabel can not take extra blank arg */
+ if (sub_args[j][0] != '\0')
+ args[i++] = sub_args[j];
+ args[i++] = "-f";
args[i++] = name_src;
- args[i++] = to;
+ args[i++] = "-F";
+ args[i++] = (char *)to;
args[i] = NULL;
ret = babel_general_convert_to ( vt, cb, args, name_src, user_data );
g_free ( unbuffer_loc );
g_strfreev(sub_args);
- }
+ } else
+ g_warning("gpsbabel not found in PATH");
g_free(gpsbabel_loc);
}
g_remove(name_src);
g_free(name_src);
- /* FIXME: free babelargs ? */
return ret;
}