Mercurial > hg > octave-nkf > gnulib-hg
changeset 3517:fc06aa9f08c8
*** empty log message ***
author | Jim Meyering <jim@meyering.net> |
---|---|
date | Wed, 26 Sep 2001 08:13:41 +0000 |
parents | 6c7cdd88a9b5 |
children | 4cfc9bb4c2a5 |
files | lib/gen-uio |
diffstat | 1 files changed, 46 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
new file mode 100755 --- /dev/null +++ b/lib/gen-uio @@ -0,0 +1,46 @@ +#!/bin/sh + +tmp=gen-uio.$$ +trap 'status=$?; rm -f $tmp && exit $status' 0 +trap 'exit $?' 1 2 13 15 + +cat <<\EOF +#ifndef UNLOCKED_IO_H +# define UNLOCKED_IO_H 1 + +# 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 these applications are single threaded. */ + +EOF + +for f in $@; do + u=`echo $f|tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ` + echo "# if HAVE_${u}_UNLOCKED" + echo "# undef $f" + 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; exit 1;; + esac + echo "# define $f($params) ${f}_unlocked ($params)" + echo '# endif' +done + +cat <<\EOF + +# endif /* USE_UNLOCKED_IO */ +#endif /* UNLOCKED_IO_H */ +EOF