cabarc: Avoid some conversion to Unix codepage.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
stable
Alexandre Julliard 2019-11-28 08:50:49 +01:00
parent cadad89d10
commit e87c84f56d
1 changed files with 5 additions and 13 deletions

View File

@ -335,21 +335,19 @@ static INT_PTR CDECL list_notify( FDINOTIFICATIONTYPE fdint, PFDINOTIFICATION pf
nameW = strdupAtoW( (pfdin->attribs & _A_NAME_IS_UTF) ? CP_UTF8 : CP_ACP, pfdin->psz1 ); nameW = strdupAtoW( (pfdin->attribs & _A_NAME_IS_UTF) ? CP_UTF8 : CP_ACP, pfdin->psz1 );
if (match_files( nameW )) if (match_files( nameW ))
{ {
char *nameU = strdupWtoA( CP_UNIXCP, nameW );
if (opt_verbose) if (opt_verbose)
{ {
char attrs[] = "rxash"; WCHAR attrs[] = L"rxash";
if (!(pfdin->attribs & _A_RDONLY)) attrs[0] = '-'; if (!(pfdin->attribs & _A_RDONLY)) attrs[0] = '-';
if (!(pfdin->attribs & _A_EXEC)) attrs[1] = '-'; if (!(pfdin->attribs & _A_EXEC)) attrs[1] = '-';
if (!(pfdin->attribs & _A_ARCH)) attrs[2] = '-'; if (!(pfdin->attribs & _A_ARCH)) attrs[2] = '-';
if (!(pfdin->attribs & _A_SYSTEM)) attrs[3] = '-'; if (!(pfdin->attribs & _A_SYSTEM)) attrs[3] = '-';
if (!(pfdin->attribs & _A_HIDDEN)) attrs[4] = '-'; if (!(pfdin->attribs & _A_HIDDEN)) attrs[4] = '-';
printf( " %s %9u %04u/%02u/%02u %02u:%02u:%02u ", attrs, pfdin->cb, wprintf( L" %s %9u %04u/%02u/%02u %02u:%02u:%02u ", attrs, pfdin->cb,
(pfdin->date >> 9) + 1980, (pfdin->date >> 5) & 0x0f, pfdin->date & 0x1f, (pfdin->date >> 9) + 1980, (pfdin->date >> 5) & 0x0f, pfdin->date & 0x1f,
pfdin->time >> 11, (pfdin->time >> 5) & 0x3f, (pfdin->time & 0x1f) * 2 ); pfdin->time >> 11, (pfdin->time >> 5) & 0x3f, (pfdin->time & 0x1f) * 2 );
} }
printf( "%s\n", nameU ); wprintf( L"%s\n", nameW );
cab_free( nameU );
} }
cab_free( nameW ); cab_free( nameW );
return 0; return 0;
@ -404,12 +402,7 @@ static INT_PTR CDECL extract_notify( FDINOTIFICATIONTYPE fdint, PFDINOTIFICATION
if (match_files( file )) if (match_files( file ))
{ {
if (opt_verbose) if (opt_verbose) wprintf( L"extracting %s\n", path );
{
char *nameU = strdupWtoA( CP_UNIXCP, path );
printf( "extracting %s\n", nameU );
cab_free( nameU );
}
create_directories( path ); create_directories( path );
/* FIXME: check for existing file and overwrite mode */ /* FIXME: check for existing file and overwrite mode */
ret = (INT_PTR)CreateFileW( path, GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, ret = (INT_PTR)CreateFileW( path, GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE,
@ -628,8 +621,7 @@ int __cdecl wmain( int argc, WCHAR *argv[] )
else if (!wcscmp( argv[1], mszipW )) opt_compression = tcompTYPE_MSZIP; else if (!wcscmp( argv[1], mszipW )) opt_compression = tcompTYPE_MSZIP;
else else
{ {
char *arg = strdupWtoA( CP_ACP, argv[1] ); WINE_MESSAGE( "cabarc: Unknown compression type %s\n", debugstr_w(argv[1]));
WINE_MESSAGE( "cabarc: Unknown compression type '%s'\n", arg);
return 1; return 1;
} }
break; break;