From a536ef58cf869bcca64ea12cb6efc28e2f05d1f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milie=20Feral?= Date: Wed, 22 Nov 2017 14:18:51 +0100 Subject: [PATCH] [poincare] Fix writeTextInBuffer of Power and Division: add parenthesis to x^(2/3) and x^y^z Change-Id: I61bed286260a21b42712eff04d46fc664724c203 --- poincare/include/poincare/division.h | 2 +- poincare/include/poincare/power.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/poincare/include/poincare/division.h b/poincare/include/poincare/division.h index d30fe3bd3..631a2e094 100644 --- a/poincare/include/poincare/division.h +++ b/poincare/include/poincare/division.h @@ -20,7 +20,7 @@ private: ExpressionLayout * privateCreateLayout(FloatDisplayMode floatDisplayMode, ComplexFormat complexFormat) const override; int writeTextInBuffer(char * buffer, int bufferSize) const override { return LayoutEngine::writeInfixExpressionTextInBuffer(this, buffer, bufferSize, "/", [](const Expression * e) { - return e->type() == Type::Multiplication || e->type() == Type::Addition || e->type() == Type::Subtraction || e->type() == Type::Opposite; + return e->type() == Type::Division || e->type() == Type::Multiplication || e->type() == Type::Addition || e->type() == Type::Subtraction || e->type() == Type::Opposite || (e->type() == Type::Rational && !static_cast(e)->denominator().isOne()); }); } /* Simplification */ diff --git a/poincare/include/poincare/power.h b/poincare/include/poincare/power.h index ca2e54e12..e43cad633 100644 --- a/poincare/include/poincare/power.h +++ b/poincare/include/poincare/power.h @@ -26,7 +26,7 @@ private: ExpressionLayout * privateCreateLayout(FloatDisplayMode floatDisplayMode, ComplexFormat complexFormat) const override; int writeTextInBuffer(char * buffer, int bufferSize) const override { return LayoutEngine::writeInfixExpressionTextInBuffer(this, buffer, bufferSize, name(), [](const Expression * e) { - return e->type() == Type::Division || e->type() == Type::Multiplication || e->type() == Type::Addition || e->type() == Type::Subtraction || e->type() == Type::Opposite; + return e->type() == Type::Power || e->type() == Type::Division || e->type() == Type::Multiplication || e->type() == Type::Addition || e->type() == Type::Subtraction || e->type() == Type::Opposite || (e->type() == Type::Rational && !static_cast(e)->denominator().isOne()); }); } static const char * name() { return "^"; }