- 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
files which initialize global data, such as the new "stdlib_program_name.c"
and "stdlib_malloc.c".
- Until I can find a way to invoke it from within the library, the
__machine_test() function is no longer invoked.
- Tagged global data with NOCOMMON attributes.
- Added the __lib_init() and __lib_exit() functions, which are part of the
thread-safe library and which can be used to hook up clib2 with standard
Amiga shared library/device code. Some documentation on how to use them
can be found in the <dos.h> header file.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14999 87f5fb63-7c3d-0410-a384-fd976d0f7a62
currently configured. It merely blocks the delivery of the respective
signal to prevent recursion.
- raise() now drops into abort() if a signal handler is set to
SIG_DFL. The exception is in SIGINT delivery, which has the
effect of printing a different termination message but otherwise
program flow takes the same path as abort().
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14907 87f5fb63-7c3d-0410-a384-fd976d0f7a62
- Dropped unused stub code which is now redundant because of
the constructor/destructor mechanism.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14891 87f5fb63-7c3d-0410-a384-fd976d0f7a62
destructor functions in any way at all. I reimplemented the
entire library constructor/destructor functionality to use the
same approach as libnix.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14887 87f5fb63-7c3d-0410-a384-fd976d0f7a62
that the constructors/destructors are called in the proper
order, too.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14884 87f5fb63-7c3d-0410-a384-fd976d0f7a62
constructor/destructor functions for initialization and cleanup
purposes.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14882 87f5fb63-7c3d-0410-a384-fd976d0f7a62
or initializes it.
- The stdlib constructor now performs the CPU/FPU compatibility test.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14879 87f5fb63-7c3d-0410-a384-fd976d0f7a62
avoids trouble with destructor functions which use stdio code. Unsolved
problem: the order in which destructors and constructors are called.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14870 87f5fb63-7c3d-0410-a384-fd976d0f7a62
initialization code for the stdin/stdout/stderr streams and
out of the program parameter setup.
- The current program name is now set up in the stdlib
initialization function.
- Simplified the machine test code; moved the FPU check into
the math initialization code.
- Added more safety checks to verify that file descriptor
file handles are valid.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14864 87f5fb63-7c3d-0410-a384-fd976d0f7a62
buffer tables so that all the memory allocations are in one
place and it's possible to specify exactly how many table
entries are required at a time.
- Creation and initialization of semaphores now uses the AmigaOS4
specific functions for this purpose, if available.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14857 87f5fb63-7c3d-0410-a384-fd976d0f7a62
into a dedicated module. This also has the advantage that it's
harder to break code by accidentally forgetting to call
InitSemaphore() after having allocated the memory for it.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14853 87f5fb63-7c3d-0410-a384-fd976d0f7a62
Both the library and the user code need to be rebuilt with the
preprocessor symbol __THREAD_SAFE defined to get thread-safe
code.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14843 87f5fb63-7c3d-0410-a384-fd976d0f7a62
and dirent data operations. That should do it! While the library is
not reentrant (this is not ixemul.library) it should be thread-safe
now. Thread-safe in the sense of POSIX 1003.1c-1995.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14842 87f5fb63-7c3d-0410-a384-fd976d0f7a62
and ftrylockfile().
- Modified the internal FILE structure to allow for thread locking.
Note that this again requires that the library is rebuilt!
- Added or modified macros for getc_unlocked(), getchar_unlocked(),
putc_unlocked() and putchar_unlocked().
- Added rand_r().
- Added flockfile()/funlockfile() wrappers around all stdio
functions.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14841 87f5fb63-7c3d-0410-a384-fd976d0f7a62
function pointers alone. The utility.library/CallHookPkt mechanism
is no longer required.
- Moved the entire lseek() code relevant for files into the hook
function.
- Simplified the close() function which now just calls into the
hook code to perform whatever is necessary. The hook code is
responsible for cleaning up after aliases, etc. This change in
turn made it possible to greatly simplify the hook code for
buffered files which now bypasses close/read/write/lseek and
directly invokes the hook code for unbuffered files.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14835 87f5fb63-7c3d-0410-a384-fd976d0f7a62
handler. The side-effects were too varied and irritating after all.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14826 87f5fb63-7c3d-0410-a384-fd976d0f7a62
- Simplified the code in time_asctime_r.c which builds the time
string. It gracefully handles buffer sizes which are too short
by returning an empty string.
- Moved the tm->tm_wday initialization out of the hook function
in time_strftime.c since it was to be called only once anyway.
- Lost a few compiler warnings in unistd_time_delay.c and
time_gettimeofday.c.
- Folded duplicate code in time_mktime.c; also, errno is no longer
modified unless the library is built with the CHECK_FOR_NULL_POINTERS
option.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14818 87f5fb63-7c3d-0410-a384-fd976d0f7a62
from Workbench would open and stay open. This was not intended to
happen and is a side-effect of the new stdio initialization code which
checks if the stdio streams are in non-blocking mode. Fixed.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14806 87f5fb63-7c3d-0410-a384-fd976d0f7a62
the OS4 header files, but not of the older header file distributions.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14804 87f5fb63-7c3d-0410-a384-fd976d0f7a62
is now determined at initialization time. The I/O mode is restored before
the program exits. Previously, any changes to the I/O mode would persist.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14801 87f5fb63-7c3d-0410-a384-fd976d0f7a62
version of the library.
- Switched over the last use of DeviceProc() to GetDeviceProc(), etc.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14798 87f5fb63-7c3d-0410-a384-fd976d0f7a62
tracks whether or not console output is possible. We now use the
global "__no_standard_io" instead.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14794 87f5fb63-7c3d-0410-a384-fd976d0f7a62
function. Now this could have been big trouble...
- Removed tests for FileHandle->fh_Type != NULL which used to precede
all IsInterative() tests. I verified that IsInteractive() will always
return FALSE for NIL: type file handles.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14793 87f5fb63-7c3d-0410-a384-fd976d0f7a62
messages and assertion failure notifications as requesters. The exception
is in redirecting stderr to NIL: which will prompt the requester use.
- gettimeofday() now calls GetSysTime() rather than DateStamp() to obtain
the current system time. This resolves granularity issues since the
DateStamp() result was only accurate by 1/50 of a second.
- The "ptrdiff_t" definition in <stddef.h> now defaults to type 'int' rather
than 'long int'.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14791 87f5fb63-7c3d-0410-a384-fd976d0f7a62
exception are "interactive" files such as console windows. For these
line buffered output is used.
- Whether or not a file is bound to an interactive device, such as a
console window, is now checked and remembered after a file descriptor
has been associated with it.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14788 87f5fb63-7c3d-0410-a384-fd976d0f7a62
at compile time. The default used to be 16 bytes, which is appropriate
for the 68040/68060 but not for the PowerPC, which uses 32 or 128
bytes per cache line.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14787 87f5fb63-7c3d-0410-a384-fd976d0f7a62
to the built-in function.
- Updated the stdio.h, stdlib.h, string.h and unistd.h header files
to declare function prototypes for the __MEM_DEBUG versions of the
library functions only if that preprocessor symbol is defined.
- If a SIGINT signal is caught and processed by the default signal
handler, the localized "*** BREAK" string will be printed rather
than the built-in one.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14786 87f5fb63-7c3d-0410-a384-fd976d0f7a62
- Moved the locale initialization/cleanup code into constructors
and destructors.
- The socket cleanup function is now a destructor.
- The math cleanup function is now a destructor.
- The wildcard cleanup function is now a destructor.
- The stdio cleanup function is now a destructor.
- The stack extension cleanup function is now a destructor.
- The code that cleans up after the program's current directory
was changed is now a destructor function.
- Moved the initialization/cleanup code for unlink() into constructors
and destructors.
- Moved the initialization/cleanup code for usergroup.library into
constructors and destructors.
- Added usleep(), and created wrapper code that both sleep() and
usleep() can use.
- Added strtoll() and strtoull(), with further changes to <limits.h>
and <stdlib.h>.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14737 87f5fb63-7c3d-0410-a384-fd976d0f7a62