update For_each_file() to pass both full path and file name only to the callback
All callbacks need to extract the filename anyway, so it simplify the code
This commit is contained in:
		
							parent
							
								
									a4593da4d4
								
							
						
					
					
						commit
						4a2754321f
					
				@ -1225,17 +1225,11 @@ char * Format_font_filename(const char * fname)
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Add a skin to the list
 | 
					// Add a skin to the list
 | 
				
			||||||
void Add_font_or_skin(const char *name)
 | 
					static void Add_font_or_skin(const char * full_name, const char * fname)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  const char * fname;
 | 
					  size_t namelength;
 | 
				
			||||||
  int namelength;
 | 
					  (void)full_name;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Cut the long name to keep only filename (no directory)
 | 
					 | 
				
			||||||
  fname = Find_last_separator(name);
 | 
					 | 
				
			||||||
  if (fname)
 | 
					 | 
				
			||||||
    fname++;
 | 
					 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    fname = name;
 | 
					 | 
				
			||||||
  namelength = strlen(fname);
 | 
					  namelength = strlen(fname);
 | 
				
			||||||
  if (namelength>=10 && fname[0]!='_' && !strncasecmp(fname, SKIN_PREFIX, strlen(SKIN_PREFIX))
 | 
					  if (namelength>=10 && fname[0]!='_' && !strncasecmp(fname, SKIN_PREFIX, strlen(SKIN_PREFIX))
 | 
				
			||||||
    && (!strcasecmp(fname + namelength - 4,".png")
 | 
					    && (!strcasecmp(fname + namelength - 4,".png")
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										4
									
								
								src/io.c
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								src/io.c
									
									
									
									
									
								
							@ -358,7 +358,7 @@ int File_length_file(FILE * file)
 | 
				
			|||||||
    return infos_fichier.st_size;
 | 
					    return infos_fichier.st_size;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void For_each_file(const char * directory_name, void Callback(const char *))
 | 
					void For_each_file(const char * directory_name, void Callback(const char *, const char *))
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  // Pour scan de répertoire
 | 
					  // Pour scan de répertoire
 | 
				
			||||||
  DIR*  current_directory; //Répertoire courant
 | 
					  DIR*  current_directory; //Répertoire courant
 | 
				
			||||||
@ -385,7 +385,7 @@ void For_each_file(const char * directory_name, void Callback(const char *))
 | 
				
			|||||||
    stat(full_filename,&Infos_enreg);
 | 
					    stat(full_filename,&Infos_enreg);
 | 
				
			||||||
    if (S_ISREG(Infos_enreg.st_mode))
 | 
					    if (S_ISREG(Infos_enreg.st_mode))
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      Callback(full_filename);
 | 
					      Callback(full_filename, entry->d_name);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  closedir(current_directory);
 | 
					  closedir(current_directory);
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										2
									
								
								src/io.h
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								src/io.h
									
									
									
									
									
								
							@ -97,7 +97,7 @@ int  Directory_exists(char * directory);
 | 
				
			|||||||
int File_is_hidden(const char *fname, const char *full_name);
 | 
					int File_is_hidden(const char *fname, const char *full_name);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/// Scans a directory, calls Callback for each file in it,
 | 
					/// Scans a directory, calls Callback for each file in it,
 | 
				
			||||||
void For_each_file(const char * directory_name, void Callback(const char *));
 | 
					void For_each_file(const char * directory_name, void Callback(const char * full_name, const char * file_name));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
typedef void T_File_dir_cb(void * pdata, const char * filename, const word * unicode_filename, byte is_file, byte is_directory, byte is_hidden);
 | 
					typedef void T_File_dir_cb(void * pdata, const char * filename, const word * unicode_filename, byte is_file, byte is_directory, byte is_hidden);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -1492,17 +1492,15 @@ const int Max_edits_for_safety_backup = 30;
 | 
				
			|||||||
///
 | 
					///
 | 
				
			||||||
/// Adds a file to Backups_main or Backups_spare lists, if it's a backup.
 | 
					/// Adds a file to Backups_main or Backups_spare lists, if it's a backup.
 | 
				
			||||||
///
 | 
					///
 | 
				
			||||||
void Add_backup_file(const char *name)
 | 
					static void Add_backup_file(const char * full_name, const char *file_name)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  T_String_list ** list;
 | 
					  T_String_list ** list;
 | 
				
			||||||
  T_String_list * elem;
 | 
					  T_String_list * elem;
 | 
				
			||||||
  int i;
 | 
					  int i;
 | 
				
			||||||
  char file_name[MAX_PATH_CHARACTERS];
 | 
					  (void)full_name;
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  // Only files names of the form a0000000.* and b0000000.* are expected
 | 
					  // Only files names of the form a0000000.* and b0000000.* are expected
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  Extract_filename(file_name, name);
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
  // Check first character
 | 
					  // Check first character
 | 
				
			||||||
  if (file_name[0]==Main.safety_backup_prefix)
 | 
					  if (file_name[0]==Main.safety_backup_prefix)
 | 
				
			||||||
    list = &Backups_main;
 | 
					    list = &Backups_main;
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										14
									
								
								src/text.c
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								src/text.c
									
									
									
									
									
								
							@ -91,9 +91,8 @@ int Compare_fonts(T_Font * font_1, T_Font * font_2)
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Ajout d'une fonte à la liste.
 | 
					// Ajout d'une fonte à la liste.
 | 
				
			||||||
void Add_font(const char *name)
 | 
					static void Add_font(const char *name, const char * font_name)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  char * font_name;
 | 
					 | 
				
			||||||
  T_Font * font;
 | 
					  T_Font * font;
 | 
				
			||||||
  int size=strlen(name)+1;
 | 
					  int size=strlen(name)+1;
 | 
				
			||||||
  int index;
 | 
					  int index;
 | 
				
			||||||
@ -162,17 +161,12 @@ void Add_font(const char *name)
 | 
				
			|||||||
      #endif
 | 
					      #endif
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  font->Name = (char *)malloc(size);
 | 
					  font->Name = strdup(name);
 | 
				
			||||||
  strcpy(font->Name, name);
 | 
					 | 
				
			||||||
  // Label
 | 
					  // Label
 | 
				
			||||||
  strcpy(font->Label, "                   ");
 | 
					  memset(font->Label, ' ', sizeof(font->Label));
 | 
				
			||||||
 | 
					  font->Label[19] = '\0';
 | 
				
			||||||
  if (font->Is_truetype)
 | 
					  if (font->Is_truetype)
 | 
				
			||||||
    font->Label[17]=font->Label[18]='T'; // Logo TT
 | 
					    font->Label[17]=font->Label[18]='T'; // Logo TT
 | 
				
			||||||
  font_name=Find_last_separator(font->Name);
 | 
					 | 
				
			||||||
  if (font_name==NULL)
 | 
					 | 
				
			||||||
    font_name=font->Name;
 | 
					 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    font_name++;
 | 
					 | 
				
			||||||
  for (index=0; index < 17 && font_name[index]!='\0' && font_name[index]!='.'; index++)
 | 
					  for (index=0; index < 17 && font_name[index]!='\0' && font_name[index]!='.'; index++)
 | 
				
			||||||
    font->Label[index]=font_name[index];
 | 
					    font->Label[index]=font_name[index];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user