|
|
researchv9-SUN3(old)
#include "sam.h"
struct Filelist file;
ushort tag;
File *
newfile()
{
register File *f;
inslist((List *)&file, 0, (long)(f=Fopen()));
f->tag=tag++;
if(downloaded)
outTs(Hnewname, f->tag);
/* already sorted; file name is "" */
return f;
}
delfile(f)
register File *f;
{
register w=whichmenu(f);
if(downloaded)
outTs(Hdelname, f->tag);
dellist((List *)&file, w);
Fclose(f);
}
sortname(f)
register File *f;
{
register i, cmp;
register w=whichmenu(f);
register dupwarned=FALSE;
dellist((List *)&file, w);
if(f==cmd)
i=0;
else for(i=0; i<file.nused; i++){
cmp=strcmp(f->name.s, file.ptr[i]->name.s);
if(cmp==0 && !dupwarned){
dupwarned=TRUE;
warn_s(Wdupname, (char *)f->name.s);
}else if(cmp<0 && (i>0 || cmd==0))
break;
}
inslist((List *)&file, i, (long)f);
if(downloaded)
outTsS(Hmovname, f->tag, f->name.s);
}
whichmenu(f)
File *f;
{
register i;
for(i=0; i<file.nused; i++)
if(file.ptr[i]==f)
return i;
return -1;
}
state(f, cleandirty)
register File *f;
enum State cleandirty;
{
if(f==cmd)
return;
if(downloaded && whichmenu(f)>=0){ /* else flist or menu */
if(f->state==Dirty && cleandirty!=Dirty)
outTs(Hclean, f->tag);
else if(f->state!=Dirty && cleandirty==Dirty)
outTs(Hdirty, f->tag);
}
f->state=cleandirty;
}
File *
lookfile()
{
register i;
for(i=0; i<file.nused; i++)
if(strcmp(file.ptr[i]->name.s, genstr.s)==0)
return file.ptr[i];
return 0;
}
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.