[base/system/expand]

- Update expand utility to Wine-1.1.37. Last update happened 7 years ago and since then it was translated into 20 languages. Sorry to all the translators but the preference is given to a working untranslated version rather than a non-working localized one.
See issue #4637 for more details.

svn path=/trunk/; revision=45418
This commit is contained in:
Aleksey Bragin 2010-02-04 14:40:36 +00:00
parent ff14d245dd
commit c2c6cc65aa
24 changed files with 167 additions and 393 deletions

View file

@ -1,6 +1,7 @@
/* /*
* Copyright 1997 Victor Schneider * Copyright 1997 Victor Schneider
* Copyright 2002 Alexandre Julliard * Copyright 2002 Alexandre Julliard
* Copyright 2007 Hans Leidekker
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public
@ -14,44 +15,178 @@
* *
* You should have received a copy of the GNU Lesser General Public * You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software * License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/ */
#include <stdlib.h> #define WIN32_LEAN_AND_MEAN
#include <stdio.h> #include <stdio.h>
#include <string.h> #include <string.h>
#include <windows.h> #include <windows.h>
#include <lzexpand.h> #include <lzexpand.h>
#include <tchar.h> #include <setupapi.h>
#include "resource.h" static UINT CALLBACK set_outfile( PVOID context, UINT notification, UINT_PTR param1, UINT_PTR param2 )
int _tmain(int argc, TCHAR *argv[])
{ {
OFSTRUCT SourceOpenStruct1, SourceOpenStruct2; FILE_IN_CABINET_INFO_A *info = (FILE_IN_CABINET_INFO_A *)param1;
LONG ret; char buffer[MAX_PATH];
HFILE hSourceFile, hDestFile; char* basename;
TCHAR szMsg[RC_STRING_MAX_SIZE];
if (argc < 2) switch (notification)
{ {
LoadString( GetModuleHandle(NULL), IDS_Copy, (LPTSTR) szMsg,RC_STRING_MAX_SIZE); case SPFILENOTIFY_FILEINCABINET:
_ftprintf( stderr, szMsg, argv[0] ); {
return 1; LPSTR outfile = context;
} if (outfile[0] != 0)
hSourceFile = LZOpenFile(argv[1], &SourceOpenStruct1, OF_READ); {
if (argv[2]) SetLastError( ERROR_NOT_SUPPORTED );
hDestFile = LZOpenFile(argv[2], &SourceOpenStruct2, OF_CREATE | OF_WRITE); return FILEOP_ABORT;
else }
{ GetFullPathNameA( info->NameInCabinet, sizeof(buffer), buffer, &basename );
TCHAR OriginalName[MAX_PATH]; strcpy( outfile, basename );
GetExpandedName(argv[1], OriginalName); return FILEOP_SKIP;
hDestFile = LZOpenFile(OriginalName, &SourceOpenStruct2, OF_CREATE | OF_WRITE); }
} default: return NO_ERROR;
ret = LZCopy(hSourceFile, hDestFile); }
LZClose(hSourceFile); }
LZClose(hDestFile);
LoadString( GetModuleHandle(NULL), IDS_FAILS, (LPTSTR) szMsg,RC_STRING_MAX_SIZE); static UINT CALLBACK extract_callback( PVOID context, UINT notification, UINT_PTR param1, UINT_PTR param2 )
if (ret <= 0) _ftprintf(stderr,szMsg,ret); {
return (ret <= 0); FILE_IN_CABINET_INFO_A *info = (FILE_IN_CABINET_INFO_A *)param1;
switch (notification)
{
case SPFILENOTIFY_FILEINCABINET:
{
LPCSTR targetname = context;
strcpy( info->FullTargetName, targetname );
return FILEOP_DOIT;
}
default: return NO_ERROR;
}
}
static BOOL option_equal(LPCSTR str1, LPCSTR str2)
{
if (str1[0] != '/' && str1[0] != '-')
return FALSE;
return !lstrcmpA( str1 + 1, str2 );
}
int main(int argc, char *argv[])
{
int ret = 0;
char infile[MAX_PATH], outfile[MAX_PATH], actual_name[MAX_PATH];
char outfile_basename[MAX_PATH], *basename_index;
UINT comp;
if (argc < 3)
{
fprintf( stderr, "Usage:\n" );
fprintf( stderr, "\t%s infile outfile\n", argv[0] );
fprintf( stderr, "\t%s /r infile\n", argv[0] );
return 1;
}
if (argc == 3 && (option_equal(argv[1], "R") || option_equal(argv[1], "r")))
GetFullPathNameA( argv[2], sizeof(infile), infile, NULL );
else
GetFullPathNameA( argv[1], sizeof(infile), infile, NULL );
if (!SetupGetFileCompressionInfoExA( infile, actual_name, sizeof(actual_name), NULL, NULL, NULL, &comp ))
{
fprintf( stderr, "%s: can't open input file %s\n", argv[0], infile );
return 1;
}
if (argc == 3 && (option_equal(argv[1], "R") || option_equal(argv[1], "r")))
{
switch (comp)
{
case FILE_COMPRESSION_MSZIP:
{
outfile_basename[0] = 0;
if (!SetupIterateCabinetA( infile, 0, set_outfile, outfile_basename ))
{
fprintf( stderr, "%s: can't determine original name\n", argv[0] );
return 1;
}
GetFullPathNameA( infile, sizeof(outfile), outfile, &basename_index );
*basename_index = 0;
strcat( outfile, outfile_basename );
break;
}
case FILE_COMPRESSION_WINLZA:
{
GetExpandedNameA( infile, outfile_basename );
break;
}
default:
{
fprintf( stderr, "%s: can't determine original\n", argv[0] );
return 1;
}
}
}
else
GetFullPathNameA( argv[2], sizeof(outfile), outfile, NULL );
if (!lstrcmpiA( infile, outfile ))
{
fprintf( stderr, "%s: can't expand file to itself\n", argv[0] );
return 1;
}
switch (comp)
{
case FILE_COMPRESSION_MSZIP:
{
if (!SetupIterateCabinetA( infile, 0, extract_callback, outfile ))
{
fprintf( stderr, "%s: cabinet extraction failed\n", argv[0] );
return 1;
}
break;
}
case FILE_COMPRESSION_WINLZA:
{
INT hin, hout;
OFSTRUCT ofin, ofout;
LONG error;
if ((hin = LZOpenFileA( infile, &ofin, OF_READ )) < 0)
{
fprintf( stderr, "%s: can't open input file %s\n", argv[0], infile );
return 1;
}
if ((hout = LZOpenFileA( outfile, &ofout, OF_CREATE | OF_WRITE )) < 0)
{
LZClose( hin );
fprintf( stderr, "%s: can't open output file %s\n", argv[0], outfile );
return 1;
}
error = LZCopy( hin, hout );
LZClose( hin );
LZClose( hout );
if (error < 0)
{
fprintf( stderr, "%s: LZCopy failed, error is %ld\n", argv[0], error );
return 1;
}
break;
}
default:
{
if (!CopyFileA( infile, outfile, FALSE ))
{
fprintf( stderr, "%s: CopyFileA failed\n", argv[0] );
return 1;
}
break;
}
}
return ret;
} }

