From 08a5fee128ac1cb8e4025dbee3c996a11e4f4bbb Mon Sep 17 00:00:00 2001 From: g3gg0 Date: Sat, 19 Nov 2022 12:28:58 +0100 Subject: [PATCH] log code updates, showing the last entries only --- .../main/nfc/scenes/nfc_scene_emulate_nfcv.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/applications/main/nfc/scenes/nfc_scene_emulate_nfcv.c b/applications/main/nfc/scenes/nfc_scene_emulate_nfcv.c index 70f0c8ba0..2cc0fe46c 100644 --- a/applications/main/nfc/scenes/nfc_scene_emulate_nfcv.c +++ b/applications/main/nfc/scenes/nfc_scene_emulate_nfcv.c @@ -1,6 +1,6 @@ #include "../nfc_i.h" -#define NFC_SCENE_EMULATE_NFCV_LOG_SIZE_MAX (200) +#define NFC_SCENE_EMULATE_NFCV_LOG_SIZE_MAX (100) enum { NfcSceneEmulateNfcVStateWidget, @@ -95,11 +95,17 @@ bool nfc_scene_emulate_nfcv_on_event(void* context, SceneManagerEvent event) { if(!furi_string_size(nfc->text_box_store)) { nfc_scene_emulate_nfcv_widget_config(nfc, true); } - // Update TextBox data - if(furi_string_size(nfc->text_box_store) < NFC_SCENE_EMULATE_NFCV_LOG_SIZE_MAX) { + if(strlen(nfcv_data->last_command) > 0) { + /* use the last n bytes from the log so there's enough space for the new log entry */ + size_t maxSize = NFC_SCENE_EMULATE_NFCV_LOG_SIZE_MAX - (strlen(nfcv_data->last_command) + 3); + if(furi_string_size(nfc->text_box_store) >= maxSize) { + furi_string_right(nfc->text_box_store, maxSize); + } furi_string_cat_printf(nfc->text_box_store, "%s", nfcv_data->last_command); furi_string_push_back(nfc->text_box_store, '\n'); text_box_set_text(nfc->text_box, furi_string_get_cstr(nfc->text_box_store)); + + /* clear previously logged command */ strcpy(nfcv_data->last_command, ""); } consumed = true;