summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authormidipix <writeonce@midipix.org>2016-07-22 04:04:32 -0400
committermidipix <writeonce@midipix.org>2016-07-24 06:15:27 -0400
commit3995d65255b673ad4575657782075652532f9dd7 (patch)
tree8f96851bc8b5e3035e25c3556d1f88acb475ca4d /src
parent48271e3845cb119414f9b82a11a0404261efdb1d (diff)
downloadptycon-3995d65255b673ad4575657782075652532f9dd7.tar.bz2
ptycon-3995d65255b673ad4575657782075652532f9dd7.tar.xz
ptyc_spawn(): support '/??/...' executable path arguments.
Diffstat (limited to 'src')
-rw-r--r--src/internal/ptycon_open_impl.c2
-rw-r--r--src/pty/ptyc_spawn.c4
2 files changed, 4 insertions, 2 deletions
diff --git a/src/internal/ptycon_open_impl.c b/src/internal/ptycon_open_impl.c
index efda8bc..8ab9d61 100644
--- a/src/internal/ptycon_open_impl.c
+++ b/src/internal/ptycon_open_impl.c
@@ -52,7 +52,7 @@ static int32_t ptyc_open(
/* oa */
oa.len = sizeof(nt_oa);
- oa.root_dir = hat;
+ oa.root_dir = (buffer[0]=='\\') ? 0 : hat;
oa.obj_name = &path;
oa.obj_attr = fprivate ? 0 : NT_OBJ_INHERIT;
oa.sec_desc = 0;
diff --git a/src/pty/ptyc_spawn.c b/src/pty/ptyc_spawn.c
index 9ad8e9b..3655d19 100644
--- a/src/pty/ptyc_spawn.c
+++ b/src/pty/ptyc_spawn.c
@@ -79,7 +79,9 @@ int __stdcall ptyc_spawn(struct ptyc_driver_ctx * dctx)
: peb->process_params->cwd_handle;
patharg = (dctx->cctx->eargv[0][0] == '/')
- ? &dctx->cctx->eargv[0][1]
+ ? (dctx->cctx->eargv[0][1] == '?')
+ ? &dctx->cctx->eargv[0][0]
+ : &dctx->cctx->eargv[0][1]
: &dctx->cctx->eargv[0][0];
/* hfile */