Re: Fetching symbols information with XKBlib

2005-09-13 Thread Ivan Pascal
 Hello,
 
 But I can't find a way to ask about current symbols. I just want to receive
 short description like 'ru' or 'en' (or any other information which may be
 used to identify current symbols) - is there a way to get it ?

You can fetch names of groups that are symbolic names specified in
xkb/symbols/* files like
name[Group1] = Russian;

The function for getting these names is
XkbGetNames(dpy, XkbGroupNamesMask, xkb);
where 'xkb' is a pointer (XkbDescrPtr) to some structure 'XKB Description'.

You have to allocate this decription structure with XkbAllocKeyboard(void)
before XkbGetNames call.
If XkbGetName is completed successfully the names will appear in the array
of Atoms
xkb-names-groups[]

-- 
 Ivan U. Pascal |   e-mail: [EMAIL PROTECTED]
   Administrator of |   Tomsk State University
 University Network |   Tomsk, Russia
___
Devel mailing list
Devel@XFree86.Org
http://XFree86.Org/mailman/listinfo/devel


CVS Update: xc (branch: trunk)

2005-04-14 Thread Ivan Pascal
CVSROOT:/home/x-cvs
Module name:xc
Changes by: [EMAIL PROTECTED]   05/04/14 05:31:59

Log message:
22. Fix a bug in XKB group adjustment (Ivan Pascal, reported Bugzilla 
#1566).

Modified files:
  xc/programs/Xserver/xkb/:
xkbUtils.c 
  
  Revision  ChangesPath
  3.19  +3 -3  xc/programs/Xserver/xkb/xkbUtils.c

___
Cvs-commit mailing list
Cvs-commit@XFree86.Org
http://XFree86.Org/mailman/listinfo/cvs-commit


CVS Update: xc (branch: trunk)

2005-04-14 Thread Ivan Pascal
CVSROOT:/home/x-cvs
Module name:xc
Changes by: [EMAIL PROTECTED]   05/04/14 05:32:49

Log message:
  updates

Modified files:
  xc/programs/Xserver/hw/xfree86/:
CHANGELOG 
  
  Revision  ChangesPath
  3.3489+2 -1  xc/programs/Xserver/hw/xfree86/CHANGELOG

___
Cvs-commit mailing list
Cvs-commit@XFree86.Org
http://XFree86.Org/mailman/listinfo/cvs-commit


Re: Small fix for XKB.

2005-04-12 Thread Ivan Pascal
 New patch (attached) is more correct and should not harm something.
 
 Looks OK to me.  Is it needed for the second XkbAdjustGroup() call too?

Yes.

I did'n forget but tried to imagine when a negative value can appear there.
(The bug reason is that the 'state' structure there keeps all fields as
an unsigned char but actually some of them sometime represent negative values.)
But after some thinking I suppose there are such cases.

-- 
 Ivan U. Pascal |   e-mail: [EMAIL PROTECTED]
   Administrator of |   Tomsk State University
 University Network |   Tomsk, Russia
___
Devel mailing list
Devel@XFree86.Org
http://XFree86.Org/mailman/listinfo/devel


Small fix for XKB.

2005-04-11 Thread Ivan Pascal
  Hello,

I apologise for my slowness but I'd like to add small patch to Xserver XKB code.
The thing is that the bug was already fixed long ago but then came back.
The problem was reported in Bugzilla #1566.  After some questions I found the
symptoms are wellknown for me and I had fixed the bug before 4.1.0.
Therefore I thought the reporter somehow got XFree based on some old release
or some Xorg's server where the patch was applied later.

But when I got similar complains in e-mail I decided to check sources and
found out that my patch was reverted completely becouse of compilation warnings
(signed-unsigned assignment without explicit cast).  Of course it's my fault
that the fix causes warnings but the reverting caused the bug came back.

New patch (attached) is more correct and should not harm something.

-- 
 Ivan U. Pascal |   e-mail: [EMAIL PROTECTED]
   Administrator of |   Tomsk State University
 University Network |   Tomsk, Russia
--- xc/programs/Xserver/xkb/xkbUtils.c.orig	28 Mar 2005 02:51:13 -	3.18
+++ xc/programs/Xserver/xkb/xkbUtils.c	6 Apr 2005 12:32:41 -
@@ -746,7 +746,7 @@
 
 grp= state-locked_group;
 if (grp=ctrls-num_groups)
-	state-locked_group= XkbAdjustGroup(grp,ctrls);
+	state-locked_group= XkbAdjustGroup(XkbCharToInt(grp),ctrls);
 
 grp= state-locked_group+state-base_group+state-latched_group;
 if (grp=ctrls-num_groups)


Re: What happened to the fonts?

2005-02-02 Thread Ivan Pascal
Marc Aurele La France wrote:
 
 OK.  This makes some sense to me.  But should something like this be done to 
 all affected locates?

Yes. The same problem exists for all other locales (at least for 'iso8859 like'
one-byte encodings).
I made changes for all such locales and commited them.

-- 
 Ivan U. Pascal |   e-mail: [EMAIL PROTECTED]
   Administrator of |   Tomsk State University
 University Network |   Tomsk, Russia
___
Devel mailing list
Devel@XFree86.Org
http://XFree86.Org/mailman/listinfo/devel


Re: What happened to the fonts?

2005-02-01 Thread Ivan Pascal
Marc Aurele La France wrote:
 I don't know enough about this stuff to answer.  Perhaps someone else will,
 and deal with http://www.mail-archive.com/devel%40xfree86.org/msg06114.html.

 In the meantime I've backed out the change that's causing this.

I investigated this issue.
In one of next messages Barry Scott mentioned
 I recall I was seeing code behind XutfTextExtents fail to
  return any info without the patch - I think it was Xutf8TextExtents.
Therefore I guess he has problem with Xutf8* ouput functions in non-UTF8
locale.  And it is a real issue.  These functions don't work without changes
he proposed.  But after such changes Xmb* output functions don't work.

Obviously, there is some difference in the interpretation of XLC_LOCALE data
between these two families (Xutf8* and Xmb*).

The traditional iso2022 based font system requires that any input string
be separated into portions where all chars belong to one charset.
Corresponded converters cut out such portions from a text, label them with
charset name and pass to the next procedure that finds an appropriate font
for this portion drawing.

XLC_LOCALE file contains 'codeset' and 'fontset' records. The 'codeset' records
describe rules for distinguishing chars of different charsets and chaset names
suitable for each type of chars.  The 'fontset' records just defines pairs
'charset name' - 'font encoding name' that tell what font should be used
for each charset (the string labeled with this chaset name).

What we see in iso8859-15 locale file (and in many other one-byte encoding
locales)?
There are two codeset records

cs0 { sideGL:Default
..
  ct_encoding ISO8859-15:GL; ISO8859-1:GL }
cs1 { sideGR:Default
..
  ct_encoding ISO8859-15:GR }

and two fontset records

fs0 { charset { nameISO8859-1:GL }
  font{ primary ISO8859-15:GL
  } }
fs1 { charset { nameISO8859-15:GR }
  font{ primary ISO8859-15:GR } }

The second records in both pairs is the simplest case. The codeset record says
that all 'right side' chars (codes  127) belongs to the right side of
ISO8859-15 charset and the fontset record says that the text portion labeled
with 'right side of ISO8859-15 charset' can be drawn with some ISO8859-15
encoded font.

The first fontset record is simple too.  It says that 'ISO8859-1 left side'
labeled string can be writen with ISO8859-15 encoded font.

But the first codeset record is more complex.  It contains two charset names
for the same kind of chars ('left side', i.e. codes  128).  And Xutf8* and
Xmb* functions use different names from this pair.  (I know why, and can
explain.  But here I omit those details.)

Thus if one wants to output simple ASCII string like 'abcd', the 'mb' converter
labels it as 'ISO8859-1: GL' whereas the 'utf8' converter labels it as
'ISO8859-15:GL'.
And if the fontset record looks like 'charset: ISO8859-1 - font: ISO8859-15'
the second step procedure successfuly finds appropriate font for 'mb' converter
output string but can do nothing for 'utf8' converter output.  And after Barry's
changes we got a reverse situation: the first fontset record became
'charset: ISO8859-15 - font: ISO8859-15' that means that 'utf8' converter
output has appropriate font but there is nothing useful for the 'mb' converter
results.

The worst thing is that there is significant difference in these converters
internals and if even we force the 'utf8' converter to choose ISO8859-1
charset we will not get the the behavior similar to 'mb' converters one.
In this case the 'utf8' converter makes the 'right side' chars labeled with
ISO8859-1:GR (execept the Euro sign).  But such name also has not appropriate
chaset-font pair among fontset records.

I would suggest a simple workaround: instead of changing the first fontset
record add a similar one but with another charset name.  I.e. the fontset
section of XLC_LOCALE will look like:

fs0 { charset {  nameISO8859-1:GL  }
  font{  primary ISO8859-15:GL   }}
fs1 { charset {  nameISO8859-15:GR  }
  font{  primary ISO8859-15:GR   }}
fs2 { charset {  nameISO8859-15:GL  }
  font{  primary ISO8859-15:GL   }}
In such case the first record would satisfy Xmb* functions and the third record
would make Xutf8* functions happy.
(Of course, I tested this solution.  It works.)

-- 
 Ivan U. Pascal |   e-mail: [EMAIL PROTECTED]
   Administrator of |   Tomsk State University
 University Network |   Tomsk, Russia
___
Devel mailing list
Devel@XFree86.Org
http://XFree86.Org/mailman/listinfo/devel


Re: finding all windows belonging to an application

2004-11-10 Thread Ivan Pascal
 Yes, I see the pattern you mention in XID. Appears
 that the most significant two bytes identify client
 and the least sig two bytes identify window. This
 should solve my problem. Thanks very much.

Actually Xserver may divide XID to these two parts in any bit position.
When an application setups a connection Xserver in the reply sends
resource-id-mask where ones mark the part of XID that the application may use
for resource IDs and zeros mark the common 'connection number' part.

Xlib saves this mask in the Display structure.  In XFree86's implementation
of Xlib it is dpy-resource_mask.  In my box its value is 0x1f (more
than two bytes).  Also the X11 protocol specification says that three most
significant bits (of whole XID) can't be used.

Unfortunately, the Display structure is opaque for an application and can vary
in dependence on Xlib implementation vendor.  And there is no standard Xlib
call that return this mask.

-- 
 Ivan U. Pascal |   e-mail: [EMAIL PROTECTED]
   Administrator of |   Tomsk State University
 University Network |   Tomsk, Russia
___
Devel mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/devel


Re: [I18n] Revision of keysymdef.h

2004-08-11 Thread Ivan Pascal
  Markus,

 Over the years, a number of problems have piled up with X11/keysymdef.h,
 which I have set out to sort out.

I would like to add small changes into the XKB (iso9995) section of that file.
First of all I don't like the keysym XK_ISO_Group_Shift is an alias for
Mode_switch
#define XK_ISO_Group_Shift  0xFF7E  /* Alias for mode_switch */

Mode_switch in the core protocol controls some (unnamed) modifier, whereas
in XKB group shift means some another action.  Actually, now Mode_switch in
XKB does both, i.e. sets a modifier and shifts an XKB group.  But I know
tasks where it would be better to separate these actions.

And the second change.  XKB has 4 'xkb groups' but keysymdef.h defines only
keysyms for switching to the First_Group, Last_Group (and also Next_Group,
Prev_Group).  Some people want to use in their keymaps keysyms that are able
to switch directly to the one of possible 4 groups.  Also there is only one
keysym that according to its name is purposed for group latching
(XK_ISO_Group_Latch). Therefore it would be useful to complete this set with
keysyms like:
XK_ISO_First_Group_Latch
XK_ISO_Second_Group
XK_ISO_Second_Group_Latch
XK_ISO_Second_Group_Lock
XK_ISO_Third_Group
XK_ISO_Third_Group_Latch
XK_ISO_Third_Group_Lock
XK_ISO_Forth_Group
XK_ISO_Forth_Group_Latch
XK_ISO_Forth_Group_Lock

There is a gap in codes from 0xfe10 to 0xfe1f and I think it could be used for
these keysyms.

And just a question.  What do you think about a bunch of keysyms from XKeysymDB
for internet and multimedia keys (such as XF86AudioPlay, XF86AudioLowerVolume,
XF86Mail, XF86HomePage, etc)?  Are not they worth including into keysymdef.h ?

-- 
 Ivan U. Pascal |   e-mail: [EMAIL PROTECTED]
   Administrator of |   Tomsk State University
 University Network |   Tomsk, Russia
___
I18n mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/i18n


CVS Update: xc (branch: trunk)

2004-06-25 Thread Ivan Pascal
CVSROOT:/home/x-cvs
Module name:xc
Changes by: [EMAIL PROTECTED]   04/06/25 06:23:26

