Index: /trunk/FACT++/src/dimctrl.cc
===================================================================
--- /trunk/FACT++/src/dimctrl.cc	(revision 13753)
+++ /trunk/FACT++/src/dimctrl.cc	(revision 13754)
@@ -161,36 +161,33 @@
         if (txt=="")
         {
+            ostringstream pid;
+            pid << getpid();
+
             fLabel = qos;
 
-            if (fDebug)
-            {
-                string msg;
-                switch (fLabel)
-                {
-                case -3: msg = Line("End ["+Readline::GetScript()+"]", '=');   break;
-                case -2: msg = Line("Load ["+Readline::GetScript()+"]", '=');  break;
-                case -1: msg = Line("Begin ["+Readline::GetScript()+"]", '-'); break;
-                default:
-                    {
-                        ostringstream out;
-                        out << "Label " << fLabel << " [" << Readline::GetScript() << "]";
-                        msg = Line(out.str(), '-');
-                    }
-                }
-
-                MessageDimTX::Write(time, msg, 90);
-            }
-
-            fSrvState.setQuality(fLabel);
+            string msg;
             switch (fLabel)
             {
-            case -3: return fSrvState.Update(Readline::GetScript()+" [end]");
-            case -2: return fSrvState.Update(Readline::GetScript()+" [load]");
-            case -1: return fSrvState.Update(Readline::GetScript()+" [start]");
+            case -3: msg = "End";   break;
+            case -2: msg = "Load";  break;
+            case -1: msg = "Begin"; break;
+            default:
+                {
+                    ostringstream out;
+                    out << "Label " << fLabel;
+                    msg = out.str();
+                }
             }
 
-            ostringstream msg;
-            msg << Readline::GetScript() << " [" << fLabel << "]";
-            return fSrvState.Update(msg.str());
+            msg += ": "+Readline::GetScript()+" [";
+            if (!fUser.empty())
+                msg += fUser+":"+pid.str();
+            msg += "]";
+
+            if (fDebug)
+                MessageDimTX::Write(time, Line(msg, fLabel<-1 ? '=' :'-'), 90);
+
+            fSrvState.setQuality(fLabel);
+            return fSrvState.Update(msg);
         }
 
@@ -271,8 +268,10 @@
         ("quiet,q",     po_bool(false),  "Suppress all output except comments (log-level>=90)")
         ("debug",       po_bool(false),  "Print the labels for debugging purpose")
-        ("start",       var<string>(),   "")
-        ("stop",        po_switch(),     "")
-        ("user,u",      var<string>(),   "A user name - just for logging purposes")
+        ("start",       var<string>(),   "Start a script with the given name at the given label (script.dim[:N])")
+        ("stop",        po_switch(),     "Stop a currently running script")
+        ("user,u",      var<string>(""), "A user name - just for logging purposes (default is ${USER})")
         ;
+
+    conf.AddEnv("user", "USER");
 
     conf.AddOptions(control);
