Overview
| Comment: | Fix {edit <number>} so that it replaces the entire argument if it begins with an opening delimiter ("{" or "("). |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA1: |
563de83a02e715ca9805bd673b7ce516 |
| User & Date: | user on 2023-03-31 17:21:01.271 |
| Other Links: | manifest | tags |
Context
|
2023-04-28
| ||
| 18:02 | Begin to implement multibyte character codes (it is not enough to be used, so far) check-in: 9087ab7896 user: user tags: trunk | |
|
2023-03-31
| ||
| 17:21 | Fix {edit <number>} so that it replaces the entire argument if it begins with an opening delimiter ("{" or "("). check-in: 563de83a02 user: user tags: trunk | |
|
2023-03-29
| ||
| 23:50 | Implement CONFIG_OMIT_INCLUDE check-in: c3370d4109 user: user tags: trunk | |
Changes
Modified class.c
from [32f95c9ffe]
to [0574e75b7a].
| ︙ | ︙ | |||
1054 1055 1056 1057 1058 1059 1060 |
if(!macros) ParseError("Cannot edit nonexistent macro\n");
nxttok();
if(tokent==TF_INT) {
if(!macstack) ParseError("Empty macro stack\n");
n=tokenv-1;
nxttok();
if(n<0 || macstack->n<=n || !macstack->args[n]) ParseError("Cannot edit nonexistent argument %u\n",n+1);
| | > > > > > | 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 |
if(!macros) ParseError("Cannot edit nonexistent macro\n");
nxttok();
if(tokent==TF_INT) {
if(!macstack) ParseError("Empty macro stack\n");
n=tokenv-1;
nxttok();
if(n<0 || macstack->n<=n || !macstack->args[n]) ParseError("Cannot edit nonexistent argument %u\n",n+1);
if(macstack->args[n]->t&TF_OPEN) {
free_macro(macstack->args[n]->next);
macstack->args[n]->next=0;
} else if(macstack->args[n]->t&TF_EOF) {
ParseError("Invalid edit token\n");
}
free(macstack->args[n]->str);
macstack->args[n]->t=tokent;
macstack->args[n]->v=tokenv;
macstack->args[n]->str=0;
if(*tokenstr) {
macstack->args[n]->str=strdup(tokenstr);
if(!macstack->args[n]->str) fatal("Allocation failed\n");
|
| ︙ | ︙ |
Modified class.doc
from [33a36637f2]
to [ec268e12e1].
| ︙ | ︙ | |||
183 184 185 186 187 188 189 |
permitted to redefine existing macros as well as new ones.
{edit <string> <token>}
Edit a macro. This changes the first token of the definition of the macro
(which must not be another macro) to the specified token. The token is
expanded, and must be a single token once it is expanded; that is what it
will be replaced with. There is a variant with a number in place of a
| | | > | 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 |
permitted to redefine existing macros as well as new ones.
{edit <string> <token>}
Edit a macro. This changes the first token of the definition of the macro
(which must not be another macro) to the specified token. The token is
expanded, and must be a single token once it is expanded; that is what it
will be replaced with. There is a variant with a number in place of a
string; this will replace the first token of the argument of the macro
which is currently being expanded (or the entire token if it starts with
an opening delimiter).
{include <string>}
Include text from another file into this one. You cannot use {include}
inside of another macro or in a macro argument. The file must be in the
current directory, and its name must contain only letters, digits, dot,
underscore, and minus signs, and must start with a letter or digit. If
it is a composite puzzle set, then the name must end with ".include",
|
| ︙ | ︙ |