Whatever is going on, I do not have a clue. Now I simply took some code from the test case you sent me, pasted it right into

@implementation NSNumberFormatter (PrivateMethods)
- (void) _resetUNumberFormat
{
#if GS_USE_ICU == 1
  UNumberFormatStyle style;
  UErrorCode err = U_ZERO_ERROR;
  const char *cLocaleId;

  if (internal->_formatter)
    unum_close(internal->_formatter);

  cLocaleId = [[internal->_locale localeIdentifier] UTF8String];

  style = NSToICUFormatStyle (internal->_style);

  internal->_formatter = unum_open (style, NULL, 0, cLocaleId, NULL, &err);
  if (U_FAILURE(err))
    internal->_formatter = NULL;

    // stupid test
  UChar buffer[256];
  double d = 1234.56;
  int i = 1234;
  UNumberFormat *fmt;

  // it does not seem to matter which locale I do use, so
  // simply supply nothing
  fmt = unum_open(UNUM_IGNORE, NULL, 0, NULL, NULL, &err);
  int32_t r = unum_formatDouble(fmt, d, buffer, 256, NULL, &err);

  // print number and th result string length
  fprintf(stdout, "%f %d\n", d, r);
    //

  [self setMaximumFractionDigits: 0];
#else
  return;
#endif
}

and it does NOT work. It works as standalone program, but not inside NSNumberFormatter. I am really confused...

TOM

Quoting Stefan Bidi <stefanb...@gmail.com>:

I really don't know what the problem is.  It looks like objc_msg_lookup is
being called with receiver = 0x0, that will certainly return a bogus method
(nil_method).

On Sun, Mar 6, 2011 at 12:33 PM, <ici...@mail.cg.tuwien.ac.at> wrote:

Ouch, looks like something else entirely:

107           [fmt setNumberStyle: NSNumberFormatterPercentStyle];
(gdb)
108           testHopeful = YES;
(gdb)
109           PASS_EQUAL([fmt stringFromNumber: num], @"_123,443##",
(gdb) po num
-1234.43
(gdb) po fmt
<NSNumberFormatter: 0x8f4cb0>
(gdb) s
objc_msg_lookup (receiver=0x0, selector=0x612390) at sendmsg2.c:330
330     {
Current language:  auto; currently c
(gdb) bt
#0  objc_msg_lookup (receiver=0x0, selector=0x612390) at sendmsg2.c:330
#1  0x000000000040afd9 in main () at basic10_4.m:109
(gdb) s
331             if (nil == receiver) { return (IMP)nil_method; }

Looks like the runtime does not find the string formatters methods,
therefore garbage is returned.
I am using the GNUstep runtime from SVN trunk.


TOM


Quoting Stefan Bidi <stefanb...@gmail.com>:

 I'm not really sure.  I was hoping this test would return NaN as well.
 Try
this other test.  Before, I used NULL (default locale) in the tests and
now
it explicitly chooses "en", same as the GNUstep tests.  I'm hoping libicu
will return NaN this time.

On Sun, Mar 6, 2011 at 11:57 AM, <ici...@mail.cg.tuwien.ac.at> wrote:

 Hi,

icicle@nordpol-laptop:~/Desktop/ICUtest$ gcc `icu-config --cflags`
`icu-config --ldflags` -licuio -o test test_unum.c
test_unum.c:6: Warnung: Rückgabetyp von »main« ist nicht »int«
icicle@nordpol-laptop:~/Desktop/ICUtest$ ./test
1.234,560000 = 1234,56
1.234 = 1234


Could it be a Locale issue, since my Ubuntu uses a german one
(LANG="de_DE.UTF-8")? As I did a clean install of GNUstep today I did not
set a time zone or language yet, maybe that's an issue.

TOM


Quoting Stefan Bidi <stefanb...@gmail.com>:

 Hmm... The results you're getting are quite strange.  The only time
these

method returns NaN is if the object is not a NSNumber.  If it is, than
we
just send it through icu to get converted.  The problem here is that
either
libicu is returning 'NaN' for these values or NSNumber is return nil.

Could you run and report the output of the attach test?  I just want to
make
sure libicu is doing it's thing correctly.  To build it: gcc `icu-config
--ldflags` -licuio test_unum.c

Thanks


On Sun, Mar 6, 2011 at 7:02 AM, <ici...@mail.cg.tuwien.ac.at> wrote:


 Hi!

Test results, lots of NSNumberFormatter fails. I am using ICU 4.6.

Cheers,
TOM


_______________________________________________
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev











_______________________________________________
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev

Reply via email to