summaryrefslogtreecommitdiff
path: root/tool/gkr-tool-import.c
diff options
context:
space:
mode:
Diffstat (limited to 'tool/gkr-tool-import.c')
-rw-r--r--tool/gkr-tool-import.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/tool/gkr-tool-import.c b/tool/gkr-tool-import.c
index 74bbfabb..99c38903 100644
--- a/tool/gkr-tool-import.c
+++ b/tool/gkr-tool-import.c
@@ -98,6 +98,7 @@ int
gkr_tool_import (int argc, char *argv[])
{
GcrImporter *importer;
+ GcrParser *parser;
GError *error = NULL;
GInputStream *input;
gboolean res;
@@ -129,8 +130,15 @@ gkr_tool_import (int argc, char *argv[])
gkr_tool_handle_error (&error, "couldn't read file: %s", *imp);
ret = 1;
} else {
- res = gcr_importer_import (importer, input, NULL, &error);
+ parser = gcr_parser_new ();
+ gcr_importer_listen (importer, parser);
+ res = gcr_parser_parse_stream (parser, input, NULL, &error);
g_object_unref (input);
+ g_object_unref (parser);
+
+ if (res == TRUE)
+ res = gcr_importer_import (importer, NULL, &error);
+
if (res == FALSE) {
if (!error || error->code != GCR_ERROR_CANCELLED)
gkr_tool_handle_error (&error, "couldn't import file: %s", *imp);