From 1f26e9546786fd898c916a362afa1b29171af435 Mon Sep 17 00:00:00 2001 From: Vadim Lopatin Date: Sun, 8 Feb 2015 19:43:07 +0300 Subject: [PATCH] autodetect line endings while processing resource list for embedding; issue #49 --- src/dlangui/graphics/resources.d | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/dlangui/graphics/resources.d b/src/dlangui/graphics/resources.d index 3dd9b4f9..417d2e43 100644 --- a/src/dlangui/graphics/resources.d +++ b/src/dlangui/graphics/resources.d @@ -168,9 +168,21 @@ EmbeddedResource[] embedResources(string[] resourceNames)() { return embedResources!(resourceNames[0 .. $/2])() ~ embedResources!(resourceNames[$/2 .. $])(); } +/// split string into lines, autodetect line endings +string[] splitLines(string s) { + auto lines_crlf = split(s, "\r\n"); + auto lines_cr = split(s, "\r"); + auto lines_lf = split(s, "\n"); + if (lines_crlf.length >= lines_cr.length && lines_crlf.length >= lines_lf.length) + return lines_crlf; + if (lines_cr.length > lines_lf.length) + return lines_cr; + return lines_lf; +} + /// embed all resources from list EmbeddedResource[] embedResourcesFromList(string resourceList)() { - return embedResources!(split(import(resourceList), "\n"))(); + return embedResources!(splitLines(import(resourceList)))(); }