Well.. believe it or not, here it is.. WORKING!!!!!!
Thanks to ALL of you that helped with this.. it was a pain, but here is the
end result.

- code below is in / goes in skills.c -
------------------------------------------------------------

void load_skills( void )
{
    /* the regular part of the load_skills() function goes here */

    int skill_count;

    for ( skill_count = 0; skill_table[skill_count].name != NULL;
skill_count++ )
        ;

    qsort( skill_table, skill_count, sizeof(struct skill_type),
srt_skills );
    return;
}

int srt_skills(const void *p1, const void *p2)
{
    if ( (* (struct skill_type *)p1).name == NULL )
        return 2;
    else if ( (* (struct skill_type *)p2).name == NULL )
        return 1;

    return strcmp((* (struct skill_type *)p1).name,(* (struct skill_type
*)p2).name);
}

-------------------------------------------------------

Well, that did the trick! It works like a champ!

- Valnir

----- Original Message ----- 
From: "Richard Lindsey" <[EMAIL PROTECTED]>
To: "Valnir" <[EMAIL PROTECTED]>; "ROM List" <[email protected]>
Sent: Friday, January 23, 2004 3:00 PM
Subject: RE: ROM Mailing List Archive...


I don't know if this makes any different or not, but I believe that it
should be sizeof(skill_type) instead of pSkill...

Richard Lindsey
Network Administrator
INTERA, Inc.
9111A Research Blvd.
Austin, TX  78758
(512) 425-2006
[EMAIL PROTECTED]


-----Original Message-----
From: Valnir [mailto:[EMAIL PROTECTED]
Sent: Friday, January 23, 2004 1:40 PM
To: ROM List
Subject: Re: ROM Mailing List Archive...

ok.. I am SO close to getting this thing right using "qsort"... having a
little problem though and I think it deals with "sizeof()"..

Thoughts / Input??

-V

---------------------------------------------------------------
    SKILL_DATA *skills[MAX_SKILL];
    SKILL_DATA *pSkill;
    int sn = 0;

    for( i = 1; i < MAX_SKILL; i++ )
    {
        if ( IS_NULLSTR( skill_table[i].name ) )
            continue;

        pSkill = (SKILL_DATA *)i;
        skills[sn++] = pSkill;
    }

    qsort(skills, sn, sizeof(pSkill), srt_skills);

/* rest of function is usually here. */

int srt_skills(const void *p1, const void *p2)
{
  struct skill_type sk1;
  struct skill_type sk2;

  sk1 = *(struct skill_type *)p1;
  sk2 = *(struct skill_type *)p2;

  if (sk1.name == NULL) return 2;
   else
  if (sk2.name == NULL) return 1;

  return ( strcmp( sk1.name, sk2.name ) );
}

/* GDB output */
#0  strcmp (p1=0x1 <Address 0x1 out of bounds>, p2=0x2 <Address 0x2 out
of
bounds>)
    at ../sysdeps/generic/strcmp.c:38
38      ../sysdeps/generic/strcmp.c: No such file or directory.
(gdb) where
#0  strcmp (p1=0x1 <Address 0x1 out of bounds>, p2=0x2 <Address 0x2 out
of
bounds>)
    at ../sysdeps/generic/strcmp.c:38
#1  0x80b86ae in srt_skills (p1=0xbfffd198, p2=0xbfffd19c) at
skills.c:2162
#2  0x400687f1 in msort_with_tmp (b=0xbfffd198, n=2, s=4, cmp=0x80b8654
<srt_skills>,
    t=0x8161d30 "") at msort.c:58
#3  0x400687a5 in msort_with_tmp (b=0xbfffd198, n=4, s=4, cmp=0x80b8654
<srt_skills>,
    t=0x8161d30 "") at msort.c:49
#4  0x400687a5 in msort_with_tmp (b=0xbfffd198, n=8, s=4, cmp=0x80b8654
<srt_skills>,
    t=0x8161d30 "") at msort.c:49
#5  0x400687a5 in msort_with_tmp (b=0xbfffd198, n=16, s=4, cmp=0x80b8654
<srt_skills>,
    t=0x8161d30 "") at msort.c:49
#6  0x400687a5 in msort_with_tmp (b=0xbfffd198, n=33, s=4, cmp=0x80b8654
<srt_skills>,
    t=0x8161d30 "") at msort.c:49
