home *** CD-ROM | disk | FTP | other *** search
- #include "jam.h"
-
- #include "def.h"
- #include "keyname.h"
-
- static BUFFER * rn_(_dirgetfile, (int f, int n));
-
- /*ARGSUSED*/
- dired(f, n)
- int f, n;
- {
- char dirname[NFILEN];
- BUFFER *bp;
-
- dirname[0] = '\0';
- if(eread("Dired: ", dirname, NFILEN, EFNEW | EFCR) == ABORT)
- return ABORT;
- if((bp = dired_(dirname)) == NULL)
- return FALSE;
- curbp = bp;
- curbp->b_flag |= BFVIEW;
- return showbuffer(bp, curwp, WFHARD | WFMODE);
- }
-
- /*ARGSUSED*/
- d_findfile(f, n)
- int f, n;
- {
- BUFFER *oldBuf = curbp;
- BUFFER *bp = _dirgetfile(f, n);
-
- if (bp && (oldBuf->b_flag & BFREVERT))
- return (reverto(f, n));
-
- return (bp ? TRUE : FALSE);
- }
-
- d_viewfile(f, n)
- int f, n;
- {
- BUFFER *bp = _dirgetfile(f, n);
-
- if (bp)
- bp->b_flag |= BFVIEW;
- return (bp ? TRUE : FALSE);
- }
-
- static BUFFER *_dirgetfile(f, n)
- int f, n;
- {
- char fname[NFILEN];
- register BUFFER *bp;
- register int s;
- EWINDOW *wp;
-
- if((s = d_makename(curwp->w_dotp, fname)) == ABORT)
- return (BUFFER *)0;
- if ((bp = (s ? dired_(fname) : findbuffer(fname))) == NULL)
- return (BUFFER *)0;
-
- if (!(wp = popbuf(bp)))
- return (BUFFER *)0;
- curbp = bp;
- curwp = wp;
-
- if (bp->b_fname[0] == 0)
- s = readin(fname);
- return (bp);
- }
-