> > 2) If not, where is the code that interprets %s? I can try stepping
> > through it and see what I can find.
> >
> 
> It happens in org.el:org-open-file, specifically this piece of the code (I 
> think):
> 
> ,----
> |     (while (string-match "%s" cmd)
> |     (setq cmd (replace-match
> |                (save-match-data
> |                  (shell-quote-argument
> |                   (convert-standard-filename file)))
> |                t t cmd)))
> `----

I did some tracing through, and have found where things go wrong. 

At the start of the code listed above, 

cmd = "c:/progra~1/sumatrapdf/sumatrapdf.exe %s" 
file = "c:/dropbox/org/personal.pdf"

(convert-standard-filename file) returns
"C:/dropbox/org/personal.pdf"

So far so good...

However, 

(shell-quote-argument (convert-standard-filename file)) returns
"c\\:dropbox/org/personal.pdf"

That's where the problem occurs. After this block of code is completed, cmd 
takes the value
"c:/progra~1/sumatrapdf/sumatrapdf.exe c\\:dropbox/org/personal.pdf"

This command causes sumatrapdf to squawk with an error. It's the "\\:" that 
causes the problem. If, after this block of code executes, I manually switch 
the "\\:" back to ":/", so cmd goes back to 

"c:/progra~1/sumatrapdf/sumatrapdf.exe c:/dropbox/org/personal.pdf"

and then press "c" to continue, the PDF file pops up just fine. Could we just 
drop the call to shell-quote-argument? It seems like everything would work fine 
without this call.

Reply via email to