All pastes #933036 Raw Edit

Anonymous

public text v1 · immutable
·published 2008-03-08 02:05 UTC
rendered paste body
int bit_to_ascii(const char core[], char data[])
{
        int i, byte[7],n = 0, code = 0, bit = 7, skip = 0, repeat = 0, repeat_num; 
        char rep[3];

                for(i = 0; i < (strlen(core) - 1); i++)
                {
                        if(core[i] == 'S' && core[i+1] == 'K' && core[i+2] == 'P')
                        {
                                while(skip < 8)
                                {
                                        if(core[i] == '1' || core[i] == '0')
                                                skip++;
                                        i++;
                                }
                                skip = 0;

                        }
                        else if(core[i] == 'R' && core[i+1] == 'P' && core[i+2] == 'T')
                        {
                                int z, y = 0;
                                z = i + 3;

                                while(is_int(core[z]) == 1)
                                {
                                        rep[y] = core[z];
                                        rep[y + 1] = '\0';
                                        z++;
                                        y++;

                                }

                                repeat_num = atoi(rep) - 1;

                                for(repeat = 0; repeat < repeat_num; repeat++)
                                {
                                                data[n] = data[n - 1];
                                                n++;
                                }
                                code = 0;
                                repeat = 0;
                                bit = 7;
                                i = i + 6;
                        }        
                        if(core[i] == '1' || core[i] == '0')
                        {
                                if(core[i] == '1')
                                {
                                        code = code + exponent(2, (bit));
                                }
                                bit--;

                                if(core[i+1] == 'R' && core[i+2] == 'P' && core[i+3] == 'T')
                                {
                                        bit = -1;
                                }

                                if(bit == -1)
                                {
                                        if(/*code == 0 || */(code > 31 && code < 127))
                                        {
                                                data[n] = code;
                                                n++;
                                                code = 0;
                                        }
                                        else if(code > 0 && code <= 31)
                                        {
                                                code = 0;
                                        }
                                        bit = 7;
                                }
                        }
                }

                if(bit != -1)
                {
                        data[n] = code;
                        n++;
                        bit = 7;
                }
        return n;
}