diff options
author | Kohei Yoshida <kyoshida@novell.com> | 2011-02-23 13:38:21 -0500 |
---|---|---|
committer | Kohei Yoshida <kyoshida@novell.com> | 2011-02-23 13:39:50 -0500 |
commit | cbfec50fa0f3c1fc49bd67fb197c9f97b03d8750 (patch) | |
tree | b59453e96768beb7c8cef9df7baf2719181a68c0 /svl | |
parent | 7ab87dce855a09a2c0e0563afe9229641bea3850 (diff) |
Updated method documentation to be more specific.
Diffstat (limited to 'svl')
-rw-r--r-- | svl/inc/svl/zformat.hxx | 18 | ||||
-rw-r--r-- | svl/source/numbers/zformat.cxx | 50 |
2 files changed, 67 insertions, 1 deletions
diff --git a/svl/inc/svl/zformat.hxx b/svl/inc/svl/zformat.hxx index 1ecfaa4938f4..a551fe27cdf1 100644 --- a/svl/inc/svl/zformat.hxx +++ b/svl/inc/svl/zformat.hxx @@ -489,7 +489,23 @@ private: xub_StrLen& nPos, String& sSymbol ); - // get xxx of "[$-xxx]" as LanguageType, starting at and advancing position nPos + /** + * Parse the content of '[$-xxx] or '[$-xxxxxxxx]' and extract the + * language type from it. Given the string, start parsing at position + * specified by nPos, and store the end position with nPos when the + * parsing is complete. The nPos should point to the '$' before the + * parsing, and to the closing bracket after the parsing. When the + * content is [$-xxx], the xxx part represents the language type (aka + * LCID) in hex numerals. When the content is [$-xxxxxxxx] the last 4 + * digits is the LCID (again in hex). + * + * @param rString input string + * @param nPos position (see above). + * + * @return LCID that specifies language type. See i18npool/lang.h for a + * complete list of language types. These numbers also correspond + * with the numbers used by Microsoft Office. + */ SVL_DLLPRIVATE static LanguageType ImpGetLanguageType( const String& rString, xub_StrLen& nPos ); // standard number output diff --git a/svl/source/numbers/zformat.cxx b/svl/source/numbers/zformat.cxx index 882c8a548c57..994c2c09088b 100644 --- a/svl/source/numbers/zformat.cxx +++ b/svl/source/numbers/zformat.cxx @@ -59,6 +59,48 @@ using namespace svt; +#include <stdio.h> +#include <string> +#include <sys/time.h> + +namespace { + +class StackPrinter +{ +public: + explicit StackPrinter(const char* msg) : + msMsg(msg) + { + fprintf(stdout, "%s: --begin\n", msMsg.c_str()); + mfStartTime = getTime(); + } + + ~StackPrinter() + { + double fEndTime = getTime(); + fprintf(stdout, "%s: --end (duration: %g sec)\n", msMsg.c_str(), (fEndTime-mfStartTime)); + } + + void printTime(int line) const + { + double fEndTime = getTime(); + fprintf(stdout, "%s: --(%d) (duration: %g sec)\n", msMsg.c_str(), line, (fEndTime-mfStartTime)); + } + +private: + double getTime() const + { + timeval tv; + gettimeofday(&tv, NULL); + return tv.tv_sec + tv.tv_usec / 1000000.0; + } + + ::std::string msMsg; + double mfStartTime; +}; + +} + namespace { struct Gregorian : public rtl::StaticWithInit<const ::rtl::OUString, Gregorian> { @@ -603,6 +645,8 @@ SvNumberformat::SvNumberformat(String& rString, nNewStandardDefined(0), bStarFlag( FALSE ) { + StackPrinter __stack_printer__("SvNumberformat::SvNumberformat"); + fprintf(stdout, "SvNumberformat::SvNumberformat: string = '%s'\n", rtl::OUStringToOString(rString, RTL_TEXTENCODING_UTF8).getStr()); // If the group (AKA thousand) separator is a Non-Breaking Space (French) // replace all occurrences by a simple space. // The tokens will be changed to the LocaleData separator again later on. @@ -1099,6 +1143,9 @@ xub_StrLen SvNumberformat::ImpGetNumber(String& rString, LanguageType SvNumberformat::ImpGetLanguageType( const String& rString, xub_StrLen& nPos ) { + StackPrinter __stack_printer__("SvNumberformat::ImpGetLanguageType"); + fprintf(stdout, "SvNumberformat::ImpGetLanguageType: string = '%s'\n", rtl::OUStringToOString(rString, RTL_TEXTENCODING_UTF8).getStr()); + sal_Int32 nNum = 0; sal_Unicode cToken = 0; xub_StrLen nLen = rString.Len(); @@ -1123,6 +1170,7 @@ LanguageType SvNumberformat::ImpGetLanguageType( const String& rString, return LANGUAGE_DONTKNOW; ++nPos; } + fprintf(stdout, "SvNumberformat::ImpGetLanguageType: number = %ld\n", nNum); return (nNum && (cToken == ']' || nPos == nLen)) ? (LanguageType)nNum : LANGUAGE_DONTKNOW; } @@ -1131,6 +1179,7 @@ short SvNumberformat::ImpNextSymbol(String& rString, xub_StrLen& nPos, String& sSymbol) { + StackPrinter __stack_printer__("SvNumberformat::ImpNextSymbol"); short eSymbolType = BRACKET_SYMBOLTYPE_FORMAT; sal_Unicode cToken; sal_Unicode cLetter = ' '; // Zwischenergebnis @@ -1396,6 +1445,7 @@ short SvNumberformat::ImpNextSymbol(String& rString, } // of switch } // of while + fprintf(stdout, "SvNumberformat::ImpNextSymbol: symbol = '%s'\n", rtl::OUStringToOString(sSymbol, RTL_TEXTENCODING_UTF8).getStr()); return eSymbolType; } |