This is just displaying the commands, try sorting the list and using it constantly.
-----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of Edwin Groothuis Sent: Sunday, February 24, 2002 10:24 PM To: [EMAIL PROTECTED] Subject: Re: sorting commands by name On Sun, Feb 24, 2002 at 10:22:46PM -0500, [EMAIL PROTECTED] wrote: > Ok im trying to sort commands by name. And the only thing it gives me is a > SIG_TRAP on the copyover. ok thats normal for gdb. and when the core does > finaly dump it gives me: Here, have mine: void do_commands(CHAR_DATA *ch,char *argument) { char *Commands[512]; // at most 512 commands char buf[MAX_INPUT_LENGTH]; static BUFFER *buffer=NULL; int cmd; int top = 0; int i, j; if (!buffer) { logf("[0] Sorting commands-table"); buffer = new_buf(); add_buf(buffer,"{cCommand List:{W\n\r"); for ( cmd = 0; cmd_table[cmd].name!=NULL; cmd++ ) if (cmd_table[cmd].vnum==0 && cmd_table[cmd].show && cmd_table[cmd].disabled==FALSE) { for ( i = 0; i < top; i++ ) if ( strcmp( Commands[i], cmd_table[cmd].name ) > 0 ) break; for ( j = top; j > i; j-- ) Commands[j] = Commands[j-1]; Commands[i] = cmd_table[cmd].name; top++; if (top==512) { bugf("More than 512 commands, please fix do_commands()"); break; } } for ( i = 0; i < top; i++ ) { sprintf( buf, "{W%-19s", Commands[i]); add_buf(buffer, buf); if ( ( i + 1 )%4 == 0 ) { sprintf( buf, "{x\n\r" ); add_buf(buffer, buf); } } add_buf(buffer,"\r\n{x"); } page_to_char( buf_string(buffer), ch ); /* free_buf(buffer); this buffer is never freed, sorry */ } -- Edwin Groothuis | Personal website: http://www.MavEtJu.org [EMAIL PROTECTED] | Interested in MUDs? Visit Fatal Dimensions: ------------------+ http://www.FatalDimensions.org/ -- ROM mailing list [email protected] http://www.rom.org/cgi-bin/mailman/listinfo/rom

