diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2006-05-25 21:57:22 +0000 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2006-05-25 21:57:22 +0000 |
commit | e9eb2ad5791dd9999da15bc98c09f045f01275cf (patch) | |
tree | ff87e32ab6ed17052e540633f4706fae2689736b /lib | |
parent | 32cea0d8ae4e3226ed1a782051189569f9e9e452 (diff) | |
download | coreutils-e9eb2ad5791dd9999da15bc98c09f045f01275cf.tar.xz |
(small_open, large_open): New macros.
(__open, __open64) [!_LIBC]: Remove.
(__gen_tempname): Use small_open and large_open instead of __open
and __open64. This fixes a portability bug on HP-UX 11.11i
reported by Simon Wing-Tang in
<http://lists.gnu.org/archive/html/bug-coreutils/2006-05/msg00114.html>.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/ChangeLog | 9 | ||||
-rw-r--r-- | lib/tempname.c | 12 |
2 files changed, 16 insertions, 5 deletions
diff --git a/lib/ChangeLog b/lib/ChangeLog index a34f5988f..b0a50952e 100644 --- a/lib/ChangeLog +++ b/lib/ChangeLog @@ -1,3 +1,12 @@ +2006-05-25 Paul Eggert <eggert@cs.ucla.edu> + + * tempname.c (small_open, large_open): New macros. + (__open, __open64) [!_LIBC]: Remove. + (__gen_tempname): Use small_open and large_open instead of __open + and __open64. This fixes a portability bug on HP-UX 11.11i + reported by Simon Wing-Tang in + <http://lists.gnu.org/archive/html/bug-coreutils/2006-05/msg00114.html>. + 2006-05-23 Paul Eggert <eggert@cs.ucla.edu> * filemode.c: Don't include <string.h>; this include was diff --git a/lib/tempname.c b/lib/tempname.c index 3c9f59b32..a25beb205 100644 --- a/lib/tempname.c +++ b/lib/tempname.c @@ -1,7 +1,7 @@ /* tempname.c - generate the name of a temporary file. Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - 2000, 2001, 2002, 2003, 2005 Free Software Foundation, Inc. + 2000, 2001, 2002, 2003, 2005, 2006 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -66,14 +66,16 @@ #if _LIBC # define struct_stat64 struct stat64 +# define small_open __open +# define large_open __open64 #else # include "stat-macros.h" # define struct_stat64 struct stat +# define small_open open +# define large_open open # define __getpid getpid # define __gettimeofday gettimeofday # define __mkdir mkdir -# define __open open -# define __open64 open # define __lxstat64(version, file, buf) lstat (file, buf) # define __xstat64(version, file, buf) stat (file, buf) #endif @@ -269,11 +271,11 @@ __gen_tempname (char *tmpl, int kind) switch (kind) { case __GT_FILE: - fd = __open (tmpl, O_RDWR | O_CREAT | O_EXCL, S_IRUSR | S_IWUSR); + fd = small_open (tmpl, O_RDWR | O_CREAT | O_EXCL, S_IRUSR | S_IWUSR); break; case __GT_BIGFILE: - fd = __open64 (tmpl, O_RDWR | O_CREAT | O_EXCL, S_IRUSR | S_IWUSR); + fd = large_open (tmpl, O_RDWR | O_CREAT | O_EXCL, S_IRUSR | S_IWUSR); break; case __GT_DIR: |