In the Exec tag you can now specify args to pass, save you making sh-scripts in the pnd a lot of the time
pnd_pxml_get_unique_id ( h ),
pnd_pxml_get_exec ( h ),
pnd_pxml_get_startdir ( h ),
+ NULL /* args */,
clock,
options )
)
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 );
// should you wish to know where an app will get mounted, call this function to obtain a guess. The
char *unique_id;
char *icon;
char *exec;
+ char *execargs;
char *clockspeed;
char *startdir;
char *option_no_x11;
char *pnd_pxml_get_version_release ( pnd_pxml_handle h );
char *pnd_pxml_get_version_build ( pnd_pxml_handle h );
char *pnd_pxml_get_exec ( pnd_pxml_handle h );
+char *pnd_pxml_get_execargs ( pnd_pxml_handle h );
char *pnd_pxml_get_exec_option_no_x11 ( pnd_pxml_handle h );
char *pnd_pxml_get_main_category ( pnd_pxml_handle h );
char *pnd_pxml_get_subcategory1 ( pnd_pxml_handle h );
char *version_release;
char *version_build;
char *exec;
+ char *execargs;
char *main_category;
char *subcategory1;
char *subcategory2;
#define PND_PXML_ATTRNAME_EXECBG "background"
#define PND_PXML_ATTRNAME_EXECSTAL "standalone"
#define PND_PXML_ATTRNAME_EXECCMD "command"
+#define PND_PXML_ATTRNAME_EXECARGS "arguments"
#define PND_PXML_ATTRNAME_EXECWD "startdir"
#define PND_PXML_ATTRNAME_EXECNOX11 "no_x11"
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 [ 60 ];
argv [ f++ ] = "-s";
argv [ f++ ] = rel_startdir;
}
+ if ( args ) {
+ argv [ f++ ] = "-a";
+ argv [ f++ ] = args;
+ }
argv [ f++ ] = "-b";
argv [ f++ ] = unique_id;
if ( clockspeed ) {
strncat ( buffer, p -> startdir, 1020 );
}
+ // args
+ if ( p -> execargs ) {
+ strncat ( buffer, " -a ", 1020 );
+ strncat ( buffer, p -> execargs, 1020 );
+ }
+
// clockspeed
if ( p -> clockspeed && atoi ( p -> clockspeed ) != 0 ) {
strncat ( buffer, " -c ", 1020 );
if ( p -> unique_id ) { free ( p -> unique_id ); }
if ( p -> icon ) { free ( p -> icon ); }
if ( p -> exec ) { free ( p -> exec ); }
+ if ( p -> execargs ) { free ( p -> execargs ); }
if ( p -> clockspeed ) { free ( p -> clockspeed ); }
if ( p -> startdir ) { free ( p -> startdir ); }
if ( p -> option_no_x11 ) { free ( p -> option_no_x11 ); }
if ( pnd_pxml_get_exec ( pxmlh ) ) {
p -> exec = strdup ( pnd_pxml_get_exec ( pxmlh ) );
}
+ if ( pnd_pxml_get_execargs ( pxmlh ) ) {
+ p -> execargs = strdup ( pnd_pxml_get_execargs ( pxmlh ) );
+ }
if ( pnd_pxml_get_exec_option_no_x11 ( pxmlh ) ) {
p -> option_no_x11 = strdup ( pnd_pxml_get_exec_option_no_x11 ( pxmlh ) );
}
return ( p -> exec );
}
+char *pnd_pxml_get_execargs ( pnd_pxml_handle h ) {
+ pnd_pxml_t *p = (pnd_pxml_t*) h;
+ return ( p -> execargs );
+}
+
char *pnd_pxml_get_exec_option_no_x11 ( pnd_pxml_handle h ) {
pnd_pxml_t *p = (pnd_pxml_t*) h;
return ( p -> exec_no_x11 );
app->exec = pnd_pxml_get_attribute(pElem, PND_PXML_ATTRNAME_EXECCMD);
app->startdir = pnd_pxml_get_attribute(pElem, PND_PXML_ATTRNAME_EXECWD);
app->exec_no_x11 = pnd_pxml_get_attribute(pElem, PND_PXML_ATTRNAME_EXECNOX11);
+ app->execargs = pnd_pxml_get_attribute(pElem, PND_PXML_ATTRNAME_EXECARGS);
}
//The app icon:
}
printf ( "Trying to exec '%s'\n", fullpath );
- pnd_apps_exec ( pndrun, fullpath, d -> unique_id, d -> exec, d -> startdir, atoi ( d -> clockspeed ), PND_EXEC_OPTION_BLOCK );
+ pnd_apps_exec ( pndrun, fullpath, d -> unique_id, d -> exec, d -> startdir, NULL, atoi ( d -> clockspeed ), PND_EXEC_OPTION_BLOCK );
}
}