Skip to content

Commit 2aad3d4

Browse files
committed
Fix fixes for /t and node20
1 parent ecfee39 commit 2aad3d4

File tree

4 files changed

+3917
-2439
lines changed

4 files changed

+3917
-2439
lines changed

www/lib/r2.js

+30-26
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/* radare2 Copyleft 2013-2016 pancake */
1+
/* radare2 Copyleft 2013-2024 pancake */
22

33
var r2 = {};
44

@@ -437,12 +437,9 @@ function _internal_cmd(c, cb, err) {
437437
if (hascmd) {
438438
// TODO: use setTimeout for async?
439439
if (typeof (r2plugin) != 'undefined') {
440-
// duktape
441-
return cb(r2cmd(c));
442-
} else {
443-
// node
444-
return hascmd(c, cb);
440+
return cb(r2cmd(c)); // duktape
445441
}
442+
return hascmd(c, cb); // node
446443
} else {
447444
Ajax('GET', r2.root + '/cmd/' + encodeURI(c), '', function(x) {
448445
if (cb) {
@@ -565,30 +562,30 @@ r2.getTextLogger = function(obj) {
565562

566563
r2.filter_asm = function(x, display) {
567564
var curoff = backward ? prev_curoff : next_curoff;
568-
;
569565
var lastoff = backward ? prev_lastoff : next_lastoff;
570-
;
571566
var lines = x.split(/\n/g);
572567
r2.cmd('s', function(x) {
573568
curoff = x;
574569
});
575-
for (var i = lines.length - 1; i > 0; i--) {
570+
for (let i = lines.length - 1; i > 0; i--) {
576571
var a = lines[i].match(/0x([a-fA-F0-9]+)/);
577572
if (a && a.length > 0) {
578573
lastoff = a[0].replace(/:/g, '');
579574
break;
580575
}
581576
}
582577
if (display == 'afl') {
583-
//hasmore (false);
584-
var z = '';
585-
for (var i = 0; i < lines.length; i++) {
586-
var row = lines[i].replace(/\ +/g, ' ').split(/ /g);
578+
// hasmore (false);
579+
let z = '';
580+
for (let i = 0; i < lines.length; i++) {
581+
const row = lines[i].replace(/\ +/g, ' ').split(/ /g);
587582
z += row[0] + ' ' + row[3] + '\n';
588583
}
589584
x = z;
590-
} else if (display[0] == 'f') {
591-
//hasmore (false);
585+
} else if (display === '') {
586+
// nothing
587+
} else if (display[0] === 'f') {
588+
// hasmore (false);
592589
if (display[1] == 's') {
593590
var z = '';
594591
for (var i = 0; i < lines.length; i++) {
@@ -603,34 +600,41 @@ r2.filter_asm = function(x, display) {
603600
} else {
604601
}
605602
} else if (display[0] == 'i') {
606-
//hasmore (false);
603+
// hasmore (false);
607604
if (display[1]) {
608605
var z = '';
609606
for (var i = 0; i < lines.length; i++) {
610607
var elems = lines[i].split(/ /g);
611608
var name = '';
612609
var addr = '';
613610
for (var j = 0; j < elems.length; j++) {
614-
var kv = elems[j].split(/=/);
615-
if (kv[0] == 'addr') {
616-
addr = kv[1];
611+
const kv = elems[j].split(/=/);
612+
if (kv.length !== 2) {
613+
continue;
617614
}
618-
if (kv[0] == 'name') {
619-
name = kv[1];
620-
}
621-
if (kv[0] == 'string') {
615+
switch (kv[0]) {
616+
case 'addr':
617+
addr = kv[1];
618+
break;
619+
case 'name':
620+
case 'string':
622621
name = kv[1];
622+
break;
623623
}
624624
}
625625
z += addr + ' ' + name + '\n';
626626
}
627627
x = z;
628628
}
629-
} //else hasmore (true);
629+
} // else hasmore (true);
630630

631631
function haveDisasm(x) {
632-
if (x[0] == 'p' && x[1] == 'd') return true;
633-
if (x.indexOf(';pd') != -1) return true;
632+
if (x[0] == 'p' && x[1] == 'd') {
633+
return true;
634+
}
635+
if (x.indexOf(';pd') != -1) {
636+
return true;
637+
}
634638
return false;
635639
}
636640
if (haveDisasm(display)) {

www/t/Makefile

+6-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
VERSION=0.1.1
2+
NPMBIN=node_modules/.bin
23

34
GLOBALS=
45
GLOBALS+=--global _
@@ -19,22 +20,24 @@ node_modules:
1920
build: node_modules
2021
mkdir -p dist/t
2122
rm -rf dist
22-
$(shell npm bin)/gulp
23+
$(NPMBIN)/gulp
2324

2425
dist:
2526
rm -f $(DISTZIP)
2627
cd ../../dist && zip -r $(DISTZIP) t
2728

2829
run: dist
2930
# r2 -e http.ui=dist -e http.root=$$PWD -qc=H /bin/ls
31+
(sleep 1 && open http://localhost:9090/t) &
3032
r2 -qcq -e http.verbose=true -e http.root=$$PWD/../../dist -e http.ui=t -e http.sandbox=0 -c=H /bin/ls
3133

3234
watch:
33-
$(shell npm bin)/gulp watch
35+
#$(shell npm bin)/gulp watch
36+
$(NPMBIN)/gulp watch
3437

3538
mrproper: clean
3639
rm -rf node_modules
3740

3841

3942
indent:
40-
node_modules/.bin/semistandard $(GLOBALS) --fix js/*.js
43+
$(NPMBIN)/semistandard $(GLOBALS) --fix js/*.js

www/t/js/main.js

+25-10
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ window.onload = function () {
164164
input.onkeyup = function (ev) {
165165
if (ev.keyCode === 13) {
166166
r2.cmd(input.value, function (x) {
167-
_(n + '_output').innerHTML = '<pre>' + x + '</pre>';
167+
_(n + '_output').innerHTML = x; // '<pre>' + x + '</pre>';
168168
input.value = '';
169169
});
170170
}
@@ -302,9 +302,8 @@ window.onload = function () {
302302
_(n + '_hexdump').innerHTML = seekbar +
303303
'<br /><center><a class=link href=\'#\' id=' + idPrev + '>[PREV]</a>' +
304304
'<a class=link href=\'#\' id=' + id_goto + '>[GOTO]</a>' +
305-
'<a class=link href=\'#\' id=' + idNext + '>[NEXT]</a></center>' +
306-
'<pre>' + x + '</pre>'
307-
;
305+
'<a class=link href=\'#\' id=' + idNext + '>[NEXT]</a></center>' + x;
306+
// '<pre>' + x + '</pre>' ;
308307
// var q = document.getElementById(n+'_hexdump_hex_prev');
309308
var q = document.getElementById(idPrev);
310309
q.onclick = function () {
@@ -392,8 +391,18 @@ window.onload = function () {
392391
code.style.width = obj.style.width - pos[0];
393392
}
394393
}, position, function (frame, nf) {
394+
if (!frame) {
395+
alert("PUTA");
396+
return;
397+
}
395398
frame = frame.curframe[0];
399+
if (!frame) {
400+
alert("NOFr");
401+
}
396402
var seekbar = '';
403+
if (!nf) {
404+
alert("NONF");
405+
}
397406
frame = nf;
398407
if (!frame.offset) {
399408
r2.cmd('s', function (x) {
@@ -418,8 +427,8 @@ window.onload = function () {
418427
_(n + '_code').innerHTML = seekbar +
419428
'<br /><center><a class=link href=\'#\' id=' + idPrev + '>[PREV]</a>' +
420429
'<a class=link href=\'#\' id=' + id_goto + '>[GOTO]</a>' +
421-
'<a class=link href=\'#\' id=' + idNext + '>[NEXT]</a></center>' +
422-
'<pre>' + x + '</pre>';
430+
'<a class=link href=\'#\' id=' + idNext + '>[NEXT]</a></center>' + x;
431+
// '<pre>' + x + '</pre>';
423432
var q = document.getElementById(idPrev);
424433
q.onclick = function () {
425434
r2.cmd('s-512;s', function (res) {
@@ -451,7 +460,12 @@ window.onload = function () {
451460
});
452461
seekAction();
453462
r2.cmd('s', function (res) {
463+
if (typeof frame === 'undefined') {
464+
alert("Noframe");
465+
return;
466+
}
454467
frame.offset = res.trim();
468+
alert("PANTADESAY");
455469
seekAction();
456470
frame.refresh();
457471
});
@@ -466,12 +480,12 @@ window.onload = function () {
466480
r2.cmd(t.cmd, function (x) {
467481
x = r2.filter_asm(x, 'pd');
468482
_(t.key).innerHTML =
469-
'<div class=\'frame_body\'><a href=\'#\' id=\'cmd_' + ctr + '\'>cmd</a><pre>' + x + '</pre></div>';
483+
'<div class=\'frame_body\'><a href=\'#\' id=\'cmd_' + ctr + '\'>cmd</a>' + x + '</div>';
470484
});
471485
};
472486
_('cmd_' + ctr).onclick = function () {
473487
t.key = 'div_' + ctr;
474-
t.cmd = prompt();
488+
t.cmd = prompt("lala");
475489
t.update();
476490
};
477491
}
@@ -495,15 +509,16 @@ window.onload = function () {
495509
// t.frames[0].push (t.frames.pop ()[0]);
496510
t.run();
497511
t.update = function () {
512+
alert(t.cmd);
498513
r2.cmd(t.cmd, function (x) {
499514
x = r2.filter_asm(x);
500515
_(t.key).innerHTML =
501-
'<div class=\'frame_body\'><pre>' + x + '</pre></div>';
516+
'<div class=\'frame_body\'>' + x + '</div>';
502517
});
503518
};
504519
_('cmd_' + ctr).onclick = function () {
505520
t.key = 'div_' + ctr;
506-
t.cmd = prompt();
521+
t.cmd = prompt("pene");
507522
t.update();
508523
};
509524
};

0 commit comments

Comments
 (0)