home: hub: 9ficl

Download patch

ref: 8542bc8a6ae40a7f42c9ad63a12e2f6d01d45f48
parent: bedc04c61570b08e55444136805b94dade678697
author: asau <asau@ficl.sf.net>
date: Wed Dec 22 03:05:52 CST 2010

Don't print message immediatly when throwing exception.

--- a/vm.c
+++ b/vm.c
@@ -3,7 +3,7 @@
 ** Forth Inspired Command Language - virtual machine methods
 ** Author: John Sadler (john_sadler@alum.mit.edu)
 ** Created: 19 July 1997
-** $Id: vm.c,v 1.21 2010/12/04 21:31:00 asau Exp $
+** $Id: vm.c,v 1.22 2010/12/22 09:05:52 asau Exp $
 *******************************************************************/
 /*
 ** This file implements the virtual machine of Ficl. Each virtual
@@ -2651,7 +2651,6 @@
     va_end(list);
 	strcat(vm->pad, "\n");
 
-    ficlVmErrorOut(vm, vm->pad);
     longjmp(*(vm->exceptionHandler), FICL_VM_STATUS_ERROR_EXIT);
 }
 
@@ -2663,7 +2662,6 @@
     va_end(list);
 	strcat(vm->pad, "\n");
 	
-    ficlVmErrorOut(vm, vm->pad);
     longjmp(*(vm->exceptionHandler), FICL_VM_STATUS_ERROR_EXIT);
 }
 
@@ -2768,10 +2766,11 @@
         ficlVmQuit(vm);
         break;
 
+    default: /* unhandled exception */
     case FICL_VM_STATUS_ERROR_EXIT:
+	ficlVmErrorOut(vm, vm->pad); /* print saved message */
     case FICL_VM_STATUS_ABORT:
     case FICL_VM_STATUS_ABORTQ:
-    default:    /* user defined exit code?? */
         if (vm->state == FICL_VM_STATE_COMPILE)
         {
             ficlDictionaryAbortDefinition(dictionary);