]> git.lyx.org Git - lyx.git/blobdiff - src/insets/insetquotes.C
pos=string::npos for regex not found, use handcoded transform in lstring.C, fix the...
[lyx.git] / src / insets / insetquotes.C
index 408f6a1ca80781c07bec9e37ca2583600880b824..d069cc2d6b9836ada42f5b76c1ab500f8c448957 100644 (file)
@@ -6,7 +6,7 @@
  *         Copyright 1995 Matthias Ettrich
  *          Copyright 1995-1999 The LyX Team.
  *
- * ======================================================*/
+ * ====================================================== */
 
 #include <config.h>
 
@@ -32,29 +32,29 @@ extern BufferView * current_view;
 // codes used to read/write quotes to LyX files
 static char const * const language_char = "esgpfa";
 static char const * const side_char = "lr" ;
-static char const * const times_char ="sd";
+static char const * const times_char = "sd";
 
 // List of known quote chars
 static char const * const quote_char = ",'`<>";
 
-// Index of chars used for the quote. Index is [side,language]
-int quote_index[2][6] = 
-{ { 2, 1, 0, 0, 3, 4 },    // "'',,<>" 
-  { 1, 1, 2, 1, 4, 3 } };  // "`'`'><"
+// Index of chars used for the quote. Index is [side, language]
+int quote_index[2][6] = {
+       { 2, 1, 0, 0, 3, 4 },    // "'',,<>" 
+       { 1, 1, 2, 1, 4, 3 } };  // "`'`'><"
 
 // Corresponding LaTeX code, for double and single quotes.
-static char const * const latex_quote_t1[2][5] =
+static char const * const latex_quote_t1[2][5] = 
 { { "\\quotesinglbase{}",  "'", "`", 
     "\\guilsinglleft{}", "\\guilsinglright{}" }, 
   { ",,", "''", "``", "<<", ">>" } };
 
-static char const * const latex_quote_ot1[2][5] =
+static char const * const latex_quote_ot1[2][5] = 
 { { "\\quotesinglbase{}",  "'", "`", 
     "\\guilsinglleft{}", "\\guilsinglright{}" }, 
   { "\\quotedblbase{}", "''", "``",
     "\\guillemotleft{}", "\\guillemotright{}" } };
 
-static char const * const latex_quote_babel[2][5] =
+static char const * const latex_quote_babel[2][5] = 
 { { "\\glq{}",  "'", "`", "\\flq{}", "\\frq{}" },
   { "\\glqq{}", "''", "``", "\\flqq{}", "\\frqq{}" } };
 
@@ -64,6 +64,7 @@ InsetQuotes::InsetQuotes(string const & str)
        ParseString(str);
 }
 
+
 InsetQuotes::InsetQuotes(InsetQuotes::quote_language l,
                         InsetQuotes::quote_side s,
                         InsetQuotes::quote_times t)
@@ -78,8 +79,9 @@ InsetQuotes::InsetQuotes(char c, BufferParams const & params)
        // Decide whether left or right 
        switch(c) {
        case ' ': case '(': case '{': case '[': case '-': case ':':
-       case LYX_META_HFILL: case LYX_META_PROTECTED_SEPARATOR:
-       case LYX_META_NEWLINE: 
+       case LyXParagraph::META_HFILL:
+       case LyXParagraph::META_PROTECTED_SEPARATOR:
+       case LyXParagraph::META_NEWLINE: 
                side = InsetQuotes::LeftQ;   // left quote 
                break;
        default:
@@ -88,57 +90,58 @@ InsetQuotes::InsetQuotes(char c, BufferParams const & params)
 }
 
 
-void InsetQuotes::ParseString(string str)
+void InsetQuotes::ParseString(string const & s)
 {
        int i;
+       string str(s);
        if (str.length() != 3) {
                lyxerr << "ERROR (InsetQuotes::InsetQuotes):"
                        " bad string length." << endl;
                str = "eld";
        }
 
-       for (i=0;i<6;i++) {
+       for (i = 0; i < 6; ++i) {
                if (str[0] == language_char[i]) {
-                       language = (InsetQuotes::quote_language)i;
+                       language = InsetQuotes::quote_language(i);
                        break;
                }
        }
-       if (i>=6) {
+       if (i >= 6) {
                lyxerr << "ERROR (InsetQuotes::InsetQuotes):"
                        " bad language specification." << endl;
                language = InsetQuotes::EnglishQ; 
        }
 
-       for (i=0;i<2;i++) {
+       for (i = 0; i < 2; ++i) {
                if (str[1] == side_char[i]) {
-                       side = (InsetQuotes::quote_side)i;
+                       side = InsetQuotes::quote_side(i);
                        break;
                }
        }
-       if (i>=2) {
+       if (i >= 2) {
                lyxerr << "ERROR (InsetQuotes::InsetQuotes):"
                        " bad side specification." << endl;
                side = InsetQuotes::LeftQ; 
        }
 
-       for (i=0;i<2;i++) {
+       for (i = 0; i < 2; ++i) {
                if (str[2] == times_char[i]) {
-                       times = (InsetQuotes::quote_times)i;
+                       times = InsetQuotes::quote_times(i);
                        break;
                }
        }
-       if (i>=2) {
+       if (i >= 2) {
                lyxerr << "ERROR (InsetQuotes::InsetQuotes):"
                        " bad times specification." << endl;
                times = InsetQuotes::DoubleQ; 
        }
 }
 
+
 string InsetQuotes::DispString() const
 {
        string disp;
-
-       disp = quote_char[quote_index[side][language]];
+       disp += quote_char[quote_index[side][language]];
        if (times == InsetQuotes::DoubleQ)
                disp += disp;
 
@@ -200,13 +203,13 @@ void InsetQuotes::Draw(LyXFont font, LyXScreen & scr,
 }
 
 
-void InsetQuotes::Write(FILE * file)
+void InsetQuotes::Write(ostream & os)
 {
        string text;
        text += language_char[language];
        text += side_char[side];
        text += times_char[times]; 
-       fprintf(file, "Quotes %s", text.c_str());
+       os << "Quotes " << text;
 }
 
 
@@ -217,18 +220,19 @@ void InsetQuotes::Read(LyXLex & lex)
 }
 
 
-int InsetQuotes::Latex(FILE * file, signed char /*fragile*/)
+int InsetQuotes::Latex(ostream & os, signed char /*fragile*/)
 {
        string quote;
        int res = Latex(quote, 0);
-       fprintf(file, "%s", quote.c_str()); 
+       os << quote;
        return res;
 }
 
+
 int InsetQuotes::Latex(string & file, signed char /*fragile*/)
 {
-       string doclang =
-               current_view->currentBuffer()->GetLanguage();
+       string doclang = 
+               current_view->buffer()->GetLanguage();
        int quoteind = quote_index[side][language];
        string qstr;
        
@@ -288,7 +292,7 @@ void InsetQuotes::Validate(LaTeXFeatures & features) const
 {
        char type = quote_char[quote_index[side][language]];
 
-       if (current_view->currentBuffer()->GetLanguage() == "default" 
+       if (current_view->buffer()->GetLanguage() == "default" 
            && lyxrc->fontenc != "T1") {
                if (times == InsetQuotes::SingleQ) 
                        switch (type) {
@@ -307,7 +311,8 @@ void InsetQuotes::Validate(LaTeXFeatures & features) const
        }
 }
 
-Inset* InsetQuotes::Clone()
+
+Inset * InsetQuotes::Clone() const
 {
   return new InsetQuotes(language, side, times);
 }