Example #1
0
int8_t normal_to_fat12(const char* _n, char* _b){
    static char bn[8];
    static char be[3];
    int16_t posdot, cntdot, i, i2;
    memset(bn, 0, 8); memset(be, 0, 8); memset(_b, ' ', 11);
    posdot = strpos(_n, '.');
    cntdot = strcnt(_n, '.');
    if(cntdot != 1)
        return DISK_MORE_DOTS;
    if(posdot == -1)
        return DISK_NOT_DOT;
    if(posdot == 0)
        return DISK_DOT_FIRST;
    if(posdot > 7)
        return DISK_DOT_PLUS_EIGHT;
    
    memcpy( bn, _n, posdot);
    memcpy( be, _n + posdot +1, 3);
    
    if(strcnt(bn, ' '))
        return DISK_SPACE_IN_FILENAME;
    if(strcnt(be, ' '))
        return DISK_SPACE_IN_EXT;
    if(strlen(be) != 3)
        return DISK_EXT_NOT_THREE;
        
    i2 = 0;
    for(i=0;i<8;++i) _b[i] = bn[i];
    for(i=0;i<8;++i) if(_b[i] == 0) _b[i] = ' ';
    for(i=8;i<11;++i)_b[i] = be[i2++];
    _b[11] = 0;
    return DISK_OP_OK;
}
Example #2
0
int main(int argc, char *argv[])
{
    int curr_n;

    sieve_size = 1000000;

    sieve = malloc(sizeof(char) * sieve_size);

    char buf[50];

    strcpy(buf, "56003");
    reverse(buf);
    size_t *indices = strndc(buf, '0');

    printf("%s\n",buf);

    fill_prime_sieve(sieve, sieve_size);

    size_t cnt = strcnt(buf, '0');

    printf("%d should be 2\n", cnt);

    for(int i = 0; i < cnt; i++)
    {
        printf("0 found at %d\n", indices[i]);
    }

    free(sieve);

    size_t** pset = malloc(sizeof(size_t *) * 8);

    for(int i = 0; i != 8; i++)
    {
        pset[i] = malloc(sizeof(size_t) * 5);
        memset(pset[i], -1, sizeof(size_t) * 5);
    }

    size_t test[3] = {1, 2, 3};

    size_t setLength = powerset_wrapper(test, 3, pset);

    int i = 0;
    while(i < setLength)
    {
        int j = 0;
        putchar('[');
        while(pset[i][j] != -1)
        {
            printf(" %lu", pset[i][j]);
            ++j;
        }
        fputs(" ]\n", stdout);
        ++i;
    }

    return 0;
}