Log message:
   139. Fixes and updates for XKB keymaps:
  - Replace Latvian keymap with new one (Bugzilla #1415, Dmitry Golubev).
  - Add geometry description for two variants of ABNT2 keyboard
(Bugzilla #1387, busmanus).

Modified files:
  xc/programs/xkbcomp/geometry/:
pc 
  xc/programs/xkbcomp/rules/:
xfree86 xfree86.lst xfree86.xml 
  xc/programs/xkbcomp/symbols/pc/:
lv 
  
  Revision  ChangesPath
  3.17  +167 -5xc/programs/xkbcomp/geometry/pc
  3.84  +4 -2  xc/programs/xkbcomp/rules/xfree86
  3.84  +4 -2  xc/programs/xkbcomp/rules/xfree86.lst
  1.27  +41 -15xc/programs/xkbcomp/rules/xfree86.xml
  1.4   +99 -24xc/programs/xkbcomp/symbols/pc/lv

___
Cvs-commit mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/cvs-commit


CVS Update: xc (branch: trunk)

2004-06-19 Thread Ivan Pascal
CVSROOT:/home/x-cvs
Module name:xc
Changes by: [EMAIL PROTECTED]   04/06/19 06:53:47

Log message:
   137. Fixes and updates for XKB keymaps:
  - Update Serbian keymap with new variant (Bugzilla #1176, Zvezdan Petkovic).
  - Add Genius KB-12e model to inet keymap (Ricardo Cruz).
  - Update ABNT2 geometry file and change Brasilian keymap to avoid ABNT2
spcific keycodes section (Bugzilla #1387, busmanus).
  - Add 'Classical Latin' keymap (Bugzilla #1393, busmanus).

Modified files:
  xc/programs/xkbcomp/geometry/:
pc 
  xc/programs/xkbcomp/keycodes/:
xfree86 
  xc/programs/xkbcomp/rules/:
xfree86 xfree86.lst 
  xc/programs/xkbcomp/symbols/:
Imakefile br inet 
  xc/programs/xkbcomp/symbols/pc/:
Imakefile br sr yu 
Added files:
  xc/programs/xkbcomp/symbols/:
lat 
  xc/programs/xkbcomp/symbols/pc/:
lat 
  
  Revision  ChangesPath
  3.16  +5 -5  xc/programs/xkbcomp/geometry/pc
  3.30  +10 -16xc/programs/xkbcomp/keycodes/xfree86
  3.83  +2 -4  xc/programs/xkbcomp/rules/xfree86
  3.83  +2 -1  xc/programs/xkbcomp/rules/xfree86.lst
  3.63  +2 -2  xc/programs/xkbcomp/symbols/Imakefile
  1.6   +2 -3  xc/programs/xkbcomp/symbols/br
  1.40  +20 -1 xc/programs/xkbcomp/symbols/inet
  1.17  +2 -2  xc/programs/xkbcomp/symbols/pc/Imakefile
  1.6   +2 -2  xc/programs/xkbcomp/symbols/pc/br
  1.4   +13 -1 xc/programs/xkbcomp/symbols/pc/sr
  1.6   +12 -1 xc/programs/xkbcomp/symbols/pc/yu

___
Cvs-commit mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/cvs-commit


CVS Update: xc (branch: trunk)

2004-06-19 Thread Ivan Pascal
CVSROOT:/home/x-cvs
Module name:xc
Changes by: [EMAIL PROTECTED]   04/06/19 06:55:07

Log message:
  updates

Modified files:
  xc/programs/Xserver/hw/xfree86/:
CHANGELOG 
  
  Revision  ChangesPath
  3.3281+7 -1  xc/programs/Xserver/hw/xfree86/CHANGELOG

___
Cvs-commit mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/cvs-commit


Re: [I18n] Switching directly through multiple keyboards

2004-05-19 Thread Ivan Pascal
  Hi,

 Hi.  This keyboard stuff is all very confusing to me.  Is there
 a single, coherent, easy to understand (for hard headed understanders
 like me) document which explains it from first principles?

I'm afraid with such conditions (single, easy and from first principles)
you hardly find something.
XKB principles are described in two docs XKBproto.ps and XKBlib.ps.
You can find them through ftpsearch.

For XKB configuration files syntax see my pascal.tsu.ru/en/xkb/ .
-- 
 Ivan U. Pascal |   e-mail: [EMAIL PROTECTED]
   Administrator of |   Tomsk State University
 University Network |   Tomsk, Russia
___
I18n mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/i18n


Re: [I18n] some misuse in XLC_LOCALE file

2004-05-19 Thread Ivan Pascal
  Hi,

 You can get some information through MSDN
Thanks.

 But as you describes later, in theory any application is free to use any
 other symbols map obtained from  any other source. That's what I want.
Yes.  And such approach doesn't require any changes in existent design but
just additional API.

 My idea may be controversial, but I think it worth a try.
I think both approaches don't contradict.  It would be good if by default
an application loads keymaps from a centralized store buf if anyone (programmer
or user) wants a keymaps from other source he can easy do it.  (The default
behavior could be triggered too.)

 I will do some programming work to see if it is practical.
OK. I wish you success.

-- 
 Ivan U. Pascal |   e-mail: [EMAIL PROTECTED]
   Administrator of |   Tomsk State University
 University Network |   Tomsk, Russia
___
I18n mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/i18n


Re: [I18n] some misuse in XLC_LOCALE file

2004-05-17 Thread Ivan Pascal
  Hi,

 As to the idea of rewrite the xlib using iconv, is there a real working plan,
 or is it just an idea?

I would say there are some thoughts what and how can be done but no one line
of code yet.

Fist of all, I would like to keep existent i18n modules for a fallback (anyway
they are separate loadable modules and can coexist with new iconv-based module).
It means the changes in other Xlib's code should be as less as possible.

The thing is that Xlib's converters differs from iconv and can't be just
replaced but we need to wrap iconv calls into Xlib's converters.
The Xlib's converters operate with impersonal WideChar, MultiByte, etc. which
meaning depends on the current locale whereas iconv operates with exact
encoding names.  But MultiByte everywhere in Xlib means 'encoding_name' which
can be obatined from a locale name or some simple table like locale.dir and used
at the converter creation.  For WideChar we can take UCS2 or UCS4.  Thus it is
a simplest problem.

The second problem is the CompoundText conversion.  Standard iconv doesn't
support even iso2022 for all charsets.  But actually we have three cases for
non-Unicode encodings.  The non-standard encodings (charsets) is the simplest
case.  Their strings are being packed into 'extended segments' without any
changes but we need to know a multibyte length or a complete esc-sequence for
them.  The second case is the set of standard single-byte encodings that are
covered with one (strictly speaking - two) charset.  They doesn't need any
changes in strings but require a table of designators (esc-sequences).  And
the third case is CJK encodings that are represented in CTEXT with a few
different charsets.  But fortunately for them iconv has iso2022* encoding that
is almost the same as CTEXT an can be easy converted (or rather corrected)
to/from CTEXT.

But the worst case is the conversion from Unicode to CTEXT. The same Unicode
codepoint often can be coverted into many different charsets but will such
CTEXT be accepted by Unicode-unaware application depends on the locale used
in the application.  It isn't CJK problem only.  For example Russians still
use four different charsets for the same alphabet (the ISO standard for
cyrillic isn't widely used in Russia except commercial Unixes, in free Unixes
the Cyrillic standard is 'koi8' come from Soviet Union standards, but there
also is 'microsoft codepage 1251' that is often used in Unixes too).  Therefore
for this case we need some ordered list of 'preffered charsets' (or encodings
that can be converted into CTEXT) that should be configurable for a separate
locale.

Thus anyway we need some 'locale object' that is not the same as XLCD but
should keep 'encoding_name', en esc-sequence for non-standard encodings, the
name of iso2022* iconv code for locales that need it and the list of preffered
charsets for UTF-8 locales.

 What I wnat to do with the conversion part is to make related functioms get
 rid of XLCD binding. It's easy to achieve either by using iconv or by
 reusing code from lcCT.c and lcUTF8.c.

I don't see how lcCT.c and lcUTF8.c could help here.  The lcCT.c functions
are very oriented to existent XLCD data and it has unplesant restriction.
It is able to convert CTEXT to multibyte only if charset used in CTEXT presents
in the current locale XLCD.  If there are two application using Cyrillic but
on of them uses 'koi8' whereas the another one uses 'microsoft-cp1251' for
lcCT it means they are talking on absolutely different languages.
The lcUTF8.c module actually is iconv but with reduced set of supported
encodings.


 From CTEXT conversion has no problem.
 To CTEXT conversion need charset selection, which can be solve by either
 always use ISO10646-1
I don't think it is a way.  If an application is Unicode-aware it should use
UTF8_STRING for an inter-client communication.  If some application doesn't
know UTF8_STRING it is more likely it doesn't accept ISO10646 encapsulated
into CTEXT.

 or read preffered charset from localeDB without
 trigger XLCD object constructed.

Right.  But somewhere we have to have such preffered charsets list per locale.

 Input related part is most complicated part. merely considering XIM part,
 protocol, imdkit and client side library all should be enhanced. But this
 make things out of control. Changing client side library only and cheating
 IM server at some point may be a temporary resolution. Maybe IIIMF should
 became mainstream, but I think more research should be done on this point.

Agree.

 In fact, I want more here. I think three kind of input methods, namely
 keyboard mapping, composing and IM server, should have a common point
 to manage. A consistent switch method among different input methods should
 be offered, like Windows does.

I never use complex input methods in Windows.  Where can I read about them or
what I have to install on Windows box to see this 'consistent switch method'?

 I noticed the recent discussion on composing
 method in this maillist. 

Re: [I18n] Switching directly through multiple keyboards

2004-05-15 Thread Ivan Pascal
  Hi,

  To express it more factually, is there a way to assign, let's say
  SHIFT+SHIFT to a greek polytonic kbd, SHIFT+ALT to sanscrit, SHIFT+META
  to phonetics, etc.
 
 Look inside keysymdef.h for possible symbol names which might produce
 desired behavior.  You can notice that it's possible to switch
 directly to either first or last group, but not to a specific number.

But note that the meaning of those keysyms is not hardcoded somewhere.
There are 'interpret' records (in xkb/compat/* files) where those keysyms
are tied with 'xkb actions'.  But all possible actions are not limited with
keysyms mentioned in the interpret records.

For the 'direct switch' one can use actions:
LockGroup(group=1);
LockGroup(group=2);
LockGroup(group=3);
LockGroup(group=4);

How to do it? There are tree ways.
1. One can redefine interpretations for some existent but unused keysyms.
The first two actions are already bound to ISO_First_Group, ISO_Last_Group.
And for two other actions we could take unused ISO_First_Group_Lock,
ISO_Last_Group_Lock and write 'interpret' records for them into
xkb/compat/iso9995 (using interpret records for ISO_{First|Last}_Group
as an example).

2. If such spoiling of existent keysyms is unwanted we can even define own
keysyms.  It can be done in X11R6/lib/X11/XKesysmDB.  Find there unused codes
and names and write new lines for any kesysm name you want (e.g. LockGroup3,
LockGroup4).  Of course, the next step is the same as in the previous variant -
one shoud write 'interpret' records for these new keysyms.

3.  Actually it is not necessary to tie actions with keysyms.  Any action can
be specified directly for a key in any xkb/symbols/* file.
For example:
key LALT {[   Alt_L, NoSymbol ],
  actions[group1] = [  NoAction(), LockGroup(group=3)   ] };

But the last method has some 'side effects'.
-- 
 Ivan U. Pascal |   e-mail: [EMAIL PROTECTED]
   Administrator of |   Tomsk State University
 University Network |   Tomsk, Russia
___
I18n mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/i18n


CVS Update: xc (branch: trunk)

2004-05-08 Thread Ivan Pascal
CVSROOT:/home/x-cvs
Module name:xc
Changes by: [EMAIL PROTECTED]   04/05/08 00:27:43

Log message:
  updates

Modified files:
  xc/programs/Xserver/hw/xfree86/:
CHANGELOG 
  
  Revision  ChangesPath
  3.3253+13 -1 xc/programs/Xserver/hw/xfree86/CHANGELOG

___
Cvs-commit mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/cvs-commit


Re: KP_Separator in the abnt2 keyboard

2004-05-08 Thread Ivan Pascal
  Hi,

Sorry for such long delay.

 The abnt2 keyboard has a comma and a dot in the keypad. The dot is generating 
 the KP_Decimal keysym but the comma is generating the comma keysym. This make 
 both comas use the same keysym. It appears to me that the KP_Separator should 
 be generated.

Probably you are right.
We told about it before your mail with Ricardo Y. Igarashi (the author of
that keymap).  But he didn't insist on immediate changes. :)

Since you think it is a real problem I change it now.
Thanks for the report.

-- 
 Ivan U. Pascal |   e-mail: [EMAIL PROTECTED]
   Administrator of |   Tomsk State University
 University Network |   Tomsk, Russia
___
Devel mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/devel


Re: [I18n] Mode_switch woes

2004-05-06 Thread Ivan Pascal
  Hi,

In XFree 4.3.0 most of keymaps were changed to allow their combining into
one multi-layout keymap.  But us_intl map was changed later.  Therefore its
behavior depends on have you 'pure' 4.3.0 or some version with additional
patches.

Could you run
setxkbmap us_intl -print
and send its output?

 (Note that i had to modify Alt_R (0x71) to map it to mod3 Mode_switch.) 

What keysyms were there before your changes?

 When i type Alt_R apostrophe, an apostrophe should be typed, but in 
 actuality nothing happens.

You can try to use ISO_Level3_Shift keysym instead of Mode_switch.  But as I
said it depends on later patches.

 Why won't Mode_switch work? On my desktop, which runs XFree86 4.2, i 
 have the opposite behavior. Only the most common non-ASCII characters 
 will be inserted. (For example, e circumflex but not c circumflex.) 

You mean you can combine dead_circumflex with e but the sequence dead_circumflex
and c produces nothing.  Is it right?
The thing is that 'compose rules' in X Window are not a part of keyboard map
but a separate file which choice depends on the current locale.  The symbol
ccircumflex can be composed in iso8859-3 and UTF-8 locales.  If the locale
in your XFree 4.3 is one of UTF-8 ones but in your desktop the locale is C
(default) or some other but neither iso8859-3 nor UTF-8 you get such
difference.
-- 
 Ivan U. Pascal |   e-mail: [EMAIL PROTECTED]
   Administrator of |   Tomsk State University
 University Network |   Tomsk, Russia
___
I18n mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/i18n


Re: [I18n] My patch for having Right Control Key work fine in Canada (ca keyboard)

2004-04-05 Thread Ivan Pascal
   (in french, sorry)
  
  But with good pictures. :)
 
 And keyboard definitions :
 http://externe.net/clavier-normalise/cn-test.gz
 http://externe.net/clavier-normalise/cn.gz
 http://externe.net/clavier-normalise/cn-latin1.txt

They are complete keyboard maps in xkb format (except the last one).
Excelent!  I would like to include it in XFree's xkb stuff with minor changes
(mainly remove the keys that are common for all keymaps).

I already wrote to clavieratexterne.net.

Many thanks.

-- 
 Ivan U. Pascal |   e-mail: [EMAIL PROTECTED]
   Administrator of |   Tomsk State University
 University Network |   Tomsk, Russia
___
I18n mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/i18n


[XFree86] Xkb failures

2004-04-05 Thread Ivan Pascal
  Hi,

 Generally, I use the following configuration (or sometimes its
 XF86Config equivalent, but that only on some machines I installed and
 had no problems with) for most (PC104) keyboards I work with:
 
 setxkbmap -keycodes 'xfree86' -types 'complete' -compat 'complete+leds(scroll)' 
 -symbols 'us(pc104)+altwin(meta_win)+altwin(meta_alt)+il+group(shift_toggle)' 
 -geometry 'pc(pc104)'

BTW you could get the similar keymap with a simpler command
setxkbmap us,il -model pc104 -option 
grp:shift_toggle,grp_led:scroll,altwin:meta_win,altwin:meta_alt
 
 Why can't setxkbmap give some more insightful diagnostics (why did it
 fail, where?)

The thing is that setxkbmap itself doesn't load keymap but sends all names
to the Xserver.  The server in its own turn runs an exteranal program xkbcomp
which 'compiles' the keymap from source files and writes the map in a binary
form into a special file that is then read by Xserver.
Since xkbcomp parses the source files it writes to stderr messages if something
is wrong in input files.  But those message don't reach setxkbmap and it only
can say a 'common' result of loading, i.e. was is successful or not.
 
 Any idea what the problem is?  Why is the behaviour so random
 between different hosts?

In XFree86 4.3.0 and later you can easy connect setxkbmap and xkbcomp directly.
Run
setxkbmap . -print | xkbcomp -
and see xkbcomp's error messages.
-- 
 Ivan U. Pascal |   e-mail: [EMAIL PROTECTED]
   Administrator of |   Tomsk State University
 University Network |   Tomsk, Russia
___
XFree86 mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/xfree86


CVS Update: xc (branch: trunk)

2004-04-03 Thread Ivan Pascal
CVSROOT:/home/x-cvs
Module name:xc
Changes by: [EMAIL PROTECTED]   04/04/03 05:43:43

Log message:
55. Fixes and updates for XKB keyboard maps:
- Add nodeadkeys variant to gb keymap (Philip Clayton).
- Rename microsoftprose keyboard model to microsoftprousb because it
  is not Swedish specific but common USB variant (Bugzilla #1155,
  Alex Holland)
- Fix wrong brokenbar keysym in de_CH keymap (Bugzilla #1255,
  Adrian Fiechter)
- Add German Dvorak keymap (Bugzilla #1280, Andreas RĂ¼den)
- Add Sorbian keymap (Bugzilla #1304, Edi Werner)
- Update Hindi/Devanagari keymap (Bugzilla #1317, David Holl)

Modified files:
  xc/programs/xkbcomp/rules/:
xfree86 xfree86.lst 
  xc/programs/xkbcomp/symbols/:
de_CH dev gb inet 
  xc/programs/xkbcomp/symbols/pc/:
Imakefile dev dvorak gb 
Added files:
  xc/programs/xkbcomp/symbols/pc/:
hsb 
  
  Revision  ChangesPath
  3.81  +2 -2  xc/programs/xkbcomp/rules/xfree86
  3.82  +3 -2  xc/programs/xkbcomp/rules/xfree86.lst
  3.7   +2 -2  xc/programs/xkbcomp/symbols/de_CH
  1.2   +64 -62xc/programs/xkbcomp/symbols/dev
  3.8   +7 -2  xc/programs/xkbcomp/symbols/gb
  1.39  +19 -13xc/programs/xkbcomp/symbols/inet
  1.16  +2 -2  xc/programs/xkbcomp/symbols/pc/Imakefile
  1.3   +63 -54xc/programs/xkbcomp/symbols/pc/dev
  1.7   +77 -1 xc/programs/xkbcomp/symbols/pc/dvorak
  1.8   +14 -2 xc/programs/xkbcomp/symbols/pc/gb

___
Cvs-commit mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/cvs-commit


CVS Update: xc (branch: trunk)

2004-04-03 Thread Ivan Pascal
CVSROOT:/home/x-cvs
Module name:xc
Changes by: [EMAIL PROTECTED]   04/04/03 05:44:26

Log message:
  update

Modified files:
  xc/programs/Xserver/hw/xfree86/:
CHANGELOG 
  
  Revision  ChangesPath
  3.3205+11 -1 xc/programs/Xserver/hw/xfree86/CHANGELOG

___
Cvs-commit mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/cvs-commit


Re: [I18n] Re: Alt + CHTN for arrow key movement, XKB?

2004-04-02 Thread Ivan Pascal
  Hi,

Sorry for the delay.  This task appeared more complex than I thought.

 Ahmad Baitalmal ahmad at baitalmal.com writes:
 
 So I think I'm even closer,
 I ran xev to see what I'm getting.
 It seems to be sending Up when I hit Alt+C which is perfect, but the state is
 modified to 0x8 whick means that the Alt key is pressed (right?). So what's
 being sent is really Alt-Up.  

Yes.  This Alt modifier 'spoils' the combination.

 So ho do I cancel that Alt and just send Up?

There is a way to do that.  XKB allows to tie so called 'actions' to a key
besides keysym.  And there is a special action RedirectKey that allows to
emulate any other key event with needed modifiers.

In the keymap you can specifiy in addition to keysyms an actions list:

key AB03 { type=ALT_ALPHABETIC,
 [ c,C, Up ],
actions[Group1]= [ . ] };

(Note, there should be comma after the keysyms list.)
Since first two cells in the list (corresponed to c, C keysyms cells) don't need
an action you have to fill them with 'NoAction()' word.
And the action for third cell can look like
Redirect(key=UP, clearmods=Alt)

Note, the 'key' there is not a keysym but a keycode name because the action is
processed on the server side and emulates a press of another physycal key.

But unfortunately this feature is still buggy.
First of all XKB doesn't understand UP there probably because this name is
too short (it understands DOWN or, say, END well).  I'll fix it bug but
now I can offer a workaround only.  Add to the xkb/keycodes/xfree86 file
(somewhere at the end of the first section) the line
alias UPAR = UP;
(just another name for the UP physical key)
and use this name in the redirect action

actions[Group1]= [NoAction(),NoAction(), Redirect(key=UPAR, clearmods=Alt)]};

But the second bug is worse.  Any RedirectKey action causes a server crash in
XFree up to 4.3.0 version.  It was fixed in May 2003 (after 4.3.0 release)
and you can use this feature only if your Xserver is based on some
intermediate releases issued after this month.

And if you will try this action don't forget to add
virtual_modifiers Alt;
into your xkb/symbols/* file.

 Also, I will need Shift+Alt-C to send  Shift-Up, where can I do that?

It's simplier.  Add into new type description an additional line for Shift+Alt
combination:
   type ALT_ALPHABETIC {
   modifiers = Shift+Lock+Alt;
   
   map[Alt+Shift] = Level3;
   ...
   };
Since it leads to the same level and the same Redirect action the combination
Shift+Alt-C emulates the same UP key with Shift but without Alt.

-- 
 Ivan U. Pascal |   e-mail: [EMAIL PROTECTED]
   Administrator of |   Tomsk State University
 University Network |   Tomsk, Russia
___
I18n mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/i18n


Re: [I18n] My patch for having Right Control Key work fine in Canada (ca keyboard)

2004-04-02 Thread Ivan Pascal
  Hi,

 I'm using ca keyboard, and was tired that this right control key was mapped 
 to some 5th modulator key that's seems completely useless...

The 'ca' keymap is overloaded with symbols.  There are up to 5 symbols per key
there and the additional modifier is needed to access fifth symbols.

 So I patched /etc/X11/xkb/symbols/ca, with the following patch of my own, 
 and it works perfectly fine. I think many people would appreciate this to be 
 the default.

I'm going to make some additional variants of 'ca' keymap.  Among Microsoft's
keyboard layouts there are three variants of Canadian keyboard - French,
French (Legacy) and Multilingual.  Two first use only AltGr modifier and
the last only really needs an additional modifier that is RightCtrl too.

I hope many people would be satisfied if thay could choose simpler French
Canadian keymap.

-- 
 Ivan U. Pascal |   e-mail: [EMAIL PROTECTED]
   Administrator of |   Tomsk State University
 University Network |   Tomsk, Russia
___
I18n mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/i18n


Re: VT switching / XKB problem

2004-03-29 Thread Ivan Pascal
  Hi,

 In 4.3.0 days I made a change to the native keyboard driver that would 
 differentiate between Alt+Ctrl+SPECIAL and Alt+Ctrl+Shift+SPECIAL, where 
 SPECIAL is one of the VT screen switch, zap, or mode change keys. I 
 submitted a small patch (Bugzilla #1298) that cathes a new case where 
 this was being missed, but that code is only ever used if XKB is 
 disabled. When using XKB mode, the problem still exists (that is, 
 holding down shift while using one of the special key sequences still 
 acts on that sequence).
 
 I am XKB-impaired, and don't know if this is a problem in the keyboard 
 definition or in XKB itself. I have several applications that want to 
 use Alt+Ctrl+Shift+Fx, and the only way I can currently do that is to 
 disable XKB. Can anyone who 'gets' XKB take a look at this? Many thanks 
 in advance.

The thing is that in XFree before 4.3.0 such key combinations were processed
inside the keyboard driver.  But in 4.3.0 special keysyms were introduced that
cause a switching to VTs.
Therefore the code in driver that deals with those combinations stais idle and
the effect you see is caused by the mecahism that selects keysym in dependence
on modifiers.

In previous keymaps keys F1-F12 had one keysym only and that keysym was being
chosen independly on any modifiers.  But in present maps such keys have two
keysyms: [ F1,  XF86_Switch_VT_1 ] and note that the second column here doesn't
mean a 'Shift state' as for most other keys.  Since the second field should be
chosen when Alt and Control modifiers are pressed those keys belong to special
type named CTRL+ALT.  You can find the description of this type in
xkb/types/pc.  It looks like
type CTRL+ALT {
modifiers = Control+Alt;
map[Control+Alt] = Level2;
...
};
The first line inside the description specifies what modifiers should be
considered for a field (level) selection.  The next string is a rule that means
if both Control and Alt are pressed choose the second level.  Since all other
combinations (none modifiers and Control or Alt alone) are not mentioned there
it means the first level shold be chosen (as a default choice).

But since Shift modifier is not mentioned among the modifiers that should be
considered XKB ignores it completely for such keys.  I.e. it catchs the
Control+Alt pair bit doesn't distinguish it from Control+Alt+something.

What can be done.  The obvious solution is to add Shift to the list of
modifiers. If we change firest string to
modifiers = Control+Alt+Shift;
but don't add any additional 'mapping rule' all combinations like Control+Shift,
Alt+Shift and 'Shift alone' will lead to the default first field with keysym F1.
But there is one bad thing there.  XKB by default 'comsumes' all modifiers
mentioned in the 'key type'.  It means that after calling X*LookuppString
(it is needed for mapping key event to keysym) the Shift modifer as well as
Control and Alt is removed from the modifiers set and it looks like one have
pressed F* key without modifiers.  For preventing such consuming we need
to add some additional rules to the type description, like
preserv[Shift] = Shift;
preserv[Control+Alt+Shift] = Shift;
etc

But there is a simpler way. :)
You can just choose the 'old style' keymap without new special keysyms.  There
is (in XFree 4.4.0) a special XkbOption srvrkeys:none  (none 'server keys'
in a keymap) that simply removes new kesyms and changes the type of F1 keys
to simple two level (with the same keysym in both levels) type.

If this option is specified in XF86Config file the server at the start should
detect that special keysms are absent in the keymap and swith on an internal
(in the driver) processing of such combinations.  But for sure you can switch
it explicitly in XF86Config, see the ServerFlags option (not a keyboard option!)
 Option HandleSpecialKeys Always
in man XF86Config.

-- 
 Ivan U. Pascal |   e-mail: [EMAIL PROTECTED]
   Administrator of |   Tomsk State University
 University Network |   Tomsk, Russia
___
Devel mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/devel


Re: [I18n] questions about convert functions

2004-03-10 Thread Ivan Pascal
  Hi,

  For the second question, cs* are used for CTEXT encoding, fs* are used 
  for font rendering, these definitions can be different.
  
 This doesn't convince me.

Nothing wrong there.  The cs* sets are used for conversion from CTEXT as well
as to CTEXT.  When a convertion module converts some multibyte (or wide char)
string into CTEXT or codes that can be used for rendering it tries charsets
in the order they are numbered.

You can see that in the zh_TW.big5 locale the charset 'cs1' completely
overlaps two next ones.  The codes that fall into cs1 range are multibytes
with the first byte 0xa1-0xf9 (the second byte value doesn't matter here),
whereas cs2 covers multibutes with the first byte in the range 0xa1-0xc7 and
the cs3 charset deals with multibytes where the first byte is one from
0xc9-0xf9.  Thus the cs2 and cs3 charsets in the multibyte point of view are
subsets of cs1.  And when the converter module prepares multibytes for
rendering (converts them into glyph indexes) it never comes to cs2 and cs3
and the corresponded fs*'s are unneeded.

Those two additional charsets are useful for opposite conversion (from CTEXT)
only.

 Considering a process running under zh_TW.big5 locale, when get a CTEXT
 element(with ESC sequence indicates BIG5-E0/E1 charset) through certain
 ICC method, it will convert to CharSet before use it.

Not exactly.  When an application gets a CTEXT segment the segment already
match one of CharSet record.  Before use it the application converts it
into multibyte string.

 But the element will convert to cs2 or cs3(no way to cs1), which has no
 corresponding fs* definition. How it supposed to be correctly rendered?

Xlib doesn't render CTEXT string directly.  You should call one of
X{mb|wc|utf8}Draw* function and feed it with multibyte, wide char or utf8
string.  But as I said above such string will always be converted into cs1 and
never into cs2/cs3 charsets.  (Frankly speaking the wc_encoding values are
actually wrong in that locale description.  And if one tries to convert CTEXT
into WC directly and then draw that WC string it will fail, really.  But it's
a bug.  With MB or UTF8 strings it should not happen.)

-- 
 Ivan U. Pascal |   e-mail: [EMAIL PROTECTED]
   Administrator of |   Tomsk State University
 University Network |   Tomsk, Russia
___
I18n mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/i18n


Re: howto get the XkbLayout with the C language

2004-03-09 Thread Ivan Pascal
  Hi,

 I've just tried to get the XkbLayout in my program, but It doesn't work for me at 
 this moment.
 I caught the event, when the user changes the keyboard layout. But I cannot get the 
 layout symbolic name as is in my XF86Config like us or
 cz or de or whatever I have there in the
 
   Option XkbLayout  us,cz
 
 line. How can I programm it? I programm it in the C language.

All strings from Xkb* options are stored in the root window property
_XKB_RULES_NAMES.  You can get them as a usual window property or use the
function XkbRF_GetNamesProp (see X11/extensions/XKBrules.h) from libxkbfile.

-- 
 Ivan U. Pascal |   e-mail: [EMAIL PROTECTED]
   Administrator of |   Tomsk State University
 University Network |   Tomsk, Russia
___
Devel mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/devel


Re: [I18n] French (AZERTY) + greek polytonic keyboard

2004-02-05 Thread Ivan Pascal
  Hi,

 Danilo Segan [EMAIL PROTECTED] dixit :
 
  With XFree86 4.3, multigroup layouts have been, sort of, abandoned --
  you should probably create separate groups for each, and combine them
  using setxkbmap, xkbcomp features.

Thank you, Danilo.  If I answered before your post I would say the same.
 
 Yep, I tried to set up that thing using ? include ? features. It failed.
 I couldn't figure out why, though. So I decided to merge both groups
 into a multigroup description. But I still can split them quite easily.

Well.  Let try to fix it together.  What did you do?  And what problems or error
messages you got?

  There's always bugzilla.xfree86.org, where you could probably file a
  RFE if you want to see this in some next version of XFree86.
 
 I've no clue whether it may interest XFree86 developers...

You could try.  In a worst case your offer would be rejected. :)  But actually
it would not happen.
-- 
 Ivan U. Pascal |   e-mail: [EMAIL PROTECTED]
   Administrator of |   Tomsk State University
 University Network |   Tomsk, Russia
___
I18n mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/i18n


Re: CVS XFree (savage driver) xsuite failures

2004-01-26 Thread Ivan Pascal
David Dawes wrote:
 
 Where does the LED state get resynced with the DDX? The only place that
 I see the LED state synced with the DDX is at init time.  If I disable
 XKB, 'xset q' doesn't report changes to the real LED state.

Yes.  But I think it's rather a bug.  Note that by deafult (without XLeds
option in the config file) all LEDs are protected from changes by applications
and the core protocol doesn't provide any way to get real LEDs state.
Thus the XGetKeyboardControl request just reflects attempts (unsuccessful with
deafult settings) of some applications to change the LEDs state.

 Those tests work OK for me now if I disable XKB.  I don't think it is
 unreasonable to do the core protocol tests with XKB disabled.

I agree.  It would be good to add such suggestion into xsuite README.

 BTW, the fix for this regression is very simple.  We just have to remove
 one line in dix/devices.c where the LEDs mask field of the keyboard controls
 structure is being reloaded with the actual LEDs state.  The tests will be
 passed with success.  But there will not be any way (in the core protocol)
 to know the real state of LEDs.
 
 It is being loaded with the XKB's LED state, isn't it?

It is.  Without XKB Xserver doesn't keep real LED state.

 On the other hand the test itself could be changed.  One way is to make it
 XKB-aware and make it set the needed flag (that turns the XLookupString
 behavior to the 'core protocol like' one).  Another way is don't use the Shift
 modifier (that can be 'eaten' under some circumstance) there.  All other
 modifiers (except Caps) would be interpreted equaly in both (with/without XKB)
 cases.
 
 That sounds reasonable to me.  It would also be nice to add some XKB tests
 to the test suite.

I agree.

-- 
 Ivan U. Pascal |   e-mail: [EMAIL PROTECTED]
   Administrator of |   Tomsk State University
 University Network |   Tomsk, Russia
___
Devel mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/devel


CVS Update: xc (branch: trunk)

2004-01-20 Thread Ivan Pascal
CVSROOT:/home/x-cvs
Module name:xc
Changes by: [EMAIL PROTECTED]   04/01/20 07:15:56

Log message:
Update XKB registry file rules/xfree86.xml (Sergey Oudaltsov),
reflects CHANGELOG 759.

Modified files:
  xc/programs/xkbcomp/rules/:
xfree86.xml 
  
  Revision  ChangesPath
  1.25  +25 -1 xc/programs/xkbcomp/rules/xfree86.xml

___
Cvs-commit mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/cvs-commit


Re: CVS XFree (savage driver) xsuite failures

2004-01-20 Thread Ivan Pascal
  Hello,

Mark Vojkovich wrote:
 On Mon, 19 Jan 2004, David Dawes wrote:
 
  Tests for XChangeKeyboardControl
  Test   9:  FAIL
  Test  10:  FAIL
  
  That has been showing up for a while.  It should be followed up.
 
That's been showing up for a couple years.  It's a regression.

I think the tests are incorrect.  Both tests try to set keyboard LEDs (using
XChangeKeyboardControl) then read the LEDs state (XGetKeyboardControl) and
compare values.  The difference between the tests is that the first one tries
to change some of LEDs (uses some mask) and the second one tries to set all
LEDs together (without specifying a particular LED number).

But some LEDs can be protected from their change by client application and
reflect keyboard state only.

The man about {Change|Get}KeyboardControl tells:
XChangeKeyboardControl - ...the state of that leds is changed, if possible..
XGetKeyboardControl - ...each bit set to 1 in led_mask indicates an LED that
is lit  (Note if possible and an LED that is lit.)
I understand it as Get returns the actual state of LEDs, those that are not
protected and were changed by Change and those that are protected but are
switched on reflecting the keyboard state.

But the tests, obviously, are written in assumption that Get should return the
LED state exactly as it was written into keyboard by Change call.  It means all
LEDs should be unprotected (it is not by default) or the keyboard control
structure keeps values written by XChangeKeyboardControl call(s) and at the
XGetKeyboardControl request just returns this record instead of real state
of LEDs.

BTW, the fix for this regression is very simple.  We just have to remove
one line in dix/devices.c where the LEDs mask field of the keyboard controls
structure is being reloaded with the actual LEDs state.  The tests will be
passed with success.  But there will not be any way (in the core protocol)
to know the real state of LEDs.

  
  Tests for XRebindKeysym
  Test   1:  FAIL
  
  The XRebindKeysym failure goes away if XKB is disabled.
 
Yes, it's a XKB problem/feature.

It is a feature. :)
This problem can be fixed easy too with 'one word patch'.  But there is one
unclear thing there.

The RebindKeysym mechanism allows to tie any string to a keysym or a combination
of keysym and a set of modifiers.  The binding itself works well, the problem
is the modifiers set interpretation.
For example, we have a key with two keysyms [a A] and want to bind two different
strings to combiantions Alt+a and Alt+A.  How should we specify the second
combination - Alt + 'A', Alt + Shift + 'a' or Alt + Shift + 'A'?

The core protocol's assumes the third variant, i.e. takes the keysym figured
out with taking in account the Shift modifier but also checks all modifiers
obtained from the key event.

But the XKB-aware XLookupString 'consumes' all modifiers used at the keysym
choosing and hide them from the routine that checks string_to_key bindins,
i.e. it expects that the combiantion is just Alt + 'A'.
BTW, this behavour can be swithed on/off with a special 'client side XKB' flag
but by default XLookupString 'eats' consumed modifiers.

Thus the problem is what modifiers set should the bindings check routine use.
Shoud it always be the original 'state' field from the key event or the
consumed modifiers may be removed from a consideration.  If we require there
a full compatibility with the core protocol the answer is obvious.  But some
calls in XKB-aware Xlib already have differences from core protocol ones.
And the first form of that combination seems to me more logical (IMHO,
of course).

Side note: I wonder if anybody (anything) uses this 'rebind keysym' feature
anywhere.

On the other hand the test itself could be changed.  One way is to make it
XKB-aware and make it set the needed flag (that turns the XLookupString
behavior to the 'core protocol like' one).  Another way is don't use the Shift
modifier (that can be 'eaten' under some circumstance) there.  All other
modifiers (except Caps) would be interpreted equaly in both (with/without XKB)
cases.

-- 
 Ivan U. Pascal |   e-mail: [EMAIL PROTECTED]
   Administrator of |   Tomsk State University
 University Network |   Tomsk, Russia
___
Devel mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/devel


CVS Update: xc (branch: trunk)

2004-01-17 Thread Ivan Pascal
CVSROOT:/home/x-cvs
Module name:xc
Changes by: [EMAIL PROTECTED]   04/01/17 07:04:16

Log message:
  update

Modified files:
  xc/programs/Xserver/hw/xfree86/:
CHANGELOG 
  
  Revision  ChangesPath
  3.3104+5 -1  xc/programs/Xserver/hw/xfree86/CHANGELOG

___
Cvs-commit mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/cvs-commit


CVS Update: xc (branch: trunk)

2004-01-17 Thread Ivan Pascal
CVSROOT:/home/x-cvs
Module name:xc
Changes by: [EMAIL PROTECTED]   04/01/17 06:59:37

Log message:
   759. Updates for XKB keyboard maps:
- Add Tibetan/Dzongkha keyboard layout (Bugzilla #1082, Gregory Mokhin)
- Add three new Internet/multimedia keyboard descriptions
  (Bugzilla #1088, Radics Laszlo)

Modified files:
  xc/programs/xkbcomp/rules/:
xfree86 xfree86.lst 
  xc/programs/xkbcomp/symbols/:
inet 
  xc/programs/xkbcomp/symbols/pc/:
Imakefile 
Added files:
  xc/programs/xkbcomp/symbols/pc/:
dz 
  
  Revision  ChangesPath
  3.80  +4 -4  xc/programs/xkbcomp/rules/xfree86
  3.81  +5 -1  xc/programs/xkbcomp/rules/xfree86.lst
  1.38  +89 -1 xc/programs/xkbcomp/symbols/inet
  1.15  +2 -2  xc/programs/xkbcomp/symbols/pc/Imakefile

___
Cvs-commit mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/cvs-commit


CVS Update: xc (branch: trunk)

2004-01-09 Thread Ivan Pascal
CVSROOT:/home/x-cvs
Module name:xc
Changes by: [EMAIL PROTECTED]   04/01/09 06:46:07

Log message:
   751. Fix some rules in en_US.UTF-8 Compose file (Bugzilla #1071,
Matthew Fischer).

Modified files:
  xc/nls/Compose/:
en_US.UTF-8 
  
  Revision  ChangesPath
  1.12  +4 -4  xc/nls/Compose/en_US.UTF-8

___
Cvs-commit mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/cvs-commit


CVS Update: xc (branch: trunk)

2004-01-09 Thread Ivan Pascal
CVSROOT:/home/x-cvs
Module name:xc
Changes by: [EMAIL PROTECTED]   04/01/09 06:59:18

Log message:
   752. Update XKB registry file rules/xfree86.xml (Sergey Oudaltsov).

Modified files:
  xc/programs/xkbcomp/rules/:
xfree86.lst xfree86.xml 
  
  Revision  ChangesPath
  3.80  +3 -3  xc/programs/xkbcomp/rules/xfree86.lst
  1.24  +410 -9xc/programs/xkbcomp/rules/xfree86.xml

___
Cvs-commit mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/cvs-commit


CVS Update: xc (branch: trunk)

2004-01-06 Thread Ivan Pascal
CVSROOT:/home/x-cvs
Module name:xc
Changes by: [EMAIL PROTECTED]   04/01/06 05:14:06

Log message:
   734. Update Compose file for en_US.UTF-8 locale (Bugzilla #1053,
Matthew Fischer) and fix wrong comment signs there (Ivan Pascal).

Modified files:
  xc/nls/Compose/:
en_US.UTF-8 
  
  Revision  ChangesPath
  1.11  +259 -233  xc/nls/Compose/en_US.UTF-8

___
Cvs-commit mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/cvs-commit


CVS Update: xc (branch: trunk)

2004-01-06 Thread Ivan Pascal
CVSROOT:/home/x-cvs
Module name:xc
Changes by: [EMAIL PROTECTED]   04/01/06 05:35:35

Log message:
   735. Add xkb keymap for Microsoft Mutimedia Keyboard keys (Bugzilla #1052,
Jacques Legare).

Modified files:
  xc/programs/xkbcomp/rules/:
xfree86 xfree86.lst 
  xc/programs/xkbcomp/symbols/:
inet 
  
  Revision  ChangesPath
  3.78  +2 -2  xc/programs/xkbcomp/rules/xfree86
  3.78  +2 -1  xc/programs/xkbcomp/rules/xfree86.lst
  1.36  +44 -1 xc/programs/xkbcomp/symbols/inet

___
Cvs-commit mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/cvs-commit


CVS Update: xc (branch: trunk)

2004-01-06 Thread Ivan Pascal
CVSROOT:/home/x-cvs
Module name:xc
Changes by: [EMAIL PROTECTED]   04/01/06 05:49:29

Log message:
   736. Fix memory double freeing at XIM destroying in imLcIm.c (Ivan Pascal,
reported: Bugzilla #1015).

Modified files:
  xc/lib/X11/:
imLcIm.c 
  
  Revision  ChangesPath
  1.13  +3 -1  xc/lib/X11/imLcIm.c

___
Cvs-commit mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/cvs-commit


CVS Update: xc (branch: trunk)

2004-01-06 Thread Ivan Pascal
CVSROOT:/home/x-cvs
Module name:xc
Changes by: [EMAIL PROTECTED]   04/01/06 05:56:30

Log message:
  updates

Modified files:
  xc/programs/Xserver/hw/xfree86/:
CHANGELOG 
  
  Revision  ChangesPath
  3.3081+7 -1  xc/programs/Xserver/hw/xfree86/CHANGELOG

___
Cvs-commit mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/cvs-commit


Re: documentation of the format of files in xkb/symbols?

2004-01-06 Thread Ivan Pascal
  Hi,

  You'll find some documentation here: http://pascal.tsu.ru/en/xkb/
 
 i haven't the information i need on that page. i may have overread it or 
 something, but i still ask myself what certain keywords mean when 
 reading the files in .../xkb/symbols/pc

http://pascal.tsu.ru/en/xkb/garam-symbols.html
What is unclear there ?

 my new keymap is now located at /usr/X11R6/lib/X11/symbols/pc/null and 
 the file looks like that
 
 default xkb_symbols basic {
 };
 
 but when loading that keymap, the keys like 0123..9 and TAB,Enter etc. 
 still work. it's surely due to some implicit inheritance, but how do i 
 avoid that? how can i create a totally empty keymap?

I guess you specify this map using XkbLayout option (or -layout as setxkbmap
argument).  You had read http://pascal.tsu.ru/en/xkb/setup.html inattentively.
The layout name is not a file name but some word that XKB translates to
file name(s) using XkbRules.  And the default rule converts a single word
in the layout name into the pair of file names e.g. ps/pc(105)+pc/null.
You can check it running setxkbmap -print command.

If you want only that file alone is used as a symbols map you should specify
that it is XkbSymbols but not XkbLayout 
Option XkbSymbols pc/null

But then you will face another problem.  XKB (the server part) doesn't like
the symbols map that is empty completely.  I'd suggest you to add at least
one key definition there that does nothing.  For example

default xkb_symbols basic {
  key TLDE { [NoSymbol] };
};

-- 
 Ivan U. Pascal |   e-mail: [EMAIL PROTECTED]
   Administrator of |   Tomsk State University
 University Network |   Tomsk, Russia
___
Devel mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/devel


CVS Update: xc (branch: trunk)

2003-12-30 Thread Ivan Pascal
CVSROOT:/home/x-cvs
Module name:xc
Changes by: [EMAIL PROTECTED]   03/12/30 05:26:26

Log message:
   710. Fixes and updates for XKB keyboard maps:
- Fix Armenian phonetic keymap (Bugzilla #1016, Ani).
- Fix rules for Brasilian ABNT2 keyboard (Ricardo Y. Igarashi).
- Add Shift+CapsLock group switcher (Ivan Pascal, see Bugzilla #1025).
- Update rules/xfree86.lst with missing descriptions (Ivan Pascal).

Modified files:
  xc/programs/xkbcomp/rules/:
xfree86 xfree86.lst 
  xc/programs/xkbcomp/symbols/:
group 
  xc/programs/xkbcomp/symbols/pc/:
am 
  
  Revision  ChangesPath
  3.76  +4 -3  xc/programs/xkbcomp/rules/xfree86
  3.77  +7 -2  xc/programs/xkbcomp/rules/xfree86.lst
  3.9   +8 -1  xc/programs/xkbcomp/symbols/group
  1.5   +8 -7  xc/programs/xkbcomp/symbols/pc/am

___
Cvs-commit mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/cvs-commit


CVS Update: xc (branch: trunk)

2003-12-30 Thread Ivan Pascal
CVSROOT:/home/x-cvs
Module name:xc
Changes by: [EMAIL PROTECTED]   03/12/30 05:31:18

Log message:
  update

Modified files:
  xc/programs/Xserver/hw/xfree86/:
CHANGELOG 
  
  Revision  ChangesPath
  3.3059+6 -1  xc/programs/Xserver/hw/xfree86/CHANGELOG

___
Cvs-commit mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/cvs-commit


CVS Update: xc (branch: trunk)

2003-12-22 Thread Ivan Pascal
CVSROOT:/home/x-cvs
Module name:xc
Changes by: [EMAIL PROTECTED]   03/12/22 06:59:07

Log message:
  update

Modified files:
  xc/programs/Xserver/hw/xfree86/:
CHANGELOG 
  
  Revision  ChangesPath
  3.3045+2 -1  xc/programs/Xserver/hw/xfree86/CHANGELOG

___
Cvs-commit mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/cvs-commit


Re: problem using dead keys

2003-12-22 Thread Ivan Pascal
  Hi,

 everything was ok, except that it appears to be ignoring the
 
 Option  XkbOptions grp:lwin_switch

   Try lv3:lwin_switch instead.

-- 
 Ivan U. Pascal |   e-mail: [EMAIL PROTECTED]
   Administrator of |   Tomsk State University
 University Network |   Tomsk, Russia
___
Devel mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/devel


CVS Update: xc (branch: trunk)

2003-12-18 Thread Ivan Pascal
CVSROOT:/home/x-cvs
Module name:xc
Changes by: [EMAIL PROTECTED]   03/12/18 06:11:05

Log message:
  updates

Modified files:
  xc/programs/Xserver/hw/xfree86/:
CHANGELOG 
  
  Revision  ChangesPath
  3.3039+8 -1  xc/programs/Xserver/hw/xfree86/CHANGELOG

___
Cvs-commit mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/cvs-commit


CVS Update: xc (branch: trunk)

2003-12-18 Thread Ivan Pascal
CVSROOT:/home/x-cvs
Module name:xc
Changes by: [EMAIL PROTECTED]   03/12/18 06:14:39

Log message:
   667. Fixes and updates for XKB keyboard maps:
- Add to 'us' keymap backslash key that can be rewritten in other layouts
  (Bugzilla #976, Børre Gaup).
- Fix some keys in Georgian latin keymap (Bugzilla #985, Vano Beridze).
- Add Korean keymap (Jungshik Shin).
- Add French variant of 'dvorak' keymap (Josselin Mouette).
- Fix wrong key type in the 'keymap without special keys' (Ivan Pascal).

Modified files:
  xc/programs/xkbcomp/:
expr.c 
  xc/programs/xkbcomp/keycodes/:
xfree86 
  xc/programs/xkbcomp/rules/:
xfree86.lst xfree86.xml 
  xc/programs/xkbcomp/symbols/:
dvorak ge_la srvr_ctrl 
  xc/programs/xkbcomp/symbols/pc/:
dvorak ge_la us 
  
  Revision  ChangesPath
  3.8   +2 -1  xc/programs/xkbcomp/expr.c
  3.29  +6 -1  xc/programs/xkbcomp/keycodes/xfree86
  3.76  +2 -1  xc/programs/xkbcomp/rules/xfree86.lst
  1.22  +13 -0 xc/programs/xkbcomp/rules/xfree86.xml
  3.11  +113 -1xc/programs/xkbcomp/symbols/dvorak
  1.2   +5 -5  xc/programs/xkbcomp/symbols/ge_la
  1.4   +3 -1  xc/programs/xkbcomp/symbols/srvr_ctrl
  1.4   +68 -1 xc/programs/xkbcomp/symbols/pc/dvorak
  1.3   +5 -5  xc/programs/xkbcomp/symbols/pc/ge_la
  1.7   +4 -1  xc/programs/xkbcomp/symbols/pc/us

___
Cvs-commit mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/cvs-commit


Re: [I18n] Changes for xkb/symbos/pc/br

2003-12-11 Thread Ivan Pascal
Hi,

 OK, I have noted that the maps are different, and I suppose they are in
 accordance with what you wrote in The XKB internals (I should confess
 I couldn't understand this text very well...).

I guess.  Even in Russian (the language the text was origianly written) it is
quite complicated.  And my poor English translation doesn't make it clearer.
If you pointed me exactly sentences or paragraphs that are unclear for you
I could rework them somehow.

 I would like to try the new maps in pc directory; all I need is to
 change the XF86Config from:
 Option  XkbLayout br
 
 to:
 Option  XkbLayout pc/br
 

No.  Those XkbModel, XkbLayout, XkbOption are another abstraction level and
they are being mapped to files names using XkbRules.  The rules file in 4.3.0
is also rewritten and maps layout names to 'pc/[layout name]'. (Since you have
XFree 4.3.0 you can check it running setxkbmap program with '-print' option.)
On the contrary to make the server get the keymap file from symbols directory
is a bit tricky.  If you want to use such old file you need to add the layout
name into the list of 'old layouts' in xkb/rules/xfree86 file.

 And I am still using 4.3.0 (I have just downloaded the Xetc.tgz of 4.4
 beta); do these maps work on 4.3.0?

They appeared in XFree86 4.3.0. :)

 BTW, the Japanese map is missing in the pc directory...

I left some maps unconverted for different reasons.  Frankly speaking I don't
remember why the Japanese map is one of them (probably because it has
a separate rule in the rules file).  On the other hand nobody complained. :)
I will add such keymap some day.
-- 
 Ivan U. Pascal |   e-mail: [EMAIL PROTECTED]
   Administrator of |   Tomsk State University
 University Network |   Tomsk, Russia
___
I18n mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/i18n


Re: [I18n] Changes for xkb/symbos/pc/br

2003-12-10 Thread Ivan Pascal
   Hi,

 One question: the use of pc/[language code] will be the standard in
 XFree86 4.4?

Yes.
If you are talking about [language code] for keyboard map name nothing is
changed there yet.  There were proposals discussed here for new keyboard maps
that implied name changes of some maps but that work still isn't complete.

If you mean the 'pc' directory for XKB symbols maps it's right too.  You see
that the maps in symbols/pc differ from ones in symbols directory.  The maps
were rewritten to allow combining them easy in one multi_layout keymap.  But
existent maps were left for compatibility and as a fallback for the case of
possible issues with new maps.  Thus 'old' maps are kept in symbols directory
and new maps are in symbols/pc.  (The name 'pc' was chosen because other vendor
keyboard maps have own directories and it would be right to place in the symbols
itself only pieces that are common for all maps.)

BTW. I added us(intl) submap (i.e. a variant of US keymap) making it similar
to MS Windows US International keymap as much as possible.  If one complain
on us_intl map you can suggest to try this new one. :)

-- 
 Ivan U. Pascal |   e-mail: [EMAIL PROTECTED]
   Administrator of |   Tomsk State University
 University Network |   Tomsk, Russia
___
I18n mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/i18n


CVS Update: xc (branch: trunk)

2003-12-09 Thread Ivan Pascal
CVSROOT:/home/x-cvs
Module name:xc
Changes by: [EMAIL PROTECTED]   03/12/09 05:49:21

Log message:
  update

Modified files:
  xc/programs/Xserver/hw/xfree86/:
CHANGELOG 
  
  Revision  ChangesPath
  3.3030+2 -1  xc/programs/Xserver/hw/xfree86/CHANGELOG

___
Cvs-commit mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/cvs-commit


CVS Update: xc (branch: trunk)

2003-12-09 Thread Ivan Pascal
CVSROOT:/home/x-cvs
Module name:xc
Changes by: [EMAIL PROTECTED]   03/12/09 05:51:34

Log message:
   661. Update Brazilian keyboard map (Ricardo Y. Igarashi).

Modified files:
  xc/programs/xkbcomp/symbols/pc/:
br 
  
  Revision  ChangesPath
  1.4   +4 -1  xc/programs/xkbcomp/symbols/pc/br

___
Cvs-commit mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/cvs-commit


CVS Update: xc (branch: trunk)

2003-12-05 Thread Ivan Pascal
CVSROOT:/home/x-cvs
Module name:xc
Changes by: [EMAIL PROTECTED]   03/12/05 05:14:48

Log message:
  update

Modified files:
  xc/programs/Xserver/hw/xfree86/:
CHANGELOG 
  
  Revision  ChangesPath
  3.3020+2 -1  xc/programs/Xserver/hw/xfree86/CHANGELOG

___
Cvs-commit mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/cvs-commit


CVS Update: xc (branch: trunk)

2003-12-05 Thread Ivan Pascal
CVSROOT:/home/x-cvs
Module name:xc
Changes by: [EMAIL PROTECTED]   03/12/05 05:17:55

Log message:
   651. Update XKB registry file rules/xfree86.xml (Sergey Oudaltsov).

Modified files:
  xc/programs/xkbcomp/rules/:
xfree86.xml 
  
  Revision  ChangesPath
  1.21  +2183 -364 xc/programs/xkbcomp/rules/xfree86.xml

___
Cvs-commit mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/cvs-commit


CVS Update: xc (branch: trunk)

2003-12-03 Thread Ivan Pascal
CVSROOT:/home/x-cvs
Module name:xc
Changes by: [EMAIL PROTECTED]   03/12/03 06:09:09

Log message:
   646. Fix for XKB map 'altwin' to avoid one keysym to more than one modifier
mapping (Ivan Pascal).

Modified files:
  xc/programs/xkbcomp/symbols/:
altwin 
  
  Revision  ChangesPath
  1.5   +3 -3  xc/programs/xkbcomp/symbols/altwin

___
Cvs-commit mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/cvs-commit


CVS Update: xc (branch: trunk)

2003-12-02 Thread Ivan Pascal
CVSROOT:/home/x-cvs
Module name:xc
Changes by: [EMAIL PROTECTED]   03/12/02 05:13:08

Log message:
   633. Fixes for XKB keyboard maps:
- fix Meta, Super, Hyper keysyms interpretation
- fix typo in rules/xfree86.xml (Ivan Pascal).

Modified files:
  xc/programs/xkbcomp/compat/:
misc 
  xc/programs/xkbcomp/rules/:
xfree86.xml 
  
  Revision  ChangesPath
  1.5   +4 -4  xc/programs/xkbcomp/compat/misc
  1.20  +1 -1  xc/programs/xkbcomp/rules/xfree86.xml

___
Cvs-commit mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/cvs-commit


Re: [I18n] UTF8 related font selection is broken multibyte encoding disagreement with libc

2003-11-19 Thread Ivan Pascal
  Hi,

The original i18n part of Xlib is very iso-2022 oriented and lately added
Unicode support doesn't fit its design well.  It assumes that in every locale
the whole range of mutibyte codes can be divided to some non-overlaped
charsets (strictly speaking it usualy deals with GL/GR halfs of charsets)
and there is only one way of such division.  Each charset is fully covered
with one font (in the fonts encoding meaning).

The list of those charsets and the scheme of 'mb/wc codes range to particular
charsets' division is described in the locale description file.  Therefore
the task of XCreateFontSet is to find one font for each charset and the task
of the drawing routine at a single char drawing is to find what charset 
this mb/wc code match, convert the code to the glyph index and draw it using
the font prepared by XCreateFontSet.  Even if XCreateFontSet can find more
than one fonts for some charset, only first one is used because there is no
information why one of fonts is better than others for a single char.

But with UTF-8 locales this scheme doesn't work because
* Unicode (iso-10646) encoded font overlaps with any iso-2022 based font
* in UTF-8 locale a single mb char can be converted into more than one
  iso-2022 charset.
To solve this problem somehow the UTF-* module uses a list of 'preferred
charsets'.  One such list is builtin in Xlib (it is used in Xutf8* routines)
and also the module makes an additional list gathering charsets from the
locale description file in the order thy are mentioned in this file.
The 'supreset' iso-10646 can be used in this list too.  If it is the first one
in the list all other charsets are never tried.

 Problem 1
... 
 The Xmb routines never use any other fonts but the iso10646-1 helvetica 
 that does not contain all characters, because fonts are selected based on
 first matching character set and iso10646 seems to be preferred.

Now many UTF-8 locales actually share one description file.  Therefore this
common file is rather a template than a proper locale description file.
In this file iso-10646 encoding stands as the first one and all other charsets
are left there as examples of charsets that can be used there.
If you want the iso-10646 font is used as a 'last resort' you need to change
the order of fs's in the locale description file (XLC_LOCALE).

 Studying the Xlib source code, apparnetly Xmb in UTF8 locale selects fonts
 by the order of fonts in the fontset, that does not match the order of 
 fonts in the request pattern to XCreateFontSet. Shouldn't the pattern 
 matter? Shouldn't the glyphs actually implemented in a font matter, in
 particular in case of iso10646 fonts?

The thing is that the fontset creation and the string drawing are relatively
independed.  The font creation procedire uses the base_font_name_list
(the pattern) for the font finding only and doesn't store it for any other
usage.  The string drawing routine gets 'preferred charsets' list from
the locale description but not from the base_font_name_list.  I would not like
to change that because
* the pattern may doesn't have any order information (it can be something like
  -adobe-helvetica-*) or this information can be incomplete.  Hence is isn't
  clear how to merge the orders got from the pattern and from the locale
  description.
* some locales (ja_JP, ko_KR, zh_TW, etc.) already have own description files
  where the 'preferred order' is already defined.  If apllications begin to
  ignore that order and use the order from the pattern it will be considered
  as unexpected and unwanted behavior.

 Example 2. Same as above, Xutf8 routines. These routines seem to prefer
 iso8859-1 encoding and indeed a fixed-width font with that encoding is 
 in the fontset. But the user wanted helvetica!

It can be a bug.  But I don't know all conditions.  Can you give some example
code or just tell what pattern and what locale were used in that case. 
 
 It seems Xutf8 routines select fonts from the fontset by a fixed list of
 encodings, filtered by the locale.
Yes. 

 Again, font select based on character set guess is wrong.
May be.
 
 Example 3. Same as above, remove iso10646-1 helvetica from system.
 Situtation is reversed. Xmb routines use a fixed-width font, Xutf8
 routines helvetica.

Give more details, please.  At least the pattern and the locale under which
it happens.

 Problem 2
 
 All the drawing routines also have the problem of stopping processing the
 string when an encoding is selected for which there is no font in the 
 fontset, even if some font with other encoding might implement the wanted
 glyph.

Yes.  As I tried to explain it's the i18n module design.  In iso-2022 based
scheme it is impossible that in a single locale some font with other encoding
might implement the wanted glyph.

 Once again, font selection should be based on the available fonts,
 not the first matching encoding and there's no need to skip the rest of 
 the string even if a font can't be found.

It requires deeper 

Re: usb keyboard

2003-11-18 Thread Ivan Pascal
 I'd like to add some support to X for my usb keyboard's extra multimedia
 keys (if it's not already there). It sends some keycodes to the linux
 kernel that can't be passed via the kernel's raw mode. From my research,
 it seems to me that the solution is to give X the ability to use the new
 linux input event interface (please correct me if I'm wrong). I'd like to
 add some support to do this, but I'm not quite sure where to start. Where
 would the best place be to add code for this capability? Any suggestions?
 Does such functionality already exist?

http://people.debian.org/~warp/evdev/

-- 
 Ivan U. Pascal |   e-mail: [EMAIL PROTECTED]
   Administrator of |   Tomsk State University
 University Network |   Tomsk, Russia
___
Devel mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/devel


Re: [I18n] KeySyms 5 to 8, multiple character sequences

2003-11-13 Thread Ivan Pascal
  Hi,

 From what you say ... I can forget KeySyms above 4 ... as the
 XLookupString does not allow to access them ...
Yes.

 The XLOCALEDIR is also a problem ... I would need to replace the whole
 set of locales
Why?  You need to copy the locales you really use.  I don't think you use
all of over 50 locales that XFree has.

 ... would it work with XFree86 3.3.6 at all ?
Yes.

 ... it should, however, work with standalone XTerminals, shouldn't it ?
Yes.  The whole compose processing works on the client side machine and doesn't
depend on the Xserver you use.

 What remains then is the XKB ...
 I must say that I looked at it ... and it seems to be really complicated
 ... does it also work with XFree86 3.3.x ?
Yes.

 ... I can forget standalone XTerminals, can't I ?
Yes, unfortunately.

 To me, it seems that (as in the case of XLOCALEDIR) I would need to define
 my own whole set of keyboards ... again ... I could not find any simple
 solution to merge my own set of definitions with these that were
 loaded when the Xserver was started ...

Maybe a solution for you could be an utility that allow to reload xmodmap
maps quickly when you are working.  In such case you use a few four-columns
maps but can switch among them quickly using hotkeys.  And if such switcher
uses the core protocol (what xmodmap does) it works even with Xterminals.

I'd suggest you to try xruskb ( ftp://ftp.yars.free.net/pub/software/unix/X11/ )
It does the things I'm talking about.
--
 Ivan U. Pascal |   e-mail: [EMAIL PROTECTED]
   Administrator of |   Tomsk State University
 University Network |   Tomsk, Russia
___
I18n mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/i18n


Re: [I18n] KeySyms 5 to 8, multiple character sequences

2003-11-11 Thread Ivan Pascal
   Hi,

 The XFree86 is 4.2.0 on a Linux/i386 machine ...
 
 The first question is the following : (as far as I know) a key may
 generate up to eight KeySyms ... the first four elements of the list are

You are deceived, there can be up to 256 keysyms for one key. :)
But...

 split into two groups of KeySyms and are accessible as : Key /
 Shift-Key / Mode_switch-Key / Shift-Mode_switch-Key ...
 How can I access KeySyms 5 to 8 ?
 (I can easily assign them using xmodmap, but I have found no
 key-combination which would allow me to access them later ...)

Actually the server sends to an application a keycode (row number in the xmodmap
table) and a set of modifiers.  And the application itself should decide what
column should be chosen for such set of modifiers.  Most of applications use
the Xlib's function XLookupString that performes that choosing.  But according
to the core protocol specification it interprets only part of modifiers (Shift,
Mode_switch, CapsLock, NumLock) and can choose one column among first four ones.

But XFree86 has XKB (X Keyboard extension) that allows to use more columns.
Using XKB (it is switched on by default) you can design own rules ('key types'
in XKB terms) that take in account any subset of modifiers and define what
column match each combination of modifiers from that subset.  On the other hand
XKB tables have more complex structure.  All keysyms for one key are divided
to 'groups' (up to four) and 'levels' (up to 64) inside the groups.  Groups
and levels can be switched independly.  For more details see
http://pascal.tsu.ru/en/xkb/

 The second question is the following : the LANG and XLOCALEDIR decide
 which multiple character sequences are working ... they are defined in the
 appropriate Compose file ... and are accessible with help of the so
 called Multi_key ...
 How can I add/define my own multiple character sequences (merging and/or
 replacing the original ones) ?
 Note here that I do NOT want to modify the original Compose file ...

With your last condition there is no way (unless you make own locale dirs
tree and set XLOCALEDIR pointing to it).

But in the current XFree it is possible.  I wrote in this mail-list about
improvements made for Compose files and you can find that message in archives.
But you guess you need the latest beta version of XFree or wait 4.4.0 release.
-- 
 Ivan U. Pascal |   e-mail: [EMAIL PROTECTED]
   Administrator of |   Tomsk State University
 University Network |   Tomsk, Russia
___
I18n mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/i18n


CVS Update: xc (branch: trunk)

2003-10-31 Thread Ivan Pascal
CVSROOT:/home/x-cvs
Module name:xc
Changes by: [EMAIL PROTECTED]   03/10/31 06:32:05

Log message:
  540. Improve xkbcomp's key types auto-recognition (Ivan Pascal).

Modified files:
  xc/programs/xkbcomp/:
symbols.c 
  xc/programs/xkbcomp/symbols/:
us 
  xc/programs/xkbcomp/symbols/pc/:
us 
  
  Revision  ChangesPath
  3.16  +43 -10xc/programs/xkbcomp/symbols.c
  3.15  +2 -2  xc/programs/xkbcomp/symbols/us
  1.6   +2 -2  xc/programs/xkbcomp/symbols/pc/us

___
Cvs-commit mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/cvs-commit


Re: [I18n] redefining keys

2003-10-27 Thread Ivan Pascal
Hi,

 I have got a notebook with a trackpad and 2 mouse buttons. The middle button
 is emulated. I find it very inconvenient to press these 2 buttons at once.
 But I have got the 2 windows buttons I have never used with linux.
 
 Is it feasible to redefine the combination of pressing the windows key
 (reported as Super_L by xev) and mouse button 1 as mouse button 2 and
 let's say Super_L+Shift (or ALT)+mouse button 1 as mouse button3?

XKB allows emulate mouse button events by keyboard keys.  But there is not
simple way to use keys as modifiers for real mouse buttons.
There are special keysyms such as Pointer_Button1, Pointer_Button2, etc.
which can be assigned to any keyboard key.  Also the keyboard should be
switched to 'mouse keys mode'.  In this mode these keysyms prodice mouse
buttons events.

 Further I want the Menu button (reported as Menu by xev) to behave like an ALT
 key. I have noticed Alt_L reports only one keypress/keyrelease event pair if
 pressed for a longer period but Menu generates a lot of them. How to change
 that?

IIRC the keyboard driver automaticaly cancels autorepeat if a key has keysym
that is a modifier (Alt_*, Shift_*, Control_*) independly on wht physical
key it is.  You can assign Alt_L keysym to the key you want ant test it.
(You can use xmodmap for such experiments.)  Anyway if such canceling doesn't
work you can disable an autorepeat explicitly in a keyboard map.

 Can that all be achieved configuring xkb?

Yes.  But you need to edit keyboard maps manualy (or use xmodmap).  The XKB
options in XF86Config allow to choose some set of keymap pieces already
prepared.  If your wishes are unusual (they are) there are not corresponded
predefined submaps in XKB configure files and you need to write all changes
into those files yourself.
-- 
 Ivan U. Pascal |   e-mail: [EMAIL PROTECTED]
   Administrator of |   Tomsk State University
 University Network |   Tomsk, Russia
___
I18n mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/i18n


CVS Update: xc (branch: trunk)

2003-10-25 Thread Ivan Pascal
CVSROOT:/home/x-cvs
Module name:xc
Changes by: [EMAIL PROTECTED]   03/10/25 06:25:12

Log message:
  updates

Modified files:
  xc/programs/Xserver/hw/xfree86/:
CHANGELOG 
  
  Revision  ChangesPath
  3.2903+7 -1  xc/programs/Xserver/hw/xfree86/CHANGELOG

___
Cvs-commit mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/cvs-commit


Re: xkb/xlib problem key states

2003-10-22 Thread Ivan Pascal
 I'd like to add a special hotkey feature to the icewm window manager:
 If the user holds down a (function) key for a configurable 
 amount of seconds a program will be executed.
 
 Now my problem is how to query the key states in xlib.
 
 My first attempt was using XGrabKey and calculating the time 
 between KeyPress and KeyRelease events but this did not work
 because of two problems:
 . Autorepeat must not be set (bad thing)

You can disable autorepeat per key.  See man XChangeKeyboardControl

 Can anyone tell me how to query the real state of a specific key
 (Pressed/Released?) with xlib ?

man XQueryKeymap

-- 
 Ivan U. Pascal |   e-mail: [EMAIL PROTECTED]
   Administrator of |   Tomsk State University
 University Network |   Tomsk, Russia
___
Devel mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/devel


Re: [linux-usb-devel] USB keycodes Logitech Cordless Desktop Optical: (Was USB Multimedia Keyboards. Some keys do not produce keyevents)

2003-10-18 Thread Ivan Pascal
 I was under the impression that the kernel would/should at least always see 
 the raw scancode (where this is not a value between 0 and 255), whether or 
 not it could do something with it, and that X didn't use linux's keyboard 
 driver anyway, it interpreted the scancodes itself.

You are mixing the linux keyboard driver and the raw keycodes emulator.
The 'traditional' (without USB) keyboard driver does some steps:
- reads raw scan-codes from a hardware keyboard,
- converts two-byte scan-codes to one-byte 'middle raw' keycodes (this mapping
  can be changed using setkeycodes)
- maps keycodes to symbols (characters)
There are some 'forks' from those steps and any application can request what
data (from what step) it wants.  The keyboard driver can give out codes
from any of steps mentioned above:
- raw scan-codes (that the driver has read from tha hardware)
- middle raw keycodes
- characters.
The Xserver usually requests codes from lowest level, i.e. raw scan-codes
(although it can also use middle raw keycodes).  In this case we can say that
the Xserver doesn't use linux's keyboard driver because all next steps of
the linux's driver don't work there.  But note that even in this case 
the Xserver doesn't read scan-codes from the hardware directly.  Anyway it
reads the data from linux's driver but actually uses only small part of this
driver.
  |  linux's keyboard driver *|
keyboard reading, scan- to key- codes conv., keycodes to symbols conv.
\
 \--  X's keyboard driver

Since an USB keyboard produces another scan codes (and uses a different
protocol) its codes can't be read by PC keyboard driver directly.  Therefore
there is special sub-driver that reads USB codes from the USB keyboard and
converts them to PC's scan-codes and passes those codes to the PC keyborad
driver as if they were read from the PC keyboard.

  |*** linux's keyboard driver ** ...
  PC keyboard reading, scan- to key- codes conv., ...
  /  \
 |*** sub-driver *|  /\--  X's keyboard driver
USB kbd--reading, PC's scan-codes emul./

In this case X's keyboard driver anyway interracts with linux's driver and
if the USB sub-driver doesn't emulates PC's raw scan-codes (with a warning
or silently) for some keys, it passes nothing to PC's driver and the X's
driver gets nothing too.

Is it clear?
-- 
 Ivan U. Pascal |   e-mail: [EMAIL PROTECTED]
   Administrator of |   Tomsk State University
 University Network |   Tomsk, Russia
___
Devel mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/devel


CVS Update: xc (branch: trunk)

2003-10-14 Thread Ivan Pascal
CVSROOT:/home/x-cvs
Module name:xc
Changes by: [EMAIL PROTECTED]   03/10/14 06:36:31

Log message:
   500. Add 'inet' keymaps for two Logitec keyboard models (Bugzilla #762,
Eric Mountain; Bugzilla #766, Chris Hornbaker) and cleanup Logitec
keymaps (Ivan Pascal).

Modified files:
  xc/programs/xkbcomp/rules/:
xfree86 xfree86.lst xfree86.xml 
  xc/programs/xkbcomp/symbols/:
inet 
  
  Revision  ChangesPath
  3.75  +3 -3  xc/programs/xkbcomp/rules/xfree86
  3.74  +5 -11 xc/programs/xkbcomp/rules/xfree86.lst
  1.18  +8 -48 xc/programs/xkbcomp/rules/xfree86.xml
  1.34  +127 -211  xc/programs/xkbcomp/symbols/inet

___
Cvs-commit mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/cvs-commit


CVS Update: xc (branch: trunk)

2003-10-14 Thread Ivan Pascal
CVSROOT:/home/x-cvs
Module name:xc
Changes by: [EMAIL PROTECTED]   03/10/14 06:38:57

Log message:
  updates

Modified files:
  xc/programs/Xserver/hw/xfree86/:
CHANGELOG 
  
  Revision  ChangesPath
  3.2883+4 -1  xc/programs/Xserver/hw/xfree86/CHANGELOG

___
Cvs-commit mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/cvs-commit


CVS Update: xc (branch: trunk)

2003-10-14 Thread Ivan Pascal
CVSROOT:/home/x-cvs
Module name:xc
Changes by: [EMAIL PROTECTED]   03/10/14 06:41:20

Log message:
  fix typo

Modified files:
  xc/programs/xkbcomp/symbols/:
inet 
  
  Revision  ChangesPath
  1.35  +3 -3  xc/programs/xkbcomp/symbols/inet

___
Cvs-commit mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/cvs-commit


CVS Update: xc (branch: trunk)

2003-10-13 Thread Ivan Pascal
CVSROOT:/home/x-cvs
Module name:xc
Changes by: [EMAIL PROTECTED]   03/10/13 04:32:27

Log message:
   499. Add missing SetScreenSaverTimer() to ProcSetScreenSaver (Ivan Pascal).

Modified files:
  xc/programs/Xserver/dix/:
dispatch.c 
  xc/programs/Xserver/hw/xfree86/:
CHANGELOG 
  
  Revision  ChangesPath
  3.31  +3 -1  xc/programs/Xserver/dix/dispatch.c
  3.2882+2 -1  xc/programs/Xserver/hw/xfree86/CHANGELOG

___
Cvs-commit mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/cvs-commit


[I18n] Inet keys for Logitech keyboards.

2003-10-10 Thread Ivan Pascal
  Hello,

This proposal has no relation to i18n but since most of keyboard mapping issues
we discuss here I chose this list.

It happened that we have in Bugzilla two additions for the inet file (multimedia
and internet keys mapping) and both for Logitech models.  Note that we already
have 15 maps for Logitech keyboards an it is a bigest group among all inet
keymaps.

Therefore I decided to look at those map closely and try to figure out how many
actually different keymaps exist among Logitech models.  I made a summary table
for keysyms used in those maps and keycodes that can be different for different
Logitech models.  The results are:

Fortunately there is a group of common keys, the keys that have the same
keycode-keysym mapping in all models.  They are keys such as XF86Standby,
XF86Mail, XF86Search.

There are two (and only two) different mappings for Audio keys.  Also there
are at least two type of mapping for keys such as XF86Shop, XF86VendorHome,
XF86Favorites.

One model we have and both maps proposed in Bugzilla have 'Extended Function
keys'.  And some models have a wheel and related buttons.

Some keys are maped to different keysyms in different models but meaning of
such keysyms seems to me very similar.  Examples:
 * Most of models have the key I5F - XF86Standby but in one model it has
   keysym XF86PowerOff.
 * There is a key that in some models is mapped to XF86Shop keysym but in
   one model the keysym is XF86Market.
 * Some models have keysym XF86VendorHome but in some others the key with
   the same keycode has keysym XF86iTouch.

When I had replaced such keysyms with more often used ones and moved 'common'
and 'audio' parts into separate submaps I found that some model maps are
almost identical.  For example
  Logitech Cordless Desktop Pro
  // common part
key I66   {   [ XF86Go]   };
key I21   {   [ XF86VendorHome]   };

  Logitech Cordless Desktop Pro (alternate option2)
  // common part
key I66   {   [ XF86Start ]   };

  Logitech Internet Keyboard
  // common part
key I66   {   [ XF86Go]   };

And another example:

  Logitech Cordless Desktop Optical
  // common part
key I66   {   [ XF86Favorites ]   };

key I16   {   [ XF86WheelButton   ]   };
key I69   {   [ XF86Go]   };
key I6A   {   [ XF86Back  ]   };

  Logitech Cordless Freedom/Desktop Navigator
  // common part
key I66   {   [ XF86Favorites ]   };
key UP{   [ XF86ScrollUp  ]   };
key DOWN  {   [ XF86ScrollDown]   };

key I16   {   [ XF86ScrollClick   ]   };
key I69   {   [ XF86Forward   ]   };
key I6A   {   [ XF86Back  ]   };

(I think XF86WheelButton and XF86ScrollClick actually mean the same button
and XF86Go with XF86Forward are different names for the same key.)

And now I am going to merge some maps and reduce their quantity.  I realize
it can confuse users who have already configured their soft with such keysyms.
But it makes life easer for those who buy Logitech keyboard and need to choose
appropriate model name from our list.
According to Logitech site they currently offer (or at least support) more
than 20 models and I suppose there also are some old models.  We just can't
maintain a complete set of keymaps for all model names they invent.  I think
it would be better to describe those models according to their appearance.
Something like
 Internet
 Internet, with wheel
 Internet, with wheel, with extended function keys

Any objections?

-- 
 Ivan U. Pascal |   e-mail: [EMAIL PROTECTED]
   Administrator of |   Tomsk State University
 University Network |   Tomsk, Russia
___
I18n mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/i18n


CVS Update: xc (branch: trunk)

2003-10-09 Thread Ivan Pascal
CVSROOT:/home/x-cvs
Module name:xc
Changes by: [EMAIL PROTECTED]   03/10/09 04:44:00

Log message:
   496. Added USB keyboard support for Solaris/x86 platform (Bugzilla #352,
Daniel Rock).

Modified files:
  xc/programs/Xserver/hw/xfree86/:
CHANGELOG 
  xc/programs/Xserver/hw/xfree86/common/:
atKeynames.h 
  xc/programs/Xserver/hw/xfree86/os-support/sunos/:
sun_kbd.c sun_kbdEv.c 
  
  Revision  ChangesPath
  3.2877+3 -1  xc/programs/Xserver/hw/xfree86/CHANGELOG
  3.21  +17 -1 xc/programs/Xserver/hw/xfree86/common/atKeynames.h
  1.2   +4 -3  xc/programs/Xserver/hw/xfree86/os-support/sunos/sun_kbd.c
  1.6   +252 -2xc/programs/Xserver/hw/xfree86/os-support/sunos/sun_kbdEv.c

___
Cvs-commit mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/cvs-commit


CVS Update: xc (branch: trunk)

2003-10-09 Thread Ivan Pascal
CVSROOT:/home/x-cvs
Module name:xc
Changes by: [EMAIL PROTECTED]   03/10/09 04:45:27

Log message:
   496. Added USB keyboard support for Solaris/x86 platform (Bugzilla #352,
Daniel Rock).

Modified files:
  xc/programs/xkbcomp/keycodes/:
xfree86 
  xc/programs/xkbcomp/symbols/sun/:
Imakefile 
Added files:
  xc/programs/xkbcomp/symbols/sun/:
usb 
  
  Revision  ChangesPath
  3.26  +20 -4 xc/programs/xkbcomp/keycodes/xfree86
  1.6   +2 -2  xc/programs/xkbcomp/symbols/sun/Imakefile

___
Cvs-commit mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/cvs-commit


Re: USB Multimedia Keyboards. Some keys do not produce keyevents.

2003-10-06 Thread Ivan Pascal
  Hi,

  If that module doesn't know how to emulate a scn-code for some key it
  prints this message (note it is not Xserver's message but kernels one) and
  passes nothing.  In such case there is nothing to read for Xserver and you
  don't see any events in xev.
 
 However, showkey -s does show the scan codes, so is the kernel not passing it 
 along anyway? Maybe I'm not understanding the whole process, but I thought 
 that it still passes the scan code on if it doesn't know what to do with it.

It is strange.  As far as I know 'showkeys -s' uses the way of getting
scan-codes the same as Xserver uses.

I have not such keyboard and can't test it.
Could you give an example of such keys?  What codes showkeys shows?
Do you confirm that for the same key showkeys outputs some code without
any kernel messages but xev shows nothing and the kernel message you wrote
about appears somewhere?

-- 
 Ivan U. Pascal |   e-mail: [EMAIL PROTECTED]
   Administrator of |   Tomsk State University
 University Network |   Tomsk, Russia
___
Devel mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/devel


Re: [I18n] us_intl + Russian in 4.3.0

2003-10-06 Thread Ivan Pascal
   Hi,

  Sorry.  I forgot that us_intl is 'old style' keymap.  For such maps 
  you need
  grp:*_switch options instead of lv3:*_switch.  I.e. if you change
  lv3:lwin_switch to grp:lwin_switch you will get access to extra symbols
  of us_intl.
 
 OK, I did it, but it's almost a same story. I can get a larger number 
 of extended Latin characters, but still no extra symbols available. I 
 nee eurosign, (AltGr+5), copyright (AltGr+c), French quotation marks 
 ( , respectively AltGr+[ and ]), german ss, superscript o, a, 
 1, 2, 3 and so on.

I am not a maintainer of 'us_intl' map itself.
It it differs from MS Windows Intl keymap it just means nobody complains
of its incompleteness yet.  You can write a bugreport on bugs.xfree86.org.

 I understand the problem better now, but I don't need all those 
 characters and I miss some I use every day. Now I need to insert a 
 special symbol every time I want to put a price in euros, i.e. dozens 
 times per day. Not very convenient.

I suggested you to update the xkb stuff from CVS.  At least EuroSign presents
in the current version (it was added after 4.3.0 release).
 
 Because of all those problems with Compose rules, I think there should 
 exist many XkbVariants for different national character assignments. 
 For example, if I want to have my usual US international + Russian 
 setup AND the possibility to use AltGr mode to have all non-Russian 
 cyrillic characters as all Mac users do, I should have the possibility 
 to edit my XF86Config-4 like this:
 
 Option XkbLayout us,ru
 Option XkbVariant 
 (withdeadkeys+eurointernational),(winkeys+fullcyrillic)
 Option XkbOptions grp:alt_shift_toggle,lv3_AltGr,compose:menu

Yes.  If you (or someone else) think some variant of any existent layout
would be useful you can make a report.  Even if you have not enough skills
to make a patch you can write some description where and what symbols
should be added to an existent keymap.

BTW I made a 'multi_layout compatible' variant of us_intl map but, of course,
it is not more complete than the map you have currently.
-- 
 Ivan U. Pascal |   e-mail: [EMAIL PROTECTED]
   Administrator of |   Tomsk State University
 University Network |   Tomsk, Russia
___
I18n mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/i18n


CVS Update: xc (branch: trunk)

2003-10-04 Thread Ivan Pascal
CVSROOT:/home/x-cvs
Module name:xc
Changes by: [EMAIL PROTECTED]   03/10/04 03:25:14

Log message:
   476. Fixes and updates for XKB keyboard maps:
- Add 'United Kingdom w/deadkeys' gb(intl) keymap (Bugzilla #744,
  Phil Jones).
- Add multi_layout compliant 'us_intl' keymap (Ivan Pascal).
- Fix 'macintosh' geometry file (Bugzilla #753, Simon Vallet).

Modified files:
  xc/programs/xkbcomp/geometry/:
macintosh 
  xc/programs/xkbcomp/rules/:
xfree86 xfree86.xml 
  xc/programs/xkbcomp/symbols/:
gb 
  xc/programs/xkbcomp/symbols/pc/:
Imakefile gb 
Added files:
  xc/programs/xkbcomp/symbols/pc/:
us_intl 
  
  Revision  ChangesPath
  1.4   +60 -41xc/programs/xkbcomp/geometry/macintosh
  3.74  +1 -2  xc/programs/xkbcomp/rules/xfree86
  1.17  +8 -1  xc/programs/xkbcomp/rules/xfree86.xml
  3.6   +37 -1 xc/programs/xkbcomp/symbols/gb
  1.13  +2 -2  xc/programs/xkbcomp/symbols/pc/Imakefile
  1.6   +33 -1 xc/programs/xkbcomp/symbols/pc/gb

___
Cvs-commit mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/cvs-commit


CVS Update: xc (branch: trunk)

2003-10-04 Thread Ivan Pascal
CVSROOT:/home/x-cvs
Module name:xc
Changes by: [EMAIL PROTECTED]   03/10/04 03:26:03

Log message:
  updates

Modified files:
  xc/programs/Xserver/hw/xfree86/:
CHANGELOG 
  
  Revision  ChangesPath
  3.2870+6 -1  xc/programs/Xserver/hw/xfree86/CHANGELOG

___
Cvs-commit mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/cvs-commit


Re: [I18n] us_intl + Russian in 4.3.0

2003-10-03 Thread Ivan Pascal
  Hi,

 OK, I configured as follows:
 
 us_intl
 lv3:lwin_switch,compose:menu
 
 So, I use only US_intl
 
 Dead keys work, but we still have the problem with c cedilla. I must 
 use Compose+,+c to get it. The problem is that even if I press Compose 
 key I get often the plain vanilla ,. I need to carefully press 
 Compose, wait a second, press , then c.
 
 On the other side, AltGr just doesn't work. I get the usual characters, 
 not some extra. Impossible to get eurosign or something like this.

Sorry.  I forgot that us_intl is 'old style' keymap.  For such maps you need
grp:*_switch options instead of lv3:*_switch.  I.e. if you change
lv3:lwin_switch to grp:lwin_switch you will get access to extra symbols
of us_intl.

BTW a complete (or almost complete) list of possible options and layouts
you can find in X11R6/lib/X11/xkb/rules/xfree86.lst .
Unfortunately the structure of this file is not suitable for xkb variants.
Therefore for variants you need to read xfree86.xml file in the same directory.

-- 
 Ivan U. Pascal |   e-mail: [EMAIL PROTECTED]
   Administrator of |   Tomsk State University
 University Network |   Tomsk, Russia
___
I18n mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/i18n


Re: Button press emulation

2003-10-02 Thread Ivan Pascal
  Hi,

 hi all,
 I'm working on a virtual keyboard for disabled people and I have some 
 problems with button press emulation.
 
 I use XTestFakeButtonEvent to simulate button press events.
 Every virtual key has a keysym and using XKeysymToKeycode I translate 
 virtual key Keysyms into  keycodes.
 I have some problems with key modifiers.
 I'm using and italian keyboard and some keys use the AltGR modifier that 
 is mapped as Mod5.
 XGetKeyboardMapping function returns 4 keysyms per keydef corresponding 
 to Shift, Lock, Control and Mod1 modifiers.

Have you ever read X protocol specification?
According to the core protocol the keysyms XGetKeyboardMapping returns match
states:
 none modifiers
 Shift
 the modifier bound to the key with Mode_switch keysym (Mode_switch modifier)
 'Mode_switch modifier' + Shift

Unfortunately in XKB (X KeyBoard extension) environment this dependence becomes
more complex.  Each key can have a separate rule for mapping a modifiers
combination to the column number.

In simplest case you can just find what key has Mode_switch keysym (it is
AltGr usualy) and find what modifier is bound to that key (Mod5 in your case).
Thus in your case the columns in XGetKeyboardMapping result are
  none
  Shift
  Mod5
  Mod5+Shift

-- 
 Ivan U. Pascal |   e-mail: [EMAIL PROTECTED]
   Administrator of |   Tomsk State University
 University Network |   Tomsk, Russia
___
Devel mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/devel


Re: USB Multimedia Keyboards. Some keys do not produce keyevents.

2003-09-29 Thread Ivan Pascal
   Hello,

 I have project called lineak http://lineak.sourceforge.net which is a user 
 configurable daemon to run commands when a user presses a multimedia key on 
 their keyboard. However, some people who have USB keyboards, have a problem 
 that some keys do not get keycodes, or generate events. In fact, xev and the 
 like just ignore them. Under Linux, errors get written to the messages file 
 about unknow keys, eg.
 
  Kernel: keyboard.c: can't emulate rawmode for keycode xxx

The keyboard driver was initially designed for AT keyboard and its scan-codes.
The module that deals with devices that generates different scan-codes
(such as USB HID) emulates AT's scan codes and passes them to the 'common'
driver where those codes can be read by Xserver or converted to character
codes (if the driver operates in console mode).

If that module doesn't know how to emulate a scn-code for some key it prints
this message (note it is not Xserver's message but kernels one) and passes
nothing.  In such case there is nothing to read for Xserver and you don't
see any events in xev.

 I've contacted the linux keyboard driver developer but he mentioned that this 
 is an X problem. So, here I am.

X's problem is that it gets nothing from the kernel keyboard driver. :)
How it can be fixed in the Xserver?

 How should we proceed with addressing this problem? It seems the easiest thing 
 would be to make X configurable with regards to which scancodes get mapped to 
 which keycodes.  Would this be possible or even desirable?

Xserver recognizes lot of scan-codes and although their mapping to X's keycodes
is not configurable it is not a problem.  The problem is that Xserver has
nothing for mapping.

-- 
 Ivan U. Pascal |   e-mail: [EMAIL PROTECTED]
   Administrator of |   Tomsk State University
 University Network |   Tomsk, Russia
___
Devel mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/devel


CVS Update: xc (branch: trunk)

2003-09-27 Thread Ivan Pascal
CVSROOT:/home/x-cvs
Module name:xc
Changes by: [EMAIL PROTECTED]   03/09/27 06:31:59

Log message:
   456. Fixes and updates for XKB keyboard maps:
- Update xkb geometry files (Alexander Pohoyda).
- Fix German-Romanian maps (Manfred Pohler).
- Cleanup Hungarian layout (Bugzilla #730, Egmont Koblinger).

Modified files:
  xc/programs/xkbcomp/geometry/:
chicony hp pc 
  xc/programs/xkbcomp/geometry/ibm/:
thinkpad 
  xc/programs/xkbcomp/rules/:
xfree86.xml 
  xc/programs/xkbcomp/symbols/:
de hu hu_qwerty ro 
  xc/programs/xkbcomp/symbols/pc/:
de ro 
  
  Revision  ChangesPath
  1.2   +3 -1  xc/programs/xkbcomp/geometry/chicony
  1.9   +14 -17xc/programs/xkbcomp/geometry/hp
  3.15  +2 -1  xc/programs/xkbcomp/geometry/pc
  1.4   +11 -17xc/programs/xkbcomp/geometry/ibm/thinkpad
  1.16  +28 -101   xc/programs/xkbcomp/rules/xfree86.xml
  3.15  +2 -2  xc/programs/xkbcomp/symbols/de
  1.8   +21 -163   xc/programs/xkbcomp/symbols/hu
  1.2   +1 -1  xc/programs/xkbcomp/symbols/hu_qwerty
  3.9   +3 -4  xc/programs/xkbcomp/symbols/ro
  1.7   +2 -2  xc/programs/xkbcomp/symbols/pc/de
  1.7   +3 -3  xc/programs/xkbcomp/symbols/pc/ro

___
Cvs-commit mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/cvs-commit


CVS Update: xc (branch: trunk)

2003-09-27 Thread Ivan Pascal
CVSROOT:/home/x-cvs
Module name:xc
Changes by: [EMAIL PROTECTED]   03/09/27 06:35:50

Log message:
  updates

Modified files:
  xc/programs/Xserver/hw/xfree86/:
CHANGELOG 
  
  Revision  ChangesPath
  3.2867+5 -1  xc/programs/Xserver/hw/xfree86/CHANGELOG

___
Cvs-commit mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/cvs-commit


Re: Wrong order of a timeouts processing in WaitForSomething.

2003-09-24 Thread Ivan Pascal

Keith Packard wrote:
 Yes, it looks like you're correct -- every example I could find would 
 ensure that pending device input was marked in checkForInput.  There are 
 some odd examples of this however, which are somewhat instructive to 
 examine:
 
  a)   The original A/UX server had checkForInput marked from the SIGIO 
   handler and read device events in ProcessInputEvents.

If WaitForSomething returns after the checkForInput check allowing
ProcessInputEvents be executed before the timers check, this case changes
nothing.  It doesn't matter when the events reading was done, before the
ProcessInputEvents or during its execution.

BTW I forgot to mention one other advantage of checkForInput.  It reflects
the events queued from SIGIO handlers but the devicesReadable check misses
such events.

  b)   Many old servers never set checkForInput.  The default values
   point at two different values, so ProcessInput events would be 
   called each time around the Dispatch loop.

Unfortunately, if we assume that some events can be queued from SIGIO handlers
this case is hopeless completely.
With conditions:
- timers should not be processed if there are input events queued but not
  processed by ProcessInputEvents,
- checkForInput can't be used because it always true and with such check
  the timers will never be processed,
- devicesReadable check doesn't reflect input events queued in SIGIO handlers
  and can't be used because it doesn't fulfil the first condition
the problem becomes unsolvable.

  Is it possible to check changes in the file descriptors set instead of just
  the fact that some timer was processed?
 
 That would only be necessary if performance across timer execution were a 
 critical factor -- essentially what we're forcing by returning 0 is 
 another call to select, which will do all of the file descriptor checking 
 necessary.  It seems simpler to let the existing code handle this case.

OK.  I made the next (and hope it's final) version.
In both branches (after the select) the subroutine returns if at least one
time is expired.

-- 
 Ivan U. Pascal |   e-mail: [EMAIL PROTECTED]
   Administrator of |   Tomsk State University
 University Network |   Tomsk, Russia
--- xc/programs/Xserver/os/WaitFor.c.orig   Wed Sep 17 17:24:12 2003
+++ xc/programs/Xserver/os/WaitFor.cWed Sep 24 19:15:53 2003
@@ -131,17 +131,12 @@
  * pClientsReady is an array to store ready client-index values into.
  */
 
-static INT32 timeTilFrob = 0;  /* while screen saving */
-
 int
 WaitForSomething(int *pClientsReady)
 {
 int i;
 struct timeval waittime, *wt;
 INT32 timeout = 0;
-#ifdef DPMSExtension
-INT32 standbyTimeout = 0, suspendTimeout = 0, offTimeout = 0;
-#endif
 fd_set clientsReadable;
 fd_set clientsWritable;
 int curclient;
@@ -188,138 +183,17 @@
else
{
 #endif
-#ifdef DPMSExtension
-   if (ScreenSaverTime  0 || DPMSEnabled || timers)
-#else
-   if (ScreenSaverTime  0 || timers)
-#endif
-   now = GetTimeInMillis();
-   wt = NULL;
+wt = NULL;
if (timers)
-   {
-   while (timers  (int) (timers-expires - now) = 0)
-   DoTimer(timers, now, timers);
-   if (timers)
-   {
-   timeout = timers-expires - now;
-   waittime.tv_sec = timeout / MILLI_PER_SECOND;
-   waittime.tv_usec = (timeout % MILLI_PER_SECOND) *
-   (100 / MILLI_PER_SECOND);
-   wt = waittime;
-   }
-   }
-   if (ScreenSaverTime  0
-#ifdef DPMSExtension
-   || (DPMSEnabled 
-(DPMSStandbyTime  0 || DPMSSuspendTime  0 || DPMSOffTime  0))
-#endif
-   ) {
-#ifdef DPMSExtension
-   if (ScreenSaverTime  0)
-#endif
-   timeout = (ScreenSaverTime -
-  (now - lastDeviceEventTime.milliseconds));
-#ifdef DPMSExtension
-   if (DPMSStandbyTime  0)
-   standbyTimeout = (DPMSStandbyTime -
- (now - lastDeviceEventTime.milliseconds));
-   if (DPMSSuspendTime  0)
-   suspendTimeout = (DPMSSuspendTime -
- (now - lastDeviceEventTime.milliseconds));
-   if (DPMSOffTime  0)
-   offTimeout = (DPMSOffTime -
- (now - lastDeviceEventTime.milliseconds));
-#endif /* DPMSExtension */
-
-   if (
-   timeout = 0
-#ifdef DPMSExtension
- ScreenSaverTime  0
-#endif /* DPMSExtension */
-   ) {
-   INT32 timeSinceSave;
-
-   timeSinceSave = -timeout;
-   if (timeSinceSave = timeTilFrob  timeTilFrob = 0)
-   {
-   ResetOsBuffers(); /* not ideal, but better than nothing */
-   SaveScreens(SCREEN_SAVER_ON, ScreenSaverActive);
-#ifdef DPMSExtension
-   if 

Re: Wrong order of a timeouts processing in WaitForSomething.

2003-09-23 Thread Ivan Pascal
Egbert Eich wrote:
   The XKB code could call ProcessInputEvents just above the check for a 
   pending repeat key; that would ensure that any input queued either in the 
   X server or the kernel would get processed before repeat status was 
   checked.
   
 Hm, doesn't ProcessInputEvents() only process the events already in
 the queue on the server? From looking at the code it doesn't seem
 to do a read() to obtain events that have not been read from the
 kernel - but that's what we'd need.

Right.  ProcessInputEvents doesn't read events from the kernel.
Such check in the autorepeat callback function might make sense only being used
with a SIGIO driven input.

In any case, the current spot isn't sufficient as the timers 
   will never be executed if the server is constantly receiving application 
   input, so at least that needs to be fixed.
   
 
 One could move the timer handlers past the end of the 
 if (i = 0) { } else { } statements. However with input queued
 (ie when the mouse is constantly moved) the timers don't get
 called either.

Can the mouse movement really make such frequent stream of events?
BTW for timers that need the devices input checked first (screensaver, DPMS,
keys autorepeat) it is not a problem.  Anyway they do something useful when
input evens absent some time.  But for other timers it can be important.
If such danger really exists it argues for a making two kinds of timers and
distinguishing them.

-- 
 Ivan U. Pascal |   e-mail: [EMAIL PROTECTED]
   Administrator of |   Tomsk State University
 University Network |   Tomsk, Russia
___
Devel mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/devel


Re: Wrong order of a timeouts processing in WaitForSomething.

2003-09-23 Thread Ivan Pascal
 Around 21 o'clock on Sep 22, Ivan Pascal wrote:

  Also I added a flag for timers TimerNeedsCheckInput.  The timers without this
  flag are processed before the select all others are delaied until the second
  timers check.  (The second check doesn't distinguish those timers.)
 
 I think that's overkill; the simple expediency of returning 0 from 
 WaitForSomething after a timer has been processed will make sure that any 
 effects of the timer are reflected at every scheduling stage.
 
  WakeupHandler(i, (pointer)LastSelectMask);
  +ProcessInputEvents();
 
 Calling ProcessInputEvents from WaitForSomething is not appropriate; 
 input events are already processed by dispatch at the appropriate time.  

I agree.  It was a silly kludge.

 Instead of attempting to patch the code to kludge things into working, 
 let's try to nail down precisely how things should work and then rewrite 
 the code to match that.  Here's a short list of 'requirements':

Thank you.  Offering my patch I want to hear an opinion of those who know
well how this loop works.

  1)   DoTimer called only when all pending input processed.
 
   a)  After select
   b)  After checkForInput tested
Agree.

   c)  After devicesReadable is checked
But here I don't understand why this check is needed.
If the select returns some readable devices fd's they all should be read
in Wakeup handlers immediately after the select and this reading should be
reflected in checkForInput.  Moreover it can happen that a driver reads events
from the kernel but doesn't put any events into the servers queue (for example
the keyboard driver that processes VT- or VMode-swithing internally).

  2)   DoTimer called even if server swamped with client input
 
   a)  Must check timers even when select returns positive
Agree.

  3)   DoTimer effects on file descriptors respected (not that any known
   instances exist)
 
   a)  Return 0 after any timers processed

Is it possible to check changes in the file descriptors set instead of just
the fact that some timer was processed?
I imagine something like:
  save AllSockets
  do timers
  if XFD_ANYSET in (saved_AllSockets XOR AllSockets)
 return 0;

Or what do you mean?

Also I think it is not necessary to return in the branch 'the select returned 0'
because in this case there are not any action with sockets and WaitForSomething
returns in loop back to the select.

  4)   Minimal system calls in normal case
 
   a)  Call GetTimeInMillis() as few times as possible
   b)  Don't call ProcessInputEvents from WaitForSomething
Agree.

The next version of the patch attached (WaitFor.c only).
I didn't make the 'return after the timers processing' but just put a comment
where I think it should be done.

-- 
 Ivan U. Pascal |   e-mail: [EMAIL PROTECTED]
   Administrator of |   Tomsk State University
 University Network |   Tomsk, Russia
___
Devel mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/devel


Re: Wrong order of a timeouts processing in WaitForSomething.

2003-09-22 Thread Ivan Pascal
  Hello,

Egbert Eich wrote:
   One use for timeouts is to handle external network events, such as font 
   server reconnect or XDMCP messages.  In those cases, the timeout routine 
   can modify which sockets will be needed in the select mask, hence the 
   desire for the timeout routine to execute before the select (and various 
   BlockHandler) routines are invoked.  When the timeout routine fires only 
   after select returns, the server will go through a complete scheduling 
   interval before the BlockHandler is invoked.
   
 
 So what would be the way out? I suppose one could use a wakeup handler
 instead. This however would only work if the wakeup handler for keyboard 
 input was called before the xkb timer handler. The latencies of
 other handlers that are called before the xkb handler could also
 cause the timer to expire with the key release unnoticed.
 
 The only way to ensure that a possible release event is detected is
 to read the keyboard in the xkb callback handler to check for 
 pending release events. However I'm afraid xkb simply doesn't work 
 that way.
 
 Another solution may be a a SIGIO driven keyboard input.

