Date: Wed, 29 Jul 2015 17:03:06 +0000 From: "emaste (Ed Maste)" <phabric-noreply@FreeBSD.org> To: freebsd-toolchain@freebsd.org Subject: [Differential] [Request, 25 lines] D3237: Fix ar default deterministic mode for -x Message-ID: <differential-rev-PHID-DREV-p6eaneh7blvpd5hxa2t2-req@FreeBSD.org>
next in thread | raw e-mail | index | archive | help
--b1_bd48a8bb23acfa48e2533338ce90c80a Content-Type: text/plain; charset = "utf-8" Content-Transfer-Encoding: 8bit emaste created this revision. emaste added reviewers: jhibbits, bapt, brooks. emaste added subscribers: freebsd-toolchain-list, jhibbits. REVISION SUMMARY Reported by: @jhibbits REVISION DETAIL https://reviews.freebsd.org/D3237 AFFECTED FILES usr.bin/ar/ar.c CHANGE DETAILS diff --git a/usr.bin/ar/ar.c b/usr.bin/ar/ar.c --- a/usr.bin/ar/ar.c +++ b/usr.bin/ar/ar.c @@ -101,11 +101,12 @@ char *p; size_t len; int i, opt; + int Dflag, Uflag; bsdar = &bsdar_storage; memset(bsdar, 0, sizeof(*bsdar)); - /* Enable deterministic mode by default. */ - bsdar->options |= AR_D; + Dflag = 0; + Uflag = 0; if ((bsdar->progname = getprogname()) == NULL) bsdar->progname = "ar"; @@ -122,10 +123,12 @@ /* Ignored. */ break; case 'D': - bsdar->options |= AR_D; + Dflag = 1; + Uflag = 0; break; case 'U': - bsdar->options &= ~AR_D; + Uflag = 1; + Dflag = 0; break; case 'V': ranlib_version(); @@ -182,7 +185,8 @@ set_mode(bsdar, opt); break; case 'D': - bsdar->options |= AR_D; + Dflag = 1; + Uflag = 0; break; case 'f': case 'T': @@ -222,7 +226,8 @@ set_mode(bsdar, opt); break; case 'U': - bsdar->options &= ~AR_D; + Uflag = 1; + Dflag = 0; break; case 'u': bsdar->options |= AR_U; @@ -275,16 +280,22 @@ argv++; } + /* Set determinstic mode for -D, and by default without -U. */ + if (Dflag || (Uflag == 0 && (bsdar->mode == 'q' || bsdar->mode == 'r'))) + bsdar->options |= AR_D; + if (bsdar->options & AR_A) only_mode(bsdar, "-a", "mqr"); if (bsdar->options & AR_B) only_mode(bsdar, "-b", "mqr"); if (bsdar->options & AR_C) only_mode(bsdar, "-c", "qr"); if (bsdar->options & AR_CC) only_mode(bsdar, "-C", "x"); - if (bsdar->options & AR_D) + if (Dflag) only_mode(bsdar, "-D", "qr"); + if (Uflag) + only_mode(bsdar, "-U", "qr"); if (bsdar->options & AR_O) only_mode(bsdar, "-o", "x"); if (bsdar->options & AR_SS) EMAIL PREFERENCES https://reviews.freebsd.org/settings/panel/emailpreferences/ To: emaste, jhibbits, bapt, brooks Cc: jhibbits, freebsd-toolchain-list --b1_bd48a8bb23acfa48e2533338ce90c80a Content-Type: text/x-patch; charset=utf-8; name="D3237.7472.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="D3237.7472.patch" ZGlmZiAtLWdpdCBhL3Vzci5iaW4vYXIvYXIuYyBiL3Vzci5iaW4vYXIvYXIuYwotLS0gYS91c3Iu YmluL2FyL2FyLmMKKysrIGIvdXNyLmJpbi9hci9hci5jCkBAIC0xMDEsMTEgKzEwMSwxMiBAQAog CWNoYXIJCSpwOwogCXNpemVfdAkJIGxlbjsKIAlpbnQJCSBpLCBvcHQ7CisJaW50CQkgRGZsYWcs IFVmbGFnOwogCiAJYnNkYXIgPSAmYnNkYXJfc3RvcmFnZTsKIAltZW1zZXQoYnNkYXIsIDAsIHNp emVvZigqYnNkYXIpKTsKLQkvKiBFbmFibGUgZGV0ZXJtaW5pc3RpYyBtb2RlIGJ5IGRlZmF1bHQu ICovCi0JYnNkYXItPm9wdGlvbnMgfD0gQVJfRDsKKwlEZmxhZyA9IDA7CisJVWZsYWcgPSAwOwog CiAJaWYgKChic2Rhci0+cHJvZ25hbWUgPSBnZXRwcm9nbmFtZSgpKSA9PSBOVUxMKQogCQlic2Rh ci0+cHJvZ25hbWUgPSAiYXIiOwpAQCAtMTIyLDEwICsxMjMsMTIgQEAKIAkJCQkvKiBJZ25vcmVk LiAqLwogCQkJCWJyZWFrOwogCQkJY2FzZSAnRCc6Ci0JCQkJYnNkYXItPm9wdGlvbnMgfD0gQVJf RDsKKwkJCQlEZmxhZyA9IDE7CisJCQkJVWZsYWcgPSAwOwogCQkJCWJyZWFrOwogCQkJY2FzZSAn VSc6Ci0JCQkJYnNkYXItPm9wdGlvbnMgJj0gfkFSX0Q7CisJCQkJVWZsYWcgPSAxOworCQkJCURm bGFnID0gMDsKIAkJCQlicmVhazsKIAkJCWNhc2UgJ1YnOgogCQkJCXJhbmxpYl92ZXJzaW9uKCk7 CkBAIC0xODIsNyArMTg1LDggQEAKIAkJCXNldF9tb2RlKGJzZGFyLCBvcHQpOwogCQkJYnJlYWs7 CiAJCWNhc2UgJ0QnOgotCQkJYnNkYXItPm9wdGlvbnMgfD0gQVJfRDsKKwkJCURmbGFnID0gMTsK KwkJCVVmbGFnID0gMDsKIAkJCWJyZWFrOwogCQljYXNlICdmJzoKIAkJY2FzZSAnVCc6CkBAIC0y MjIsNyArMjI2LDggQEAKIAkJCXNldF9tb2RlKGJzZGFyLCBvcHQpOwogCQkJYnJlYWs7CiAJCWNh c2UgJ1UnOgotCQkJYnNkYXItPm9wdGlvbnMgJj0gfkFSX0Q7CisJCQlVZmxhZyA9IDE7CisJCQlE ZmxhZyA9IDA7CiAJCQlicmVhazsKIAkJY2FzZSAndSc6CiAJCQlic2Rhci0+b3B0aW9ucyB8PSBB Ul9VOwpAQCAtMjc1LDE2ICsyODAsMjIgQEAKIAkJYXJndisrOwogCX0KIAorCS8qIFNldCBkZXRl cm1pbnN0aWMgbW9kZSBmb3IgLUQsIGFuZCBieSBkZWZhdWx0IHdpdGhvdXQgLVUuICovCisJaWYg KERmbGFnIHx8IChVZmxhZyA9PSAwICYmIChic2Rhci0+bW9kZSA9PSAncScgfHwgYnNkYXItPm1v ZGUgPT0gJ3InKSkpCisJCWJzZGFyLT5vcHRpb25zIHw9IEFSX0Q7CisKIAlpZiAoYnNkYXItPm9w dGlvbnMgJiBBUl9BKQogCQlvbmx5X21vZGUoYnNkYXIsICItYSIsICJtcXIiKTsKIAlpZiAoYnNk YXItPm9wdGlvbnMgJiBBUl9CKQogCQlvbmx5X21vZGUoYnNkYXIsICItYiIsICJtcXIiKTsKIAlp ZiAoYnNkYXItPm9wdGlvbnMgJiBBUl9DKQogCQlvbmx5X21vZGUoYnNkYXIsICItYyIsICJxciIp OwogCWlmIChic2Rhci0+b3B0aW9ucyAmIEFSX0NDKQogCQlvbmx5X21vZGUoYnNkYXIsICItQyIs ICJ4Iik7Ci0JaWYgKGJzZGFyLT5vcHRpb25zICYgQVJfRCkKKwlpZiAoRGZsYWcpCiAJCW9ubHlf bW9kZShic2RhciwgIi1EIiwgInFyIik7CisJaWYgKFVmbGFnKQorCQlvbmx5X21vZGUoYnNkYXIs ICItVSIsICJxciIpOwogCWlmIChic2Rhci0+b3B0aW9ucyAmIEFSX08pCiAJCW9ubHlfbW9kZShi c2RhciwgIi1vIiwgIngiKTsKIAlpZiAoYnNkYXItPm9wdGlvbnMgJiBBUl9TUykKCg== --b1_bd48a8bb23acfa48e2533338ce90c80a--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?differential-rev-PHID-DREV-p6eaneh7blvpd5hxa2t2-req>