On 10/25/2012 01:09 AM, George V. Reilly wrote:
On Wed, Oct 24, 2012 at 2:50 PM, Ben Fritz <[email protected]> wrote:
On Wednesday, October 24, 2012 4:25:41 PM UTC-5, Gary Johnson wrote:
I think the following or a variation should do it. I was only able
to test it on names without parentheses as I didn't see any variable
names with them in my environment.
split(system('set ProgramFiles(x86)', '=')[1]
gets the value and
system('set ProgramFiles(x86)') =~ 'not defined'
will evaluate to true if the variable is not defined.
Not quite. You get hit by Windows *#$&#ing command-line quoting.
This works for me:
:echo system('set PROGRAMFILES^(x86^)')
In the past, I've solved very similar problems with batch files [1]
and Bash scripts [2].
The parentheses in the environment variable name are asinine.
[1]
http://weblogs.asp.net/george_v_reilly/archive/2009/09/11/launching-32-bit-applications-from-batchfiles-on-win64.aspx
@setlocal
@set _pf=%ProgramFiles%
@if not "[%ProgramFiles(x86)%]"=="[]" set _pf=%ProgramFiles(x86)%
@start "" /b "%_pf%\SourceGear\DiffMerge\DiffMerge.exe" %*
[2] http://thread.gmane.org/gmane.comp.gnu.mingw.user/31262/focus=31273
#!/bin/sh
pf=`env | sed -n s,'^PROGRAMFILES(X86)=',,p`
if [ -z "$pf" ]; then pf="$PROGRAMFILES"; fi
"$pf/SourceGear/DiffMerge/DiffMerge.exe" $*
Thank you for your answers. I think a simple
let l:pf = system('Echo %ProgramFiles(x86)%')
if l:pf == '%ProgramFiles(x86)%'
...
will work well enough.
Thank you,
Timothy Madden
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php