Except the solution I offered I considered as possible solutions:
- a check for input directly in the autorepeat timer callback function,
- a using of additional wakeup handler,
- a using SIGIO driven input,
- an additional flag for timers to distinguish them in the first check
  in WaitForSomething.

1. Check for input in the callback function.
I don't like it because it works on the level that is far from an interface
with a kernel.  In our case a release event is not even read from a kernel
driver hence the callback routine should somehow start this reading.  But it
deals with a dix level device structure _DeviceIntRec.  That structure has
a pointer to an input device driver but the driver itself is opaque for this
level.  Moreover in the case of a built-in keyboard driver the DeviceIntRecord
even has not such pointer and so has not any hooks to initiate a reading.
Also we need to be sure that a file to the kernel driver is in NONBLOCK mode.
In most cases it is but I'm not sure it is always.
And finaly, the state when unneeded events are generated happens very seldom
but to avoid it the callback routine has to call a read syscall every time.

2. An additional wakeup handler.
Frankly speaking I didn't consider it deeply because it seemed to me unnecessary
complex.  What happens if there are not real key events and the autorepeat
event is really wanted?  The timer check before the select doesn't emit
an event but only puts a task for a wakeup handler that will be executed after
the select.  But since the timer is already expired, WaitForSomething thinks
this timeout already consumed and makes the select wait until a next timeout
expire or any other event happens.  It is incorrect too.
Therefore in this way we need: change a timeout figuring out, add a wakeup
handler itself (and we need to be sure it stands in queue after input devices
reading), insert a ProcessInputEvents() somewhere between handlers processing
and so on.  And anyway WaitForSomething has to be changed.

