mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-25 13:24:46 +00: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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186080 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -92,7 +92,6 @@ bool AddAfter = false; ///< 'a' modifier
|
|||||||
bool AddBefore = false; ///< 'b' modifier
|
bool AddBefore = false; ///< 'b' modifier
|
||||||
bool Create = false; ///< 'c' modifier
|
bool Create = false; ///< 'c' modifier
|
||||||
bool InsertBefore = false; ///< 'i' modifier
|
bool InsertBefore = false; ///< 'i' modifier
|
||||||
bool UseCount = false; ///< 'N' modifier
|
|
||||||
bool OriginalDates = false; ///< 'o' modifier
|
bool OriginalDates = false; ///< 'o' modifier
|
||||||
bool SymTable = true; ///< 's' & 'S' modifiers
|
bool SymTable = true; ///< 's' & 'S' modifiers
|
||||||
bool OnlyUpdate = false; ///< 'u' modifier
|
bool OnlyUpdate = false; ///< 'u' modifier
|
||||||
@@ -104,10 +103,6 @@ bool Verbose = false; ///< 'v' modifier
|
|||||||
// one variable.
|
// one variable.
|
||||||
std::string RelPos;
|
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
|
// This variable holds the name of the archive file as given on the
|
||||||
// command line.
|
// command line.
|
||||||
std::string ArchiveName;
|
std::string ArchiveName;
|
||||||
@@ -154,20 +149,6 @@ void getRelPos() {
|
|||||||
RestOfArgs.erase(RestOfArgs.begin());
|
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
|
// getArchive - Get the archive file name from the command line
|
||||||
void getArchive() {
|
void getArchive() {
|
||||||
if(RestOfArgs.size() == 0)
|
if(RestOfArgs.size() == 0)
|
||||||
@@ -230,10 +211,6 @@ ArchiveOperation parseCommandLine() {
|
|||||||
InsertBefore = true;
|
InsertBefore = true;
|
||||||
NumPositional++;
|
NumPositional++;
|
||||||
break;
|
break;
|
||||||
case 'N':
|
|
||||||
getCount();
|
|
||||||
UseCount = true;
|
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
cl::PrintHelpMessage();
|
cl::PrintHelpMessage();
|
||||||
}
|
}
|
||||||
@@ -263,8 +240,6 @@ ArchiveOperation parseCommandLine() {
|
|||||||
show_help("The 'o' modifier is only applicable to the 'x' operation");
|
show_help("The 'o' modifier is only applicable to the 'x' operation");
|
||||||
if (OnlyUpdate && Operation != ReplaceOrInsert)
|
if (OnlyUpdate && Operation != ReplaceOrInsert)
|
||||||
show_help("The 'u' modifier is only applicable to the 'r' operation");
|
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 the parsed operation to the caller
|
||||||
return Operation;
|
return Operation;
|
||||||
@@ -299,26 +274,21 @@ bool buildPaths(bool checkExistence, std::string* ErrMsg) {
|
|||||||
bool doPrint(std::string* ErrMsg) {
|
bool doPrint(std::string* ErrMsg) {
|
||||||
if (buildPaths(false, ErrMsg))
|
if (buildPaths(false, ErrMsg))
|
||||||
return true;
|
return true;
|
||||||
unsigned countDown = Count;
|
|
||||||
for (Archive::iterator I = TheArchive->begin(), E = TheArchive->end();
|
for (Archive::iterator I = TheArchive->begin(), E = TheArchive->end();
|
||||||
I != E; ++I ) {
|
I != E; ++I ) {
|
||||||
if (Paths.empty() ||
|
if (Paths.empty() ||
|
||||||
(std::find(Paths.begin(), Paths.end(), I->getPath()) != Paths.end())) {
|
(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
|
// Skip things that don't make sense to print
|
||||||
if (I->isSVR4SymbolTable() || I->isBSD4SymbolTable())
|
if (I->isSVR4SymbolTable() || I->isBSD4SymbolTable())
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (Verbose)
|
if (Verbose)
|
||||||
outs() << "Printing " << I->getPath().str() << "\n";
|
outs() << "Printing " << I->getPath().str() << "\n";
|
||||||
|
|
||||||
unsigned len = I->getSize();
|
unsigned len = I->getSize();
|
||||||
outs().write(data, len);
|
outs().write(data, len);
|
||||||
} else {
|
|
||||||
countDown--;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
@@ -435,16 +405,12 @@ doDelete(std::string* ErrMsg) {
|
|||||||
return true;
|
return true;
|
||||||
if (Paths.empty())
|
if (Paths.empty())
|
||||||
return false;
|
return false;
|
||||||
unsigned countDown = Count;
|
|
||||||
for (Archive::iterator I = TheArchive->begin(), E = TheArchive->end();
|
for (Archive::iterator I = TheArchive->begin(), E = TheArchive->end();
|
||||||
I != E; ) {
|
I != E; ) {
|
||||||
if (std::find(Paths.begin(), Paths.end(), I->getPath()) != Paths.end()) {
|
if (std::find(Paths.begin(), Paths.end(), I->getPath()) != Paths.end()) {
|
||||||
if (countDown == 1) {
|
Archive::iterator J = I;
|
||||||
Archive::iterator J = I;
|
++I;
|
||||||
++I;
|
TheArchive->erase(J);
|
||||||
TheArchive->erase(J);
|
|
||||||
} else
|
|
||||||
countDown--;
|
|
||||||
} else {
|
} else {
|
||||||
++I;
|
++I;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user