Code

Fixed signed/unsigned problem with precision calc. Fixes bug #399604.
[inkscape.git] / src / svg / svg-affine.cpp
index 1ff9776e5dbe5d95b3c09d831076e4bb7530431a..91a9fa7e5365db7fa869715fb38b83ff1a470384 100644 (file)
@@ -177,9 +177,9 @@ sp_svg_transform_write(Geom::Matrix const &transform)
                 unsigned p = 0;
                 strcpy (c + p, "scale(");
                 p += 6;
-                p += sp_svg_number_write_de (c + p, transform[0], prec, min_exp);
+                p += sp_svg_number_write_de( c + p, sizeof(c) - p, transform[0], prec, min_exp );
                 c[p++] = ',';
-                p += sp_svg_number_write_de (c + p, transform[3], prec, min_exp);
+                p += sp_svg_number_write_de( c + p, sizeof(c) - p, transform[3], prec, min_exp );
                 c[p++] = ')';
                 c[p] = '\000';
                 g_assert( p <= sizeof(c) );
@@ -192,9 +192,9 @@ sp_svg_transform_write(Geom::Matrix const &transform)
                 unsigned p = 0;
                 strcpy (c + p, "translate(");
                 p += 10;
-                p += sp_svg_number_write_de (c + p, transform[4], prec, min_exp);
+                p += sp_svg_number_write_de( c + p, sizeof(c) - p, transform[4], prec, min_exp );
                 c[p++] = ',';
-                p += sp_svg_number_write_de (c + p, transform[5], prec, min_exp);
+                p += sp_svg_number_write_de( c + p, sizeof(c) - p, transform[5], prec, min_exp );
                 c[p++] = ')';
                 c[p] = '\000';
                 g_assert( p <= sizeof(c) );
@@ -204,17 +204,17 @@ sp_svg_transform_write(Geom::Matrix const &transform)
                 unsigned p = 0;
                 strcpy (c + p, "matrix(");
                 p += 7;
-                p += sp_svg_number_write_de (c + p, transform[0], prec, min_exp);
+                p += sp_svg_number_write_de( c + p, sizeof(c) - p, transform[0], prec, min_exp );
                 c[p++] = ',';
-                p += sp_svg_number_write_de (c + p, transform[1], prec, min_exp);
+                p += sp_svg_number_write_de( c + p, sizeof(c) - p, transform[1], prec, min_exp );
                 c[p++] = ',';
-                p += sp_svg_number_write_de (c + p, transform[2], prec, min_exp);
+                p += sp_svg_number_write_de( c + p, sizeof(c) - p, transform[2], prec, min_exp );
                 c[p++] = ',';
-                p += sp_svg_number_write_de (c + p, transform[3], prec, min_exp);
+                p += sp_svg_number_write_de( c + p, sizeof(c) - p, transform[3], prec, min_exp );
                 c[p++] = ',';
-                p += sp_svg_number_write_de (c + p, transform[4], prec, min_exp);
+                p += sp_svg_number_write_de( c + p, sizeof(c) - p, transform[4], prec, min_exp );
                 c[p++] = ',';
-                p += sp_svg_number_write_de (c + p, transform[5], prec, min_exp);
+                p += sp_svg_number_write_de( c + p, sizeof(c) - p, transform[5], prec, min_exp );
                 c[p++] = ')';
                 c[p] = '\000';
                 g_assert( p <= sizeof(c) );
@@ -226,17 +226,17 @@ sp_svg_transform_write(Geom::Matrix const &transform)
         unsigned p = 0;
         strcpy (c + p, "matrix(");
         p += 7;
-        p += sp_svg_number_write_de (c + p, transform[0], prec, min_exp);
+        p += sp_svg_number_write_de( c + p, sizeof(c) - p, transform[0], prec, min_exp );
         c[p++] = ',';
-        p += sp_svg_number_write_de (c + p, transform[1], prec, min_exp);
+        p += sp_svg_number_write_de( c + p, sizeof(c) - p, transform[1], prec, min_exp );
         c[p++] = ',';
-        p += sp_svg_number_write_de (c + p, transform[2], prec, min_exp);
+        p += sp_svg_number_write_de( c + p, sizeof(c) - p, transform[2], prec, min_exp );
         c[p++] = ',';
-        p += sp_svg_number_write_de (c + p, transform[3], prec, min_exp);
+        p += sp_svg_number_write_de( c + p, sizeof(c) - p, transform[3], prec, min_exp );
         c[p++] = ',';
-        p += sp_svg_number_write_de (c + p, transform[4], prec, min_exp);
+        p += sp_svg_number_write_de( c + p, sizeof(c) - p, transform[4], prec, min_exp );
         c[p++] = ',';
-        p += sp_svg_number_write_de (c + p, transform[5], prec, min_exp);
+        p += sp_svg_number_write_de( c + p, sizeof(c) - p, transform[5], prec, min_exp );
         c[p++] = ')';
         c[p] = '\000';
         g_assert( p <= sizeof(c) );