commit 119169949485d04143258d1f45c4431282d9625e
parent 1a1aeaec929957b3725261daa8a89844dd6a7d0c
Author: paulnasca <paulnasca>
Date: Sat, 28 Feb 2004 10:21:50 +0000
*** empty log message ***
Diffstat:
10 files changed, 27 insertions(+), 13 deletions(-)
diff --git a/ChangeLog b/ChangeLog
@@ -544,4 +544,7 @@
23 Feb 2004 - Inceput sa fac ca sa pot adauga Bank bazat pe XML (adaugat temporar clasa OldBank)
24 Feb 2004 - Continuat la Bank
25 Feb 2004 - La Bank - inceput sa scriu partea ca sa arate instrumentele din banca
-26 Feb 2004 - continuat la Bank
+26 Feb 2004 - Continuat la Bank
+27 Feb 2004 - Corectate erori la snprintf ( nu dadeam parametru "%s" inainte de string si daca acel string continea ceva %, era periculos)
+
+
diff --git a/src/Misc/Bank.C b/src/Misc/Bank.C
@@ -34,12 +34,16 @@
#include <errno.h>
*/
Bank::Bank(){
+ memset(defaultinsname,0,PART_MAX_NAME_LEN);
+ snprintf(defaultinsname,PART_MAX_NAME_LEN,"%s"," ");
+
for (int i=0;i<BANK_SIZE;i++){
ins[i].used=false;
- memset(ins[i].name,0,PART_MAX_NAME_LEN+1);
ins[i].filename=NULL;
};
+ clearbank();
+
loadbank("bank_xml");
};
@@ -183,7 +187,9 @@ int Bank::addtobank(int pos, const char *filename, const char* name){
deletefrombank(pos);
ins[pos].used=true;
- snprintf(ins[pos].name,PART_MAX_NAME_LEN,name);
+ snprintf(ins[pos].name,PART_MAX_NAME_LEN,"%s",name);
+
+ snprintf(tmpinsname[pos],PART_MAX_NAME_LEN+10,"%d. %s",pos,name);
int len=strlen(filename);
ins[pos].filename=new char[len+1];
@@ -200,5 +206,8 @@ void Bank::deletefrombank(int pos){
delete (ins[pos].filename);
ins[pos].filename=NULL;
};
+
+ memset(tmpinsname[pos],0,PART_MAX_NAME_LEN+20);
+
};
diff --git a/src/Misc/Bank.h b/src/Misc/Bank.h
@@ -57,6 +57,8 @@ class Bank{
void clearbank();
+ char defaultinsname[PART_MAX_NAME_LEN];
+ char tmpinsname[BANK_SIZE][PART_MAX_NAME_LEN+20];//this keeps the numbered names
struct{
bool used;
diff --git a/src/Misc/Master.C b/src/Misc/Master.C
@@ -706,8 +706,8 @@ void Master::exportbankasxmldirectory(const char *directory){
oldbank.loadfromslot(slot,&slbuf);
slbuf.changemode(0);
tmppart->saveloadbuf(&slbuf,1);
- snprintf((char *)tmppart->kit[0].Pname,PART_MAX_NAME_LEN,oldbank.getname(slot));
- snprintf((char *)tmppart->Pname,PART_MAX_NAME_LEN,oldbank.getname(slot));
+ snprintf((char *)tmppart->kit[0].Pname,PART_MAX_NAME_LEN,"%s",oldbank.getname(slot));
+ snprintf((char *)tmppart->Pname,PART_MAX_NAME_LEN,"%s",oldbank.getname(slot));
if (oldbank.emptyslot(slot)) continue;
snprintf(nostr,10,"%4d",slot+1);
diff --git a/src/Misc/Microtonal.C b/src/Misc/Microtonal.C
@@ -295,8 +295,8 @@ int Microtonal::loadscl(const char *filename){
//loads the short description
if (loadline(file,&tmp[0])!=0) return(2);
for (int i=0;i<500;i++) if (tmp[i]<32) tmp[i]=0;
- snprintf((char *) Pname,MICROTONAL_MAX_NAME_LEN,"%s\0",tmp);
- snprintf((char *) Pcomment,MICROTONAL_MAX_NAME_LEN,"%s\0",tmp);
+ snprintf((char *) Pname,MICROTONAL_MAX_NAME_LEN,"%s",tmp);
+ snprintf((char *) Pcomment,MICROTONAL_MAX_NAME_LEN,"%s",tmp);
//loads the number of the notes
if (loadline(file,&tmp[0])!=0) return(2);
int nnotes=MAX_OCTAVE_SIZE;
diff --git a/src/Misc/OldBank.C b/src/Misc/OldBank.C
@@ -221,7 +221,7 @@ int OldBank::loadfile(){
//get the name
unsigned char namesize;
read (file,&namesize,1);
- memset(&ins[ni].name[0],0,PART_MAX_NAME_LEN);
+ memset(&ins[ni].name[0],0,PART_MAX_NAME_LEN);//????????
read (file,&ins[ni].name[0],namesize);
//get the data
unsigned int datasize;
diff --git a/src/Misc/XMLwrapper.C b/src/Misc/XMLwrapper.C
@@ -303,7 +303,7 @@ void XMLwrapper::getparstr(char *name,char *par,int maxstrlen){
if (node->child==NULL) return;
if (node->child->type!=MXML_OPAQUE) return;
- snprintf(par,maxstrlen,node->child->value.element.name);
+ snprintf(par,maxstrlen,"%s",node->child->value.element.name);
};
diff --git a/src/UI/BankUI.fl b/src/UI/BankUI.fl
@@ -268,10 +268,10 @@ if ((what==1)&&(mode==1)&&(!bank->emptyslot(slot))){//Reads from slot
pthread_mutex_unlock(&master->mutex);
if (master->part[*npart]->disablekitloading==0){
snprintf((char *)master->part[*npart]->Pname,PART_MAX_NAME_LEN
- ,bank->getname(slot));
+ ,"%s",bank->getname(slot));
} else {
snprintf((char *)master->part[*npart]->kit[0].Pname,PART_MAX_NAME_LEN
- ,bank->getname(slot));
+ ,"%s",bank->getname(slot));
};
cbwig->do_callback();
diff --git a/src/UI/MasterUI.fl b/src/UI/MasterUI.fl
@@ -1187,7 +1187,7 @@ updatepanel();}
}
Function {setfilelabel(const char *filename)} {} {
code {if (filename!=NULL) snprintf(&masterwindowlabel[0],100,"%s - ZynAddSubFX",fl_filename_name(filename));
- else snprintf(&masterwindowlabel[0],100,"ZynAddSubFX (c)2002-2003 Nasca O. Paul");
+ else snprintf(&masterwindowlabel[0],100,"%s","ZynAddSubFX (c)2002-2003 Nasca O. Paul");
masterwindowlabel[99]='\\0';
masterwindow->label(&masterwindowlabel[0]);} {}
}
diff --git a/src/UI/PartUI.fl b/src/UI/PartUI.fl
@@ -338,7 +338,7 @@ class PartUI {: {public Fl_Group,PartUI_}
callback {int event=Fl::event_button();
if (event==FL_RIGHT_MOUSE){
const char *tmp=fl_input("Instrument name:",(const char *)part->Pname);
- if (tmp!=NULL) snprintf((char *)part->Pname,PART_MAX_NAME_LEN,tmp);
+ if (tmp!=NULL) snprintf((char *)part->Pname,PART_MAX_NAME_LEN,"%s",tmp);
} else {
if (event==FL_LEFT_MOUSE) bankui->show();
else infowin->show();