Skip to content

Commit

Permalink
Leverage implicit casting between array and pointer-to-element
Browse files Browse the repository at this point in the history
  • Loading branch information
XrXr committed Apr 21, 2019
1 parent d7d0fd9 commit b13d7b0
Showing 1 changed file with 8 additions and 17 deletions.
25 changes: 8 additions & 17 deletions souvenir.al
Expand Up @@ -698,16 +698,14 @@ launchExecutable :: proc (exe *executable) {
if totalLength > 5000 {
die("the path for the selected executable is too long")
}
var pBuffer *u8
pBuffer = &pathBuffer
fullExePath(exe, pBuffer)
fullExePath(exe, &pathBuffer)
var argv [2]*u8
argv[0] = pBuffer
argv[0] = &pathBuffer
argv[1] = nil
env := environ()
posix_spawn(nil, pBuffer, nil, nil, &argv, env)
writes(pBuffer, totalLength - 1)
posix_spawn(nil, &pathBuffer, nil, nil, &argv, env)
writes(&pathBuffer, totalLength - 1)
puts("\n")
}
Expand All @@ -729,19 +727,12 @@ launchCommand :: proc (commandLine string) {
memcpy(&nulTerminatedDashC, dashC.data, dashC.length)
nulTerminatedDashC[dashC.length] = 0
var commandLineAsU8 *u8
var shellPathAsU8 *u8
var dashCAsU8 *u8
commandLineAsU8 = &nulTerminatedCommandline
shellPathAsU8 = &nulTerminatedShellPath
dashCAsU8 = &nulTerminatedDashC
var argv [4]*u8
argv[0] = shellPathAsU8
argv[1] = dashCAsU8
argv[2] = commandLineAsU8
argv[0] = &nulTerminatedShellPath
argv[1] = &nulTerminatedDashC
argv[2] = &nulTerminatedCommandline
argv[3] = nil
posix_spawn(nil, shellPathAsU8, nil, nil, &argv, environ())
posix_spawn(nil, &nulTerminatedShellPath, nil, nil, &argv, environ())
puts("/bin/sh -c '")
puts(commandLine)
puts("'\n")
Expand Down

0 comments on commit b13d7b0

Please sign in to comment.