- modified and improved various env. drivers
- implemented string array object
This commit is contained in:
24
sugar.c
24
sugar.c
@ -9,6 +9,7 @@ Markus Zolliker, March 2005
|
||||
|
||||
#include <stdio.h>
|
||||
#include "sics.h"
|
||||
#include "splitter.h"
|
||||
#include "sugar.h"
|
||||
#include "pardef.h"
|
||||
|
||||
@ -20,12 +21,25 @@ typedef struct {
|
||||
|
||||
int SugarCommand(SConnection *con, SicsInterp *sics, void *data, int argc, char *argv[]) {
|
||||
Sugar *sugar = data;
|
||||
char value[256], buf[256];
|
||||
|
||||
char *cmd;
|
||||
char **args;
|
||||
char buf[256];
|
||||
int i;
|
||||
|
||||
assert(sugar);
|
||||
ParArg2Text(argc-1, argv+1, value, sizeof value);
|
||||
snprintf(buf, sizeof buf, "%s %s", sugar->alias, value);
|
||||
return SCInvoke(con, sics, buf);
|
||||
if (argc < 1) return 0;
|
||||
args = calloc(argc, sizeof(char *));
|
||||
if (!args) return 0;
|
||||
args[0] = sugar->alias;
|
||||
for (i=1; i<argc; i++) {
|
||||
args[i] = argv[i];
|
||||
}
|
||||
cmd = Arg2Tcl(argc+1, args, buf, sizeof(buf));
|
||||
free(args);
|
||||
if (!cmd) return 0;
|
||||
i = SCInvoke(con, sics, cmd);
|
||||
if (cmd != buf) free(cmd);
|
||||
return i;
|
||||
}
|
||||
|
||||
void SugarDelete(void *data) {
|
||||
|
Reference in New Issue
Block a user