Here's a hunk of my code, it's modification of the do_finger command,
posted a day or so ago. I keep getting segmentation faults when I run it
- could someone please help me out...thought I had it working once - but
I was wrong. Thanks!
Justin
ACMD(do_finger)
{
FILE* f;
struct char_file_u chdata;
struct char_data *victim = 0;
char shost[80];
one_argument(argument, arg);
if (!*arg) {
send_to_char("Whom do you wish to finger?\r\n", ch);
return;
}
if (load_char(arg, &chdata) < 0) {
send_to_char("There is no such player.\r\n", ch);
return;
}
sprintf(buf, "%s %s is a level %3d player.\r\n", chdata.name, (chdata.title ? chdata.title : " "), (int)
chdata.level);
send_to_char(buf, ch);
strcpy(shost, chdata.host);
if ((victim = get_player_vis(ch, arg, 0))) {
sprintf(buf, "Is playing from %s.\r\n", shost);
send_to_char(buf, ch);
sprintf(buf, "Idle time: %d ticks..\r\n", victim->char_specials.timer);
send_to_char(buf, ch);
} else {
strcpy(buf1, ctime(&chdata.last_logon));
buf[19] = '\0';
sprintf(buf, "Last login was on %s, from %s.\r\n", buf1, shost);
send_to_char(buf, ch);
}
sprintf(buf, "Email Address: %s\r\n", GET_EMAIL(victim));
send_to_char(buf, ch);
sprintf(buf, "finger %s > ../log/finger_file", GET_EMAIL(victim));
system(buf);
f = fopen("../log/finger_file", "r");
fread(buf, MAX_STRING_LENGTH-5, 1, f);
buf[MAX(0, ftell(f))]=0;
fclose(f);
page_string(ch->desc, buf, 1);
}
+-----------------------------------------------------------+
| Ensure that you have read the CircleMUD Mailing List FAQ: |
| http://cspo.queensu.ca/~fletcher/Circle/list_faq.html |
+-----------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/07/00 PST