fix printing of default filename
authorborg323 <4010067-borg323@users.noreply.gitlab.com>
Tue, 21 May 2019 23:45:55 +0000 (02:45 +0300)
committerDavid Griffith <dave@661.org>
Mon, 27 May 2019 02:32:11 +0000 (19:32 -0700)
src/curses/ux_input.c

index f7dec8f47b0a9050db37142dc50b97458ceb951e..f92126854cd9e5b255dbc0cfd6b56f1df4c6ae6a 100644 (file)
@@ -876,7 +876,29 @@ char *os_read_file_name (const char *default_name, int flag)
            tempname = basename((char *)default_name);
            print_string(tempname);
        } else
+#ifdef USE_UTF8
+       {
+           zchar z;
+           i = 0;
+           while (default_name[i])
+           {
+               if((default_name[i] & 0x80) == 0) {
+                   print_char(default_name[i++]);
+               } else if((default_name[i] & 0xe0) == 0xc0 ) {
+                   z = default_name[i++] & 0x1f;
+                   z = (z << 6) | (default_name[i++] & 0x3f);
+                   print_char(z);
+               } else {
+                   z = default_name[i++] & 0xf;
+                   z = (z << 6) | (default_name[i++] & 0x3f);
+                   z = (z << 6) | (default_name[i++] & 0x3f);
+                   print_char(z);
+               }
+           }
+       }
+#else
           print_string (default_name);
+#endif
        print_string ("\": ");
 #ifdef USE_UTF8
        {