[PD-cvs] pd/src kernel.c,1.1.2.56,1.1.2.57
Mathieu Bouchard
matju at users.sourceforge.net
Wed Jul 18 05:57:02 CEST 2007
Update of /cvsroot/pure-data/pd/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13399
Modified Files:
Tag: desiredata
kernel.c
Log Message:
removed alternative_classname and shortened a_w.w_index to a_index
Index: kernel.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/kernel.c,v
retrieving revision 1.1.2.56
retrieving revision 1.1.2.57
diff -C2 -d -r1.1.2.56 -r1.1.2.57
*** kernel.c 17 Jul 2007 23:54:55 -0000 1.1.2.56
--- kernel.c 18 Jul 2007 03:57:00 -0000 1.1.2.57
***************
*** 32,35 ****
--- 32,36 ----
#define a_symbol a_w.w_symbol
#define a_gpointer a_w.w_gpointer
+ #define a_index a_w.w_index
/* T.Grill - bit alignment for signal vectors (must be a multiple of 8!) */
***************
*** 287,291 ****
}
} break;
! case A_DOLLAR: sprintf(buf, "$%ld", a->a_w.w_index); break;
case A_DOLLSYM: strncpy(buf, a->a_symbol->name, bufsize); buf[bufsize-1] = 0; break;
default: bug("atom_string");
--- 288,292 ----
}
} break;
! case A_DOLLAR: sprintf(buf, "$%ld", a->a_index); break;
case A_DOLLSYM: strncpy(buf, a->a_symbol->name, bufsize); buf[bufsize-1] = 0; break;
default: bug("atom_string");
***************
*** 1311,1340 ****
int pd_setloadingabstraction(t_symbol *sym);
- /* replace everything but [a-zA-Z0-9_] by "0x%x" */
- /* BUG: buffer overflow */
- static char *alternative_classname(char *classname) {
- char *altname=(char*)malloc(sizeof(char)*MAXPDSTRING);
- int count=0;
- int i=0;
- for(i=0; i<MAXPDSTRING; i++) altname[i]=0;
- i=0;
- while(*classname) {
- char c=*classname;
- if((c>=48 && c<=57) || (c>=65 && c<=90) || (c>=97 && c<=122) || c==95) {
- altname[i]=c;
- i++;
- } else {
- sprintf(altname+i, "0x%02x", c);
- i+=4;
- count++;
- }
- classname++;
- }
- if(count>0) return altname;
- free(altname);
- return 0;
- }
-
-
/* this routine is called when a new "object" is requested whose class Pd
doesn't know. Pd tries to load it as an extern, then as an abstraction. */
--- 1312,1315 ----
***************
*** 1843,1847 ****
case A_SEMI: SETSYMBOL(ap, gensym(";")); break;
case A_COMMA: SETSYMBOL(ap, gensym(",")); break;
! case A_DOLLAR: sprintf(tbuf, "$%ld", ap->a_w.w_index); SETSYMBOL(ap, gensym(tbuf)); break;
case A_DOLLSYM: atom_string(ap, tbuf, MAXPDSTRING); SETSYMBOL(ap, gensym(tbuf)); break;
case A_SYMBOL:
--- 1818,1822 ----
case A_SEMI: SETSYMBOL(ap, gensym(";")); break;
case A_COMMA: SETSYMBOL(ap, gensym(",")); break;
! case A_DOLLAR: sprintf(tbuf, "$%ld", ap->a_index); SETSYMBOL(ap, gensym(tbuf)); break;
case A_DOLLSYM: atom_string(ap, tbuf, MAXPDSTRING); SETSYMBOL(ap, gensym(tbuf)); break;
case A_SYMBOL:
***************
*** 2011,2021 ****
if (!ac) break;
if (at->a_type == A_DOLLAR) {
! if (at->a_w.w_index <= 0 || at->a_w.w_index > argc) {
! error("$%d: not enough arguments supplied", at->a_w.w_index);
goto cleanup;
! } else if (argv[at->a_w.w_index-1].a_type != A_SYMBOL) {
! error("$%d: symbol needed as message destination", at->a_w.w_index);
goto cleanup;
! } else s = argv[at->a_w.w_index-1].a_symbol;
} else if (at->a_type == A_DOLLSYM) {
s = binbuf_realizedollsym(at->a_symbol, argc, argv, 0);
--- 1986,1996 ----
if (!ac) break;
if (at->a_type == A_DOLLAR) {
! if (at->a_index <= 0 || at->a_index > argc) {
! error("$%d: not enough arguments supplied", at->a_index);
goto cleanup;
! } else if (argv[at->a_index-1].a_type != A_SYMBOL) {
! error("$%d: symbol needed as message destination", at->a_index);
goto cleanup;
! } else s = argv[at->a_index-1].a_symbol;
} else if (at->a_type == A_DOLLSYM) {
s = binbuf_realizedollsym(at->a_symbol, argc, argv, 0);
***************
*** 2069,2080 ****
break;
case A_DOLLAR:
! if (at->a_w.w_index > 0 && at->a_w.w_index <= argc)
! *msp = argv[at->a_w.w_index-1];
! else if (at->a_w.w_index == 0)
SETFLOAT(msp, canvas_getdollarzero());
else {
if (target == &pd_objectmaker) SETFLOAT(msp, 0);
else {
! error("$%d: argument number out of range", at->a_w.w_index);
SETFLOAT(msp, 0);
}
--- 2044,2055 ----
break;
case A_DOLLAR:
! if (at->a_index > 0 && at->a_index <= argc)
! *msp = argv[at->a_index-1];
! else if (at->a_index == 0)
SETFLOAT(msp, canvas_getdollarzero());
else {
if (target == &pd_objectmaker) SETFLOAT(msp, 0);
else {
! error("$%d: argument number out of range", at->a_index);
SETFLOAT(msp, 0);
}
***************
*** 2279,2283 ****
if (nextmess[i].a_type == A_DOLLAR) {
char buf[100];
! sprintf(buf, "$%ld", nextmess[i].a_w.w_index);
SETSYMBOL(nextmess+i, gensym(buf));
} else if (nextmess[i].a_type == A_DOLLSYM) {
--- 2254,2258 ----
if (nextmess[i].a_type == A_DOLLAR) {
char buf[100];
! sprintf(buf, "$%ld", nextmess[i].a_index);
SETSYMBOL(nextmess+i, gensym(buf));
} else if (nextmess[i].a_type == A_DOLLSYM) {
***************
*** 2437,2441 ****
a1->a_type == A_SYMBOL && a1->a_symbol != a2->a_symbol ||
a1->a_type == A_FLOAT && a1->a_float != a2->a_float ||
! a1->a_type == A_DOLLAR && a1->a_w.w_index != a2->a_w.w_index ||
a1->a_type == A_DOLLSYM && a1->a_symbol != a2->a_symbol) goto nomatch;
}
--- 2412,2416 ----
a1->a_type == A_SYMBOL && a1->a_symbol != a2->a_symbol ||
a1->a_type == A_FLOAT && a1->a_float != a2->a_float ||
! a1->a_type == A_DOLLAR && a1->a_index != a2->a_index ||
a1->a_type == A_DOLLSYM && a1->a_symbol != a2->a_symbol) goto nomatch;
}
More information about the Pd-cvs
mailing list