rem: struct buffer_record *p, *q;
context: get_new_buffer (unsigned int min_size){  struct buffer_record *p, *q;  struct buffer_record *new_buffer; /* Buffer to return. */  unsigned int alloc_size;	/* Actual size that will be requested. */  alloc_size = START_SIZE;  while (min_size > alloc_size)    alloc_size += INCR_SIZE;  if (free_list == NULL)    new_buffer = create_new_buffer (alloc_size);  else    {      /* Use first-fit to find a buffer. */      p = new_buffer = NULL;      q = free_list;      do	{	  if (q->bytes_alloc >= min_size)	    {	      if (p == NULL)		free_list = q->next;	      else		p->next = q->next;	      break;	    }	  p = q;	  q = q->next;	}      while (q);      new_buffer = (q ? q : create_new_buffer (alloc_size));      new_buffer->curr_line = new_buffer->line_start;      clear_all_line_control (new_buffer);    }  new_buffer->num_lines = 0;  new_buffer->bytes_used = 0;  new_buffer->start_line = new_buffer->first_available = last_line_number + 1;  new_buffer->next = NULL;  return new_buffer;}