Print this page
make: unifdef SUN5_0 (defined)
*** 44,64 ****
#include <errno.h> /* errno */
#include <fcntl.h> /* open() */
#include <mk/defs.h>
#include <mksh/misc.h> /* retmem_mb() */
- #if defined(SUN5_0) || defined(HP_UX) || defined(linux)
struct ranlib {
union {
off_t ran_strx; /* string table index of */
char *ran_name; /* symbol defined by */
} ran_un;
off_t ran_off; /* library member at this offset */
};
- #else
- #include <ranlib.h>
- #endif
#if defined(linux)
#include <ctype.h> /* isspace */
#else
#include <unistd.h> /* close() */
--- 44,60 ----
*** 286,319 ****
if ((fd < 0) || ((arp->fd = fdopen(fd, "r")) == NULL)) {
return failed;
}
(void) fcntl(fileno(arp->fd), F_SETFD, 1);
- #if !defined(SUN5_0) && !defined(linux) //XXX
- /* Read enough of the archive to distinguish between the formats */
- if (fread(mag_5, AR_5_MAGIC_LENGTH, 1, arp->fd) != 1) {
- return failed;
- }
- if (IS_EQUALN(mag_5, AR_5_MAGIC, AR_5_MAGIC_LENGTH)) {
- arp->type = AR_5;
- /* Must read in header to set necessary info */
- if (fseek(arp->fd, 0L, 0) != 0 ||
- fread((char *) &arp->arh_5, sizeof (Arh_5), 1, arp->fd) !=
- 1) {
- return failed;
- }
- arp->sym_begin = ftell(arp->fd);
- arp->num_symbols = sgetl(arp->arh_5.ar_syms);
- arp->first_ar_mem = arp->sym_begin +
- sizeof (Ars_5) * arp->num_symbols;
- arp->sym_size = 0L;
- return succeeded;
- }
- if (fseek(arp->fd, 0L, 0) != 0) {
- return failed;
- }
- #endif
if (fread(mag_port, AR_PORT_MAGIC_LENGTH, 1, arp->fd) != 1) {
return failed;
}
if (IS_EQUALN(mag_port, AR_PORT_MAGIC, AR_PORT_MAGIC_LENGTH)) {
arp->type = AR_PORT;
--- 282,291 ----
*** 342,368 ****
* Do we have a symbol table? A symbol table is always
* the first member in an archive. In 4.1.x it has the
* name __.SYMDEF, in SVr4, it has the name "/ "
*/
/*
! #ifdef SUN5_0
! MBSTOWCS(wcs_buffer, NOCATGETS("/ "));
! if (IS_WEQUALN(arp->ar_port.ar_name, wcs_buffer, 16)) {
! #else
! MBSTOWCS(wcs_buffer, NOCATGETS("__.SYMDEF "));
if (IS_WEQUALN(arp->ar_port.ar_name, wcs_buffer, 16)) {
- #endif
*/
- #if defined(SUN5_0) || defined(HP_UX) || defined(linux)
if (IS_EQUALN(arp->ar_port.ar_name,
NOCATGETS("/ "),
16)) {
- #else
- if (IS_EQUALN(arp->ar_port.ar_name,
- NOCATGETS("__.SYMDEF "),
- 16)) {
- #endif
if (sscanf(arp->ar_port.ar_size,
"%ld",
&arp->sym_size) != 1) {
return failed;
}
--- 314,329 ----
* Do we have a symbol table? A symbol table is always
* the first member in an archive. In 4.1.x it has the
* name __.SYMDEF, in SVr4, it has the name "/ "
*/
/*
! MBSTOWCS(wcs_buffer, "/ ");
if (IS_WEQUALN(arp->ar_port.ar_name, wcs_buffer, 16)) {
*/
if (IS_EQUALN(arp->ar_port.ar_name,
NOCATGETS("/ "),
16)) {
if (sscanf(arp->ar_port.ar_size,
"%ld",
&arp->sym_size) != 1) {
return failed;
}
*** 414,428 ****
* with names > 15 characters long
*
* Global variables used:
*/
static Boolean
- #if defined(SUN5_0) || defined(linux) //XXX
read_archive_dir(register Ar *arp, Name library, char **long_names_table)
- #else
- read_archive_dir(register Ar *arp, Name library, char **)
- #endif
{
wchar_t *name_string;
wchar_t *member_string;
register long len;
register wchar_t *p;
--- 375,385 ----
*** 430,450 ****
register Name name;
Property member;
long ptr;
long date;
- #if defined(SUN5_0) || defined(linux) //XXX
int offset;
/*
* If any of the members has a name > 15 chars,
* it will be found here.
*/
if (process_long_names_member(arp, long_names_table, library->string_mb) == failed) {
return failed;
}
- #endif
name_string = ALLOC_WC((int) (library->hash.length +
(int) ar_member_name_len * 2));
(void) mbstowcs(name_string, library->string_mb, (int) library->hash.length);
member_string = name_string + library->hash.length;
*member_string++ = (int) parenleft_char;
--- 387,405 ----
*** 516,526 ****
catgets(catd, 1, 28, "Read error in archive `%s': invalid archive file member header at 0x%x"),
library->string_mb,
ftell(arp->fd)
);
}
- #if defined(SUN5_0) || defined(linux) //XXX
/* If it's a long name, retrieve it from long name table */
if (arp->ar_port.ar_name[0] == '/') {
/*
* "len" is used for hashing the string.
* We're using "ar_member_name_len" instead of
--- 471,480 ----
*** 535,548 ****
q = *long_names_table + offset;
} else {
q = arp->ar_port.ar_name;
len = sizeof arp->ar_port.ar_name;
}
- #else
- q = arp->ar_port.ar_name;
- len = sizeof arp->ar_port.ar_name;
- #endif
for (p = member_string;
(len > 0) &&
(*q != (int) nul_char) &&
!isspace(*q) &&
--- 489,498 ----
*** 782,792 ****
&date) != 1) {
fatal(catgets(catd, 1, 9, "Bad date field for member `%s' in archive `%s'"),
arp->ar_port.ar_name,
target->string_mb);
}
- #if defined(SUN5_0) || defined(linux) //XXX
/* If it's a long name, retrieve it from long name table */
if (arp->ar_port.ar_name[0] == '/') {
sscanf(arp->ar_port.ar_name + 1,
"%ld",
&offset);
--- 732,741 ----
*** 794,806 ****
hp = *long_names_table + offset;
} else {
len = sizeof arp->ar_port.ar_name;
hp = arp->ar_port.ar_name;
}
- #else
- hp = arp->ar_port.ar_name;
- #endif
ap = member_string;
while (*hp &&
(*hp != (int) slash_char) &&
(ap < &member_string[len])) {
MBTOWC(ap, hp);
--- 743,752 ----