Changeset 24407


Ignore:
Timestamp:
10/18/13 11:52:01 (10 years ago)
Author:
nit
Message:

[titan] optimize command

File:
1 edited

Legend:

Unmodified
Added
Removed
  • titan/titan/global.h

    r24405 r24407  
    37323732                return;
    37333733
    3734         len = strlen(value2);
    3735 
    3736         if(len > MINMALLOC)
    3737         {
    3738                 err("string to long");
    3739                 return;
    3740         }
     3734        len = strlen(value2) + 1;
    37413735
    37423736        if(*value1 != NULL && maxlen == 0)
    37433737                *maxlen = strlen(*value1);
    37443738
    3745         if(*value1 == NULL || *pos + len + 1 > *maxlen)
    3746         {
    3747                 *maxlen = *maxlen + (MINMALLOC * 10);
     3739        if(*value1 == NULL || *pos + len > *maxlen)
     3740        {
     3741                *maxlen = *maxlen + len + (MINMALLOC * 10);
    37483742                *value1 = realloc(*value1, *maxlen);
    37493743                if(*value1 == NULL)
     
    37543748        }
    37553749
    3756         memcpy(*value1 + *pos, value2, len + 1);
    3757         *pos = *pos + len;
     3750        memcpy(*value1 + *pos, value2, len);
     3751        *pos = *pos + (len - 1);
    37583752}
    37593753
     
    55415535char* command(char* input)
    55425536{
     5537        int maxlen = 0, pos = 0;
    55435538        char* tmpstr = NULL, *fileline = NULL;
    55445539        FILE *iopipe = NULL;
     
    55625557        {
    55635558                if(fgets(fileline, MINMALLOC, iopipe) != NULL)
    5564                         tmpstr = ostrcat(tmpstr, fileline, 1, 0);
     5559                        ostrcatbig(&tmpstr, fileline, &maxlen, &pos);
     5560        }
     5561       
     5562        if(pos > 0)
     5563        {
     5564                char* tmp = tmpstr;
     5565                tmpstr = realloc(tmpstr, pos + 1);
     5566                if(tmpstr == NULL)
     5567                        tmpstr = tmp;
    55655568        }
    55665569
Note: See TracChangeset for help on using the changeset viewer.