/*--------------------------------------------------------------------------*/ int SendScilabJobs(char **jobs, int numberjobs) { #define BUFFERSECURITYSIZE 64 int retcode = -10; if (jobs) { int i = 0; int nbcharsjobs = 0; char *bufCommands = NULL; char **LOCALJOBS = NULL; int jobsloop = 0; LOCALJOBS = (char **)MALLOC(sizeof(char *) * numberjobs); if (LOCALJOBS) { for (i = 0; i < numberjobs; i++) { if (jobs[i]) { nbcharsjobs = nbcharsjobs + (int)strlen(jobs[i]); LOCALJOBS[i] = (char *)MALLOC(sizeof(char) * (strlen(jobs[i]) + BUFFERSECURITYSIZE)); if (LOCALJOBS[i]) { strcpy(LOCALJOBS[i], jobs[i]); } else { CleanBuffers(bufCommands, LOCALJOBS, numberjobs); fprintf(stderr, "Error: SendScilabJobs (1) 'LOCALJOBS[%d] MALLOC'.\n", i); return retcode; } } else { fprintf(stderr, "Error: SendScilabJobs (2) 'jobs[%d] == NULL'.\n", i); return retcode; } } bufCommands = (char *)MALLOC(sizeof(char) * (nbcharsjobs + numberjobs + BUFFERSECURITYSIZE)); if (bufCommands) { strcpy(bufCommands, ""); for (jobsloop = 0; jobsloop < numberjobs; jobsloop++) { if (jobs[jobsloop]) { char *currentline = NULL; BOOL AddSemiColon; if (jobsloop == 0) { AddSemiColon = FALSE; } else { AddSemiColon = TRUE; } DOTDOTLOOP: currentline = LOCALJOBS[jobsloop]; RemoveCharsFromEOL(currentline, '\n'); RemoveComments(currentline); RemoveCharsFromEOL(currentline, ' '); if (RemoveCharsFromEOL(currentline, '.')) { RemoveCharsFromEOL(currentline, ' '); strcat(bufCommands, currentline); jobsloop++; AddSemiColon = FALSE; goto DOTDOTLOOP; } else { if (!AddSemiColon) { strcat(currentline, ";"); } else { strcat(bufCommands, ";"); } strcat(bufCommands, currentline); } } } retcode = SendScilabJob(bufCommands); CleanBuffers(bufCommands, LOCALJOBS, numberjobs); } else { CleanBuffers(bufCommands, LOCALJOBS, numberjobs); fprintf(stderr, "Error: SendScilabJobs (3) 'bufCommands MALLOC'.\n"); return retcode; } } else { CleanBuffers(bufCommands, LOCALJOBS, numberjobs); fprintf(stderr, "Error: SendScilabJobs (4) 'LOCALJOBS == NULL'.\n"); return retcode; } } else { fprintf(stderr, "Error: SendScilabJobs (5) 'jobs == NULL'.\n"); retcode = -10; } return retcode; }
CFunctionMap::~CFunctionMap() { CleanBuffers(); }