Skip to content

Commit

Permalink
Remove agft tiny graph edges on by default and fix aggt edges (#10167)
Browse files Browse the repository at this point in the history
  • Loading branch information
cyanpencil authored and radare committed May 24, 2018
1 parent 3c8d7d5 commit 02d7502
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 36 deletions.
59 changes: 23 additions & 36 deletions libr/core/cmd_anal.c
Expand Up @@ -5720,11 +5720,15 @@ static void cmd_agraph_print(RCore *core, const char *input) {
r_config_get (core->config, "graph.title"));
r_agraph_print (core->graph);
break;
case 't':// "aggt" - tiny graph
case 't':{ // "aggt" - tiny graph
core->graph->is_tiny = true;
int e = r_config_get_i (core->config, "graph.edges");
r_config_set_i (core->config, "graph.edges", 0);
r_core_visual_graph (core, core->graph, NULL, false);
r_config_set_i (core->config, "graph.edges", e);
core->graph->is_tiny = false;
break;
}
case 'k': // "aggk"
{
Sdb *db = r_agraph_get_sdb (core->graph);
Expand Down Expand Up @@ -5820,9 +5824,12 @@ static void cmd_anal_graph(RCore *core, const char *input) {
r_cons_show_cursor (true);
break;
case 't': { // "agft" - tiny graph
int e = r_config_get_i (core->config, "graph.edges");
r_config_set_i (core->config, "graph.edges", 0);
ut64 off_fcn = (*(input + 2)) ? r_num_math (core->num, input + 2) : core->offset;
RAnalFunction *fcn = r_anal_get_fcn_in (core->anal, off_fcn, 0);
r_core_visual_graph (core, NULL, fcn, 2);
r_config_set_i (core->config, "graph.edges", e);
break;
}
case 'd': // "agfd"
Expand All @@ -5849,7 +5856,7 @@ static void cmd_anal_graph(RCore *core, const char *input) {
}
case 'k':{ // "agfk"
ut64 addr = (*(input + 2)) ? r_num_math (core->num, input + 2) : core->offset;
r_core_cmdf (core, "ag-; .agf* %lld; aggk", addr);
r_core_cmdf (core, "ag-; .agf* %"PFMT64d"; aggk", addr);
break;
}
case '*':{// "agf*"
Expand All @@ -5862,7 +5869,7 @@ static void cmd_anal_graph(RCore *core, const char *input) {
if (r_config_get_i (core->config, "graph.web")) {
r_core_cmd0 (core, "=H /graph/");
} else {
char *cmdargs = r_str_newf ("agfd %lld", r_num_math (core->num, input + 2));
char *cmdargs = r_str_newf ("agfd %"PFMT64d, r_num_math (core->num, input + 2));
char *cmd = r_core_graph_cmd (core, cmdargs);
if (cmd && *cmd) {
r_core_cmd0 (core, cmd);
Expand Down Expand Up @@ -5915,11 +5922,7 @@ static void cmd_anal_graph(RCore *core, const char *input) {
case ' ':
case 0: {
core->graph->is_callgraph = true;
char *cmd = r_str_newf ("ag-; .agC*; agg%c;", input[1]);
if (cmd && *cmd) {
r_core_cmd0 (core, cmd);
}
free (cmd);
r_core_cmdf (core, "ag-; .agC*; agg%c;", input[1]);
core->graph->is_callgraph = false;
break;
}
Expand All @@ -5941,7 +5944,7 @@ static void cmd_anal_graph(RCore *core, const char *input) {
break;
}
break;
case 'r': // agr "refs"
case 'r': // "agr" references graph
switch (input[1]) {
case 'v':
case 't':
Expand All @@ -5952,12 +5955,8 @@ static void cmd_anal_graph(RCore *core, const char *input) {
case 'k':
case 'w':
case ' ': {
char *cmd = r_str_newf ("ag-; .agr* %lld; agg%c;",
input[2] ? r_num_math (core->num, input + 2) : core->offset, input[1]);
if (cmd && *cmd) {
r_core_cmd0 (core, cmd);
}
free (cmd);
ut64 addr = input[2] ? r_num_math (core->num, input + 2) : core->offset;
r_core_cmdf (core, "ag-; .agr* %"PFMT64d"; agg%c;", addr, input[1]);
break;
}
case '*': {
Expand Down Expand Up @@ -6005,7 +6004,7 @@ static void cmd_anal_graph(RCore *core, const char *input) {
break;
}
break;
case 'x': // agx "cross refs"
case 'x': // "agx" cross refs
switch (input[1]) {
case 'v':
case 't':
Expand All @@ -6016,12 +6015,8 @@ static void cmd_anal_graph(RCore *core, const char *input) {
case 'k':
case 'w':
case ' ': {
char *cmd = r_str_newf ("ag-; .agx* %lld; agg%c;",
input[2] ? r_num_math (core->num, input + 2) : core->offset, input[1]);
if (cmd && *cmd) {
r_core_cmd0 (core, cmd);
}
free (cmd);
ut64 addr = input[2] ? r_num_math (core->num, input + 2) : core->offset;
r_core_cmdf (core, "ag-; .agx* %"PFMT64d"; agg%c;", addr, input[1]);
break;
}
case '*': {
Expand Down Expand Up @@ -6067,13 +6062,9 @@ static void cmd_anal_graph(RCore *core, const char *input) {
case 'w':
case ' ': {
core->graph->is_callgraph = true;
char *cmd = r_str_newf ("ag-; .agc* %lld; agg%c;",
input[2] ? r_num_math (core->num, input + 2) : core->offset, input[1]);
if (cmd && *cmd) {
r_core_cmd0 (core, cmd);
}
ut64 addr = input[2] ? r_num_math (core->num, input + 2) : core->offset;
r_core_cmdf (core, "ag-; .agc* %"PFMT64d"; agg%c;", addr, input[1]);
core->graph->is_callgraph = false;
free (cmd);
break;
}
case 0:
Expand Down Expand Up @@ -6130,12 +6121,8 @@ static void cmd_anal_graph(RCore *core, const char *input) {
case 'J':
case 'd':
case ' ': {
char *cmd = r_str_newf ("ag-; .aga* %lld; agg%c;",
input[2] ? r_num_math (core->num, input + 2) : core->offset, input[1]);
if (cmd && *cmd) {
r_core_cmd0 (core, cmd);
}
free (cmd);
ut64 addr = input[2] ? r_num_math (core->num, input + 2): core->offset;
r_core_cmdf (core, "ag-; .aga* %"PFMT64d"; agg%c;", addr, input[1]);
break;
}
case 0:
Expand Down Expand Up @@ -6203,7 +6190,7 @@ static void cmd_anal_graph(RCore *core, const char *input) {
break;
}
case 'w': {
char *cmdargs = r_str_newf ("agdd %lld",
char *cmdargs = r_str_newf ("agdd %"PFMT64d,
input[2] ? r_num_math (core->num, input + 2) : core->offset);
char *cmd = r_core_graph_cmd (core, cmdargs);
if (cmd && *cmd) {
Expand All @@ -6222,7 +6209,7 @@ static void cmd_anal_graph(RCore *core, const char *input) {
if (r_config_get_i (core->config, "graph.web")) {
r_core_cmd0 (core, "=H /graph/");
} else {
char *cmdargs = r_str_newf ("agfd %lld", r_num_math (core->num, input + 1));
char *cmdargs = r_str_newf ("agfd %"PFMT64d, r_num_math (core->num, input + 1));
char *cmd = r_core_graph_cmd (core, cmdargs);
if (cmd && *cmd) {
r_core_cmd0 (core, cmd);
Expand Down
1 change: 1 addition & 0 deletions libr/core/graph.c
Expand Up @@ -3708,6 +3708,7 @@ R_API int r_core_visual_graph(RCore *core, RAGraph *g, RAnalFunction *_fcn, int
g->movspeed = r_config_get_i (core->config, "graph.scroll");
g->on_curnode_change = (RANodeCallback) seek_to_node;
g->on_curnode_change_data = core;
g->edgemode = r_config_get_i (core->config, "graph.edges");
bool asm_comments = r_config_get_i (core->config, "asm.comments");
r_config_set (core->config, "asm.comments",
r_str_bool (r_config_get_i (core->config, "graph.comments")));
Expand Down

0 comments on commit 02d7502

Please sign in to comment.