aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans-Christoph Steiner <eighthave@users.sourceforge.net>2010-09-17 17:11:34 +0000
committerHans-Christoph Steiner <eighthave@users.sourceforge.net>2010-09-17 17:11:34 +0000
commit77ba1c5c22800eddd11166109147f8f4e873dae2 (patch)
treecddc3315f4931aa967647865339fe2113fd78ad4
parente0e4ed2888ebfbb0d32d2106d78ef61b006f4004 (diff)
merged relevant changes from Pd-extended 0.42
svn path=/trunk/externals/ggee/; revision=14153
-rw-r--r--control/shell-help.pd26
-rw-r--r--control/shell.c40
-rw-r--r--gui/button.c17
-rw-r--r--gui/fatom.h18
-rw-r--r--gui/gcanvas.c10
-rw-r--r--gui/image.c10
-rw-r--r--gui/toddle.c10
-rw-r--r--gui/w_envgen.h4
8 files changed, 57 insertions, 78 deletions
diff --git a/control/shell-help.pd b/control/shell-help.pd
index e2c608a..4b07c0c 100644
--- a/control/shell-help.pd
+++ b/control/shell-help.pd
@@ -10,14 +10,12 @@
#X msg 12 193 xedit;
#X msg 36 213 /usr/bin/perl;
#X text 343 79 Getting the time;
-#X obj 362 213 shell;
-#X text 345 174 Getting the date;
-#X symbolatom 362 254 0 0 0 0 - - -;
-#X msg 362 192 date +%Y.%m.%d;
-#X obj 362 233 symbol;
-#X obj 409 214 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 404 118 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+#X obj 362 233 shell;
+#X text 345 194 Getting the date;
+#X symbolatom 362 274 0 0 0 0 - - -;
+#X msg 362 212 date +%Y.%m.%d;
+#X obj 362 253 symbol;
+#X obj 409 234 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 65 126 print DONE;
#X obj 35 147 print STDOUT;
@@ -26,12 +24,15 @@ STDIN is received on the inlet. STDOUT is output on the left inlet
\, STDERR is output to the Pd console. When execution is complete \,
the right outlet is banged.;
#X floatatom 61 234 5 0 0 0 - - -;
-#X connect 0 0 19 0;
-#X connect 0 1 18 0;
+#X floatatom 408 142 5 0 0 0 - - -;
+#X obj 408 161 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X connect 0 0 18 0;
+#X connect 0 1 17 0;
#X connect 1 0 0 0;
#X connect 2 0 4 0;
#X connect 4 0 3 0;
-#X connect 4 1 17 0;
+#X connect 4 1 21 0;
#X connect 6 0 5 0;
#X connect 7 0 5 0;
#X connect 8 0 5 0;
@@ -40,4 +41,5 @@ the right outlet is banged.;
#X connect 11 1 16 0;
#X connect 14 0 11 0;
#X connect 15 0 13 0;
-#X connect 21 0 5 0;
+#X connect 20 0 5 0;
+#X connect 21 0 22 0;
diff --git a/control/shell.c b/control/shell.c
index 79d89ca..f71ddce 100644
--- a/control/shell.c
+++ b/control/shell.c
@@ -198,7 +198,7 @@ static void shell_send(t_shell *x, t_symbol *s,int ac, t_atom *at)
static void shell_anything(t_shell *x, t_symbol *s, int ac, t_atom *at)
{
int i;
- char* argv[20];
+ char* argv[255];
t_symbol* sym;
if (!strcmp(s->s_name,"send")) {
@@ -230,39 +230,35 @@ static void shell_anything(t_shell *x, t_symbol *s, int ac, t_atom *at)
sys_addpollfn(x->fdpipe[0],shell_read,x);
if (!(x->pid = fork())) {
- int status;
- char* cmd = getbytes(1024);
- char* tcmd = getbytes(1024);
- strcpy(cmd,s->s_name);
-
-#if 0
+ /* reassign stdout */
+ dup2(x->fdpipe[1],1);
+ dup2(x->fdinpipe[1],0);
+
+ /* drop privileges */
+ drop_priority();
+ seteuid(getuid()); /* lose setuid priveliges */
+
+#ifdef __APPLE__
for (i=1;i<=ac;i++) {
argv[i] = getbytes(255);
atom_string(at,argv[i],255);
-/* post("argument %s",argv[i]); */
at++;
}
argv[i] = 0;
-#endif
- for (i=1;i<=ac;i++) {
+ execvp(s->s_name,argv);
+#else
+ char* cmd = getbytes(1024);
+ char* tcmd = getbytes(1024);
+ strcpy(cmd,s->s_name);
+ for (i=1;i<=ac;i++) {
atom_string(at,tcmd,255);
strcat(cmd," ");
strcat(cmd,tcmd);
at++;
}
-
-
- /* reassign stdout */
- dup2(x->fdpipe[1],1);
- dup2(x->fdinpipe[1],0);
-
- /* drop privileges */
- drop_priority();
- seteuid(getuid()); /* lose setuid priveliges */
-
- post("executing %s",cmd);
+ verbose(4,"executing %s",cmd);
system(cmd);
-// execvp(s->s_name,argv);
+#endif /* __APPLE__ */
exit(0);
}
x->x_del = 4;
diff --git a/gui/button.c b/gui/button.c
index 4b29dd7..2e051b0 100644
--- a/gui/button.c
+++ b/gui/button.c
@@ -10,10 +10,6 @@
#pragma warning( disable : 4305 )
#endif
-#if PD_MINOR_VERSION < 37
-#define t_rtext t_text
-#endif
-
#ifndef IOWIDTH
#define IOWIDTH 4
#endif
@@ -197,7 +193,7 @@ static void button_displace(t_gobj *z, t_glist *glist,
text_xpix(&x->x_obj, glist) + x->x_rect_width, text_ypix(&x->x_obj, glist) + x->x_rect_height-2);
button_drawme(x, glist, 0);
- canvas_fixlinesfor(glist_getcanvas(glist),(t_text*) x);
+ canvas_fixlinesfor(glist,(t_text*) x);
}
DEBUG(post("displace end");)
}
@@ -233,27 +229,20 @@ static void button_activate(t_gobj *z, t_glist *glist, int state)
static void button_delete(t_gobj *z, t_glist *glist)
{
t_text *x = (t_text *)z;
- canvas_deletelinesfor(glist_getcanvas(glist), x);
+ canvas_deletelinesfor(glist, x);
}
static void button_vis(t_gobj *z, t_glist *glist, int vis)
{
t_button* s = (t_button*)z;
- t_rtext *y;
DEBUG(post("vis: %d",vis);)
if (vis) {
-#ifdef PD_MINOR_VERSION
- y = (t_rtext *) rtext_new(glist, (t_text *)z);
-#else
- y = (t_rtext *) rtext_new(glist, (t_text *)z,0,0);
-#endif
button_drawme(s, glist, 1);
}
else {
- y = glist_findrtext(glist, (t_text *)z);
button_erase(s,glist);
- rtext_free(y);
+ sys_unqueuegui(z);
}
}
diff --git a/gui/fatom.h b/gui/fatom.h
index 61d86dd..9f2dbac 100644
--- a/gui/fatom.h
+++ b/gui/fatom.h
@@ -272,7 +272,7 @@ static void fatom_displace(t_gobj *z, t_glist *glist,
text_xpix(&x->x_obj, glist) + x->x_rect_width, text_ypix(&x->x_obj, glist) + x->x_rect_height);
fatom_drawme(x, glist, 0);
- canvas_fixlinesfor(glist_getcanvas(glist),(t_text*) x);
+ canvas_fixlinesfor(glist,(t_text*) x);
}
DEBUG(post("displace end");)
}
@@ -308,27 +308,19 @@ static void fatom_activate(t_gobj *z, t_glist *glist, int state)
static void fatom_delete(t_gobj *z, t_glist *glist)
{
t_text *x = (t_text *)z;
- canvas_deletelinesfor(glist_getcanvas(glist), x);
+ canvas_deletelinesfor(glist, x);
}
static void fatom_vis(t_gobj *z, t_glist *glist, int vis)
{
- t_fatom* s = (t_fatom*)z;
- t_rtext *y;
+ t_fatom* x = (t_fatom*)z;
DEBUG(post("vis: %d",vis);)
if (vis) {
-#ifdef PD_MINOR_VERSION
- y = (t_rtext *) rtext_new(glist, (t_text *)z);
-#else
- y = (t_rtext *) rtext_new(glist, (t_text *)z,0,0);
-#endif
- fatom_drawme(s, glist, 1);
+ fatom_drawme(x, glist, 1);
}
else {
- y = glist_findrtext(glist, (t_text *)z);
- fatom_erase(s,glist);
- rtext_free(y);
+ fatom_erase(x,glist);
}
}
diff --git a/gui/gcanvas.c b/gui/gcanvas.c
index 498d04a..f5661d1 100644
--- a/gui/gcanvas.c
+++ b/gui/gcanvas.c
@@ -220,7 +220,7 @@ static void gcanvas_displace(t_gobj *z, t_glist *glist,
x->x_obj.te_xpix += dx;
x->x_obj.te_ypix += dy;
gcanvas_drawme(x, glist, 0);
- canvas_fixlinesfor(glist_getcanvas(glist),(t_text*) x);
+ canvas_fixlinesfor(glist,(t_text*) x);
}
static void gcanvas_select(t_gobj *z, t_glist *glist, int state)
@@ -240,17 +240,17 @@ static void gcanvas_activate(t_gobj *z, t_glist *glist, int state)
static void gcanvas_delete(t_gobj *z, t_glist *glist)
{
t_text *x = (t_text *)z;
- canvas_deletelinesfor(glist_getcanvas(glist), x);
+ canvas_deletelinesfor(glist, x);
}
static void gcanvas_vis(t_gobj *z, t_glist *glist, int vis)
{
- t_gcanvas* s = (t_gcanvas*)z;
+ t_gcanvas* x = (t_gcanvas*)z;
if (vis)
- gcanvas_drawme(s, glist, 1);
+ gcanvas_drawme(x, glist, 1);
else
- gcanvas_erase(s,glist);
+ gcanvas_erase(x,glist);
}
/* can we use the normal text save function ?? */
diff --git a/gui/image.c b/gui/image.c
index 4c02a09..471867b 100644
--- a/gui/image.c
+++ b/gui/image.c
@@ -105,7 +105,7 @@ static void image_displace(t_gobj *z, t_glist *glist,
text_xpix(&x->x_obj, glist) + x->x_width, text_ypix(&x->x_obj, glist) + x->x_height);
image_drawme(x, glist, 0);
- canvas_fixlinesfor(glist_getcanvas(glist),(t_text*) x);
+ canvas_fixlinesfor(glist,(t_text*) x);
}
static void image_select(t_gobj *z, t_glist *glist, int state)
@@ -139,17 +139,17 @@ static void image_activate(t_gobj *z, t_glist *glist, int state)
static void image_delete(t_gobj *z, t_glist *glist)
{
t_text *x = (t_text *)z;
- canvas_deletelinesfor(glist_getcanvas(glist), x);
+ canvas_deletelinesfor(glist, x);
}
static void image_vis(t_gobj *z, t_glist *glist, int vis)
{
- t_image* s = (t_image*)z;
+ t_image* x = (t_image*)z;
if (vis)
- image_drawme(s, glist, 1);
+ image_drawme(x, glist, 1);
else
- image_erase(s,glist);
+ image_erase(x,glist);
}
/* can we use the normal text save function ?? */
diff --git a/gui/toddle.c b/gui/toddle.c
index 9abf281..d7b9f31 100644
--- a/gui/toddle.c
+++ b/gui/toddle.c
@@ -198,7 +198,7 @@ static void toddle_displace(t_gobj *z, t_glist *glist,
x->x_obj.te_xpos += dx;
x->x_obj.te_ypos += dy;
toddle_drawme(x, glist, 0);
- canvas_fixlinesfor(glist_getcanvas(glist),(t_text*) x);
+ canvas_fixlinesfor(glist,(t_text*) x);
}
static void toddle_select(t_gobj *z, t_glist *glist, int state)
@@ -219,17 +219,17 @@ static void toddle_activate(t_gobj *z, t_glist *glist, int state)
static void toddle_delete(t_gobj *z, t_glist *glist)
{
t_text *x = (t_text *)z;
- canvas_deletelinesfor(glist_getcanvas(glist), x);
+ canvas_deletelinesfor(glist, x);
}
static void toddle_vis(t_gobj *z, t_glist *glist, int vis)
{
- t_toddle* s = (t_toddle*)z;
+ t_toddle* x = (t_toddle*)z;
if (vis)
- toddle_drawme(s, glist, 1);
+ toddle_drawme(x, glist, 1);
else
- toddle_erase(s,glist);
+ toddle_erase(x,glist);
}
/* can we use the normal text save function ?? */
diff --git a/gui/w_envgen.h b/gui/w_envgen.h
index 9cd24f7..f664d66 100644
--- a/gui/w_envgen.h
+++ b/gui/w_envgen.h
@@ -324,7 +324,7 @@ static void envgen_displace(t_gobj *z, t_glist *glist,
x->x_obj.te_ypix += dy;
envgen_drawme(x, glist, 0);
- canvas_fixlinesfor(glist_getcanvas(glist),(t_text*) x);
+ canvas_fixlinesfor(glist,(t_text*) x);
}
static void envgen_select(t_gobj *z, t_glist *glist, int state)
@@ -345,7 +345,7 @@ static void envgen_activate(t_gobj *z, t_glist *glist, int state)
static void envgen_delete(t_gobj *z, t_glist *glist)
{
t_text *x = (t_text *)z;
- canvas_deletelinesfor(glist_getcanvas(glist), x);
+ canvas_deletelinesfor(glist, x);
}