3. SIGIO driven input.
It is almost ideal.  Frankly speaking I didn't guess how to solve the problem
that a SIGIO handler only reads input devices but doesn't do a complete
event processing.  But now after reading replays to my message I see that it
is quite simple.  The callback routine can call ProcessInputEvents.  It is
much simpler than to make a driver read events from a kernel and doesn't
consume much time if a queue is empty.
But there is another issue.  As far as I understand not all target platforms
now support SIGIO input.  Therefore it will be a solution for Linux and BSD
only. Is not it?

4. Distinguishing the timers that can be processed before the select and
the timers that should not.

Although nobody mentioned it I still think it could be a solution.  I mean
we can add additional flag to a timer (or more if it is needed).
BTW a subroutine TimerSet already has a 'flags' argument but doesn't save it
for a future use.  On the other hand it means we don't need to change all
TimeSet calls but only those that really need to be checked after an input
devices reading.
The first timers check in WaitForSomething should check this flag in a timer
and skip such timers.

-- 
 Ivan U. Pascal |   e-mail: [EMAIL PROTECTED]
   Administrator of |   Tomsk State University
 University Network |   Tomsk, Russia
___
Devel mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/devel


Re: Wrong order of a timeouts processing in WaitForSomething.

2003-09-22 Thread Ivan Pascal

