delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp-workers/2003/02/02/09:54:35

Date: Sun, 02 Feb 2003 14:56:23 +0000
From: "Richard Dawe" <rich AT phekda DOT freeserve DOT co DOT uk>
Sender: rich AT phekda DOT freeserve DOT co DOT uk
To: djgpp-workers AT delorie DOT com
X-Mailer: Emacs 21.3.50 (via feedmail 8.3.emacs20_6 I) and Blat ver 1.8.6
Subject: <errno.h> and C99: EILSEQ [PATCH]
Message-Id: <E18fLVs-0000iE-00@phekda.freeserve.co.uk>
Reply-To: djgpp-workers AT delorie DOT com

Hello.

Below is a patch that adds the EILSEQ error code, which is required by C99.

Can anyone confirm that EILSEQ definitely wasn't in C89? I am assuming
that it wasn't, because it wasn't in the header before.

OK to commit?

Thanks, bye, Rich =]

Index: include/errno.h
===================================================================
RCS file: /cvs/djgpp/djgpp/include/errno.h,v
retrieving revision 1.5
diff -p -c -3 -r1.5 errno.h
*** include/errno.h	17 Oct 2002 23:00:24 -0000	1.5
--- include/errno.h	2 Feb 2003 14:50:27 -0000
***************
*** 1,3 ****
--- 1,4 ----
+ /* Copyright (C) 2003 DJ Delorie, see COPYING.DJ for details */
  /* Copyright (C) 2001 DJ Delorie, see COPYING.DJ for details */
  /* Copyright (C) 2000 DJ Delorie, see COPYING.DJ for details */
  /* Copyright (C) 1998 DJ Delorie, see COPYING.DJ for details */
*************** extern "C" {
*** 15,20 ****
--- 16,28 ----
  #define ERANGE		2
  
  extern int errno;
+ 
+ #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) \
+   || !defined(__STRICT_ANSI__)
+ 
+ #define EILSEQ		41
+ 
+ #endif /* (__STDC_VERSION__ >= 199901L) || !__STRICT_ANSI__ */
    
  #ifndef __STRICT_ANSI__
  
*************** extern int errno;
*** 59,64 ****
--- 67,73 ----
  #define ENMFILE		38
  #define ELOOP           39
  #define EOVERFLOW	40
+ /* EILSEQ		41 */
  
  extern char *		sys_errlist[];
  extern int		sys_nerr;
Index: src/libc/ansi/string/syserr1.c
===================================================================
RCS file: /cvs/djgpp/djgpp/src/libc/ansi/string/syserr1.c,v
retrieving revision 1.3
diff -p -c -3 -r1.3 syserr1.c
*** src/libc/ansi/string/syserr1.c	25 Jan 2001 19:54:10 -0000	1.3
--- src/libc/ansi/string/syserr1.c	2 Feb 2003 14:50:27 -0000
***************
*** 1,3 ****
--- 1,4 ----
+ /* Copyright (C) 2003 DJ Delorie, see COPYING.DJ for details */
  /* Copyright (C) 2001 DJ Delorie, see COPYING.DJ for details */
  /* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */
  #include "syserr1.h"
*************** char __syserr37[] = "Improper link (EXDE
*** 43,45 ****
--- 44,47 ----
  char __syserr38[] = "No more files (ENMFILE)";
  char __syserr39[] = "Too many levels of symbolic links (ELOOP)";
  char __syserr40[] = "Value too large (EOVERFLOW)";
+ char __syserr41[] = "Invalid or incomplete multibyte or wide character (EILSEQ)";
Index: src/libc/ansi/string/syserr1.h
===================================================================
RCS file: /cvs/djgpp/djgpp/src/libc/ansi/string/syserr1.h,v
retrieving revision 1.3
diff -p -c -3 -r1.3 syserr1.h
*** src/libc/ansi/string/syserr1.h	25 Jan 2001 19:54:10 -0000	1.3
--- src/libc/ansi/string/syserr1.h	2 Feb 2003 14:50:35 -0000
***************
*** 1,3 ****
--- 1,4 ----
+ /* Copyright (C) 2003 DJ Delorie, see COPYING.DJ for details */
  /* Copyright (C) 2001 DJ Delorie, see COPYING.DJ for details */
  /* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */
  extern char __syserr00[];
*************** extern char __syserr37[];
*** 41,43 ****
--- 42,45 ----
  extern char __syserr38[];
  extern char __syserr39[];
  extern char __syserr40[];
+ extern char __syserr41[];
Index: src/libc/ansi/string/syserr2.c
===================================================================
RCS file: /cvs/djgpp/djgpp/src/libc/ansi/string/syserr2.c,v
retrieving revision 1.4
diff -p -c -3 -r1.4 syserr2.c
*** src/libc/ansi/string/syserr2.c	17 Oct 2002 23:00:24 -0000	1.4
--- src/libc/ansi/string/syserr2.c	2 Feb 2003 14:50:35 -0000
***************
*** 1,3 ****
--- 1,4 ----
+ /* Copyright (C) 2003 DJ Delorie, see COPYING.DJ for details */
  /* Copyright (C) 2001 DJ Delorie, see COPYING.DJ for details */
  /* Copyright (C) 2000 DJ Delorie, see COPYING.DJ for details */
  /* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */
*************** __syserr20, __syserr21, __syserr22, __sy
*** 13,19 ****
  __syserr25, __syserr26, __syserr27, __syserr28, __syserr29,
  __syserr30, __syserr31, __syserr32, __syserr33, __syserr34,
  __syserr35, __syserr36, __syserr37, __syserr38, __syserr39,
! __syserr40
  };
  
  int __sys_nerr = sizeof(__sys_errlist) / sizeof(__sys_errlist[0]);
--- 14,20 ----
  __syserr25, __syserr26, __syserr27, __syserr28, __syserr29,
  __syserr30, __syserr31, __syserr32, __syserr33, __syserr34,
  __syserr35, __syserr36, __syserr37, __syserr38, __syserr39,
! __syserr40, __syserr41
  };
  
  int __sys_nerr = sizeof(__sys_errlist) / sizeof(__sys_errlist[0]);
Index: src/libc/ansi/string/syserr3.c
===================================================================
RCS file: /cvs/djgpp/djgpp/src/libc/ansi/string/syserr3.c,v
retrieving revision 1.4
diff -p -c -3 -r1.4 syserr3.c
*** src/libc/ansi/string/syserr3.c	17 Oct 2002 23:00:24 -0000	1.4
--- src/libc/ansi/string/syserr3.c	2 Feb 2003 14:50:41 -0000
***************
*** 1,3 ****
--- 1,4 ----
+ /* Copyright (C) 2003 DJ Delorie, see COPYING.DJ for details */
  /* Copyright (C) 2001 DJ Delorie, see COPYING.DJ for details */
  /* Copyright (C) 2000 DJ Delorie, see COPYING.DJ for details */
  /* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */
*************** __syserr20, __syserr21, __syserr22, __sy
*** 13,19 ****
  __syserr25, __syserr26, __syserr27, __syserr28, __syserr29,
  __syserr30, __syserr31, __syserr32, __syserr33, __syserr34,
  __syserr35, __syserr36, __syserr37, __syserr38, __syserr39,
! __syserr40
  };
  
  int sys_nerr = sizeof(sys_errlist) / sizeof(sys_errlist[0]);
--- 14,20 ----
  __syserr25, __syserr26, __syserr27, __syserr28, __syserr29,
  __syserr30, __syserr31, __syserr32, __syserr33, __syserr34,
  __syserr35, __syserr36, __syserr37, __syserr38, __syserr39,
! __syserr40, __syserr41
  };
  
  int sys_nerr = sizeof(sys_errlist) / sizeof(sys_errlist[0]);
Index: src/docs/kb/wc204.txi
===================================================================
RCS file: /cvs/djgpp/djgpp/src/docs/kb/wc204.txi,v
retrieving revision 1.137
diff -p -c -3 -r1.137 wc204.txi
*** src/docs/kb/wc204.txi	29 Jan 2003 01:25:16 -0000	1.137
--- src/docs/kb/wc204.txi	2 Feb 2003 14:50:46 -0000
*************** The constants @code{HUGE_VALF} and @code
*** 853,855 ****
--- 853,862 ----
  @tindex ssize_t
  @code{ssize_t} was changed from an @code{int} to a @code{signed long int}.
  @code{ssize_t} is now really a signed version of @code{size_t}.
+ 
+ @vindex errno AT r{, and C99 compliance}
+ @findex perror AT r{, and C99 compliance}
+ @findex strerror AT r{, and C99 compliance}
+ The error code @code{EILSEQ} was added --- @code{errno} may be assigned it.
+ @code{perror} and @code{strerror} were updated to display/return
+ an error message for @code{EILSEQ}.

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019