[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);
chet.ramey@case.edu 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
231c231
< static wchar_t *X_wcsdup __P((wchar_t *));
---
> static wchar_t *wcsdup __P((wchar_t *));
3292d3291
< #define wcsdup X_wcsdup
3294c3293
< 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
kenichiro.shirose.jm@hitachi.com
Hitachi, Ltd.
Goverment & Public Corporation Information
Systems Division
----------------------------------------------
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: Failure of removing pattern.,
kenichiro . shirose . jm <=