This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Any progress on "Fork issues ith long command lines and long $PATH"?


On 1/20/2016 4:19 AM, Andrey Repin wrote:
Greetings, Ken Brown!

(2) I was using $USERPROFILE as an example. We have dozens of these
environment variables pointing to dozens directories. They enable us to
type in the same file name to emacs's find file (ctrl-x-ctrl-f) regardless
of who is logged in or which computer we are logged into (assuming that
every account has the same directory structure and propertly defined
environment variables).  Yes we can manually translate them at a bash
prompt but this is a lot more typing, cutting and pasteing. We also share
the same .emacs file that contains thousands of file names that contain
these environment variables. We will really missing feature of native
emacs.

The fact that C-x C-f expands environment variables is not a special
feature of native Windows emacs.  But the expansion has to yield a valid
file name.  In the case of Cygwin emacs, that means a Posix path.

Maybe you could write a script that uses cygpath to convert the relevant
environment variables to Posix paths, and then call this script from
your .bashrc.

I think it would be easier to just set Cygwin to use $USERPROFILE as $HOME.
Then $HOME would be a POSIX path you can use in the emacs config.

The OP stated that USERPROFILE is one of dozens of problematic environment variables, so that wouldn't help.

Siegfried, if the script idea doesn't work for you, another possibility is to solve your problem in elisp by using the function cygwin-convert-file-name-from-windows, which exists in the Cygwin build of emacs. For example, here's a snippet from server.el in the emacs development trunk:

;; Allow Cygwin's emacsclient to be used as a file
;; handler on MS-Windows, in which case FILENAME
;; might start with a drive letter.
(when (and (fboundp 'cygwin-convert-file-name-from-windows)
	   (string-match "\\`[A-Za-z]:" file))
  (setq file (cygwin-convert-file-name-from-windows file)))



--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]