mirror of
https://github.com/coreutils/coreutils.git
synced 2024-11-29 13:04:15 +08:00
54 lines
1.1 KiB
Bash
Executable File
54 lines
1.1 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
fail=0
|
|
cat <<\EOF || fail=1
|
|
#ifndef UNLOCKED_IO_H
|
|
# define UNLOCKED_IO_H 1
|
|
|
|
# ifndef USE_UNLOCKED_IO
|
|
# define USE_UNLOCKED_IO 1
|
|
# endif
|
|
|
|
# if USE_UNLOCKED_IO
|
|
|
|
/* These are wrappers for functions/macros from GNU libc.
|
|
The standard I/O functions are thread-safe. These *_unlocked ones are
|
|
more efficient but not thread-safe. That they're not thread-safe is
|
|
fine since all of the applications in this package are single threaded. */
|
|
|
|
EOF
|
|
|
|
for f in $@; do
|
|
u=`echo $f|tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ`
|
|
cat <<EOF || fail=1
|
|
# if HAVE_${u}_UNLOCKED
|
|
# undef $f
|
|
EOF
|
|
case $f in
|
|
getchar)
|
|
params=;;
|
|
putchar | clearerr | feof | ferror | fflush | getc )
|
|
params=x;;
|
|
putc | fputc | fputs )
|
|
params=x,y;;
|
|
fgets )
|
|
params=x,y,z;;
|
|
fread | fwrite )
|
|
params=w,x,y,z;;
|
|
*)
|
|
echo $0: missing case for $f 2>&1; fail=1;;
|
|
esac
|
|
cat <<EOF || fail=1
|
|
# define $f($params) ${f}_unlocked ($params)
|
|
# endif
|
|
EOF
|
|
done
|
|
|
|
cat <<\EOF || fail=1
|
|
|
|
# endif /* USE_UNLOCKED_IO */
|
|
#endif /* UNLOCKED_IO_H */
|
|
EOF
|
|
|
|
(exit $fail); exit
|