|
|
1.1 root 1: /* UTIHIGH.C */
2:
3: /* Developed 1990-1997 by Rob Swindell; PO Box 501, Yorba Linda, CA 92885 */
4:
5: #include "sbbs.h"
6: #include "uti.h"
7:
8: smb_t smb;
9:
10: /****************************************************************************/
11: /* Returns the total number of msgs in the sub-board and sets 'ptr' to the */
12: /* number of the last message in the sub (0) if no messages. */
13: /****************************************************************************/
14: ulong getlastmsg(uint subnum, ulong *ptr, time_t *t)
15: {
16: char str[256];
17: int i;
18: ulong total;
19: idxrec_t idx;
20:
21: if(ptr)
22: (*ptr)=0;
23: if(t)
24: (*t)=0;
25:
26: sprintf(smb.file,"%s%s",sub[subnum]->data_dir,sub[subnum]->code);
27: smb.retry_time=30;
28: if((i=smb_open(&smb))!=0) {
29: errormsg(WHERE,ERR_OPEN,smb.file,i);
30: return(0); }
31:
32: if(!filelength(fileno(smb.sid_fp))) { /* Empty base */
33: smb_close(&smb);
34: return(0); }
35: if((i=smb_locksmbhdr(&smb))!=0) {
36: smb_close(&smb);
37: errormsg(WHERE,ERR_LOCK,smb.file,i);
38: return(0); }
39: if((i=smb_getlastidx(&smb,&idx))!=0) {
40: smb_close(&smb);
41: errormsg(WHERE,ERR_READ,smb.file,i);
42: return(0); }
43: total=filelength(fileno(smb.sid_fp))/sizeof(idxrec_t);
44: smb_unlocksmbhdr(&smb);
45: smb_close(&smb);
46: if(ptr)
47: (*ptr)=idx.number;
48: if(t)
49: (*t)=idx.time;
50: return(total);
51: }
52:
53:
54: int main(int argc, char **argv)
55: {
56: char str[256];
57: int file,subnum,i;
58: ulong ptr;
59:
60: PREPSCREEN;
61:
62: printf("Synchronet UTIHIGH v%s\n",VER);
63:
64:
65: if(argc<3)
66: exit(1);
67:
68: uti_init("UTIHIGH",argc,argv);
69:
70: subnum=getsubnum(argv[1]);
71: if((int)subnum==-1)
72: bail(7);
73: getlastmsg(subnum,&ptr,0);
74:
75: if((file=nopen(argv[2],O_CREAT|O_TRUNC|O_WRONLY))==-1)
76: bail(2);
77:
78: sprintf(str,"%lu",ptr);
79: write(file,str,strlen(str));
80: close(file);
81: sprintf(str,"%20s Last message #%lu\r\n","",ptr);
82: write(logfile,str,strlen(str));
83: printf("\nDone.\n");
84: bail(0);
85: return(0);
86: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.