1
0
mirror of https://github.com/adtools/clib2.git synced 2026-05-09 06:35:02 +00:00

- The "char" limits in <limits.h> are now set up according to the current

compiler settings, which can either default to an unsigned or
  signed definition.

- Changed the rules again for the use of stderr/stdout redirection when
  printing error messages. It is always safe to redirect them now and
  no requester will appear unless you specifically set the value of the
  "__no_standard_io" variable to TRUE in your program.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14792 87f5fb63-7c3d-0410-a384-fd976d0f7a62
This commit is contained in:
Olaf Barthel
2005-01-09 09:40:33 +00:00
parent f519aafaca
commit e571888f4f
4 changed files with 92 additions and 77 deletions

View File

@@ -1,5 +1,5 @@
/*
* $Id: stdlib_assertion_failure.c,v 1.5 2005-01-08 10:21:25 obarthel Exp $
* $Id: stdlib_assertion_failure.c,v 1.6 2005-01-09 09:40:32 obarthel Exp $
*
* :ts=4
*
@@ -61,50 +61,7 @@ __assertion_failure(
/* Don't drop into a recursion. */
if(been_here_before++ == 0)
{
BOOL use_stderr = FALSE;
/* Figure out if the assertion failure message can be printed
on the stderr stream. */
if(__iob != NULL && NOT __no_standard_io)
{
struct iob * iob;
iob = (struct iob *)stderr;
if(iob != NULL &&
FLAG_IS_SET(iob->iob_Flags,IOBF_IN_USE) &&
FLAG_IS_SET(iob->iob_Flags,IOBF_WRITE))
{
struct fd * fd;
fd = __get_file_descriptor(iob->iob_Descriptor);
if(fd != NULL &&
FLAG_IS_SET(fd->fd_Flags,FDF_IN_USE) &&
FLAG_IS_SET(fd->fd_Flags,FDF_WRITE) &&
FLAG_IS_CLEAR(fd->fd_Flags,FDF_IS_SOCKET))
{
struct FileHandle * fh = BADDR(fd->fd_DefaultFile);
/* Check if this is really not redirected to "NIL:". */
if(fh->fh_Type != NULL)
use_stderr = TRUE;
}
}
}
if(use_stderr)
{
if(__program_name != NULL)
fprintf(stderr,"[%s] ",__program_name);
fprintf(stderr,
"%s:%d: failed assertion '%s'\n",
file_name,
line_number,
expression);
}
else
if(__no_standard_io || __WBenchMsg != NULL)
{
#if defined(__amigaos4__)
struct IntuitionIFace * IIntuition = NULL;
@@ -150,6 +107,17 @@ __assertion_failure(
CloseLibrary(IntuitionBase);
}
}
else
{
if(__program_name != NULL)
fprintf(stderr,"[%s] ",__program_name);
fprintf(stderr,
"%s:%d: failed assertion '%s'\n",
file_name,
line_number,
expression);
}
abort();
}