mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 19:23:23 +01:00
Remove the 'N' modifier from llvm-ar.
* It is not present on OS X. * It is untested. * It is not needed for using ar in a build system. llvm-svn: 186080
This commit is contained in:
parent
0cf59a462a
commit
5033dd7f7f
@ -92,7 +92,6 @@ bool AddAfter = false; ///< 'a' modifier
|
||||
bool AddBefore = false; ///< 'b' modifier
|
||||
bool Create = false; ///< 'c' modifier
|
||||
bool InsertBefore = false; ///< 'i' modifier
|
||||
bool UseCount = false; ///< 'N' modifier
|
||||
bool OriginalDates = false; ///< 'o' modifier
|
||||
bool SymTable = true; ///< 's' & 'S' modifiers
|
||||
bool OnlyUpdate = false; ///< 'u' modifier
|
||||
@ -104,10 +103,6 @@ bool Verbose = false; ///< 'v' modifier
|
||||
// one variable.
|
||||
std::string RelPos;
|
||||
|
||||
// Select which of multiple entries in the archive with the same name should be
|
||||
// used (specified with -N) for the delete and extract operations.
|
||||
int Count = 1;
|
||||
|
||||
// This variable holds the name of the archive file as given on the
|
||||
// command line.
|
||||
std::string ArchiveName;
|
||||
@ -154,20 +149,6 @@ void getRelPos() {
|
||||
RestOfArgs.erase(RestOfArgs.begin());
|
||||
}
|
||||
|
||||
// getCount - Extract the [count] argument associated with the N modifier
|
||||
// from the command line and check its value.
|
||||
void getCount() {
|
||||
if(RestOfArgs.size() == 0)
|
||||
show_help("Expected [count] value with N modifier");
|
||||
|
||||
Count = atoi(RestOfArgs[0].c_str());
|
||||
RestOfArgs.erase(RestOfArgs.begin());
|
||||
|
||||
// Non-positive counts are not allowed
|
||||
if (Count < 1)
|
||||
show_help("Invalid [count] value (not a positive integer)");
|
||||
}
|
||||
|
||||
// getArchive - Get the archive file name from the command line
|
||||
void getArchive() {
|
||||
if(RestOfArgs.size() == 0)
|
||||
@ -230,10 +211,6 @@ ArchiveOperation parseCommandLine() {
|
||||
InsertBefore = true;
|
||||
NumPositional++;
|
||||
break;
|
||||
case 'N':
|
||||
getCount();
|
||||
UseCount = true;
|
||||
break;
|
||||
default:
|
||||
cl::PrintHelpMessage();
|
||||
}
|
||||
@ -263,8 +240,6 @@ ArchiveOperation parseCommandLine() {
|
||||
show_help("The 'o' modifier is only applicable to the 'x' operation");
|
||||
if (OnlyUpdate && Operation != ReplaceOrInsert)
|
||||
show_help("The 'u' modifier is only applicable to the 'r' operation");
|
||||
if (Count > 1 && Members.size() > 1)
|
||||
show_help("Only one member name may be specified with the 'N' modifier");
|
||||
|
||||
// Return the parsed operation to the caller
|
||||
return Operation;
|
||||
@ -299,26 +274,21 @@ bool buildPaths(bool checkExistence, std::string* ErrMsg) {
|
||||
bool doPrint(std::string* ErrMsg) {
|
||||
if (buildPaths(false, ErrMsg))
|
||||
return true;
|
||||
unsigned countDown = Count;
|
||||
for (Archive::iterator I = TheArchive->begin(), E = TheArchive->end();
|
||||
I != E; ++I ) {
|
||||
if (Paths.empty() ||
|
||||
(std::find(Paths.begin(), Paths.end(), I->getPath()) != Paths.end())) {
|
||||
if (countDown == 1) {
|
||||
const char* data = reinterpret_cast<const char*>(I->getData());
|
||||
const char *data = reinterpret_cast<const char *>(I->getData());
|
||||
|
||||
// Skip things that don't make sense to print
|
||||
if (I->isSVR4SymbolTable() || I->isBSD4SymbolTable())
|
||||
continue;
|
||||
// Skip things that don't make sense to print
|
||||
if (I->isSVR4SymbolTable() || I->isBSD4SymbolTable())
|
||||
continue;
|
||||
|
||||
if (Verbose)
|
||||
outs() << "Printing " << I->getPath().str() << "\n";
|
||||
if (Verbose)
|
||||
outs() << "Printing " << I->getPath().str() << "\n";
|
||||
|
||||
unsigned len = I->getSize();
|
||||
outs().write(data, len);
|
||||
} else {
|
||||
countDown--;
|
||||
}
|
||||
unsigned len = I->getSize();
|
||||
outs().write(data, len);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
@ -435,16 +405,12 @@ doDelete(std::string* ErrMsg) {
|
||||
return true;
|
||||
if (Paths.empty())
|
||||
return false;
|
||||
unsigned countDown = Count;
|
||||
for (Archive::iterator I = TheArchive->begin(), E = TheArchive->end();
|
||||
I != E; ) {
|
||||
if (std::find(Paths.begin(), Paths.end(), I->getPath()) != Paths.end()) {
|
||||
if (countDown == 1) {
|
||||
Archive::iterator J = I;
|
||||
++I;
|
||||
TheArchive->erase(J);
|
||||
} else
|
||||
countDown--;
|
||||
Archive::iterator J = I;
|
||||
++I;
|
||||
TheArchive->erase(J);
|
||||
} else {
|
||||
++I;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user