/* * inststr.c * * Little function to change the name of a process * * Originally from C. S. Ananian's pptpclient */ #ifdef HAVE_CONFIG_H #include "config.h" #endif #ifndef HAVE_SETPROCTITLE #include "inststr.h" #include "compat.h" #include void inststr(int argc, char **argv, char *src) { if (strlen(src) <= strlen(argv[0])) { char *ptr, **pptr; for (ptr = argv[0]; *ptr; *(ptr++) = '\0') ; strcpy(argv[0], src); for (pptr = argv + 1; *pptr; pptr++) for (ptr = *pptr; *ptr; *(ptr++) = '\0') ; } else { /* Originally from the source to perl 4.036 (assigning to $0) */ char *ptr, *ptr2; int count; ptr = argv[0] + strlen(argv[0]); for (count = 1; count < argc; count++) { if (argv[count] == ptr + 1) { ptr++; ptr += strlen(ptr); } } count = 0; for (ptr2 = argv[0]; ptr2 <= ptr; ptr2++) { *ptr2 = '\0'; count++; } strlcpy(argv[0], src, count); } } #endif /* !HAVE_SETPROCTITLE */