mirror of
https://github.com/gchq/CyberChef
synced 2024-11-15 09:07:06 +00:00
Allow output highlighting
This commit is contained in:
parent
41c8a5aff0
commit
1d8c7dcb97
1 changed files with 17 additions and 7 deletions
|
@ -66,15 +66,25 @@ class ToHex extends Operation {
|
|||
*/
|
||||
highlight(pos, args) {
|
||||
const delim = Utils.charRep(args[0] || "Space"),
|
||||
len = delim === "\r\n" ? 1 : delim.length;
|
||||
lineSize = args[1],
|
||||
comma = args[2],
|
||||
len = (delim === "\r\n" ? 1 : delim.length) + (comma ? 1 : 0);
|
||||
|
||||
pos[0].start = pos[0].start * (2 + len);
|
||||
pos[0].end = pos[0].end * (2 + len) - len;
|
||||
const countLF = function(p) {
|
||||
// Count the number of LFs from 0 upto p
|
||||
return (p / lineSize | 0) - (p >= lineSize && p % lineSize === 0);
|
||||
};
|
||||
|
||||
// 0x and \x are added to the beginning if they are selected, so increment the positions accordingly
|
||||
if (delim === "0x" || delim === "\\x") {
|
||||
pos[0].start += 2;
|
||||
pos[0].end += 2;
|
||||
pos[0].start = pos[0].start * (2 + len) + countLF(pos[0].start);
|
||||
pos[0].end = pos[0].end * (2 + len) + countLF(pos[0].end);
|
||||
|
||||
// if the deliminators are not prepended, trim the trailing deliminator
|
||||
if (!(delim === "0x" || delim === "\\x")) {
|
||||
pos[0].end -= delim.length;
|
||||
}
|
||||
// if there is comma, trim the trailing comma
|
||||
if (comma) {
|
||||
pos[0].end--;
|
||||
}
|
||||
return pos;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue