From: Bruno Haible Date: Thu, 1 Jun 2023 14:18:02 +0000 (+0200) Subject: getprogname: Add support for ASCII-compatible environments in z/OS. X-Git-Url: https://gitweb.git.savannah.gnu.org/gitweb/?a=commitdiff_plain;h=96b40a3ec999e31238ae71954bc4969fd7fb437b;p=gnulib.git getprogname: Add support for ASCII-compatible environments in z/OS. Reported by Mike Fulton in . * lib/getprogname.c (getprogname): On z/OS, when compiling for an ASCII-compatible environment, convert the result from EBCDIC to ASCII. --- diff --git a/ChangeLog b/ChangeLog index 0ce7a07bb1..a133b4c6b5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2023-06-01 Bruno Haible + + getprogname: Add support for ASCII-compatible environments in z/OS. + Reported by Mike Fulton in + . + * lib/getprogname.c (getprogname): On z/OS, when compiling for an + ASCII-compatible environment, convert the result from EBCDIC to ASCII. + 2023-05-30 Nick Bowler readline: fix memory leak in replacement readline. diff --git a/lib/getprogname.c b/lib/getprogname.c index 62a480046e..a56261e13b 100644 --- a/lib/getprogname.c +++ b/lib/getprogname.c @@ -1,5 +1,5 @@ /* Program name management. - Copyright (C) 2016-2022 Free Software Foundation, Inc. + Copyright (C) 2016-2023 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by @@ -214,7 +214,19 @@ getprogname (void) { char *s = strdup (last_component (buf.ps_pathptr)); if (s) - p = s; + { +# if defined __XPLINK__ && __CHARSET_LIB == 1 + /* The compiler option -qascii is in use. + https://makingdeveloperslivesbetter.wordpress.com/2022/01/07/is-z-os-ascii-or-ebcdic-yes/ + https://www.ibm.com/docs/en/zos/2.5.0?topic=features-macros-related-compiler-option-settings + So, convert the result from EBCDIC to ASCII. + https://www.ibm.com/docs/en/zos/2.5.0?topic=functions-e2a-s-convert-string-from-ebcdic-ascii */ + if (__e2a_s (s) == (size_t)-1) + free (s); + else +# endif + p = s; + } break; } }