return p;
}
+char *filebasename(char *path)
+{
+ /* The POSIX one can mangle the input - so given its trivial do it
+ sanely ourselves */
+ char *p = strrchr(path, '/');
+ if (p == NULL)
+ return path;
+ /* We don't care about trailing slashes, we only work on files */
+ return p + 1;
+}
+
+
static char *chopname(const char *i)
{
char *p = mstrdup(i);
exit(1);
}
add_argument("-c");
+ if (srchead->next && target) {
+ fprintf(stderr, "Cannot use -c together with -o with multiple input files.\n");
+ exit(1);
+ }
}
if (mode == MODE_LINK) {
if (target == NULL)
ret = do_command();
if (ret)
break;
+ if (mode == MODE_OBJ && target) {
+ char *orel = filebasename(rebuildname("", srchead->p, "rel"));
+ if (rename(orel, target) == -1) {
+ fprintf(stderr, "Unable to rename %s to %s.\n", orel, target);
+ perror(srchead->p);
+ exit(1);
+ }
+ }
srchead = srchead->next;
argp = 0;
}