View file

@ -3,8 +3,8 @@
<module name="expand" type="win32cui" installbase="system32" installname="expand.exe" > <module name="expand" type="win32cui" installbase="system32" installname="expand.exe" >
<include base="ReactOS">include/reactos/wine</include> <include base="ReactOS">include/reactos/wine</include>
<include base="expand">.</include> <include base="expand">.</include>
<define name="ANONYMOUSUNIONS" />
<library>lz32</library> <library>lz32</library>
<library>setupapi</library>
<library>user32</library> <library>user32</library>
<file>expand.c</file> <file>expand.c</file>
<file>expand.rc</file> <file>expand.rc</file>

View file

@ -3,5 +3,3 @@
#define REACTOS_STR_INTERNAL_NAME "expand\0" #define REACTOS_STR_INTERNAL_NAME "expand\0"
#define REACTOS_STR_ORIGINAL_FILENAME "expand.exe\0" #define REACTOS_STR_ORIGINAL_FILENAME "expand.exe\0"
#include <reactos/version.rc> #include <reactos/version.rc>
#include "rsrc.rc"

View file

@ -1,16 +0,0 @@
#include "resource.h"
/*
* Moved all hardcoded strings to En.rc.
* By Magnus Olsen 2005 magnus@itkonsult-olsen.com
*/
LANGUAGE LANG_BULGARIAN, SUBLANG_DEFAULT
STRINGTABLE DISCARDABLE
BEGIN
IDS_Copy, "Ïðèíàäëåæíîñò íà ÐåàêòÎÑ çà ðàçãúâàíå (ðàçêîìïðåñèðàíå) íà ôàéëîâå, â. 1.0\n\
Âúçïðîèçâîäñòâåíî ïðàâî íà Victor Schneider 1997\n\n\
Óïîòðåáà: %s âõîäÿùôàéë [èçõîäÿùôàéë]\n"
IDS_FAILS "LZCopy íåóñïåøíî: âúðíàòî å %ld\n"
END

