Andre Majorel <[EMAIL PROTECTED]> writes: >> And weird ones, too. These arguments are of type "pointer to >> fd_set". What would HPUX like to see there? > > HP-UX 10 wants (int *). However it defines fd_set as > > struct > { > long[]; > } > > so it works anyway. > > HP-UX 10 is wrong. SUS2 (and POSIX ?) say (fd_set *). HP-UX 11 > has it right. > > I suppose the best thing to do is to ignore those warnings.
Agreed. >> I think I'll use something like: >> >> #ifndef h_errno >> extern int h_errno; >> #endif > > h_errno is not necessarily a macro ! I know that. The above code says: "if h_errno is a macro, do nothing. otherwise, declare it." > What do you think of Maciej's proposal ? It sounds like the right thing to do. >> Two questions here: >> >> * Does HPUX really not have snprintf()? It sounds weird that a modern >> OS wouldn't have it. > > I find describing HP-UX 10 as a modern OS mildly amusing. :-) How old is it? I used to work on HPUX 9, and I'm not old by most definitions of the word. > I completely disagree with your perception that snprintf() is to be > taken for granted. It's only since C99 that's it's part of C. It's been a part of C since C99, that's true. But Wget relies on a lot of functionality not strictly in C, from alloca to the socket interface. Also, snprintf has become a big security thing recently, when a number of exploits was based on overflowing a buffer written to by sprintf. The pressure on vendors might be responsible for some of them being unusually swift in providing the function. But yes, I know I can't take it for granted, hence the provided replacement. > But to answer your question, no HP-UX doesn't have it (neither in > the headers nor in libc). HPUX 11 doesn't have it either? Interesting. >> * short int is promoted to int, ok. Does that go for all the >> architectures, or just some? Should I simply replace "short int" >> with "int" to get it to compile? > > Yes, replace short int and unsigned short by int. It's not > architecture specific, the same thing happened to me on x86. GCC > 2.95 doesn't care, GCC 2.96 and 3.0 complain. Ah, ok. Thanks for the info.