[Adium-devl] Auto alignment of message input field

Ofri Wolfus ofri.wolfus at gmail.com
Fri Jan 18 14:19:34 UTC 2008


First, I'd like to correct. It's not for people who write in two  
languages in the same message, but for people who use different  
languages with different writing direction with the same person. Like  
first message in english, then another one in hebrew/arabic, and so  
on. It also forces consistency with the message view by auto aligning  
the message the user types to the same direction it'll later get  
displayed in.

Anyway, the source is at http://svn.dpompa.com/fribidi/trunk , but  
there's really no point for it living in a different repository. Would  
it be suitable to include it in the Adium repo?

As for the code itself of -[NSString baseWritingDirection], the  
algorithm is pretty simple. It goes over each character and sees if it  
knows its writing direction. As most messages are made of letters, the  
loop ends after the first character, and as you don't usually send  
stories made out of numbers only in IM, the loop is not likely to scan  
more than few characters. And again, this is the same method we use  
when displaying messages, although it's being run only once per message.

There are those two calloc calls for allocating fch and uch which can  
be allocated on the stack as well (it seems). I honestly don't know  
why I used calloc.

Ofri

On 18/01/2008, at 13:44, Evan Schoenberg wrote:

>
> On Jan 18, 2008, at 4:52 AM, Ofri Wolfus wrote:
>
>> So would anyone like to commit this patch?
>
> I'd still like to know more about something that's being proposed to
> be run with every keystroke to benefit for a very very very small
> minority of users ("people who type in two languages within a single
> message, one of which is right-to-left and one of which is left-to-
> right").  Where's the FriBidi framework's source code?
>
> -Evan
>
>>
>>
>> On 13/01/2008, at 00:00, Ofri Wolfus wrote:
>>
>>>
>>> On 10/01/2008, at 02:17, Peter Hosey wrote:
>>>
>>>> On 2008-01-09, at 14:41, Ofri Wolfus wrote:
>>>>> … the entire string is being sent a -baseWritingDirection which is
>>>>> quite cheap in most cases.
>>>>
>>>> How cheap is -[NSTextStorage string]? Keeping in mind that, IIRC,
>>>> insertText: gets called with nearly every keypress when the text
>>>> view
>>>> is active.
>>>
>>> NSTextStorage is an NSAttributedString subclass, and the docs of -
>>> [NSAttributedString string] says the following: "For performance
>>> reasons, this method returns the current backing store of the
>>> attributed string object. ... This primitive method must guarantee
>>> efficient access to an attributed string’s characters; subclasses
>>> should implement it to execute in O(1) time."
>>> So I believe it's fast enough. I haven't seen any performance change
>>> on my macbook.
>>>
>>>>> This is needed in order to handle the case where a use types
>>>>> something, deletes everything, and then types again in a different
>>>>> language, or when moving the typing marker to the beginning and
>>>>> inserting new text there.
>>>>
>>>> Is it broken currently? If so, is there a ticket?
>>>
>>> What is broken? This is a new feature, not a bug fix.
>>
>>
>> _______________________________________________
>> Adium-devl mailing list
>> Adium-devl at adiumx.com
>> http://adiumx.com/mailman/listinfo/adium-devl_adiumx.com
>>
>
>
> _______________________________________________
> Adium-devl mailing list
> Adium-devl at adiumx.com
> http://adiumx.com/mailman/listinfo/adium-devl_adiumx.com





More information about the devel mailing list