mirror of
https://github.com/adtools/clib2.git
synced 2025-12-08 14:59:05 +00:00
- fpathconf() should work with the stdio streams, even in the thread-safe
library version, again. git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15133 87f5fb63-7c3d-0410-a384-fd976d0f7a62
This commit is contained in:
@ -1,3 +1,6 @@
|
||||
- fpathconf() should work with the stdio streams, even in the thread-safe
|
||||
library version, again.
|
||||
|
||||
- Updated m68k specs file in /documentation to contain an own __CLIB2__
|
||||
define so that existing m68k compilers also have this define. In addition,
|
||||
the common "-noixemul" option can now also be specified but will do a NOP
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: unistd_fpathconf.c,v 1.2 2006-09-12 14:16:44 obarthel Exp $
|
||||
* $Id: unistd_fpathconf.c,v 1.3 2006-09-17 16:36:48 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@ -51,6 +51,8 @@ long
|
||||
fpathconf(int file_descriptor,int name)
|
||||
{
|
||||
struct FileHandle *fh;
|
||||
BPTR default_file;
|
||||
int error = 0;
|
||||
long ret = -1;
|
||||
struct fd *fd;
|
||||
|
||||
@ -59,22 +61,29 @@ fpathconf(int file_descriptor,int name)
|
||||
fd = __get_file_descriptor(file_descriptor);
|
||||
if(fd == NULL)
|
||||
{
|
||||
__set_errno(EINVAL);
|
||||
error = EINVAL;
|
||||
goto out;
|
||||
}
|
||||
|
||||
if(FLAG_IS_SET(fd->fd_Flags,FDF_STDIO) || FLAG_IS_SET(fd->fd_Flags,FDF_IS_SOCKET))
|
||||
if(FLAG_IS_SET(fd->fd_Flags,FDF_IS_SOCKET))
|
||||
{
|
||||
__set_errno(EBADF);
|
||||
error = EBADF;
|
||||
goto out;
|
||||
}
|
||||
|
||||
fh = BADDR(fd->fd_DefaultFile);
|
||||
error = __get_default_file(file_descriptor,&default_file);
|
||||
if(error != 0)
|
||||
goto out;
|
||||
|
||||
ret = __pathconf(fh->fh_Type,name); /* Ok if fh->fh_Type==NULL */
|
||||
fh = BADDR(default_file);
|
||||
|
||||
ret = __pathconf(fh->fh_Type,name);
|
||||
|
||||
out:
|
||||
|
||||
if(ret == -1 && error != 0)
|
||||
__set_errno(error);
|
||||
|
||||
RETURN(ret);
|
||||
return(ret);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user