Ok, I am a little stupid. Here is how NoSymbol is defined:

/usr/include/X11/X.h
   1:  146 #define NoSymbol       0L  /* special KeySym */

So this is simply a Nul and our code is OK. Yet even though it will 
probably work on most (if not all?!) implementations, I would suggest to 
change anyway the test for a NoSymbol for logical reason (the definition 
tells us it returns NoSymbol, not 0L; hence we should not care how it is 
implemented in the reality because this is not guaranteed to stay as is).

Jehan

Jehan a écrit :
> 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
> 
> 

-------------------------------------------------------------------------
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