- do_a_dot_command(ua, ua->cmd);
- } else {
- do_a_command(ua, ua->cmd);
- }
- if (!ua->quit) {
- if (ua->auto_display_messages) {
- strcpy(ua->cmd, "messages");
- qmessagescmd(ua, ua->cmd);
- ua->user_notified_msg_pending = FALSE;
- } else if (!ua->user_notified_msg_pending && console_msg_pending) {
- bsendmsg(ua, _("You have messages.\n"));
- ua->user_notified_msg_pending = TRUE;
- }
- bnet_sig(ua->UA_sock, BNET_EOD); /* send end of command */
- }
- } else if (is_bnet_stop(ua->UA_sock)) {
- ua->quit = TRUE;
- break;
+ do_a_dot_command(ua, ua->cmd);
+ } else {
+ do_a_command(ua, ua->cmd);
+ }
+ if (!ua->quit) {
+ if (console_msg_pending && acl_access_ok(ua, Command_ACL, "messages", 8)) {
+ if (ua->auto_display_messages) {
+ pm_strcpy(ua->cmd, "messages");
+ qmessagescmd(ua, ua->cmd);
+ ua->user_notified_msg_pending = false;
+ } else if (!ua->gui && !ua->user_notified_msg_pending && console_msg_pending) {
+ if (ua->api) {
+ user->signal(BNET_MSGS_PENDING);
+ } else {
+ bsendmsg(ua, _("You have messages.\n"));
+ }
+ ua->user_notified_msg_pending = true;
+ }
+ }
+ if (!ua->api) user->signal(BNET_EOD); /* send end of command */
+ }
+ } else if (is_bnet_stop(user)) {
+ ua->quit = true;