]> git.lyx.org Git - lyx.git/blobdiff - src/insets/ExternalTransforms.cpp
Add suffixed lyxconvert to cmake build.
[lyx.git] / src / insets / ExternalTransforms.cpp
index 6bbbb6813eaaab8d527f514203b197ee0edcb9bd..4f85f9d479f00c202728b20dc39186dcee5ffb02 100644 (file)
 
 #include "ExternalTransforms.h"
 
+#include "support/convert.h"
 #include "support/debug.h"
-
 #include "support/lstrings.h"
 #include "support/lyxlib.h" // float_equal
-#include "support/convert.h"
 #include "support/Translator.h"
 
-#include <boost/regex.hpp>
+#include "support/regex.h"
 
-#include <cmath> // std::abs
+#include <cmath> // abs
 #include <sstream>
 
 using namespace std;
+using namespace lyx::support;
 
 namespace lyx {
 namespace external {
 
-using support::float_equal;
 
 string const ExtraData::get(string const & id) const
 {
-       std::map<string, string>::const_iterator it = data_.find(id);
+       map<string, string>::const_iterator it = data_.find(id);
        return it == data_.end() ? string() : it->second;
 }
 
@@ -58,7 +57,7 @@ bool ResizeData::usingScale() const
 
 bool RotationData::no_rotation() const
 {
-       return (angle.empty() || std::abs(convert<double>(angle)) < 0.1);
+       return (angle.empty() || abs(convert<double>(angle)) < 0.1);
 }
 
 
@@ -66,7 +65,7 @@ string const RotationData::adjAngle() const
 {
        // Ensure that angle lies in the range -360 < angle < 360
        double rotAngle = convert<double>(angle);
-       if (std::abs(rotAngle) > 360.0) {
+       if (abs(rotAngle) > 360.0) {
                rotAngle -= 360.0 * floor(rotAngle / 360.0);
                return convert<string>(rotAngle);
        }
@@ -79,7 +78,7 @@ namespace {
 typedef Translator<RotationData::OriginType, string> OriginTranslator;
 OriginTranslator const & originTranslator();
 
-} // namespace anon
+} // namespace
 
 
 void RotationData::origin(string const & o)
@@ -99,7 +98,7 @@ string const ResizeLatexCommand::front_impl() const
        if (data.no_resize())
                return string();
 
-       std::ostringstream os;
+       ostringstream os;
        if (data.usingScale()) {
                double const scl = convert<double>(data.scale) / 100.0;
                os << "\\scalebox{" << scl << "}[" << scl << "]{";
@@ -137,7 +136,7 @@ string const ResizeLatexCommand::back_impl() const
 
 namespace {
 
-std::ostream & operator<<(std::ostream & os, RotationData::OriginType type)
+ostream & operator<<(ostream & os, RotationData::OriginType type)
 {
        switch (type) {
        case RotationData::DEFAULT:
@@ -184,7 +183,7 @@ std::ostream & operator<<(std::ostream & os, RotationData::OriginType type)
        return os;
 }
 
-} // namespace anon
+} // namespace
 
 
 string const RotationLatexCommand::front_impl() const
@@ -192,7 +191,7 @@ string const RotationLatexCommand::front_impl() const
        if (data.no_rotation())
                return string();
 
-       std::ostringstream os;
+       ostringstream os;
        os << "\\rotatebox";
 
        if (data.origin() != RotationData::DEFAULT)
@@ -217,9 +216,12 @@ string const  ClipLatexOption::option_impl() const
        if (!data.clip || data.bbox.empty())
                return string();
 
-       std::ostringstream os;
+       ostringstream os;
        if (!data.bbox.empty())
-               os << "bb=" << data.bbox << ',';
+               os << "bb=" << data.bbox.xl.asLatexString() << ' '
+                  << data.bbox.yb.asLatexString() << ' '
+                  << data.bbox.xr.asLatexString() << ' '
+                  << data.bbox.yt.asLatexString() << ',';
        if (data.clip)
                os << "clip,";
        return os.str();
@@ -231,7 +233,7 @@ string const ResizeLatexOption::option_impl() const
        if (data.no_resize())
                return string();
 
-       std::ostringstream os;
+       ostringstream os;
        if (data.usingScale()) {
                double const scl = convert<double>(data.scale);
                if (!float_equal(scl, 100.0, 0.05))
@@ -255,7 +257,7 @@ string const RotationLatexOption ::option_impl() const
        if (data.no_rotation())
                return string();
 
-       std::ostringstream os;
+       ostringstream os;
        os << "angle=" << data.angle << ',';
 
        if (data.origin() != RotationData::DEFAULT)
@@ -280,11 +282,10 @@ string const sanitizeLatexOption(string const & input)
        // Strip any leading commas
        // "[,,,,foo..." -> "foo..." ("foo..." may be empty)
        string output;
-       boost::smatch what;
-       static boost::regex const front("^( *[[],*)(.*)$");
+       lyx::smatch what;
+       static lyx::regex const front("^( *\\[,*)(.*)$");
 
-       regex_match(it, end, what, front, boost::match_partial);
-       if (!what[0].matched) {
+       if (!regex_match(it, end, what, front)) {
                lyxerr << "Unable to sanitize LaTeX \"Option\": "
                       << input << '\n';
                return string();
@@ -294,10 +295,9 @@ string const sanitizeLatexOption(string const & input)
        // Replace any consecutive commas with a single one
        // "foo,,,,bar" -> "foo,bar"
        // with iterator now pointing to 'b'
-       static boost::regex const commas("([^,]*)(,,*)(.*)$");
+       static lyx::regex const commas("([^,]*)(,,*)(.*)$");
        for (; it != end;) {
-               regex_match(it, end, what, commas, boost::match_partial);
-               if (!what[0].matched) {
+               if (!regex_match(it, end, what, commas)) {
                        output += string(it, end);
                        break;
                }
@@ -307,9 +307,8 @@ string const sanitizeLatexOption(string const & input)
 
        // Strip any trailing commas
        // "...foo,,,]" -> "...foo" ("...foo,,," may be empty)
-       static boost::regex const back("^(.*[^,])?,*[]] *$");
-       regex_match(output, what, back);
-       if (!what[0].matched) {
+       static lyx::regex const back("^(.*[^,])?,*\\] *$");
+       if (!regex_match(output, what, back)) {
                lyxerr << "Unable to sanitize LaTeX \"Option\": "
                       << output << '\n';
                return string();
@@ -317,7 +316,7 @@ string const sanitizeLatexOption(string const & input)
        output = what.str(1);
 
        // Remove any surrounding whitespace
-       output = support::trim(output);
+       output = trim(output);
 
        // If the thing is empty, leave it so, else wrap it in square brackets.
        return output.empty() ? output : "[" + output + "]";
@@ -334,11 +333,11 @@ void extractIt(boost::any const & any_factory,
                return;
 
        Factory factory = boost::any_cast<Factory>(any_factory);
-       if (!factory.empty())
+       if (factory)
                transformer = factory(data);
 }
 
-} // namespace anon
+} // namespace
 
 
 TransformCommand::ptr_type
@@ -427,7 +426,7 @@ OriginTranslator const & originTranslator()
        return translator;
 }
 
-} // namespace anon
+} // namespace
 
 } // namespace external
 } // namespace lyx