[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Putty: meeting's log
- To: developer at arabeyes dot org
- Subject: Putty: meeting's log
- From: "Musab Al-Rawi" <musab_rawi at hotmail dot com>
- Date: Wed, 28 Jan 2004 07:00:17 -0500
salam all..
main ideas :
1. disabling Windows from shaping and messing up the letters.
2. getting the bidi and shaping into putty(as specified later in the log).
here is the log for yesterdays meeting... Enjoy it :)
- Musab.
"The Glory Is not In Never Falling, But In Rising EveryTime You Fall."
--- Log opened Tue Jan 27 11:57:49 2004
11:57 -!- Irssi: Log file putty opened
11:57 #arabeyes: <@nadim> osd1000: simon, I take it ?
11:58 #arabeyes: <osd1000> No, another PuTTY developer. Simon should be
here soon, I gather.
11:58 #arabeyes: <@nadim> osd1000: ah, welcome then.
11:58 #arabeyes: <@nadim> Al-Rawi: you here ?
11:58 #arabeyes: <Al-Rawi> hi osd1000 how are u
11:58 #arabeyes: <osd1000> (I'm Owen; I did Arabic for my degree, so that's
my interest.)
11:58 #arabeyes: <osd1000> I'm well, thanks.
11:58 #arabeyes: <Al-Rawi> nadim: avilable with different flavors :)
11:58 #arabeyes: <@nadim> osd1000: excellent
11:58 #arabeyes: <@nadim> Al-Rawi: vanilla please :-)
11:58 -!- sgt [Robaw4AGJ9 at cpc2-cmbg2-6-0-cust74 dot cmbg dot cable dot ntl dot com] has
joined #arabeyes
11:59 #arabeyes: <Al-Rawi> osd1000: i am working on Putty's bidi ..
11:59 #arabeyes: <osd1000> Aha, that's a Simon.
11:59 #arabeyes: <Al-Rawi> nadim: :)
11:59 #arabeyes: <sgt> Hello.
11:59 #arabeyes: <@nadim> sgt: howdy there
11:59 #arabeyes: <Al-Rawi> hello sgt
11:59 #arabeyes: <@nadim> should we get this party started ?
11:59 #arabeyes: <@nadim> Al-Rawi: you have an agenda in mind ?
11:59 #arabeyes: <@nadim> ie. to drive
12:00 #arabeyes: <Al-Rawi> nadim: sure .. lets start with my ideas about the
solution
12:00 #arabeyes: <@nadim> sgt: as you are well aware we (the Arab community)
would very much like to see proper Bidi in Putty as it is a very limiting
option not to have.
12:01 #arabeyes: <@nadim> Al-Rawi and Kamal before him (kamal moved on to
something else) are looking very seriously into what is needed to get that
done and accomplished.
12:01 #arabeyes: <@nadim> </end of background> :-)
12:04 #arabeyes: <@nadim> I'm having horrible Lag time btw (200+)
12:06 #arabeyes: <Al-Rawi> sgt: well .. putty doesn't show arabic letters in
the proper way .. order and shaping
12:06 #arabeyes: <nadim> sorry - I had 200+ lag time
12:07 #arabeyes: <sgt> Al-Rawi: Yes, that much is obvious :-) But partly
that's because the terminal emulator doesn't handle Arabic characters any
differently from (say) Roman ones, but also it's because the Windows text
display has its own ideas about this. Which half are we trying to solve
right now?
12:07 #arabeyes: <nadim> Al-Rawi: actually putty (in windows-XP and 2000)
shows shaping very well
12:08 #arabeyes: <nadim> Al-Rawi: the Arabic is rendered fine, it is missing
the Bidi - I don't think the rendering of arabic was intended (from what I
gather), but it is there posibly as a relic of windows' way of doing things
12:08 #arabeyes: <sgt> nadim: Is that actually true, or is it only true as
long as you don't try to move the cursor back over the text?
12:08 #arabeyes: <Al-Rawi> sgt: well since in windows XP shaping is fine
then it is bidi
12:08 #arabeyes: <sgt> No, I don't think shaping *is* fine.
12:08 #arabeyes: <sgt> My understanding of the current situation is:
12:08 #arabeyes: <nadim_> sgt: I'm not 100% sure - but visually you can see
things (I can 'less' file without issue)
12:10 #arabeyes: <Al-Rawi> are we all fine here ? :)
12:10 #arabeyes: <sgt> The PuTTY terminal emulator doesn't handle Arabic
characters specially at all. It stores them in the screen array in the order
it's given them.
12:10 #arabeyes: <@nadim> yup
12:10 #arabeyes: <@nadim> sgt: so why do they "appear" to look OK then - is
windows getting involved somehow ?
12:10 #arabeyes: <sgt> Then, when the Windows front end tries to display
those characters, it *also* does not handle them specially, and it passes a
string to the Windows TextOut function containing precisely the characters
that were originally sent to the terminal emulator, in the same order they
were sent.
12:11 #arabeyes: <@nadim> ah.
12:11 #arabeyes: <sgt> But the Windows TextOut function tries to be clever,
and does shaping and stuff, and that's why it currently looks shaped.
12:11 #arabeyes: <Al-Rawi> sgt: putty should deal with arabic letters so
that windows wont do anything about them
12:11 #arabeyes: <osd1000> al-rawi: are you sure? That sounds like a bad
idea to me since it requires that all the knowledge is in PuTTY when it is
_already_ in Windows.
12:11 #arabeyes: <@nadim> sgt: is there a way to disable that TextOut
function in windows (in passing) ?
12:11 #arabeyes: <sgt> So if you just display text, it might look as if it's
worked. But the terminal emulator has its own idea of what characters are
where on the screen, and it doesn't know about what TextOut did to them on
display. So although it looks fine to begin with, if you then move the
cursor back over the text, I predict that it will go weird.
12:12 #arabeyes: <sgt> nadim: I don't know. That's one for the Windows
manuals, which I haven't studied yet.
12:12 #arabeyes: <sgt> Al-Rawi: The first question, I think, is what
*should* be done by a terminal emulator to Arabic text.
12:12 #arabeyes: <Al-Rawi> sgt: ok continue plz
12:13 #arabeyes: <sgt> Suppose you're using a text editor, or some sort of
application which displays full-screen text.
12:13 #arabeyes: <sgt> It needs to allow you to move the cursor to any point
on the screen, and insert text there. So it needs to know _precisely_ what
is shown on the screen at a given cursor position.
12:14 #arabeyes: <sgt> The xterm philosophy, as I understand it, is that
this means the text editor - or in general the server-side application -
should handle bidi and shaping, because then it can know exactly what ended
up where. If it leaves it to the terminal emulator, it needs to make its own
guess about what the terminal emulator actually did.
12:14 #arabeyes: <sgt> On the other hand, obviously if your application is
`cat', you don't want _that_ to have to handle shaping.
12:15 #arabeyes: <sgt> So there are certainly _some_ situations in which you
obviously want the terminal to do it, but it isn't clear to me that you want
it to do it in all situations.
12:15 #arabeyes: <sgt> How much of that makes sense?
12:16 #arabeyes: <@nadim> lots of it does
12:16 #arabeyes: <@nadim> sgt: have you heard of mlterm ?
12:16 #arabeyes: <Al-Rawi> yes
12:16 #arabeyes: <sgt> No, I haven't.
12:16 #arabeyes: <sgt> Does it already deal with this sort of problem?
12:16 #arabeyes: <@nadim> sgt: well mlterm is a bidi terminal emulator that
works 99% perfectly with arabic
12:16 #arabeyes: <Naim> Asalamu Alaikum
12:17 #arabeyes: <@nadim> sgt: well, it works with
emacs/vim/vi/less/cat/mutt/etc
12:17 #arabeyes: <@nadim> Naim: salam
12:17 #arabeyes: <sgt> OK. And how does it resolve the confusion I describe
above? :-)
12:17 #arabeyes: <@nadim> Naim: we are in the middle of meeting
12:17 #arabeyes: <Naim> sorry akhee
12:17 #arabeyes: <@nadim> sgt: the display is dealt with on a line-by-line
basis
12:18 #arabeyes: <@nadim> what really happens is the applications don't know
anything
12:18 #arabeyes: <@nadim> ie. for instance vim - it can do its own shaping
when run stand-alone, but when mlterm is detected - it simply disables that
feature and leaves it all to mlterm
12:19 #arabeyes: <@nadim> sgt: does that make sense ?
12:19 #arabeyes: <sgt> nadim: I *think* so. So if the application doesn't
know anything, does that mean that mlterm *transforms* the cursor position?
12:19 #arabeyes: <Osax> salma all
12:19 #arabeyes: <@nadim> sgt: yeah
12:19 #arabeyes: <@nadim> Osax: putty meeting (salam)
12:19 #arabeyes: <Osax> nadim, acknowledged. salam
12:19 #arabeyes: <sgt> Right. So where the application thinks it's put the
cursor isn't where the cursor ended up, but the cursor and the text are
always consistent.
12:19 #arabeyes: * Osax on silent mode
12:19 #arabeyes: <@nadim> sgt: the cursor location is really nothing magical
as far as bisi is concerned
12:20 #arabeyes: <@nadim> sgt: yup
12:20 #arabeyes: <sgt> OK, that seems simple enough.
12:20 #arabeyes: <Osax> s/bisi/bidi
12:20 #arabeyes: <sgt> (Any idea how vim `detects' mlterm?)
12:20 #arabeyes: <@nadim> sgt: everything is consistant since there is no
magic involved :-) just a systematic visual transformation
12:20 #arabeyes: <@nadim> sgt: environment var
12:20 #arabeyes: <@nadim> sgt: and you are also tell it
12:21 #arabeyes: <osd1000> Presumably mlterm knows not to apply this
transformation to Roman script?
12:21 #arabeyes: <@nadim> sgt: keep in mind that ALL bidi-aware applications
(and thus shaping friendly) are able to disable both (or either)
12:21 #arabeyes: <@nadim> Osax: bidi works for is you have 100% roman
12:21 #arabeyes: <sgt> nadim: I didn't know that in the first place :-)
12:21 #arabeyes: <@nadim> sorry s/Osax/osd1000/
12:22 #arabeyes: <osd1000> nadim: I think the case where you have a mixture
will be quite common in Unix systems.
12:22 #arabeyes: * Osax silentOsax
12:22 #arabeyes: <@nadim> ie. if you run Bidi on all your text _now_ it
would look exactly the same - ie. NO harm done at all
12:22 -!- Osax is now known as silentOsax
12:22 #arabeyes: <@nadim> osd1000: it already is :-) and that's why bidi is
so needed
12:22 #arabeyes: <@nadim> osd1000: for instance.
12:23 #arabeyes: <@nadim> I get mail in both english and arabic
12:23 #arabeyes: <osd1000> In the same message, yes?
12:23 #arabeyes: <@nadim> if I have bidi enabled, I can see both 100%
without any issues.
12:23 #arabeyes: <@nadim> osd1000: your browser _today_ works that way.
12:23 #arabeyes: <@nadim> osd1000: yup
12:23 #arabeyes: <sgt> osd1000: Presumably even if the whole message is in
Arabic, parts of the headers will still be in Roman...
12:23 #arabeyes: <@nadim> sgt: yeah, that is fine
12:23 #arabeyes: <osd1000> Good point. (And yes, my browser works that way,
at least with most Arabic sites)
12:24 #arabeyes: <@nadim> osd1000: for instance --
http://arabeyes.org/~nadim/ar_utf8
12:25 #arabeyes: <sgt> OK. So is this what you're proposing to do to PuTTY?
To keep most of the terminal emulation unchanged, but have it run the
bidi+shaping algorithms to transform each line of terminal data on output,
and also disable Windows's attempts to do the same thing so that it only
gets done once?
12:25 #arabeyes: <@nadim> osd1000: that is a file with both arabic and
english (mostly arabic) that I personally use for my tests (to see if arabic
is fully there)
12:25 #arabeyes: <Al-Rawi> i think that windows trys to do things by itself
becuz it can see that there are RL tages .. so if putty deals with these
tags Windows wont interrupt the process and show letters that it wants
12:25 #arabeyes: <@nadim> osd1000: it is UTF-8 encoded
12:25 #arabeyes: <Al-Rawi> i.e this way windows will be diabled .
12:26 #arabeyes: <@nadim> sgt: I think having windows do it for us would be
an easier thing to do, no ? and would keep putty small
12:26 #arabeyes: <@nadim> sgt: there are 2 options here
12:26 #arabeyes: <sgt> But if Windows does it, the cursor position and cut
and paste won't work properly.
12:26 #arabeyes: <@nadim> 1. go with windows' impleenetaion (whatever that
is)
12:27 #arabeyes: <@nadim> 2. disable windows' implementation and include our
own (fully)
12:27 #arabeyes: <@nadim> which is easier (or makes more sense) is upto
debate, I guess.
12:27 #arabeyes: <sgt> I prefer 2.
12:27 #arabeyes: <@nadim> sgt: why, if you don't mind me asking ?
12:27 #arabeyes: <sgt> Because Windows isn't the only OS to consider. PuTTY
already has a Unix port, and at some point it will have a Mac port (or
possibly two), and others as well.
12:28 #arabeyes: <@nadim> sgt: noted - but it is a "Win" client :-)
12:28 #arabeyes: <sgt> Windows's implementation of bidi+shaping might work
for you, but I'd bet money that not all of the other platforms will work the
same.
12:28 #arabeyes: <@nadim> sgt: I'd bet on that too :-)
12:28 #arabeyes: <@nadim> sgt: when do you expect to see other ports (to
Mac, etc) ?
12:28 #arabeyes: <@nadim> ie. what timeframe ?
12:29 #arabeyes: <sgt> nadim: At the moment that's how it's advertised, but
in the next release the Unix port will be acknowledged as well. PuTTY is
becoming a multi-platform piece of software, and I don't want to _start_
tying it to Windows at this stage.
12:29 #arabeyes: <@nadim> sgt: noted.
12:29 #arabeyes: <sgt> Mac port: I don't know. It's half-finished, but our
Mac developer has other calls on his time and it's unclear when he'll be
back on PuTTY.
12:29 #arabeyes: <@nadim> well, then the discussion is made for us :-)
12:29 #arabeyes: <@nadim> Al-Rawi: I think you are happier that way anyways
:-)
12:30 #arabeyes: <sgt> I do think that PuTTY needs to do _something_ about
Arabic. (In fact I expected _you_ to be trying to persuade _me_ of that!)
12:30 #arabeyes: <osd1000> sgt: it basically works, as far as having a
terminal emulator and being able to make (sortof) SSH connections. IIRC.
12:30 #arabeyes: <Al-Rawi> nadim: yup :)
12:30 #arabeyes: <sgt> osd1000: yes, but there's an enormous
to-do-before-release list :-)
12:30 #arabeyes: <@nadim> sgt: that's why we are here
12:30 #arabeyes: <@nadim> sgt: we are not only looking to persuade you - we
are looking to work with you to make it happen
12:30 #arabeyes: <sgt> Fine :-)
12:31 #arabeyes: <@nadim> ok, so we kinda know what direction to go with.
12:31 #arabeyes: <osd1000> It's also important to me as a linguist that any
support we do isn't tied to Arabic but will work fine with Hebrew, Syriac,
and other RTL languages.
12:31 #arabeyes: <@nadim> sgt: we need to know how to disable windows'
TextOut abilities then, right ?
12:31 #arabeyes: <@nadim> osd1000: it will
12:31 #arabeyes: <sgt> osd1000: Presumably if we just implement full Unicode
bidi+shaping, then other RTL languages will use the bidi and not need the
shaping?
12:32 #arabeyes: <sgt> nadim: Yes, I think we do.
12:32 #arabeyes: <@nadim> osd1000: Bidi is a unicode standard that is NOT
specific to arabic alone.
12:32 #arabeyes: <@nadim> sgt: exactly
12:32 #arabeyes: <osd1000> sgt: Syriac needs shaping, I think. But yeah.
12:32 #arabeyes: <@nadim> osd1000: don't forget farsi as well :-)
12:32 #arabeyes: <osd1000> That's Arabic script :-)
12:33 #arabeyes: <@nadim> sgt: so there is a way to disable windows'
"smarts" (if there is such a thing ;-)
12:33 #arabeyes: <osd1000> Can we disable Windows TextOut functionality just
by giving it the pre-shaped Unicode code points?
12:33 #arabeyes: <@nadim> Al-Rawi: you ok with this direction - all makes
sense ?
12:33 #arabeyes: <Al-Rawi> TextOut is activated becuz of the tags in the
text which putty shows on the screen ...
12:33 #arabeyes: <Al-Rawi> nadim: yes
12:34 #arabeyes: <sgt> What tags? Surely if you just send Arabic and Roman
text (like the text file you provided the URL for earlier), there won't *be*
any tags? PuTTY won't insert them currently, I'm sure.
12:34 #arabeyes: <@nadim> Al-Rawi: actually TextOut gets activated due to
seeing characters in certain region in the character space
12:34 #arabeyes: <Al-Rawi> what i am trying to say .. when putty deals with
the tags there wont be any tags that will activat TextOut.
12:34 #arabeyes: <@nadim> sgt: there are no tags
12:34 #arabeyes: <@nadim> Al-Rawi: there are no tags
12:34 #arabeyes: <Al-Rawi> nadim: ic
12:35 #arabeyes: <Al-Rawi> the how can we disable TextOut ?
12:35 #arabeyes: <sgt> Hmmm. I'm currently looking at the documentation for
ExtTextOut() on the MSDN website. It has a flag ETO_RTLREADING which claims
to affect Arabic and Hebrew.
12:35 #arabeyes: <@nadim> Al-Rawi: bidi (and windows) looks at the line - it
seens a character in character-space (unicode space) and says "ah, this
character is a RTL (right-to-left) character", let me enable bidi (and/or
shaping), etc.
12:35 #arabeyes: <sgt>
http://msdn.microsoft.com/library/en-us/gdi/fontext_2ks4.asp?frame=true
12:35 #arabeyes: <uwe> Q:did BiCon compiler and run fine , or is it still
under heavy construction ,and will it work for console-emulators in X or
will it have "sort of" support for shaping in text mode?
12:36 #arabeyes: <osd1000> I think Windows sees the bog-standard Arabic code
points and substitutes in the shaped forms from U+FExx
12:36 #arabeyes: <@nadim> uwe: ask on the 'developer' list - it should be OK
though
12:36 #arabeyes: <@nadim> osd1000: I think so too
12:36 #arabeyes: <@nadim> osd1000: and I'm not sure if that is disable'able
:-)
12:37 #arabeyes: <osd1000> My theory is that if you pre-shape by doing this
substitution yourself, Windows won't touch it.
12:37 #arabeyes: <@nadim> osd1000: it will
12:37 #arabeyes: <@nadim> osd1000: there are certain characters that you
can't substiture for
12:37 #arabeyes: <@nadim> like commas or question marks, etc.
12:37 #arabeyes: <osd1000> So they'll be left alone. I don't see the
problem.
12:38 #arabeyes: <@nadim> those would show up as Arabic characters and might
trigger windows' bidi/shaper, no ?
12:38 #arabeyes: <osd1000> It doesn't matter if Windows' shaper is activated
if it has no work to do. If it's already dealing with presentation forms,
its work has been done for it.
12:38 #arabeyes: <sgt> osd1000: How about unshaped languages (Hebrew?)? In
that case there aren't any pre-shaped code points you can substitute, so it
_can't_ be possible to disable Windows bidi by this means.
12:39 #arabeyes: <@nadim> osd1000: in short, I'm not sure what would happen
- if you shape/bidi and then give it to windows' API to possible do the
same.
12:39 #arabeyes: <@nadim> sgt: agreed.
12:40 #arabeyes: <@nadim> so unless there is an explicit means to disable
this, I don't think we can trick it (without getting REALLY nasty)
12:40 #arabeyes: <sgt> I have a feeling the answer might be the
ETO_GLYPH_INDEX flag in ExtTextOut().
12:40 #arabeyes: <osd1000> Step back. What feature of Windows bidi (never
mind shaping) are we trying to disable here? Do we think that if we give it
ayn-lam-mim preshaped and bidid it'll give us mim-lam-ayn?
12:41 #arabeyes: <@nadim> osd1000: it might
12:41 #arabeyes: <sgt> osd1000: As I understand it, we're trying to disable
_everything_. We want to pass ExtTextOut() a list of code points, and have
it display precisely those glyphs, in precisely the order _we_ specify.
12:42 #arabeyes: <@nadim> sgt: yup, that's option #1 (the one decided upon)
12:42 #arabeyes: <@nadim> sgt: so you are saying with ETO_GLYPH_INDEX we can
get that ?
12:42 #arabeyes: <osd1000> ETO_GLYPH_INDEX looks like it might work.
12:42 #arabeyes: * nadim didn't look at the MSDN site
12:42 #arabeyes: <sgt> nadim: That's how I read the manual.
12:43 #arabeyes: <sgt> I think you can call GetCharacterPlacement() to get a
list of character positions, and you can pass that lots of nice flags like
`don't do bidi' and `don't do shaping'.
12:43 #arabeyes: <sgt> Then you can pass the resulting character placement
array to ExtTextOut() via ETO_GLYPH_INDEX, and it ought to work.
12:43 #arabeyes: <sgt> Mind you, I'm currently sitting at a Linux box
reading web pages, so this is all theoretical :-)
12:43 #arabeyes: <@nadim> sgt: should be simple enough to test as XP does
shaping now :-)
12:44 #arabeyes: <@nadim> sgt: theory leads to practice :-)
12:44 #arabeyes: <@nadim> sgt: putty increasing in the size is not an issue
?
12:44 #arabeyes: <@nadim> sgt: ie. since the library will have to be
embedded within ?
12:45 #arabeyes: <osd1000> Which library?
12:45 #arabeyes: <@nadim> bidi
12:45 #arabeyes: <@nadim> and shaping
12:45 #arabeyes: <sgt> nadim: It's a question of not _wasting_ space. I
don't mind spending code size on features that are genuinely useful.
12:45 #arabeyes: <osd1000> nadim: What are the licences on that library?
12:45 #arabeyes: <@nadim> sgt: excellent
12:45 #arabeyes: <@nadim> GPL
12:45 #arabeyes: <osd1000> Argh.
12:45 #arabeyes: <@nadim> osd1000: fribidi.sf.net
12:45 #arabeyes: <sgt> And if PuTTY is currently unusable by the Arabic
community, that strikes me as a good argument for spending some space :-)
12:45 #arabeyes: <@nadim> or maybe LGPL - not sure
12:45 #arabeyes: <@nadim> sgt: great.
12:46 #arabeyes: <@nadim> osd1000: the shaping code is homegrown - simple
stuff
12:46 #arabeyes: <@nadim> Al-Rawi: do you have enough leads to get going ?
12:46 #arabeyes: <@nadim> sgt: how best to work on this then ?
12:46 #arabeyes: <Al-Rawi> nadim: yes except for the part that deals with
disabling windows functions
12:47 #arabeyes: <@nadim> Al-Rawi: noted.
12:47 #arabeyes: <sgt> nadim: I think a good starting point would be to see
if we really can get Windows behaving linearly. If you can produce a patch
to PuTTY that turns the TextOut() calls into something simple and
predictable, that would be a good start.
12:47 #arabeyes: <sgt> Though of course we need not _apply_ that patch until
the replacement shaping algorithm is available.
12:47 #arabeyes: <Al-Rawi> sgt: i have an idea about where the work should
take place i mean the file and the function .
12:47 #arabeyes: <osd1000> fribidi is LGPL; we can't incorporate that in
PuTTY but we might be able to link against it as a DLL. I can't remember
the LGPL terms.
12:48 #arabeyes: <@nadim> sgt: maybe it would be best for you to drive and
for Al-Rawi to assist (via your directions)
12:48 #arabeyes: <sgt> osd1000: There's always the MDPI if we really can't
get round the licence issues :-)
12:48 #arabeyes: <osd1000> True...
12:48 #arabeyes: <Naim> meeting finished?
12:48 #arabeyes: <@nadim> Naim: not yet :-)
12:48 #arabeyes: <@nadim> Naim: whatcha need ?
12:49 #arabeyes: <sgt> nadim: I don't have a lot of time to work on this at
the moment; I'm currently in the middle of doing some work on my mail client
to help me handle the large volume of PuTTY mail.
12:49 #arabeyes: <@nadim> sgt: hehee
12:49 #arabeyes: <sgt> I think it would be better if we agree an outline of
how the changes should be made, and then you people work on them and come
back to me if you've got something or if you need my help.
12:49 #arabeyes: <@nadim> sgt: could Al-Rawi bother you with emails and the
occational IRC session then ?
12:49 #arabeyes: <Naim> nothing, just a chat thats all
12:49 -!- sebfrance3 [seb at lns-th2-11-82-64-171-63 dot adsl dot proxad dot net] has quit
["Client exiting"]
12:49 #arabeyes: <@nadim> Naim: hold then
12:49 #arabeyes: <sgt> Al-Rawi: go on ... ?
12:50 #arabeyes: <Al-Rawi> sgt: would be fine if i ask some technical Q's ?
12:50 #arabeyes: <@nadim> Al-Rawi: before that.
12:50 #arabeyes: <sgt> Al-Rawi: here, or by email? (Either is fine.)
12:50 #arabeyes: <@nadim> sgt: about the outline - will you generate it ?
12:50 #arabeyes: <Al-Rawi> nadim: ?
12:51 #arabeyes: <@nadim> I'm thinking - how/who will we generate that first
patch (to disable TextOut), etc - I'd guess we can do the work given some
direction/guidence from you, right ?
12:52 #arabeyes: <@nadim> Al-Rawi: just trying to figure out how we will
proceed in terms of work and who does what and how to cooperate more closley
12:54 #arabeyes: <@nadim> you guys there ?
12:54 #arabeyes: <sgt> OK. For the TextOut work: I see four calls to
ExtTextOutW() in window.c. I think probably the simplest thing is to replace
each of those with a call to a wrapper function which does the
GetCharacterPlacement bit and adds ETO_GLYPH_INDEX to the flags.
12:54 #arabeyes: <sgt> That shouldn't be a large patch at all; my guess is
20 lines for the wrapper function.
12:55 #arabeyes: <sgt> For the shaping-before-display in the terminal
emulator, my immediate thought is that the place to do it is inside
do_paint(). That routine loops over every line of the screen, taking data
out of the internal terminal structures and copying it into term->disptext.
So it probably wants to do shaping while it does that.
12:55 #arabeyes: <sgt> (Probably right at the top of the big loop that
iterates over each row.)
12:56 #arabeyes: <Al-Rawi> sgt: what about from_backend() ??
12:56 #arabeyes: <sgt> Then the difficult bit is translating screen
positions _back_ into terminal coordinates: when the user clicks on text to
select it, they need to select the characters they actually pointed at.
12:56 #arabeyes: <Al-Rawi> i mean shouldn't we do both of bidi and shaping
there b4 calling the add function ?
12:57 #arabeyes: <sgt> Al-Rawi: I thought we agreed half an hour ago that
the right thing to do is to keep the _internal_ terminal data structures the
way they always have been, but to transform them on output.
12:57 #arabeyes: <@nadim> its only the visual that we need to change
12:57 #arabeyes: <Al-Rawi> sgt: the data structure wont change .. it is the
contents that will
12:58 #arabeyes: <sgt> Al-Rawi: sorry, the contents is what I meant. My
understanding is that we aren't changing the terminal _emulation_ algorithm,
only putting a filter on how the results of that algorithm are seen by the
user.
12:59 #arabeyes: <Al-Rawi> sgt: so the displaying function will take care of
bidi and shaping ..
12:59 #arabeyes: <sgt> That's what I thought we decided, yes.
12:59 #arabeyes: <Al-Rawi> ic
12:59 #arabeyes: <@nadim> sgt: I do all my development on linux/unix and
know close to nothing on how things are done on windows (not sure Al-Rawi is
any better there), what do you recommend ? How do you do it, using what
exactly ?
13:00 #arabeyes: <@nadim> mingw, etc ?
13:00 #arabeyes: <sgt> nadim: mingw mostly works fine. (It has trouble with
one or two areas of the Windows API, but they're things like multi-monitor
support and Windows NT security features, which won't bother this work.)
13:00 #arabeyes: <sgt> Alternatively, there's a free C compiler you can
download from Borland's web site (I'm not sure of the URL because they keep
changing it).
13:01 #arabeyes: <sgt> Or you can pay lots of money for a copy of Visual C
if you really want to...
13:01 #arabeyes: <@nadim> sgt: nope :-) and no money :-)
13:01 #arabeyes: <sgt> Didn't think you would :-)
13:01 #arabeyes: <Al-Rawi> i already have the VC
13:01 #arabeyes: <@nadim> Al-Rawi: have enough info to get this patch done
(in say a week) ?
13:02 #arabeyes: <@nadim> Al-Rawi: dang :-)
13:02 #arabeyes: <Al-Rawi> i am not sure of how long it will take .. but i
can start soon .. that i know for sure
13:02 #arabeyes: <@nadim> Al-Rawi: did you get all your preliminary
questions answered ?
13:02 #arabeyes: <Al-Rawi> yes.
13:02 #arabeyes: <@nadim> Al-Rawi: you sure ? :-)
13:03 #arabeyes: <sgt> What did we decide about actually implementing bidi +
shaping?
13:03 #arabeyes: <sgt> (I lost track; sorry.)
13:03 #arabeyes: <@nadim> sgt: well, we need an outline of things to do post
this initial patch
13:03 #arabeyes: <sgt> *nods8
13:03 #arabeyes: <sgt> *nods*
13:03 #arabeyes: <@nadim> sgt: and we'll leave that outline for you
13:04 [msg(Al-Rawi)] yeah
13:04 #arabeyes: <@nadim> sgt: so you can direct us and we'll happily run
around and try to get things done and once you have time, certainly jump in
:-)
13:04 #arabeyes: <sgt> I'm still concerned about the licensing, in
particular. Are you intending to find or write a bidi implementation that's
usable with PutTY's MIT licence? Or is the aim to find a way that fribidi
can legally be used?
13:04 #arabeyes: <@nadim> sgt: for communcation please mail to
'developer-at-arabeyes.org'
13:05 #arabeyes: <@nadim> I'll approve all your posts once I see/figure your
email address
13:05 #arabeyes: <@nadim> sgt: I know nothing about licenses.
13:05 #arabeyes: <sgt> Well, somebody needs to...
13:05 #arabeyes: <@nadim> sgt: but the fribidi author is on the 'developer'
mailing-list, so we can talk about things there if you like (his name is
'behdad')
13:06 #arabeyes: <@nadim> I take it GPL is more restrictive than MIT license
?
13:07 #arabeyes: <sgt> nadim: Yes. Linking a GPLed library with the MIT
PuTTY code would require the result to be distributed under GPL, which I
don't want.
13:07 #arabeyes: <@nadim> noted.
13:07 #arabeyes: <@nadim> sgt: what is the best email to reach you on ?
13:07 #arabeyes: <osd1000> fribidi is LGPLed which is slightly better, but I
think it may suffer from the same problem in many circumstances.
13:07 #arabeyes: <@nadim> we can mail about this license and CC you on it to
get that ball rolling.
13:08 #arabeyes: <sgt> For communications about PuTTY, please mail
<putty at projects dot tartarus dot org> unless there's a specific reason not to. That
way the rest of the team can keep track of what's going on as well as me.
13:08 #arabeyes: <@nadim> osd1000: would you like to be invovled as well
(emails, etc) ?
13:08 #arabeyes: <@nadim> sgt: ok - all questions from Al-Rawi (techincal
ones) to go there as well ?
13:08 #arabeyes: <sgt> Definitely, yes.
13:09 #arabeyes: <@nadim> ok
13:09 #arabeyes: <@nadim> anything else ?
13:09 #arabeyes: <osd1000> nadim: go for the PuTTY address, since that's the
thing I read when it's to do with PuTTY.
13:09 #arabeyes: <osd1000> (Section 6 of the LGPL _may_ mean fribidi isn't a
problem, btw)
13:09 #arabeyes: <@nadim> ah - so its a mailing-list, cool.
13:09 #arabeyes: <sgt> Before we finish up, I want to be completely sure we
agree on whose move it is next.
13:09 #arabeyes: <@nadim> osd1000: behdad is very easy going and I don't
forsee a major problem
13:10 #arabeyes: <@nadim> sgt: its ours :-) from what I understood.
13:10 #arabeyes: <@nadim> to get you the patch
13:10 #arabeyes: <@nadim> then you will generate an outline
13:10 #arabeyes: <sgt> Right. So you'll work on the TextOut stuff, and I'll
write up a technical outline of what work needs doing and roughly where in
the PuTTY code I think it ought to go. Is that right?
13:10 #arabeyes: <@nadim> then we work (possible together) to complete what
is needed.
13:10 #arabeyes: <@nadim> right ?
13:10 #arabeyes: <sgt> (I can work on the outline _while_ you're working on
the patch.)
13:10 #arabeyes: <@nadim> great
13:10 #arabeyes: <@nadim> that's what I understood
13:11 #arabeyes: <sgt> Yes. OK, then I think we're finished, unless anyone
else has anything.
13:11 #arabeyes: <@nadim> we'll be shooting for something in a week (or so
we hope)
13:11 #arabeyes: <osd1000> Excellent. Thanks for all your enthusiasm!
13:11 #arabeyes: <Al-Rawi> things are clear enough for me thanks
13:11 #arabeyes: <@nadim> sgt, osd1000: thank you guys VERY much for coming
!!!!
13:11 #arabeyes: <osd1000> A pleasure.
13:11 #arabeyes: <sgt> You're welcome. It's been good talking with you.
13:11 #arabeyes: <Al-Rawi> thanks sgt and osd1000 u are very helpful
13:12 #arabeyes: <@nadim> communication is always nice ;-)
13:12 #arabeyes: <sgt> I need to go now; someone's just come to visit me :-)
13:12 #arabeyes: <osd1000> Farewell all.
_________________________________________________________________
Check out the coupons and bargains on MSN Offers!
http://shopping.msn.com/softcontent/softcontent.aspx?scmId=1418