* Bug #12779 fixed - savewave() had a miscoding in the internal function write_wavedat(). 10/12210/1
Charlotte HECQUET [Thu, 1 Aug 2013 10:30:01 +0000 (12:30 +0200)]
Change-Id: Ia0d5624de8b21792438cb768de6db18808b97874

scilab/CHANGES_5.5.X
scilab/modules/sound/macros/savewave.sci
scilab/modules/sound/tests/nonreg_tests/bug_12779.dia.ref [new file with mode: 0644]
scilab/modules/sound/tests/nonreg_tests/bug_12779.tst [new file with mode: 0644]

index 9f0388e..f865693 100644 (file)
@@ -512,3 +512,5 @@ Bug fixes
 * Bug #12774 fixed - Various typos fixed.
 
 * Bug #12775 fixed - Some related functions were not listed in "See also" section of routh_t help page.
+
+* Bug #12779 fixed - savewave() had a miscoding in the internal function write_wavedat().
index 7f3cd70..ec072f9 100644 (file)
@@ -178,7 +178,7 @@ function savewave(filename,x,rate,nbits)
             // Determine if a pad-byte is appended to data chunk:
             %v2_1$1 = total_samples * BytesPerSample;
             if ( %v2_1$1 - fix(%v2_1$1./2).*2 ) then
-                mput(0,fid,"uc");
+                mput(0,"uc",fid);
             end
         else
             // Unknown wave-format for data.
diff --git a/scilab/modules/sound/tests/nonreg_tests/bug_12779.dia.ref b/scilab/modules/sound/tests/nonreg_tests/bug_12779.dia.ref
new file mode 100644 (file)
index 0000000..804e92a
--- /dev/null
@@ -0,0 +1,23 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Charlotte HECQUET
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- CLI SHELL MODE -->
+//
+// <-- Non-regression test for bug 12779 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=12779
+//
+// <-- Short Description -->
+// Function "savewave" has a miscoding in the internal function "write_wavedat"
+//
+t=soundsec(0.5);
+s=sin(2*%pi*440*t)+sin(2*%pi*220*t)/2+sin(2*%pi*880*t)/2;
+t(11026)=0.500001;
+nc=size(t,2);
+nc=nc+1;
+assert_checktrue(execstr("savewave(TMPDIR+''/bug_12779.wav'',s, 22050, 2);", "errcatch")==0);
diff --git a/scilab/modules/sound/tests/nonreg_tests/bug_12779.tst b/scilab/modules/sound/tests/nonreg_tests/bug_12779.tst
new file mode 100644 (file)
index 0000000..d61f238
--- /dev/null
@@ -0,0 +1,24 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Charlotte HECQUET
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- CLI SHELL MODE -->
+//
+// <-- Non-regression test for bug 12779 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=12779
+//
+// <-- Short Description -->
+// Function "savewave" has a miscoding in the internal function "write_wavedat"
+//
+t=soundsec(0.5);
+s=sin(2*%pi*440*t)+sin(2*%pi*220*t)/2+sin(2*%pi*880*t)/2;
+t(11026)=0.500001;
+nc=size(t,2);
+nc=nc+1;
+
+assert_checktrue(execstr("savewave(TMPDIR+''/bug_12779.wav'',s, 22050, 2);", "errcatch")==0);