Hi guys,

I made the test. As I expected, if I give to XStringToKeysym an invalid 
string (just random string), it returns NoSymbol. So apparently I don't 
see any case where it would return a nul.

On the other hand if I apply this NoSymbol to XConvertCase, then it 
returns as well NoSymbol for both the lower and upper keysyms.
And I even tried to apply a nul instead of NoSymbol (which should not 
happen as the previous function never returns null apparently), it 
converts to NoSymbol all the same.

So I suggest to make a test on NoSymbol instead of 0L. Would you agree?

Jehan

Jehan a écrit :
> Hi all,
> 
> related to this issue, after looking at this small part of the code, it 
> looks like there is an test which may always succeed, or at least which 
> is not the right test:
> 
> Here is the part of the code:
> 
>   336     /*
>   337      * Always store the keysym as upper case. That way we can 
> treat shift
>   338      * correctly even when Caps Lock is pressed.
>   339      */
>   340     {
>   341         KeySym upper;
>   342         XConvertCase(XStringToKeysym(keyname_nomods), &keysym, 
> &upper);
>   343     }
>   344
>   345     if (NOT_KEYSYM(keysym))
>   346     {
>   347    rxvt_msg (DBG_ERROR, DBG_MACROS,  "Invalid keysym %s. Skipping 
> macro.",
>   348       keyname_nomods);
>   349    return -1;
>   350     }
> 
> What strikes me is the test line 345. NOT_KEYSYM test whether the keysym 
> is a nul (0L). So maybe in some case, it may have happened before when 
> "tolower" function was used, as demonstrated this problem on IRIX. But 
> with XConvertCase, I don't see in the manual what would be the behaviour 
> if a wrng keysym is applied.
> Moreover the manual of  XStringToKeysym writes that when the given 
> string is not a valid keysym, it does not return nul, but the special 
> NoSymbol.
> I am going to make a test (Linux only though), but I think this nul test 
> is not really relevant here. Probably the test may be on NoSymbol (&& 
> nul also maybe) instead.
> 
> Jehan
> 
> Jehan a écrit :
>> Hello Jackson,
>>
>> in the 0.5.2 (and even 0.5.3) code, there is indeed a strange operation 
>> done on the keysym to make them lowercase (in macros.c:357, a function 
>> meant to be applied to a character is applied to a keysym, which was 
>> probably working on some common implementation only), and I guess this 
>> is where your issue comes from.
>>
>> But this is probably fixed in the last release 0.5.4 (it has been out 
>> today! A few hours ago...). Revision 253 in the subversion (done after 
>> 0.5.3) is tagged "Added NetBSD portability patches by Tobias Nygren" and 
>> there has been a change in the code on the exact line where I think your 
>> issue comes from (the lowercase conversion was made using a dedicated X 
>> function instead). There was not much more information (but probably in 
>> the mailing list? I have not looked for this) on what was this 
>> "portability patch", but I think it may be the same issue you have on Irix.
>>
>> So I suggest to update to last version 0.5.4, I think this will fix this 
>> issue.
>> Bye!
>>
>> Jehan
>>
>> jackson312 a écrit :
>>> I got mrxvt built on IRIX, but when I run it I get the following warnings:
>>> mrxvt: Invalid keysym Prior. Skipping macro.
>>> mrxvt: Invalid keysym Next. Skipping macro.
>>> mrxvt: Invalid keysym Insert. Skipping macro.
>>> mrxvt: Invalid keysym KP_Add. Skipping macro.
>>> mrxvt: Invalid keysym KP_Subtract. Skipping macro.
>>> mrxvt: Invalid keysym Prior. Skipping macro.
>>> mrxvt: Invalid keysym Next. Skipping macro.
>>> mrxvt: Invalid keysym Left. Skipping macro.
>>> mrxvt: Invalid keysym Right. Skipping macro.
>>> mrxvt: Invalid keysym Left. Skipping macro.
>>> mrxvt: Invalid keysym Right. Skipping macro.
>>> mrxvt: Invalid keysym Tab. Skipping macro.
>>> mrxvt: Invalid keysym F12. Skipping macro.
>>> mrxvt: Invalid keysym Up. Skipping macro.
>>> mrxvt: Invalid keysym Down. Skipping macro.
>>> mrxvt: Invalid keysym Home. Skipping macro.
>>> mrxvt: Invalid keysym End. Skipping macro.
>>> mrxvt: Invalid keysym Delete. Skipping macro.
>>> mrxvt: Invalid keysym Return. Skipping macro.
>>> mrxvt: Invalid keysym Return. Skipping macro.
>>> mrxvt: Invalid keysym F1. Skipping macro.
>>>
>>> It works, but I cannot use the keyboard to create or navigate terminals. I
>>> would build newer versions, but I get c99 errors. The newest gcc for IRIX is
>>> 3.4.6. I could try compiling it with SGI's MIPSpro, but that may open
>>> another can of worms. I am using the configure settings below:
>>>
>>> Thanks in advance for any help,
>>>
>>> Jackson
>>>
>>> ./configure \
>>>     --enable-ourstrings \
>>>     --enable-24bits \
>>>     --disable-lastlog \
>>>     --enable-sgi-scroll \
>>>     --enable-frills \
>>>     --with-term=rxvt \
>>>     --enable-xft \
>>>     --enable-xim \
>>>     --with-x
>>>
>> -------------------------------------------------------------------------
>> This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
>> Build the coolest Linux based applications with Moblin SDK & win great prizes
>> Grand prize is a trip for two to an Open Source event anywhere in the world
>> http://moblin-contest.org/redirect.php?banner_id=100&url=/
>> _______________________________________________
>> Materm-devel mailing list
>> Materm-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/materm-devel
>> mrxvt home page: http://materm.sourceforge.net
>>
>>
> 
> -------------------------------------------------------------------------
> This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
> Build the coolest Linux based applications with Moblin SDK & win great prizes
> Grand prize is a trip for two to an Open Source event anywhere in the world
> http://moblin-contest.org/redirect.php?banner_id=100&url=/
> _______________________________________________
> Materm-devel mailing list
> Materm-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/materm-devel
> mrxvt home page: http://materm.sourceforge.net
> 
> 

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Materm-devel mailing list
Materm-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/materm-devel
mrxvt home page: http://materm.sourceforge.net

Reply via email to