mirror of
https://github.com/reactos/reactos.git
synced 2025-05-25 20:18:22 +00:00
Sync xcopy, iexplore, winhlp32, wordpad and write to wine 1.3.10
svn path=/trunk/; revision=50150
This commit is contained in:
parent
07bf61809e
commit
8354381c8b
15 changed files with 550 additions and 205 deletions
|
@ -34,7 +34,7 @@ STRINGTABLE
|
|||
STRING_SIMCOPY, "%d file saranno copiati\n"
|
||||
STRING_COPY, "%d file copiato/i\n"
|
||||
STRING_QISDIR, "'%s' è il nome di un file o una cartella\n\
|
||||
nell'obiettivo?\n\
|
||||
nella destinazione?\n\
|
||||
(F - File, C - Cartella)\n"
|
||||
STRING_SRCPROMPT,"%s? (Sì|No)\n"
|
||||
STRING_OVERWRITE,"Sovrascrivere %s? (Sì|No|Tutti)\n"
|
||||
|
|
|
@ -56,7 +56,7 @@ XCOPY 원본 [대상] [/I] [/S] [/Q] [/F] [/L] [/W] [/T] [/N] [/U]\n\
|
|||
\n\
|
||||
Where:\n\
|
||||
\n\
|
||||
[/I] 만약 대상이 존재하지 않는 경우 디렉토리로 가정하고 두개나 더 많은 파일을 \n\
|
||||
[/I] 만약 대상이 존재하지 않는 경우 디렉토리로 가정하고 두개나 더 많은 파일을\n\
|
||||
\t복사\n\
|
||||
[/S] 디렉토리하고 하위 디렉토리 복사\n\
|
||||
[/E] 빈 디렉토리를 포함해서 디렉토리와 하위 디렉토리 복사\n\
|
||||
|
|
141
reactos/base/applications/cmdutils/xcopy/Sr.rc
Normal file
141
reactos/base/applications/cmdutils/xcopy/Sr.rc
Normal file
|
@ -0,0 +1,141 @@
|
|||
/*
|
||||
* XCOPY - Wine-compatible xcopy program
|
||||
* Serbian language support
|
||||
*
|
||||
* Copyright (C) 2007 J. Edmeades
|
||||
* Copyright 2010 Đorđe Vasiljević
|
||||
*
|
||||
* 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 St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#include "xcopy.h"
|
||||
|
||||
#pragma code_page(65001)
|
||||
|
||||
LANGUAGE LANG_SERBIAN, SUBLANG_SERBIAN_CYRILLIC
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
STRING_INVPARMS, "Неисправан број параметара. Користите xcopy /? за помоћ\n"
|
||||
STRING_INVPARM, "Неисправан параметар „%s“. Користите xcopy /? за помоћ\n"
|
||||
STRING_PAUSE, "Притисните <enter> да започнете умножавање\n"
|
||||
STRING_SIMCOPY, "%d датотека/е ће бити уможено\n"
|
||||
STRING_COPY, "%d датотека/е је умножено\n"
|
||||
STRING_QISDIR, "Да ли је „%s“ назив датотеке или фасцикла\n\
|
||||
на одредишту?\n\
|
||||
(Д - датотека, Ф - фасцикла)\n"
|
||||
STRING_SRCPROMPT,"%s? (Да|Не)\n"
|
||||
STRING_OVERWRITE,"Заменити %s? (Да|Не|Све)\n"
|
||||
STRING_COPYFAIL, "Умножавање „%s“ у „%s“ није успело са r/c %d\n"
|
||||
STRING_OPENFAIL, "Отварање „%s“ датотеке није успело\n"
|
||||
STRING_READFAIL, "Читање „%s“ датотеке није успело\n"
|
||||
STRING_YES_CHAR, "Д"
|
||||
STRING_NO_CHAR, "Н"
|
||||
STRING_ALL_CHAR, "С"
|
||||
STRING_FILE_CHAR,"Д"
|
||||
STRING_DIR_CHAR, "Ф"
|
||||
|
||||
STRING_HELP,
|
||||
"XCOPY — умножава изворне датотеке или гране фасцикли у одредиште\n\
|
||||
\n\
|
||||
Синтакса:\n\
|
||||
XCOPY извор [dest] [/I] [/S] [/Q] [/F] [/L] [/W] [/T] [/N] [/U]\n\
|
||||
\t [/R] [/H] [/C] [/P] [/A] [/M] [/E] [/D] [/Y] [/-Y]\n\
|
||||
\n\
|
||||
Где:\n\
|
||||
\n\
|
||||
[/I] Претпостави фасциклу када одредиште не постоји и када се умножавају две или\n\
|
||||
\tвише датотека\n\
|
||||
[/S] Умножи фасцикле и потфасцикле\n\
|
||||
[/E] Умножи фасцикле и потфасцикле заједно с празним\n\
|
||||
[/Q] Не приказуј називе током умножавања.\n\
|
||||
[/F] Прикажи цео извор и одредиште током умножавања\n\
|
||||
[/L] Опонашај радњу приказујући називе који ће бити умножени\n\
|
||||
[/W] Питај пре почињања умножавања\n\
|
||||
[/T] Прави празну структуру фасцикле, али не умножава датотеке\n\
|
||||
[/Y] Потисни упит при замењивању датотека\n\
|
||||
[/-Y] Омогући упит при замењивању датотека\n\
|
||||
[/P] Питај за сваку изворну датотеку пре умножавања\n\
|
||||
[/N] Умножи користећи кратке називе\n\
|
||||
[/U] Умножи само оне датотеке које постоје у одредишту\n\
|
||||
[/R] Замени све датотеке које се само читају\n\
|
||||
[/H] Укључи сакривене и системске датотеке у умножавање\n\
|
||||
[/C] Настави иако дође до грешке у умножавању\n\
|
||||
[/A] Умножи само архивиране датотеке\n\
|
||||
[/M] Умножи само архивиране датотеке и уклони\n\
|
||||
\tособине архиве\n\
|
||||
[/D | /D:m-d-y] Умножи нове или измењене датотеке након одређеног датума.\n\
|
||||
\t\tАко датум није унесен, умножи само ако је одредиште старије\n\
|
||||
\t\tод извора\n\n"
|
||||
|
||||
}
|
||||
|
||||
LANGUAGE LANG_SERBIAN, SUBLANG_SERBIAN_LATIN
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
STRING_INVPARMS, "Neispravan broj parametara. Koristite xcopy /? za pomoć\n"
|
||||
STRING_INVPARM, "Neispravan parametar „%s“. Koristite xcopy /? za pomoć\n"
|
||||
STRING_PAUSE, "Pritisnite <enter> da započnete umnožavanje\n"
|
||||
STRING_SIMCOPY, "%d datoteka/e će biti umoženo\n"
|
||||
STRING_COPY, "%d datoteka/e je umnoženo\n"
|
||||
STRING_QISDIR, "Da li je „%s“ naziv datoteke ili fascikla\n\
|
||||
na odredištu?\n\
|
||||
(D - datoteka, F - fascikla)\n"
|
||||
STRING_SRCPROMPT,"%s? (Da|Ne)\n"
|
||||
STRING_OVERWRITE,"Zameniti %s? (Da|Ne|Sve)\n"
|
||||
STRING_COPYFAIL, "Umnožavanje „%s“ u „%s“ nije uspelo sa r/c %d\n"
|
||||
STRING_OPENFAIL, "Otvaranje „%s“ datoteke nije uspelo\n"
|
||||
STRING_READFAIL, "Čitanje „%s“ datoteke nije uspelo\n"
|
||||
STRING_YES_CHAR, "D"
|
||||
STRING_NO_CHAR, "N"
|
||||
STRING_ALL_CHAR, "S"
|
||||
STRING_FILE_CHAR,"D"
|
||||
STRING_DIR_CHAR, "F"
|
||||
|
||||
STRING_HELP,
|
||||
"XCOPY — umnožava izvorne datoteke ili grane fascikli u odredište\n\
|
||||
\n\
|
||||
Sintaksa:\n\
|
||||
XCOPY izvor [dest] [/I] [/S] [/Q] [/F] [/L] [/W] [/T] [/N] [/U]\n\
|
||||
\t [/R] [/H] [/C] [/P] [/A] [/M] [/E] [/D] [/Y] [/-Y]\n\
|
||||
\n\
|
||||
Gde:\n\
|
||||
\n\
|
||||
[/I] Pretpostavi fasciklu kada odredište ne postoji i kada se umnožavaju dve ili\n\
|
||||
\tviše datoteka\n\
|
||||
[/S] Umnoži fascikle i potfascikle\n\
|
||||
[/E] Umnoži fascikle i potfascikle zajedno s praznim\n\
|
||||
[/Q] Ne prikazuj nazive tokom umnožavanja.\n\
|
||||
[/F] Prikaži ceo izvor i odredište tokom umnožavanja\n\
|
||||
[/L] Oponašaj radnju prikazujući nazive koji će biti umnoženi\n\
|
||||
[/W] Pitaj pre počinjanja umnožavanja\n\
|
||||
[/T] Pravi praznu strukturu fascikle, ali ne umnožava datoteke\n\
|
||||
[/Y] Potisni upit pri zamenjivanju datoteka\n\
|
||||
[/-Y] Omogući upit pri zamenjivanju datoteka\n\
|
||||
[/P] Pitaj za svaku izvornu datoteku pre umnožavanja\n\
|
||||
[/N] Umnoži koristeći kratke nazive\n\
|
||||
[/U] Umnoži samo one datoteke koje postoje u odredištu\n\
|
||||
[/R] Zameni sve datoteke koje se samo čitaju\n\
|
||||
[/H] Uključi sakrivene i sistemske datoteke u umnožavanje\n\
|
||||
[/C] Nastavi iako dođe do greške u umnožavanju\n\
|
||||
[/A] Umnoži samo arhivirane datoteke\n\
|
||||
[/M] Umnoži samo arhivirane datoteke i ukloni\n\
|
||||
\tosobine arhive\n\
|
||||
[/D | /D:m-d-y] Umnoži nove ili izmenjene datoteke nakon određenog datuma.\n\
|
||||
\t\tAko datum nije unesen, umnoži samo ako je odredište starije\n\
|
||||
\t\tod izvora\n\n"
|
||||
|
||||
}
|
|
@ -43,5 +43,6 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
|
|||
#include "Ro.rc"
|
||||
#include "Ru.rc"
|
||||
#include "Si.rc"
|
||||
#include "Sr.rc"
|
||||
#include "Sv.rc"
|
||||
#include "Uk.rc"
|
||||
|
|
|
@ -49,6 +49,8 @@
|
|||
WINE_DEFAULT_DEBUG_CHANNEL(xcopy);
|
||||
|
||||
/* Prototypes */
|
||||
static int XCOPY_ParseCommandLine(WCHAR *suppliedsource,
|
||||
WCHAR *supplieddestination, DWORD *flags);
|
||||
static int XCOPY_ProcessSourceParm(WCHAR *suppliedsource, WCHAR *stem,
|
||||
WCHAR *spec, DWORD flags);
|
||||
static int XCOPY_ProcessDestParm(WCHAR *supplieddestination, WCHAR *stem,
|
||||
|
@ -108,17 +110,6 @@ int wmain (int argc, WCHAR *argvW[])
|
|||
const WCHAR PROMPTSTR1[] = {'/', 'Y', 0};
|
||||
const WCHAR PROMPTSTR2[] = {'/', 'y', 0};
|
||||
const WCHAR COPYCMD[] = {'C', 'O', 'P', 'Y', 'C', 'M', 'D', 0};
|
||||
const WCHAR EXCLUDE[] = {'E', 'X', 'C', 'L', 'U', 'D', 'E', ':', 0};
|
||||
|
||||
/*
|
||||
* Parse the command line
|
||||
*/
|
||||
|
||||
/* Confirm at least one parameter */
|
||||
if (argc < 2) {
|
||||
XCOPY_wprintf(XCOPY_LoadMessage(STRING_INVPARMS));
|
||||
return RC_INITERROR;
|
||||
}
|
||||
|
||||
/* Preinitialize flags based on COPYCMD */
|
||||
if (GetEnvironmentVariableW(COPYCMD, copyCmd, MAXSTRING)) {
|
||||
|
@ -135,126 +126,17 @@ int wmain (int argc, WCHAR *argvW[])
|
|||
lose */
|
||||
flags |= OPT_COPYHIDSYS;
|
||||
|
||||
/* Skip first arg, which is the program name */
|
||||
argvW++;
|
||||
|
||||
while (argc > 1)
|
||||
{
|
||||
argc--;
|
||||
WINE_TRACE("Processing Arg: '%s'\n", wine_dbgstr_w(*argvW));
|
||||
|
||||
/* First non-switch parameter is source, second is destination */
|
||||
if (*argvW[0] != '/') {
|
||||
if (suppliedsource[0] == 0x00) {
|
||||
lstrcpyW(suppliedsource, *argvW);
|
||||
} else if (supplieddestination[0] == 0x00) {
|
||||
lstrcpyW(supplieddestination, *argvW);
|
||||
} else {
|
||||
XCOPY_wprintf(XCOPY_LoadMessage(STRING_INVPARMS));
|
||||
return RC_INITERROR;
|
||||
}
|
||||
} else {
|
||||
/* Process all the switch options
|
||||
Note: Windows docs say /P prompts when dest is created
|
||||
but tests show it is done for each src file
|
||||
regardless of the destination */
|
||||
switch (toupper(argvW[0][1])) {
|
||||
case 'I': flags |= OPT_ASSUMEDIR; break;
|
||||
case 'S': flags |= OPT_RECURSIVE; break;
|
||||
case 'Q': flags |= OPT_QUIET; break;
|
||||
case 'F': flags |= OPT_FULL; break;
|
||||
case 'L': flags |= OPT_SIMULATE; break;
|
||||
case 'W': flags |= OPT_PAUSE; break;
|
||||
case 'T': flags |= OPT_NOCOPY | OPT_RECURSIVE; break;
|
||||
case 'Y': flags |= OPT_NOPROMPT; break;
|
||||
case 'N': flags |= OPT_SHORTNAME; break;
|
||||
case 'U': flags |= OPT_MUSTEXIST; break;
|
||||
case 'R': flags |= OPT_REPLACEREAD; break;
|
||||
case 'H': flags |= OPT_COPYHIDSYS; break;
|
||||
case 'C': flags |= OPT_IGNOREERRORS; break;
|
||||
case 'P': flags |= OPT_SRCPROMPT; break;
|
||||
case 'A': flags |= OPT_ARCHIVEONLY; break;
|
||||
case 'M': flags |= OPT_ARCHIVEONLY |
|
||||
OPT_REMOVEARCH; break;
|
||||
|
||||
/* E can be /E or /EXCLUDE */
|
||||
case 'E': if (CompareStringW(LOCALE_USER_DEFAULT,
|
||||
NORM_IGNORECASE | SORT_STRINGSORT,
|
||||
&argvW[0][1], 8,
|
||||
EXCLUDE, -1) == 2) {
|
||||
if (XCOPY_ProcessExcludeList(&argvW[0][9])) {
|
||||
XCOPY_FailMessage(ERROR_INVALID_PARAMETER);
|
||||
return RC_INITERROR;
|
||||
} else flags |= OPT_EXCLUDELIST;
|
||||
} else flags |= OPT_EMPTYDIR | OPT_RECURSIVE;
|
||||
break;
|
||||
|
||||
/* D can be /D or /D: */
|
||||
case 'D': if ((argvW[0][2])==':' && isdigit(argvW[0][3])) {
|
||||
SYSTEMTIME st;
|
||||
WCHAR *pos = &argvW[0][3];
|
||||
BOOL isError = FALSE;
|
||||
memset(&st, 0x00, sizeof(st));
|
||||
|
||||
/* Parse the arg : Month */
|
||||
st.wMonth = _wtol(pos);
|
||||
while (*pos && isdigit(*pos)) pos++;
|
||||
if (*pos++ != '-') isError = TRUE;
|
||||
|
||||
/* Parse the arg : Day */
|
||||
if (!isError) {
|
||||
st.wDay = _wtol(pos);
|
||||
while (*pos && isdigit(*pos)) pos++;
|
||||
if (*pos++ != '-') isError = TRUE;
|
||||
}
|
||||
|
||||
/* Parse the arg : Day */
|
||||
if (!isError) {
|
||||
st.wYear = _wtol(pos);
|
||||
if (st.wYear < 100) st.wYear+=2000;
|
||||
}
|
||||
|
||||
if (!isError && SystemTimeToFileTime(&st, &dateRange)) {
|
||||
SYSTEMTIME st;
|
||||
WCHAR datestring[32], timestring[32];
|
||||
|
||||
flags |= OPT_DATERANGE;
|
||||
|
||||
/* Debug info: */
|
||||
FileTimeToSystemTime (&dateRange, &st);
|
||||
GetDateFormatW(0, DATE_SHORTDATE, &st, NULL, datestring,
|
||||
sizeof(datestring)/sizeof(WCHAR));
|
||||
GetTimeFormatW(0, TIME_NOSECONDS, &st,
|
||||
NULL, timestring, sizeof(timestring)/sizeof(WCHAR));
|
||||
|
||||
WINE_TRACE("Date being used is: %s %s\n",
|
||||
wine_dbgstr_w(datestring), wine_dbgstr_w(timestring));
|
||||
} else {
|
||||
XCOPY_FailMessage(ERROR_INVALID_PARAMETER);
|
||||
return RC_INITERROR;
|
||||
}
|
||||
} else {
|
||||
flags |= OPT_DATENEWER;
|
||||
}
|
||||
break;
|
||||
|
||||
case '-': if (toupper(argvW[0][2])=='Y')
|
||||
flags &= ~OPT_NOPROMPT; break;
|
||||
case '?': XCOPY_wprintf(XCOPY_LoadMessage(STRING_HELP));
|
||||
return RC_OK;
|
||||
default:
|
||||
WINE_TRACE("Unhandled parameter '%s'\n", wine_dbgstr_w(*argvW));
|
||||
XCOPY_wprintf(XCOPY_LoadMessage(STRING_INVPARM), *argvW);
|
||||
return RC_INITERROR;
|
||||
}
|
||||
}
|
||||
argvW++;
|
||||
/*
|
||||
* Parse the command line
|
||||
*/
|
||||
if ((rc = XCOPY_ParseCommandLine(suppliedsource, supplieddestination,
|
||||
&flags)) != RC_OK) {
|
||||
if (rc == RC_HELP)
|
||||
return RC_OK;
|
||||
else
|
||||
return rc;
|
||||
}
|
||||
|
||||
/* Default the destination if not supplied */
|
||||
if (supplieddestination[0] == 0x00)
|
||||
lstrcpyW(supplieddestination, wchr_dot);
|
||||
|
||||
/* Trace out the supplied information */
|
||||
WINE_TRACE("Supplied parameters:\n");
|
||||
WINE_TRACE("Source : '%s'\n", wine_dbgstr_w(suppliedsource));
|
||||
|
@ -310,6 +192,211 @@ int wmain (int argc, WCHAR *argvW[])
|
|||
|
||||
}
|
||||
|
||||
/* =========================================================================
|
||||
XCOPY_ParseCommandLine - Parses the command line
|
||||
========================================================================= */
|
||||
static BOOL is_whitespace(WCHAR c)
|
||||
{
|
||||
return c == ' ' || c == '\t';
|
||||
}
|
||||
|
||||
static WCHAR *skip_whitespace(WCHAR *p)
|
||||
{
|
||||
for (; *p && is_whitespace(*p); p++);
|
||||
return p;
|
||||
}
|
||||
|
||||
/* Windows XCOPY uses a simplified command line parsing algorithm
|
||||
that lacks the escaped-quote logic of build_argv(), because
|
||||
literal double quotes are illegal in any of its arguments.
|
||||
Example: 'XCOPY "c:\DIR A" "c:DIR B\"' is OK. */
|
||||
static int find_end_of_word(const WCHAR *word, WCHAR **end)
|
||||
{
|
||||
BOOL in_quotes = 0;
|
||||
const WCHAR *ptr = word;
|
||||
for (;;) {
|
||||
for (; *ptr != '\0' && *ptr != '"' &&
|
||||
(in_quotes || !is_whitespace(*ptr)); ptr++);
|
||||
if (*ptr == '"') {
|
||||
in_quotes = !in_quotes;
|
||||
ptr++;
|
||||
}
|
||||
/* Odd number of double quotes is illegal for XCOPY */
|
||||
if (in_quotes && *ptr == '\0')
|
||||
return RC_INITERROR;
|
||||
if (*ptr == '\0' || (!in_quotes && is_whitespace(*ptr)))
|
||||
break;
|
||||
}
|
||||
*end = (WCHAR*)ptr;
|
||||
return RC_OK;
|
||||
}
|
||||
|
||||
/* Remove all double quotes from a word */
|
||||
static void strip_quotes(WCHAR *word, WCHAR **end)
|
||||
{
|
||||
WCHAR *rp, *wp;
|
||||
for (rp = word, wp = word; *rp != '\0'; rp++) {
|
||||
if (*rp == '"')
|
||||
continue;
|
||||
if (wp < rp)
|
||||
*wp = *rp;
|
||||
wp++;
|
||||
}
|
||||
*wp = '\0';
|
||||
*end = wp;
|
||||
}
|
||||
|
||||
static int XCOPY_ParseCommandLine(WCHAR *suppliedsource,
|
||||
WCHAR *supplieddestination, DWORD *pflags)
|
||||
{
|
||||
const WCHAR EXCLUDE[] = {'E', 'X', 'C', 'L', 'U', 'D', 'E', ':', 0};
|
||||
DWORD flags = *pflags;
|
||||
WCHAR *cmdline, *word, *end, *next;
|
||||
int rc = RC_INITERROR;
|
||||
|
||||
cmdline = _wcsdup(GetCommandLineW());
|
||||
if (cmdline == NULL)
|
||||
return rc;
|
||||
|
||||
/* Skip first arg, which is the program name */
|
||||
if ((rc = find_end_of_word(cmdline, &word)) != RC_OK)
|
||||
goto out;
|
||||
word = skip_whitespace(word);
|
||||
|
||||
while (*word)
|
||||
{
|
||||
WCHAR first;
|
||||
if ((rc = find_end_of_word(word, &end)) != RC_OK)
|
||||
goto out;
|
||||
|
||||
next = skip_whitespace(end);
|
||||
first = word[0];
|
||||
*end = '\0';
|
||||
strip_quotes(word, &end);
|
||||
WINE_TRACE("Processing Arg: '%s'\n", wine_dbgstr_w(word));
|
||||
|
||||
/* First non-switch parameter is source, second is destination */
|
||||
if (first != '/') {
|
||||
if (suppliedsource[0] == 0x00) {
|
||||
lstrcpyW(suppliedsource, word);
|
||||
} else if (supplieddestination[0] == 0x00) {
|
||||
lstrcpyW(supplieddestination, word);
|
||||
} else {
|
||||
XCOPY_wprintf(XCOPY_LoadMessage(STRING_INVPARMS));
|
||||
goto out;
|
||||
}
|
||||
} else {
|
||||
/* Process all the switch options
|
||||
Note: Windows docs say /P prompts when dest is created
|
||||
but tests show it is done for each src file
|
||||
regardless of the destination */
|
||||
switch (toupper(word[1])) {
|
||||
case 'I': flags |= OPT_ASSUMEDIR; break;
|
||||
case 'S': flags |= OPT_RECURSIVE; break;
|
||||
case 'Q': flags |= OPT_QUIET; break;
|
||||
case 'F': flags |= OPT_FULL; break;
|
||||
case 'L': flags |= OPT_SIMULATE; break;
|
||||
case 'W': flags |= OPT_PAUSE; break;
|
||||
case 'T': flags |= OPT_NOCOPY | OPT_RECURSIVE; break;
|
||||
case 'Y': flags |= OPT_NOPROMPT; break;
|
||||
case 'N': flags |= OPT_SHORTNAME; break;
|
||||
case 'U': flags |= OPT_MUSTEXIST; break;
|
||||
case 'R': flags |= OPT_REPLACEREAD; break;
|
||||
case 'H': flags |= OPT_COPYHIDSYS; break;
|
||||
case 'C': flags |= OPT_IGNOREERRORS; break;
|
||||
case 'P': flags |= OPT_SRCPROMPT; break;
|
||||
case 'A': flags |= OPT_ARCHIVEONLY; break;
|
||||
case 'M': flags |= OPT_ARCHIVEONLY |
|
||||
OPT_REMOVEARCH; break;
|
||||
|
||||
/* E can be /E or /EXCLUDE */
|
||||
case 'E': if (CompareStringW(LOCALE_USER_DEFAULT,
|
||||
NORM_IGNORECASE | SORT_STRINGSORT,
|
||||
&word[1], 8,
|
||||
EXCLUDE, -1) == 2) {
|
||||
if (XCOPY_ProcessExcludeList(&word[9])) {
|
||||
XCOPY_FailMessage(ERROR_INVALID_PARAMETER);
|
||||
goto out;
|
||||
} else flags |= OPT_EXCLUDELIST;
|
||||
} else flags |= OPT_EMPTYDIR | OPT_RECURSIVE;
|
||||
break;
|
||||
|
||||
/* D can be /D or /D: */
|
||||
case 'D': if (word[2]==':' && isdigit(word[3])) {
|
||||
SYSTEMTIME st;
|
||||
WCHAR *pos = &word[3];
|
||||
BOOL isError = FALSE;
|
||||
memset(&st, 0x00, sizeof(st));
|
||||
|
||||
/* Parse the arg : Month */
|
||||
st.wMonth = _wtol(pos);
|
||||
while (*pos && isdigit(*pos)) pos++;
|
||||
if (*pos++ != '-') isError = TRUE;
|
||||
|
||||
/* Parse the arg : Day */
|
||||
if (!isError) {
|
||||
st.wDay = _wtol(pos);
|
||||
while (*pos && isdigit(*pos)) pos++;
|
||||
if (*pos++ != '-') isError = TRUE;
|
||||
}
|
||||
|
||||
/* Parse the arg : Day */
|
||||
if (!isError) {
|
||||
st.wYear = _wtol(pos);
|
||||
while (*pos && isdigit(*pos)) pos++;
|
||||
if (st.wYear < 100) st.wYear+=2000;
|
||||
}
|
||||
|
||||
if (!isError && SystemTimeToFileTime(&st, &dateRange)) {
|
||||
SYSTEMTIME st;
|
||||
WCHAR datestring[32], timestring[32];
|
||||
|
||||
flags |= OPT_DATERANGE;
|
||||
|
||||
/* Debug info: */
|
||||
FileTimeToSystemTime (&dateRange, &st);
|
||||
GetDateFormatW(0, DATE_SHORTDATE, &st, NULL, datestring,
|
||||
sizeof(datestring)/sizeof(WCHAR));
|
||||
GetTimeFormatW(0, TIME_NOSECONDS, &st,
|
||||
NULL, timestring, sizeof(timestring)/sizeof(WCHAR));
|
||||
|
||||
WINE_TRACE("Date being used is: %s %s\n",
|
||||
wine_dbgstr_w(datestring), wine_dbgstr_w(timestring));
|
||||
} else {
|
||||
XCOPY_FailMessage(ERROR_INVALID_PARAMETER);
|
||||
goto out;
|
||||
}
|
||||
} else {
|
||||
flags |= OPT_DATENEWER;
|
||||
}
|
||||
break;
|
||||
|
||||
case '-': if (toupper(word[2])=='Y')
|
||||
flags &= ~OPT_NOPROMPT; break;
|
||||
case '?': XCOPY_wprintf(XCOPY_LoadMessage(STRING_HELP));
|
||||
rc = RC_HELP;
|
||||
goto out;
|
||||
default:
|
||||
WINE_TRACE("Unhandled parameter '%s'\n", wine_dbgstr_w(word));
|
||||
XCOPY_wprintf(XCOPY_LoadMessage(STRING_INVPARM), word);
|
||||
goto out;
|
||||
}
|
||||
}
|
||||
word = next;
|
||||
}
|
||||
|
||||
/* Default the destination if not supplied */
|
||||
if (supplieddestination[0] == 0x00)
|
||||
lstrcpyW(supplieddestination, wchr_dot);
|
||||
|
||||
*pflags = flags;
|
||||
rc = RC_OK;
|
||||
|
||||
out:
|
||||
free(cmdline);
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
||||
/* =========================================================================
|
||||
XCOPY_ProcessSourceParm - Takes the supplied source parameter, and
|
||||
|
@ -432,8 +519,10 @@ static int XCOPY_ProcessDestParm(WCHAR *supplieddestination, WCHAR *stem, WCHAR
|
|||
if (attribs == INVALID_FILE_ATTRIBUTES) {
|
||||
|
||||
/* If /I supplied and wildcard copy, assume directory */
|
||||
if (flags & OPT_ASSUMEDIR &&
|
||||
(wcschr(srcspec, '?') || wcschr(srcspec, '*'))) {
|
||||
/* Also if destination ends with backslash */
|
||||
if ((flags & OPT_ASSUMEDIR &&
|
||||
(wcschr(srcspec, '?') || wcschr(srcspec, '*'))) ||
|
||||
(supplieddestination[lstrlenW(supplieddestination)-1] == '\\')) {
|
||||
|
||||
isDir = TRUE;
|
||||
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
#define RC_CTRLC 2
|
||||
#define RC_INITERROR 4
|
||||
#define RC_WRITEERROR 5
|
||||
#define RC_HELP 6
|
||||
|
||||
#define OPT_ASSUMEDIR 0x00000001
|
||||
#define OPT_RECURSIVE 0x00000002
|
||||
|
|
|
@ -16,13 +16,13 @@
|
|||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#define WINE_OLESELFREGISTER
|
||||
#define WINE_FILEDESCRIPTION_STR "Wine core exe"
|
||||
#define WINE_FILEDESCRIPTION_STR "Wine Internet Explorer"
|
||||
#define WINE_FILENAME_STR "iexplore.exe"
|
||||
#define WINE_FILEVERSION 6,0,2900,2180
|
||||
#define WINE_FILEVERSION_STR "6.0.2900.2180"
|
||||
#define WINE_PRODUCTVERSION 6,0,2900,2180
|
||||
#define WINE_PRODUCTVERSION_STR "6.0.2900.2180"
|
||||
#define WINE_EXTRAVALUES VALUE "OLESelfRegister",""
|
||||
|
||||
#include "wine/wine_common_ver.rc"
|
||||
|
||||
|
|
|
@ -21,49 +21,51 @@
|
|||
|
||||
#include "winhelp_res.h"
|
||||
|
||||
#pragma code_page(65001)
|
||||
|
||||
LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT
|
||||
|
||||
/* Menu */
|
||||
|
||||
MAIN_MENU MENU
|
||||
{
|
||||
POPUP "파일(&F)" {
|
||||
MENUITEM "열기(&O)...", MNID_FILE_OPEN
|
||||
POPUP "파일(&F)" {
|
||||
MENUITEM "열기(&O)...", MNID_FILE_OPEN
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "인쇄(&P)", MNID_FILE_PRINT
|
||||
MENUITEM "프린터 설정(&S)...", MNID_FILE_SETUP
|
||||
MENUITEM "인쇄(&P)", MNID_FILE_PRINT
|
||||
MENUITEM "프린터 설정(&S)...", MNID_FILE_SETUP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "종료(&E)", MNID_FILE_EXIT
|
||||
MENUITEM "종료(&E)", MNID_FILE_EXIT
|
||||
}
|
||||
POPUP "편집(&E)" {
|
||||
MENUITEM "복사(&C)...", MNID_EDIT_COPYDLG
|
||||
POPUP "편집(&E)" {
|
||||
MENUITEM "복사(&C)...", MNID_EDIT_COPYDLG
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "주석(&A)...", MNID_EDIT_ANNOTATE
|
||||
MENUITEM "주석(&A)...", MNID_EDIT_ANNOTATE
|
||||
}
|
||||
POPUP "책갈피(&B)" {
|
||||
MENUITEM "정의(&D)...", MNID_BKMK_DEFINE
|
||||
POPUP "책갈피(&B)" {
|
||||
MENUITEM "정의(&D)...", MNID_BKMK_DEFINE
|
||||
}
|
||||
POPUP "옵션(&O)" {
|
||||
POPUP "가능한 도움말 보이기"
|
||||
POPUP "옵션(&O)" {
|
||||
POPUP "가능한 도움말 보이기"
|
||||
BEGIN
|
||||
MENUITEM "기본", MNID_OPTS_HELP_DEFAULT
|
||||
MENUITEM "보이기", MNID_OPTS_HELP_VISIBLE
|
||||
MENUITEM "보여주지 않기", MNID_OPTS_HELP_NONVISIBLE
|
||||
MENUITEM "기본", MNID_OPTS_HELP_DEFAULT
|
||||
MENUITEM "보이기", MNID_OPTS_HELP_VISIBLE
|
||||
MENUITEM "보여주지 않기", MNID_OPTS_HELP_NONVISIBLE
|
||||
END
|
||||
MENUITEM "기록", MNID_OPTS_HISTORY
|
||||
POPUP "글꼴"
|
||||
MENUITEM "기록", MNID_OPTS_HISTORY
|
||||
POPUP "글꼴"
|
||||
BEGIN
|
||||
MENUITEM "작게", MNID_OPTS_FONTS_SMALL
|
||||
MENUITEM "보통", MNID_OPTS_FONTS_NORMAL
|
||||
MENUITEM "크게", MNID_OPTS_FONTS_LARGE
|
||||
MENUITEM "작게", MNID_OPTS_FONTS_SMALL
|
||||
MENUITEM "보통", MNID_OPTS_FONTS_NORMAL
|
||||
MENUITEM "크게", MNID_OPTS_FONTS_LARGE
|
||||
END
|
||||
MENUITEM "시스템 색상 사용", MNID_OPTS_SYSTEM_COLORS
|
||||
MENUITEM "시스템 색상 사용", MNID_OPTS_SYSTEM_COLORS
|
||||
}
|
||||
POPUP "도움말(&H)" {
|
||||
MENUITEM "도움말 사용법(&O)", MNID_HELP_HELPON
|
||||
MENUITEM "항상 위(&T)", MNID_HELP_HELPTOP
|
||||
POPUP "도움말(&H)" {
|
||||
MENUITEM "도움말 사용법(&O)", MNID_HELP_HELPON
|
||||
MENUITEM "항상 위(&T)", MNID_HELP_HELPTOP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "정보(&I)...", MNID_HELP_ABOUT
|
||||
MENUITEM "Wine 도움말 정보(&I)...", MNID_HELP_ABOUT
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -71,7 +73,7 @@ MAIN_MENU MENU
|
|||
IDD_INDEX DIALOG 0, 0, 200, 190
|
||||
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
|
||||
FONT 9, "MS Shell Dlg"
|
||||
CAPTION "인덱스"
|
||||
CAPTION "인덱스"
|
||||
{
|
||||
LISTBOX IDC_INDEXLIST, 10, 10, 180, 150, LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_BORDER
|
||||
}
|
||||
|
@ -79,50 +81,50 @@ CAPTION "
|
|||
IDD_SEARCH DIALOG 0, 0, 200, 190
|
||||
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
|
||||
FONT 9, "MS Shell Dlg"
|
||||
CAPTION "찾기"
|
||||
CAPTION "찾기"
|
||||
{
|
||||
LTEXT "아직 구현되지 않음", -1, 10, 10, 180, 150
|
||||
LTEXT "아직 구현되지 않음", -1, 10, 10, 180, 150
|
||||
}
|
||||
|
||||
/* Strings */
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
STID_WINE_HELP, "Wine 도움말"
|
||||
STID_WHERROR, "에러"
|
||||
STID_WARNING, "경고"
|
||||
STID_INFO, "정보"
|
||||
STID_NOT_IMPLEMENTED, "구현되지 않았음"
|
||||
STID_HLPFILE_ERROR_s, "도움말 파일 `%s'를 읽는 도중 오류 발생"
|
||||
STID_INDEX, "목차(&C)"
|
||||
STID_CONTENTS, "요약"
|
||||
STID_BACK, "뒤로(&B)"
|
||||
STID_ALL_FILES, "모든 파일 (*.*)"
|
||||
STID_HELP_FILES_HLP, "도움말 파일 (*.hlp)"
|
||||
STID_FILE_NOT_FOUND_s "%s을 찾을 수 없습니다'. 이 파일을 직접 찾겠습니까?"
|
||||
STID_NO_RICHEDIT "richedit 구현을 찾을수 업습니다.. 취소중"
|
||||
STID_PSH_INDEX, "도움말 목차: "
|
||||
STID_WINE_HELP, "Wine 도움말"
|
||||
STID_WHERROR, "에러"
|
||||
STID_WARNING, "경고"
|
||||
STID_INFO, "정보"
|
||||
STID_NOT_IMPLEMENTED, "구현되지 않았음"
|
||||
STID_HLPFILE_ERROR_s, "도움말 파일 `%s'를 읽는 도중 오류 발생"
|
||||
STID_INDEX, "목차(&C)"
|
||||
STID_CONTENTS, "요약"
|
||||
STID_BACK, "뒤로(&B)"
|
||||
STID_ALL_FILES, "모든 파일 (*.*)"
|
||||
STID_HELP_FILES_HLP, "도움말 파일 (*.hlp)"
|
||||
STID_FILE_NOT_FOUND_s "%s을 찾을 수 없습니다'. 이 파일을 직접 찾겠습니까?"
|
||||
STID_NO_RICHEDIT "richedit 구현을 찾을수 업습니다.. 취소중"
|
||||
STID_PSH_INDEX, "도움말 목차: "
|
||||
}
|
||||
|
||||
CONTEXT_MENU MENU
|
||||
BEGIN
|
||||
POPUP ""
|
||||
BEGIN
|
||||
MENUITEM "주석...", MNID_CTXT_ANNOTATE
|
||||
MENUITEM "복사", MNID_CTXT_COPY
|
||||
MENUITEM "인쇄...", MNID_CTXT_PRINT
|
||||
POPUP "글꼴"
|
||||
MENUITEM "주석...", MNID_CTXT_ANNOTATE
|
||||
MENUITEM "복사", MNID_CTXT_COPY
|
||||
MENUITEM "인쇄...", MNID_CTXT_PRINT
|
||||
POPUP "글꼴"
|
||||
BEGIN
|
||||
MENUITEM "좁게", MNID_CTXT_FONTS_SMALL
|
||||
MENUITEM "보통", MNID_CTXT_FONTS_NORMAL
|
||||
MENUITEM "넓게", MNID_CTXT_FONTS_LARGE
|
||||
MENUITEM "좁게", MNID_CTXT_FONTS_SMALL
|
||||
MENUITEM "보통", MNID_CTXT_FONTS_NORMAL
|
||||
MENUITEM "넓게", MNID_CTXT_FONTS_LARGE
|
||||
END
|
||||
POPUP "도움말 항상 보이기"
|
||||
POPUP "도움말 항상 보이기"
|
||||
BEGIN
|
||||
MENUITEM "기본", MNID_CTXT_HELP_DEFAULT
|
||||
MENUITEM "보이기", MNID_CTXT_HELP_VISIBLE
|
||||
MENUITEM "안 보이기", MNID_CTXT_HELP_NONVISIBLE
|
||||
MENUITEM "기본", MNID_CTXT_HELP_DEFAULT
|
||||
MENUITEM "보이기", MNID_CTXT_HELP_VISIBLE
|
||||
MENUITEM "안 보이기", MNID_CTXT_HELP_NONVISIBLE
|
||||
END
|
||||
MENUITEM "시스템 색상 사용", MNID_CTXT_SYSTEM_COLORS
|
||||
MENUITEM "시스템 색상 사용", MNID_CTXT_SYSTEM_COLORS
|
||||
END
|
||||
END
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
*
|
||||
* Copyright 2002 liuspider <liuspider@yahoo.com>
|
||||
* Copyright 2008 Hongbo Ni <hongbo.at.njstar.com>
|
||||
* Copyright 2010 Cheer Xiao <xiaqqaix.at.gmail.com>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
|
@ -37,7 +38,7 @@ MAIN_MENU MENU
|
|||
MENUITEM "打印(&P)", MNID_FILE_PRINT
|
||||
MENUITEM "打印机设置(&S)...", MNID_FILE_SETUP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "退出(&E)", MNID_FILE_EXIT
|
||||
MENUITEM "退出(&X)", MNID_FILE_EXIT
|
||||
}
|
||||
POPUP "编辑(&E)" {
|
||||
MENUITEM "复制(&C)...", MNID_EDIT_COPYDLG
|
||||
|
@ -48,7 +49,7 @@ MAIN_MENU MENU
|
|||
MENUITEM "定义(&D)...", MNID_BKMK_DEFINE
|
||||
}
|
||||
POPUP "选项(&O)" {
|
||||
POPUP "显示帮助"
|
||||
POPUP "总是显示帮助"
|
||||
BEGIN
|
||||
MENUITEM "默认", MNID_OPTS_HELP_DEFAULT
|
||||
MENUITEM "显示", MNID_OPTS_HELP_VISIBLE
|
||||
|
@ -67,10 +68,26 @@ MAIN_MENU MENU
|
|||
MENUITEM "如何使用帮助(&O)", MNID_HELP_HELPON
|
||||
MENUITEM "总是在最前面(&T)", MNID_HELP_HELPTOP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "资料信息(&I)...", MNID_HELP_ABOUT
|
||||
MENUITEM "关于 Wine 帮助(&I)...", MNID_HELP_ABOUT
|
||||
}
|
||||
}
|
||||
|
||||
IDD_INDEX DIALOG 0, 0, 200, 190
|
||||
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
|
||||
FONT 8, "MS Shell Dlg"
|
||||
CAPTION "索引"
|
||||
{
|
||||
LISTBOX IDC_INDEXLIST, 10, 10, 180, 150, LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_BORDER
|
||||
}
|
||||
|
||||
IDD_SEARCH DIALOG 0, 0, 200, 190
|
||||
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
|
||||
FONT 8, "MS Shell Dlg"
|
||||
CAPTION "搜索"
|
||||
{
|
||||
LTEXT "尚未实现", -1, 10, 10, 180, 150
|
||||
}
|
||||
|
||||
/* Strings */
|
||||
STRINGTABLE
|
||||
{
|
||||
|
@ -79,17 +96,40 @@ STID_WHERROR, "错误"
|
|||
STID_WARNING, "警告"
|
||||
STID_INFO, "信息"
|
||||
STID_NOT_IMPLEMENTED, "未实现"
|
||||
STID_HLPFILE_ERROR_s, "读入帮助文件 ‘%s’ 时发生错误"
|
||||
STID_INDEX, "内容(&C)"
|
||||
STID_HLPFILE_ERROR_s, "读入帮助文件“%s”时发生错误"
|
||||
STID_INDEX, "索引(&I)"
|
||||
STID_CONTENTS, "概要"
|
||||
STID_BACK, "返回(&B)"
|
||||
STID_ALL_FILES, "所有文件 (*.*)"
|
||||
STID_HELP_FILES_HLP, "帮助文件 (*.hlp)"
|
||||
STID_FILE_NOT_FOUND_s "不能打开文件 '%s'. 你想要自己找这个文件吗?"
|
||||
STID_NO_RICHEDIT "找不到 richedit... 终止"
|
||||
STID_PSH_INDEX, "帮助内容: "
|
||||
STID_FILE_NOT_FOUND_s "找不到文件“%s”。 你想要自己找这个文件吗?"
|
||||
STID_NO_RICHEDIT "找不到 richedit 的实现……终止"
|
||||
STID_PSH_INDEX, "帮助主题:"
|
||||
}
|
||||
|
||||
CONTEXT_MENU MENU
|
||||
BEGIN
|
||||
POPUP ""
|
||||
BEGIN
|
||||
MENUITEM "注释...", MNID_CTXT_ANNOTATE
|
||||
MENUITEM "复制", MNID_CTXT_COPY
|
||||
MENUITEM "打印...", MNID_CTXT_PRINT
|
||||
POPUP "字体"
|
||||
BEGIN
|
||||
MENUITEM "小号", MNID_CTXT_FONTS_SMALL
|
||||
MENUITEM "中号", MNID_CTXT_FONTS_NORMAL
|
||||
MENUITEM "大号", MNID_CTXT_FONTS_LARGE
|
||||
END
|
||||
POPUP "总是显示帮助"
|
||||
BEGIN
|
||||
MENUITEM "默认", MNID_CTXT_HELP_DEFAULT
|
||||
MENUITEM "显示", MNID_CTXT_HELP_VISIBLE
|
||||
MENUITEM "不显示", MNID_CTXT_HELP_NONVISIBLE
|
||||
END
|
||||
MENUITEM "使用系统颜色", MNID_CTXT_SYSTEM_COLORS
|
||||
END
|
||||
END
|
||||
|
||||
LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL
|
||||
|
||||
/* Menu */
|
||||
|
|
|
@ -30,7 +30,6 @@ IDI_WINHELP ICON winhelp.ico
|
|||
#include "Es.rc"
|
||||
#include "Fi.rc"
|
||||
#include "Hu.rc"
|
||||
#include "Ko.rc"
|
||||
#include "No.rc"
|
||||
#include "Pl.rc"
|
||||
#include "Sk.rc"
|
||||
|
@ -44,6 +43,7 @@ IDI_WINHELP ICON winhelp.ico
|
|||
#include "He.rc"
|
||||
#include "It.rc"
|
||||
#include "Ja.rc"
|
||||
#include "Ko.rc"
|
||||
#include "Lt.rc"
|
||||
#include "Nl.rc"
|
||||
#include "Pt.rc"
|
||||
|
|
|
@ -61,7 +61,7 @@ BEGIN
|
|||
MENUITEM SEPARATOR
|
||||
POPUP "其他(&X)"
|
||||
BEGIN
|
||||
MENUITEM "选中信息(&I)", ID_EDIT_SELECTIONINFO
|
||||
MENUITEM "选中信息(&I)", ID_EDIT_SELECTIONINFO /* 准确性待议 */
|
||||
MENUITEM "文字格式(&F)", ID_EDIT_CHARFORMAT
|
||||
MENUITEM "默认格式(&D)", ID_EDIT_DEFCHARFORMAT
|
||||
MENUITEM "段落格式(&H)", ID_EDIT_PARAFORMAT
|
||||
|
@ -118,7 +118,7 @@ BEGIN
|
|||
BEGIN
|
||||
MENUITEM "黑色", ID_COLOR_BLACK /* 未找到“标准译名表” */
|
||||
MENUITEM "栗色", ID_COLOR_MAROON
|
||||
MENUITEM "调和绿", ID_COLOR_GREEN
|
||||
MENUITEM "绿色", ID_COLOR_GREEN
|
||||
MENUITEM "橄榄色" ID_COLOR_OLIVE
|
||||
MENUITEM "藏青" ID_COLOR_NAVY
|
||||
MENUITEM "紫色" ID_COLOR_PURPLE
|
||||
|
@ -126,7 +126,7 @@ BEGIN
|
|||
MENUITEM "灰色" ID_COLOR_GRAY
|
||||
MENUITEM "银色" ID_COLOR_SILVER
|
||||
MENUITEM "红色" ID_COLOR_RED
|
||||
MENUITEM "绿色" ID_COLOR_LIME
|
||||
MENUITEM "青柠色" ID_COLOR_LIME
|
||||
MENUITEM "黄色" ID_COLOR_YELLOW
|
||||
MENUITEM "蓝色" ID_COLOR_BLUE
|
||||
MENUITEM "洋红" ID_COLOR_FUCHSIA /* =magenta? */
|
||||
|
|
|
@ -162,7 +162,7 @@ static void AddButton(HWND hwndToolBar, int nImage, int nCommand)
|
|||
button.iBitmap = nImage;
|
||||
button.idCommand = nCommand;
|
||||
button.fsState = TBSTATE_ENABLED;
|
||||
button.fsStyle = TBSTYLE_BUTTON;
|
||||
button.fsStyle = BTNS_BUTTON;
|
||||
button.dwData = 0;
|
||||
button.iString = -1;
|
||||
SendMessageW(hwndToolBar, TB_ADDBUTTONSW, 1, (LPARAM)&button);
|
||||
|
@ -176,7 +176,7 @@ static void AddSeparator(HWND hwndToolBar)
|
|||
button.iBitmap = -1;
|
||||
button.idCommand = 0;
|
||||
button.fsState = 0;
|
||||
button.fsStyle = TBSTYLE_SEP;
|
||||
button.fsStyle = BTNS_SEP;
|
||||
button.dwData = 0;
|
||||
button.iString = -1;
|
||||
SendMessageW(hwndToolBar, TB_ADDBUTTONSW, 1, (LPARAM)&button);
|
||||
|
@ -1818,7 +1818,7 @@ static LRESULT OnCreate( HWND hWnd )
|
|||
if(!SendMessageW(hReBarWnd, RB_SETBARINFO, 0, (LPARAM)&rbi))
|
||||
return -1;
|
||||
|
||||
hToolBarWnd = CreateToolbarEx(hReBarWnd, CCS_NOPARENTALIGN|CCS_NOMOVEY|WS_VISIBLE|WS_CHILD|TBSTYLE_TOOLTIPS|TBSTYLE_BUTTON,
|
||||
hToolBarWnd = CreateToolbarEx(hReBarWnd, CCS_NOPARENTALIGN|CCS_NOMOVEY|WS_VISIBLE|WS_CHILD|TBSTYLE_TOOLTIPS|BTNS_BUTTON,
|
||||
IDC_TOOLBAR,
|
||||
1, hInstance, IDB_TOOLBAR,
|
||||
NULL, 0,
|
||||
|
@ -1880,7 +1880,7 @@ static LRESULT OnCreate( HWND hWnd )
|
|||
SendMessageW(hReBarWnd, RB_INSERTBAND, -1, (LPARAM)&rbb);
|
||||
|
||||
hFormatBarWnd = CreateToolbarEx(hReBarWnd,
|
||||
CCS_NOPARENTALIGN | CCS_NOMOVEY | WS_VISIBLE | TBSTYLE_TOOLTIPS | TBSTYLE_BUTTON,
|
||||
CCS_NOPARENTALIGN | CCS_NOMOVEY | WS_VISIBLE | TBSTYLE_TOOLTIPS | BTNS_BUTTON,
|
||||
IDC_FORMATBAR, 8, hInstance, IDB_FORMATBAR, NULL, 0, 16, 16, 16, 16, sizeof(TBBUTTON));
|
||||
|
||||
AddButton(hFormatBarWnd, 0, ID_FORMAT_BOLD);
|
||||
|
|
38
reactos/base/applications/write/Sr.rc
Normal file
38
reactos/base/applications/write/Sr.rc
Normal file
|
@ -0,0 +1,38 @@
|
|||
/*
|
||||
* Serbian language support
|
||||
*
|
||||
* Copyright (C) 2007 Mikolaj Zalewski
|
||||
* Copyright 2010 Đorđe Vasiljević
|
||||
*
|
||||
* 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 St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#include "resources.h"
|
||||
|
||||
#pragma code_page(65001)
|
||||
|
||||
LANGUAGE LANG_SERBIAN, SUBLANG_SERBIAN_CYRILLIC
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
IDS_FAILED, "Покретање Писанке није успело"
|
||||
}
|
||||
|
||||
LANGUAGE LANG_SERBIAN, SUBLANG_SERBIAN_LATIN
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
IDS_FAILED, "Pokretanje Pisanke nije uspelo"
|
||||
}
|
31
reactos/base/applications/write/Zh.rc
Normal file
31
reactos/base/applications/write/Zh.rc
Normal file
|
@ -0,0 +1,31 @@
|
|||
/*
|
||||
* Simplified Chinese language support
|
||||
*
|
||||
* Copyright (C) 2010 Cheer Xiao <xiaqqaix.at.gmail.com>
|
||||
*
|
||||
* 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 St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#include "resources.h"
|
||||
|
||||
/* Chinese text is encoded in UTF-8 */
|
||||
#pragma code_page(65001)
|
||||
|
||||
LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
IDS_FAILED, "启动写字板失败"
|
||||
}
|
|
@ -39,4 +39,6 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
|
|||
#include "Ro.rc"
|
||||
#include "Ru.rc"
|
||||
#include "Si.rc"
|
||||
#include "Sr.rc"
|
||||
#include "Uk.rc"
|
||||
#include "Zh.rc"
|
||||
|
|
Loading…
Reference in a new issue