diff options
Diffstat (limited to 'tools/perf/util/ui/browsers/map.c')
| -rw-r--r-- | tools/perf/util/ui/browsers/map.c | 20 | 
1 files changed, 11 insertions, 9 deletions
diff --git a/tools/perf/util/ui/browsers/map.c b/tools/perf/util/ui/browsers/map.c index 733daba60cd..16b7d70f2c5 100644 --- a/tools/perf/util/ui/browsers/map.c +++ b/tools/perf/util/ui/browsers/map.c @@ -97,31 +97,34 @@ static int map_browser__search(struct map_browser *self)  	return 0;  } -static int map_browser__run(struct map_browser *self, struct newtExitStruct *es) +static int map_browser__run(struct map_browser *self)  { +	int key; +  	if (ui_browser__show(&self->b, self->map->dso->long_name,  			     "Press <- or ESC to exit, %s / to search",  			     verbose ? "" : "restart with -v to use") < 0)  		return -1;  	newtFormAddHotKey(self->b.form, NEWT_KEY_LEFT); -	newtFormAddHotKey(self->b.form, NEWT_KEY_ENTER); +	newtFormAddHotKey(self->b.form, NEWT_KEY_ESCAPE); +	newtFormAddHotKey(self->b.form, 'Q'); +	newtFormAddHotKey(self->b.form, 'q'); +	newtFormAddHotKey(self->b.form, CTRL('c'));  	if (verbose)  		newtFormAddHotKey(self->b.form, '/');  	while (1) { -		ui_browser__run(&self->b, es); +		key = ui_browser__run(&self->b); -		if (es->reason != NEWT_EXIT_HOTKEY) -			break; -		if (verbose && es->u.key == '/') +		if (verbose && key == '/')  			map_browser__search(self);  		else  			break;  	}  	ui_browser__hide(&self->b); -	return 0; +	return key;  }  int map__browse(struct map *self) @@ -135,7 +138,6 @@ int map__browse(struct map *self)  		},  		.map = self,  	}; -	struct newtExitStruct es;  	struct rb_node *nd;  	char tmp[BITS_PER_LONG / 4];  	u64 maxaddr = 0; @@ -156,5 +158,5 @@ int map__browse(struct map *self)  	mb.addrlen = snprintf(tmp, sizeof(tmp), "%llx", maxaddr);  	mb.b.width += mb.addrlen * 2 + 4 + mb.namelen; -	return map_browser__run(&mb, &es); +	return map_browser__run(&mb);  }  |