Index: trunk/FACT++/src/Main.h
===================================================================
--- trunk/FACT++/src/Main.h	(revision 13672)
+++ trunk/FACT++/src/Main.h	(revision 13673)
@@ -34,4 +34,5 @@
             ("cmd",        vars<string>(), "Execute one or more commands at startup")
             ("exec,e",     vars<string>(), "Execute one or more scrips at startup ('file:N' - start at label N)")
+            ("arg:*",      var<string>(),  "Arguments for script execution, e.g. --val:ra='12.5436'")
             ("quit",       po_switch(),    "Quit after startup");
         ;
@@ -128,6 +129,21 @@
         io_service.Write(now, "\\----------------------- Options ------------------------");
         const multimap<string,string> mmap = conf.GetOptions();
-        for (multimap<string,string>::const_iterator it=mmap.begin(); it!=mmap.end(); it++)
+        for (auto it=mmap.begin(); it!=mmap.end(); it++)
             io_service.Write(now, ": "+it->first+(it->second.empty()?"":" = ")+it->second);
+
+        const map<string,string> &args = conf.GetOptions<string>("arg:");
+        if (args.size()>0)
+        {
+            io_service.Write(now, "------------------------ Arguments ----------------------", MessageImp::kMessage);
+
+            for (auto it=args.begin(); it!=args.end(); it++)
+            {
+                ostringstream str;
+                str.setf(ios_base::left);
+                str << ": " << it->first << " = " << it->second;
+                io_service.Write(now, str.str(), MessageImp::kMessage);
+            }
+        }
+
         io_service.Write(now, "\\------------------- Evaluating options -----------------");
         const int rc = io_service.EvalOptions(conf);
@@ -146,9 +162,9 @@
 
             size_t max = 0;
-            for (map<string,string>::const_iterator it=wco.begin(); it!=wco.end(); it++)
+            for (auto it=wco.begin(); it!=wco.end(); it++)
                 if (it->second.length()>max)
                     max = it->second.length();
 
-            for (map<string,string>::const_iterator it=wco.begin(); it!=wco.end(); it++)
+            for (auto it=wco.begin(); it!=wco.end(); it++)
             {
                 ostringstream str;
@@ -180,5 +196,5 @@
         const vector<string> v2 = conf.Vec<string>("exec");
         for (vector<string>::const_iterator it=v2.begin(); it!=v2.end(); it++)
-            shell.Execute(*it);
+            shell.Execute(*it, args);
 
         if (!conf.Get<bool>("quit"))
