in src/main/cpp/cleaner/windows/src/main.c [207:240]
void getLines(WCHAR *str, WCHAR *** list, DWORD * number) {
WCHAR *ptr = str;
WCHAR *ptr2 = NULL;
DWORD length = 0;
DWORD sepLength = lstrlenW(LINE_SEPARATOR);
DWORD counter = 0;
*number = getLinesNumber(str);
*list = (WCHAR**) LocalAlloc(LPTR, sizeof(WCHAR*) * (*number));
if(ptr!=NULL) {
while(counter < (*number)) {
DWORD i = 0 ;
if((ptr2 = search(ptr, LINE_SEPARATOR))!=NULL) {
ptr2 = search(ptr, LINE_SEPARATOR) + sepLength;
length = lstrlenW(ptr) - lstrlenW(ptr2) - sepLength;
(*list) [counter ] = (WCHAR*) LocalAlloc(LPTR, sizeof(WCHAR*)*(length+1));
ZERO((*list) [counter ], sizeof(WCHAR*)*(length+1));
for(i=0;i<length;i++) {
(*list) [counter ][i]=ptr[i];
}
ptr = ptr2;
} else if((length = lstrlenW(ptr)) > 0) {
(*list)[counter ] = (WCHAR*) LocalAlloc(LPTR, sizeof(WCHAR*)*(length+1));
ZERO((*list) [counter ], sizeof(WCHAR*)*(length+1));
for(i=0;i<length;i++) {
(*list) [counter ][i]=ptr[i];
}
ptr = NULL;
}
counter++;
if(ptr==NULL) break;
}
}
}