/* **************************************************************************** * euint8* file_normalToFatName(eint8* filename,eint8* fatfilename) * Description: This function converts a human readable filename (limited to * 8.3 eint8 character) to a valid FAT (not VFAT) filename. Invalid characters are * changed to capital X and only the first 11 characters are used. * Furthermore all letters are capitalised. * Return value: pointer after the filename */ eint8* file_normalToFatName(eint8* filename,eint8* fatfilename) { euint8 c,dot=0,vc=0; for(c=0;c<LIST_MAXLENFILENAME;c++)fatfilename[c]=' '; c=0; if(*filename == '.'){ fatfilename[0]='.'; vc++; if(*(filename+1) == '.'){ fatfilename[1]='.'; filename+=2; }else{ filename++; } }else{ while(*filename != '\0' && *filename != ' ' && *filename != '/'){ if(*filename=='.' && !dot){ dot=1; c=8; }else{ if(dot){ if(c<=10){ fatfilename[c]=file_validateChar(*filename); c++; } }else{ if(c<=7){ fatfilename[c]=file_validateChar(*filename); c++; vc++; } } } filename++; } } if(vc>0){ if(*filename=='\0'){ return(filename); }else{ return(filename+1); } }else{ return(0); } }
/* **************************************************************************** * unsigned char* file_normalToFatName(char* filename,char* fatfilename) * Description: This function converts a human readable filename (limited to * 8.3 char character) to a valid FAT (not VFAT) filename. Invalid characters are * changed to capital X and only the first 11 characters are used. * Furthermore all letters are capitalised. * Return value: pointer after the filename */ char* file_normalToFatName(char* filename,char* fatfilename) { unsigned char c,dot=0,vc=0; for(c=0;c<11;c++)fatfilename[c]=' '; c=0; if(*filename == '.'){ fatfilename[0]='.'; vc++; if(*(filename+1) == '.'){ fatfilename[1]='.'; filename+=2; }else{ filename++; } }else{ while(*filename != '\0' && *filename != ' ' && *filename != '/'){ if(*filename=='.' && !dot){ dot=1; c=8; }else{ if(dot){ if(c<=10){ fatfilename[c]=file_validateChar(*filename); c++; } }else{ if(c<=7){ fatfilename[c]=file_validateChar(*filename); c++; vc++; } } } filename++; } } if(vc>0){ if(*filename=='\0'){ return(filename); }else{ return(filename+1); } }else{ return(0); } }