|
|
1.1 root 1: #line 1 "VIEWFILE.C"
2:
3: /* Developed 1990-1997 by Rob Swindell; PO Box 501, Yorba Linda, CA 92885 */
4:
5: #include "sbbs.h"
6:
7: void viewfilecontents(file_t f)
8: {
9: char str[128],cmd[128];
10: int i;
11:
12: if(f.size<=0L) {
13: bputs(text[FileNotThere]);
14: return; }
15:
16: sprintf(str,"%s%s",f.altpath > 0 && f.altpath<=altpaths
17: ? altpath[f.altpath-1] : dir[f.dir]->path
18: ,unpadfname(f.name,tmp));
19: strcpy(tmp,f.name);
20: truncsp(tmp);
21: for(i=0;i<total_fviews;i++) {
22: if(!stricmp(tmp+9,fview[i]->ext)
23: && chk_ar(fview[i]->ar,useron)) {
24: strcpy(cmd,fview[i]->cmd);
25: break; } }
26: if(i==total_fviews)
27: bprintf(text[NonviewableFile],tmp+9);
28: else
29: if((i=external(cmdstr(cmd,str,str,NULL)
30: ,EX_OUTL|EX_OUTR|EX_INR|EX_CC))!=0)
31: errormsg(WHERE,ERR_EXEC,cmdstr(cmd,str,str,NULL),i);
32: }
33:
34: /****************************************************************************/
35: /* Views file with: */
36: /* (B)atch download, (V)iew file (E)xtended info, (Q)uit, or [Next]: */
37: /* call with ext=1 for default to extended info, or 0 for file view */
38: /* Returns -1 for Batch, 1 for Next, or 0 for Quit */
39: /****************************************************************************/
40: int viewfile(file_t f, int ext)
41: {
42: char ch,str[256];
43: int i;
44:
45: curdirnum=f.dir; /* for ARS */
46: while(online) {
47: if(ext)
48: fileinfo(f);
49: else
50: viewfilecontents(f);
51: ASYNC;
52: CRLF;
53: sprintf(str,text[FileInfoPrompt],unpadfname(f.name,tmp));
54: mnemonics(str);
55: ch=getkeys("BEVQ\r",0);
56: if(ch=='Q' || sys_status&SS_ABORT)
57: return(0);
58: switch(ch) {
59: case 'B':
60: addtobatdl(f);
61: CRLF;
62: return(-1);
63: case 'E':
64: ext=1;
65: continue;
66: case 'V':
67: ext=0;
68: continue;
69: case CR:
70: return(1); } }
71: return(0);
72: }
73:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.