Mercurial > octave
changeset 30026:d3298a58049e stable
pkg: Improve similar package name suggestion (bug #61067).
* scripts/pkg/private/get_forge_pkg.m (fdist): Reduce distance added for
additional characters or wrong case. Minor style changes.
author | Markus Mützel <markus.muetzel@gmx.de> |
---|---|
date | Sat, 21 Aug 2021 15:02:48 +0200 |
parents | 106aa8480569 |
children | 4ee0cac00a10 55eeb7f0850b |
files | scripts/pkg/private/get_forge_pkg.m |
diffstat | 1 files changed, 7 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/scripts/pkg/private/get_forge_pkg.m Mon Aug 16 14:57:45 2021 +0200 +++ b/scripts/pkg/private/get_forge_pkg.m Sat Aug 21 15:02:48 2021 +0200 @@ -43,11 +43,11 @@ name = tolower (name); ## Try to download package's index page. - [html, succ] = urlread (sprintf ("https://packages.octave.org/%s/index.html", + [html, succ] = urlread (sprintf ("https://packages.octave.org/%s/index.html", ... name)); if (succ) ## Remove blanks for simpler matching. - html(isspace(html)) = []; + html(isspace (html)) = []; ## Good. Let's grep for the version. pat = "<tdclass=""package_table"">PackageVersion:</td><td>([\\d.]*)</td>"; t = regexp (html, pat, "tokens"); @@ -80,14 +80,16 @@ len1 = length (name); len2 = length (x); if (len1 <= len2) - d = sum (abs (name(1:len1) - x(1:len1))) + sum (x(len1+1:end)); + d = sum (abs (tolower (name(1:len1)) - tolower (x(1:len1)))) ... + + (len2 - len1)*23; else - d = sum (abs (name(1:len2) - x(1:len2))) + sum (name(len2+1:end)); + d = sum (abs (tolower (name(1:len2)) - tolower (x(1:len2)))) ... + + (len1 - len2)*23; endif endfunction dist = cellfun ("fdist", t); [~, i] = min (dist); - error ("get_forge_pkg: package not found: ""%s"". Maybe you meant ""%s?""", + error ("get_forge_pkg: package not found: ""%s"". Did you mean ""%s""?", ... name, t{i}); endif