diff --git a/apps/code/editor_controller.cpp b/apps/code/editor_controller.cpp index bb02d1ff6..6de0a862f 100644 --- a/apps/code/editor_controller.cpp +++ b/apps/code/editor_controller.cpp @@ -77,7 +77,6 @@ void EditorController::viewDidDisappear() { } bool EditorController::textAreaDidReceiveEvent(TextArea * textArea, Ion::Events::Event event) { - m_script.setCursorPosition(textArea->cursorLocation() - m_script.content()); if (App::app()->textInputDidReceiveEvent(textArea, event)) { return true; } @@ -163,7 +162,7 @@ void EditorController::cleanStorageEmptySpace() { Ion::Storage::Record::Data scriptValue = m_script.value(); Ion::Storage::sharedStorage()->getAvailableSpaceFromEndOfRecord( m_script, - scriptValue.size - Script::StatusSize() - Script::CursorPositionSize() - (strlen(m_script.content()) + 1)); // TODO optimize number of script fetches + scriptValue.size - Script::StatusSize() - (strlen(m_script.content()) + 1)); // TODO optimize number of script fetches } diff --git a/apps/code/script.cpp b/apps/code/script.cpp index ed666d36c..4b39b3452 100644 --- a/apps/code/script.cpp +++ b/apps/code/script.cpp @@ -1,9 +1,6 @@ #include "script.h" #include "script_store.h" -#if APP_SCRIPT_LOG -#include -#endif namespace Code { static inline void intToText(int i, char * buffer, int bufferSize) { @@ -72,18 +69,6 @@ uint8_t * StatusFromData(Script::Data d) { return const_cast(static_cast(d.buffer)); } -uint16_t * Script::CursorPosition() { - assert(!isNull()); - Data d = value(); - return (uint16_t *)(StatusFromData(d) + StatusSize()); -} -void Script::setCursorPosition(uint16_t position) { - assert(!isNull()); - Data d = value(); - *CursorPosition() = position; - setValue(d); -} - bool Script::autoImportationStatus() const { return getStatutBit(k_autoImportationStatusMask); } @@ -97,7 +82,7 @@ void Script::toggleAutoimportationStatus() { const char * Script::content() const { Data d = value(); - return ((const char *)d.buffer) + StatusSize() + CursorPositionSize(); + return ((const char *)d.buffer) + StatusSize(); } bool Script::fetchedFromConsole() const { diff --git a/apps/code/script.h b/apps/code/script.h index 1c6ff1d15..6f7df9cda 100644 --- a/apps/code/script.h +++ b/apps/code/script.h @@ -5,8 +5,8 @@ namespace Code { -/* Record: | Size | Name | Body | - * Script: | | | Status | CursorPosition | Content | +/* Record: | Size | Name | Body | + * Script: | | | Status | Content | * * * |FetchedForVariableBoxBit @@ -23,9 +23,7 @@ namespace Code { * FetchedForVariableBoxBit is used to prevent circular importation problems, * such as scriptA importing scriptB, which imports scriptA. Once we get the * variables from a script to put them in the variable box, we switch the bit to - * 1 and won't reload it afterwards. - * - * Cursor Position is two bytes long and has the cursor position value */ + * 1 and won't reload it afterwards. */ class Script : public Ion::Storage::Record { private: @@ -35,7 +33,6 @@ private: // See the comment at the beginning of the file static constexpr size_t k_statusSize = 1; - static constexpr size_t k_cursorPositionSize = 2; public: static constexpr int k_defaultScriptNameMaxSize = 6 + k_defaultScriptNameNumberMaxSize + 1; @@ -46,16 +43,13 @@ public: static bool DefaultName(char buffer[], size_t bufferSize); static bool nameCompliant(const char * name); static constexpr size_t StatusSize() { return k_statusSize; } - static constexpr size_t CursorPositionSize() { return k_cursorPositionSize; } Script(Ion::Storage::Record r = Ion::Storage::Record()) : Record(r) {} bool autoImportationStatus() const; void toggleAutoimportationStatus(); const char * content() const; - size_t contentSize() { return value().size - k_statusSize - k_cursorPositionSize; } - void setCursorPosition(uint16_t position); - uint16_t * CursorPosition(); + size_t contentSize() { return value().size - k_statusSize; } /* Fetched status */ bool fetchedFromConsole() const; diff --git a/apps/code/script_store.cpp b/apps/code/script_store.cpp index 03632b04b..ad790811b 100644 --- a/apps/code/script_store.cpp +++ b/apps/code/script_store.cpp @@ -51,7 +51,7 @@ void ScriptStore::clearConsoleFetchInformation() { } Script::ErrorStatus ScriptStore::addScriptFromTemplate(const ScriptTemplate * scriptTemplate) { - size_t valueSize = Script::StatusSize() + Script::CursorPositionSize() + strlen(scriptTemplate->content()) + 1; // (auto importation status + cursor position + content fetched status) + scriptcontent size + null-terminating char + size_t valueSize = Script::StatusSize() + strlen(scriptTemplate->content()) + 1; // (auto importation status + content fetched status) + scriptcontent size + null-terminating char assert(Script::nameCompliant(scriptTemplate->name())); Script::ErrorStatus err = Ion::Storage::sharedStorage()->createRecordWithFullName(scriptTemplate->name(), scriptTemplate->value(), valueSize); assert(err != Script::ErrorStatus::NonCompliantName); diff --git a/apps/code/script_store.h b/apps/code/script_store.h index 9d232d002..00beec5d3 100644 --- a/apps/code/script_store.h +++ b/apps/code/script_store.h @@ -51,7 +51,7 @@ private: * be able to store a Script with default name and its extension, the * importation status (1 char), the cursor (2 char), the default content "from math import *\n" * (20 char) and 10 char of free space. */ - static constexpr int k_fullFreeSpaceSizeLimit = sizeof(Ion::Storage::record_size_t)+Script::k_defaultScriptNameMaxSize+k_scriptExtensionLength+1+20+10+2; + static constexpr int k_fullFreeSpaceSizeLimit = sizeof(Ion::Storage::record_size_t)+Script::k_defaultScriptNameMaxSize+k_scriptExtensionLength+1+20+10; }; } diff --git a/apps/code/script_template.cpp b/apps/code/script_template.cpp index eabdc427d..c5bde929e 100644 --- a/apps/code/script_template.cpp +++ b/apps/code/script_template.cpp @@ -2,7 +2,7 @@ namespace Code { -constexpr ScriptTemplate emptyScriptTemplate(".py", "\x01" "\x00\x00" R"(from math import * +constexpr ScriptTemplate emptyScriptTemplate(".py", "\x01" R"(from math import * )"); diff --git a/apps/code/script_template.h b/apps/code/script_template.h index fad0ea0de..6ca117f48 100644 --- a/apps/code/script_template.h +++ b/apps/code/script_template.h @@ -10,7 +10,7 @@ public: constexpr ScriptTemplate(const char * name, const char * value) : m_name(name), m_value(value) {} static const ScriptTemplate * Empty(); const char * name() const { return m_name; } - const char * content() const { return m_value + Script::StatusSize() + Script::CursorPositionSize(); } + const char * content() const { return m_value; + Script::StatusSize();} const char * value() const { return m_value; } private: const char * m_name;