On 25/01/11 23:03, Dan McGee wrote:
On Thu, Jan 20, 2011 at 12:20 PM, Florian Pritz <bluewind@server-speed.net> wrote:
On 19.01.2011 19:29, Dan McGee wrote:
On Wed, Jan 19, 2011 at 11:13 AM, Florian Pritz<bluewind@xssn.at> wrote:
-dd ignores only the version of a dependency being checked, but not the package itself.
I don't mind this, but it just seems...backwards. Specifying more flags should make it less-restrictive, not more restrictive, but I understand the desire to keep backward compatibility. With that said, does it matter? People that use -d very often are usually screwing their system or know what they are doing- should we make -d just skip versions and -dd skip everything?
static int parsearg_trans(int opt) { + static int nodeps = 0; switch(opt) { - case 'd': config->flags |= PM_TRANS_FLAG_NODEPS; break; + case 'd': + nodeps++; + if(nodeps == 1) { + config->flags |= PM_TRANS_FLAG_NODEPS; + } else if(nodeps == 2) { + config->flags ^= PM_TRANS_FLAG_NODEPS; + config->flags |= PM_TRANS_FLAG_NODEPVERSION; + } + break; You can do this without a static local; look at "case 's'" in parsearg_remove().
I'll wait for a decision about -d and -dd before fixing that.
Anyone else want to offer an opinion on this? I'd like to reverse the two options to match what we do elsewhere- -d will now just ignore versions, -dd everything.
That seems reasonable. With -d getting stricter in terms of dependency checks, there should not be any issues caused by this change going unnoticed by people who currently using -d. Allan