/*
 * Copyright (C) 1999 D A Pickles
 *
 * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

#include "wcmd.h"

STRINGTABLE
{
  WCMD_ATTRIB, "Help about ATTRIB\n"
  WCMD_CALL,
"CALL <batchfilename> is used within a batch file to execute commands\n\
from another batch file. When the batch file exits, control returns to\n\
the file which called it. The CALL command may supply parameters to the\n\
called procedure.\n\
\n\
Changes to default directory, environment variables etc made within a\n\
called procedure are inherited by the caller.\n"

  WCMD_CD,     "Help about CD\n"
  WCMD_CHDIR,  "Help about CHDIR\n"

  WCMD_CLS,
"CLS clears the console screen\n"

  WCMD_COPY,   "Help about COPY\n"
  WCMD_CTTY,   "Help about CTTY\n"
  WCMD_DATE,   "Help about DATE\n"
  WCMD_DEL,    "Help about DEL\n"
  WCMD_DIR,    "Help about DIR\n"

  WCMD_ECHO,
"ECHO <string> displays <string> on the current terminal device.\n\
\n\
ECHO ON causes all subsequent commands in a batch file to be displayed\n\
on the terminal device before they are executed.\n\
\n\
ECHO OFF reverses the effect of a previous ECHO ON (ECHO is OFF by\n\
default). The ECHO OFF command can be prevented from displaying by\n\
preceding it with an @ sign.\n"

  WCMD_ERASE,  "Help about ERASE\n"

  WCMD_FOR,
"The FOR command is used to execute a command for each of a set of files.\n\
\n\
Syntax: FOR %variable IN (set) DO command\n\
\n\
The requirement to double the % sign when using FOR in a batch file does\n\
not exist in wcmd.\n"

  WCMD_GOTO,
"The GOTO command transfers execution to another statement within a\n\
batch file.\n\
\n\
The label which is the target of a GOTO may be up to 255 characters\n\
long but may not include spaces (this is different to other operating\n\
systems). If two or more identical labels exist in a batch file the\n\
first one will always be executed. Attempting to GOTO a non-existent\n\
label terminates the batch file execution.\n\
\n\
GOTO has no effect when used interactively.\n"

  WCMD_HELP,   "Help about HELP\n"

  WCMD_IF,
"IF is used to conditionally execute a command.\n\
\n\
Syntax:	IF [NOT] EXIST filename command\n\
	IF [NOT] string1==string2 command\n\
	IF [NOT] ERRORLEVEL number command\n\
\n\
In the second form of the command, string1 and string2 must be in double\n\
quotes. The comparison is not case-sensitive.\n"

  WCMD_LABEL,  "LABEL is used to set a disk volume label.  \n\
\n\
Syntax: LABEL [drive:]\n\
The command will prompt you for the new volume label for the given drive.\n\
You can display the disk volume label with the VOL command.\n"

  WCMD_MD,     "Help about MD\n"
  WCMD_MKDIR,  "Help about MKDIR\n"
  WCMD_MOVE,
"MOVE relocates a file or directory to a new point within the file system.\n\
\n\
If the item being moved is a directory then all the files and subdirectories\n\
below the item are moved as well.\n\
\n\
MOVE fails if the old and new locations are on different DOS drive letters.\n"

  WCMD_PATH,
"PATH displays or changes the wcmd search path.\n\
\n\
Entering PATH will display the current PATH setting (initially this is\n\
the value given in your wine.conf file). To change the setting follow the\n\
PATH command with the new value.\n\
\n\
It is also possible to modify the PATH by using the PATH environment\n\
variable, for example:\n\
		PATH %PATH%;c:\\temp \n"

  WCMD_PAUSE,
"PAUSE displays a message on the screen 'Press Return key to continue'\n\
and waits for the user to press the Return key. It is mainly useful in\n\
batch files to allow the user to read the output of a previous command\n\
before it scrolls off the screen.\n"

  WCMD_PROMPT,
"PROMPT sets the command-line prompt.\n\
\n\
The string following the PROMPT command (and the space immediately after)\n\
appears at the beginning of the line when wcmd is waiting for input.\n\
\n\
The following character strings have the special meaning shown:\n\
\n\
$$    Dollar sign         $_    Linefeed            $b    Pipe sign (|)\n\
$d    Current date        $e    Escape              $g    > sign\n\
$l    > sign              $n    Current drive       $p    Current path\n\
$q    Equal sign          $t    Current time        $v    wcmd version\n\
\n\
Note that entering the PROMPT command without a prompt-string resets the\n\
prompt to the default, which is the current drive letter followed by a\n\
greater-than (>) sign.\n\
\n\
The prompt can also be changed by altering the PROMPT environment variable,\n\
so the command 'SET PROMPT=text' has the same effect as 'PROMPT text'\n"

  WCMD_REM,
"A command line beginning REM (followed by a space) performs no\n\
action, and can therefore be used as a comment in a batch file.\n"

  WCMD_REN,    "Help about REN\n"
  WCMD_RENAME, "Help about RENAME\n"
  WCMD_RD,     "Help about RD\n"
  WCMD_RMDIR,  "Help about RMDIR\n"

  WCMD_SET,
"SET displays or changes the wcmd environment variables.\n\
\n\
SET without parameters shows all of the current environment.\n\
\n\
To create or modify an environment variable the syntax is:\n\
\n\
      SET <variable>=<value>\n\
\n\
where <variable> and <value> are character strings. There must be no\n\
spaces either side of the equals sign, nor can the variable or value\n\
have embedded spaces.\n\
\n\
Under Wine, the environment of the underlying operating system is\n\
included into the Win32 environment, there will generally therefore be\n\
many more values than in a native Win32 implementation. Note that it is\n\
not possible to affect the operating system environment from within wcmd.\n"

  WCMD_SHIFT,
"SHIFT is used in a batch file to remove one parameter from the head of\n\
the list, so parameter 2 becomes parameter 1 and so on. It has no effect\n\
if called from the command line.\n"

  WCMD_TIME,   "Help about TIME\n"

  WCMD_TITLE,  "Sets the window title for the wcmd window, syntax TITLE [string]"

  WCMD_TYPE,
"TYPE <filename> copies <filename> to the console device (or elsewhere\n\
if redirected). No check is made that the file is readable text.\n"

  WCMD_VERIFY,
"VERIFY is used to set, clear or test the verify flag. Valid forms are:\n\
\n\
VERIFY ON	Set the flag\n\
VERIFY OFF	Clear the flag\n\
VERIFY		Displays ON or OFF as appropriate.\n\
\n\
The verify flag has no function in Wine.\n"

  WCMD_VER,
"VER displays the version of wcmd you are running\n"

  WCMD_VOL,    "Help about VOL\n"

  WCMD_EXIT,
"EXIT terminates the current command session and returns\n\
to the operating system or shell from which you invoked wcmd.\n"

  1000, "WCMD built-in commands are:\n\
ATTRIB\t\tShow or change DOS file attributes\n\
CALL\t\tInvoke a batch file from inside another\n\
CD (CHDIR)\tChange current default directory\n\
CLS\t\tClear the console screen\n\
COPY\t\tCopy file\n\
CTTY\t\tChange input/output device\n\
DATE\t\tShow or change the system date\n\
DEL (ERASE)\tDelete a file or set of files\n\
DIR\t\tList the contents of a directory\n\
ECHO\t\tCopy text directly to the console output\n\
HELP\t\tShow brief help details on a topic\n\
MD (MKDIR)\tCreate a subdirectory\n\
MOVE\t\tMove a file, set of files or directory tree\n\
PATH\t\tSet or show the search path\n\
PROMPT\t\tChange the command prompt\n\
REN (RENAME)\tRename a file\n\
RD (RMDIR)\tDelete a subdirectory\n\
SET\t\tSet or show environment variables\n\
TIME\t\tSet or show the current system time\n\
TITLE\t\tSet the window title for the WCMD session\n\
TYPE\t\tType the contents of a text file\n\
VER\t\tShow the current version of WCMD\n\
VOL\t\tShow the volume label of a disk device\n\
EXIT\t\tClose down WCMD\n\n\
Enter HELP <command> for further information on any of the above commands\n"
}
LANGUAGE LANG_NEUTRAL,SUBLANG_NEUTRAL


IDI_ICON1 ICON
{
 '00 00 01 00 01 00 20 20 00 01 00 00 00 00 A8 08'
 '00 00 16 00 00 00 28 00 00 00 20 00 00 00 40 00'
 '00 00 01 00 08 00 00 00 00 00 80 04 00 00 00 00'
 '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
 '00 00 40 00 00 00 80 00 00 00 FF 00 00 00 00 20'
 '00 00 40 20 00 00 80 20 00 00 FF 20 00 00 00 40'
 '00 00 40 40 00 00 80 40 00 00 FF 40 00 00 00 60'
 '00 00 40 60 00 00 80 60 00 00 FF 60 00 00 00 80'
 '00 00 40 80 00 00 80 80 00 00 FF 80 00 00 00 A0'
 '00 00 40 A0 00 00 80 A0 00 00 FF A0 00 00 00 C0'
 '00 00 40 C0 00 00 80 C0 00 00 FF C0 00 00 00 FF'
 '00 00 40 FF 00 00 80 FF 00 00 FF FF 00 00 00 00'
 '20 00 40 00 20 00 80 00 20 00 FF 00 20 00 00 20'
 '20 00 40 20 20 00 80 20 20 00 FF 20 20 00 00 40'
 '20 00 40 40 20 00 80 40 20 00 FF 40 20 00 00 60'
 '20 00 40 60 20 00 80 60 20 00 FF 60 20 00 00 80'
 '20 00 40 80 20 00 80 80 20 00 FF 80 20 00 00 A0'
 '20 00 40 A0 20 00 80 A0 20 00 FF A0 20 00 00 C0'
 '20 00 40 C0 20 00 80 C0 20 00 FF C0 20 00 00 FF'
 '20 00 40 FF 20 00 80 FF 20 00 FF FF 20 00 00 00'
 '40 00 40 00 40 00 80 00 40 00 FF 00 40 00 00 20'
 '40 00 40 20 40 00 80 20 40 00 FF 20 40 00 00 40'
 '40 00 40 40 40 00 80 40 40 00 FF 40 40 00 00 60'
 '40 00 40 60 40 00 80 60 40 00 FF 60 40 00 00 80'
 '40 00 40 80 40 00 80 80 40 00 FF 80 40 00 00 A0'
 '40 00 40 A0 40 00 80 A0 40 00 FF A0 40 00 00 C0'
 '40 00 40 C0 40 00 80 C0 40 00 FF C0 40 00 00 FF'
 '40 00 40 FF 40 00 80 FF 40 00 FF FF 40 00 00 00'
 '60 00 40 00 60 00 80 00 60 00 FF 00 60 00 00 20'
 '60 00 40 20 60 00 80 20 60 00 FF 20 60 00 00 40'
 '60 00 40 40 60 00 80 40 60 00 FF 40 60 00 00 60'
 '60 00 40 60 60 00 80 60 60 00 FF 60 60 00 00 80'
 '60 00 40 80 60 00 80 80 60 00 FF 80 60 00 00 A0'
 '60 00 40 A0 60 00 80 A0 60 00 FF A0 60 00 00 C0'
 '60 00 40 C0 60 00 80 C0 60 00 FF C0 60 00 00 FF'
 '60 00 40 FF 60 00 80 FF 60 00 FF FF 60 00 00 00'
 '80 00 40 00 80 00 80 00 80 00 FF 00 80 00 00 20'
 '80 00 40 20 80 00 80 20 80 00 FF 20 80 00 00 40'
 '80 00 40 40 80 00 80 40 80 00 FF 40 80 00 00 60'
 '80 00 40 60 80 00 80 60 80 00 FF 60 80 00 00 80'
 '80 00 40 80 80 00 80 80 80 00 FF 80 80 00 00 A0'
 '80 00 40 A0 80 00 80 A0 80 00 FF A0 80 00 00 C0'
 '80 00 40 C0 80 00 80 C0 80 00 FF C0 80 00 00 FF'
 '80 00 40 FF 80 00 80 FF 80 00 FF FF 80 00 00 00'
 'A0 00 40 00 A0 00 80 00 A0 00 FF 00 A0 00 00 20'
 'A0 00 40 20 A0 00 80 20 A0 00 FF 20 A0 00 00 40'
 'A0 00 40 40 A0 00 80 40 A0 00 FF 40 A0 00 00 60'
 'A0 00 40 60 A0 00 80 60 A0 00 FF 60 A0 00 00 80'
 'A0 00 40 80 A0 00 80 80 A0 00 FF 80 A0 00 00 A0'
 'A0 00 40 A0 A0 00 80 A0 A0 00 FF A0 A0 00 00 C0'
 'A0 00 40 C0 A0 00 80 C0 A0 00 FF C0 A0 00 00 FF'
 'A0 00 40 FF A0 00 80 FF A0 00 FF FF A0 00 00 00'
 'C0 00 40 00 C0 00 80 00 C0 00 FF 00 C0 00 00 20'
 'C0 00 40 20 C0 00 80 20 C0 00 FF 20 C0 00 00 40'
 'C0 00 40 40 C0 00 80 40 C0 00 FF 40 C0 00 00 60'
 'C0 00 40 60 C0 00 80 60 C0 00 FF 60 C0 00 00 80'
 'C0 00 40 80 C0 00 80 80 C0 00 FF 80 C0 00 00 A0'
 'C0 00 40 A0 C0 00 80 A0 C0 00 FF A0 C0 00 00 C0'
 'C0 00 40 C0 C0 00 80 C0 C0 00 FF C0 C0 00 00 FF'
 'C0 00 40 FF C0 00 80 FF C0 00 FF FF C0 00 00 00'
 'FF 00 40 00 FF 00 80 00 FF 00 FF 00 FF 00 00 20'
 'FF 00 40 20 FF 00 80 20 FF 00 FF 20 FF 00 00 40'
 'FF 00 40 40 FF 00 80 40 FF 00 FF 40 FF 00 00 60'
 'FF 00 40 60 FF 00 80 60 FF 00 FF 60 FF 00 00 80'
 'FF 00 40 80 FF 00 80 80 FF 00 FF 80 FF 00 00 A0'
 'FF 00 40 A0 FF 00 80 A0 FF 00 FF A0 FF 00 00 C0'
 'FF 00 40 C0 FF 00 80 C0 FF 00 FF C0 FF 00 00 FF'
 'FF 00 40 FF FF 00 80 FF FF 00 FF FF FF 00 FF FF'
 'FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF'
 'FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF'
 'FF FF FF FF FF FF FF FF FF FF FF FF B6 24 FF FF'
 'FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF'
 'FF FF FF FF FF FF FF FF FF FF 6D 24 FF FF FF FF'
 'FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF'
 'FF FF FF FF FF FF FF B6 00 B6 FF FF FF FF FF FF'
 'FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF'
 'FF FF FF FF FF 92 00 FF FF 24 FF FF FF FF FF FF'
 'FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF'
 'FF FF FF FF 24 FF FF FF FF 92 FF FF FF FF FF FF'
 'FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF'
 'FF FF FF FF FF FF FF FF FF FF 24 FF FF FF FF FF'
 'FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF'
 'FF FF FF FF FF FF FF FF FF FF FF 92 FF FF FF FF'
 'FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF'
 'FF FF FF FF FF FF FF FF FF FF FF 6D FF FF FF FF'
 'FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF'
 'FF FF FF FF FF FF FF FF FF FF FF B6 FF FF FF FF'
 'FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF'
 'FF FF FF FF FF FF FF FF FF FF FF FF 6D FF FF FF'
 'FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF'
 'FF FF FF FF FF FF FF FF FF FF FF FF 92 FF FF FF'
 'FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF'
 'FF FF FF FF FF FF FF FF FF FF FF FF FF 6D FF FF'
 'FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF'
 'FF FF FF FF FF FF FF FF FF FF FF FF FF 6D FF FF'
 'FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF'
 'FF FF FF FF FF FF FF FF FF FF FF FF FF FF 92 FF'
 'FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF'
 'FF FF FF FF FF FF FF FF FF FF FF FF FF FF 24 FF'
 'FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF'
 'FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 92'
 'FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF'
 'FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 24'
 'FF B6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF'
 'FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 24'
 '80 81 60 6C FF FF FF FF FF FF FF FF FF FF FF FF'
 'FF FF FF FF FF FF FF FF FF FF FF FF FF FF 24 81'
 'C1 81 80 81 20 FF FF FF FF FF FF FF FF FF FF FF'
 'FF FF FF FF FF FF FF FF FF FF FF FF FF FF C0 C1'
 '80 80 C1 81 C1 20 FF FF FF FF FF FF FF FF FF FF'
 'FF FF FF FF FF FF FF FF FF FF FF FF FF FF 81 81'
 '81 80 81 80 80 80 24 FF FF FF FF FF FF FF FF FF'
 'FF FF FF FF FF FF FF FF FF FF FF FF FF 6D 80 81'
 '81 80 81 C1 C0 80 80 92 FF FF FF FF FF FF FF FF'
 'FF FF FF FF FF FF FF FF FF FF FF FF FF B6 FF FF'
 'FF FF FF 81 C0 80 80 20 FF FF FF FF FF FF FF FF'
 'FF FF FF FF FF FF FF FF FF FF FF FF FF 92 FF FF'
 'FF FF FF FF C5 C0 80 81 6D FF FF FF FF FF FF FF'
 'FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF'
 'FF FF FF FF FF FB 81 81 24 FF FF FF FF FF FF FF'
 'FF FF FF FF FF FF FF FF FF FF FF FF FF FF 92 FF'
 'FF FF FF FF FF FF FF FF 24 FF FF FF FF FF FF FF'
 'FF FF FF FF FF FF FF FF FF FF FF FF FF FF 6D FF'
 'FF FF FF FF FF FF FF FF 6D FF FF FF FF FF FF FF'
 'FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 92'
 'FF FF FF FF FF FF FF 24 24 FF FF FF FF FF FF FF'
 'FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF'
 '92 FF FF FF FF 24 6D FF FF FF FF FF FF FF FF FF'
 'FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF'
 '92 FF FF 00 92 FF FF FF FF FF FF FF FF FF FF FF'
 'FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF'
 'FF 24 B6 FF FF FF FF FF FF FF FF FF FF FF 00 00'
 '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
 '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
 '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
 '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
 '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
 '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
 '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
 '00 00 00 00 00 00 00 00 00 00 00 00 00 00'
}
