* Copyright 1995 Matthias Ettrich
* Copyright 1995-1999 The LyX Team.
*
- * ======================================================*/
+ * ====================================================== */
#include <config.h>
// 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{}" } };
ParseString(str);
}
+
InsetQuotes::InsetQuotes(InsetQuotes::quote_language l,
InsetQuotes::quote_side s,
InsetQuotes::quote_times t)
// 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:
}
-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;
}
-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;
}
}
-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;
{
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) {
}
}
-Inset* InsetQuotes::Clone()
+
+Inset * InsetQuotes::Clone() const
{
return new InsetQuotes(language, side, times);
}