[PATCH/libX11] Return name instead of value in XGetIMValues() and XSetIMValues()
Yann Droneaud
yann at droneaud.fr
Sun Oct 9 08:56:45 PDT 2011
As stated in man page (XOpenIM) and Xlib documentation (chapter 13.5.3),
XGetIMValues() and XSetImValues() "returns the name of the first argument
that could not be obtained."
But currently,
err = XGetIMValues(im, "invalid", &arg, NULL);
returns &arg instead of "invalid".
This patch fixes https://bugs.freedesktop.org/show_bug.cgi?id=12897
Signed-off-by: Yann Droneaud <yann at droneaud.fr>
---
modules/im/ximcp/imRm.c | 12 ++++++------
1 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/modules/im/ximcp/imRm.c b/modules/im/ximcp/imRm.c
index da1207c..53b2458 100644
--- a/modules/im/ximcp/imRm.c
+++ b/modules/im/ximcp/imRm.c
@@ -2250,17 +2250,17 @@ _XimSetIMValueData(
for(p = values; p->name != NULL; p++) {
if(!(res = _XimGetResourceListRec(res_list, list_num, p->name))) {
- return p->value;
+ return p->name;
}
check = _XimCheckIMMode(res, XIM_SETIMVALUES);
if(check == XIM_CHECK_INVALID) {
continue;
} else if (check == XIM_CHECK_ERROR) {
- return p->value;
+ return p->name;
}
if(!_XimEncodeLocalIMAttr(res, top, p->value)) {
- return p->value;
+ return p->name;
}
}
return NULL;
@@ -2280,17 +2280,17 @@ _XimGetIMValueData(
for(p = values; p->name != NULL; p++) {
if(!(res = _XimGetResourceListRec(res_list, list_num, p->name))) {
- return p->value;
+ return p->name;
}
check = _XimCheckIMMode(res, XIM_GETIMVALUES);
if(check == XIM_CHECK_INVALID) {
continue;
} else if (check == XIM_CHECK_ERROR) {
- return p->value;
+ return p->name;
}
if(!_XimDecodeLocalIMAttr(res, top, p->value)) {
- return p->value;
+ return p->name;
}
}
return NULL;
--
1.7.6.4
More information about the xorg-devel
mailing list