gnustep-dev
[Top][All Lists]
Advanced

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

Re: Implementing NSString getBytes


From: Richard Frith-Macdonald
Subject: Re: Implementing NSString getBytes
Date: Mon, 10 Jun 2013 07:58:29 +0100

On 8 Jun 2013, at 23:06, Luboš Doležel <address@hidden> wrote:

> Hi,
> 
> GNUstep's NSString currently lacks 
> getBytes:maxLength:usedLength:encoding:options:range:remainingRange:
> 
> (added in OS X 10.5).
> 
> I wanted to implement this function, but GSFromUnicode()'s behavior is not 
> the best fit for this method:
> 
> 1) it fails if the output buffer is too small - we don't want that in this 
> case

Well, that depends on what arguments you pass to it ... if you provide it with 
a zone in which to allocate memory, it will allocate memory to make a bigger 
output buffer if necesary.

> 2) it doesn't tell you how many input characters were converted (which is 
> understandable because of 1)
> 
> So I decided to use iconv() directly, which has a pitfall. I'd need to access 
> static members (EntrySupported) of Unicode.m to know the iconv encoding's 
> name etc. So I guess the iconv-related code (as attached) should be moved 
> into Unicode.m.

The problem with using iconv is that on most (all?) platforms, it doesn't 
support all the character sets.  That's mostly why the GSFromUnicode() function 
exists ... to handle the cases that iconv can't handle directly.

It seems to me it would be quite simple to modify GSFromUnicode() to do what 
you want ...  you'd need to change the source length argument to be a pointer, 
so you could pass back the number of bytes actually converted (which would mean 
a trivial change everywhere the function is called of course).


reply via email to

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