diff -bBdNrw -U5 bbs100-1.1.12/etc/help.std bbs100-1.1.12-1/etc/help.std --- bbs100-1.1.12/etc/help.std Wed Nov 1 13:30:35 2000 +++ bbs100-1.1.12-1/etc/help.std Mon Apr 15 20:44:06 2002 @@ -41,16 +41,18 @@ Ctrl- Z Zap all rooms i Read room information k List all known rooms s Stop reading a room b Read backwards + a Read current message again r Reply to message Shft- R Reply to all recipients of a Mail> message f Forward message to other recipients or to another room # Read a specific message number - Read last messages + Skip next messages + ( Read parent of reply Ctrl- G View the GNU General Public License [ Display version information ] View the local modifications to a standard bbs100 BBS diff -bBdNrw -U5 bbs100-1.1.12/src/state.c bbs100-1.1.12-1/src/state.c --- bbs100-1.1.12/src/state.c Wed Nov 1 13:30:50 2000 +++ bbs100-1.1.12-1/src/state.c Mon Apr 15 20:43:51 2002 @@ -101,10 +101,11 @@ } void state_room_prompt(User *usr, char c) { int i; +MsgIndex *idx; if (usr == NULL) return; Enter(state_room_prompt); @@ -565,10 +566,61 @@ case 'S': Put(usr, "\027Statistics\n\007"); print_stats(usr); Return; + + case 'a': + if (usr->curr_room->msgs == NULL) { + Put(usr, "\027Again\n" + "\022No messages\n"); + break; + } + if (usr->curr_msg == NULL) + break; + + if (usr->curr_msg != NULL) { + Put(usr, "\027Again\n"); + PUSH(usr, STATE_ROOM_PROMPT); + readMsg(usr); + Return; + } + break; + + case '(': + if (usr->curr_room->msgs == NULL) { + Put(usr, "\027Read Parent\n" + "\022No messages\n"); + break; + } + if (usr->curr_msg == NULL) + break; + if (!(usr->message->flags & MSG_REPLY)) { + Put(usr, "\027Read Parent\n" + "\022This is not a reply\n"); + break; + } + + for(idx = usr->curr_room->msgs; idx != NULL; idx = idx->next) { + if (idx->number == usr->message->reply_number) + break; + + if (idx->number > usr->message->reply_number) { /* we're not getting there anymore */ + idx = NULL; + break; + } + } + if (idx == NULL) { + Put(usr, "\022Parent doesn't exist!\n"); + break; + } + usr->curr_msg = idx; + Put(usr, "\027Read Parent\n"); + PUSH(usr, STATE_ROOM_PROMPT); + readMsg(usr); + Return; + break; case 'b': case 'B': if (usr->curr_room->msgs == NULL) { Put(usr, "\027Back\n"