Allow both `pacman -S foo --overwrite /usr/lib/foo.sh` and `pacman -S foo --overwrite usr/lib/foo.sh` (with any number of leading / ignored) to semantically mean the same thing. Update the documentation to reflect this change. Signed-off-by: Joey Pabalinas <joeypabalinas@gmail.com> 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/doc/pacman.8.asciidoc b/doc/pacman.8.asciidoc index b6f4dd76e1249fd0ec..1bafe3c3c1aedb0051 100644 --- a/doc/pacman.8.asciidoc +++ b/doc/pacman.8.asciidoc @@ -263,12 +263,13 @@ Upgrade Options (apply to '-S' and '-U')[[UO]] overwritten. Using '\--overwrite' will not allow overwriting a directory with a file or installing packages with conflicting files and directories. Multiple patterns can be specified by separating them with a comma. May be specified multiple times. Patterns can be negated, such that files matching them will not be overwritten, by prefixing them with an - exclamation mark. Subsequent matches will override previous ones. A leading - literal exclamation mark or backslash needs to be escaped. + exclamation mark. Subsequent matches will override previous ones. Any + leading slashes in the pattern are ignored. A leading literal exclamation + mark or backslash needs to be escaped. Query Options (apply to '-Q')[[QO]] ----------------------------------- *-c, \--changelog*:: diff --git a/src/pacman/pacman.c b/src/pacman/pacman.c index fe54793ea775c03915..f757b4141601587105 100644 --- a/src/pacman/pacman.c +++ b/src/pacman/pacman.c @@ -317,10 +317,12 @@ static void invalid_opt(int used, const char *opt1, const char *opt2) static int parsearg_util_addlist(alpm_list_t **list) { char *i, *save = NULL; for(i = strtok_r(optarg, ",", &save); i; i = strtok_r(NULL, ",", &save)) { + /* strip any leading slashes */ + i += strspn(i, "/"); *list = alpm_list_add(*list, strdup(i)); } return 0; } -- 2.17.0.rc1.35.g90bbd502d54fe92035.dirty