HoerTech-gGmbH / openMHA

The open Master Hearing Aid (openMHA)
http://www.openmha.org
GNU Affero General Public License v3.0
252 stars 74 forks source link

strmatch is obsolete in struct2mhacfg.m #39

Closed matthewandersonsonos closed 4 years ago

matthewandersonsonos commented 4 years ago

From the getting started guide, it says to call mha_set(openmha, 'cmd', 'start'); but I get a warning: strmatch is obsolete; use strncmp or strcmp instead. This should be fixed in this file and any other file that uses strmatch() to strncmp(str1, str2, num_chars_to_match).

sgraetzer commented 4 years ago

I was able to replicate this error when using mha_set in Octave but not in Matlab. You can do a simple replacement of the function name in struct2mhacfg.m to avoid the error.

tobiasherzke commented 4 years ago

Thank you for the report. Octave displays a deprecation warning, not an error. As you have noticed, current Matlab versions do not warn.

This warning has some history, and it may well be that Octave will remove the warning again in a future release. For details, see this issue on the Octave bug tracker:

https://savannah.gnu.org/bugs/?func=detailitem&item_id=44562

Basically, Matlab had declared that function deprecated at some point in the past, and Octave has followed. Then, Matlab has reconsidered and removed the deprecated attribute but still somewhat recommends against usage. Octave seems to have followed that reconsideration.

Why it is currently marked as obsolete again in Octave? I would suspect this to be a regression error in Octave.

If this function is removed in a future Octave release, then we will replace it in our code, but for now, let's wait what happens to this function in future Octave releases.