--- log.c.orig +++ log.c @@ -85,21 +85,20 @@ char *log_set_ident( const char *name ) char *log_make_ident( const char *name ) { char *temp; + char *new_ident; - /* lose the existing value of ident, if there is one */ - if ( ident ){ - free(ident); - ident = NULL; - } /* assign new value to ident from name */ - if ( !name ) return (ident = NULL); - ident = strdup(basename((char*)name)); + if ( !name ) return (log_set_ident( name )); + + temp = strdup(name); + new_ident = strdup(basename(temp)); + /* remove leading '-' from ident, if there is one */ - if ( ident[0] == '-' ){ - temp = strdup(ident + 1); - free(ident); - ident = temp; - } + if (new_ident[0] == '-') + ++new_ident; + + log_set_ident(new_ident); + free(temp); return ident; }