Hi

On Thu, Jun 1, 2023 at 7:20 AM Bruno Haible <br...@clisp.org> wrote:

> 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  <br...@clisp.org>
>
>         getprogname: Add support for ASCII-compatible environments in z/OS.
>         Reported by Mike Fulton <mikefultonperso...@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;
>                  }
>              }
>
>
> Wonderful! Thank you

Reply via email to