/* Raydium - CQFD Corp. http://raydium.org/ License: GPL - GNU General Public License, see "gpl.txt" file. */ #ifndef DONT_INCLUDE_HEADERS #include "index.h" #else #include "headers/file.h" #endif // proto void raydium_path_resolv(char *in, char *out, char mode); // far better than glibc's 'dirname' (and portable) void raydium_file_dirname(char *dest,char *from) { char *c; int n; c=strrchr(from,'/'); // Unix if(!c) c=strrchr(from,'\\'); // win32 if(!c) { strcpy(dest,"./"); return; } n=c-from; memcpy(dest,from,n+1); dest[n+1]=0; } void raydium_file_basename(char *dest,char *from) { char *c; int n; c=strrchr(from,'/'); // Unix if(!c) c=strrchr(from,'\\'); // win32 if(!c) { strcpy(dest,from); return; } n=(c-from+1); if(n==strlen(from)) { dest[0]=0; return; } strcpy(dest,from+n); } void raydium_file_ext(char *dest, char *from) { char name[RAYDIUM_MAX_DIR_LEN]; char *c; dest[0]=0; raydium_file_basename(name,from); if( (c=strrchr(name,'.')) ) if(c[1]!=0) strcpy(dest,c+1); } signed char raydium_file_directory_writable(char *path) { char file[RAYDIUM_MAX_NAME_LEN]; FILE *fp; sprintf(file,"%s/RAYDIUM-WRITE-TEST.delme",path); fp=fopen(file,"wb"); if(!fp) return 0; fclose(fp); unlink(file); return 1; } signed char raydium_file_readable(char *filename) { FILE *fp; fp=fopen(filename,"r"); if(!fp) return 0; fclose(fp); return 1; } void raydium_file_log_fopen_display(void) { int i; raydium_log("List of all opended files:"); for(i=0;i