[PD-cvs] SF.net SVN: pure-data: [9849] branches/pd-extended/v0-40/externals/hcs

eighthave at users.sourceforge.net eighthave at users.sourceforge.net
Sun May 18 20:02:14 CEST 2008


Revision: 9849
          http://pure-data.svn.sourceforge.net/pure-data/?rev=9849&view=rev
Author:   eighthave
Date:     2008-05-18 11:02:14 -0700 (Sun, 18 May 2008)

Log Message:
-----------
ported to Windows/MinGW

Modified Paths:
--------------
    branches/pd-extended/v0-40/externals/hcs/setenv.c
    branches/pd-extended/v0-40/externals/hcs/unsetenv.c

Modified: branches/pd-extended/v0-40/externals/hcs/setenv.c
===================================================================
--- branches/pd-extended/v0-40/externals/hcs/setenv.c	2008-05-18 17:31:21 UTC (rev 9848)
+++ branches/pd-extended/v0-40/externals/hcs/setenv.c	2008-05-18 18:02:14 UTC (rev 9849)
@@ -72,9 +72,13 @@
 static void setenv_symbol(t_setenv* x, t_symbol *s)
 {
 	DEBUG(post("setenv_output"););
+#ifdef _WIN32
+    SetEnvironmentVariable(x->x_variable_name->s_name, s->s_name);
+#else
     if(x->x_overwrite == 0)
         post("[setenv]: not in overwrite mode.");
-    setenv(x->x_variable_name->s_name, s->s_name, x->x_overwrite); // 1 means overwrite
+    setenv(x->x_variable_name->s_name, s->s_name, x->x_overwrite);
+#endif
     setenv_output(x);
 }
 

Modified: branches/pd-extended/v0-40/externals/hcs/unsetenv.c
===================================================================
--- branches/pd-extended/v0-40/externals/hcs/unsetenv.c	2008-05-18 17:31:21 UTC (rev 9848)
+++ branches/pd-extended/v0-40/externals/hcs/unsetenv.c	2008-05-18 18:02:14 UTC (rev 9849)
@@ -42,9 +42,9 @@
 static t_class *unsetenv_class;
 
 typedef struct _unsetenv {
-	t_object            x_obj;
+    t_object            x_obj;
     t_symbol*           x_variable_name;
-	t_outlet*           x_data_outlet;
+    t_outlet*           x_data_outlet;
 } t_unsetenv;
 
 /*------------------------------------------------------------------------------
@@ -53,46 +53,56 @@
 
 static void unsetenv_bang(t_unsetenv* x)
 {
-	DEBUG(post("unsetenv_bang"););
+    DEBUG(post("unsetenv_bang"););
 
+#ifdef _WIN32
     if(x->x_variable_name != &s_)
+    {
+        char buf[MAXPDSTRING];
+        strncpy(buf, x->x_variable_name->s_name, MAXPDSTRING - 1);
+        strcat(buf, "=");
+        putenv(buf);
+    }
+#else
+    if(x->x_variable_name != &s_)
         unsetenv(x->x_variable_name->s_name);
+#endif
 }
 
 
 
 static void unsetenv_symbol(t_unsetenv* x, t_symbol *s)
 {
-	DEBUG(post("unsetenv_bang"););
+    DEBUG(post("unsetenv_bang"););
     x->x_variable_name = s;
 }
 
 
 static void *unsetenv_new(t_symbol* s) 
 {
-	DEBUG(post("unsetenv_new"););
-	t_unsetenv *x = (t_unsetenv *)pd_new(unsetenv_class);
+    DEBUG(post("unsetenv_new"););
+    t_unsetenv *x = (t_unsetenv *)pd_new(unsetenv_class);
 
     symbolinlet_new(&x->x_obj, &x->x_variable_name);
 
     x->x_variable_name = s;
 
-	return (x);
+    return (x);
 }
 
 
 void unsetenv_setup(void) 
 {
-	DEBUG(post("unsetenv_setup"););
-	unsetenv_class = class_new(gensym("unsetenv"), 
+    DEBUG(post("unsetenv_setup"););
+    unsetenv_class = class_new(gensym("unsetenv"), 
                              (t_newmethod)unsetenv_new, 
                              0,
                              sizeof(t_unsetenv), 
                              0,
                              A_DEFSYMBOL, 
                              0);
-	/* add inlet datatype methods */
-	class_addbang(unsetenv_class, (t_method)unsetenv_bang);
-	class_addsymbol(unsetenv_class, (t_method)unsetenv_symbol);
+    /* add inlet datatype methods */
+    class_addbang(unsetenv_class, (t_method)unsetenv_bang);
+    class_addsymbol(unsetenv_class, (t_method)unsetenv_symbol);
 }
 


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