From e2865e22d4b7b99432513d8ec03c6d86565d8d60 Mon Sep 17 00:00:00 2001 From: Stephan Hadinger Date: Sat, 22 May 2021 15:10:13 +0200 Subject: [PATCH] Berry allow import from file system --- lib/libesp32/Berry/default/be_port.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/libesp32/Berry/default/be_port.cpp b/lib/libesp32/Berry/default/be_port.cpp index f6bb1e8c1..7a73d7538 100644 --- a/lib/libesp32/Berry/default/be_port.cpp +++ b/lib/libesp32/Berry/default/be_port.cpp @@ -95,8 +95,15 @@ BERRY_API char* be_readstring(char *buffer, size_t size) void* be_fopen(const char *filename, const char *modes) { if (ufsp != nullptr && filename != nullptr && modes != nullptr) { + char fname2[strlen(filename) + 2]; + if (filename[0] == '/') { + strcpy(fname2, filename); // copy unchanged + } else { + fname2[0] = '/'; + strcpy(fname2 + 1, filename); // prepend with '/' + } // Serial.printf("be_fopen filename=%s, modes=%s\n", filename, modes); - File f = ufsp->open(filename, modes); // returns an object, not a pointer + File f = ufsp->open(fname2, modes); // returns an object, not a pointer if (f) { File * f_ptr = new File(f); // copy to dynamic object *f_ptr = f; // TODO is this necessary?