On 02/06/18 09:01, Joey Pabalinas wrote:
On Fri, Jun 01, 2018 at 06:56:13PM -0400, Andrew Gregory wrote:
Sort of. The current --root option is a confusing mess that nobody actually understands, so it will go away at some point. The underlying libalpm rootdir setting isn't going anywhere though, and, in the future, will be configured with a new --rootdir option.
Well looking at the code it actually isn't as complicated as I thought it would be.
How about something like this:
case OP_OVERWRITE_FILES: { char *i, *root = config->rootdir, *save = NULL; for(i = strtok_r(optarg, ",", &save); i; i = strtok_r(NULL, ",", &save)) { /* strip rootdir if applicable */ if (root && !memcmp(i, root, strlen(root))) i += strlen(root); /* strip remaining leading "/" before adding to option list */ i += strspn(i, "/"); config->overwrite_files = alpm_list_add(config->overwrite_files, strdup(i)); } }
which would strip the rootdir and then the leading "/". Although I am not 100% certain config->rootdir would be NULL if no argument is passed; could you confirm that part?
This will not work - we need to handle this after the config file is read as the root dir may be set there. A