From: Brian Williams <bmw@efn.org>
Subject: Object Stacking code

void list_obj_to_char(struct obj_data * list, struct char_data * ch, int mode,
		           bool show)
{
  struct obj_data *i, *j;
  char buf[10];
  bool found;
  int num;

  found = FALSE;
  for (i = list; i; i = i->next_content) {
      num = 0;
      for (j = list; j != i; j = j->next_content)
	if (j->item_number==NOTHING) {
	    if(strcmp(j->short_description,i->short_description)==0) break;
	}
	else if (j->item_number==i->item_number) break;
      if (j!=i) continue;
      for (j = i; j; j = j->next_content)
	if (j->item_number==NOTHING) {
	    if(strcmp(j->short_description,i->short_description)==0) num++;
	  }
	else if (j->item_number==i->item_number) num++;

      if (CAN_SEE_OBJ(ch, i)) {
	  if (num!=1) {
		sprintf(buf,"(%2i) ",num);
		send_to_char(buf,ch);
	    }
	  show_obj_to_char(i, ch, mode);
	  found = TRUE;
      }
  }
  if (!found && show)
    send_to_char(" Nothing.\r\n", ch);
}
