[PD-cvs] SF.net SVN: pure-data: [9728] branches/pd-extended/v0-40/pd/src

eighthave at users.sourceforge.net eighthave at users.sourceforge.net
Mon Apr 28 06:13:52 CEST 2008


Revision: 9728
          http://pure-data.svn.sourceforge.net/pure-data/?rev=9728&view=rev
Author:   eighthave
Date:     2008-04-27 21:13:52 -0700 (Sun, 27 Apr 2008)

Log Message:
-----------
Wrote a function to switch the [pd filename] callback message to use a
A_GIMME instead of two symbols, thereby correctly receiving any directory
names with spaces in it.

Modified Paths:
--------------
    branches/pd-extended/v0-40/pd/src/g_canvas.c
    branches/pd-extended/v0-40/pd/src/m_glob.c

Modified: branches/pd-extended/v0-40/pd/src/g_canvas.c
===================================================================
--- branches/pd-extended/v0-40/pd/src/g_canvas.c	2008-04-28 00:20:13 UTC (rev 9727)
+++ branches/pd-extended/v0-40/pd/src/g_canvas.c	2008-04-28 04:13:52 UTC (rev 9728)
@@ -138,6 +138,18 @@
     canvas_newdirectory = dirsym;
 }
 
+void glob_setfilename_gimme(void *dummy, t_symbol *s, int argc, t_atom *argv)
+{
+    int bufsize;
+    char *buf;
+    t_binbuf *b = binbuf_new();
+    canvas_newfilename = atom_getsymbolarg(0, argc, argv);
+    binbuf_add(b, argc - 1, argv + 1);
+    binbuf_gettext(b, &buf, &bufsize);
+    buf[bufsize] = 0;
+    canvas_newdirectory = gensym(buf);
+}
+
 t_canvas *canvas_getcurrent(void)
 {
     return ((t_canvas *)pd_findbyclass(&s__X, canvas_class));

Modified: branches/pd-extended/v0-40/pd/src/m_glob.c
===================================================================
--- branches/pd-extended/v0-40/pd/src/m_glob.c	2008-04-28 00:20:13 UTC (rev 9727)
+++ branches/pd-extended/v0-40/pd/src/m_glob.c	2008-04-28 04:13:52 UTC (rev 9728)
@@ -11,7 +11,7 @@
 /* These "glob" routines, which implement messages to Pd, are from all
 over.  Some others are prototyped in m_imp.h as well. */
 
-void glob_setfilename(void *dummy, t_symbol *name, t_symbol *dir);
+void glob_setfilename_gimme(void *dummy, t_symbol *s, int argc, t_atom *argv);
 void glob_verifyquit(void *dummy, t_floatarg f);
 void glob_dsp(void *dummy, t_symbol *s, int argc, t_atom *argv);
 void glob_meters(void *dummy, t_floatarg f);
@@ -74,8 +74,8 @@
         CLASS_DEFAULT, A_NULL);
     class_addmethod(glob_pdobject, (t_method)glob_initfromgui, gensym("init"),
         A_GIMME, 0);
-    class_addmethod(glob_pdobject, (t_method)glob_setfilename, gensym("filename"),
-        A_SYMBOL, A_SYMBOL, 0);
+    class_addmethod(glob_pdobject, (t_method)glob_setfilename_gimme, 
+        gensym("filename"), A_GIMME, 0);
     class_addmethod(glob_pdobject, (t_method)glob_evalfile, gensym("open"),
         A_SYMBOL, A_SYMBOL, 0);
     class_addmethod(glob_pdobject, (t_method)glob_quit, gensym("quit"), 0);


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Pd-cvs mailing list