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