Overview
| Comment: | Implement the %C substitution, and allow %s substitutions to display message names as well. |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA1: |
5cdca70402fcdd9c8ea98aa964219ec9 |
| User & Date: | user on 2021-03-09 23:15:05.073 |
| Other Links: | manifest | tags |
Context
|
2021-03-11
| ||
| 05:38 | Implement importing levels check-in: 04cceae6dc user: user tags: trunk | |
|
2021-03-09
| ||
| 23:15 | Implement the %C substitution, and allow %s substitutions to display message names as well. check-in: 5cdca70402 user: user tags: trunk | |
| 00:38 | Add a comment into class.c describing the use of the hash tables check-in: 136167067e user: user tags: trunk | |
Changes
Modified class.doc
from [b561abab61]
to [10812d8f88].
| ︙ | ︙ | |||
1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 | === Substitution codes === %c Display a single character whose code is the low 8-bits of the value. %d Display a signed decimal number. %i Display a picture. Consumes two arguments, being first a class and then the image number. If either argument is not valid, displays nothing. The picture may take up multiple lines of space; the lines will be moved | > > > > | 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 | === Substitution codes === %c Display a single character whose code is the low 8-bits of the value. %C The low 3-bits of the argument specifies the colour of the text. If it is not a number, then the colour is unchanged. %d Display a signed decimal number. %i Display a picture. Consumes two arguments, being first a class and then the image number. If either argument is not valid, displays nothing. The picture may take up multiple lines of space; the lines will be moved |
| ︙ | ︙ |
Modified exec.c
from [f09acdaf65]
to [7f9f58fd2f].
| ︙ | ︙ | |||
1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 |
if(argi==argc) break;
v=vstack[vstackptr+argi++];
if(v.t==TY_NUMBER) {
sqlite3_str_appendchar(s,1,31);
sqlite3_str_appendchar(s,1,v.u&255?:255);
}
break;
case 'd':
if(argi==argc) break;
v=vstack[vstackptr+argi++];
if(v.t==TY_NUMBER) sqlite3_str_appendf(s,"%d",(signed int)v.s);
break;
case 'i':
if(argi>=argc-1) break;
| > > > > > | 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 |
if(argi==argc) break;
v=vstack[vstackptr+argi++];
if(v.t==TY_NUMBER) {
sqlite3_str_appendchar(s,1,31);
sqlite3_str_appendchar(s,1,v.u&255?:255);
}
break;
case 'C':
if(argi==argc) break;
v=vstack[vstackptr+argi++];
if(v.t==TY_NUMBER) sqlite3_str_appendchar(s,1,(v.u&7)+1);
break;
case 'd':
if(argi==argc) break;
v=vstack[vstackptr+argi++];
if(v.t==TY_NUMBER) sqlite3_str_appendf(s,"%d",(signed int)v.s);
break;
case 'i':
if(argi>=argc-1) break;
|
| ︙ | ︙ | |||
1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 |
break;
case TY_NUMBER:
sqlite3_str_appendf(s,"%llu",(sqlite3_int64)v.u);
break;
case TY_CLASS:
sqlite3_str_appendf(s,"%s",classes[v.u]->name);
break;
default:
Throw("Type mismatch");
}
break;
case 'u':
if(argi==argc) break;
v=vstack[vstackptr+argi++];
| > > > | 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 |
break;
case TY_NUMBER:
sqlite3_str_appendf(s,"%llu",(sqlite3_int64)v.u);
break;
case TY_CLASS:
sqlite3_str_appendf(s,"%s",classes[v.u]->name);
break;
case TY_MESSAGE:
sqlite3_str_appendf(s,"%s",v.u<256?standard_message_names[v.u]:messages[v.u-256]);
break;
default:
Throw("Type mismatch");
}
break;
case 'u':
if(argi==argc) break;
v=vstack[vstackptr+argi++];
|
| ︙ | ︙ | |||
1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 |
break;
case TY_NUMBER:
quiz_text=sqlite3_mprintf("%llu",(sqlite3_int64)v.u);
break;
case TY_CLASS:
quiz_text=sqlite3_mprintf("%s",classes[v.u]->name);
break;
default:
Throw("Type mismatch");
}
}
if(!quiz_text) fatal("Allocation failed\n");
t=quiz_text;
while(*t) {
| > > > | 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 |
break;
case TY_NUMBER:
quiz_text=sqlite3_mprintf("%llu",(sqlite3_int64)v.u);
break;
case TY_CLASS:
quiz_text=sqlite3_mprintf("%s",classes[v.u]->name);
break;
case TY_MESSAGE:
quiz_text=sqlite3_mprintf("%s",v.u<256?standard_message_names[v.u]:messages[v.u-256]);
break;
default:
Throw("Type mismatch");
}
}
if(!quiz_text) fatal("Allocation failed\n");
t=quiz_text;
while(*t) {
|
| ︙ | ︙ |