X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ftabular_funcs.C;h=dd1a2a01c5696dc07158c1b5beb6c860dea684f7;hb=98c966c64594611e469313314abd1e59524adb4a;hp=7601683be53fe2913f10a6ac7edffb84f79c5a61;hpb=6953743e22d285e8cd5acb7641c393fbe784ecf1;p=lyx.git diff --git a/src/tabular_funcs.C b/src/tabular_funcs.C index 7601683be5..dd1a2a01c5 100644 --- a/src/tabular_funcs.C +++ b/src/tabular_funcs.C @@ -1,13 +1,13 @@ /* This file is part of - * ====================================================== - * + * ====================================================== + * * LyX, The Document Processor - * + * * Copyright 2000-2001 The LyX Team. * * @author: Jürgen Vigna * - * ====================================================== + * ====================================================== */ #include @@ -34,8 +34,19 @@ string const write_attribute(string const & name, bool const & b) // file format bloat for tabulars. if (!b) return string(); - - return write_attribute(name, int(b)); + + return write_attribute(name, tostr(b)); +} + +template <> +string const write_attribute(string const & name, int const & i) +{ + // we write only true attribute values so we remove a bit of the + // file format bloat for tabulars. + if (!i) + return string(); + + return write_attribute(name, tostr(i)); } template <> @@ -44,7 +55,7 @@ string const write_attribute(string const & name, LyXLength const & value) // we write only the value if we really have one same reson as above. if (value.zero()) return string(); - + return write_attribute(name, value.asString()); } @@ -158,13 +169,13 @@ bool string2type(string const str, bool & num) bool getTokenValue(string const & str, const char * token, string & ret) { + ret.erase(); size_t token_length = strlen(token); string::size_type pos = str.find(token); if (pos == string::npos || pos + token_length + 1 >= str.length() || str[pos + token_length] != '=') return false; - ret.erase(); pos += token_length + 1; char ch = str[pos]; if ((ch != '"') && (ch != '\'')) { // only read till next space @@ -181,6 +192,7 @@ bool getTokenValue(string const & str, const char * token, string & ret) bool getTokenValue(string const & str, const char * token, int & num) { string tmp; + num = 0; if (!getTokenValue(str, token, tmp)) return false; num = strToInt(tmp); @@ -226,7 +238,7 @@ bool getTokenValue(string const & str, const char * token, bool & flag) if (!getTokenValue(str, token, tmp)) return false; return string2type(tmp, flag); -} +} bool getTokenValue(string const & str, const char * token, LyXLength & len) @@ -238,7 +250,7 @@ bool getTokenValue(string const & str, const char * token, LyXLength & len) if (!getTokenValue(str, token, tmp)) return false; return isValidLength(tmp, &len); -} +} void l_getline(istream & is, string & str)