-/* cmd_neonserv_extscript.c - NeonServ v5.1
+/* cmd_neonserv_extscript.c - NeonServ v5.2
* Copyright (C) 2011 Philipp Kreil (pk910)
*
* This program is free software: you can redistribute it and/or modify
int commandpos = 0;
char part[MAXLEN];
int partpos;
+ int escape_param;
int answere_channel = 0;
//check first arg
if(argc && !stricmp(argv[0], "toys")) {
commandpos = sprintf(command, "%s", argv[0]);
for(i = 1; i < argc-1; i++) {
partpos = 0;
+ escape_param = 1;
if(argv[i][0] == '$') {
argv[i]++;
if(argv[i][strlen(argv[i])-1] == '-') {
}
} else {
partpos = sprintf(part, "%s", argv[i]);
+ escape_param = 0;
}
//escape shell argument
command[commandpos++] = ' ';
- command[commandpos++] = '\'';
- for(j = 0; j < partpos; j++) {
- if(part[j] == '\'') {
- command[commandpos++] = '\'';
- command[commandpos++] = '\\';
- command[commandpos++] = '\'';
- command[commandpos++] = '\'';
- } else
- command[commandpos++] = part[j];
- }
- command[commandpos++] = '\'';
+ if(escape_param) {
+ command[commandpos++] = '\'';
+ for(j = 0; j < partpos; j++) {
+ if(part[j] == '\'') {
+ command[commandpos++] = '\'';
+ command[commandpos++] = '\\';
+ command[commandpos++] = '\'';
+ command[commandpos++] = '\'';
+ } else
+ command[commandpos++] = part[j];
+ }
+ command[commandpos++] = '\'';
+ } else
+ commandpos += sprintf(command + commandpos, " %s", part);
}
command[commandpos] = '\0';
//we should now have a valid command