From 254f8a9cd62cea4ff22477eabe3bb9438953bde1 Mon Sep 17 00:00:00 2001 From: cuz Date: Thu, 24 Apr 2003 20:55:55 +0000 Subject: [PATCH] Added _poserror, made perror __fastcall__ git-svn-id: svn://svn.cc65.org/cc65/trunk@2071 b7a2c559-68d2-44c3-8de9-860c34a00d81 --- include/stdio.h | 4 +-- libsrc/common/.cvsignore | 1 + libsrc/common/Makefile | 1 + libsrc/common/_poserror.c | 56 +++++++++++++++++++++++++++++++++++++++ libsrc/common/perror.c | 39 ++++++++++++++++++++++----- 5 files changed, 93 insertions(+), 8 deletions(-) create mode 100644 libsrc/common/_poserror.c diff --git a/include/stdio.h b/include/stdio.h index e9bc5d163..47db40c85 100644 --- a/include/stdio.h +++ b/include/stdio.h @@ -94,7 +94,7 @@ int fseek(FILE* f, long offset, int whence); void rewind(FILE *f); int getchar (void); char* gets (char* s); -void perror (const char* s); +void __fastcall__ perror (const char* s); int printf (const char* format, ...); int putchar (int c); int puts (const char* s); @@ -117,7 +117,7 @@ int vfscanf (FILE* f, const char* format, va_list ap); FILE* fdopen (int fd, const char* mode); /* Unix */ int __fastcall__ fileno (FILE* f); /* Unix */ #endif - +void __fastcall__ _poserror (const char* msg); /* cc65 */ /* Masking macros for some functions */ #define getchar() fgetc (stdin) /* ANSI */ diff --git a/libsrc/common/.cvsignore b/libsrc/common/.cvsignore index 36ebda219..92e2088b4 100644 --- a/libsrc/common/.cvsignore +++ b/libsrc/common/.cvsignore @@ -1,6 +1,7 @@ *.lst _afailed.s _hextab.s +_poserror.s _scanf.s abort.s asctime.s diff --git a/libsrc/common/Makefile b/libsrc/common/Makefile index a94af476d..24d4dc963 100644 --- a/libsrc/common/Makefile +++ b/libsrc/common/Makefile @@ -19,6 +19,7 @@ C_OBJS = _afailed.o \ _hextab.o \ + _poserror.o \ _scanf.o \ abort.o \ asctime.o \ diff --git a/libsrc/common/_poserror.c b/libsrc/common/_poserror.c new file mode 100644 index 000000000..b0b939106 --- /dev/null +++ b/libsrc/common/_poserror.c @@ -0,0 +1,56 @@ +/*****************************************************************************/ +/* */ +/* _poserror.c */ +/* */ +/* Output a system dependent error code */ +/* */ +/* */ +/* */ +/* (C) 2003 Ullrich von Bassewitz */ +/* Römerstrasse 52 */ +/* D-70794 Filderstadt */ +/* EMail: uz@cc65.org */ +/* */ +/* */ +/* This software is provided 'as-is', without any expressed or implied */ +/* warranty. In no event will the authors be held liable for any damages */ +/* arising from the use of this software. */ +/* */ +/* Permission is granted to anyone to use this software for any purpose, */ +/* including commercial applications, and to alter it and redistribute it */ +/* freely, subject to the following restrictions: */ +/* */ +/* 1. The origin of this software must not be misrepresented; you must not */ +/* claim that you wrote the original software. If you use this software */ +/* in a product, an acknowledgment in the product documentation would be */ +/* appreciated but is not required. */ +/* 2. Altered source versions must be plainly marked as such, and must not */ +/* be misrepresented as being the original software. */ +/* 3. This notice may not be removed or altered from any source */ +/* distribution. */ +/* */ +/*****************************************************************************/ + + + +#include +#include +#include + + + +void __fastcall__ _poserror (const char* msg) +{ + /* Fetch the message that corresponds to _oserrno */ + const char* errormsg = _stroserror (_oserror); + + /* Different output depending on msg */ + if (msg) { + fprintf (stderr, "%s: %s\n", msg, errormsg); + } else { + fprintf (stderr, "%s\n", errormsg); + } +} + + + diff --git a/libsrc/common/perror.c b/libsrc/common/perror.c index afe4be996..9edc08f6e 100644 --- a/libsrc/common/perror.c +++ b/libsrc/common/perror.c @@ -1,8 +1,35 @@ -/* - * perror.c - * - * Ullrich von Bassewitz, 01.10.1998 - */ +/*****************************************************************************/ +/* */ +/* perror.c */ +/* */ +/* Print a system error message */ +/* */ +/* */ +/* */ +/* (C) 1998-2003 Ullrich von Bassewitz */ +/* Römerstrasse 52 */ +/* D-70794 Filderstadt */ +/* EMail: uz@cc65.org */ +/* */ +/* */ +/* This software is provided 'as-is', without any expressed or implied */ +/* warranty. In no event will the authors be held liable for any damages */ +/* arising from the use of this software. */ +/* */ +/* Permission is granted to anyone to use this software for any purpose, */ +/* including commercial applications, and to alter it and redistribute it */ +/* freely, subject to the following restrictions: */ +/* */ +/* 1. The origin of this software must not be misrepresented; you must not */ +/* claim that you wrote the original software. If you use this software */ +/* in a product, an acknowledgment in the product documentation would be */ +/* appreciated but is not required. */ +/* 2. Altered source versions must be plainly marked as such, and must not */ +/* be misrepresented as being the original software. */ +/* 3. This notice may not be removed or altered from any source */ +/* distribution. */ +/* */ +/*****************************************************************************/ @@ -12,7 +39,7 @@ -void perror (const char* msg) +void __fastcall__ perror (const char* msg) { /* Fetch the message that corresponds to errno */ const char* errormsg = strerror (errno);