12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- /*
- * 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 <string.h>
- 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 */
|