]> git.lyx.org Git - features.git/blobdiff - src/TextClass.cpp
New tag MaxCiteNames
[features.git] / src / TextClass.cpp
index 65c547883cd9d1784eccedf0733b40e5122fbea9..9a51fb0d093ec1561fd9905e99849a5f0a0e4ad9 100644 (file)
@@ -62,7 +62,7 @@ namespace lyx {
 // You should also run the development/tools/updatelayouts.py script,
 // to update the format of all of our layout files.
 //
-int const LAYOUT_FORMAT = 62; //spitz PassThru for arguments.
+int const LAYOUT_FORMAT = 63; //spitz: new tags CiteFramework, MaxCiteNames, extended InsetCite syntax.
 
 
 // Layout format for the current lyx file format. Controls which format is
@@ -155,7 +155,7 @@ TextClass::TextClass()
          outputType_(LATEX), outputFormat_("latex"),
          defaultfont_(sane_font),
          titletype_(TITLE_COMMAND_AFTER), titlename_("maketitle"),
-         min_toclevel_(0), max_toclevel_(0),
+         min_toclevel_(0), max_toclevel_(0), maxcitenames_(2),
          cite_full_author_list_(true)
 {
 }
@@ -222,6 +222,7 @@ enum TextClassTags {
        TC_CITEENGINETYPE,
        TC_CITEFORMAT,
        TC_CITEFRAMEWORK,
+       TC_MAXCITENAMES,
        TC_DEFAULTBIBLIO,
        TC_FULLAUTHORLIST,
        TC_OUTLINERNAME
@@ -256,6 +257,7 @@ LexerKeyword textClassTags[] = {
        { "input",             TC_INPUT },
        { "insetlayout",       TC_INSETLAYOUT },
        { "leftmargin",        TC_LEFTMARGIN },
+       { "maxcitenames",      TC_MAXCITENAMES },
        { "modifystyle",       TC_MODIFYSTYLE },
        { "nocounter",         TC_NOCOUNTER },
        { "nofloat",           TC_NOFLOAT },
@@ -765,6 +767,11 @@ TextClass::ReturnValues TextClass::read(Lexer & lexrc, ReadType rt)
                        citeframework_ = rtrim(lexrc.getString());
                        break;
 
+               case TC_MAXCITENAMES:
+                       lexrc.next();
+                       maxcitenames_ = size_t(lexrc.getInteger());
+                       break;
+
                case TC_DEFAULTBIBLIO:
                        if (lexrc.next()) {
                                vector<string> const dbs =
@@ -772,9 +779,12 @@ TextClass::ReturnValues TextClass::read(Lexer & lexrc, ReadType rt)
                                vector<string>::const_iterator it  = dbs.begin();
                                vector<string>::const_iterator end = dbs.end();
                                for (; it != end; ++it) {
-                                       if (!contains(*it, ':'))
-                                               cite_default_biblio_style_[opt_enginetype_] = *it;
-                                       else {
+                                       if (!contains(*it, ':')) {
+                                               vector<string> const enginetypes =
+                                                       getVectorFromString(opt_enginetype_, "|");
+                                               for (string const &s: enginetypes)
+                                                       cite_default_biblio_style_[s] = *it;
+                                       } else {
                                                string eng;
                                                string const db = split(*it, eng, ':');
                                                cite_default_biblio_style_[eng] = db;