[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: request for update to z/OS progname
From: |
Bruno Haible |
Subject: |
Re: request for update to z/OS progname |
Date: |
Thu, 01 Jun 2023 16:20:38 +0200 |
Mike Fulton wrote:
> Yes - good point - this would not work if it was built in 31-bit addressing
> mode, non-XPLINK. 64-bit is always XPLINK. That would be a good addition.
OK, thanks for the confirmation. I pushed this change:
2023-06-01 Bruno Haible <bruno@clisp.org>
getprogname: Add support for ASCII-compatible environments in z/OS.
Reported by Mike Fulton <mikefultonpersonal@gmail.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2023-05/msg00198.html>.
* lib/getprogname.c (getprogname): On z/OS, when compiling for an
ASCII-compatible environment, convert the result from EBCDIC to ASCII.
diff --git a/lib/getprogname.c b/lib/getprogname.c
index 279d79f012..204855a4a8 100644
--- a/lib/getprogname.c
+++ b/lib/getprogname.c
@@ -212,7 +212,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;
}
}
- Re: request for update to z/OS progname,
Bruno Haible <=