[PD-cvs] pd/src m_pd.h, 1.4.4.11.2.33.2.53, 1.4.4.11.2.33.2.54 desire.c, 1.1.2.217.2.163, 1.1.2.217.2.164
Mathieu Bouchard
matju at users.sourceforge.net
Wed Jul 18 20:36:57 CEST 2007
Update of /cvsroot/pure-data/pd/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24566
Modified Files:
Tag: desiredata
m_pd.h desire.c
Log Message:
removed some MAXPDSTRING, including a no-size-limit mode to canvas_makefilename
Index: m_pd.h
===================================================================
RCS file: /cvsroot/pure-data/pd/src/m_pd.h,v
retrieving revision 1.4.4.11.2.33.2.53
retrieving revision 1.4.4.11.2.33.2.54
diff -C2 -d -r1.4.4.11.2.33.2.53 -r1.4.4.11.2.33.2.54
*** m_pd.h 18 Jul 2007 16:12:18 -0000 1.4.4.11.2.33.2.53
--- m_pd.h 18 Jul 2007 18:36:52 -0000 1.4.4.11.2.33.2.54
***************
*** 460,464 ****
EXTERN t_symbol *canvas_getcurrentdir(void);
EXTERN t_glist *canvas_getcurrent(void);
! EXTERN void canvas_makefilename(t_glist *c, char *file, char *result, int resultsize);
EXTERN t_symbol *canvas_getdir(t_glist *x);
EXTERN void canvas_dataproperties(t_glist *x, t_scalar *sc, t_binbuf *b);
--- 460,465 ----
EXTERN t_symbol *canvas_getcurrentdir(void);
EXTERN t_glist *canvas_getcurrent(void);
! /* if result==0 then it will allocate a result and return it */
! EXTERN char *canvas_makefilename(t_glist *c, char *file, char *result, int resultsize);
EXTERN t_symbol *canvas_getdir(t_glist *x);
EXTERN void canvas_dataproperties(t_glist *x, t_scalar *sc, t_binbuf *b);
Index: desire.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/desire.c,v
retrieving revision 1.1.2.217.2.163
retrieving revision 1.1.2.217.2.164
diff -C2 -d -r1.1.2.217.2.163 -r1.1.2.217.2.164
*** desire.c 18 Jul 2007 18:11:40 -0000 1.1.2.217.2.163
--- desire.c 18 Jul 2007 18:36:52 -0000 1.1.2.217.2.164
***************
*** 417,435 ****
t_symbol *canvas_getdir(t_canvas *x) {return canvas_getenv( x)->dir;}
! void canvas_makefilename(t_canvas *x, char *file, char *result, int resultsize) {
char *dir = canvas_getenv(x)->dir->name;
if (file[0] == '/' || (file[0] && file[1] == ':') || !*dir) {
strncpy(result, file, resultsize);
result[resultsize-1] = 0;
} else {
! int nleft;
! strncpy(result, dir, resultsize);
! result[resultsize-1] = 0;
! nleft = resultsize - strlen(result) - 1;
! if (nleft <= 0) return;
! strcat(result, "/");
! strncat(result, file, nleft);
! result[resultsize-1] = 0;
}
}
--- 417,431 ----
t_symbol *canvas_getdir(t_canvas *x) {return canvas_getenv( x)->dir;}
! char *canvas_makefilename(t_canvas *x, char *file, char *result, int resultsize) {
char *dir = canvas_getenv(x)->dir->name;
if (file[0] == '/' || (file[0] && file[1] == ':') || !*dir) {
+ if (!result) return strdup(file);
strncpy(result, file, resultsize);
result[resultsize-1] = 0;
} else {
! if (result) {snprintf(result,resultsize,"%s/%s",dir,file); result[resultsize-1] = 0;}
! else asprintf(&result, "%s/%s",dir,file);
}
+ return result;
}
***************
*** 2008,2022 ****
static void garray_write(t_garray *x, t_symbol *filename) {
- char buf[MAXPDSTRING];
int yonset, elemsize;
t_array *array = garray_getarray_floatonly(x, &yonset, &elemsize);
TEMPLATE_FLOATY(x,array,)
! canvas_makefilename(canvas_getcanvas(x->canvas), filename->name, buf, MAXPDSTRING);
sys_bashfilename(buf, buf);
FILE *fd = fopen(buf, "w");
if (!fd) {
pd_error(x,"can't create file '%s'", buf);
return;
}
for (int i=0; i < array->n; i++) {
if (fprintf(fd, "%g\n", *(float *)(((array->vec + sizeof(t_word) * i)) + yonset)) < 1) {
--- 2004,2019 ----
static void garray_write(t_garray *x, t_symbol *filename) {
int yonset, elemsize;
t_array *array = garray_getarray_floatonly(x, &yonset, &elemsize);
TEMPLATE_FLOATY(x,array,)
! char *buf = canvas_makefilename(canvas_getcanvas(x->canvas),filename->name,0,0);
sys_bashfilename(buf, buf);
FILE *fd = fopen(buf, "w");
if (!fd) {
pd_error(x,"can't create file '%s'", buf);
+ free(buf);
return;
}
+ free(buf);
for (int i=0; i < array->n; i++) {
if (fprintf(fd, "%g\n", *(float *)(((array->vec + sizeof(t_word) * i)) + yonset)) < 1) {
***************
*** 2804,2810 ****
static void canvas_write(t_canvas *x, t_symbol *filename, t_symbol *format) {
- char buf[MAXPDSTRING];
t_canvas *canvas = canvas_getcanvas(x);
! canvas_makefilename(canvas, filename->name, buf, MAXPDSTRING);
int cr = strcmp(format->name, "cr")==0;
if (!cr && *format->name) pd_error(x,"canvas_write: unknown flag: %s", format->name);
--- 2801,2806 ----
static void canvas_write(t_canvas *x, t_symbol *filename, t_symbol *format) {
t_canvas *canvas = canvas_getcanvas(x);
! char *buf = canvas_makefilename(canvas,filename->name,0,0);
int cr = strcmp(format->name, "cr")==0;
if (!cr && *format->name) pd_error(x,"canvas_write: unknown flag: %s", format->name);
***************
*** 2814,2817 ****
--- 2810,2814 ----
binbuf_free(b);
}
+ free(buf);
}
***************
*** 4702,4710 ****
static void drawnumber_key(void *z, t_floatarg fkey) {
! t_drawnumber *x = (t_drawnumber *)z;
! t_slot *f = &x->value;
int key = (int)fkey;
- char sbuf[MAXPDSTRING];
- t_atom at;
if (!gpointer_check(&dn.gpointer, 0)) {
post("drawnumber_motion: scalar disappeared");
--- 4699,4704 ----
static void drawnumber_key(void *z, t_floatarg fkey) {
! //t_drawnumber *x = (t_drawnumber *)z;
int key = (int)fkey;
if (!gpointer_check(&dn.gpointer, 0)) {
post("drawnumber_motion: scalar disappeared");
***************
*** 4713,4742 ****
if (key == 0) return;
if (dn.symbol) {
! /* key entry for a symbol field */
! if (dn.firstkey) sbuf[0] = 0;
! else strncpy(sbuf, template_getsymbol(dn.t, f->varsym, dn.wp, 1)->name, MAXPDSTRING);
! sbuf[MAXPDSTRING-1] = 0;
! if (key == '\b') {
! if (*sbuf) sbuf[strlen(sbuf)-1] = 0;
! } else {
! sbuf[strlen(sbuf)+1] = 0;
! sbuf[strlen(sbuf)] = key;
! }
} else {
! /* key entry for a numeric field. This is just a stopgap. */
! if (dn.firstkey) sbuf[0] = 0;
! else sprintf(sbuf, "%g", template_getfloat(dn.t, f->varsym, dn.wp, 1));
! dn.firstkey = (key == '\n');
! if (key == '\b') {
! if (*sbuf) sbuf[strlen(sbuf)-1] = 0;
! } else {
! sbuf[strlen(sbuf)+1] = 0;
! sbuf[strlen(sbuf)] = key;
! }
! float newf;
! if (sscanf(sbuf, "%g", &newf) < 1) newf = 0;
! template_setfloat(dn.t, f->varsym, dn.wp, newf, 1);
! if (dn.scalar) template_notifyforscalar(dn.t, dn.canvas, dn.scalar, gensym("change"), 1, &at);
! if (dn.scalar) gobj_changed(dn.scalar,0); else gobj_changed(dn.array,0);
}
}
--- 4707,4721 ----
if (key == 0) return;
if (dn.symbol) {
! /* key entry for a symbol field... has to be rewritten in Tcl similarly to TextBox for edition of [drawsymbol] */
! // template_getsymbol(dn.t, f->varsym, dn.wp, 1)->name;
} else {
! /* key entry for a numeric field... same here... [drawnumber] */
! //t_slot *f = &x->value;
! //float newf;
! //if (sscanf(sbuf, "%g", &newf) < 1) newf = 0;
! //template_setfloat(dn.t, f->varsym, dn.wp, newf, 1);
! //t_atom at;
! //if (dn.scalar) template_notifyforscalar(dn.t, dn.canvas, dn.scalar, gensym("change"), 1, &at);
! //if (dn.scalar) gobj_changed(dn.scalar,0); else gobj_changed(dn.array,0);
}
}
More information about the Pd-cvs
mailing list