2 * Sherlock Library -- Setting of Process Title
4 * (c) 2001 Martin Mares <mj@ucw.cz>
14 static char *spt_start, *spt_end;
17 setproctitle_init(int argc, char **argv)
20 #if 0 /* FIXME: This doesn't work. Why? */
24 /* Create a backup copy of environment */
26 for (i=0; __environ[i]; i++)
27 len += strlen(__environ[i]) + 1;
28 env = xmalloc(sizeof(char *)*(i+1));
30 spt_end = __environ[0];
31 for (i=0; __environ[i]; i++)
34 len = strlen(__environ[i]) + 1;
35 memcpy(t, __environ[i], len);
37 spt_end = MAX(spt_end, __environ[i] + len);
41 spt_start = (byte *)(__environ+1);
46 spt_end = argv[argc-1] + strlen(argv[argc-1]) - 1;
52 setproctitle(char *msg, ...)
59 if (spt_end > spt_start)
61 n = vsnprintf(buf, sizeof(buf), msg, args);
62 if (n >= (int) sizeof(buf) || n < 0)
63 sprintf(buf, "<too-long>");
64 n = spt_end - spt_start;
65 strncpy(spt_start, buf, n);