rem: free_buffer (b);
context: remove_line (void){  struct cstring *line;		/* Return value. */  struct line *l;		/* For convenience. */  if (head == NULL && !load_buffer ())    return NULL;  if (current_line < head->first_available)    current_line = head->first_available;  ++(head->first_available);  l = head->curr_line;  line = &l->starts[l->retrieve_index];  /* Advance index to next line. */  if (++l->retrieve_index == l->used)    {      /* Go on to the next line record. */      head->curr_line = l->next;      if (head->curr_line == NULL || head->curr_line->used == 0)	{	  /* Go on to the next data block. */	  struct buffer_record *b = head;	  head = head->next;	  free_buffer (b);	}    }  return line;}