#Copyright (C) 2019. Huawei Technologies Co., Ltd. All rights reserved. # #This program is free software; you can redistribute it and/or modify #it under the terms of GPLv2+ and LGPLv2+ # #This program is distributed in the hope that it will be useful, #but WITHOUT ANY WARRANTY; without even the implied warranty of #MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See GPLv2+ and LGPLv2+ for more details. diff -uNrp a/contrib/command-not-found/pk-command-not-found.c b/contrib/command-not-found/pk-command-not-found.c --- a/contrib/command-not-found/pk-command-not-found.c 2018-09-25 16:37:29.000000000 +0800 +++ b/contrib/command-not-found/pk-command-not-found.c 2019-08-26 10:14:11.184000000 +0800 @@ -143,6 +143,31 @@ pk_cnf_find_alternatives_replace (const /** * + * Add last char, so gre -> grep + **/ +static void +pk_cnf_find_alternatives_add (const gchar *cmd, guint len, GPtrArray *array) +{ + guint i; + gchar *possible; + gchar *alt="abcdefghijklmnopqrstuvwxyz"; + for(i = 0;i < 26; i++) + { + gchar *temp = malloc((len+2)*sizeof(gchar)); + if(NULL != temp) + { + memset(temp,0,(len+2)*sizeof(gchar)); + strncpy(temp,cmd,len); + temp[len]=alt[i]; + temp[len+1]='\0'; + possible = temp; + g_ptr_array_add (array, possible); + } + } +} + +/** + * * Truncate first and last char, so lshall -> lshal **/ static void @@ -349,6 +374,7 @@ pk_cnf_find_alternatives (const gchar *c unique = g_ptr_array_new (); pk_cnf_find_alternatives_swizzle (cmd, len, possible); pk_cnf_find_alternatives_replace (cmd, len, possible); + pk_cnf_find_alternatives_add (cmd, len, possible); if (len > 3) pk_cnf_find_alternatives_truncate (cmd, len, possible); pk_cnf_find_alternatives_remove_double (cmd, len, possible);