On Mon, Sep 09, 2002 at 11:03:51AM +1000, Ben Merton wrote:
>Unfortunately this gets me back into the original problem I had with
>autoexits, that being with this snippet there will always be a comma at the
>end of the exits string. Therefore you end up with:
So why don't you just smash the comma with a \0 before your format it
into buf2 (using the below code).
>Exits: North, East, West,.
the variable looks like this:
buf="North, East, West,"
buf[strlen(buf)-1] = ','
So.. just "buf[strlen(buf)-1] = '\0';
>>void do_auto_exits(struct char_data * ch)
>>{
>> int door;
>>
>> *buf = '\0';
>>
>> for (door = 0; door < NUM_OF_DIRS; door++)
>> if (EXIT(ch, door) && EXIT(ch, door)->to_room != NOWHERE) {
>> if (IS_SET(EXIT(ch, door)->exit_info, EX_CLOSED))
>> sprintf(buf + strlen(buf), " %s(Closed),", capdirs[door]);
>> else
>> sprintf(buf + strlen(buf), " %s,", capdirs[door]);
>> }
+ buf(strlen(buf)-1) = '\0';
>> sprintf(buf2, "&cExits:%s.&n\r\n", ((*buf) ? buf : " None"));
btw, you can replace the final sprintf and use of buf2 by just changing
it to:
send_to_char(ch, "&cExits:%s&n\r\n", ((*buf) ? buf : " None"));
-me
--
+---------------------------------------------------------------+
| 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/25/03 PDT