Author: mvidner
Date: Tue Jun 9 15:51:39 2009
New Revision: 57516
URL: http://svn.opensuse.org/viewcvs/yast?rev=57516&view=rev
Log:
Added 'string float::tolstring(float f, integer precision)' using the
current locale decimal separator (bnc#460094).
Modified:
trunk/core/libycp/src/YCPBuiltinFloat.cc
trunk/core/libycp/testsuite/runtest.sh
trunk/core/libycp/testsuite/tests/builtin/Builtin_VIII.err
trunk/core/libycp/testsuite/tests/builtin/Builtin_VIII.out
trunk/core/libycp/testsuite/tests/builtin/Builtin_VIII.ycp
trunk/core/package/yast2-core.changes
Modified: trunk/core/libycp/src/YCPBuiltinFloat.cc
URL: http://svn.opensuse.org/viewcvs/yast/trunk/core/libycp/src/YCPBuiltinFloat.cc?rev=57516&r1=57515&r2=57516&view=diff
==============================================================================
--- trunk/core/libycp/src/YCPBuiltinFloat.cc (original)
+++ trunk/core/libycp/src/YCPBuiltinFloat.cc Tue Jun 9 15:51:39 2009
@@ -22,6 +22,7 @@
#include
#include
#include
+#include <sstream>
#include "ycp/YCPBuiltinFloat.h"
#include "ycp/YCPFloat.h"
@@ -265,6 +266,35 @@
}
+// bnc#460094
+static YCPValue
+f_tolstring (const YCPFloat &f, const YCPInteger &precision)
+{
+ /**
+ * @builtin float::tolstring
+ * @short Converts a floating point number to a localized string
+ * @description
+ * Converts a floating point number to a localized string, using the
+ * specified precision.
+ * @param float FLOAT
+ * @param integer PRECISION
+ * @return string
+ * @usage tostring (0.12345, 4) -> 0,1235
+ */
+
+ if (f.isNull () || precision.isNull ())
+ return YCPNull ();
+
+ std::ostringstream ss;
+ ss.imbue (std::locale (""));
+ ss.precision (precision->value ());
+ ss << f->value ();
+ YCPString ret (ss.str ());
+
+ return ret;
+}
+
+
static YCPValue
f_tofloat (const YCPValue &v)
{
@@ -329,6 +359,7 @@
{ "ceil", "float (float)", (void *)f_ceil, ETC },
{ "trunc", "float (float)", (void *)f_trunc, ETC },
{ "pow", "float (float, float)", (void *)f_pow, ETC },
+ { "tolstring","string (float, integer)",(void *)f_tolstring, ETC },
{ NULL, NULL, NULL, ETC }
};
Modified: trunk/core/libycp/testsuite/runtest.sh
URL: http://svn.opensuse.org/viewcvs/yast/trunk/core/libycp/testsuite/runtest.sh?rev=57516&r1=57515&r2=57516&view=diff
==============================================================================
Binary files - no diff available.
Modified: trunk/core/libycp/testsuite/tests/builtin/Builtin_VIII.err
URL: http://svn.opensuse.org/viewcvs/yast/trunk/core/libycp/testsuite/tests/builtin/Builtin_VIII.err?rev=57516&r1=57515&r2=57516&view=diff
==============================================================================
--- trunk/core/libycp/testsuite/tests/builtin/Builtin_VIII.err (original)
+++ trunk/core/libycp/testsuite/tests/builtin/Builtin_VIII.err Tue Jun 9 15:51:39 2009
@@ -69,6 +69,10 @@
----------------------------------------------------------------------
Parsed:
----------------------------------------------------------------------
+(float::tolstring (0.12345, 4) == "0,1235")
+----------------------------------------------------------------------
+Parsed:
+----------------------------------------------------------------------
(tohexstring (31) == "0x1f")
----------------------------------------------------------------------
Parsed:
Modified: trunk/core/libycp/testsuite/tests/builtin/Builtin_VIII.out
URL: http://svn.opensuse.org/viewcvs/yast/trunk/core/libycp/testsuite/tests/builtin/Builtin_VIII.out?rev=57516&r1=57515&r2=57516&view=diff
==============================================================================
--- trunk/core/libycp/testsuite/tests/builtin/Builtin_VIII.out (original)
+++ trunk/core/libycp/testsuite/tests/builtin/Builtin_VIII.out Tue Jun 9 15:51:39 2009
@@ -17,3 +17,4 @@
(true)
(true)
(true)
+(true)
Modified: trunk/core/libycp/testsuite/tests/builtin/Builtin_VIII.ycp
URL: http://svn.opensuse.org/viewcvs/yast/trunk/core/libycp/testsuite/tests/builtin/Builtin_VIII.ycp?rev=57516&r1=57515&r2=57516&view=diff
==============================================================================
--- trunk/core/libycp/testsuite/tests/builtin/Builtin_VIII.ycp (original)
+++ trunk/core/libycp/testsuite/tests/builtin/Builtin_VIII.ycp Tue Jun 9 15:51:39 2009
@@ -83,6 +83,7 @@
// tostring(float f, integer precision) -> string
//
( tostring(0.12345, 4) == "0.1235" )
+( float::tolstring(0.12345, 4) == "0,1235" )
//
Modified: trunk/core/package/yast2-core.changes
URL: http://svn.opensuse.org/viewcvs/yast/trunk/core/package/yast2-core.changes?rev=57516&r1=57515&r2=57516&view=diff
==============================================================================
--- trunk/core/package/yast2-core.changes (original)
+++ trunk/core/package/yast2-core.changes Tue Jun 9 15:51:39 2009
@@ -1,6 +1,8 @@
-------------------------------------------------------------------
-Tue Jun 9 11:29:35 CEST 2009 - mvidner@suse.cz
+Tue Jun 9 15:51:09 CEST 2009 - mvidner@suse.cz
+- Added 'string float::tolstring(float f, integer precision)' using the
+ current locale decimal separator (bnc#460094).
- Fixed makefiles to work with "install" calls changed via
automake-1.11.
- Fixed tons of warnings by explicitly initializing all members of
--
To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org
For additional commands, e-mail: yast-commit+help@opensuse.org