mirror of
https://github.com/reactos/reactos.git
synced 2024-10-03 07:53:49 +00:00
[COMP]
- Localize comp.exe. Patch + romanian translation by Stefan Fulea. - French translation by Hermès Bélusca. CORE-11060 svn path=/trunk/; revision=71600
This commit is contained in:
parent
a014055837
commit
732c3f3d40
|
@ -1,5 +1,5 @@
|
|||
|
||||
add_executable(comp comp.c comp.rc)
|
||||
set_module_type(comp win32cui)
|
||||
add_importlibs(comp msvcrt kernel32)
|
||||
set_module_type(comp win32cui UNICODE)
|
||||
add_importlibs(comp user32 msvcrt kernel32)
|
||||
add_cd_file(TARGET comp DESTINATION reactos/system32 FOR all)
|
||||
|
|
|
@ -31,8 +31,29 @@
|
|||
#include <string.h>
|
||||
#include <assert.h>
|
||||
|
||||
#include "resource.h"
|
||||
|
||||
#define STRBUF 1024
|
||||
|
||||
VOID ResPrint(INT res_no, ...)
|
||||
{
|
||||
TCHAR * res_string;
|
||||
va_list vargs;
|
||||
|
||||
va_start(vargs, res_no);
|
||||
|
||||
if (LoadString(GetModuleHandle(NULL), res_no, (TCHAR*)&res_string, 0))
|
||||
{
|
||||
_vtprintf(res_string, vargs);
|
||||
}
|
||||
else
|
||||
{
|
||||
_tprintf(_T("Resource loading error!"));
|
||||
}
|
||||
|
||||
va_end(vargs);
|
||||
}
|
||||
|
||||
/* getline: read a line, return length */
|
||||
INT GetBuff(PBYTE buff, FILE *in)
|
||||
{
|
||||
|
@ -53,12 +74,7 @@ INT FileSize(FILE * fd)
|
|||
/* Print program usage */
|
||||
VOID Usage(VOID)
|
||||
{
|
||||
_tprintf(_T("\nCompares the contents of two files or sets of files.\n\n"
|
||||
"COMP [/L] [/A] [data1] [data2]\n\n"
|
||||
" data1 Specifies location and name of first file to compare.\n"
|
||||
" data2 Specifies location and name of second file to compare.\n"
|
||||
" /A Display differences in ASCII characters.\n"
|
||||
" /L Display line numbers for differences.\n"));
|
||||
ResPrint(IDS_HELP);
|
||||
}
|
||||
|
||||
|
||||
|
@ -88,26 +104,26 @@ int _tmain (int argc, TCHAR *argv[])
|
|||
/* Parse command line for options */
|
||||
for (i = 1; i < argc; i++)
|
||||
{
|
||||
if (argv[i][0] == '/')
|
||||
if (argv[i][0] == _T('/'))
|
||||
{
|
||||
switch (argv[i][1])
|
||||
{
|
||||
case 'A':
|
||||
case _T('A'):
|
||||
bAscii = TRUE;
|
||||
NumberOfOptions++;
|
||||
break;
|
||||
|
||||
case 'L':
|
||||
case _T('L'):
|
||||
bLineNos = TRUE;
|
||||
NumberOfOptions++;
|
||||
break;
|
||||
|
||||
case '?':
|
||||
case _T('?'):
|
||||
Usage();
|
||||
return EXIT_SUCCESS;
|
||||
|
||||
default:
|
||||
_tprintf(_T("Invalid switch - /%c\n"), argv[i][1]);
|
||||
ResPrint(IDS_INVALIDSWITCH, argv[i][1]);
|
||||
Usage();
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
@ -121,7 +137,7 @@ int _tmain (int argc, TCHAR *argv[])
|
|||
}
|
||||
else
|
||||
{
|
||||
_tprintf(_T("Bad command line syntax\n"));
|
||||
ResPrint(IDS_BADSYNTAX);
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
|
@ -141,26 +157,26 @@ int _tmain (int argc, TCHAR *argv[])
|
|||
goto Cleanup;
|
||||
}
|
||||
|
||||
if ((fp1 = fopen(File1, "rb")) == NULL)
|
||||
if ((fp1 = _tfopen(File1, _T("rb"))) == NULL)
|
||||
{
|
||||
_tprintf(_T("Can't find/open file: %s\n"), File1);
|
||||
ResPrint(IDS_FILEERROR, File1);
|
||||
Status = EXIT_FAILURE;
|
||||
goto Cleanup;
|
||||
}
|
||||
if ((fp2 = fopen(File2, "rb")) == NULL)
|
||||
if ((fp2 = _tfopen(File2, _T("rb"))) == NULL)
|
||||
{
|
||||
_tprintf(_T("Can't find/open file: %s\n"), File2);
|
||||
ResPrint(IDS_FILEERROR, File2);
|
||||
Status = EXIT_FAILURE;
|
||||
goto Cleanup;
|
||||
}
|
||||
|
||||
|
||||
_tprintf(_T("Comparing %s and %s...\n"), File1, File2);
|
||||
ResPrint(IDS_COMPARING, File1, File2);
|
||||
|
||||
FileSizeFile1 = FileSize(fp1);
|
||||
if (FileSizeFile1 == -1)
|
||||
{
|
||||
_tprintf(_T("Can't determine size of file: %s\n"), File1);
|
||||
ResPrint(IDS_FILESIZEERROR, File1);
|
||||
Status = EXIT_FAILURE;
|
||||
goto Cleanup;
|
||||
}
|
||||
|
@ -168,14 +184,14 @@ int _tmain (int argc, TCHAR *argv[])
|
|||
FileSizeFile2 = FileSize(fp2);
|
||||
if (FileSizeFile2 == -1)
|
||||
{
|
||||
_tprintf(_T("Can't determine size of file: %s\n"), File2);
|
||||
ResPrint(IDS_FILESIZEERROR, File2);
|
||||
Status = EXIT_FAILURE;
|
||||
goto Cleanup;
|
||||
}
|
||||
|
||||
if (FileSizeFile1 != FileSizeFile2)
|
||||
{
|
||||
_tprintf(_T("Files are different sizes.\n"));
|
||||
ResPrint(IDS_SIZEDIFFERS);
|
||||
Status = EXIT_FAILURE;
|
||||
goto Cleanup;
|
||||
}
|
||||
|
@ -189,7 +205,7 @@ int _tmain (int argc, TCHAR *argv[])
|
|||
|
||||
if (ferror(fp1) || ferror(fp2))
|
||||
{
|
||||
_tprintf(_T("Files read error.\n"));
|
||||
ResPrint(IDS_READERROR);
|
||||
Status = EXIT_FAILURE;
|
||||
goto Cleanup;
|
||||
}
|
||||
|
@ -207,22 +223,22 @@ int _tmain (int argc, TCHAR *argv[])
|
|||
/* Reporting here a mismatch */
|
||||
if (bLineNos)
|
||||
{
|
||||
_tprintf(_T("Compare error at LINE %d\n"), LineNumber);
|
||||
ResPrint(IDS_MISMATCHLINE, LineNumber);
|
||||
}
|
||||
else
|
||||
{
|
||||
_tprintf(_T("Compare error at OFFSET %d\n"), Offset);
|
||||
ResPrint(IDS_MISMATCHOFFSET, Offset);
|
||||
}
|
||||
|
||||
if (bAscii)
|
||||
{
|
||||
_tprintf(_T("file1 = %c\n"), Buff1[i]);
|
||||
_tprintf(_T("file2 = %c\n"), Buff2[i]);
|
||||
ResPrint(IDS_ASCIIDIFF, 1, Buff1[i]);
|
||||
ResPrint(IDS_ASCIIDIFF, 2, Buff2[i]);
|
||||
}
|
||||
else
|
||||
{
|
||||
_tprintf(_T("file1 = %X\n"), Buff1[i]);
|
||||
_tprintf(_T("file2 = %X\n"), Buff2[i]);
|
||||
ResPrint(IDS_HEXADECIMALDIFF, 1, Buff1[i]);
|
||||
ResPrint(IDS_HEXADECIMALDIFF, 2, Buff2[i]);
|
||||
}
|
||||
|
||||
Offset++;
|
||||
|
@ -234,7 +250,7 @@ int _tmain (int argc, TCHAR *argv[])
|
|||
}
|
||||
|
||||
if (FilesOK)
|
||||
_tprintf(_T("Files compare OK\n"));
|
||||
ResPrint(IDS_MATCH);
|
||||
|
||||
Cleanup:
|
||||
if (fp2)
|
||||
|
|
|
@ -1,5 +1,23 @@
|
|||
#include <windef.h>
|
||||
|
||||
#include "resource.h"
|
||||
|
||||
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
|
||||
|
||||
#define REACTOS_STR_FILE_DESCRIPTION "File Compare Utility"
|
||||
#define REACTOS_STR_INTERNAL_NAME "comp"
|
||||
#define REACTOS_STR_ORIGINAL_FILENAME "comp.exe"
|
||||
#include <reactos/version.rc>
|
||||
|
||||
/* UTF-8 */
|
||||
#pragma code_page(65001)
|
||||
|
||||
#ifdef LANGUAGE_EN_US
|
||||
#include "lang/en-US.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_FR_FR
|
||||
#include "lang/fr-FR.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_RO_RO
|
||||
#include "lang/ro-RO.rc"
|
||||
#endif
|
||||
|
|
23
reactos/base/applications/cmdutils/comp/lang/en-US.rc
Normal file
23
reactos/base/applications/cmdutils/comp/lang/en-US.rc
Normal file
|
@ -0,0 +1,23 @@
|
|||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_HELP "Compares the contents of two files or sets of files.\n\n\
|
||||
COMP [/L] [/A] [data1] [data2]\n\n\
|
||||
data1 Specifies location and name of first file to compare.\n\
|
||||
data2 Specifies location and name of second file to compare.\n\
|
||||
/A Display differences in ASCII characters (default: hexadecimal).\n\
|
||||
/L Display line numbers for differences.\n"
|
||||
IDS_INVALIDSWITCH "Invalid switch - /%c\n"
|
||||
IDS_BADSYNTAX "Bad command line syntax\n"
|
||||
IDS_FILEERROR "Cannot find/open file: %s\n"
|
||||
IDS_COMPARING "Comparing %s and %s...\n"
|
||||
IDS_FILESIZEERROR "Cannot determine size of file: %s\n"
|
||||
IDS_SIZEDIFFERS "Files are different sizes.\n"
|
||||
IDS_READERROR "Files read error.\n"
|
||||
IDS_MISMATCHLINE "Compare error at LINE %d\n"
|
||||
IDS_MISMATCHOFFSET "Compare error at OFFSET 0x%X\n"
|
||||
IDS_ASCIIDIFF "file%d = %c\n"
|
||||
IDS_HEXADECIMALDIFF "file%d = %X\n"
|
||||
IDS_MATCH "Files compare OK\n"
|
||||
END
|
23
reactos/base/applications/cmdutils/comp/lang/fr-FR.rc
Normal file
23
reactos/base/applications/cmdutils/comp/lang/fr-FR.rc
Normal file
|
@ -0,0 +1,23 @@
|
|||
LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_HELP "Compare le contenu de deux fichiers ou ensembles de fichiers.\n\n\
|
||||
COMP [/L] [/A] [data1] [data2]\n\n\
|
||||
data1 Spécifie l'emplacement et le nom du premier fichier à comparer.\n\
|
||||
data2 Spécifie l'emplacement et le nom du second fichier à comparer.\n\
|
||||
/A Affiche les différences en caractères ASCII (défaut: hexadécimal).\n\
|
||||
/L Affiche les numéros de ligne des différences.\n"
|
||||
IDS_INVALIDSWITCH "Paramètre invalide - /%c\n"
|
||||
IDS_BADSYNTAX "Syntaxe incorrecte\n"
|
||||
IDS_FILEERROR "Impossible de trouver/ouvrir le fichier : %s\n"
|
||||
IDS_COMPARING "Comparaison de %s et %s...\n"
|
||||
IDS_FILESIZEERROR "Ne peut pas déterminer la taille du fichier : %s\n"
|
||||
IDS_SIZEDIFFERS "Les fichiers sont de taille différente.\n"
|
||||
IDS_READERROR "Erreur lors de la lecture des fichiers.\n"
|
||||
IDS_MISMATCHLINE "Erreur de comparaison à LIGNE %d\n"
|
||||
IDS_MISMATCHOFFSET "Erreur de comparaison à OFFSET 0x%X\n"
|
||||
IDS_ASCIIDIFF "fichier%d = %c\n"
|
||||
IDS_HEXADECIMALDIFF "fichier%d = %X\n"
|
||||
IDS_MATCH "Comparaison des fichiers OK\n"
|
||||
END
|
24
reactos/base/applications/cmdutils/comp/lang/ro-RO.rc
Normal file
24
reactos/base/applications/cmdutils/comp/lang/ro-RO.rc
Normal file
|
@ -0,0 +1,24 @@
|
|||
/* Ștefan Fulea (stefan dot fulea at mail dot md) */
|
||||
LANGUAGE LANG_ROMANIAN, SUBLANG_DEFAULT
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_HELP "Compară conținuturile a două fișiere sau grupuri de fișiere.\n\n\
|
||||
COMP [/L] [/A] [data1] [data2]\n\n\
|
||||
data1 Calea și numele primului fișier de comparat.\n\
|
||||
data2 Calea și numele celui de-al doilea fișier de comparat.\n\
|
||||
/A Afișează diferențele în caractere ASCII (default: hexadecimal).\n\
|
||||
/L Afișează numărul liniei pentru diferențe.\n"
|
||||
IDS_INVALIDSWITCH "Parametru nevalid - /%c\n"
|
||||
IDS_BADSYNTAX "Sintaxă eronată\n"
|
||||
IDS_FILEERROR "Nu se poate găsi/deschide fișierul: %s\n"
|
||||
IDS_COMPARING "Se compară %s și %s...\n"
|
||||
IDS_FILESIZEERROR "Nu se poate determina dimensiunea fișierului: %s\n"
|
||||
IDS_SIZEDIFFERS "Fișierele au dimensiuni diferite.\n"
|
||||
IDS_READERROR "Eroare la citirea fișierelor.\n"
|
||||
IDS_MISMATCHLINE "Diferență identificată la linia %d\n"
|
||||
IDS_MISMATCHOFFSET "Diferență identificată la poziția 0x%X\n"
|
||||
IDS_ASCIIDIFF "fișier%d = %c\n"
|
||||
IDS_HEXADECIMALDIFF "fișier%d = %X\n"
|
||||
IDS_MATCH "Fișierele sunt identice\n"
|
||||
END
|
15
reactos/base/applications/cmdutils/comp/resource.h
Normal file
15
reactos/base/applications/cmdutils/comp/resource.h
Normal file
|
@ -0,0 +1,15 @@
|
|||
#pragma once
|
||||
|
||||
#define IDS_HELP 100
|
||||
#define IDS_INVALIDSWITCH 101
|
||||
#define IDS_BADSYNTAX 102
|
||||
#define IDS_FILEERROR 103
|
||||
#define IDS_COMPARING 104
|
||||
#define IDS_FILESIZEERROR 105
|
||||
#define IDS_SIZEDIFFERS 106
|
||||
#define IDS_READERROR 107
|
||||
#define IDS_MISMATCHLINE 108
|
||||
#define IDS_MISMATCHOFFSET 109
|
||||
#define IDS_ASCIIDIFF 110
|
||||
#define IDS_HEXADECIMALDIFF 111
|
||||
#define IDS_MATCH 112
|
Loading…
Reference in a new issue