From: Ken Brown <kbrown@cornell.edu>
To: Eli Zaretskii <eliz@gnu.org>
Cc: cyd@stupidchicken.com, emacs-devel@gnu.org
Subject: Re: Cygwin patches
Date: Sat, 21 Nov 2009 16:21:54 -0500 [thread overview]
Message-ID: <4B0859F2.8080202@cornell.edu> (raw)
In-Reply-To: <836394oxr9.fsf@gnu.org>
On 11/21/2009 7:42 AM, Eli Zaretskii wrote:
>>> I think that the right fix would be in browse-url-file-url, so that it
>>> does return a correctly converted URL. Using cygstart directly in
>>> browse-url-of-file deviates too much from what other platforms do --
>>> they all invoke the browser in browse-url. Such a deviation could
>>> mean maintenance headaches in the future. For example, browse-url
>>> takes care of setting the environment for the process being invoked,
>>> while your patch short-circuits that for Cygwin.
>> OK, that makes sense. I'll figure out how to patch browse-url-file-url
>> instead.
I have very little experience with emacs-lisp, so I'll need some help
getting this right. Here's my first attempt:
--- browse-url.el.orig 2009-11-21 12:33:40.000000000 -0500
+++ browse-url.el 2009-11-21 15:51:40.000000000 -0500
@@ -699,6 +699,10 @@
(defun browse-url-file-url (file)
"Return the URL corresponding to FILE.
Use variable `browse-url-filename-alist' to map filenames to URLs."
+ (if (eq system-type 'cygwin)
+ (let ((winfile (shell-command-to-string (concat
+ "cygpath -m " (shell-quote-argument file)))))
+ (setq file (concat "file://" (substring winfile 0 -1)))))
(let ((coding (and (default-value 'enable-multibyte-characters)
(or file-name-coding-system
default-file-name-coding-system))))
Explanation: The cygpath command converts a unix-style file name (like
/home/kbrown/index.html) to a Windows-style file name (like
C:/cygwin/home/kbrown/index.html). I have to add "file://" in front for
reasons I don't understand. (If I don't do this, "file:" gets added by
the later code, with no slashes.) And I delete the last character to
get rid of a final newline.
When I try to test this in emacs 23.1, I get an error
if: Wrong number of arguments: called-interactively-p, 1
The following additional patch, restoring something from the emacs 23.1
version of browse-url, fixes it:
@@ -770,7 +774,7 @@
Prompts for a URL, defaulting to the URL at or before point. Variable
`browse-url-browser-function' says which browser to use."
(interactive (browse-url-interactive-arg "URL: "))
- (unless (called-interactively-p 'interactive)
+ (unless (interactive-p)
(setq args (or args (list browse-url-new-window-flag))))
(let ((process-environment (copy-sequence process-environment)))
;; When connected to various displays, be careful to use the
display of
I don't know what's going on. Can you help?
Thanks.
Ken
next prev parent reply other threads:[~2009-11-21 21:21 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-11-20 20:00 Cygwin patches Ken Brown
2009-11-20 21:50 ` Chong Yidong
2009-11-20 21:59 ` Lennart Borgman
2009-11-20 22:26 ` Ken Brown
2009-11-20 23:54 ` Lennart Borgman
2009-11-21 8:12 ` Eli Zaretskii
2009-11-21 12:12 ` Ken Brown
2009-11-21 12:16 ` Lennart Borgman
2009-11-21 12:42 ` Eli Zaretskii
2009-11-21 21:21 ` Ken Brown [this message]
2009-11-21 21:48 ` Eli Zaretskii
2009-11-22 5:25 ` Davis Herring
2009-11-22 12:59 ` Ken Brown
2009-11-22 23:03 ` Chong Yidong
2009-11-22 23:23 ` Ken Brown
2009-11-22 23:30 ` Lennart Borgman
2009-11-23 1:37 ` Ken Brown
2009-11-23 1:42 ` Lennart Borgman
2009-11-23 1:50 ` Chong Yidong
2009-11-23 2:09 ` Ken Brown
2009-11-23 19:50 ` Ken Brown
2009-11-23 20:59 ` Chong Yidong
-- strict thread matches above, loose matches on Subject: below --
2009-11-20 23:40 Angelo Graziosi
2009-11-21 4:50 ` Chong Yidong
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4B0859F2.8080202@cornell.edu \
--to=kbrown@cornell.edu \
--cc=cyd@stupidchicken.com \
--cc=eliz@gnu.org \
--cc=emacs-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).