Due to the large number of areas some muds have on their builder ports, 
the normal OLC alist command has a tendency to crash at around 114 areas
give or take a couple either way.  This is not a huge big deal, but a
nice change to make if this happens on your port.

The original of this code is from Ivan's OLC, this is just a modification.
Don't worry about emailing me or anything if you use it.

/*****************************************************************************
 Name:		do_alist
 Purpose:	Normal command to list areas and display area information.
 Called by:	interpreter(interp.c)
 Modified by Tchaerlach to stop crashing 5/25/98
 ****************************************************************************/
void do_alist( CHAR_DATA *ch, char *argument )
{
    BUFFER *output;
	char buf[MAX_STRING_LENGTH];
    char result [ MAX_STRING_LENGTH*2 ];	/* May need tweaking. */
    AREA_DATA *pArea;

	output = new_buf();

    sprintf( result, "[%3s] [%-27s] (%-5s-%5s) [%-10s] %3s [%-10s]\n\r",
       "Num", "Area Name", "lvnum", "uvnum", "Filename", "Sec", "Builders" );
	send_to_char( result, ch );
	
    for ( pArea = area_first; pArea; pArea = pArea->next )
    {
	sprintf( buf, "[%3d] %-29.29s (%-5d-%5d) %-12.12s [%d] [%-10.10s]\n\r",
	     pArea->vnum,
	     pArea->name,
	     pArea->min_vnum,
	     pArea->max_vnum,
	     pArea->file_name,
	     pArea->security,
	     pArea->builders );
	     add_buf(output,buf);
    }

    page_to_char(buf_string(output),ch);
	free_buf(output);
}

