Commit af1f7cee authored by Ulrich Sibiller's avatar Ulrich Sibiller

Lift XKB*.c to libX11 1.3.4

parent 3e75c816
......@@ -23,7 +23,6 @@ OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
THE USE OR PERFORMANCE OF THIS SOFTWARE.
********************************************************/
/* $XFree86$ */
#ifdef HAVE_CONFIG_H
#include <config.h>
......
......@@ -365,7 +365,6 @@ XkbRefreshKeyboardMapping(register XkbMapNotifyEvent *event)
changes= xkbi->changes;
else bzero(&changes,sizeof(changes));
XkbNoteMapChanges(&changes,event,XKB_XLIB_MAP_MASK);
LockDisplay(dpy);
if ((rtrn=XkbGetMapChanges(dpy,xkbi->desc,&changes))!=Success) {
#ifdef DEBUG
fprintf(stderr,"Internal Error! XkbGetMapChanges failed:\n");
......@@ -376,7 +375,6 @@ XkbRefreshKeyboardMapping(register XkbMapNotifyEvent *event)
xkbi->flags&= ~XkbMapPending;
bzero(&xkbi->changes,sizeof(XkbMapChangesRec));
}
UnlockDisplay(dpy);
return rtrn;
}
return BadMatch;
......@@ -631,7 +629,7 @@ XkbTranslateKeySym( register Display * dpy,
}
if (change) {
if (n==1)
*sym_rtrn=(*xkb->cvt.MBToKS)(xkb->cvt.MBToKSPriv,buffer,n,0);
*sym_rtrn=(*xkb->cvt.MBToKS)(xkb->cvt.MBToKSPriv,buffer,n,NULL);
else *sym_rtrn= NoSymbol;
}
}
......
......@@ -23,7 +23,6 @@ OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
THE USE OR PERFORMANCE OF THIS SOFTWARE.
********************************************************/
/* $XFree86$ */
#ifdef HAVE_CONFIG_H
#include <config.h>
......
......@@ -186,7 +186,7 @@ Strcmp(char *str1, char *str2)
#endif
int
_XkbGetConverters(char *encoding_name, XkbConverters *cvt_rtrn)
_XkbGetConverters(const char *encoding_name, XkbConverters *cvt_rtrn)
{
if ( !cvt_rtrn ) return 0;
......@@ -217,7 +217,7 @@ _XkbGetConverters(char *encoding_name, XkbConverters *cvt_rtrn)
static char *_XkbKnownLanguages = "c=ascii:da,de,en,es,fr,is,it,nl,no,pt,sv=iso8859-1:hu,pl,cs=iso8859-2:eo=iso8859-3:sp=iso8859-5:ar,ara=iso8859-6:el=iso8859-7:he=iso8859-8:tr=iso8859-9:lt,lv=iso8859-13:et,fi=iso8859-15:ru=koi8-r:uk=koi8-u:th,th_TH,th_TH.iso8859-11=iso8859-11:th_TH.TIS620=tis620:hy=armscii-8:vi=tcvn-5712:ka=georgian-academy:be,bg=microsoft-cp1251";
char *
_XkbGetCharset()
_XkbGetCharset(void)
{
/*
* PAGE USAGE TUNING: explicitly initialize to move these to data
......@@ -318,7 +318,7 @@ _XkbGetCharset()
}
#else
char *
_XkbGetCharset()
_XkbGetCharset(void)
{
char *tmp;
XLCd lcd;
......
......@@ -71,6 +71,9 @@ XkbPointPtr pt;
for (pt=outline->points,p=0;p<outline->num_points;p++,pt++) {
_XkbCheckBounds(&shape->bounds,pt->x,pt->y);
}
if (outline->num_points<2) {
_XkbCheckBounds(&shape->bounds,0,0);
}
}
return True;
}
......@@ -248,9 +251,15 @@ Status rtrn;
char *name,*value;
ok= True;
for (i=0;(i<rep->nProperties)&&ok;i++) {
name=NULL;
value=NULL;
ok= _XkbGetReadBufferCountedString(buf,&name)&&ok;
ok= _XkbGetReadBufferCountedString(buf,&value)&&ok;
ok= ok&&(XkbAddGeomProperty(geom,name,value)!=NULL);
if (name)
_XkbFree(name);
if (value)
_XkbFree(value);
}
if (ok) rtrn= Success;
else rtrn= BadLength;
......@@ -293,10 +302,15 @@ Status rtrn;
register int i;
char *spec;
for (i=0;i<rep->nColors;i++) {
spec = NULL;
if (!_XkbGetReadBufferCountedString(buf,&spec))
return BadLength;
if (XkbAddGeomColor(geom,spec,geom->num_colors)==NULL)
return BadAlloc;
rtrn = BadLength;
else if (XkbAddGeomColor(geom,spec,geom->num_colors)==NULL)
rtrn = BadAlloc;
if (spec)
_XkbFree(spec);
if (rtrn != Success)
return rtrn;
}
return Success;
}
......@@ -625,21 +639,27 @@ XkbGetGeometry(Display *dpy,XkbDescPtr xkb)
{
xkbGetGeometryReq *req;
xkbGetGeometryReply rep;
Status status;
if ( (!xkb) || (dpy->flags & XlibDisplayNoXkb) ||
(!dpy->xkb_info && !XkbUseExtension(dpy,NULL,NULL)))
return BadAccess;
LockDisplay(dpy);
GetReq(kbGetGeometry, req);
req->reqType = dpy->xkb_info->codes->major_opcode;
req->xkbReqType = X_kbGetGeometry;
req->deviceSpec = xkb->device_spec;
req->name= None;
if (!_XReply(dpy, (xReply *)&rep, 0, xFalse))
return BadImplementation;
if (!rep.found)
return BadName;
return _XkbReadGetGeometryReply(dpy,&rep,xkb,NULL);
status = BadImplementation;
else if (!rep.found)
status = BadName;
else
status = _XkbReadGetGeometryReply(dpy,&rep,xkb,NULL);
UnlockDisplay(dpy);
SyncHandle();
return status;
}
Status
......@@ -647,20 +667,26 @@ XkbGetNamedGeometry(Display *dpy,XkbDescPtr xkb,Atom name)
{
xkbGetGeometryReq *req;
xkbGetGeometryReply rep;
Status status;
if ( (name==None) || (dpy->flags & XlibDisplayNoXkb) ||
(!dpy->xkb_info && !XkbUseExtension(dpy,NULL,NULL)) )
return BadAccess;
LockDisplay(dpy);
GetReq(kbGetGeometry, req);
req->reqType = dpy->xkb_info->codes->major_opcode;
req->xkbReqType = X_kbGetGeometry;
req->deviceSpec = xkb->device_spec;
req->name= (CARD32)name;
if ((!_XReply(dpy, (xReply *)&rep, 0, xFalse))||(!rep.found))
return BadImplementation;
if (!rep.found)
return BadName;
return _XkbReadGetGeometryReply(dpy,&rep,xkb,NULL);
status = BadImplementation;
else if (!rep.found)
status = BadName;
else
status = _XkbReadGetGeometryReply(dpy,&rep,xkb,NULL);
UnlockDisplay(dpy);
SyncHandle();
return status;
}
......@@ -23,7 +23,6 @@ OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
THE USE OR PERFORMANCE OF THIS SOFTWARE.
********************************************************/
/* $XFree86$ */
#define NEED_MAP_READERS
#ifdef HAVE_CONFIG_H
......
......@@ -714,7 +714,10 @@ XkbGetKeyExplicitComponents( Display * dpy,
if ((num>0)&&(first>=xkb->min_key_code)&&(first+num<=xkb->max_key_code))
bzero(&xkb->server->explicit[first],num);
}
if (xkb)
status= _XkbHandleGetMapReply(dpy, xkb);
else
status = BadMatch;
UnlockDisplay(dpy);
SyncHandle();
......@@ -743,7 +746,10 @@ XkbGetKeyModifierMap(Display *dpy,unsigned first,unsigned num,XkbDescPtr xkb)
if ((num>0)&&(first>=xkb->min_key_code)&&(first+num<=xkb->max_key_code))
bzero(&xkb->map->modmap[first],num);
}
if (xkb)
status= _XkbHandleGetMapReply(dpy, xkb);
else
status = BadMatch;
UnlockDisplay(dpy);
SyncHandle();
......@@ -772,7 +778,11 @@ XkbGetKeyVirtualModMap(Display *dpy,unsigned first,unsigned num,XkbDescPtr xkb)
if ((num>0)&&(first>=xkb->min_key_code)&&(first+num<=xkb->max_key_code))
bzero(&xkb->server->vmodmap[first],num*sizeof(unsigned short));
}
if (xkb)
status= _XkbHandleGetMapReply(dpy, xkb);
else
status = BadMatch;
UnlockDisplay(dpy);
SyncHandle();
......@@ -809,8 +819,8 @@ XkbGetMapChanges(Display *dpy,XkbDescPtr xkb,XkbMapChangesPtr changes)
req->firstVModMapKey = changes->first_vmodmap_key;
req->nVModMapKeys = changes->num_vmodmap_keys;
status= _XkbHandleGetMapReply(dpy, xkb);
SyncHandle();
UnlockDisplay(dpy);
SyncHandle();
return status;
}
UnlockDisplay(dpy);
......
......@@ -23,7 +23,6 @@ OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
THE USE OR PERFORMANCE OF THIS SOFTWARE.
********************************************************/
/* $XFree86$ */
#define NEED_MAP_READERS
#ifdef HAVE_CONFIG_H
......
......@@ -313,6 +313,8 @@ XkbClientMapPtr map;
tmp= XkbNumRequiredTypes+1;
if (XkbAllocClientMap(xkb,XkbKeyTypesMask,tmp)!=Success)
return NULL;
if (!map)
map = xkb->map;
tmp= 0;
if (map->num_types<=XkbKeypadIndex)
tmp|= XkbKeypadMask;
......
......@@ -474,8 +474,11 @@ unsigned changed,tmp;
unsigned int new_vmodmask;
changed|= XkbKeyActionsMask;
pActs= XkbResizeKeyActions(xkb,key,nSyms);
if (!pActs)
if (!pActs) {
if (nSyms > IBUF_SIZE)
Xfree(interps);
return False;
}
new_vmodmask= 0;
for (n=0;n<nSyms;n++) {
if (interps[n]) {
......
......@@ -147,7 +147,7 @@ _XkbPeekAtReadBuffer(XkbReadBufferPtr from,int size)
{
if ((from==NULL)||(from->error)||(size<1)||
(_XkbReadBufferDataLeft(from)<size))
return 0;
return NULL;
return from->data;
}
......@@ -157,7 +157,7 @@ _XkbGetReadBufferPtr(XkbReadBufferPtr from,int size)
char *ptr;
if ((from==NULL)||(from->error)||(size<1)||
(_XkbReadBufferDataLeft(from)<size))
return 0;
return NULL;
ptr= from->data;
from->data+= size;
return ptr;
......
......@@ -441,6 +441,7 @@ Status ret;
(!dpy->xkb_info && !XkbUseExtension(dpy,NULL,NULL)))
return BadAccess;
LockDisplay(dpy);
GetReq(kbSetGeometry, req);
req->reqType = dpy->xkb_info->codes->major_opcode;
req->xkbReqType = X_kbSetGeometry;
......
......@@ -320,7 +320,7 @@ CARD8 * wire;
if ((req->present&XkbExplicitComponentsMask)==0)
return;
first= req->firstKeyExplicit;
last= first+req->nKeyExplicit;
last= first+req->nKeyExplicit - 1;
i= XkbPaddedSize((req->totalKeyExplicit*2));
BufAlloc(CARD8 *,wire,i);
for (i=first;i<=last;i++) {
......
......@@ -224,6 +224,8 @@ XkbGetNamedDeviceIndicator( Display * dpy,
SyncHandle();
return False;
}
UnlockDisplay(dpy);
SyncHandle();
if ((!rep.found)||(!rep.supported))
return False;
if (pNdxRtrn!=NULL)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment