diff --git a/src/sbbs3/smbutil.c b/src/sbbs3/smbutil.c index 5921254ea6033dbdb3f937d19644c40698794348..f41408c26c8904d9f5014410cf65639bfb412416 100644 --- a/src/sbbs3/smbutil.c +++ b/src/sbbs3/smbutil.c @@ -119,6 +119,11 @@ char *usage= " p[k] = pack msg base (k specifies minimum packable Kbytes)\n" " L = lock a msg base for exclusive-access/backup\n" " U = unlock a msg base\n" +"\n" +" [n] may represent 1-based message index offset, or\n" +" [#n] actual message number, or\n" +" [-n] message age (in days)\n" +"\n" "opts:\n" " -c[m] = create message base if it doesn't exist (m=max msgs)\n" " -a = always pack msg base (disable compression analysis)\n" @@ -1391,7 +1396,7 @@ void readmsgs(ulong start) break; } - printf("\n%"PRIu32" (%d)\n",msg.hdr.number,msg.offset+1); + printf("\n#%"PRIu32" (%d)\n",msg.hdr.number,msg.offset+1); printf("Subj : %s\n",msg.subj); printf("Attr : %04hX\n", msg.hdr.attr); printf("To : %s",msg.to); @@ -1519,10 +1524,18 @@ long getmsgnum(const char* str) printf("%.24s\n", ctime(&t)); idxrec_t idx; int result = smb_getmsgidx_by_time(&smb, &idx, t); - printf("match = %d, num %d\n", result, idx.number); +// printf("match = %d, num %d\n", result, idx.number); if(result >= 0) return result + 1; /* 1-based offset */ } + if(*str == '#') { + smbmsg_t msg; + ZERO_VAR(msg); + msg.hdr.number = atol(str + 1); + int result = smb_getmsgidx(&smb, &msg); + if(result == SMB_SUCCESS) + return msg.offset + 1; + } return atol(str); }