log_Printf(LogWARN, "Usage: %s\n", arg->cmd->syntax);
log_Printf(LogWARN, "usage: %s\n", arg->cmd->syntax);
LinkCommand(struct cmdargs const *arg){  if (arg->argc > arg->argn+1) {    char namelist[LINE_LEN];    struct datalink *cx;    char *name;    int result = 0;    if (!strcmp(arg->argv[arg->argn], "*")) {      struct datalink *dl;      cx = arg->bundle->links;      while (cx) {        /* Watch it, the command could be a ``remove'' */        dl = cx->next;        FindExec(arg->bundle, Commands, arg->argc, arg->argn+1, arg->argv,                 arg->prompt, cx);        for (cx = arg->bundle->links; cx; cx = cx->next)          if (cx == dl)            break;		/* Pointer's still valid ! */      }    } else {      strncpy(namelist, arg->argv[arg->argn], sizeof namelist - 1);      namelist[sizeof namelist - 1] = '\0';      for(name = strtok(namelist, ", "); name; name = strtok(NULL,", "))        if (!bundle2datalink(arg->bundle, name)) {          log_Printf(LogWARN, "link: %s: Invalid link name\n", name);          return 1;        }      strncpy(namelist, arg->argv[arg->argn], sizeof namelist - 1);      namelist[sizeof namelist - 1] = '\0';      for(name = strtok(namelist, ", "); name; name = strtok(NULL,", ")) {        cx = bundle2datalink(arg->bundle, name);        if (cx)          FindExec(arg->bundle, Commands, arg->argc, arg->argn+1, arg->argv,                   arg->prompt, cx);        else {          log_Printf(LogWARN, "link: %s: Invalidated link name !\n", name);          result++;        }      }    }    return result;  }  log_Printf(LogWARN, "Usage: %s\n", arg->cmd->syntax);  return 2;}