aboutsummaryrefslogtreecommitdiff
path: root/packages/patches/allow_spaces_in_new_directory-0.41.4.patch
blob: 4db2a5372123197437b4a92ad37573bbfc18e217 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
Index: m_glob.c
===================================================================
--- m_glob.c	(revision 9721)
+++ m_glob.c	(working copy)
@@ -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);
Index: g_canvas.c
===================================================================
--- g_canvas.c	(revision 9726)
+++ g_canvas.c	(working copy)
@@ -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));