Adding aedit gives me a cmd list problem

From: Scott Meisenholder (scmeis1@HOTMAIL.COM)
Date: 05/02/03


Hi all,
  I am running circle 3.1 with dg_scripts pl9, ascii pfiles, hedit, olc
2.01, and a few other goodies. My problem is this. I added aedit to my
base and after a few problems everything worked well. Then I noticed that
all the socials were taking presidence over the main commands. I went back
into interpreter.c to see if I had indeed make a few mistakes, but there
was no problems. This is an example:

I type l    for look and I receive the laugh social. In interpreter.c I
have the sort_as column set to l to give look a higher priority but this
does nothing for me. I will include the create command list in this post
for someone to point out what i am missing. I am sure it must be a circle
3.1 change that is doing this to me. As i tested another package, and that
worked. Then I tested those changes into my code, And nothing changed for
me. Any help would be much appreciated.

 void create_command_list(void)
{
  char buf[MAX_INPUT_LENGTH];
  int i, j, k;
  struct social_messg temp;
  extern struct command_info cmd_info[];

  /* free up old command list */
  if (complete_cmd_info) free(complete_cmd_info);
    complete_cmd_info = NULL;

  /* re check the sort on the socials */
  for (j = 0; j < top_of_socialt; j++) {
    k = j;
    for (i = j + 1; i <= top_of_socialt; i++)
      if (str_cmp(soc_mess_list[i].sort_as, soc_mess_list[k].sort_as) < 0)
        k = i;
    if (j != k) {
      temp = soc_mess_list[j];
      soc_mess_list[j] = soc_mess_list[k];
      soc_mess_list[k] = temp;
    }
  }

  /* count the commands in the command list */
  i = 0;
  while(*cmd_info[i].command != '\n') i++;
  i++;

  CREATE(complete_cmd_info, struct command_info, top_of_socialt + i + 2);

  /* this loop sorts the socials and commands together into one big list */
  i = 0;
  j = 0;
  k = 0;
  while ((*cmd_info[i].command != '\n') || (j <= top_of_socialt))  {
    if ((i < NUM_RESERVED_CMDS) || (j > top_of_socialt) ||
 (str_cmp(cmd_info[i].sort_as, soc_mess_list[j].sort_as) < 1))
      complete_cmd_info[k++] = cmd_info[i++];
    else {
      soc_mess_list[j].act_nr  = k;
      complete_cmd_info[k].command  = soc_mess_list[j].command;
      complete_cmd_info[k].sort_as  = soc_mess_list[j].sort_as;
      complete_cmd_info[k].minimum_position = soc_mess_list
[j].min_char_position;
      complete_cmd_info[k].command_pointer = do_action;
      complete_cmd_info[k].minimum_level     = soc_mess_list
[j++].min_level_char;
      complete_cmd_info[k++].subcmd  = 0;
    }
  }
  complete_cmd_info[k].command  = strdup("\n");
  complete_cmd_info[k].sort_as  = strdup("zzzzzzz");
  complete_cmd_info[k].minimum_position = 0;
  complete_cmd_info[k].command_pointer = 0;
  complete_cmd_info[k].minimum_level = 0;
  complete_cmd_info[k].subcmd  = 0;
  sprintf(buf, "Command info rebuilt, %d total commands.", k);
  log(buf);
}

--
   +---------------------------------------------------------------+
   | FAQ: http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html |
   | Archives: http://post.queensu.ca/listserv/wwwarch/circle.html |
   | Newbie List:  http://groups.yahoo.com/group/circle-newbies/   |
   +---------------------------------------------------------------+



This archive was generated by hypermail 2b30 : 06/26/03 PDT