Merge branch 'master' of ssh://skeezixgit@git.openpandora.org/srv/git/pandora-libraries
[pandora-libraries.git] / lib / pnd_apps.c
index 72a251d..e1b7eb1 100644 (file)
 
 unsigned char pnd_apps_exec ( char *pndrun, char *fullpath, char *unique_id,
                              char *rel_exec, char *rel_startdir,
+                             char *args,
                              unsigned int clockspeed, unsigned int options )
 {
-  char *argv [ 20 ];
+  char *argv [ 60 ];
+  char s_clockspeed [ 100 ];
   int f;
 
   //printf ( "Entering pnd_apps_exec\n" );
@@ -57,8 +59,17 @@ unsigned char pnd_apps_exec ( char *pndrun, char *fullpath, char *unique_id,
     argv [ f++ ] = "-s";
     argv [ f++ ] = rel_startdir;
   }
+  if ( args ) {
+    argv [ f++ ] = "-a";
+    argv [ f++ ] = args;
+  }
   argv [ f++ ] = "-b";
   argv [ f++ ] = unique_id;
+  if ( clockspeed ) {
+    argv [ f++ ] = "-c";
+    snprintf ( s_clockspeed, 100, "%u", clockspeed );
+    argv [ f++ ] = s_clockspeed;
+  }
 
   // skip -a (arguments) for now
 
@@ -98,8 +109,8 @@ unsigned char pnd_apps_exec ( char *pndrun, char *fullpath, char *unique_id,
   // care if it crashed, was killed, was suspended, whatever.)
   if ( options & PND_EXEC_OPTION_BLOCK ) {
     int status = 0;
-    //waitpid ( f, &status. 0 /* no options */ );
-    wait ( &status );
+    waitpid ( f, &status, 0 /* no options */ );
+    //wait ( &status );
   }
 
   // printf ( "Exiting pnd_apps_exec\n" );