{ /* if it is directory,then operateit*/
if((-chmod(dirment.ff_name,0))&fa_direc)
{
chdir(dirment.ff_name);
add_attrib(dirment);
/*skip directories.and..*/
dir_operate();
chdir("..");
}
/*continue to search*/
p=findnext(&dirment);
}
}
void add_attrib(struct ffblk dirment)
/*calculate attribute of the given file/directory*/
{
if (dirment.ff_attrib & fa_hidden)
attrib[0]=`h';
else
attrib[0]`.';
if(dirment.ff_attrib & fa_system)
attrib[1]=`s';
else
attrib[1]=`.'
if(dirment.ff_attrib & fa_rdonly)
attrib[2]=`r';
else
attrib[2]=".";
if(dirment.ff_attrib & fa_arch)
attrib[3]=`a';
else
attrib[3]=`.';
if(dirment.ff_attrib & fa_label)
attrib[4]=`l';
else
attrib[4]=`.';
if(dirment.ff_attrib &fa_direc)
attrib[5]=`d';
else
attrib[5]=`.';
}
void full_screen_operate(void)
{
char key_value;
/*output full_screen_buffer*/puts(buffer);
printf("strike ^_c to terminate or any other key to continue!\n");
asm{
mov ah,7
int 21h
mov key_value,al
}
if(key_value==ctrl_break||key_value==esc){
/*process ctrl_break or esc keyboard input*/
if (strlen(dirver)!=0)}
chdir(olddir);
}
setdisk(curdriver);
chdir(curdir);
setcbrk(ctrl_break_flag);
exit(0);
}
else
printf("searching!......please wait!\n");
buffer_pointer=buffer;
page_sum=0