View file

@ -1,21 +0,0 @@
/* FILE: system/expand/lang/cs-CZ.rc
* TRANSLATOR: Radek Liska aka Black_Fox (radekliska at gmail dot com)
* UPDATED: 2008-04-21
*/
#include "resource.h"
/*
* Moved all hardcoded strings to En.rc.
* By Magnus Olsen 2005 magnus@itkonsult-olsen.com
*/
LANGUAGE LANG_CZECH, SUBLANG_DEFAULT
STRINGTABLE DISCARDABLE
BEGIN
IDS_Copy, "ReactOS rozbalovaè souborù - verze 1.0\n\
Copyright Victor Schneider 1997\n\n\
Použití: %s vstupní soubor [výstupní soubor]\n"
IDS_FAILS "LZCopy selhalo: návratový kód je %ld\n"
END

View file

@ -1,16 +0,0 @@
#include "resource.h"
/*
* Translated into German.
* By Rouven Wessling 2005 pentiumforever@gmail.com
*/
LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
STRINGTABLE DISCARDABLE
BEGIN
IDS_Copy, "ReactOS Dateiexpansionsprogramm Version 1.0\n\
Copyright Victor Schneider 1997\n\n\
Verwendung: %s Eingabedatei [Ausgabedatei]\n"
IDS_FAILS "LZCopy fehlgeschlagen: Rückgabe ist %ld\n"
END

View file

@ -1,18 +0,0 @@
#include "resource.h"
/*
* Moved all hardcoded strings to En.rc.
* By Magnus Olsen 2005 magnus@itkonsult-olsen.com
* GR.rc by Dj Apal®
*
*/
LANGUAGE LANG_GREEK, SUBLANG_DEFAULT
STRINGTABLE DISCARDABLE
BEGIN
IDS_Copy, "ReactOS Expansion Utility Version 1.0\n\
Copyright Victor Schneider 1997\n\n\
×ñÞóç: %s infile [outfile]\n"
IDS_FAILS "LZÁíôéãñáöÞ áðÝôõ÷å: åðéóôñÜöçêå %ld\n"
END

View file

@ -1,16 +0,0 @@
#include "resource.h"
/*
* Moved all hardcoded strings to En.rc.
* By Magnus Olsen 2005 magnus@itkonsult-olsen.com
*/
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
STRINGTABLE DISCARDABLE
BEGIN
IDS_Copy, "ReactOS File Expansion Utility Version 1.0\n\
Copyright Victor Schneider 1997\n\n\
Usage: %s infile [outfile]\n"
IDS_FAILS "LZCopy failed: return is %ld\n"
END

View file

@ -1,16 +0,0 @@
#include "resource.h"
/*
* Moved all hardcoded strings to En.rc.
* By Magnus Olsen 2005 magnus@itkonsult-olsen.com
*/
LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL
STRINGTABLE DISCARDABLE
BEGIN
IDS_Copy, "ReactOS Utilidad de Descompresión de Archivos Versión 1.0\n\
Copyright Victor Schneider 1997\n\n\
Utilización: %s archivo entrada [archivo salida]\n"
IDS_FAILS "LZCopy falló: el resultado es %ld\n"
END

View file

@ -1,16 +0,0 @@
#include "resource.h"
/*
* Moved all hardcoded strings to En.rc.
* By Magnus Olsen 2005 magnus@itkonsult-olsen.com
*/
LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL
STRINGTABLE DISCARDABLE
BEGIN
IDS_Copy, "ReactOS Utilitaire de décompression de fichiers Version 1.0\n\
Copyright Victor Schneider 1997\n\n\
Utilisation : %s FichierEntrée [fichierdesortie]\n"
IDS_FAILS "LZCopy a echoué : code d'erreur retourné : %ld\n"
END

