mirror of
https://github.com/adtools/clib2.git
synced 2025-12-08 14:59:05 +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:
@ -9,6 +9,15 @@
|
||||
- The "ptrdiff_t" definition in <stddef.h> now defaults to type 'int' rather
|
||||
than 'long int'.
|
||||
|
||||
- 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.
|
||||
|
||||
|
||||
c.lib 1.185 (2.1.2005)
|
||||
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: limits.h,v 1.4 2005-01-02 09:07:21 obarthel Exp $
|
||||
* $Id: limits.h,v 1.5 2005-01-09 09:40:33 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@ -36,24 +36,53 @@
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
#define CHAR_BIT 8
|
||||
#define CHAR_MAX 127
|
||||
#define CHAR_MIN -128
|
||||
#define INT_MAX 2147483647L
|
||||
#define INT_MIN (-2147483647L - 1)
|
||||
#define LONG_MAX 2147483647L
|
||||
#define LONG_MIN (-2147483647L - 1)
|
||||
#define SCHAR_MAX 127
|
||||
#define SCHAR_MIN -128
|
||||
#define SHRT_MAX 32767
|
||||
#define CHAR_BIT 8
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
#define SCHAR_MIN -128
|
||||
#define SCHAR_MAX 127
|
||||
#define UCHAR_MAX 255
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/*
|
||||
* The following defines the range a 'char' can cover by checking a
|
||||
* preprocessor symbol; we support both SAS/C and GCC here.
|
||||
*/
|
||||
|
||||
#if (defined(__GNUC__) && defined(__CHAR_UNSIGNED__)) || (defined(__SASC) && defined(_UNSCHAR))
|
||||
|
||||
#define CHAR_MIN 0
|
||||
#define CHAR_MAX 255
|
||||
|
||||
#else
|
||||
|
||||
#define CHAR_MIN -128
|
||||
#define CHAR_MAX 127
|
||||
|
||||
#endif /* (__GNUC__ && __CHAR_UNSIGNED) || (__SASC && _UNSCHAR) */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
#define SHRT_MIN -32768
|
||||
#define UCHAR_MAX 255
|
||||
#define UINT_MAX 4294967295UL
|
||||
#define ULONG_MAX 4294967295UL
|
||||
#define SHRT_MAX 32767
|
||||
#define USHRT_MAX 65535
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
#define INT_MIN (-2147483647L - 1)
|
||||
#define INT_MAX 2147483647L
|
||||
#define UINT_MAX 4294967295UL
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
#define LONG_MIN (-2147483647L - 1)
|
||||
#define LONG_MAX 2147483647L
|
||||
#define ULONG_MAX 4294967295UL
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
/* The following is not part of the ISO 'C' (1994) standard. */
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
@ -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();
|
||||
}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: stdlib_showerror.c,v 1.6 2005-01-08 10:21:25 obarthel Exp $
|
||||
* $Id: stdlib_showerror.c,v 1.7 2005-01-09 09:40:32 obarthel Exp $
|
||||
*
|
||||
* :ts=4
|
||||
*
|
||||
@ -78,8 +78,6 @@ __show_error(const char * message)
|
||||
|
||||
struct Library * IntuitionBase;
|
||||
struct Library * DOSBase;
|
||||
struct FileHandle * fh;
|
||||
BPTR output;
|
||||
|
||||
PROFILE_OFF();
|
||||
|
||||
@ -98,23 +96,11 @@ __show_error(const char * message)
|
||||
IIntuition = (struct IntuitionIFace *)GetInterface(IntuitionBase, "main", 1, 0);
|
||||
if (IIntuition == NULL)
|
||||
goto out;
|
||||
|
||||
/* Try to print the error message on the default error output stream. */
|
||||
output = ErrorOutput();
|
||||
if(output == ZERO)
|
||||
output = Output();
|
||||
}
|
||||
#else
|
||||
{
|
||||
output = Output();
|
||||
}
|
||||
#endif /* __amigaos4__ */
|
||||
|
||||
/* This is for checking if the stream was redirected to "NIL:". */
|
||||
fh = BADDR(output);
|
||||
|
||||
/* If we can't hope to print the error message, show a requester instead. */
|
||||
if(__detach || __no_standard_io || __WBenchMsg != NULL || fh == NULL || fh->fh_Type == NULL)
|
||||
if(__no_standard_io || __WBenchMsg != NULL)
|
||||
{
|
||||
if(IntuitionBase->lib_Version >= 37)
|
||||
{
|
||||
@ -164,8 +150,31 @@ __show_error(const char * message)
|
||||
}
|
||||
else
|
||||
{
|
||||
Write(output,(STRPTR)message,(LONG)strlen(message));
|
||||
Write(output,"\n",1);
|
||||
BPTR output;
|
||||
|
||||
#if defined(__amigaos4__)
|
||||
{
|
||||
/* Try to print the error message on the default error output stream. */
|
||||
output = ErrorOutput();
|
||||
if(output == ZERO)
|
||||
output = Output();
|
||||
}
|
||||
#else
|
||||
{
|
||||
struct Process * this_process = (struct Process *)FindTask(NULL);
|
||||
|
||||
if(this_process->pr_CES != ZERO)
|
||||
output = this_process->pr_CES;
|
||||
else
|
||||
output = Output();
|
||||
}
|
||||
#endif /* __amigaos4__ */
|
||||
|
||||
if(output != ZERO)
|
||||
{
|
||||
Write(output,(STRPTR)message,(LONG)strlen(message));
|
||||
Write(output,"\n",1);
|
||||
}
|
||||
}
|
||||
|
||||
out:
|
||||
|
||||
Reference in New Issue
Block a user