2
0
mirror of https://github.com/gchq/CyberChef synced 2025-12-27 05:33:23 +00:00

Multiple Register operations can now be called in a single recipe

This commit is contained in:
n1474335
2017-09-28 18:39:35 +00:00
parent e2ac297102
commit 877ab57f0a
6 changed files with 36 additions and 18 deletions

View File

@@ -441,18 +441,19 @@ RecipeWaiter.prototype.opRemove = function(e) {
* Sets register values.
*
* @param {number} opIndex
* @param {number} numPrevRegisters
* @param {string[]} registers
*/
RecipeWaiter.prototype.setRegisters = function(opIndex, registers) {
RecipeWaiter.prototype.setRegisters = function(opIndex, numPrevRegisters, registers) {
const op = document.querySelector(`#rec-list .operation:nth-child(${opIndex + 1})`),
prevRegList = op.querySelector(".register-list");
// Remove previous div
if (prevRegList) prevRegList.remove();
window.Utils = Utils;
let registerList = [];
for (let i = 0; i < registers.length; i++) {
registerList.push(`$R${i} = ${Utils.truncate(Utils.printable(registers[i]), 100)}`);
registerList.push(`$R${numPrevRegisters + i} = ${Utils.escapeHtml(Utils.truncate(Utils.printable(registers[i]), 100))}`);
}
const registerListEl = `<div class="register-list">
${registerList.join("<br>")}

View File

@@ -62,7 +62,7 @@ WorkerWaiter.prototype.handleChefMessage = function(e) {
this.app.options[r.data.option] = r.data.value;
break;
case "setRegisters":
this.manager.recipe.setRegisters(r.data.opIndex, r.data.registers);
this.manager.recipe.setRegisters(r.data.opIndex, r.data.numPrevRegisters, r.data.registers);
break;
case "highlightsCalculated":
this.manager.highlighter.displayHighlights(r.data.pos, r.data.direction);

View File

@@ -201,3 +201,13 @@ button.dropdown-toggle {
background-color: var(--disabled-bg-colour) !important;
border-color: var(--disabled-border-colour) !important;
}
.break .register-list {
color: var(--fc-breakpoint-operation-font-colour) !important;
background-color: var(--fc-breakpoint-operation-border-colour) !important;
}
.disabled .register-list {
color: var(--disabled-font-colour) !important;
background-color: var(--disabled-border-colour) !important;
}