100 Commits
Author SHA1 Message Date
obarthel 975f949aa1 Rewritten to handle date ranges better which lie outside the expected time of day, day of month and month.
The 'struct tm' is now properly updated to reflect the time and date information which comes out of the number of seconds calculated.

A bug reported by Andreas Falkenhahn is resolved which had the effect of distorting the number of seconds calculated.
2020-07-06 12:09:51 +02:00
obarthel c84b1fc1ff Tiny fixes 2018-02-18 13:58:25 +01:00
obarthel e35307a7e3 Ignore linker map files, too. 2018-02-17 13:45:21 +01:00
obarthel 8af96cb6cb Merge branch 'master' of https://github.com/adtools/clib2 2017-07-08 18:10:45 +02:00
obarthel febe690623 This got lost last year
The missing calloc() overflow test never made it to the CVS or git repositories :-(
2017-07-08 18:10:28 +02:00
obarthel 1b2c798467 Fixed calloc() and getopt_long()
Added integer overflow test to calloc().

Tiny change in getopt_long() so that the value pointed to by the "longindex" parameter is always initialized to an invalid index position (that being -1), instead of 0. The value of 0 can break some shell commands, most notably GNU wget.
2017-05-01 18:06:23 +02:00
obarthel 4c54ee3f2d Version bump 2016-12-04 11:14:17 +01:00
obarthel f491e38b38 Added code to temporarily disable profiling 2016-12-04 11:14:00 +01:00
obarthel 734ce4c1a9 Added code to temporarily disable profiling 2016-12-04 11:13:37 +01:00
obarthel ce345df9da Hide warnings for deprecated functions 2016-12-04 11:13:00 +01:00
obarthel 5e0fa78d61 Only builds with GCC now 2016-12-04 11:12:42 +01:00
obarthel bc3e19abe5 Only uses MEMF_PRIVATE on OS4 now 2016-12-04 11:12:32 +01:00
obarthel 29e02775fb Cleaned up the build rules, added missing files 2016-12-04 11:11:53 +01:00
obarthel 5cb27db203 Slab allocator is exercised much more 2016-12-04 11:11:28 +01:00
obarthel 4fc1b13945 Added a rogue malloc/free pair 2016-12-04 11:11:05 +01:00
obarthel 8beaabac4f Removed unused local variable 2016-12-04 11:10:46 +01:00
obarthel 271572ed56 Fixed so that it builds correctly with SAS/C again 2016-12-04 11:10:33 +01:00
obarthel e0feef8932 Moved __CXV54 into sas_cxv.asm
sas_cxv54.asm is no longer needed.
2016-12-04 11:10:13 +01:00
obarthel 07259ed7eb This is needed when building with math=ieee option 2016-12-04 11:09:24 +01:00
obarthel 3203fcf96a Removed unused result variable 2016-12-04 11:08:54 +01:00
obarthel bfba44bf83 Rewritten to use setjmp()/longjmp()
Also contains new code which prints the number of times a slab was reused.
2016-12-04 11:08:41 +01:00
obarthel 35434bdedc Updated to build correctly with SAS/C again 2016-12-04 11:07:40 +01:00
obarthel 17ba18c731 Added code which temporarily disables profiling 2016-12-04 11:06:50 +01:00
obarthel 78a8c7655e Added __decay_unused_slabs() 2016-12-04 11:05:50 +01:00
obarthel 184a127860 Added stdlib_decay_unused_slabs() 2016-12-04 11:05:30 +01:00
obarthel 5617c0eacf Slab allocator update
Unused slabs which get recycled are no longer reinitialized from scratch if their chunk size matches what the allocator needed. If the chunk size matches, the list of available chunks is left unchanged, and just the various counters are reset.

Added __get_slab_stats() function.

Added support for global __slab_purge_threshold tuning variable.

Added a short test program for the slab allocator.

The malloc-test program was linked against the wrong object file in GNUmakefile.68k. Fixed.
2016-11-27 15:53:40 +01:00
obarthel 799ee705e8 New monitoring function for slab allocator
Added __get_slab_usage() function which can be used to query the slab allocator memory usage at runtime.
2016-11-19 15:49:21 +01:00
obarthel 3425e33cf9 New functions and data structures for slab allocator 2016-11-19 15:48:51 +01:00
obarthel ef66e530b7 This was missing from the previous commit :-( 2016-11-19 13:08:27 +01:00
obarthel fbc8694c49 Added a slab allocator
Added a slab allocator which replaces the use of memory pools or the plain AllocMem() operations, respectively. In order to activate the slab allocator, choose a slab size (e.g. 2048 bytes or 4096 bytes) and declare a global variable like this:

   ULONG __slab_max_size = 2048;

Memory allocations smaller than the slab size will be made from "slabs", i.e. large chunks of memory of the given size. Larger allocations will be managed separately.
2016-11-18 17:22:21 +01:00
obarthel eb223f269d simple_sprintf build again
simple_sprintf needs libgcc.a to build correctly.
2016-11-18 17:20:58 +01:00
obarthel ac6d131dc3 Made the call to GetProgramName() work again
Added '#include <dos/obsolete.h>' in order to make the call to GetProgramName() work again. No functional changes.
2016-09-11 10:33:37 +02:00
obarthel bb82ad015d Ignore object and library files 2016-09-11 09:22:34 +02:00
Olaf Barthel c149db9037 - The contents of the math_fmodf.c and math_modff.c did not match the names of the respective files. In fact, the contents of these files were swapped. 2015-07-24 14:08:57 +02:00
Olaf Barthel 34487c68b4 Added the missing '#include <dos/obsolete.h>', required for the OS4 build. 2015-07-18 10:02:03 +02:00
Olaf Barthel a1b46cb3d4 Added the missing library revision information pertaining to clib2 1.206. 2015-07-18 10:01:10 +02:00
Olaf Barthel 75f1d5a57e Updated/amended missing copyright information 2015-06-11 13:19:07 +02:00
Olaf Barthel 2bc44bb0f2 Still more typo corrections and repairs 2015-06-11 13:01:23 +02:00
Olaf Barthel ac03cbb272 Typo corrections and repairs 2015-06-11 12:44:28 +02:00
Olaf Barthel fd33c09c41 - Added a markdown version of the documentation/README.html file.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15307 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2015-06-10 17:39:55 +00:00
Olaf Barthel 2310605f10 - Removed the "executable" properties from those files which are not executable scripts
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15306 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2015-06-10 13:22:53 +00:00
Olaf Barthel 7f0f7929ba - Updated copyright text and contact information
- Replaced ISO Latin 1 code #160 with a plain blank space (ASCII code #32) where necessary


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15305 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2015-06-10 13:13:40 +00:00
Olaf Barthel 3a63fb9ff8 git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15217 87f5fb63-7c3d-0410-a384-fd976d0f7a62 2015-06-04 09:34:11 +00:00
Olaf Barthel 718574aae5 m.lib 1.206 (24.4.2015)
- The fscanf() family failed to parse and convert %f parameters correctly
  if the respective number did not begin with a digit, but a decimal
  point. Hence ".7" would not be processed, but "0.7" would.

c.lib 1.206 (24.4.2015)

- Reworked the __putc() and putc() macros to reference the 'c' input
  parameter only once, and to be free of side-effects when tinkering
  with the buffer position.

- isatty() had the __fd_lock() call in the wrong place, which could have
  led to cleanup problems later.

- The close action in the stdio, socket and termios hook code now
  also zaps the fd pointer itself after cleaning up the file descriptor
  table entry.

- Removed the remains of all the stack extension and stack overflow/underflow
  checking code. It never actually worked. The bit that does work is the stack
  usage measurement code, plus the bit that sets up the the custom stack
  according to local setting or by calling a query function.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15215 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2015-04-24 14:00:23 +00:00
Olaf Barthel bdfdd84e38 - Bumped math library versions, due to vfscanf() changes.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15214 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2015-04-24 13:56:39 +00:00
Olaf Barthel eeb4e5d7aa - Floating point numbers which do not begin with a digit, but with a decimal point, are now processed correctly.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15213 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2015-04-24 13:00:12 +00:00
Olaf Barthel a665fffff1 - Removed the remains of all the stack extension and stack overflow/underflow
checking code. It never actually worked. The bit that does work is the stack
  usage measurement code, plus the bit that sets up the the custom stack
  according to local setting or by calling a query function.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15212 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2010-10-20 13:50:17 +00:00
Olaf Barthel a436ebdad1 - Reworked the __putc() and putc() macros to reference the 'c' input
parameter only once, and to be free of side-effects when tinkering
  with the buffer position.

- isatty() had the __fd_lock() call in the wrong place, which could have
  led to cleanup problems later.

- The close action in the stdio, socket and termios hook code now
  also zaps the fd pointer itself after cleaning up the file descriptor
  table entry.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15211 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2010-10-20 13:12:59 +00:00
Olaf Barthel 81e66075e2 - The fputc() and __putc() macros were not entirely free of side-effects. Ouch.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15210 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2010-10-19 09:35:16 +00:00
Olaf Barthel 6bc8108a39 - Version bump to 1.205
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15208 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2010-08-21 11:39:10 +00:00
Olaf Barthel f600c5e37a - Added dlclose(), dlerror(), dlopen() and dlsym() functions, which are
available only under OS4. There is a variant of dlopen() in libunix.a
  which will perform a path name conversion. Note that these functions
  will not work in the thread-safe variant of the library because it
  would be unwise to tinker with the currently running program's binary.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15207 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2010-08-21 11:37:03 +00:00
Olaf Barthel 1bdfc0d143 - Added dlclose(), dlerror(), dlopen() and dlsym() functions, which are
available only under OS4. There is a variant of dlopen() in libunix.a
  which will perform a path name conversion.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15206 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2010-08-21 10:59:34 +00:00
Olaf Barthel 37a1fdee4f - The shared object initialization has to be performed before any local
constructors are invoked, and after all local destructors have been
  invoked.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15205 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2010-08-21 09:57:50 +00:00
Olaf Barthel d10027ece7 - Preparations for clib2 1.205
- Added support for ELF shared objects and libraries. This is implemented through
  constructor/destructor functions, which means that you can use this
  functionality even in Amiga Exec style shared libraries, with the proper
  library initialization code to invoke the constructor/destructor functions
  for you.

- Updated uname() to recognize AmigaOS 4.1.

- The translation from Unix to Amiga path names did not properly process
  multiple occurences of "/./" in the path name. Thanks go to Steven Solie
  for finding the issue.

- The detection of "/./" and "/../" patterns in Unix path names to be
  translated into Amiga path names did not test if it was overrunning
  the end of the string.

- If strcmp(), strncmp() and memcmp() detect a pair of different
  characters, then the function result must be calculated as if the
  characters were of type "unsigned char". This is a requirement
  according to the ISO 'C' (1994) standard. Thanks go to Georg Steger
  for finding the issue.

- The definitions for INT_MIN, INT_MAX and UINT_MAX in <limits.h> no
  longer use long integer types, as prompted by Steven Solie.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15204 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2010-08-20 15:33:36 +00:00
Olaf Barthel 60fbee698e - Preparations for c.lib 1.204 release.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15203 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2008-11-11 12:58:39 +00:00
Olaf Barthel 933483d365 - Updated the build rules for use with GCC 4.2.x
- Added a workaround for the baserel build flavour, which requires a specific
  GCC version, e.g. 4.0.4 or earlier.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15202 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2008-11-06 14:44:07 +00:00
Olaf Barthel 4291a0564f - The memory allocated by malloc() and friends is now of type MEMF_PRIVATE
under OS4 and beyond. The AmigaOS 2.x/3.x compatible code will still
  use MEMF_ANY in the same situation, though. Other uses of MEMF_ANY have
  been replaced as well where MEMF_PRIVATE would have made better sense.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15201 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2008-09-30 14:09:00 +00:00
Olaf Barthel 8a1347e61d - I/O buffers allocated are now aligned according to the CPU cache line size,
if the operating system can supply that detailed information.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15200 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2008-09-04 12:07:58 +00:00
Olaf Barthel b9ad1fda3f - Elaborated on the unidirectional/bidirectional PIPE: issues.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15199 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2008-05-07 09:33:55 +00:00
Olaf Barthel f28dcf8ed1 - stdlib_unsetenv.c needs stdio_headers.h to compile properly.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15198 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2008-04-30 16:32:49 +00:00
Olaf Barthel 8eac1027a5 - It's iswpunct() and not iswpunc().
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15197 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2008-04-30 14:41:28 +00:00
Olaf Barthel 0b19424148 - unsetenv() now returns a status value.
- Corrected the function prototype for wcspbrk().

- Added function prototypes for mbrtowc_l(), wcscoll_l(), wcscspn() and wcsrchr().


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15196 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2008-04-30 14:34:03 +00:00
Olaf Barthel f100199861 - Switched to BSD style options for the "cp" command, as used in the build
makefiles and the archive build script (that is: 'cp -a' becomes 'cp -p'
  and 'cp -pR', depending upon the specific context).


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15195 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2008-04-28 16:12:22 +00:00
Olaf Barthel f727c0f4c4 *** empty log message ***
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15193 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2008-04-28 15:49:25 +00:00
Olaf Barthel 6a149abc57 - Final checkin prior to upcoming release.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15192 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2008-04-28 15:42:13 +00:00
Olaf Barthel e3bde26409 - Added 68k stubs to amiga_rexxvars.c for the OS4 build to use. The new code now
works just about exactly like the amiga.lib RVI code used to do, which means
  that there is no artificial length limit for the number of characters a string
  retrieved may have, and the code is largely reentrant.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15191 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2008-04-18 10:11:59 +00:00
Olaf Barthel bbc98790fe - The 68k stub for StrcpyN stored d1 as a result value, which was both
dangerous and unnecessary.

- Plugged in 68k stubs for the OS4 build.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15190 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2008-04-18 10:06:07 +00:00
Olaf Barthel e7258bf939 - To work around a bug in the Roadshow TCP/IP stack (since fixed), the waitselect()
function now substitutes a 10 microsecond timeout for a zero length timeout.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15189 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2008-04-16 07:53:40 +00:00
Olaf Barthel 4444438e8f - isatty() now checks if the file descriptor refers to a real file before
it calls IsInteractive() on it.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15188 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2008-04-16 07:46:05 +00:00
Olaf Barthel 6c50657673 - Added disk type definitions to mount_convertinfo.c and unistd_common_pathconf.c,
prompted by Thore Boeckelmann.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15187 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2008-04-16 07:38:10 +00:00
Olaf Barthel 7dcc410d0c - Preparations for OS4 conversion.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15186 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2008-04-15 16:22:51 +00:00
Olaf Barthel f0503cd915 - MakeString() did not clear the ns->ns_Ivalue field and did not NUL-terminate
the copied string either. Fixed.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15185 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2008-04-15 09:33:06 +00:00
Olaf Barthel ca20eeab97 - Small indentation changes for the stub code.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15184 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2008-04-14 15:16:03 +00:00
Olaf Barthel 6148d06dca - Rewrote the GetRexxVar()/SetRexxVar() functions (mostly) in 'C', using available
code as a reference. The 68k stubs currently only work for the 68k version of
  the library, and a solution for the OS4 build still needs to be found. The code
  is currently untested, but it should be complete.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15183 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2008-04-14 15:07:37 +00:00
Olaf Barthel 6578b303f7 - Added local inline function definitions for the two rexxsyslib.library V45
API functions, rather than omitting support for them in the 68k build.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15182 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2008-03-11 13:26:18 +00:00
Olaf Barthel 91ccaa5ba9 - Added "-msoft-float" to the non-FPU libm build rules, which ought to
resolve the issues with FPU code popping up in the mathieee#?.library
  software floating point code.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15179 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2008-03-10 16:31:56 +00:00
Olaf Barthel 234a17cc07 - The printf() family now ignores argument specifications, as in "%2$d %1$d",
which are used for localization on some platforms. This is a non-standard
  feature and the way clib2 treats it for now is just intended to avoid
  trouble while performing the conversion.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15178 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2008-03-10 15:28:11 +00:00
Olaf Barthel a41212e575 - Temporarily deactivated the separate -msoft-float builds.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15177 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2008-03-10 14:59:54 +00:00
Olaf Barthel 0f3791a9a4 c.lib 1.202 (16.1.2007)
- Added llrint() function contributed by Henning Nielsen Lund. Thank you
  very much!

- <unistd.h> now also include <stdio.h>, 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 <sys/clib2_io.h>. 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 <dos.h> 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
2007-01-16 08:52:30 +00:00
Olaf Barthel e5a2a2b451 - Added llrint() function contributed by Henning Nielsen Lund. Thank you
very much!

- <unistd.h> now also include <stdio.h>, so that the SEEK_SET, etc. macros
  are defined for lseek() to use.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15172 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2007-01-06 10:09:49 +00:00
Olaf Barthel ca1fc13792 - Removed the timeval/TimeVal change workaround and replaced it with something
cleaner.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15171 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2006-12-28 14:30:57 +00:00
Olaf Barthel 3a0324e4ff - 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.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15170 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2006-11-16 14:39:23 +00:00
Olaf Barthel 77279e3224 - 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.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15169 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2006-11-16 10:41:15 +00:00
Olaf Barthel 75b0a762ef - Replaced rows of blank spaces by tabs.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15168 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2006-11-16 10:09:20 +00:00
Olaf Barthel c635fb3ffe - Added a comment to clarify which version number is being used for the
'_fd' data structure definition.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15167 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2006-11-15 09:21:49 +00:00
Olaf Barthel 70d1e4b7a3 - 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.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15166 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2006-11-15 09:17:04 +00:00
Olaf Barthel e9659f46d6 - The low level unbuffered file/socket now has a public equivalent, which
is defined (along with the typedefs and flags) in <sys/clib2_io.h>. Functions
  for tinkering with it are still to come.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15165 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2006-11-15 08:51:07 +00:00
Olaf Barthel acc795df55 - 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.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15164 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2006-11-13 09:51:53 +00:00
Olaf Barthel 66303e9ba2 - Added a directory to hold contributed code which has not been integrated
with the library yet.

- The byteswap code was contributed by Peter Bengtsson. Thank you very much!


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15163 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2006-11-13 09:49:49 +00:00
Olaf Barthel 7e1d5d6f6a - 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.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15162 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2006-11-13 09:32:28 +00:00
Olaf Barthel e789564429 - 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!


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15161 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2006-11-13 09:25:28 +00:00
Olaf Barthel 350ffdb790 - 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.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15160 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2006-10-10 13:39:26 +00:00
Olaf Barthel 6809a5dd5b - Added experimental tilde expansion in Unix path names. This still needs
some more work.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15159 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2006-10-03 16:36:47 +00:00
Olaf Barthel 591ee2250e - Removed an unnecessary (STRPTR) cast.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15158 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2006-10-02 07:16:06 +00:00
Olaf Barthel 2b9d624d1d - Added some documenting comments to the source code.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15157 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2006-10-02 07:15:37 +00:00
Olaf Barthel bf4d3b763c - __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().


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15156 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2006-09-27 11:54:54 +00:00
Olaf Barthel 9984a37cb4 - Unlink 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 <dos.h> for a brief documentation of how to change
  the behaviour.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15155 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2006-09-27 09:40:06 +00:00
Olaf Barthel 0b833b8680 - Added the base_dir_nametest test program.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15154 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2006-09-25 18:20:09 +00:00
Olaf Barthel b8ba11b158 - 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.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15153 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2006-09-25 18:19:44 +00:00
Olaf Barthel 872b2b335b - Forgot to update chown() to use the same bug fix as fchown().
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15152 87f5fb63-7c3d-0410-a384-fd976d0f7a62
2006-09-25 15:41:50 +00:00