Blame SOURCES/scriptstub.c

6f9931
#include <stdio.h>
6f9931
#include <stdlib.h>
6f9931
#include <string.h>
6f9931
#include <unistd.h>
6f9931
6f9931
/* Translate call of myself into call of same-named script in LIBDIR */
6f9931
/* The macro LIBDIR must be defined as a double-quoted string */
6f9931
6f9931
int main (int argc, char **argv)
6f9931
{
6f9931
  char *basename;
6f9931
  char *fullname;
6f9931
  char **newargs;
6f9931
  int i;
6f9931
6f9931
  basename = strrchr(argv[0], '/');
6f9931
  if (basename)
6f9931
    basename++;
6f9931
  else
6f9931
    basename = argv[0];
6f9931
  fullname = malloc(strlen(LIBDIR) + strlen(basename) + 2);
6f9931
  sprintf(fullname, "%s/%s", LIBDIR, basename);
6f9931
  newargs = malloc((argc+1) * sizeof(char *));
6f9931
  newargs[0] = fullname;
6f9931
  for (i = 1; i < argc; i++)
6f9931
    newargs[i] = argv[i];
6f9931
  newargs[argc] = NULL;
6f9931
6f9931
  execvp(fullname, newargs);
6f9931
6f9931
  return 1;
6f9931
}