@@ -32,14 +32,41 @@ var Value = function(){
3232 return arr;
3333 };
3434
35− var properEscape = function(str) {
36− return str.replace(/&/g, "&")
37− .replace(/"/g, /*"*/ """)
38− .replace(/'/g, /*'*/ "'")
39− .replace(/</g, "<")
40− .replace(/>/g, ">")
41− .replace(/\n/g, "<br/>");
42− };
35+ function makeSpaces(s) {
36+ var arr = s.split('');
37+ if (arr[0] == ' ') { arr[0] = " " }
38+ for (var i = arr.length; --i; ) {
39+ if (arr[i][0] == ' ' && arr[i-1] == ' ') {
40+ arr[i-1] = arr[i-1] + arr[i];
41+ arr[i] = '';
42+ }
43+ }
44+ for (var i = arr.length; i--; ) {
45+ if (arr[i].length > 1 && arr[i][0] == ' ') {
46+ var spaces = arr[i].split('');
47+ for (var j = spaces.length - 2; j >= 0; j -= 2) {
48+ spaces[j] = ' ';
49+ }
50+ arr[i] = spaces.join('');
51+ }
52+ }
53+ return arr.join('');
54+ }
55+
56+ function properEscape(str) {
57+ if (str.length == 0) return str;
58+ str = str //.replace(/&/g, "&")
59+ .replace(/"/g, /*"*/ """)
60+ .replace(/'/g, /*'*/ "'")
61+ .replace(/</g, "<")
62+ .replace(/>/g, ">")
63+ .replace(/\n/g, "<br/>");
64+ var arr = str.split('<br/>');
65+ for (var i = arr.length; i--; ) {
66+ arr[i] = makeSpaces(arr[i]);
67+ }
68+ return arr.join('<br/>');
69+ }
4370
4471 var toText = function(elmList) {
4572 if (typeof elmList === "string") return properEscape(elmList);