X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2Finsetcommand.C;h=0c893240880ad0a74a6b4fa045e6fa3de774e214;hb=7521b5d20f42102cf444e3fd8718a088a60d0098;hp=4beaec279c5a8948413e279660cdd4a374b1748f;hpb=338bca184c36c7d8c3ec51ecb8102fabe0a23fa7;p=lyx.git diff --git a/src/insets/insetcommand.C b/src/insets/insetcommand.C index 4beaec279c..0c89324088 100644 --- a/src/insets/insetcommand.C +++ b/src/insets/insetcommand.C @@ -4,7 +4,7 @@ * LyX, The Document Processor * * Copyright 1995 Matthias Ettrich - * Copyright 1995-2000 The LyX Team. + * Copyright 1995-2001 The LyX Team. * * ====================================================== */ @@ -17,6 +17,7 @@ #include "insetcommand.h" #include "debug.h" #include "Painter.h" +#include "lyxlex.h" using std::ostream; using std::endl; @@ -33,64 +34,50 @@ InsetCommandParams::InsetCommandParams( string const & n, {} -string InsetCommandParams::getAsString() const +string const InsetCommandParams::getAsString() const { - string b(cmdname); - b += "|++|" + options + "|++|" + contents; - return b; + return cmdname + "|++|" + contents + "|++|" + options; } void InsetCommandParams::setFromString( string const & b ) { string::size_type idx = b.find("|++|"); - if( idx == string::npos ) return; + if (idx == string::npos) { + cmdname = b; + contents = ""; + options = ""; + return; + } cmdname = b.substr(0, idx); string tmp = b.substr(idx+4); idx = tmp.find("|++|"); - if( idx == string::npos ) { - options = tmp; + if (idx == string::npos) { + contents = tmp; + options = ""; } else { - options = tmp.substr(0, idx); - contents = tmp.substr(idx+4); + contents = tmp.substr(0, idx); + options = tmp.substr(idx+4); } } -InsetCommand::InsetCommand() -{} - - -InsetCommand::InsetCommand( string const & n, - string const & c, - string const & o ) - : p_(n, c, o) -{} - - -InsetCommand::InsetCommand( InsetCommandParams const & p ) - : p_( p.getCmdName(), p.getContents(), p.getOptions() ) -{} - - -void InsetCommand::setParams(InsetCommandParams const & p ) +bool InsetCommandParams::operator==(InsetCommandParams const & o) const { - p_.setCmdName( p.getCmdName() ); - p_.setContents( p.getContents() ); - p_.setOptions( p.getOptions() ); + if (cmdname == o.cmdname && contents == o.contents && options == o.options) return true; + return false; } -// In lyxf3 this will be just LaTeX -void InsetCommand::Write(Buffer const *, ostream & os) const +bool InsetCommandParams::operator!=(InsetCommandParams const & o) const { - os << "LatexCommand " << getCommand() << "\n"; + return !(*this == o); } -void InsetCommand::scanCommand(string const & cmd) +void InsetCommandParams::scanCommand(string const & cmd) { string tcmdname, toptions, tcontents; @@ -153,7 +140,7 @@ void InsetCommand::scanCommand(string const & cmd) // This function will not be necessary when lyx3 -void InsetCommand::Read(Buffer const *, LyXLex & lex) +void InsetCommandParams::read(LyXLex & lex) { string token; @@ -175,43 +162,57 @@ void InsetCommand::Read(Buffer const *, LyXLex & lex) } -int InsetCommand::Latex(Buffer const *, ostream & os, - bool /*fragile*/, bool/*fs*/) const +void InsetCommandParams::write(ostream & os) const { - os << getCommand(); - return 0; + os << "LatexCommand " << getCommand() << "\n"; +} + + +string const InsetCommandParams::getCommand() const +{ + string s; + if (!getCmdName().empty()) s += "\\"+getCmdName(); + if (!getOptions().empty()) s += "["+getOptions()+']'; + s += "{"+getContents()+'}'; + return s; } -int InsetCommand::Ascii(Buffer const *, ostream &) const +InsetCommand::InsetCommand(InsetCommandParams const & p, bool) + : p_( p.getCmdName(), p.getContents(), p.getOptions() ) { - return 0; } -int InsetCommand::Linuxdoc(Buffer const *, ostream &) const +void InsetCommand::setParams(InsetCommandParams const & p ) { + p_.setCmdName( p.getCmdName() ); + p_.setContents( p.getContents() ); + p_.setOptions( p.getOptions() ); +} + + +int InsetCommand::latex(Buffer const *, ostream & os, + bool /*fragile*/, bool/*fs*/) const +{ + os << getCommand(); return 0; } -int InsetCommand::DocBook(Buffer const *, ostream &) const +int InsetCommand::ascii(Buffer const *, ostream &, int) const { return 0; } -Inset * InsetCommand::Clone() const +int InsetCommand::linuxdoc(Buffer const *, ostream &) const { - return new InsetCommand(getCmdName(), getContents(), getOptions()); + return 0; } -string InsetCommand::getCommand() const -{ - string s; - if (!getCmdName().empty()) s += "\\"+getCmdName(); - if (!getOptions().empty()) s += "["+getOptions()+']'; - s += "{"+getContents()+'}'; - return s; +int InsetCommand::docBook(Buffer const *, ostream &) const +{ + return 0; }