aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pies/pies.c2
-rw-r--r--pies/progman.c20
2 files changed, 15 insertions, 7 deletions
diff --git a/pies/pies.c b/pies/pies.c
index 52035e0..46df904 100644
--- a/pies/pies.c
+++ b/pies/pies.c
@@ -1252,8 +1252,10 @@ main (int argc, char **argv)
{
int rc;
int index;
+ extern char **environ;
mf_init_nls ();
+ mf_proctitle_init (argc, argv, environ);
if (!program_invocation_short_name)
program_invocation_short_name = argv[0];
argp_program_version_hook = version;
diff --git a/pies/progman.c b/pies/progman.c
index 213b06a..4fa6c81 100644
--- a/pies/progman.c
+++ b/pies/progman.c
@@ -162,13 +162,14 @@ static char *
retr_tag (const char *tag, int type)
{
static char *retrstr[2] = { "stdout", "stderr" };
- size_t taglen = strlen (tag) + 1 + strlen (retrstr[type]);
- char *retr_tag = xmalloc (taglen + 1);
-
- strcpy (retr_tag, tag);
- strcat (retr_tag, "/");
- strcat (retr_tag, retrstr[type]);
- return retr_tag;
+ char *str = NULL;
+ if (type < MU_ARRAY_SIZE(retrstr))
+ asprintf (&str, "%s/%s", tag, retrstr[type]);
+ else
+ asprintf (&str, "%s/%d", tag, type);
+ if (!tag)
+ xalloc_die ();
+ return str;
}
void
@@ -355,6 +356,7 @@ open_retranslator (struct prog *master, int type)
size_t size = 0;
pid_t pid;
int i;
+ char *tag;
if (master->v.p.comp->retr[type] == -1)
return -1;
@@ -363,6 +365,10 @@ open_retranslator (struct prog *master, int type)
{
case 0:
/* Retranslator process */
+ tag = retr_tag (master->tag, type);
+ mf_proctitle_format ("pies: %s retranslator", tag);
+ free (tag);
+
for (i = getmaxfd (); i >= 0; i--)
{
if (i != p[0])

Return to:

Send suggestions and report system problems to the System administrator.