Filename input in unicode for Win32
This commit is contained in:
		
							parent
							
								
									c48e881a54
								
							
						
					
					
						commit
						bbdee15990
					
				@ -1929,9 +1929,26 @@ byte Button_Load_or_Save(T_Selector_settings *settings, byte load, T_IO_Context
 | 
				
			|||||||
            *output = '\0';
 | 
					            *output = '\0';
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
#endif /* ENABLE_FILENAMES_ICONV */
 | 
					#endif /* ENABLE_FILENAMES_ICONV */
 | 
				
			||||||
 | 
					#if defined(WIN32) || defined(ENABLE_FILENAMES_ICONV)
 | 
				
			||||||
        if (Readline_ex_unicode(82,48,filename_ansi,filename_unicode,27,sizeof(filename_ansi)-1,INPUT_TYPE_FILENAME,0))
 | 
					        if (Readline_ex_unicode(82,48,filename_ansi,filename_unicode,27,sizeof(filename_ansi)-1,INPUT_TYPE_FILENAME,0))
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					        if (Readline_ex_unicode(82,48,filename_ansi,NULL,27,sizeof(filename_ansi)-1,INPUT_TYPE_FILENAME,0))
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
#ifdef ENABLE_FILENAMES_ICONV
 | 
					#if defined(WIN32)
 | 
				
			||||||
 | 
					          WCHAR temp_str[MAX_PATH_CHARACTERS];
 | 
				
			||||||
 | 
					          if (GetShortPathNameW((WCHAR *)filename_unicode, temp_str, MAX_PATH_CHARACTERS) == 0)
 | 
				
			||||||
 | 
					          {
 | 
				
			||||||
 | 
					            strcpy(filename_ansi, "*TEMP*");
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					          else
 | 
				
			||||||
 | 
					          {
 | 
				
			||||||
 | 
					            int i;
 | 
				
			||||||
 | 
					            for (i = 0; i < MAX_PATH_CHARACTERS - 1 && temp_str[i] != 0; i++)
 | 
				
			||||||
 | 
					              filename_ansi[i] = temp_str[i];
 | 
				
			||||||
 | 
					            filename_ansi[i] = '\0';
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					#elif defined(ENABLE_FILENAMES_ICONV)
 | 
				
			||||||
          /* convert back from UTF16 to UTF8 */
 | 
					          /* convert back from UTF16 to UTF8 */
 | 
				
			||||||
          char * input = (char *)filename_unicode;
 | 
					          char * input = (char *)filename_unicode;
 | 
				
			||||||
          size_t inbytesleft = 2 * Unicode_strlen(filename_unicode);
 | 
					          size_t inbytesleft = 2 * Unicode_strlen(filename_unicode);
 | 
				
			||||||
@ -1940,11 +1957,12 @@ byte Button_Load_or_Save(T_Selector_settings *settings, byte load, T_IO_Context
 | 
				
			|||||||
          if(cd_utf16_inv != (iconv_t)-1 && (ssize_t)iconv(cd_utf16_inv, &input, &inbytesleft, &output, &outbytesleft) >= 0)
 | 
					          if(cd_utf16_inv != (iconv_t)-1 && (ssize_t)iconv(cd_utf16_inv, &input, &inbytesleft, &output, &outbytesleft) >= 0)
 | 
				
			||||||
            *output = '\0';
 | 
					            *output = '\0';
 | 
				
			||||||
          else
 | 
					          else
 | 
				
			||||||
#endif /* ENABLE_FILENAMES_ICONV */
 | 
					#endif
 | 
				
			||||||
            strncpy(Selector_filename, filename_ansi, sizeof(Selector_filename));
 | 
					            strncpy(Selector_filename, filename_ansi, sizeof(Selector_filename));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(WIN32) || defined(ENABLE_FILENAMES_ICONV)
 | 
				
			||||||
          Unicode_strlcpy(Selector_filename_unicode, filename_unicode, sizeof(Selector_filename_unicode)/sizeof(word));
 | 
					          Unicode_strlcpy(Selector_filename_unicode, filename_unicode, sizeof(Selector_filename_unicode)/sizeof(word));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
          //   On regarde s'il faut rajouter une extension. C'est-à-dire s'il
 | 
					          //   On regarde s'il faut rajouter une extension. C'est-à-dire s'il
 | 
				
			||||||
          // n'y a pas de '.' dans le nom du fichier.
 | 
					          // n'y a pas de '.' dans le nom du fichier.
 | 
				
			||||||
          for(temp=0,dummy=0; ((Selector_filename[temp]) && (!dummy)); temp++)
 | 
					          for(temp=0,dummy=0; ((Selector_filename[temp]) && (!dummy)); temp++)
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user