44c44
< int fcgi_spawn_connection(char *appPath, char *addr, unsigned short port, const char *unixsocket, int child_count, int pid_fd, int nofork) {
---
> int fcgi_spawn_connection(char *appPath, char *appArgs, char *addr, unsigned short port, const char *unixsocket, int child_count, int pid_fd, int nofork) {
167,170c167,178
< 			b = malloc(strlen("exec ") + strlen(appPath) + 1);
< 			strcpy(b, "exec ");
< 			strcat(b, appPath);
< 			
---
> 			if (appArgs) {
> 				b = malloc(strlen("exec ") + strlen(appPath) + strlen(" -c ") + strlen(appArgs) + 1);
> 				strcpy(b, "exec ");
> 				strcat(b, appPath);
> 				strcat(b, " -c ");
> 				strcat(b, appArgs);
> 			} else {
> 				b = malloc(strlen("exec ") + strlen(appPath) + 1);
> 				strcpy(b, "exec ");
> 				strcat(b, appPath);
> 			}
> 
249a258
> " -x <phpcfg>  similar to php's -c\n" \
268c277
< 	char *fcgi_app = NULL, *changeroot = NULL, *username = NULL, 
---
> 	char *fcgi_app = NULL, *fcgi_args = NULL, *changeroot = NULL, *username = NULL, 
279c288
<        while(-1 != (o = getopt(argc, argv, "c:f:g:hna:p:u:vC:s:P:"))) {
---
>        while(-1 != (o = getopt(argc, argv, "c:f:x:g:hna:p:u:vC:s:P:"))) {
281a291
> 		case 'x': fcgi_args = optarg; break;
432c442
<        return fcgi_spawn_connection(fcgi_app, addr, port, unixsocket, child_count, pid_fd, nofork);
---
>        return fcgi_spawn_connection(fcgi_app, fcgi_args, addr, port, unixsocket, child_count, pid_fd, nofork);
