Subversion Repositories SvarDOS

Compare Revisions

Ignore whitespace Rev 981 → Rev 982

/svarcom/trunk/cmd/for.c
0,0 → 1,78
/* This file is part of the SvarCOM project and is published under the terms
* of the MIT license.
*
* Copyright (C) 2021-2022 Mateusz Viste
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
 
/*
* FOR %variable IN (set) DO command [command-parameters]
*
* %variable a replaceable parameter name
* (set) a set of one of more files. Wildcards allowed.
* command the command to carry out for each matched file
* command-parameters parameters or switches for the specified command
*
* To use FOR in a batch program, use %%variable instead of %variable
*
* the set of files must be surrounded by parenthesis, and may contain one
* or more space-delimited wildcards. Examples:
* (file.txt other.txt)
* (*.exe *.com *.bat)
* (jan*.txt 199201??.txt)
*/
 
/* Implementation notes:
*
* For cannot be nested (no "FOR ... do FOR ..." allowed)
*
* When executed, FOR allocates a "FOR context" to RMOD's memory, this context
* holds the memory state of a FindNext iteration, as well as the command
* to run on each matched file.
*
* This FOR context is looked at by command.c and used to provide a command
* instead of getting the command from interactive cli or BAT file. Repeats
* until the FindNext buffer stops matching files.
*
* This file only provides the help screen of FOR, as well as the FOR-context
* initialization. Actual execution happens within command.c.
*/
 
static enum cmd_result cmd_for(struct cmd_funcparam *p) {
 
/* help screen ONLY if /? is the only argument */
if ((p->argc == 1) && (imatch(p->argv[0], "/?"))) {
nls_outputnl(18,0); /* "Runs a specified command for each file in a set of files" */
outputnl("");
nls_outputnl(18,1); /* "FOR %variable IN (set) DO command [parameters]" */
outputnl("");
nls_outputnl(18,2); /* "%variable a replaceable parameter name" */
nls_outputnl(18,3); /* "(set) a set of one of more files. Wildcards allowed." */
nls_outputnl(18,4); /* "command the command to carry out for each matched file" */
nls_outputnl(18,5); /* "parameters parameters or switches for the specified command" */
outputnl("");
nls_outputnl(18,6); /* "To use FOR in a batch program, use %%variable instead of %variable" */
return(CMD_OK);
}
 
outputnl("FOR IS NOT IMPLEMENTED YET");
 
return(CMD_OK);
}
/svarcom/trunk/cmd.c
77,6 → 77,7
#include "cmd/copy.c"
#include "cmd/date.c"
#include "cmd/del.c"
#include "cmd/for.c"
#include "cmd/goto.c"
#include "cmd/if.c"
#include "cmd/vol.c" /* must be included before dir.c due to dependency */
119,6 → 120,7
{"ECHO", cmd_echo},
{"ERASE", cmd_del},
{"EXIT", cmd_exit},
{"FOR", cmd_for},
{"GOTO", cmd_goto},
{"IF", cmd_if},
{"LH", cmd_notimpl},
/svarcom/trunk/lang/en-utf8.txt
26,6 → 26,15
17.3:A label is on a line by itself and must be preceded by a colon.
17.10:Label not found
 
# FOR
18.0:Runs a specified command for each file in a set of files.
18.1:FOR %variable IN (set) DO command [parameters]
18.2:%variable a replaceable parameter name.
18.3:(set) a set of one of more space-separated files. Wildcards allowed.
18.4:command the command to carry out for each matched file.
18.5:parameters parameters or switches for the specified command.
18.6:To use FOR in a batch program, use %%variable instead of %variable.
 
# DOS ERRORS
255.1:Function number invalid
255.2:File not found
/svarcom/trunk/lang/pl-utf8.txt
20,12 → 20,21
16.1:Argument %1 staje się %0, argument %2 staje się %1, itd.
 
# GOTO
17.0:Kieruje przetwarzanie do wiersza o określonej etykiecie w programie wsadowym.
17.0:Kieruje przetwarzanie programu wsadowego do wiersza o określonej etykiecie.
17.1:GOTO ETYKIETA
17.2:ETYKIETA to ciąg znaków wykorzystany przez program wsadowy jako etykieta.
17.3:Etykieta znajduje się w osobnym wierszu i jest poprzedzona dwukropkiem.
17.10:Nie znaleziono etykiety
 
# FOR
18.0:Wykonuje określone polecenie na każdym pliku sposród zestawu plików.
18.1:FOR %zmienna IN (zestaw) DO polecenie [parametry]
18.2:%zmienna nazwa zmiennej.
18.3:(zestaw) zestaw plików, oddzielone spacjami. Znaki wieloznaczne dozwolone.
18.4:polecenie polecenie do wykonania na każdym z pasujących plików.
18.5:parametry parametry lub przełączniki dla określonego polecenia.
18.6:Aby użyć FOR w programie wsadowym, użyj %%zmienna zamiast %zmienna.
 
# DOS ERRORS
255.1:Błędny numer funkcji
255.2:Nie znaleziono pliku