| Index: src/xz/file_io.c
 | 
| ===================================================================
 | 
| --- src/xz/file_io.c	(revision 50504)
 | 
| +++ src/xz/file_io.c	(working copy)
 | 
| @@ -53,7 +53,7 @@
 | 
|  extern void
 | 
|  io_init(void)
 | 
|  {
 | 
| -	// Make sure that stdin, stdout, and and stderr are connected to
 | 
| +	// Make sure that stdin, stdout, and stderr are connected to
 | 
|  	// a valid file descriptor. Exit immediately with exit code ERROR
 | 
|  	// if we cannot make the file descriptors valid. Maybe we should
 | 
|  	// print an error message, but our stderr could be screwed anyway.
 | 
| @@ -370,15 +370,16 @@
 | 
|  		}
 | 
|  
 | 
|  #ifdef O_NOFOLLOW
 | 
| -		// Give an understandable error message in if reason
 | 
| +		// Give an understandable error message if the reason
 | 
|  		// for failing was that the file was a symbolic link.
 | 
|  		//
 | 
|  		// Note that at least Linux, OpenBSD, Solaris, and Darwin
 | 
| -		// use ELOOP to indicate if O_NOFOLLOW was the reason
 | 
| +		// use ELOOP to indicate that O_NOFOLLOW was the reason
 | 
|  		// that open() failed. Because there may be
 | 
|  		// directories in the pathname, ELOOP may occur also
 | 
|  		// because of a symlink loop in the directory part.
 | 
| -		// So ELOOP doesn't tell us what actually went wrong.
 | 
| +		// So ELOOP doesn't tell us what actually went wrong,
 | 
| +		// and this stupidity went into POSIX-1.2008 too.
 | 
|  		//
 | 
|  		// FreeBSD associates EMLINK with O_NOFOLLOW and
 | 
|  		// Tru64 uses ENOTSUP. We use these directly here
 | 
| @@ -396,10 +397,10 @@
 | 
|  			was_symlink = true;
 | 
|  
 | 
|  #	elif defined(__NetBSD__)
 | 
| -		// FIXME? As of 2008-11-20, NetBSD doesn't document what
 | 
| -		// errno is used with O_NOFOLLOW. It seems to be EFTYPE,
 | 
| -		// but since it isn't documented, it may be wrong to rely
 | 
| -		// on it here.
 | 
| +		// As of 2010-09-05, NetBSD doesn't document what errno is
 | 
| +		// used with O_NOFOLLOW. It is EFTYPE though, and I
 | 
| +		// understood that is very unlikely to change even though
 | 
| +		// it is undocumented.
 | 
|  		if (errno == EFTYPE)
 | 
|  			was_symlink = true;
 | 
|  
 | 
| @@ -456,15 +457,14 @@
 | 
|  		goto error;
 | 
|  	}
 | 
|  
 | 
| -	if (reg_files_only) {
 | 
| -		if (!S_ISREG(pair->src_st.st_mode)) {
 | 
| -			message_warning(_("%s: Not a regular file, "
 | 
| -					"skipping"), pair->src_name);
 | 
| -			goto error;
 | 
| -		}
 | 
| +	if (reg_files_only && !S_ISREG(pair->src_st.st_mode)) {
 | 
| +		message_warning(_("%s: Not a regular file, skipping"),
 | 
| +				pair->src_name);
 | 
| +		goto error;
 | 
| +	}
 | 
|  
 | 
| -		// These are meaningless on Windows.
 | 
|  #ifndef TUKLIB_DOSLIKE
 | 
| +	if (reg_files_only && !opt_force) {
 | 
|  		if (pair->src_st.st_mode & (S_ISUID | S_ISGID)) {
 | 
|  			// gzip rejects setuid and setgid files even
 | 
|  			// when --force was used. bzip2 doesn't check
 | 
| @@ -494,8 +494,8 @@
 | 
|  					"skipping"), pair->src_name);
 | 
|  			goto error;
 | 
|  		}
 | 
| +	}
 | 
|  #endif
 | 
| -	}
 | 
|  
 | 
|  	return false;
 | 
|  
 | 
| 
 |