void getLines()

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;
        }
    }
}