<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">2016-02-25 16:07 GMT-03:00 Adam Jackson <span dir="ltr"><<a href="mailto:ajax@nwnk.net" target="_blank">ajax@nwnk.net</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class="">@ -1291,16 +1290,35 @@ KdPointerDriver EphyrMouseDriver = {<br>
>  static Status<br>
>  EphyrKeyboardInit(KdKeyboardInfo * ki)<br>
>  {<br>
> +    int i;<br>
<br>
</span>Unused variable.<br></blockquote><div><br></div><div>Removed. Thanks!<br><span class=""></span><span class=""></span><br><span class=""></span></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class="">
> +    if (!keySyms.minKeyCode) {<br>
>          ErrorF("Couldn't load keymap from host\n");<br>
>          return BadAlloc;<br>
>      }<br>
<br>
</span>I don't think this can ever be triggered? hostx_load_keymap initializes<br>
minKeyCode based on the initial connection block before doing anything<br>
else, and it'll never be 0 because the X protocol guarantees it's >= 8.<br>
<br>
I suppose that's not your fault, the current code is broken in the same<br>
way. Still probably best to just delete that conditional, if we ever<br>
run against a non-XKB server we might as well try to stumble through.<span class=""><br></span></blockquote><div><br></div><div>I'll drop it. Thanks!<br> <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class="">
> diff --git a/hw/kdrive/src/kinput.c b/hw/kdrive/src/kinput.c<br>
> index 3a1c6a0..00ef4d0 100644<br>
> --- a/hw/kdrive/src/kinput.c<br>
> +++ b/hw/kdrive/src/kinput.c<br>
> @@ -747,10 +747,6 @@ KdKeyboardProc(DeviceIntPtr pDevice, int onoff)<br>
>              return BadImplementation;<br>
>          }<br>
>  <br>
> -        if ((*ki->driver->Init) (ki) != Success) {<br>
> -            return !Success;<br>
> -        }<br>
> -<br>
>          memset(&rmlvo, 0, sizeof(rmlvo));<br>
>          rmlvo.rules = ki->xkbRules;<br>
>          rmlvo.model = ki->xkbModel;<br>
> @@ -763,6 +759,10 @@ KdKeyboardProc(DeviceIntPtr pDevice, int onoff)<br>
>              return BadImplementation;<br>
>          }<br>
>  <br>
> +        if ((*ki->driver->Init) (ki) != Success) {<br>
> +            return !Success;<br>
> +        }<br>
> +<br>
>          xiclass = AtomFromName(XI_KEYBOARD);<br>
>          AssignTypeAndName(pDevice, xiclass,<br>
>                            ki->name ? ki->name : "Generic KDrive Keyboard");<br>
<br>
</span>This seems like it clobbers whatever you'd have passed in from the<br>
command line (in patch 2/4 of your other series). Am I reading that<br>
right? What's the desired result here

</blockquote></div><br></div><div class="gmail_extra">The thing here is that I want to call <span class="im"><span style="color:rgb(0,0,0)">XkbApplyMappingChange() </span><span style="color:rgb(0,0,0)">+ XkbDDXChangeControls() inside EphyrKeyboardInit(), so I can isolate this code properly (I don't need it for e.g. kdrive evdev driver, since this one takes keymap directly from proposed -xkb-* options or udev properties), but I can only do that if EphyrKeyboardInit() is called *after*</span></span> InitKeyboardDeviceStruct(). This is why I've moved the "if<span class=""> ((*ki->driver->Init) (ki) != Success) ..."</span> block down a bit.<br clear="all"></div><div class="gmail_extra"><br>-- <br><div class="gmail_signature"><div dir="ltr"><div><b>Laércio de Sousa</b><br></div><div style="text-align:center"><div style="text-align:left"><i>Orientador de Informática</i></div><div style="text-align:left"><u>Escola Municipal "Professor Eulálio Gruppi"</u></div><div style="text-align:left"><i>Rua Ismael da Silva Mello, 559, Mogi Moderno</i></div><i><div style="text-align:left"><i>Mogi das Cruzes - SP</i></div><div style="text-align:left"><i>CEP 08717-390</i></div></i></div><div><span style="font-family:arial;font-size:small">Telefone: (11) 4726-8313</span></div></div></div>
</div></div>