#7  0x400687a5 in msort_with_tmp (b=0xbfffd198, n=67, s=4, cmp=0x80b8654
<srt_skills>,
    t=0x8161d30 "") at msort.c:49
#8  0x400687a5 in msort_with_tmp (b=0xbfffd198, n=134, s=4,
cmp=0x80b8654
<srt_skills>,
    t=0x8161d30 "") at msort.c:49
#9  0x400687a5 in msort_with_tmp (b=0xbfffd198, n=268, s=4,
cmp=0x80b8654
<srt_skills>,
    t=0x8161d30 "") at msort.c:49
#10 0x40068943 in qsort (b=0xbfffd198, n=268, s=4, cmp=0x80b8654
<srt_skills>) at msort.c:118
#11 0x80b43ea in save_skills (ch=0x40a131f4, argument=0xbfffeaa2 "") at
skills.c:226
#12 0x809aa43 in interpret (ch=0x40a131f4, argument=0xbfffea9c "sksave")
at
interp.c:748
#13 0x807833d in substitute_alias (d=0x40a11368, argument=0x40a11785
"sksave") at alias.c:95
#14 0x8079861 in game_loop_unix (control=4) at comm.c:863
#15 0x80793ef in main (argc=2, argv=0xbffffcd4) at comm.c:472

------------------------------------------------------------------------
----
------------







----- Original Message ----- 
From: "Richard Lindsey" <[EMAIL PROTECTED]>
To: "Valnir" <[EMAIL PROTECTED]>; <[email protected]>
Sent: Friday, January 23, 2004 11:36 AM
Subject: ROM Mailing List Archive...


Here ya go, I had to go out and retrack it down a week or so ago :D

http://www.the-infinite.org/lists/romlist/

Richard Lindsey
Network Administrator
INTERA, Inc.
9111A Research Blvd.
Austin, TX  78758
(512) 425-2006
[EMAIL PROTECTED]


-----Original Message-----
From: Valnir [mailto:[EMAIL PROTECTED]
Sent: Friday, January 23, 2004 10:35 AM
To: [email protected]
Subject: Re: Skill List Sorting.

That would be great, thanks!

(not sure where the archive is, link to that would be good too!)

-Valnir

----- Original Message ----- 
From: "Jesse Boulianne" <[EMAIL PROTECTED]>
To: "Leath, Chad (C.L.)" <[EMAIL PROTECTED]>; "'Valnir'"
<[EMAIL PROTECTED]>
Cc: <[email protected]>
Sent: Friday, January 23, 2004 11:25 AM
Subject: Re: Skill List Sorting.


> There's also a snippet out there for sorting the wizhelp by level and
> alphabetically.  It's quite nice, actually.
> I can post it, as I've installed it.
> Of course, you'd have to modify it to reflect the skill_table. :)
>
> ----- Original Message ----- 
> From: "Leath, Chad (C.L.)" <[EMAIL PROTECTED]>
> To: "'Valnir'" <[EMAIL PROTECTED]>
> Cc: <[email protected]>
> Sent: Friday, January 23, 2004 11:29 AM
> Subject: RE: Skill List Sorting.
>
>
> > There is a post in the archives about using qsort to sort and
display
> > commands. This could be changed to sort your skills.
> >
> > -----Original Message-----
> > From: Valnir [mailto:[EMAIL PROTECTED]
> > Sent: Friday, January 23, 2004 11:27 AM
> > To: [email protected]
> > Subject: Skill List Sorting.
> >
> >
> > Here is a problem plaguing me.
> >
> > The SKILLS list on our mud is getting a little out of hand and I
need to
> > find a way to sort it. Alphabetically if possible. Any help would be
> GREATLY
> > appreciated!
> >
> > - Valnir
> >
> >
> > -- 
> > ROM mailing list
> > [email protected]
> > http://www.rom.org/cgi-bin/mailman/listinfo/rom
> >
> > -- 
> > ROM mailing list
> > [email protected]
> > http://www.rom.org/cgi-bin/mailman/listinfo/rom
> >
>
>


-- 
ROM mailing list
[email protected]
http://www.rom.org/cgi-bin/mailman/listinfo/rom


-- 
ROM mailing list
[email protected]
http://www.rom.org/cgi-bin/mailman/listinfo/rom


Reply via email to