Index: trunk/FACT++/src/InterpreterV8.cc
===================================================================
--- trunk/FACT++/src/InterpreterV8.cc	(revision 18977)
+++ trunk/FACT++/src/InterpreterV8.cc	(revision 18978)
@@ -13,5 +13,5 @@
 
 #ifdef HAVE_NOVA
-#include "externals/nova.h"
+#include "nova.h"
 #endif
 
@@ -25,5 +25,5 @@
 #include "tools.h"
 #include "Readline.h"
-#include "externals/izstream.h"
+#include "izstream.h"
 
 #include "WindowLog.h"
@@ -157,5 +157,5 @@
     const int nn = args.Length()==2 ? 0 : args.Length()-3;
 
-    Handle<Value> argv[nn];
+    vector<Handle<Value>> argv(nn);
     for (int i=0; i<nn; i++)
         argv[i] = args[i+3];
@@ -164,5 +164,8 @@
     while (1)
     {
-        const Handle<Value> rc = args.Length()<3 ? func->Call(func, nn, argv) : func->Call(args[2]->ToObject(), nn, argv);
+        const Handle<Value> rc = args.Length()<3 ?
+            func->Call(func, nn, argv.data()) :
+            func->Call(args[2]->ToObject(), nn, argv.data());
+
         if (rc.IsEmpty())
             return Undefined();
@@ -628,5 +631,5 @@
     string arg0 = args.Length() ? *String::AsciiValue(args[0]) : "";
     if (arg0=="*")
-        arg0=="";
+        arg0="";
 
     const set<Service> services = JsGetServices();
@@ -1187,4 +1190,6 @@
         return ThrowException(String::New(e.what()));
     }
+#else
+    return Undefined();
 #endif
 }
@@ -1227,4 +1232,6 @@
         return ThrowException(String::New(e.what()));
     }
+#else
+    return Undefined();
 #endif
 }
@@ -2199,11 +2206,11 @@
     obj->Set(String::New("observatory"), String::New(args.obs.c_str()), ReadOnly);
 
-    const bool isUp = rc>0 ||
+    const bool isUp = 
         (rst.rise<rst.set && (args.jd>rst.rise && args.jd<rst.set)) ||
         (rst.rise>rst.set && (args.jd<rst.set  || args.jd>rst.rise));
 
-    obj->Set(String::New("isUp"), Boolean::New(rc>=0 && isUp), ReadOnly);
-
-    if (rc!=0)
+    obj->Set(String::New("isUp"), Boolean::New(isUp), ReadOnly);
+
+    if (!rc) // circumpolar
         return obj;
 
@@ -2261,5 +2268,5 @@
 
     ln_rst_time sun;
-    const int rc = ln_get_solar_rst_horizon(local.jd-0.5, &local.posn, hrz, &sun);
+    const bool rc = ln_get_solar_rst_horizon(local.jd-0.5, &local.posn, hrz, &sun)==0;
     Handle<Object> rst = ConstructRiseSet(local, sun, rc);
     rst->Set(String::New("horizon"), Number::New(hrz));
@@ -2282,5 +2289,5 @@
 
     ln_rst_time moon;
-    const int rc = ln_get_lunar_rst(local.jd-0.5, &local.posn, &moon);
+    const bool rc = ln_get_lunar_rst(local.jd-0.5, &local.posn, &moon)==0;
     Handle<Object> rst = ConstructRiseSet(local, moon, rc);
     return handle_scope.Close(rst);
@@ -2551,10 +2558,10 @@
 Handle<Value> InterpreterV8::Constructor(/*Handle<FunctionTemplate> T,*/ const Arguments &args)
 {
-    Handle<Value> argv[args.Length()];
+    vector<Handle<Value>> argv(args.Length());
 
     for (int i=0; i<args.Length(); i++)
         argv[i] = args[i];
 
-    return args.Callee()->NewInstance(args.Length(), argv);
+    return args.Callee()->NewInstance(args.Length(), argv.data());
 }
 
