From aaa50e010905619442c2a616555a4b32e5a51a83 Mon Sep 17 00:00:00 2001 From: iFortunateSon Date: Tue, 3 Nov 2020 17:58:51 +0300 Subject: [PATCH] Added to stash prepare and extract --- src/stash.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/stash.cpp b/src/stash.cpp index 4ffb9ff4..0d525595 100644 --- a/src/stash.cpp +++ b/src/stash.cpp @@ -184,6 +184,11 @@ void Stash::prepare (const char* fmt PROGMEM, ...) { arglen = stash.size(); break; } + case 'R':{ + arglen = argval; + argval = va_arg(ap, uint16_t); + break; + } } #ifdef __AVR__ *segs++ = argval; @@ -237,6 +242,7 @@ void Stash::extract (uint16_t offset, uint16_t count, void* buf) { case 'S': case 'F': case 'E': + case 'R': ptr = (char*) arg; break; case 'H': @@ -248,6 +254,7 @@ void Stash::extract (uint16_t offset, uint16_t count, void* buf) { } case 'D': case 'S': + case 'R': c = *ptr++; break; case 'F': @@ -260,7 +267,7 @@ void Stash::extract (uint16_t offset, uint16_t count, void* buf) { c = ((Stash*) ptr)->get(); break; } - if (c == 0) { + if (c == 0 && mode != 'R') { mode = '@'; continue; }