Commit Graph
3 Commits
Author SHA1 Message Date
selurvedu 2602e1710f Fix issues found by Cppcheck
These include:

  - [X11Exception.h:16]: Class 'X11Exception' has a constructor
    with 1 argument that is not explicit.

  - [wrapper.cpp:62]: Array index 'i' is used before limits check.

  - [wrapper.cpp:183]: Exception should be caught by reference.
2015-07-27 22:02:07 +00:00
selurvedu 7d5c44d4c4 Trim unwanted bracket in layout name 2015-07-27 21:11:13 +00:00
selurvedu 58fa6eb1f9 Support symbol strings with '_' in place of '+'
This fixes a segfault that occurs for the following reason:

 - In XKeyboard::initializeXkb(), the XkbSymbolParser::parse() is called
   with three arguments - string to process (symName),
   vector to push symbol names to (_symbolNames)
   and vector to push variant names to (_variantNames).

 - In XkbSymbolParser::parse(), it looks for char '+' in symName string,
   but Xkb may use '_' instead when creating that string. If the char
   is not found, parse() doesn't append anything to vectors and they
   remain empty.

 - Later, XKeyboard::initializeXkb() tries to access nonexistent data in
   _symbolNames, which causes a segmentation fault (on lines 162-163).
2015-07-20 01:05:59 +03:00