View file

@ -1,17 +0,0 @@
#include "resource.h"
/*
* Moved all hardcoded strings to En.rc.
* By Magnus Olsen 2005 magnus@itkonsult-olsen.com
* Hungarian version is Copyright 2005 - Peter Nagy <nagylakas@gmail.com>
*/
LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT
STRINGTABLE DISCARDABLE
BEGIN
IDS_Copy, "ReactOS Fájlkicsomagoló segédprogram 1.0 verzió\n\
Szerzõi jog: Victor Schneider 1997\n\n\
Használat: %s forrás [cél]\n"
IDS_FAILS "LZCopy sikertelen, visszatérése: %ld\n"
END

View file

@ -1,18 +0,0 @@
/*
* Translated into Indonesian.
* By Zaenal Mutaqin 2007 ade999@gmail.com
*/
#include "resource.h"
LANGUAGE LANG_INDONESIAN, SUBLANG_DEFAULT
STRINGTABLE DISCARDABLE
BEGIN
IDS_Copy, "Utilitas Ekspansi File ReactOS Versi 1.0\n\
Hak Cipta Victor Schneider 1997\n\n\
Pemakaian: %s infile [outfile]\n"
IDS_FAILS "LZCopy gagal: hasilnya adalah %ld\n"
END

View file

@ -1,13 +0,0 @@
#include "resource.h"
LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL
STRINGTABLE DISCARDABLE
BEGIN
IDS_Copy, "Programma per la espansione dei file di ReactOS Versione 1.0\n\
Copyright Victor Schneider 1997\n\n\
Usage: %s infile [outfile]\n"
IDS_FAILS "LZCopy fallito: return è %ld\n"
END

View file

@ -1,16 +0,0 @@
#include "resource.h"
/*
* Moved all hardcoded strings to En.rc.
* By Magnus Olsen 2005 magnus@itkonsult-olsen.com
*/
LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT
STRINGTABLE DISCARDABLE
BEGIN
IDS_Copy, "ReactOS File Expansion Utility Version 1.0\n\
Copyright Victor Schneider 1997\n\n\
使用法: %s 展開元ファイル [展開先ファイル]\n"
IDS_FAILS "LZCopy に失敗しました: 返り値は %ld です。\n"
END

View file

@ -1,14 +0,0 @@
/* Translation by Vytis 'CMan' Girdþijauskas cman@cman.us */
#include "resource.h"
LANGUAGE LANG_LITHUANIAN, SUBLANG_DEFAULT
STRINGTABLE DISCARDABLE
BEGIN
IDS_Copy, "ReactOS bylø iðplëtimo pagalbinë programa. Versija 1.0\n\
(C) Victor Schneider 1997\n\n\
Naudojimas: %s ðaltinio_byla [iðvesties_byla]\n"
IDS_FAILS "LZCopy nepavyko: graþino %ld\n"
END

View file

@ -1,16 +0,0 @@
#include "resource.h"
/*
* Moved all hardcoded strings to En.rc.
* By Magnus Olsen 2005 magnus@itkonsult-olsen.com
*/
LANGUAGE LANG_NORWEGIAN, SUBLANG_NEUTRAL
STRINGTABLE DISCARDABLE
BEGIN
IDS_Copy, "ReactOS Fil ekstrakterings Verktøy Versjon 1.0\n\
Copyright Victor Schneider 1997\n\n\
Bruk: %s innfil [utfil]\n"
IDS_FAILS "LZCopy mislykket: retur ble %ld\n"
END

View file

@ -1,17 +0,0 @@
#include "resource.h"
/*
* translated by xrogers (http://rogers.cyberdusk.pl/)
* xxrogers@users.sourceforge.net
* https://sourceforge.net/projects/reactospl
*/
LANGUAGE LANG_POLISH, SUBLANG_DEFAULT
STRINGTABLE DISCARDABLE
BEGIN
IDS_Copy, "Narzêdzie rozwijania plików ReactOS wersja 1.0\n\
Copyright Victor Schneider 1997\n\n\
Sposób u¿ycia: %s plik_wejœciowy [plik_wyjœciowy]\n"
IDS_FAILS "Nieudane LZCopy: zwrócony wynik %ld\n"
END

View file

