]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[Minor] Add more suggestions
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Fri, 25 May 2018 15:47:03 +0000 (16:47 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Fri, 25 May 2018 15:47:03 +0000 (16:47 +0100)
src/rspamadm/rspamadm.c

index df68f61392942d6beb848bfa0127544111b4f66d..1df301f08182fb72ad76bdc64aeb77aac16d9408 100644 (file)
@@ -389,7 +389,19 @@ main (gint argc, gchar **argv, gchar **env)
                /* Try fuzz search */
                rspamd_fprintf (stderr, "Suggested commands:\n");
                PTR_ARRAY_FOREACH (all_commands, i, cmd) {
-                       if (rspamd_strings_levenshtein_distance (cmd->name, 0, cmd_name, 0, 1) == 1) {
+                       gsize clen, inplen;
+
+                       clen = strlen (cmd->name);
+                       inplen = strlen (cmd_name);
+
+                       if (rspamd_strings_levenshtein_distance (cmd->name, clen,
+                                       cmd_name, inplen, 1) == 1) {
+                               rspamd_fprintf (stderr, "%s\n", cmd->name);
+                       }
+                       else if ((clen > inplen &&
+                                         rspamd_substring_search (cmd->name, clen, cmd_name, inplen) != -1) ||
+                                        (inplen > clen &&
+                                         rspamd_substring_search (cmd_name, inplen, cmd->name, clen) != -1)) {
                                rspamd_fprintf (stderr, "%s\n", cmd->name);
                        }
                }