Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

Teach me to remove bloat!

Name: Anonymous 2010-02-24 0:34

Hey guys, I would like some pointer (no, not that kind) on removing bloat in code. Here is a fully functional piece of code that I wrote which I'm worried about bloat in. How do I shorten this?

int get_input()
{
    int count, paren_count, total_count, c;
    char *input, *temp;

    input = (char *) malloc (500 * sizeof (char));

    if (input == NULL) return 0;
    printf("%% ");
    for (count = paren_count = total_count = 0; (c = getchar()) != EOF; count++, input++, total_count++)
    {
        if (count == 499)
        {
            input -= total_count;
            temp = (char *) realloc (input, (500 + total_count) * sizeof (char));
            if (temp == NULL)
                return 0;
            input = temp;
            input += total_count;
        }
        if (c == '\n')
        {
            *input = '\0';
            temp = input;
            temp -= (count);
            count = 0;
            for (; *temp != '\0'; temp++)
            {
                if (*temp == '(')
                    paren_count++;
                else if (*temp == ')')
                    paren_count--;
            }
            if (paren_count == 0)
                break;
            printf("  ");
        }
        *input = c;
    }
    *temp = '\0';
    input -= total_count;
    printf("%s\n", input);
    free(input);
    return 0;
}

Name: Anonymous 2010-02-24 7:05

>>11
ZOMG OPTIMISED
#define return R
#define printf P
int g(){int u,p,t,c;char *i,*m;i=(char*)malloc(500*sizeof(char));if(i==0)R 0;P("%% ");for(u=p=t=0;(c=getchar())!=-1;u++,i++,t++){if(u==499){i-=t;m=(char*)realloc(i,(500+t)*sizeof(char));if(m==0)R 0;i=m;i+=t;}if(c=='\n'){*i='\0';m=i;m-=(u);u=0;for(;*m!='\0';m++){if(*m=='(')p++;else if(*m==')')p--;}if(p==0)break;P("  ");}*i=c;}*m='\0';i-=t;P("%s\n",i);free(i);R 0;}

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List