@ -1,16 +0,0 @@
#include "resource.h"
/*
* Moved all hardcoded strings to En.rc.
* By Magnus Olsen 2005 magnus@itkonsult-olsen.com
*/
LANGUAGE LANG_PORTUGUESE, SUBLANG_NEUTRAL
STRINGTABLE DISCARDABLE
BEGIN
IDS_Copy, "ReactOS Utilitário para Expandir Arquivos - Versão 1.0\n\
Copyright Victor Schneider 1997\n\n\
Uso: %s origem [destino]\n"
IDS_FAILS "LZCopy falhou: resultado é %ld\n"
END

View file

@ -1,12 +0,0 @@
#include "resource.h"
LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
STRINGTABLE DISCARDABLE
BEGIN
IDS_Copy, "Утилита распаковки файлов ReactOS, версия 1.0\n\
Авторские права (с) Виктор Шнейдер 1997\n\n\
Использование: %s исходный_файл [выходной_файл]\n"
IDS_FAILS "Не удалось выполнить LZCopy, возвращено: %ld\n"
END

View file

@ -1,15 +0,0 @@
#include "resource.h"
/*
* Copyright 2005 David Nordenberg
*/
LANGUAGE LANG_SWEDISH, SUBLANG_NEUTRAL
STRINGTABLE DISCARDABLE
BEGIN
IDS_Copy, "ReactOS verktyg för filextrahering version 1.0\n\
Copyright Victor Schneider 1997\n\n\
Användning: %s källfil [målfil]\n"
IDS_FAILS "LZCopy misslyckades, felkod: %ld\n"
END

View file

@ -1,33 +0,0 @@
/*
* ReactOS File Expansion Utility
*
* Copyright 2006 Sumath Aowsakulsutthi (Thai translation)
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include "resource.h"
LANGUAGE LANG_THAI, SUBLANG_DEFAULT
STRINGTABLE DISCARDABLE
BEGIN
IDS_Copy, "â»Ãá¡ÃÁÍÃö»ÃÐ⪹ìà¾×èÍ»ÃѺáµè§á¿éÁ¢Í§ ReactOS ÃØè¹·Õè 1.0\n\
ʧǹÅÔ¢ÊÔ·¸Ôì Victor Schneider 1997\n\n\
ÊÀÒÇÐãªé§Ò¹: %s á¿éÁÀÒÂã¹ [á¿éÁÀÒ¹͡]\n"
IDS_FAILS "¡ÒäѴÅÍ¡ÅéÁàËÅÇ: Âé͹¡ÅѺà»ç¹ %ld\n"
END

View file

@ -1,19 +0,0 @@
/*
* PROJECT: ReactOS File Expansion Utility
* LICENSE: GPL - See COPYING in the top level directory
* FILE: base/system/expand/lang/uk-UA.rc
* PURPOSE: Ukraianian Language File for Expand
* TRANSLATOR: Artem Reznikov
*/
#include "resource.h"
LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT
STRINGTABLE DISCARDABLE
BEGIN
IDS_Copy, "Ïðîãðàìà ðîçïàêîâêè ôàéë³â ReactOS âåðñ³ÿ 1.0\n\
Copyright Victor Schneider 1997\n\n\
Usage: %s infile [outfile]\n"
IDS_FAILS "Íå âäàëîñÿ âèêîíàòè: return is %ld\n"
END

View file

@ -1,10 +0,0 @@
#ifndef RESOURCE_H__
#define RESOURCE_H__
#define RC_STRING_MAX_SIZE 4096
#define IDS_Copy 100
#define IDS_FAILS 101
#endif
/* EOF */

View file

@ -1,24 +0,0 @@
#include <windows.h>
#include "resource.h"
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
#include "lang/bg-BG.rc"
#include "lang/cs-CZ.rc"
#include "lang/de-DE.rc"
#include "lang/el-GR.rc"
#include "lang/en-US.rc"
#include "lang/es-ES.rc"
#include "lang/fr-FR.rc"
#include "lang/hu-HU.rc"
#include "lang/id-ID.rc"
#include "lang/it-IT.rc"
#include "lang/ja-JP.rc"
#include "lang/lt-LT.rc"
#include "lang/no-NO.rc"
#include "lang/pl-PL.rc"
#include "lang/pt-BR.rc"
#include "lang/ru-RU.rc"
#include "lang/sv-SE.rc"
#include "lang/th-TH.rc"
#include "lang/uk-UA.rc"