Start using CHECK-LABEL in some tests.
[oota-llvm.git] / tools / llvm-ar / llvm-ar.cpp
index 7b1dad091b1ae9ebfc6ba374cd659f9ddec9bd6c..fd6841c9f16de57b8555329bcde3437fe4283fcb 100644 (file)
@@ -91,7 +91,6 @@ enum ArchiveOperation {
 bool AddAfter = false;           ///< 'a' modifier
 bool AddBefore = false;          ///< 'b' modifier
 bool Create = false;             ///< 'c' modifier
-bool InsertBefore = false;       ///< 'i' modifier
 bool OriginalDates = false;      ///< 'o' modifier
 bool SymTable = true;            ///< 's' & 'S' modifiers
 bool OnlyUpdate = false;         ///< 'u' modifier
@@ -208,7 +207,7 @@ ArchiveOperation parseCommandLine() {
       break;
     case 'i':
       getRelPos();
-      InsertBefore = true;
+      AddBefore = true;
       NumPositional++;
       break;
     default:
@@ -231,7 +230,7 @@ ArchiveOperation parseCommandLine() {
     show_help("Only one operation may be specified");
   if (NumPositional > 1)
     show_help("You may only specify one of a, b, and i modifiers");
-  if (AddAfter || AddBefore || InsertBefore) {
+  if (AddAfter || AddBefore) {
     if (Operation != Move && Operation != ReplaceOrInsert)
       show_help("The 'a', 'b' and 'i' modifiers can only be specified with "
             "the 'm' or 'r' operations");
@@ -325,17 +324,15 @@ doDisplayTable(std::string* ErrMsg) {
     if (Paths.empty() ||
         (std::find(Paths.begin(), Paths.end(), I->getPath()) != Paths.end())) {
       if (Verbose) {
-        // FIXME: Output should be this format:
-        // Zrw-r--r--  500/ 500    525 Nov  8 17:42 2004 Makefile
-        outs() << " ";
         unsigned mode = I->getMode();
         printMode((mode >> 6) & 007);
         printMode((mode >> 3) & 007);
         printMode(mode & 007);
-        outs() << " " << format("%4u", I->getUser());
-        outs() << "/" << format("%4u", I->getGroup());
-        outs() << " " << format("%8u", I->getSize());
-        outs() << " " << format("%20s", I->getModTime().str().substr(4).c_str());
+        outs() << ' ' << I->getUser();
+        outs() << "/" << I->getGroup();
+        outs() << ' ' << format("%6llu", I->getSize());
+        sys::TimeValue ModTime = I->getModTime();
+        outs() << " " << ModTime.str();
         outs() << " " << I->getPath().str() << "\n";
       } else {
         outs() << I->getPath().str() << "\n";
@@ -438,7 +435,7 @@ doMove(std::string* ErrMsg) {
   // However, if the relative positioning modifiers were used, we need to scan
   // the archive to find the member in question. If we don't find it, its no
   // crime, we just move to the end.
-  if (AddBefore || InsertBefore || AddAfter) {
+  if (AddBefore || AddAfter) {
     for (Archive::iterator I = TheArchive->begin(), E= TheArchive->end();
          I != E; ++I ) {
       if (RelPos == I->getPath().str()) {
@@ -557,7 +554,7 @@ doReplaceOrInsert(std::string* ErrMsg) {
     }
 
     // Determine if this is the place where we should insert
-    if ((AddBefore || InsertBefore) && RelPos == I->getPath().str())
+    if (AddBefore && RelPos == I->getPath().str())
       insert_spot = I;
     else if (AddAfter && RelPos == I->getPath().str()) {
       insert_spot = I;