pass unicode name when clicking Load or Save button
This commit is contained in:
		
							parent
							
								
									2911d61ab1
								
							
						
					
					
						commit
						9fb6d650b5
					
				@ -639,6 +639,7 @@ byte Button_Quit_local_function(void)
 | 
				
			|||||||
        Display_cursor();
 | 
					        Display_cursor();
 | 
				
			||||||
       
 | 
					       
 | 
				
			||||||
        Init_context_layered_image(&save_context, Main.backups->Pages->Filename, Main.backups->Pages->File_directory);
 | 
					        Init_context_layered_image(&save_context, Main.backups->Pages->Filename, Main.backups->Pages->File_directory);
 | 
				
			||||||
 | 
					        save_context.File_name_unicode = Main.backups->Pages->Filename_unicode;
 | 
				
			||||||
        Save_image(&save_context);
 | 
					        Save_image(&save_context);
 | 
				
			||||||
        Destroy_context(&save_context);
 | 
					        Destroy_context(&save_context);
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
@ -3415,6 +3416,7 @@ void Save_picture(enum CONTEXT_TYPE type)
 | 
				
			|||||||
  byte  old_cursor_shape;
 | 
					  byte  old_cursor_shape;
 | 
				
			||||||
  T_IO_Context save_context;
 | 
					  T_IO_Context save_context;
 | 
				
			||||||
  static char filename [MAX_PATH_CHARACTERS];
 | 
					  static char filename [MAX_PATH_CHARACTERS];
 | 
				
			||||||
 | 
					  static word filename_unicode[MAX_PATH_CHARACTERS];
 | 
				
			||||||
  static char directory[MAX_PATH_CHARACTERS];
 | 
					  static char directory[MAX_PATH_CHARACTERS];
 | 
				
			||||||
  T_Selector_settings * selector;
 | 
					  T_Selector_settings * selector;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -3422,6 +3424,7 @@ void Save_picture(enum CONTEXT_TYPE type)
 | 
				
			|||||||
  {
 | 
					  {
 | 
				
			||||||
    strcpy(filename, Main.backups->Pages->Filename);
 | 
					    strcpy(filename, Main.backups->Pages->Filename);
 | 
				
			||||||
    strcpy(directory, Main.backups->Pages->File_directory);
 | 
					    strcpy(directory, Main.backups->Pages->File_directory);
 | 
				
			||||||
 | 
					    Unicode_strlcpy(filename_unicode, Main.backups->Pages->Filename_unicode, MAX_PATH_CHARACTERS);
 | 
				
			||||||
    Init_context_layered_image(&save_context, filename, directory);
 | 
					    Init_context_layered_image(&save_context, filename, directory);
 | 
				
			||||||
    save_context.Format = Main.fileformat;
 | 
					    save_context.Format = Main.fileformat;
 | 
				
			||||||
    selector = &Main.selector;
 | 
					    selector = &Main.selector;
 | 
				
			||||||
@ -3430,6 +3433,7 @@ void Save_picture(enum CONTEXT_TYPE type)
 | 
				
			|||||||
  {
 | 
					  {
 | 
				
			||||||
    strcpy(filename, Brush_filename);
 | 
					    strcpy(filename, Brush_filename);
 | 
				
			||||||
    strcpy(directory, Brush_file_directory);
 | 
					    strcpy(directory, Brush_file_directory);
 | 
				
			||||||
 | 
					    filename_unicode[0] = 0;
 | 
				
			||||||
    Init_context_brush(&save_context, filename, directory);
 | 
					    Init_context_brush(&save_context, filename, directory);
 | 
				
			||||||
    save_context.Format = Brush_fileformat;
 | 
					    save_context.Format = Brush_fileformat;
 | 
				
			||||||
    selector = &Brush_selector;
 | 
					    selector = &Brush_selector;
 | 
				
			||||||
@ -3445,6 +3449,7 @@ void Save_picture(enum CONTEXT_TYPE type)
 | 
				
			|||||||
      dotpos = filename + strlen(filename);
 | 
					      dotpos = filename + strlen(filename);
 | 
				
			||||||
    strcpy(dotpos, ".pal");
 | 
					    strcpy(dotpos, ".pal");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    filename_unicode[0] = 0;
 | 
				
			||||||
    strcpy(directory, Main.backups->Pages->File_directory);
 | 
					    strcpy(directory, Main.backups->Pages->File_directory);
 | 
				
			||||||
    Init_context_layered_image(&save_context, filename, directory);
 | 
					    Init_context_layered_image(&save_context, filename, directory);
 | 
				
			||||||
    save_context.Type = CONTEXT_PALETTE;
 | 
					    save_context.Type = CONTEXT_PALETTE;
 | 
				
			||||||
@ -3456,6 +3461,7 @@ void Save_picture(enum CONTEXT_TYPE type)
 | 
				
			|||||||
  else
 | 
					  else
 | 
				
			||||||
    return;
 | 
					    return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  save_context.File_name_unicode = filename_unicode;
 | 
				
			||||||
  confirm=Button_Load_or_Save(selector, 0, &save_context);
 | 
					  confirm=Button_Load_or_Save(selector, 0, &save_context);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if (confirm && File_exists(save_context.File_name))
 | 
					  if (confirm && File_exists(save_context.File_name))
 | 
				
			||||||
 | 
				
			|||||||
@ -1534,6 +1534,7 @@ byte Button_Load_or_Save(T_Selector_settings *settings, byte load, T_IO_Context
 | 
				
			|||||||
  byte  initial_back_color; // preview destroys it (how nice)
 | 
					  byte  initial_back_color; // preview destroys it (how nice)
 | 
				
			||||||
  char  previous_directory[MAX_PATH_CHARACTERS]; // Répertoire d'où l'on vient après un CHDIR
 | 
					  char  previous_directory[MAX_PATH_CHARACTERS]; // Répertoire d'où l'on vient après un CHDIR
 | 
				
			||||||
  char  save_filename[MAX_PATH_CHARACTERS];
 | 
					  char  save_filename[MAX_PATH_CHARACTERS];
 | 
				
			||||||
 | 
					  word  save_filename_unicode[MAX_PATH_CHARACTERS];
 | 
				
			||||||
  char  initial_comment[COMMENT_SIZE+1];
 | 
					  char  initial_comment[COMMENT_SIZE+1];
 | 
				
			||||||
  short window_shortcut;
 | 
					  short window_shortcut;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1668,7 +1669,7 @@ byte Button_Load_or_Save(T_Selector_settings *settings, byte load, T_IO_Context
 | 
				
			|||||||
    // On initialise le nom de fichier à celui en cours et non pas celui sous
 | 
					    // On initialise le nom de fichier à celui en cours et non pas celui sous
 | 
				
			||||||
    // la barre de sélection
 | 
					    // la barre de sélection
 | 
				
			||||||
    strcpy(Selector_filename,context->File_name);
 | 
					    strcpy(Selector_filename,context->File_name);
 | 
				
			||||||
    Selector_filename_unicode[0] = 0; // TODO : retrieve unicode filename
 | 
					    Unicode_strlcpy(Selector_filename_unicode, context->File_name_unicode, 256);
 | 
				
			||||||
    // On affiche le nouveau nom de fichier
 | 
					    // On affiche le nouveau nom de fichier
 | 
				
			||||||
    Print_filename_in_fileselector();
 | 
					    Print_filename_in_fileselector();
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
@ -1888,9 +1889,11 @@ byte Button_Load_or_Save(T_Selector_settings *settings, byte load, T_IO_Context
 | 
				
			|||||||
      case  8 : // Saisie du nom de fichier
 | 
					      case  8 : // Saisie du nom de fichier
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
        char filename_ansi[256];
 | 
					        char filename_ansi[256];
 | 
				
			||||||
 | 
					        word filename_unicode[256];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // Save the filename
 | 
					        // Save the filename
 | 
				
			||||||
        strcpy(save_filename, Selector_filename);
 | 
					        strcpy(save_filename, Selector_filename);
 | 
				
			||||||
 | 
					        Unicode_strlcpy(save_filename_unicode, Selector_filename_unicode, MAX_PATH_CHARACTERS);
 | 
				
			||||||
        // Check if the selected entry is a drive/directory :
 | 
					        // Check if the selected entry is a drive/directory :
 | 
				
			||||||
        // in, this case, clear the filename
 | 
					        // in, this case, clear the filename
 | 
				
			||||||
        if (Filelist.Nb_elements>0)
 | 
					        if (Filelist.Nb_elements>0)
 | 
				
			||||||
@ -1902,6 +1905,7 @@ byte Button_Load_or_Save(T_Selector_settings *settings, byte load, T_IO_Context
 | 
				
			|||||||
            Selector_filename[0]='\0';
 | 
					            Selector_filename[0]='\0';
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        strncpy(filename_ansi, Selector_filename, sizeof(filename_ansi));
 | 
					        strncpy(filename_ansi, Selector_filename, sizeof(filename_ansi));
 | 
				
			||||||
 | 
					        Unicode_strlcpy(filename_unicode, Selector_filename_unicode, sizeof(filename_unicode)/sizeof(word));
 | 
				
			||||||
#ifdef ENABLE_FILENAMES_ICONV
 | 
					#ifdef ENABLE_FILENAMES_ICONV
 | 
				
			||||||
        { /* convert from UTF8 to ANSI */
 | 
					        { /* convert from UTF8 to ANSI */
 | 
				
			||||||
          char * input = (char *)Selector_filename;
 | 
					          char * input = (char *)Selector_filename;
 | 
				
			||||||
@ -1978,6 +1982,7 @@ byte Button_Load_or_Save(T_Selector_settings *settings, byte load, T_IO_Context
 | 
				
			|||||||
        {
 | 
					        {
 | 
				
			||||||
          // Restore the old filename
 | 
					          // Restore the old filename
 | 
				
			||||||
          strcpy(Selector_filename, save_filename);
 | 
					          strcpy(Selector_filename, save_filename);
 | 
				
			||||||
 | 
					          Unicode_strlcpy(Selector_filename_unicode, save_filename_unicode, sizeof(Selector_filename_unicode)/sizeof(word));
 | 
				
			||||||
          Print_filename_in_fileselector();
 | 
					          Print_filename_in_fileselector();
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        Display_cursor();
 | 
					        Display_cursor();
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user