[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Failure of removing pattern.

From: kenichiro . shirose . jm
Subject: Re: Failure of removing pattern.
Date: Mon, 3 Apr 2006 19:13:46 +0900

Dear bash developpers.

This is Ken'ichiro Shirose, Hitachi, Ltd., Japan.
I'm sorry that it takes much time to reply...

Our problem was shown below:
>> Bash Version: 3.1
>> Patch Level: 0
>> Release Status: release
>> Description:
>>         A refference to a shell variable doesn't work under specific case.
>>         The result of the following operations isn't shown and prompt doesn't
>>         return when environment variable LANG is Ja_JP on AIX 5.2L
>>         $ i=123456789012l
>>         $ echo ${i%l}
>>         (Pronput doesn't return...)
>> Fix:
>>         This problem is avoidable by the modification shown below:
>>         Replace l. 3365 in subst.c ("ret = wcsdup (wparam);")
>>         to the following two lines:
>>             ret = (wchar_t *) malloc((size_t)(n + 1) * sizeof(wchar_t));
>>             wcscpy(ret, wparam);

address@hidden worte (on 3/6 2006):
> I assume that this version of AIX has wcsdup().  Does that expansion
> work when you #undef HAVE_WCSDUP in config.h and use the replacement
> version in subst.c?

Yes. AIX 5L Ver 5.2 has its own wcsdup().
I didn't have any environment for testing it from 1st March.
But another person tried it.
I recieved a report that a bash which was built with the replacement version
wcsdup() in subst.c worked for the expansion on AIX 5L Ver 5.2.

I show a procedure for building it below:

1. Extract the source tar ball.
2. Do configure.
   We need to pass an environment variable to the configure script.
   If it is miessed, ld fails for resolving 'isnan' symbol.
   % CFLAGS=-lm ./configure --prefix=/...
3. Edit Makefile.
   Commentout "#define HAVE_WCSDUP" or add "#undef HAVE_WCSDUP" to next line of
   "#define HAVE_WCSDUP".
4. Edit subst.c
   With only edition of Makefile, compiler stops in compilation of subst.c
   due to duplicate declaration of wcsdup() in /usr/include/wchar.h and subst.c.
<Result of diff>
$ diff subst.c subst.c.org
< static wchar_t *X_wcsdup __P((wchar_t *));
> static wchar_t *wcsdup __P((wchar_t *));
< #define wcsdup X_wcsdup
< X_wcsdup (ws)
> wcsdup (ws)
</Result of diff>
5. Do make.

That's all.

I hope that this information will help to become a new release of bash better 
for AIX.
With best regards.

  Ken'ichiro Shirose

  Hitachi, Ltd.
  Goverment & Public Corporation Information
  Systems Division

reply via email to

[Prev in Thread] Current Thread [Next in Thread]