give up, GNU libc will never be compatible with UNIX libc
This commit is contained in:
parent
2b7da1632b
commit
62b707978e
22
ps/common.h
22
ps/common.h
@ -230,28 +230,6 @@ extern int simple_escape_str(char *dst, const char *src, size_t n);
|
||||
|
||||
/********************* UNDECIDED GLOBALS **************/
|
||||
|
||||
/*
|
||||
* fputs(3) should (as in "good behavior") return the number of
|
||||
* characters written as it does on Digital Unix, AIX, Irix, and SunOS.
|
||||
* I'll assume glibc 2.1 has this extremely useful feature.
|
||||
*
|
||||
* Note: code ported from other systems will keep breaking until
|
||||
* the library is updated. You should patch the library itself if
|
||||
* at all possible. (for example, distributers who build libc from
|
||||
* source with automatic patching as part of the build process)
|
||||
*/
|
||||
|
||||
#if defined __GLIBC__ && ((__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) || __GLIBC__ > 2)
|
||||
#warning Hopefully fputs(3) has been modernized...
|
||||
#else
|
||||
#define EMULATE_FPUTS
|
||||
#define fputs something_to_avoid_libc_troubles
|
||||
static inline int fputs(const char *s, FILE *fp){
|
||||
return fwrite(s,1,strlen(s),fp);
|
||||
/* return fprintf(fp, "%s", s); */
|
||||
}
|
||||
#endif
|
||||
|
||||
/* output.c */
|
||||
extern void show_one_proc(proc_t* p);
|
||||
extern void print_format_specifiers(void);
|
||||
|
17
ps/global.c
17
ps/global.c
@ -351,9 +351,6 @@ void reset_global(void){
|
||||
|
||||
/*********** spew variables ***********/
|
||||
void self_info(void){
|
||||
#ifndef EMULATE_FPUTS
|
||||
int count;
|
||||
#endif
|
||||
fprintf(stderr,
|
||||
"BSD j %s\n"
|
||||
"BSD l %s\n"
|
||||
@ -387,20 +384,6 @@ void self_info(void){
|
||||
__GNU_LIBRARY__, __GLIBC__, __GLIBC_MINOR__
|
||||
);
|
||||
|
||||
#ifdef EMULATE_FPUTS
|
||||
fprintf(stderr, "libc assumed lame, using fprintf to emulate fputs.\n\n");
|
||||
#else
|
||||
fprintf(stderr, "fputs(\"");
|
||||
count = fputs("123456789", stderr);
|
||||
fprintf(stderr, "\", stderr) gives %d, which is %s.\n",
|
||||
count, count==9?"good":"BAD!\nAdjust ps/common.h or libc, then recompile"
|
||||
);
|
||||
if(count!=9){
|
||||
fprintf(stderr, "(procps includes a libc patch called glibc.patch)\n");
|
||||
}
|
||||
fprintf(stderr, "\n");
|
||||
#endif
|
||||
|
||||
fprintf(stderr,
|
||||
"header_gap=%d lines_to_next_header=%d\n"
|
||||
"screen_cols=%d screen_rows=%d\n"
|
||||
|
@ -1709,7 +1709,7 @@ void show_one_proc(proc_t* p){
|
||||
leftpad = 0;
|
||||
break;
|
||||
default:
|
||||
fputs("bad alignment code\n", stderr);
|
||||
fprintf(stderr, "bad alignment code\n");
|
||||
break;
|
||||
}
|
||||
/* At this point:
|
||||
|
@ -864,7 +864,7 @@ static const char *parse_gnu_option(void){
|
||||
case_help:
|
||||
trace("--help\n");
|
||||
exclusive("--help");
|
||||
fputs(help_message, stderr);
|
||||
fwrite(help_message,1,strlen(help_message),stderr);
|
||||
exit(0);
|
||||
return NULL;
|
||||
case_info:
|
||||
@ -1131,7 +1131,7 @@ total_failure:
|
||||
reset_parser();
|
||||
if(personality & PER_FORCE_BSD) fprintf(stderr, "ERROR: %s\n", err2);
|
||||
else fprintf(stderr, "ERROR: %s\n", err);
|
||||
fputs(help_message, stderr);
|
||||
fwrite(help_message,1,strlen(help_message),stderr);
|
||||
exit(1);
|
||||
/* return 1; */ /* useless */
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user