I made new version of the patch.
The issue Keith pointed is fixed.

Also I added a flag for timers TimerNeedsCheckInput.  The timers without this
flag are processed before the select all others are delaied until the second
timers check.  (The second check doesn't distinguish those timers.)

Also I found another issue.  The thing is that the procedure xf86Wakeup that
reads input devices processes only one device in a turn because, as it is said
in comments, it Must break [loop] here because more than one device may share
the same file descriptor.  Now the built-in keyboard driver is called
separately before the loop and all works well.  But if a keyboard is served
by a module driver and there are more than one devices with 'ready for reading'
events there is not guaranty that all input devices events will be read before
the timers checking.

I made a separate patch for xf86Wakeup (in a separate attachment).
Please review.

-- 
 Ivan U. Pascal |   e-mail: [EMAIL PROTECTED]
   Administrator of |   Tomsk State University
 University Network |   Tomsk, Russia
--- xc/programs/Xserver/os/WaitFor.c.orig   Wed Sep 17 17:24:12 2003
+++ xc/programs/Xserver/os/WaitFor.cMon Sep 22 19:34:55 2003
@@ -109,6 +109,7 @@
 CARD32 expires;
 OsTimerCallbackcallback;
 pointerarg;
+intflags;
 };
 
 static void DoTimer(OsTimerPtr timer, CARD32 now, OsTimerPtr *prev);
