gpgscm: Fix detection of unbalanced parenthesis.
authorJustus Winter <justus@g10code.com>
Tue, 6 Sep 2016 14:35:40 +0000 (16:35 +0200)
committerJustus Winter <justus@g10code.com>
Tue, 6 Sep 2016 14:46:31 +0000 (16:46 +0200)
* tests/gpgscm/main.c (load): Print error message.
* tests/gpgscm/scheme.c (opexe_0): Correctly report nesting level when
loading files.

Signed-off-by: Justus Winter <justus@g10code.com>
tests/gpgscm/main.c
tests/gpgscm/scheme.c

index 34ebb9f..9aef1f3 100644 (file)
@@ -32,6 +32,7 @@
 
 #include "private.h"
 #include "scheme.h"
+#include "scheme-private.h"
 #include "ffi.h"
 #include "i18n.h"
 #include "../../common/argparse.h"
@@ -176,6 +177,13 @@ load (scheme *sc, char *file_name,
   scheme_load_named_file (sc, h, qualified_name);
   fclose (h);
 
+  if (sc->retcode)
+    {
+      if (sc->nesting)
+        fprintf (stderr, "%s: Unbalanced parenthesis\n", qualified_name);
+      return gpg_error (GPG_ERR_GENERAL);
+    }
+
   if (file_name != qualified_name)
     free (qualified_name);
   return 0;
index 987f5af..1fc7643 100644 (file)
@@ -2592,6 +2592,7 @@ static pointer opexe_0(scheme *sc, enum scheme_opcodes op) {
        if(sc->file_i == 0)
          {
            sc->args=sc->NIL;
+           sc->nesting = sc->nesting_stack[0];
            s_goto(sc,OP_QUIT);
          }
        else