From df52e1e119804cc5e7d0b7f77a7d1bf42b2da9dc Mon Sep 17 00:00:00 2001 From: Elliott Hughes Date: Wed, 6 May 2015 12:40:05 -0700 Subject: Add an alternate screen for viewing recovery logs. This makes it easier to go back and forth without losing current output. Also make the display more like regular more(1). Bug: http://b/20834540 Change-Id: Icc5703e9c8a378cc7072d8ebb79e34451267ee1b (cherry picked from commit c049163234003ef463bca018920622bc8269c69b) --- recovery.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'recovery.cpp') diff --git a/recovery.cpp b/recovery.cpp index 2c78bafac..80a8c7ba5 100644 --- a/recovery.cpp +++ b/recovery.cpp @@ -701,12 +701,11 @@ static bool wipe_cache(bool should_confirm, Device* device) { } static void choose_recovery_file(Device* device) { - // "Go back" + KEEP_LOG_COUNT * 2 + terminating nullptr entry - char* entries[KEEP_LOG_COUNT * 2 + 2]; + // "Back" + KEEP_LOG_COUNT * 2 + terminating nullptr entry + char* entries[1 + KEEP_LOG_COUNT * 2 + 1]; memset(entries, 0, sizeof(entries)); unsigned int n = 0; - entries[n++] = strdup("Go back"); // Add LAST_LOG_FILE + LAST_LOG_FILE.x // Add LAST_KMSG_FILE + LAST_KMSG_FILE.x @@ -734,11 +733,13 @@ static void choose_recovery_file(Device* device) { } } + entries[n++] = strdup("Back"); + const char* headers[] = { "Select file to view", nullptr }; while (true) { int chosen_item = get_menu_selection(headers, entries, 1, 0, device); - if (chosen_item == 0) break; + if (strcmp(entries[chosen_item], "Back") == 0) break; // TODO: do we need to redirect? ShowFile could just avoid writing to stdio. redirect_stdio("/dev/null"); -- cgit v1.2.3