1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 03:33:20 +01:00

Adjust long file name writing to match BSD 4.4 and Mac OSX style archives.

llvm-svn: 17910
This commit is contained in:
Reid Spencer 2004-11-17 16:14:21 +00:00
parent f59013e0fa
commit b9fbea4c79

View File

@ -88,15 +88,6 @@ Archive::fillHeader(const ArchiveMember &mbr, ArchiveMemberHeader& hdr,
sprintf(buffer, "%-6u", mbr.getGroup());
memcpy(hdr.gid,buffer,6);
// Set the size field
if (sz < 0) {
buffer[0] = '-';
sprintf(&buffer[1],"%-9u",(unsigned)-sz);
} else {
sprintf(buffer, "%-10u", (unsigned)sz);
}
memcpy(hdr.size,buffer,10);
// Set the last modification date
uint64_t secondsSinceEpoch = mbr.getModTime().toEpochTime();
sprintf(buffer,"%-12u", unsigned(secondsSinceEpoch));
@ -130,8 +121,22 @@ Archive::fillHeader(const ArchiveMember &mbr, ArchiveMemberHeader& hdr,
std::string nm = "#1/";
nm += utostr(mbrPath.length());
nm.copy(hdr.name,nm.length());
if (sz < 0)
sz -= mbrPath.length();
else
sz += mbrPath.length();
writeLongName = true;
}
// Set the size field
if (sz < 0) {
buffer[0] = '-';
sprintf(&buffer[1],"%-9u",(unsigned)-sz);
} else {
sprintf(buffer, "%-10u", (unsigned)sz);
}
memcpy(hdr.size,buffer,10);
return writeLongName;
}
@ -266,7 +271,6 @@ Archive::writeMember(
// Write the long filename if its long
if (writeLongName) {
ARFile << member.getPath().c_str();
ARFile << '\n';
}
// Make sure we write the compressed bytecode magic number if we should.