From 0f3791a9a4c6c4c2a03ee85138fc20adbc9dd0c7 Mon Sep 17 00:00:00 2001 From: Olaf Barthel Date: Tue, 16 Jan 2007 08:52:30 +0000 Subject: [PATCH] c.lib 1.202 (16.1.2007) - Added llrint() function contributed by Henning Nielsen Lund. Thank you very much! - now also include , so that the SEEK_SET, etc. macros are defined for lseek() to use. - Added a wrapper function which handles the thread-safe stdio stream resolution. - In tcflush() a break signal can no longer cause the read flush loop to be quit with two semaphores still locked. - In __obtain_daemon_message() the test to verify if the bsdsocket.library API would support the server API functionality checked the wrong feature. Fixed. - Switched over the fd->fd_DefaultFile references to fd->fd_Socket where sockets are used rather than file handles. - Added functions which modify the callback function and the userdata pointer stored in a low level unbuffered file/socket data structure. These function perform the proper locking and are thus safe to use in a thread-safe environment. - The low level unbuffered file/socket now has a public equivalent, which is defined (along with the typedefs and flags) in . Functions for tinkering with it are still to come. - The math kernel code no longer uses its own private scalbn() function. - Added a function prototype for the _exit() function. Note that _exit() is not an ISO 'C' function. - Corrected the getopt() function prototype, as prompted by Henning Nielsen Lund. - The printf() family no longer adds a 0 or 0x prefix if the alternate conversion modifier is present for the %o and %x conversions and the value to be converted is 0 already. Put another way, printf("%#x %#o",0,0); now prints "0 0". This required another change so that %p always includes the 0x prefix even if the pointer involved is a NULL pointer. - readlink() no longer sort-of-works for files and directories. It now only works for soft linked objects and returns an error for everything else. This is based upon a fix by Peter Bengtsson. Thank you very much! - Moved the lstat() local Lock() function into its own separate file. - uname() now returns correct and robust information for OS version numbers > 36. This integrates a fix by Peter Bengtsson. Thank you very much! - Moved the crtbegin.o/crtend.o files out of the link libraries. Moving them in was intended to work as a fix for the shared library build, but now it seems that this has to be done at the link stage through the GCC specs file... - Integrated a fix for __rem_pio2() which affects sin(), tan() and cos(), contributed by Steven Solie. Thank you very much! - The internal 'struct fd' file descriptor table entry data structure now has a user data field entry. - Rearranged the contents of the 'struct fd' file descriptor table entry data structure in preparation for making it public. Also added a version field so that user code can handle changes to it gracefully. The default file is no longer a BCPL pointer to a file handle by default, but both a BPTR and a socket identifier, wrapped into a union. - Added experimental tilde expansion in Unix path names. This still needs some more work. - __get_default_file() called __fd_unlock() without having called __fd_lock() first. Ouch. - Removed an unnecessary pair of __fd_lock()..__fd_unlock() calls from ttyname_r(). - The libunix.a unlink() function is now reentrant, or at least thread-safe. - You can now make unlink() stop after a failed deletion attempt which failed because the object to be deleted was reported as being "in use". The libunix.a variant defaults to report the deletion to have succeeded under these circumstances and later tries to delete the files marked for deletion. See for a brief documentation of how to change the behaviour. - basename() and dirname() can no longer return NULL. They truncate the resulting path name instead. This is done so because some code that calls basename() or dirname() does not check if the function's return value is NULL. - The SetOwner() fall-back code for Kickstart 2.04 was passing the wrong parameters to the file system. The first (dp_Arg1) should have been zero. Ouch. - basename() is not supposed to modify the string it is passed and should return a pointer to a string which can be modified. Now it does. Same thing for dirname(). - asctime_r() now returns NULL if the buffer is too short to hold even a single byte of data. - ttyname() now calls ttyname_r(). Also, the libunix.a version of ttyname_r() will produce "/CONSOLE" rather than "CONSOLE:". git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15173 87f5fb63-7c3d-0410-a384-fd976d0f7a62 --- library/amiga.lib_rev.h | 10 +++++----- library/amiga.lib_rev.rev | 2 +- library/c.lib_rev.h | 10 +++++----- library/c.lib_rev.rev | 2 +- library/changes | 2 ++ library/debug.lib_rev.h | 10 +++++----- library/debug.lib_rev.rev | 2 +- library/m.lib_rev.h | 10 +++++----- library/m.lib_rev.rev | 2 +- library/m881.lib_rev.h | 10 +++++----- library/m881.lib_rev.rev | 2 +- library/net.lib_rev.h | 10 +++++----- library/net.lib_rev.rev | 2 +- library/stack.lib_rev.h | 10 +++++----- library/stack.lib_rev.rev | 2 +- library/unix.lib_rev.h | 10 +++++----- library/unix.lib_rev.rev | 2 +- 17 files changed, 50 insertions(+), 48 deletions(-) diff --git a/library/amiga.lib_rev.h b/library/amiga.lib_rev.h index 9b48830..30ec6a8 100644 --- a/library/amiga.lib_rev.h +++ b/library/amiga.lib_rev.h @@ -1,6 +1,6 @@ #define VERSION 1 -#define REVISION 201 -#define DATE "21.9.2006" -#define VERS "amiga.lib 1.201" -#define VSTRING "amiga.lib 1.201 (21.9.2006)\r\n" -#define VERSTAG "\0$VER: amiga.lib 1.201 (21.9.2006)" +#define REVISION 202 +#define DATE "16.1.2007" +#define VERS "amiga.lib 1.202" +#define VSTRING "amiga.lib 1.202 (16.1.2007)\r\n" +#define VERSTAG "\0$VER: amiga.lib 1.202 (16.1.2007)" diff --git a/library/amiga.lib_rev.rev b/library/amiga.lib_rev.rev index 3bc92d4..8f897c8 100644 --- a/library/amiga.lib_rev.rev +++ b/library/amiga.lib_rev.rev @@ -1 +1 @@ -201 +202 diff --git a/library/c.lib_rev.h b/library/c.lib_rev.h index f22aab6..2c16ef6 100644 --- a/library/c.lib_rev.h +++ b/library/c.lib_rev.h @@ -1,6 +1,6 @@ #define VERSION 1 -#define REVISION 201 -#define DATE "21.9.2006" -#define VERS "c.lib 1.201" -#define VSTRING "c.lib 1.201 (21.9.2006)\r\n" -#define VERSTAG "\0$VER: c.lib 1.201 (21.9.2006)" +#define REVISION 202 +#define DATE "16.1.2007" +#define VERS "c.lib 1.202" +#define VSTRING "c.lib 1.202 (16.1.2007)\r\n" +#define VERSTAG "\0$VER: c.lib 1.202 (16.1.2007)" diff --git a/library/c.lib_rev.rev b/library/c.lib_rev.rev index 3bc92d4..8f897c8 100644 --- a/library/c.lib_rev.rev +++ b/library/c.lib_rev.rev @@ -1 +1 @@ -201 +202 diff --git a/library/changes b/library/changes index d8acb1c..ff3f986 100644 --- a/library/changes +++ b/library/changes @@ -1,3 +1,5 @@ +c.lib 1.202 (16.1.2007) + - Added llrint() function contributed by Henning Nielsen Lund. Thank you very much! diff --git a/library/debug.lib_rev.h b/library/debug.lib_rev.h index 1f94a3d..f940861 100644 --- a/library/debug.lib_rev.h +++ b/library/debug.lib_rev.h @@ -1,6 +1,6 @@ #define VERSION 1 -#define REVISION 201 -#define DATE "21.9.2006" -#define VERS "debug.lib 1.201" -#define VSTRING "debug.lib 1.201 (21.9.2006)\r\n" -#define VERSTAG "\0$VER: debug.lib 1.201 (21.9.2006)" +#define REVISION 202 +#define DATE "16.1.2007" +#define VERS "debug.lib 1.202" +#define VSTRING "debug.lib 1.202 (16.1.2007)\r\n" +#define VERSTAG "\0$VER: debug.lib 1.202 (16.1.2007)" diff --git a/library/debug.lib_rev.rev b/library/debug.lib_rev.rev index 3bc92d4..8f897c8 100644 --- a/library/debug.lib_rev.rev +++ b/library/debug.lib_rev.rev @@ -1 +1 @@ -201 +202 diff --git a/library/m.lib_rev.h b/library/m.lib_rev.h index 59c0c09..5606b57 100644 --- a/library/m.lib_rev.h +++ b/library/m.lib_rev.h @@ -1,6 +1,6 @@ #define VERSION 1 -#define REVISION 201 -#define DATE "21.9.2006" -#define VERS "m.lib 1.201" -#define VSTRING "m.lib 1.201 (21.9.2006)\r\n" -#define VERSTAG "\0$VER: m.lib 1.201 (21.9.2006)" +#define REVISION 202 +#define DATE "16.1.2007" +#define VERS "m.lib 1.202" +#define VSTRING "m.lib 1.202 (16.1.2007)\r\n" +#define VERSTAG "\0$VER: m.lib 1.202 (16.1.2007)" diff --git a/library/m.lib_rev.rev b/library/m.lib_rev.rev index 3bc92d4..8f897c8 100644 --- a/library/m.lib_rev.rev +++ b/library/m.lib_rev.rev @@ -1 +1 @@ -201 +202 diff --git a/library/m881.lib_rev.h b/library/m881.lib_rev.h index 90c3e33..09cade0 100644 --- a/library/m881.lib_rev.h +++ b/library/m881.lib_rev.h @@ -1,6 +1,6 @@ #define VERSION 1 -#define REVISION 201 -#define DATE "21.9.2006" -#define VERS "m881.lib 1.201" -#define VSTRING "m881.lib 1.201 (21.9.2006)\r\n" -#define VERSTAG "\0$VER: m881.lib 1.201 (21.9.2006)" +#define REVISION 202 +#define DATE "16.1.2007" +#define VERS "m881.lib 1.202" +#define VSTRING "m881.lib 1.202 (16.1.2007)\r\n" +#define VERSTAG "\0$VER: m881.lib 1.202 (16.1.2007)" diff --git a/library/m881.lib_rev.rev b/library/m881.lib_rev.rev index 3bc92d4..8f897c8 100644 --- a/library/m881.lib_rev.rev +++ b/library/m881.lib_rev.rev @@ -1 +1 @@ -201 +202 diff --git a/library/net.lib_rev.h b/library/net.lib_rev.h index a2c548e..bd55eb6 100644 --- a/library/net.lib_rev.h +++ b/library/net.lib_rev.h @@ -1,6 +1,6 @@ #define VERSION 1 -#define REVISION 201 -#define DATE "21.9.2006" -#define VERS "net.lib 1.201" -#define VSTRING "net.lib 1.201 (21.9.2006)\r\n" -#define VERSTAG "\0$VER: net.lib 1.201 (21.9.2006)" +#define REVISION 202 +#define DATE "16.1.2007" +#define VERS "net.lib 1.202" +#define VSTRING "net.lib 1.202 (16.1.2007)\r\n" +#define VERSTAG "\0$VER: net.lib 1.202 (16.1.2007)" diff --git a/library/net.lib_rev.rev b/library/net.lib_rev.rev index 3bc92d4..8f897c8 100644 --- a/library/net.lib_rev.rev +++ b/library/net.lib_rev.rev @@ -1 +1 @@ -201 +202 diff --git a/library/stack.lib_rev.h b/library/stack.lib_rev.h index a834d80..30be8a5 100644 --- a/library/stack.lib_rev.h +++ b/library/stack.lib_rev.h @@ -1,6 +1,6 @@ #define VERSION 1 -#define REVISION 201 -#define DATE "21.9.2006" -#define VERS "stack.lib 1.201" -#define VSTRING "stack.lib 1.201 (21.9.2006)\r\n" -#define VERSTAG "\0$VER: stack.lib 1.201 (21.9.2006)" +#define REVISION 202 +#define DATE "16.1.2007" +#define VERS "stack.lib 1.202" +#define VSTRING "stack.lib 1.202 (16.1.2007)\r\n" +#define VERSTAG "\0$VER: stack.lib 1.202 (16.1.2007)" diff --git a/library/stack.lib_rev.rev b/library/stack.lib_rev.rev index 3bc92d4..8f897c8 100644 --- a/library/stack.lib_rev.rev +++ b/library/stack.lib_rev.rev @@ -1 +1 @@ -201 +202 diff --git a/library/unix.lib_rev.h b/library/unix.lib_rev.h index a60a1b1..6dbf9e7 100644 --- a/library/unix.lib_rev.h +++ b/library/unix.lib_rev.h @@ -1,6 +1,6 @@ #define VERSION 1 -#define REVISION 201 -#define DATE "21.9.2006" -#define VERS "unix.lib 1.201" -#define VSTRING "unix.lib 1.201 (21.9.2006)\r\n" -#define VERSTAG "\0$VER: unix.lib 1.201 (21.9.2006)" +#define REVISION 202 +#define DATE "16.1.2007" +#define VERS "unix.lib 1.202" +#define VSTRING "unix.lib 1.202 (16.1.2007)\r\n" +#define VERSTAG "\0$VER: unix.lib 1.202 (16.1.2007)" diff --git a/library/unix.lib_rev.rev b/library/unix.lib_rev.rev index 3bc92d4..8f897c8 100644 --- a/library/unix.lib_rev.rev +++ b/library/unix.lib_rev.rev @@ -1 +1 @@ -201 +202