From 0e40177f85e4bb85cdc4eacd21fc037c9328ee70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milie=20Feral?= Date: Tue, 30 Jul 2019 16:27:57 +0200 Subject: [PATCH] [poincare] Product, Sum, Integral, Floor etc (special layouts) serialize to identifier[arg1, arg2, ...] instead of identifier([arg1, arg2, ...]) which is not parseable --- poincare/src/integral_layout.cpp | 14 +------------- poincare/src/sequence_layout.cpp | 13 +------------ poincare/src/serialization_helper.cpp | 24 ++++-------------------- 3 files changed, 6 insertions(+), 45 deletions(-) diff --git a/poincare/src/integral_layout.cpp b/poincare/src/integral_layout.cpp index 4c198dd4c..44a1e0372 100644 --- a/poincare/src/integral_layout.cpp +++ b/poincare/src/integral_layout.cpp @@ -159,13 +159,7 @@ int IntegralLayoutNode::serialize(char * buffer, int bufferSize, Preferences::Pr return bufferSize-1; } - // Write the opening parenthesis - numberOfChar += SerializationHelper::CodePoint(buffer + numberOfChar, bufferSize - numberOfChar, '('); - if (numberOfChar >= bufferSize-1) { - return bufferSize-1; - } - - /* Add an extra system parenthesis to avoid serializing: + /* Add an system parenthesis to avoid serializing: * 2)+(1 * ∫ (5)dx * 1 @@ -190,12 +184,6 @@ int IntegralLayoutNode::serialize(char * buffer, int bufferSize, Preferences::Pr // Write the closing system parenthesis numberOfChar += SerializationHelper::CodePoint(buffer + numberOfChar, bufferSize - numberOfChar, UCodePointRightSystemParenthesis); - if (numberOfChar >= bufferSize-1) { - return bufferSize-1; - } - - // Write the closing parenthesis - numberOfChar += SerializationHelper::CodePoint(buffer + numberOfChar, bufferSize - numberOfChar, ')'); buffer[numberOfChar] = 0; return numberOfChar; } diff --git a/poincare/src/sequence_layout.cpp b/poincare/src/sequence_layout.cpp index ff3be92bb..2725cf4f9 100644 --- a/poincare/src/sequence_layout.cpp +++ b/poincare/src/sequence_layout.cpp @@ -212,12 +212,7 @@ int SequenceLayoutNode::writeDerivedClassInBuffer(const char * operatorName, cha int numberOfChar = strlcpy(buffer, operatorName, bufferSize); if (numberOfChar >= bufferSize-1) { return bufferSize-1; } - // Write the opening parenthesis - numberOfChar += SerializationHelper::CodePoint(buffer + numberOfChar, bufferSize - numberOfChar, '('); - if (numberOfChar >= bufferSize-1) { return bufferSize-1; } - - - /* Add an extra system parenthesis to avoid serializing: + /* Add an system parenthesis to avoid serializing: * 2)+(1 * ∑ (5) * n=1 @@ -240,12 +235,6 @@ int SequenceLayoutNode::writeDerivedClassInBuffer(const char * operatorName, cha // Write the closing system parenthesis numberOfChar += SerializationHelper::CodePoint(buffer + numberOfChar, bufferSize - numberOfChar, UCodePointRightSystemParenthesis); - if (numberOfChar >= bufferSize-1) { - return bufferSize-1; - } - - // Write the closing parenthesis - numberOfChar += SerializationHelper::CodePoint(buffer + numberOfChar, bufferSize - numberOfChar, ')'); buffer[numberOfChar] = 0; return numberOfChar; } diff --git a/poincare/src/serialization_helper.cpp b/poincare/src/serialization_helper.cpp index 778167953..2de00a6f0 100644 --- a/poincare/src/serialization_helper.cpp +++ b/poincare/src/serialization_helper.cpp @@ -111,19 +111,11 @@ int InfixPrefix( assert(buffer[bufferSize - 1] == 0); return bufferSize-1; } - // Add the opening parenthesis - numberOfChar += UTF8Decoder::CodePointToChars('(', buffer+numberOfChar, bufferSize - numberOfChar); + // Add the opening (system or user) parenthesis + numberOfChar += UTF8Decoder::CodePointToChars(needsSystemParentheses ? UCodePointLeftSystemParenthesis : CodePoint('('), buffer+numberOfChar, bufferSize - numberOfChar); if (numberOfChar >= bufferSize-1) { return bufferSize-1; } - - if (needsSystemParentheses) { - // Add the opening system parenthesis - numberOfChar += UTF8Decoder::CodePointToChars(UCodePointLeftSystemParenthesis, buffer+numberOfChar, bufferSize - numberOfChar); - if (numberOfChar >= bufferSize-1) { - return bufferSize-1; - } - } } int childrenCount = node->numberOfChildren(); @@ -157,16 +149,8 @@ int InfixPrefix( } if (prefix) { - if (needsSystemParentheses) { - // Add the closing system parenthesis - numberOfChar += UTF8Decoder::CodePointToChars(UCodePointRightSystemParenthesis, buffer+numberOfChar, bufferSize - numberOfChar); - if (numberOfChar >= bufferSize-1) { - return bufferSize-1; - } - } - - // Add the closing parenthesis - numberOfChar += UTF8Decoder::CodePointToChars(')', buffer+numberOfChar, bufferSize - numberOfChar); + // Add the closing system parenthesis + numberOfChar += UTF8Decoder::CodePointToChars(needsSystemParentheses ? UCodePointRightSystemParenthesis : CodePoint(')'), buffer+numberOfChar, bufferSize - numberOfChar); if (numberOfChar >= bufferSize-1) { return bufferSize-1; }