@@ -131,17 +132,12 @@
  * pClientsReady is an array to store ready client-index values into.
  */
 
-static INT32 timeTilFrob = 0;  /* while screen saving */
-
 int
 WaitForSomething(int *pClientsReady)
 {
 int i;
 struct timeval waittime, *wt;
 INT32 timeout = 0;
-#ifdef DPMSExtension
-INT32 standbyTimeout = 0, suspendTimeout = 0, offTimeout = 0;
-#endif
 fd_set clientsReadable;
 fd_set clientsWritable;
 int curclient;
@@ -188,138 +184,37 @@
else
{
 #endif
-#ifdef DPMSExtension
-   if (ScreenSaverTime  0 || DPMSEnabled || timers)
-#else
-   if (ScreenSaverTime  0 || timers)
-#endif
-   now = GetTimeInMillis();
-   wt = NULL;
+wt = NULL;
if (timers)
-   {
-   while (timers  (int) (timers-expires - now) = 0)
-   DoTimer(timers, now, timers);
-   if (timers)
-   {
-   timeout = timers-expires - now;
-   waittime.tv_sec = timeout / MILLI_PER_SECOND;
-   waittime.tv_usec = (timeout % MILLI_PER_SECOND) *
-   (100 / MILLI_PER_SECOND);
-   wt = waittime;
-   }
-   }
-   if (ScreenSaverTime  0
-#ifdef DPMSExtension
-   || (DPMSEnabled 
-(DPMSStandbyTime  0 || DPMSSuspendTime  0 || DPMSOffTime  0))
-#endif
-   ) {
-#ifdef DPMSExtension
-   if (ScreenSaverTime  0)
-#endif
-   timeout = (ScreenSaverTime -
-  (now - lastDeviceEventTime.milliseconds));
-#ifdef DPMSExtension
-   if (DPMSStandbyTime  0)
-   standbyTimeout = (DPMSStandbyTime -
- (now - lastDeviceEventTime.milliseconds));
-   if (DPMSSuspendTime  0)
-   suspendTimeout = (DPMSSuspendTime -
- (now - lastDeviceEventTime.milliseconds));
-   if (DPMSOffTime  0)
-   offTimeout = (DPMSOffTime -
- (now - lastDeviceEventTime.milliseconds));
-#endif /* DPMSExtension */
-
-   if (
-   timeout = 0
-#ifdef DPMSExtension
- ScreenSaverTime  0
-#endif /* DPMSExtension */
-   ) {
-   INT32 timeSinceSave;
-
-   timeSinceSave = -timeout;
-   if (timeSinceSave = timeTilFrob  timeTilFrob = 0)
-   {
-   ResetOsBuffers(); /* not ideal, but better than nothing */
-   SaveScreens(SCREEN_SAVER_ON, ScreenSaverActive);
-#ifdef DPMSExtension
-   if (ScreenSaverInterval  0 
-   DPMSPowerLevel == DPMSModeOn)
-#else
-   if (ScreenSaverInterval)
-#endif /* DPMSExtension */
-   /* round up to the next ScreenSaverInterval */
-   timeTilFrob = ScreenSaverInterval *
-   ((timeSinceSave + ScreenSaverInterval) /
-   ScreenSaverInterval);
-   else
-   timeTilFrob = -1;
-   }
-   timeout = timeTilFrob - timeSinceSave;
-   }
-   else
-   {
-   if (ScreenSaverTime  0  timeout  ScreenSaverTime)
-   timeout = ScreenSaverTime;
-   timeTilFrob = 0;
-   }
-#ifdef DPMSExtension
-   if (DPMSEnabled)
-   {
-   if (standbyTimeout  0 
-(timeout = 0 || timeout  

CVS Update: xc (branch: trunk)

2003-09-08 Thread Ivan Pascal
CVSROOT:/home/x-cvs
Module name:xc
Changes by: [EMAIL PROTECTED]   03/09/08 04:22:19

Log message:
  Reverese the previous patch that cause compiling problems.

Modified files:
  xc/programs/Xserver/xkb/:
ddxLoad.c xkbInit.c 
  
  Revision  ChangesPath
  3.33  +3 -5  xc/programs/Xserver/xkb/ddxLoad.c
  3.30  +9 -14 xc/programs/Xserver/xkb/xkbInit.c

___
Cvs-commit mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/cvs-commit


CVS Update: xc (branch: trunk)

2003-09-08 Thread Ivan Pascal
CVSROOT:/home/x-cvs
Module name:xc
Changes by: [EMAIL PROTECTED]   03/09/08 06:13:56

Log message:
  updates

Modified files:
  xc/programs/Xserver/hw/xfree86/:
CHANGELOG 
  
  Revision  ChangesPath
  3.2847+9 -1  xc/programs/Xserver/hw/xfree86/CHANGELOG

___
Cvs-commit mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/cvs-commit


CVS Update: xc (branch: trunk)

2003-09-06 Thread Ivan Pascal
CVSROOT:/home/x-cvs
Module name:xc
Changes by: [EMAIL PROTECTED]   03/09/06 07:06:34

Log message:
   424. Improvement of Xlib's keysym compose module:
- Allow to figure out a mulibyte string if it is ommited in Compose file.
- Add 'include' instruction with some substitutions.
- Add a searching of Compose file as a value of XCOMPOSEFILE environment
  variable and as a $HOME/.XCompose file. (Ivan Pascal).

Modified files:
  xc/lib/X11/:
Ximint.h imLcIm.c imLcPrs.c 
  
  Revision  ChangesPath
  3.13  +2 -2  xc/lib/X11/Ximint.h
  1.12  +39 -13xc/lib/X11/imLcIm.c
  1.10  +155 -22   xc/lib/X11/imLcPrs.c

___
Cvs-commit mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/cvs-commit


CVS Update: xc (branch: trunk)

2003-09-06 Thread Ivan Pascal
CVSROOT:/home/x-cvs
Module name:xc
Changes by: [EMAIL PROTECTED]   03/09/06 07:08:46

Log message:
  updates

Modified files:
  xc/programs/Xserver/hw/xfree86/:
CHANGELOG 
  
  Revision  ChangesPath
  3.2845+8 -1  xc/programs/Xserver/hw/xfree86/CHANGELOG

___
Cvs-commit mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/cvs-commit


CVS Update: xc (branch: trunk)

2003-09-04 Thread Ivan Pascal
CVSROOT:/home/x-cvs
Module name:xc
Changes by: [EMAIL PROTECTED]   03/09/04 06:56:48

Log message:
   420. Fixes and updates for XKB keyboard maps:
- Fix unneeded BKSL redefinition in Ukrainian 'winkeys' keyboard map
  (Andriy Rysin).
- Fix some keycodes for jp106 keyboard model (Bugzilla #657,
  Stephen J. Turnbull).
- Update xfree86.xml registry file (Andriy Rysin, Sergey V. Oudaltsov).

Modified files:
  xc/programs/xkbcomp/keycodes/:
xfree86 
  xc/programs/xkbcomp/rules/:
xfree86 xfree86.xml 
  xc/programs/xkbcomp/symbols/:
ua 
  xc/programs/xkbcomp/symbols/pc/:
ua 
  
  Revision  ChangesPath
  3.25  +5 -9  xc/programs/xkbcomp/keycodes/xfree86
  3.70  +2 -1  xc/programs/xkbcomp/rules/xfree86
  1.12  +122 -8xc/programs/xkbcomp/rules/xfree86.xml
  1.5   +2 -4  xc/programs/xkbcomp/symbols/ua
  1.5   +2 -3  xc/programs/xkbcomp/symbols/pc/ua

___
Cvs-commit mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/cvs-commit


CVS Update: xc (branch: trunk)

2003-09-04 Thread Ivan Pascal
CVSROOT:/home/x-cvs
Module name:xc
Changes by: [EMAIL PROTECTED]   03/09/04 06:58:14

Log message:
  updates

Modified files:
  xc/programs/Xserver/hw/xfree86/:
CHANGELOG 
  
  Revision  ChangesPath
  3.2842+7 -1  xc/programs/Xserver/hw/xfree86/CHANGELOG

___
Cvs-commit mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/cvs-commit


Re: [I18n] Compose files.

2003-09-03 Thread Ivan Pascal
   Hi,

 So currently, the Xlib keyboard customization (including compose) all exists 
 on the client side, but the XKB customization (not including compose) exists 
 more on the server side. You want to allow end-users (sitting in front of the 
 Xserver) to be able to configure the compose on the client side. You end up 
 with a similar problem as the Xkb stuff described above, where the client 
 side only has a filename for it's key to the database, but limited ability to 
 send real data.

No, those problems are a bit different.
First of a client side *has* ability to load a file (as a compiled keymap)
into a server.
But most important thing is that when one client has chosen right name(s)
and sent them to a server and server has found and loaded those files then
all clients just get the map from the server independently on where they are
running.  In this case the server distributes a complete map that is enough
for an applications work.

But if the server distributes a *name* of Compose file only (and each client
has to find and read this file from its local directory tree) there is not
guaranty that each client machine has such file.

 However, Locale Independance sounds like it would be fairly easy to implement 
 and have the added benefit of removing one of the keyboard configuration 
 methods.

What do you mean with one of the keyboard configuration methods?

 I imagine that would reduce the frustration of users. However, I 
 don't totally understand your explaination here:
 
  If the result of a compose rule ia a keysym only Xlibhas to convert it to a
  string according to the current locale in the way used for usual key
  press/release events.  It this case one compose files can be used for
  different locales and depends on a keybord map only.
 
 It seems like you're saying that instead of using a locale, the compose config 
 would be chosen as a result of the keymap chosen. If that's true, that sounds 
 like a great solution to the Locale problem.

I didn't mean the compose file will be chosen automaticaly with the keymap
choice.  I just meant the compose file choice *depends* on keyboard layout
choice.  And a user will have the same compose rules for different locales
(it's quite real situation if one uses C locale for some applications and
en_US.UTF-8 for others).

 Unless per-user customization is really, really pressing, I wouldn't add it 
 outside of the ideal Xkb solution.
 
 What do you think?

I think I will anyway. :-)

-- 
 Ivan U. Pascal |   e-mail: [EMAIL PROTECTED]
   Administrator of |   Tomsk State University
 University Network |   Tomsk, Russia
___
I18n mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/i18n


Re: [I18n] Compose files.

2003-09-03 Thread Ivan Pascal
  Hi,

Vasilis Vasaitis wrote:
  The second substitution would allow user to add currently used files into own
  custom Compose file without care where that file is actually placed.
 
   No objections here. Just don't forget to add at least another
 substitution, %%, which produces a literal %, for completeness' sake.

Already done.  I didn't mention it as an obvious thing. :-)

  In finally a most doubtfull part: how to specify needed Compose file.
  Now I made an environment variable XCOMPOSEFILE which value should be a name
  (with a path) of Compose file.  But I realize it is unhandly for users.
  Any ideas are welcome.
 
   Hm, how about simply checking for the presence of ~/.Xcompose and
 using it instead of the locale dependent file? In that case, this file
 would have to include the system wide ones instead of the other way
 round, so perhaps the substitutions you've proposed wouldn't be really
 needed.

I thought about it.  But I think it isn't much better than an environment
variable.  In one case you have to write a string into your profile
file (set the variable) and in another case you have to make a file in
your home directory and write some lines there.  And both cases are unhandly
for configuring utilities. :-(

Anyway I can implement both.  In this case I think the variable should have
bigger priority because if one wants to change compose rules for application
only (or apply different rules for different applications) it would be easer
to use the environment variable for such task.

-- 
 Ivan U. Pascal |   e-mail: [EMAIL PROTECTED]
   Administrator of |   Tomsk State University
 University Network |   Tomsk, Russia
___
I18n mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/i18n


[I18n] Compose files.

2003-08-28 Thread Ivan Pascal
  Hello,

There are some issues related to a symbols composing and Compose files that
were mentioned here (and in Bugzilla) during last monthes.
The choice of Compose file depends on the current locale and is very unflexible.
The files are placed far from other keyboard-related files (many people even
can't find them).  There is not any way to customize them (e.g. per-user
compose file).

I'd like to offer some changes in that mechanism that solve at least a part
of problems.

First of all I should remind that whereas in many systems a composing mechanism
(dealing with dead_keys and/or Mylti_key like prefix) is a part of keyboard
driver and composing rules are a part of keyboard maps, in X Window it has
no relations to XKB and its files.  Moreover that composing should work if
Xserver and/or Xlib are built without XKB.
The most unpleasant consequence is that Xlib use different ways to get Compose
files and other keyboard-related data.  A keyboard map is kept on a server
and Xlib retrives it using XKB protocol (or some core protocol requests) but
Compose file is always read localy from client machine filesystem.

An ideal solution would be to integrate compose rules into XKB (or core
protocols) maps but it needs changes in the protocol or a making new extension.
My proposals touch existent files (and compose subsytem) only.

  Locale independence.

In existent files a compose rule consists of two parts.  A 'left side' part is
a sequence of keysym and a right part (the result of composing) is a pair of
a mylti_byte string and a keysym.  Both members ot that pair are independed.
Each of them can be omited and the compose subsystem doesn't check any
matching between them and doesn't figure out any one of them from other.

On the one hand it provides a flexibility.  The multy_byte string may have no
corrsponded keysym and even be some arbitrary string (a word or even a
sentence).  On the other hand it causes problem when user changes a locale.
The string there is exactly what XmbLookupString has to return (without any
changes).  Hence for non-ASCII symbols it should be different for C and UTF-8
locales. (Hans Deragon wrote here about the problem he faced: when he changed
a locale to Unicode one, some sequences appeared changed because Xlib used
another Compose file.)

It can be fixed easy.  If the result of a compose rule ia a keysym only Xlib
has to convert it to a string according to the current locale in the way used
for usual key press/release events.  It this case one compose files can be
used for different locales and depends on a keybord map only.

  Customization.

I added to Compose file an 'include' instriction.  It allows to compose
Compose file :-) from some files and add small corrections that user prefers.
E.g. if user has custom Compose file it can look like

include system wide file
my_own_rules
...

Of course, if some rules overlap, Xlib just discards a previous rule and uses
latest one.

Also I think some substitutions in the included file name could be usefull.
A made two ones: %H means the value of HOME variable and %L means the name
with full path to a currently used local-depended file (e.g
/usr/X11R6/lib/X11/locale/iso8859-1/Compose).
The first substitution woild allow to add a per-user preference file into
a 'system' Compose file, e.g.

system-wide file:
common_rules
...
include %H/.XCompose

If the file doesn't exist Xlib silently ignores such instruction.

The second substitution would allow user to add currently used files into own
custom Compose file without care where that file is actually placed.

In finally a most doubtfull part: how to specify needed Compose file.
Now I made an environment variable XCOMPOSEFILE which value should be a name
(with a path) of Compose file.  But I realize it is unhandly for users.
Any ideas are welcome.

P.S. All changes I'm talking about are already made and tested.  I can commit
them in any time.  But I'd like to hear suggestions/objections.

-- 
 Ivan U. Pascal |   e-mail: [EMAIL PROTECTED]
   Administrator of |   Tomsk State University
 University Network |   Tomsk, Russia
___
I18n mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/i18n


CVS Update: xc (branch: trunk)

2003-08-22 Thread Ivan Pascal
CVSROOT:/home/x-cvs
Module name:xc
Changes by: [EMAIL PROTECTED]   03/08/22 06:29:16

Log message:
   384. Fix bugs in Xlib's EUC string converters that cause incorrect work of
_Xmblen.  Fix _Xmblen usage in imCallbk.c when Xlib is built with
X_LOCALE (Etsushi Kato).

Modified files:
  xc/lib/X11/:
imCallbk.c lcEuc.c 
  
  Revision  ChangesPath
  3.9   +5 -1  xc/lib/X11/imCallbk.c
  3.13  +18 -20xc/lib/X11/lcEuc.c

___
Cvs-commit mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/cvs-commit


CVS Update: xc (branch: trunk)

2003-08-22 Thread Ivan Pascal
CVSROOT:/home/x-cvs
Module name:xc
Changes by: [EMAIL PROTECTED]   03/08/22 06:31:11

Log message:
   382. Fixes and updates for XKB keyboard maps:
- Fix for Uzbek keyboard map (Bugzilla #595, Mashrab Kuvatov).
- Fix for the problem with Alt+Tab combinations in some window mangers
  (Bugzilla #580,616): window chooser menu doesn't disappear after
  Alt key release (Egbert Eich, Ivan Pascal).

Modified files:
  xc/programs/xkbcomp/symbols/:
uz 
  xc/programs/xkbcomp/symbols/pc/:
pc uz 
  
  Revision  ChangesPath
  1.2   +7 -7  xc/programs/xkbcomp/symbols/uz
  1.10  +6 -6  xc/programs/xkbcomp/symbols/pc/pc
  1.3   +7 -7  xc/programs/xkbcomp/symbols/pc/uz

___
Cvs-commit mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/cvs-commit


CVS Update: xc (branch: trunk)

2003-08-22 Thread Ivan Pascal
CVSROOT:/home/x-cvs
Module name:xc
Changes by: [EMAIL PROTECTED]   03/08/22 06:32:35

Log message:
  updates

Modified files:
  xc/programs/Xserver/hw/xfree86/:
CHANGELOG 
  
  Revision  ChangesPath
  3.2815+11 -1 xc/programs/Xserver/hw/xfree86/CHANGELOG

___
Cvs-commit mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/cvs-commit


CVS Update: xc (branch: trunk)

2003-08-22 Thread Ivan Pascal
CVSROOT:/home/x-cvs
Module name:xc
Changes by: [EMAIL PROTECTED]   03/08/22 06:30:26

Log message:
   383. Update xev program for print the result of XmbLookupString call
(Bugzilla #582, Noah Levitt, Ivan Pascal)

Modified files:
  xc/programs/xev/:
xev.c 
  
  Revision  ChangesPath
  1.9   +106 -3xc/programs/xev/xev.c

___
Cvs-commit mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/cvs-commit


Re: [I18n] XIMText-length problem with multibyte chars in X_LOCALE environment

2003-08-22 Thread Ivan Pascal
   Hi,

 I checked lcEuc.c and found euc_mbstowcs() is doing wrong about 
 *from_left value.  Referencing with stdc_mbstowcs() in lcgenConv.c, I 
 modified euc_mbstowcs() and also euc_wcstombs() in lcEuc.c.  With this 
 modification, _Xmblen began to work fine .

Good work!
I was going to tell you about euc_wcstombs() and ugly *from_left = *to_left
there when got your message with a complete fix. :-)

 So following patches fix XIMText-length problem and also fix _Xmblen() 
 in X_LOCALE defined XFree86 with LANG=ja_JP.eucJP.  Please apply to CVS 
 repository.

Commited.  Thanks.

-- 
 Ivan U. Pascal |   e-mail: [EMAIL PROTECTED]
   Administrator of |   Tomsk State University
 University Network |   Tomsk, Russia
___
I18n mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/i18n


CVS Update: xc (branch: trunk)

2003-08-14 Thread Ivan Pascal
CVSROOT:/home/x-cvs
Module name:xc
Changes by: [EMAIL PROTECTED]   03/08/11 06:28:24

Log message:
  updates

Modified files:
  xc/programs/Xserver/hw/xfree86/:
CHANGELOG 
  
  Revision  ChangesPath
  3.2802+3 -1  xc/programs/Xserver/hw/xfree86/CHANGELOG

___
Cvs-commit mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/cvs-commit


  1   2   >