summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/ChangeLog9
-rw-r--r--lib/tempname.c12
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: