Index: /trunk/FACT++/src/Converter.cc
===================================================================
--- /trunk/FACT++/src/Converter.cc	(revision 10325)
+++ /trunk/FACT++/src/Converter.cc	(revision 10326)
@@ -43,8 +43,10 @@
 not understood by Dim. In addition there are \b O(ptions) which are like
 Words but can be omitted. They should only be used at the end of the string.
-\b B(ool) is also special. It evaluates true/false, yes/no, on/off, 1/0.
+Both can be encapsulated in quotationmarks '"'. \b B(ool) is also special.
+It evaluates true/false, yes/no, on/off, 1/0.
 
 The non-DIM like format options can be switched on and off by using the
-strict argument in the constructor.
+strict argument in the constructor. In general DimCommands can use these
+options, but DimServices not.
 
 @remark Note that all values are interpreted as signed, except the single
@@ -175,5 +177,5 @@
     wout << " (" << val << ")";
 
-    v.insert(v.end(), val.begin(), val.end());
+    v.insert(v.end(), val.begin(), val.end()+1);
 }
 
@@ -196,4 +198,5 @@
 
     v.push_back(val);
+    v.push_back('\n');
 }
 
@@ -274,4 +277,6 @@
         line.get();
         getline(line, buf, '\"');
+        if (line.peek()==-1)
+            line.clear(ios::eofbit);
     }
     else
@@ -400,5 +405,5 @@
 //! @param ptr
 //!     Pointer to the binary representation. It will be incremented
-//!     according to the sze of the template argument
+//!     according to the size of the template argument
 //!
 //! @tparam T
@@ -420,9 +425,12 @@
 //!
 //! @param ptr
-//!     Pointer to the binary representation.
-//!
-void Converter::AddString(string &str, const string &ptr) const
-{
-    str += ' ' + ptr;
+//!     Pointer to the binary representation. It will be incremented
+//!     according to the size of the template argument
+//!
+void Converter::AddString(string &str, const char* &ptr) const
+{
+    const string txt(ptr);
+    str += " [" + txt + "]";
+    ptr += txt.length()+1;
 }
 
@@ -435,9 +443,12 @@
 //!
 //! @param ptr
-//!     Pointer to the binary representation of the string.
-//!
-void Converter::AddString(vector<boost::any> &vec, const string &ptr) const
-{
-    vec.push_back(ptr);
+//!     Pointer to the binary representation. It will be incremented
+//!     according to the size of the template argument
+//!
+void Converter::AddString(vector<boost::any> &vec, const char* &ptr) const
+{
+    const string txt(ptr);
+    vec.push_back(txt);
+    ptr += txt.length()+1;
 }
 
@@ -551,5 +562,5 @@
                 GetBinString(data, GetString(line));
                 if (*i->first.first == typeid(O))
-                    line.clear(ios::goodbit);
+                    line.clear(ios::goodbit|(line.rdstate()&ios::eofbit));
                 break;
             default:
@@ -564,5 +575,4 @@
             break;
     }
-
     wout << endl;
 
@@ -653,7 +663,5 @@
         if (*i->first.first == typeid(string))
         {
-            const string str(ptr);
-            AddString(text, str);
-            ptr += str.length()+1;
+            AddString(text, ptr);
             break;
         }
@@ -672,4 +680,6 @@
             case 'd': Add<double>   (text, ptr); break;
             case 'x': Add<long long>(text, ptr); break;
+            case 'N': AddString(text, ptr);      break;
+
             case 'v':
                 // This should never happen!
Index: /trunk/FACT++/src/Converter.h
===================================================================
--- /trunk/FACT++/src/Converter.h	(revision 10325)
+++ /trunk/FACT++/src/Converter.h	(revision 10326)
@@ -58,8 +58,8 @@
     template<class T>
         void Add(std::string &str, const char* &ptr) const;
-    void AddString(std::string &str, const std::string &ptr) const;
+    void AddString(std::string &str, const char* &ptr) const;
     template<class T>
         void Add(std::vector<boost::any> &vec, const char* &ptr) const;
-    void AddString(std::vector<boost::any> &vec, const std::string &ptr) const;
+    void AddString(std::vector<boost::any> &vec, const char* &ptr) const;
 
 
