View mode: basic / threaded / horizontal-split · Log in · Help
August 04, 2005
[patch] std.string: add os-dependant newline constants and wrap() function
--- 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;
+}
Top | Discussion index | About this forum | D home