CVSROOT:        /home/x-cvs
Module name:    xc
Changes by:     [EMAIL PROTECTED]       02/12/21 10:49:04

Log message:
   680. Correct problem when the server prints the name of a 'private
        xkb action' in a format that xkbcomp cannot understand, and
        was causing problems when calling XkbGetKeyboard (Ivan Pascal).
  
    Message from Ivan Pascal describing the problem below:
  --
       Hi,
  
  >   But there is yet another (probably) simple problem that I have noticed,
  > and just did patches to not allow xf86cfg to crash, when it starts, it
  > tries to load the current xkb configuration, in previous versions of
  > XFree86 the current code in
  > xc/programs/Xserver/hw/xfree86/xf86cfg/keywboard-cfg.c:InitializeKeyboard()
  > was working fine, but now it always timeouts (actually, the timeout
  > check and several tries was added because an already resolved problem
  > with signals and interrupted reads when forking the Xserver to call
  > xkbcomp).
  
    Fortunatly it was a simple bug.
  The thing is when you call XkbGetKeyboard the server converts a current
  xkb description to the text form, calls the xkbcomp and feeds it with this
  text, reads an XKM format file that the xkbcomp produces and finally sends
  this data to application.  (I didn't know it is so complicated. I thought
  the server simply sends its internal structures. :( )
    The problem is (was) there are some bugs in the procedures which write
  the xkb format file.  And in some case they produce the text that the xkbcomp
  can't understand. (I say 'bugs' becouse I suspect there are some other besides
  one I caught.)
    In problem you describe the bug is a printing the name of 'the private xkb
  action'.  As you know there are xkb actions recently added for server actions
  such as a VT mode switching.  And in original files they looks like
    Private(type=0x86, data="...")
  and it is the form that the xkbcomp understands.
    But the 'reverse procudures' print it as
    0x86(type=0x86, data[0]=...)
  As the result the xkbcomp can't read the text description, doesn't produce
  the XKM file and the XkbGetKeyboard procedure fails.
  
    I attached a patch.  As you can see it is simplest. :)
  --
   Ivan U. Pascal         |   e-mail: [EMAIL PROTECTED]
     Administrator of     |   Tomsk State University
       University Network |       Tomsk, Russia
  --
    Thanks to Ivan Pascal for fixing this problem.

Modified files:
      xc/lib/xkbfile/:
        xkbtext.c 
      xc/programs/Xserver/hw/xfree86/:
        CHANGELOG 
  
  Revision      Changes    Path
  3.11          +1 -1      xc/lib/xkbfile/xkbtext.c
  3.2459        +4 -1      xc/programs/Xserver/hw/xfree86/CHANGELOG

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

Reply via email to