<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">Hello Federico,<br>
      <br>
      Le 25/02/2019 à 01:06, Federico Miyara a écrit :<br>
    </div>
    <blockquote cite="mid:5C73318B.1010100@fceia.unr.edu.ar" type="cite">
      <meta content="text/html; charset=windows-1252"
        http-equiv="Content-Type">
      <br>
      Dear all,<br>
      <br>
      I'm reviewing the wavread function code which I could find (on
      Windows 7) at the following path:<br>
      <br>
      <font face="Courier New, Courier, monospace">C:\Program
        Files\scilab-6.0.2\modules\sound\macros\wavread.sci <br>
        <br>
        <font face="Courier New, Courier, monospace">There is a code
          segment at the beginninig <font face="Courier New, Courier,
            monospace">intended to detect if the wavfile has or not the
            .wav extension:</font></font></font><span
        style="color:rgb(160,32,240);"><br>
      </span><span style="color:rgb(75,149,50);font-style:italic;"><br>
        // Append .wav extension if necessary</span><span
        style="color:rgb(160,32,240);"><br>
        if</span> <span style="color:rgb(74,85,219);">(</span> <span
        style="color:rgb(50,185,185);">strindex</span><span
        style="color:rgb(74,85,219);">(</span><span
        style="color:rgb(0,0,0);">wavfile</span><span
        style="color:rgb(0,0,0);">,</span> <span
        style="color:rgb(188,143,143);">"</span><span
        style="color:rgb(188,143,143);">.</span><span
        style="color:rgb(188,143,143);">"</span><span
        style="color:rgb(74,85,219);">)</span> <span
        style="color:rgb(92,92,92);">==</span> <span
        style="color:rgb(74,85,219);">[</span><span
        style="color:rgb(74,85,219);">]</span> <span
        style="color:rgb(74,85,219);">)</span> <span
        style="color:rgb(160,32,240);">then</span> <br>
          <span style="color:rgb(0,0,0);">wavfile</span> <span
        style="color:rgb(92,92,92);">=</span> <span
        style="color:rgb(0,0,0);">wavfile</span> <span
        style="color:rgb(92,92,92);">+</span> <span
        style="color:rgb(188,143,143);">"</span><span
        style="color:rgb(188,143,143);">.wav</span><span
        style="color:rgb(188,143,143);">"</span><span
        style="color:rgb(0,0,0);">;</span> <br>
      <span style="color:rgb(160,32,240);">end</span><font face="Courier
        New, Courier, monospace"><font face="Courier New, Courier,
          monospace"><font face="Courier New, Courier, monospace"><br>
            <br>
            This contains a bug, since the wavfile name might contain a
            dot different from the one bet<font face="Courier New,
              Courier, monospace">ween the name and the extension. The
              normal case would be<br>
              <br>
              <font face="Courier New, Courier, monospace">sound.wav<br>
                <br>
                <font face="Courier New, Courier, monospace">and in this
                  case the code works fine if the trailing .wav is
                  absent. Bu<font face="Courier New, Courier, monospace">t
                    <font face="Courier New, Courier, monospace">in a
                      case such as<br>
                      <br>
                      <font face="Courier New, Courier, monospace">sound_v1.1.wav<br>
                        <br>
                        the code will detect a dot within the
                        abbreviated name 'sound_v1.1' and will not
                        append the .wav extension, hence the function
                        will fail to find and open the file. <br>
                        <br>
                        <font face="Courier New, Courier, monospace">Fortunately
                          the issue is solved quite easily:<br>
                        </font></font></font></font></font></font></font></font></font></font><br>
      <span style="color:rgb(75,149,50);font-style:italic;">// Append
        .wav extension if necessary</span><span
        style="color:rgb(160,32,240);"><br>
        if</span> <span style="color:rgb(74,85,219);">(</span><span
        style="color:rgb(92,92,92);"> ~</span><span
        style="color:rgb(74,85,219);">(</span><span
        style="color:rgb(50,185,185);">max</span><span
        style="color:rgb(74,85,219);">(</span><span
        style="color:rgb(50,185,185);">strindex</span><span
        style="color:rgb(74,85,219);">(</span><span
        style="color:rgb(0,0,0);">wavfile</span><span
        style="color:rgb(0,0,0);">,</span><span
        style="color:rgb(188,143,143);">'</span><span
        style="color:rgb(188,143,143);">.wav</span><span
        style="color:rgb(188,143,143);">'</span><span
        style="color:rgb(74,85,219);">)</span><span
        style="color:rgb(74,85,219);">)</span> <span
        style="color:rgb(92,92,92);">==</span> <span
        style="color:rgb(50,185,185);">length</span><span
        style="color:rgb(74,85,219);">(</span><span
        style="color:rgb(0,0,0);">wavfile</span><span
        style="color:rgb(74,85,219);">)</span><span
        style="color:rgb(92,92,92);">-</span><span
        style="color:rgb(188,143,143);">3</span><span
        style="color:rgb(74,85,219);">)</span><span
        style="color:rgb(74,85,219);"></span> <span
        style="color:rgb(74,85,219);">)</span> <span
        style="color:rgb(160,32,240);">then</span> <br>
          <span style="color:rgb(0,0,0);">wavfile</span> <span
        style="color:rgb(92,92,92);">=</span> <span
        style="color:rgb(0,0,0);">wavfile</span> <span
        style="color:rgb(92,92,92);">+</span> <span
        style="color:rgb(188,143,143);">'</span><span
        style="color:rgb(188,143,143);">.wav'</span><span
        style="color:rgb(188,143,143);"></span><span
        style="color:rgb(0,0,0);">;</span> <br>
      <span style="color:rgb(160,32,240);">end</span><font face="Courier
        New, Courier, monospace"><font face="Courier New, Courier,
          monospace"><font face="Courier New, Courier, monospace"><br>
          </font></font></font></blockquote>
    <br>
    You are right. The current test is very fragile.<br>
    The regular way would rather be<br>
    <br>
    <font size="-1"><tt>if fileparts(wavfile,"extension")<>"wav",</tt><tt><br>
      </tt><tt>   wavfile = wavfile+ ".wav"</tt><tt><br>
      </tt><tt>end</tt></font><br>
    <br>
    Maybe fileparts() did not yet exist when the code was written.<br>
    <br>
    Please do not hesitate to open another bug report to gather all this
    in a trackable place.<br>
    <br>
    Regards<br>
    Samuel<br>
    <br>
  </body>
</html>