⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 filesys.c

📁 Boost provides free peer-reviewed portable C++ source libraries. We emphasize libraries that work
💻 C
字号:
# include "jam.h"# include "pathsys.h"# include "strings.h"# include "newstr.h"# include "filesys.h"# include "lists.h"voidfile_build1(    PATHNAME *f,    string* file){    if( DEBUG_SEARCH )    {	printf("build file: ");	if( f->f_root.len )            printf( "root = '%.*s' ", f->f_root.len, f->f_root.ptr );	if( f->f_dir.len )            printf( "dir = '%.*s' ", f->f_dir.len, f->f_dir.ptr );	if( f->f_base.len )            printf( "base = '%.*s' ", f->f_base.len, f->f_base.ptr );    }	    /* Start with the grist.  If the current grist isn't */    /* surrounded by <>'s, add them. */    if( f->f_grist.len )    {        if( f->f_grist.ptr[0] != '<' )            string_push_back( file, '<' );        string_append_range(            file, f->f_grist.ptr, f->f_grist.ptr + f->f_grist.len );        if( file->value[file->size - 1] != '>' )            string_push_back( file, '>' );    }}static struct hash * filecache_hash = 0;file_info_t * file_info(char * filename){    file_info_t finfo_, *finfo = &finfo_;        if ( !filecache_hash )        filecache_hash = hashinit( sizeof( file_info_t ), "file_info" );        finfo->name = filename;    if ( hashenter( filecache_hash, (HASHDATA**)&finfo ) )    {        /* printf( "file_info: %s\n", filename ); */        finfo->name = newstr( finfo->name );        finfo->is_file = 0;        finfo->is_dir = 0;        finfo->size = 0;        finfo->time = 0;        finfo->files = 0;    }        return finfo;}static LIST * files_to_remove = L0;static void remove_files_atexit(void){    /* we do pop front in case this exit function is called       more than once */    while ( files_to_remove )    {        remove( files_to_remove->string );        files_to_remove = list_pop_front( files_to_remove );    }}void file_done(){    remove_files_atexit();    hashdone( filecache_hash );}void file_remove_atexit( const char * path ){    files_to_remove = list_new( files_to_remove, newstr((char*)path) );}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -