diff options
author | midipix <writeonce@midipix.org> | 2024-03-05 00:14:03 +0000 |
---|---|---|
committer | midipix <writeonce@midipix.org> | 2024-03-05 01:12:54 +0000 |
commit | 8ef9e14afc6d97e6cf2da17995c3278f7309cf25 (patch) | |
tree | d72b6e1bb57dfd3c3c22355ab9cb66078aa8fae8 /src/driver/slbt_split_argv.c | |
parent | 4451024fec461fdcd1ee4f01fa2366685cb4b245 (diff) | |
download | slibtool-8ef9e14afc6d97e6cf2da17995c3278f7309cf25.tar.bz2 slibtool-8ef9e14afc6d97e6cf2da17995c3278f7309cf25.tar.xz |
driver: finalized support of -`-dlpreopen self` and `-dlpreopen force`.
Diffstat (limited to 'src/driver/slbt_split_argv.c')
-rw-r--r-- | src/driver/slbt_split_argv.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/driver/slbt_split_argv.c b/src/driver/slbt_split_argv.c index bdde474..df0db37 100644 --- a/src/driver/slbt_split_argv.c +++ b/src/driver/slbt_split_argv.c @@ -503,12 +503,19 @@ slbt_hidden int slbt_split_argv( *targv++ = argv[i]; } else if (!(strcmp("dlpreopen",&argv[i][1]))) { - *cargv++ = argv[i]; - *targv++ = argv[i++]; + if (!argv[i+1]) + return -1; - *cargv++ = argv[i]; - *targv++ = argv[i]; + if (strcmp(argv[i+1],"self") && strcmp(argv[i+1],"force")) { + *cargv++ = argv[i]; + *targv++ = argv[i++]; + *cargv++ = argv[i]; + *targv++ = argv[i]; + } else { + *targv++ = argv[i++]; + *targv++ = argv[i]; + } } else { for (popt=optout; popt[0] && popt[0]->long_name; popt++) if (!(strcmp(popt[0]->long_name,&argv[i][1]))) |