On 12/11/19 11:48 am, morganamilo wrote:
When processing the targets for -Fx, compile all the regex ahead of time, printing an error for each that failed to compile. Then, if they all compiled successfully, continue with printing files.
Signed-off-by: morganamilo <morganamilo@gmail.com>
diff --git a/src/pacman/files.c b/src/pacman/files.c index 3b6dc23b..91d891a6 100644 --- a/src/pacman/files.c +++ b/src/pacman/files.c @@ -94,17 +94,26 @@ static void print_match(alpm_list_t *match, alpm_db_t *repo, alpm_pkg_t *pkg, in } }
+struct filetarget { + char *targ; + int exact_file; + regex_t reg; +}; + +static void filetarget_free(struct filetarget *ftarg) { + regfree(&ftarg->reg); + free(ftarg); +} +
Rest of the patch looks fine. But first thing I saw here was we are not freeing char* targ. But we don't have to because the memory is held elsewhere. Add a comment to clarify that an I am happy with the patch. Also: .git/rebase-apply/patch:42: trailing whitespace. pm_printf(ALPM_LOG_ERROR, warning: 1 line adds whitespace errors. You can enable a git hook to stop you committing files with whitespace issues. As an aside, now we precompile all regex, I wonder if we should loop though them withing each package? e.g. "pacman -F foo bar" in Arch Luinux gives a result for community/phonegap in two different places in the output. A