was.js – Diff between revs 34 and 41

Subversion Repositories:
Rev:
Only display areas with differencesIgnore whitespace
Rev 34 Rev 41
1 /*************************************************************************/ 1 /*************************************************************************/
2 /* Copyright (C) 2015 Wizardry and Steamworks - License: GNU GPLv3 */ 2 /* Copyright (C) 2015 Wizardry and Steamworks - License: GNU GPLv3 */
3 /*************************************************************************/ 3 /*************************************************************************/
4 function wasCSVToArray(csv) { 4 function wasCSVToArray(csv) {
5 var l = []; 5 var l = [];
6 var s = []; 6 var s = [];
7 var m = ""; 7 var m = "";
8 8
9 do { 9 do {
10 var a = csv.charAt(0); 10 var a = csv.charAt(0);
11 csv = csv.slice(1, csv.length); 11 csv = csv.slice(1, csv.length);
12 if(a === ",") { 12 if(a === ",") {
13 if(s[s.length-1] !== '"') { 13 if(s[s.length-1] !== '"') {
14 l.push(m); 14 l.push(m);
15 m = ""; 15 m = "";
16 continue; 16 continue;
17 } 17 }
18 m += a; 18 m += a;
19 continue; 19 continue;
20 } 20 }
21 if(a === '"' && csv.charAt(0) === a) { 21 if(a === '"' && csv.charAt(0) === a) {
22 m += a; 22 m += a;
23 csv = csv.slice(1, csv.length); 23 csv = csv.slice(1, csv.length);
24 continue; 24 continue;
25 } 25 }
26 if(a === '"') { 26 if(a === '"') {
27 if(s[s.length-1] !== a) { 27 if(s[s.length-1] !== a) {
28 s.push(a); 28 s.push(a);
29 continue; 29 continue;
30 } 30 }
31 s.pop(); 31 s.pop();
32 continue; 32 continue;
33 } 33 }
34 m += a; 34 m += a;
35 } while(csv !== ""); 35 } while(csv !== "");
36 36
37 l.push(m); 37 l.push(m);
38 38
39 return l; 39 return l;
40 } 40 }
41   41  
42 /*************************************************************************/ 42 /*************************************************************************/
43 /* Copyright (C) 2015 Wizardry and Steamworks - License: GNU GPLv3 */ 43 /* Copyright (C) 2015 Wizardry and Steamworks - License: GNU GPLv3 */
44 /*************************************************************************/ 44 /*************************************************************************/
45 function wasArrayToCSV(a) { 45 function wasArrayToCSV(a) {
46 var csv = []; 46 var csv = [];
47 for(var i=0; i<a.length; ++i) { 47 for(var i=0; i<a.length; ++i) {
48 var cell = a[i].toString().replace('"', '""'); 48 var cell = a[i].toString().replace('"', '""');
49 if(/"\s,\r\n/.test(cell)) { 49 if(/"\s,\r\n/.test(cell)) {
50 csv[i] = '"' + cell + '"'; 50 csv[i] = '"' + cell + '"';
51 continue; 51 continue;
52 } 52 }
53 csv[i] = cell; 53 csv[i] = cell;
54 } 54 }
55 return csv.join(); 55 return csv.join();
56 } 56 }
57   -  
58 /*************************************************************************/ -  
59 /* Node.JS package export. */ -  
60 /*************************************************************************/ -  
61 if(typeof variable !== 'undefined') { -  
62 module.exports.formats = { -  
63 CSVToArray: wasCSVToArray, -  
64 ArrayToCSV: wasArrayToCSV -  
65 }; -  
66 } -  
67   57