diff options
Diffstat (limited to 'xorg-server/xkb/xkbtext.c')
-rw-r--r-- | xorg-server/xkb/xkbtext.c | 189 |
1 files changed, 93 insertions, 96 deletions
diff --git a/xorg-server/xkb/xkbtext.c b/xorg-server/xkb/xkbtext.c index 9f49d59ff..8ef2b05b0 100644 --- a/xorg-server/xkb/xkbtext.c +++ b/xorg-server/xkb/xkbtext.c @@ -81,8 +81,7 @@ char *rtrn,*tmp; if (len>BUFFER_SIZE) len= BUFFER_SIZE-2; rtrn= tbGetBuffer(len); - strncpy(rtrn,atmstr,len); - rtrn[len]= '\0'; + strlcpy(rtrn,atmstr,len); } else { rtrn= tbGetBuffer(1); @@ -120,7 +119,7 @@ char numBuf[20]; else if (vmodNames&&(vmodNames[ndx]!=None)) tmp= NameForAtom(vmodNames[ndx]); if (tmp==NULL) { - sprintf(numBuf,"%d",ndx); + snprintf(numBuf,sizeof(numBuf),"%d",ndx); tmp = numBuf; } @@ -216,7 +215,7 @@ char *str,buf[BUFFER_SIZE]; return rtrn; } -static char *modNames[XkbNumModifiers] = { +static const char *modNames[XkbNumModifiers] = { "Shift", "Lock", "Control", "Mod1", "Mod2", "Mod3", "Mod4", "Mod5" }; @@ -228,17 +227,17 @@ char buf[100]; if (format==XkbCFile) { if (ndx<XkbNumModifiers) - sprintf(buf,"%sMapIndex",modNames[ndx]); + snprintf(buf,sizeof(buf),"%sMapIndex",modNames[ndx]); else if (ndx==XkbNoModifier) - sprintf(buf,"XkbNoModifier"); - else sprintf(buf,"0x%02x",ndx); + snprintf(buf,sizeof(buf),"XkbNoModifier"); + else snprintf(buf,sizeof(buf),"0x%02x",ndx); } else { if (ndx<XkbNumModifiers) strcpy(buf,modNames[ndx]); else if (ndx==XkbNoModifier) strcpy(buf,"none"); - else sprintf(buf,"ILLEGAL_%02x",ndx); + else snprintf(buf,sizeof(buf),"ILLEGAL_%02x",ndx); } rtrn= tbGetBuffer(strlen(buf)+1); strcpy(rtrn,buf); @@ -335,12 +334,12 @@ static char *buf; char * XkbKeysymText(KeySym sym,unsigned format) { -static char buf[32],*rtrn; +static char buf[32]; if (sym==NoSymbol) - strcpy(rtrn=buf,"NoSymbol"); - else sprintf(rtrn=buf, "0x%lx", (long)sym); - return rtrn; + strcpy(buf,"NoSymbol"); + else snprintf(buf, sizeof(buf), "0x%lx", (long)sym); + return buf; } char * @@ -368,15 +367,15 @@ char *buf; /***====================================================================***/ -static char *siMatchText[5] = { +static const char *siMatchText[5] = { "NoneOf", "AnyOfOrNone", "AnyOf", "AllOf", "Exactly" }; -char * +const char * XkbSIMatchText(unsigned type,unsigned format) { static char buf[40]; -char *rtrn; +const char *rtrn; switch (type&XkbSI_OpMask) { case XkbSI_NoneOf: rtrn= siMatchText[0]; break; @@ -384,13 +383,13 @@ char *rtrn; case XkbSI_AnyOf: rtrn= siMatchText[2]; break; case XkbSI_AllOf: rtrn= siMatchText[3]; break; case XkbSI_Exactly: rtrn= siMatchText[4]; break; - default: sprintf(buf,"0x%x",type&XkbSI_OpMask); + default: snprintf(buf,sizeof(buf),"0x%x",type&XkbSI_OpMask); return buf; } if (format==XkbCFile) { if (type&XkbSI_LevelOneOnly) - sprintf(buf,"XkbSI_LevelOneOnly|XkbSI_%s",rtrn); - else sprintf(buf,"XkbSI_%s",rtrn); + snprintf(buf,sizeof(buf),"XkbSI_LevelOneOnly|XkbSI_%s",rtrn); + else snprintf(buf,sizeof(buf),"XkbSI_%s",rtrn); rtrn= buf; } return rtrn; @@ -398,7 +397,7 @@ char *rtrn; /***====================================================================***/ -static char *imWhichNames[]= { +static const char *imWhichNames[]= { "base", "latched", "locked", @@ -449,7 +448,7 @@ char * buf; return buf; } -static char *ctrlNames[] = { +static const char *ctrlNames[] = { "repeatKeys", "slowKeys", "bounceKeys", @@ -617,7 +616,7 @@ char * buf; return buf; } -static char *actionTypeNames[XkbSA_NumActions]= { +static const char *actionTypeNames[XkbSA_NumActions]= { "NoAction", "SetMods", "LatchMods", "LockMods", "SetGroup", "LatchGroup", "LockGroup", @@ -632,28 +631,28 @@ static char *actionTypeNames[XkbSA_NumActions]= { "DeviceBtn", "LockDeviceBtn" }; -char * +const char * XkbActionTypeText(unsigned type,unsigned format) { static char buf[32]; -char *rtrn; +const char *rtrn; if (type<=XkbSA_LastAction) { rtrn= actionTypeNames[type]; if (format==XkbCFile) { - sprintf(buf,"XkbSA_%s",rtrn); + snprintf(buf,sizeof(buf),"XkbSA_%s",rtrn); return buf; } return rtrn; } - sprintf(buf,"Private"); + snprintf(buf,sizeof(buf),"Private"); return buf; } /***====================================================================***/ static int -TryCopyStr(char *to,char *from,int *pLeft) +TryCopyStr(char *to,const char *from,int *pLeft) { register int len; if (*pLeft>0) { @@ -713,10 +712,10 @@ char tbuf[32]; act= &action->group; TryCopyStr(buf,"group=",sz); if (act->flags&XkbSA_GroupAbsolute) - sprintf(tbuf,"%d",XkbSAGroup(act)+1); + snprintf(tbuf,sizeof(tbuf),"%d",XkbSAGroup(act)+1); else if (XkbSAGroup(act)<0) - sprintf(tbuf,"%d",XkbSAGroup(act)); - else sprintf(tbuf,"+%d",XkbSAGroup(act)); + snprintf(tbuf,sizeof(tbuf),"%d",XkbSAGroup(act)); + else snprintf(tbuf,sizeof(tbuf),"+%d",XkbSAGroup(act)); TryCopyStr(buf,tbuf,sz); if (act->type==XkbSA_LockGroup) return TRUE; @@ -739,13 +738,13 @@ char tbuf[32]; x= XkbPtrActionX(act); y= XkbPtrActionY(act); if ((act->flags&XkbSA_MoveAbsoluteX)||(x<0)) - sprintf(tbuf,"x=%d",x); - else sprintf(tbuf,"x=+%d",x); + snprintf(tbuf,sizeof(tbuf),"x=%d",x); + else snprintf(tbuf,sizeof(tbuf),"x=+%d",x); TryCopyStr(buf,tbuf,sz); if ((act->flags&XkbSA_MoveAbsoluteY)||(y<0)) - sprintf(tbuf,",y=%d",y); - else sprintf(tbuf,",y=+%d",y); + snprintf(tbuf,sizeof(tbuf),",y=%d",y); + else snprintf(tbuf,sizeof(tbuf),",y=+%d",y); TryCopyStr(buf,tbuf,sz); if (act->flags&XkbSA_NoAcceleration) TryCopyStr(buf,",!accel",sz); @@ -762,26 +761,25 @@ char tbuf[32]; act= &action->btn; TryCopyStr(buf,"button=",sz); if ((act->button>0)&&(act->button<6)) { - sprintf(tbuf,"%d",act->button); + snprintf(tbuf,sizeof(tbuf),"%d",act->button); TryCopyStr(buf,tbuf,sz); } else TryCopyStr(buf,"default",sz); if (act->count>0) { - sprintf(tbuf,",count=%d",act->count); + snprintf(tbuf,sizeof(tbuf),",count=%d",act->count); TryCopyStr(buf,tbuf,sz); } if (action->type==XkbSA_LockPtrBtn) { switch (act->flags&(XkbSA_LockNoUnlock|XkbSA_LockNoLock)) { case XkbSA_LockNoLock: - sprintf(tbuf,",affect=unlock"); break; + TryCopyStr(buf,",affect=unlock",sz); break; case XkbSA_LockNoUnlock: - sprintf(tbuf,",affect=lock"); break; + TryCopyStr(buf,",affect=lock",sz); break; case XkbSA_LockNoUnlock|XkbSA_LockNoLock: - sprintf(tbuf,",affect=neither"); break; + TryCopyStr(buf,",affect=neither",sz); break; default: - sprintf(tbuf,",affect=both"); break; + TryCopyStr(buf,",affect=both",sz); break; } - TryCopyStr(buf,tbuf,sz); } return TRUE; } @@ -798,8 +796,8 @@ char tbuf[32]; if (act->affect==XkbSA_AffectDfltBtn) { TryCopyStr(buf,"affect=button,button=",sz); if ((act->flags&XkbSA_DfltBtnAbsolute)||(XkbSAPtrDfltValue(act)<0)) - sprintf(tbuf,"%d",XkbSAPtrDfltValue(act)); - else sprintf(tbuf,"+%d",XkbSAPtrDfltValue(act)); + snprintf(tbuf,sizeof(tbuf),"%d",XkbSAPtrDfltValue(act)); + else snprintf(tbuf,sizeof(tbuf),"+%d",XkbSAPtrDfltValue(act)); TryCopyStr(buf,tbuf,sz); } return TRUE; @@ -815,10 +813,10 @@ char tbuf[64]; if (act->flags&XkbSA_ISODfltIsGroup) { TryCopyStr(tbuf,"group=",sz); if (act->flags&XkbSA_GroupAbsolute) - sprintf(tbuf,"%d",XkbSAGroup(act)+1); + snprintf(tbuf,sizeof(tbuf),"%d",XkbSAGroup(act)+1); else if (XkbSAGroup(act)<0) - sprintf(tbuf,"%d",XkbSAGroup(act)); - else sprintf(tbuf,"+%d",XkbSAGroup(act)); + snprintf(tbuf,sizeof(tbuf),"%d",XkbSAGroup(act)); + else snprintf(tbuf,sizeof(tbuf),"+%d",XkbSAGroup(act)); TryCopyStr(buf,tbuf,sz); } else { @@ -848,17 +846,17 @@ char tbuf[64]; nOut++; } if ((act->affect&XkbSA_ISONoAffectGroup)==0) { - sprintf(tbuf,"%sgroups",(nOut>0?"+":"")); + snprintf(tbuf,sizeof(tbuf),"%sgroups",(nOut>0?"+":"")); TryCopyStr(buf,tbuf,sz); nOut++; } if ((act->affect&XkbSA_ISONoAffectPtr)==0) { - sprintf(tbuf,"%spointer",(nOut>0?"+":"")); + snprintf(tbuf,sizeof(tbuf),"%spointer",(nOut>0?"+":"")); TryCopyStr(buf,tbuf,sz); nOut++; } if ((act->affect&XkbSA_ISONoAffectCtrls)==0) { - sprintf(tbuf,"%scontrols",(nOut>0?"+":"")); + snprintf(tbuf,sizeof(tbuf),"%scontrols",(nOut>0?"+":"")); TryCopyStr(buf,tbuf,sz); nOut++; } @@ -876,8 +874,8 @@ char tbuf[32]; act= &action->screen; if ((act->flags&XkbSA_SwitchAbsolute)||(XkbSAScreen(act)<0)) - sprintf(tbuf,"screen=%d",XkbSAScreen(act)); - else sprintf(tbuf,"screen=+%d",XkbSAScreen(act)); + snprintf(tbuf,sizeof(tbuf),"screen=%d",XkbSAScreen(act)); + else snprintf(tbuf,sizeof(tbuf),"screen=+%d",XkbSAScreen(act)); TryCopyStr(buf,tbuf,sz); if (act->flags&XkbSA_SwitchApplication) TryCopyStr(buf,",!same",sz); @@ -904,67 +902,67 @@ char tbuf[32]; else { int nOut= 0; if (tmp&XkbRepeatKeysMask) { - sprintf(tbuf,"%sRepeatKeys",(nOut>0?"+":"")); + snprintf(tbuf,sizeof(tbuf),"%sRepeatKeys",(nOut>0?"+":"")); TryCopyStr(buf,tbuf,sz); nOut++; } if (tmp&XkbSlowKeysMask) { - sprintf(tbuf,"%sSlowKeys",(nOut>0?"+":"")); + snprintf(tbuf,sizeof(tbuf),"%sSlowKeys",(nOut>0?"+":"")); TryCopyStr(buf,tbuf,sz); nOut++; } if (tmp&XkbBounceKeysMask) { - sprintf(tbuf,"%sBounceKeys",(nOut>0?"+":"")); + snprintf(tbuf,sizeof(tbuf),"%sBounceKeys",(nOut>0?"+":"")); TryCopyStr(buf,tbuf,sz); nOut++; } if (tmp&XkbStickyKeysMask) { - sprintf(tbuf,"%sStickyKeys",(nOut>0?"+":"")); + snprintf(tbuf,sizeof(tbuf),"%sStickyKeys",(nOut>0?"+":"")); TryCopyStr(buf,tbuf,sz); nOut++; } if (tmp&XkbMouseKeysMask) { - sprintf(tbuf,"%sMouseKeys",(nOut>0?"+":"")); + snprintf(tbuf,sizeof(tbuf),"%sMouseKeys",(nOut>0?"+":"")); TryCopyStr(buf,tbuf,sz); nOut++; } if (tmp&XkbMouseKeysAccelMask) { - sprintf(tbuf,"%sMouseKeysAccel",(nOut>0?"+":"")); + snprintf(tbuf,sizeof(tbuf),"%sMouseKeysAccel",(nOut>0?"+":"")); TryCopyStr(buf,tbuf,sz); nOut++; } if (tmp&XkbAccessXKeysMask) { - sprintf(tbuf,"%sAccessXKeys",(nOut>0?"+":"")); + snprintf(tbuf,sizeof(tbuf),"%sAccessXKeys",(nOut>0?"+":"")); TryCopyStr(buf,tbuf,sz); nOut++; } if (tmp&XkbAccessXTimeoutMask) { - sprintf(tbuf,"%sAccessXTimeout",(nOut>0?"+":"")); + snprintf(tbuf,sizeof(tbuf),"%sAccessXTimeout",(nOut>0?"+":"")); TryCopyStr(buf,tbuf,sz); nOut++; } if (tmp&XkbAccessXFeedbackMask) { - sprintf(tbuf,"%sAccessXFeedback",(nOut>0?"+":"")); + snprintf(tbuf,sizeof(tbuf),"%sAccessXFeedback",(nOut>0?"+":"")); TryCopyStr(buf,tbuf,sz); nOut++; } if (tmp&XkbAudibleBellMask) { - sprintf(tbuf,"%sAudibleBell",(nOut>0?"+":"")); + snprintf(tbuf,sizeof(tbuf),"%sAudibleBell",(nOut>0?"+":"")); TryCopyStr(buf,tbuf,sz); nOut++; } if (tmp&XkbOverlay1Mask) { - sprintf(tbuf,"%sOverlay1",(nOut>0?"+":"")); + snprintf(tbuf,sizeof(tbuf),"%sOverlay1",(nOut>0?"+":"")); TryCopyStr(buf,tbuf,sz); nOut++; } if (tmp&XkbOverlay2Mask) { - sprintf(tbuf,"%sOverlay2",(nOut>0?"+":"")); + snprintf(tbuf,sizeof(tbuf),"%sOverlay2",(nOut>0?"+":"")); TryCopyStr(buf,tbuf,sz); nOut++; } if (tmp&XkbIgnoreGroupLockMask) { - sprintf(tbuf,"%sIgnoreGroupLock",(nOut>0?"+":"")); + snprintf(tbuf,sizeof(tbuf),"%sIgnoreGroupLock",(nOut>0?"+":"")); TryCopyStr(buf,tbuf,sz); nOut++; } @@ -991,12 +989,12 @@ char tbuf[32]; else if (act->flags&XkbSA_MessageOnPress) TryCopyStr(buf,"KeyPress",sz); else TryCopyStr(buf,"KeyRelease",sz); - sprintf(tbuf,",data[0]=0x%02x",act->message[0]); TryCopyStr(buf,tbuf,sz); - sprintf(tbuf,",data[1]=0x%02x",act->message[1]); TryCopyStr(buf,tbuf,sz); - sprintf(tbuf,",data[2]=0x%02x",act->message[2]); TryCopyStr(buf,tbuf,sz); - sprintf(tbuf,",data[3]=0x%02x",act->message[3]); TryCopyStr(buf,tbuf,sz); - sprintf(tbuf,",data[4]=0x%02x",act->message[4]); TryCopyStr(buf,tbuf,sz); - sprintf(tbuf,",data[5]=0x%02x",act->message[5]); TryCopyStr(buf,tbuf,sz); + snprintf(tbuf,sizeof(tbuf),",data[0]=0x%02x",act->message[0]); TryCopyStr(buf,tbuf,sz); + snprintf(tbuf,sizeof(tbuf),",data[1]=0x%02x",act->message[1]); TryCopyStr(buf,tbuf,sz); + snprintf(tbuf,sizeof(tbuf),",data[2]=0x%02x",act->message[2]); TryCopyStr(buf,tbuf,sz); + snprintf(tbuf,sizeof(tbuf),",data[3]=0x%02x",act->message[3]); TryCopyStr(buf,tbuf,sz); + snprintf(tbuf,sizeof(tbuf),",data[4]=0x%02x",act->message[4]); TryCopyStr(buf,tbuf,sz); + snprintf(tbuf,sizeof(tbuf),",data[5]=0x%02x",act->message[5]); TryCopyStr(buf,tbuf,sz); return TRUE; } @@ -1017,9 +1015,9 @@ unsigned vmods,vmods_mask; (xkb->names->keys[kc].name[0]!='\0')) { char *kn; kn= XkbKeyNameText(xkb->names->keys[kc].name,XkbXKBFile); - sprintf(tbuf,"key=%s",kn); + snprintf(tbuf,sizeof(tbuf),"key=%s",kn); } - else sprintf(tbuf,"key=%d",kc); + else snprintf(tbuf,sizeof(tbuf),"key=%d",kc); TryCopyStr(buf,tbuf,sz); if ((act->mods_mask==0)&&(vmods_mask==0)) return TRUE; @@ -1055,26 +1053,25 @@ XkbDeviceBtnAction * act; char tbuf[32]; act= &action->devbtn; - sprintf(tbuf,"device= %d",act->device); TryCopyStr(buf,tbuf,sz); + snprintf(tbuf,sizeof(tbuf),"device= %d",act->device); TryCopyStr(buf,tbuf,sz); TryCopyStr(buf,",button=",sz); - sprintf(tbuf,"%d",act->button); + snprintf(tbuf,sizeof(tbuf),"%d",act->button); TryCopyStr(buf,tbuf,sz); if (act->count>0) { - sprintf(tbuf,",count=%d",act->count); + snprintf(tbuf,sizeof(tbuf),",count=%d",act->count); TryCopyStr(buf,tbuf,sz); } if (action->type==XkbSA_LockDeviceBtn) { switch (act->flags&(XkbSA_LockNoUnlock|XkbSA_LockNoLock)) { case XkbSA_LockNoLock: - sprintf(tbuf,",affect=unlock"); break; + TryCopyStr(buf,",affect=unlock",sz); break; case XkbSA_LockNoUnlock: - sprintf(tbuf,",affect=lock"); break; + TryCopyStr(buf,",affect=lock",sz); break; case XkbSA_LockNoUnlock|XkbSA_LockNoLock: - sprintf(tbuf,",affect=neither"); break; + TryCopyStr(buf,",affect=neither",sz); break; default: - sprintf(tbuf,",affect=both"); break; + TryCopyStr(buf,",affect=both",sz); break; } - TryCopyStr(buf,tbuf,sz); } return TRUE; } @@ -1087,14 +1084,14 @@ XkbAnyAction * act; char tbuf[32]; act= &action->any; - sprintf(tbuf,"type=0x%02x",act->type); TryCopyStr(buf,tbuf,sz); - sprintf(tbuf,",data[0]=0x%02x",act->data[0]); TryCopyStr(buf,tbuf,sz); - sprintf(tbuf,",data[1]=0x%02x",act->data[1]); TryCopyStr(buf,tbuf,sz); - sprintf(tbuf,",data[2]=0x%02x",act->data[2]); TryCopyStr(buf,tbuf,sz); - sprintf(tbuf,",data[3]=0x%02x",act->data[3]); TryCopyStr(buf,tbuf,sz); - sprintf(tbuf,",data[4]=0x%02x",act->data[4]); TryCopyStr(buf,tbuf,sz); - sprintf(tbuf,",data[5]=0x%02x",act->data[5]); TryCopyStr(buf,tbuf,sz); - sprintf(tbuf,",data[6]=0x%02x",act->data[6]); TryCopyStr(buf,tbuf,sz); + snprintf(tbuf,sizeof(tbuf),"type=0x%02x",act->type); TryCopyStr(buf,tbuf,sz); + snprintf(tbuf,sizeof(tbuf),",data[0]=0x%02x",act->data[0]); TryCopyStr(buf,tbuf,sz); + snprintf(tbuf,sizeof(tbuf),",data[1]=0x%02x",act->data[1]); TryCopyStr(buf,tbuf,sz); + snprintf(tbuf,sizeof(tbuf),",data[2]=0x%02x",act->data[2]); TryCopyStr(buf,tbuf,sz); + snprintf(tbuf,sizeof(tbuf),",data[3]=0x%02x",act->data[3]); TryCopyStr(buf,tbuf,sz); + snprintf(tbuf,sizeof(tbuf),",data[4]=0x%02x",act->data[4]); TryCopyStr(buf,tbuf,sz); + snprintf(tbuf,sizeof(tbuf),",data[5]=0x%02x",act->data[5]); TryCopyStr(buf,tbuf,sz); + snprintf(tbuf,sizeof(tbuf),",data[6]=0x%02x",act->data[6]); TryCopyStr(buf,tbuf,sz); return TRUE; } @@ -1136,7 +1133,7 @@ char buf[ACTION_SZ],*tmp; int sz; if (format==XkbCFile) { - sprintf(buf, + snprintf(buf,sizeof(buf), "{ %20s, { 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x } }", XkbActionTypeText(action->type,XkbCFile), action->any.data[0],action->any.data[1],action->any.data[2], @@ -1144,7 +1141,7 @@ int sz; action->any.data[6]); } else { - sprintf(buf,"%s(",XkbActionTypeText(action->type,XkbXKBFile)); + snprintf(buf,sizeof(buf),"%s(",XkbActionTypeText(action->type,XkbXKBFile)); sz= ACTION_SZ-strlen(buf)+2; /* room for close paren and NULL */ if (action->type<(unsigned)XkbSA_NumActions) (*copyActionArgs[action->type])(xkb,action,buf,&sz); @@ -1164,8 +1161,8 @@ char buf[256],*tmp; if (format==XkbCFile) { if (behavior->type==XkbKB_Default) - sprintf(buf,"{ 0, 0 }"); - else sprintf(buf,"{ %3d, 0x%02x }",behavior->type,behavior->data); + snprintf(buf,sizeof(buf),"{ 0, 0 }"); + else snprintf(buf,sizeof(buf),"{ %3d, 0x%02x }",behavior->type,behavior->data); } else { unsigned type,permanent; @@ -1173,14 +1170,14 @@ char buf[256],*tmp; permanent=((behavior->type&XkbKB_Permanent)!=0); if (type==XkbKB_Lock) { - sprintf(buf,"lock= %s",(permanent?"Permanent":"TRUE")); + snprintf(buf,sizeof(buf),"lock= %s",(permanent?"Permanent":"TRUE")); } else if (type==XkbKB_RadioGroup) { int g; char *tmp; g= ((behavior->data)&(~XkbKB_RGAllowNone))+1; if (XkbKB_RGAllowNone&behavior->data) { - sprintf(buf,"allowNone,"); + snprintf(buf,sizeof(buf),"allowNone,"); tmp= &buf[strlen(buf)]; } else tmp= buf; @@ -1198,12 +1195,12 @@ char buf[256],*tmp; kn= XkbKeyNameText(xkb->names->keys[kc].name,XkbXKBFile); else { static char tbuf[8]; - sprintf(tbuf,"%d",kc); + snprintf(tbuf,sizeof(tbuf),"%d",kc); kn= tbuf; } if (permanent) - sprintf(buf,"permanentOverlay%d= %s",ndx,kn); - else sprintf(buf,"overlay%d= %s",ndx,kn); + snprintf(buf,sizeof(buf),"permanentOverlay%d= %s",ndx,kn); + else snprintf(buf,sizeof(buf),"overlay%d= %s",ndx,kn); } } tmp= tbGetBuffer(strlen(buf)+1); |