www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - [patch] std.string: add os-dependant newline constants and wrap()

--- string.d	2005-08-04 16:40:30.000000000 -0400
+++ string.new	2005-08-04 16:42:14.000000000 -0400
   -65,7 +65,10   
  }

  /************** Constants ****************/
-
+version(Win32)
+const char[2] newline="\r\n";
+else version(linux)
+const char[1] newline="\n";
  const char[16] hexdigits = "0123456789ABCDEF";
  const char[10] digits    = "0123456789";
  const char[8]  octdigits = "01234567";
   -2946,3 +2949,22   
      r = tr("Abc", "AAA", "XYZ");
      assert(r == "Xbc");
  }
+//wraps a string after a certain length by inserting the system-specific
newline,
+char[] wrap(char[] s, uint endline)
+	{
+char[] n;
+	int i=endline;
+	while(true)
+		{
+			if(i>=s.length)
+			break;
+		//if we don't have enough room for a complete line, we tack on what's left
and exit out
+			if(i<s.length&&s.length-i<newline)
+			{
+			n~=s[i..length-1];
+			break;
+			}
+		n~=s[0..i-1]~newline;
+}
+return n;
+}
Aug 04 2005