readdir_tmpl.c

来自「zlib压缩原码」· C语言 代码 · 共 58 行

C
58
字号
static void ADJUST_NAME(int fd, struct DIRENT *de){  int l;  char *extension;    if (zlib_mode & CM_VERBOSE)    fprintf(stderr,"Adjust name: %s\n", de->d_name);  l = NAMLEN(de);  /* substitute .z by nothing */  if (l > zlib_extlen){    /* we ask for name-length stricly bigger than extlen, in order to     * avoid empty file names :-) */    extension = (de->d_name + l - zlib_extlen);    if (strncmp(extension, zlib_ext, zlib_extlen) == 0 ){      *extension='\0';      if ( (zlib_getfiletype(de->d_name,fd) & PM_READ_MASK) >=	   PM_DIR_LEAVE_COMPR) {	if(zlib_mode & CM_VERBOSE)	  fprintf(stderr,"Leave %s compressed\n", de->d_name);	/* put back into place, if we "hide" these files */	*extension=*zlib_ext;      }#ifdef HAVE_NAMLEN      else	de->d_namlen -= zlib_extlen;#endif    }  }}#ifdef SYS_readdirstruct DIRENT *READDIR(DIR *dirp){  struct DIRENT *de;  de = real_READDIR(dirp);  if(!de)    return de;  zlib_initialise();  if(zlib_mode & ( CM_DISAB | CM_READDIR_COMPR))    return de;#if defined(__GLIBC__) && __GLIBC__ >= 2  ADJUST_NAME(dirfd(dirp), de);#else  ADJUST_NAME(dirp->dd_fd, de);#endif  return de;}#endif

⌨️ 快捷键说明

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