Changeset 989:1b3cc75a9bab for charset.c

Show
Ignore:
Timestamp:
1999-03-30 22:34:01 (10 years ago)
Author:
Thomas Roessler <roessler@…>
Branch:
HEAD
Message:

Another small charset optimization.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • charset.c

    r987 r989  
    877877  d->out.size = DECODER_BUFFSIZE; 
    878878 
     879  d->_in = &d->out; 
     880   
    879881  if (!src || !dest || mutt_is_utf8 (dest)) 
    880882  { 
    881883    d->just_take_id = 1; 
     884    d->_in = &d->in; 
    882885    return d; 
    883886  } 
     
    888891    { 
    889892      d->just_take_id = 1; 
     893      d->_in = &d->in; 
    890894      return d; 
    891895    } 
     
    896900   
    897901  if (!(d->chm = mutt_get_translation (src, dest))) 
     902  { 
    898903    d->just_take_id = 1; 
    899    
     904    d->_in = &d->in; 
     905  } 
     906 
    900907  return d; 
    901908} 
     
    910917void mutt_decoder_push (DECODER *d, void *_buff, size_t blen, size_t *taken) 
    911918{ 
    912   struct decoder_buff *b; 
    913    
    914919  if (!_buff || !blen) 
    915920  { 
     
    917922    return; 
    918923  } 
    919    
    920   /* shortcut the identity mapping and save one copying pass */ 
    921    
    922   if (d->just_take_id) 
    923     b = &d->out; 
    924   else 
    925     b = &d->in; 
    926      
    927   if ((*taken = MIN(blen, b->size - b->used))) 
    928   { 
    929     memcpy (b->buff + b->used, _buff, *taken); 
    930     b->used += *taken; 
     924 
     925  if ((*taken = MIN(blen, d->_in->size - d->_in->used))) 
     926  { 
     927    memcpy (d->_in->buff + d->_in->used, _buff, *taken); 
     928    d->_in->used += *taken; 
    931929  } 
    932930} 
     
    934932int mutt_decoder_push_one (DECODER *d, char c) 
    935933{ 
    936   struct decoder_buff *b; 
    937  
    938   if (d->just_take_id) 
    939     b = &d->out; 
    940   else 
    941     b = &d->in; 
    942  
    943   if (b->used == b->size) 
     934  if (d->_in->used == d->_in->size) 
    944935    return -1; 
    945    
    946   b->buff[b->used++] = c; 
     936 
     937  d->_in->buff[d->_in->used++] = c; 
    947938  return 0; 
    948939}