Dear all,

I'm reviewing the wavread function code which I could find (on Windows
7) at the following path:

C:\Program Files\scilab-6.0.2\modules\sound\macros\wavread.sci

There is a code segment at the beginninig intended to detect if the
wavfile has or not the .wav extension:

// Append .wav extension if necessary
if ( strindex(wavfile, ".") == [] ) then
wavfile = wavfile + ".wav";
end

This contains a bug, since the wavfile name might contain a dot
different from the one between the name and the extension. The normal
case would be

sound.wav

and in this case the code works fine if the trailing .wav is absent. But
in a case such as

sound_v1.1.wav

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.

Fortunately the issue is solved quite easily:

// Append .wav extension if necessary
if (~(max(strindex(wavfile,'.wav')) == length(wavfile)-3)) then
wavfile = wavfile + '.wav';
end

The proposed patch tests whether '.wav' is the last sub-string of the
file name.

Note: '.wav' might appear more than once or might even appear only once
but in the middle of the name. In such cases it is not a valid wav
extension. This case might appear unlikely, but it is a possibility. For
instance, some educator might present an example called:

'example_of_.wav_file.wav'

Regards,

Federico Miyara





---
El software de antivirus Avast ha analizado este correo electrónico en busca de 
virus.
https://www.avast.com/antivirus
_______________________________________________
users mailing list
[email protected]
http://lists.scilab.org/mailman/listinfo/users

Reply via email to