*************** *** 1216,1222 **** } } - usename= namenodetouse(nifd->namenode,tc->pkg)->name + 1; /* Skip the leading `/' */ if (nifd->namenode->flags & fnnf_new_conff) { /* If it's a conffile we have to extract it next to the installed --- 1217,1231 ---- } } + usename= namenodetouse(nifd->namenode,tc->pkg)->name; /* Skip the leading `/' */ + if (*usename == '.' && *usename + 1 == '/') { + usename += 1; /* Skip the leading `.' */ + } else if (*usename != '/') { + s = malloc(strlen(usename) + 2); /* 1 for NULL, one for `/' we're going to add */ + strcpy(s + 1, usename); + *s = '/'; + usename = s; + } if (nifd->namenode->flags & fnnf_new_conff) { /* If it's a conffile we have to extract it next to the installed *************** *** 1228,1233 **** } setupfnamevbs(usename); statr= lstat(fnamevb.buf,&stab); if (statr) { --- 1237,1246 ---- } setupfnamevbs(usename); + + if (s != NULL) { + free(s); + } statr= lstat(fnamevb.buf,&stab); if (statr) {