[PATCH] small glue length cleanup

2002-08-08 Thread John Levon


look OK ?

Index: lyxgluelength.C
===
RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/lyxgluelength.C,v
retrieving revision 1.4
diff -u -r1.4 lyxgluelength.C
--- lyxgluelength.C 21 Mar 2002 17:25:14 -  1.4
+++ lyxgluelength.C 8 Aug 2002 20:09:19 -
 -41,52 +41,48 
 {
ostringstream buffer;
 
-   if (!plus_.zero())
-   if (!minus_.zero())
-   if (len_.unit() == plus_.unit()  len_.unit() == 
minus_.unit())
-   if (plus_.value() == minus_.value())
-   buffer  len_.value()  +-
-   plus_.value()  
unit_name[len_.unit()];
-   else
-   buffer  len_.value()
-   '+'  plus_.value()
-   '-'  minus_.value()
-   unit_name[len_.unit()];
-   else
-   if (plus_.unit() == minus_.unit()
-plus_.value() == minus_.value())
-   buffer  len_.value()  
unit_name[len_.unit()]
-   +-  plus_.value()
-   unit_name[plus_.unit()];
-
-   else
-   buffer  len_.value()  
unit_name[len_.unit()]
-   '+'  plus_.value()
-   unit_name[plus_.unit()]
-   '-'  minus_.value()
-   unit_name[minus_.unit()];
-   else
-   if (len_.unit() == plus_.unit())
-   buffer  len_.value()  '+'  plus_.value()
-   unit_name[len_.unit()];
-   else
-   buffer  len_.value()  unit_name[len_.unit()]
-   '+'  plus_.value()
-   unit_name[plus_.unit()];
-
-   else
-   if (!minus_.zero())
-   if (len_.unit() == minus_.unit())
-   buffer  len_.value()  '-'  minus_.value()
-   unit_name[len_.unit()];
-
-   else
-   buffer  len_.value()  unit_name[len_.unit()]
-   '-'  minus_.value()
-   unit_name[minus_.unit()];
-   else
-   buffer  len_.value()  unit_name[len_.unit()];
+   buffer  len_.value();
 
+   if (plus_.zero()  minus_.zero()) {
+   buffer  unit_name[len_.unit()];
+   return buffer.str().c_str();
+   }
+ 
+   // just len and plus
+   if (minus_.zero()) {
+   if (len_.unit() == plus_.unit())
+   buffer  unit_name[len_.unit()];
+   buffer  +  plus_.value();
+   buffer  unit_name[plus_.unit()];
+   return buffer.str().c_str();
+   }
+ 
+   // just len and minus
+   if (plus_.zero()) {
+   if (len_.unit() == minus_.unit())
+   buffer  unit_name[len_.unit()];
+   buffer  -  minus_.value();
+   buffer  unit_name[minus_.unit()];
+   return buffer.str().c_str();
+   }
+
+   // ok, len, plus AND minus
+ 
+   // len+-
+   if (minus_ == plus_) {
+   if (len_.unit() != minus_.unit())
+   buffer  unit_name[len_.unit()];
+   buffer  +-  minus_.value();
+   buffer  unit_name[minus_.unit()];
+   return buffer.str().c_str();
+   }
+ 
+   // this is so rare a case, why bother minimising units ?
+
+   buffer  unit_name[len_.unit()];
+   buffer  +  plus_.value()  unit_name[plus_.unit()];
+   buffer  -  minus_.value()  unit_name[minus_.unit()];
+ 
return buffer.str().c_str();
 }
 
 -95,25 +91,12 
 {
ostringstream buffer;
 
+   buffer  len_.value()  unit_name[len_.unit()];
+ 
if (!plus_.zero())
-   if (!minus_.zero())
-   buffer  len_.value()  unit_name[len_.unit()]
-plus 
-   plus_.value()  unit_name[plus_.unit()]
-minus 
-   minus_.value()  unit_name[minus_.unit()];
-   else
-   buffer  len_.value()  unit_name[len_.unit()]
-plus 
-   plus_.value()  unit_name[plus_.unit()];
-   else
-   if 

[PATCH] small glue length cleanup

2002-08-08 Thread John Levon


look OK ?

Index: lyxgluelength.C
===
RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/lyxgluelength.C,v
retrieving revision 1.4
diff -u -r1.4 lyxgluelength.C
--- lyxgluelength.C 21 Mar 2002 17:25:14 -  1.4
+++ lyxgluelength.C 8 Aug 2002 20:09:19 -
@@ -41,52 +41,48 @@
 {
ostringstream buffer;
 
-   if (!plus_.zero())
-   if (!minus_.zero())
-   if (len_.unit() == plus_.unit() && len_.unit() == 
minus_.unit())
-   if (plus_.value() == minus_.value())
-   buffer << len_.value() << "+-"
-  << plus_.value() << 
unit_name[len_.unit()];
-   else
-   buffer << len_.value()
-  << '+' << plus_.value()
-  << '-' << minus_.value()
-  << unit_name[len_.unit()];
-   else
-   if (plus_.unit() == minus_.unit()
-   && plus_.value() == minus_.value())
-   buffer << len_.value() << 
unit_name[len_.unit()]
-  << "+-" << plus_.value()
-  << unit_name[plus_.unit()];
-
-   else
-   buffer << len_.value() << 
unit_name[len_.unit()]
-  << '+' << plus_.value()
-  << unit_name[plus_.unit()]
-  << '-' << minus_.value()
-  << unit_name[minus_.unit()];
-   else
-   if (len_.unit() == plus_.unit())
-   buffer << len_.value() << '+' << plus_.value()
-  << unit_name[len_.unit()];
-   else
-   buffer << len_.value() << unit_name[len_.unit()]
-  << '+' << plus_.value()
-  << unit_name[plus_.unit()];
-
-   else
-   if (!minus_.zero())
-   if (len_.unit() == minus_.unit())
-   buffer << len_.value() << '-' << minus_.value()
-  << unit_name[len_.unit()];
-
-   else
-   buffer << len_.value() << unit_name[len_.unit()]
-  << '-' << minus_.value()
-  << unit_name[minus_.unit()];
-   else
-   buffer << len_.value() << unit_name[len_.unit()];
+   buffer << len_.value();
 
+   if (plus_.zero() && minus_.zero()) {
+   buffer << unit_name[len_.unit()];
+   return buffer.str().c_str();
+   }
+ 
+   // just len and plus
+   if (minus_.zero()) {
+   if (len_.unit() == plus_.unit())
+   buffer << unit_name[len_.unit()];
+   buffer << "+" << plus_.value();
+   buffer << unit_name[plus_.unit()];
+   return buffer.str().c_str();
+   }
+ 
+   // just len and minus
+   if (plus_.zero()) {
+   if (len_.unit() == minus_.unit())
+   buffer << unit_name[len_.unit()];
+   buffer << "-" << minus_.value();
+   buffer << unit_name[minus_.unit()];
+   return buffer.str().c_str();
+   }
+
+   // ok, len, plus AND minus
+ 
+   // len+-
+   if (minus_ == plus_) {
+   if (len_.unit() != minus_.unit())
+   buffer << unit_name[len_.unit()];
+   buffer << "+-" << minus_.value();
+   buffer << unit_name[minus_.unit()];
+   return buffer.str().c_str();
+   }
+ 
+   // this is so rare a case, why bother minimising units ?
+
+   buffer << unit_name[len_.unit()];
+   buffer << "+" << plus_.value() << unit_name[plus_.unit()];
+   buffer << "-" << minus_.value() << unit_name[minus_.unit()];
+ 
return buffer.str().c_str();
 }
 
@@ -95,25 +91,12 @@
 {
ostringstream buffer;
 
+   buffer << len_.value() << unit_name[len_.unit()];
+ 
if (!plus_.zero())
-   if (!minus_.zero())
-   buffer << len_.value() << unit_name[len_.unit()]
-  << " plus "
-  << plus_.value() << unit_name[plus_.unit()]
-  << " minus "
-  << minus_.value() << unit_name[minus_.unit()];
-   else
-   buffer <<