Mail Archives: cygwin/2004/09/28/14:11:02
> > I don't know OCaml, but that sure looks to me as though $UNISON is only
> > used if $USERPROFILE and $HOME are not set. And yet that behavior
> > doesn't match what I observe on my host. So that's why I asked, what
> > happens if you export UNISON=/home/volker/.unison and rerun? Does
> > unison use $UNISON, or $USERPROFILE/.unison?
>
> As I told you above. It uses $UNISON also in my case.
OK.
> Probably this part from os.ml takes precedence then:
>
> (*****************************************************************************)
> (* UNISON DIRECTORY *)
> (*****************************************************************************)
>
> (* Gives the fspath of the archive directory on the machine, depending on *)
> (* which OS we use *)
> let unisonDir =
> try Fspath.canonize (Some (Unix.getenv "UNISON"))
> with Not_found ->
> let genericName = Util.fileInHomeDir (Printf.sprintf ".%s" Uutil.myName) in
> if Osx.isMacOSX then
> let osxName = Util.fileInHomeDir "Library/Application Support/Unison" in
> if Sys.file_exists genericName then Fspath.canonize (Some genericName)
> else Fspath.canonize (Some osxName)
> else
> Fspath.canonize (Some genericName)
Yes, that probably explains it.
> So the first part of my patch seems ok:
>
> --- util.ml.orig 2004-09-28 09:45:32.940632000 +0200
> +++ util.ml 2004-09-28 08:40:28.926936000 +0200
> @@ -358,10 +358,10 @@
> match osType with
> `Win32 ->
> let dirString =
> - try Unix.getenv "USERPROFILE" (* Windows NT/2K *)
> - with Not_found ->
> try Unix.getenv "HOME" (* Windows 9x with Cygwin HOME set *)
> with Not_found ->
> + try Unix.getenv "USERPROFILE" (* Windows NT/2K *)
> + with Not_found ->
> try Unix.getenv "UNISON" (* Use UNISON dir if none of
> the above are set *)
> with Not_found -> "c:/" (* Default *) in
No, I think it should be
--- util.ml.orig 2004-09-28 09:45:32.940632000 +0200
+++ util.ml 2004-09-28 08:40:28.926936000 +0200
@@ -358,10 +358,10 @@
match osType with
`Win32 ->
let dirString =
+ try Unix.getenv "UNISON" (* Look for UNISON dir first *)
+ with Not_found ->
try Unix.getenv "USERPROFILE" (* Windows NT/2K *)
with Not_found ->
try Unix.getenv "HOME" (* Windows 9x with Cygwin HOME set *)
- with Not_found ->
- try Unix.getenv "UNISON" (* Use UNISON dir if none of
- the above are set *)
with Not_found -> "c:/" (* Default *) in
which is what the manual says Unison is supposed to do on a Windows
host. Now whether Cygwin should count as a Windows host is a different
question, which is probably harder to change. But there might be a case
for changing this behavior, at least, to be Unix-like instead of
Windows-like, for Cygwin.
Anyway, as soon as I can get to it I'll pass your report and patches on
to the unison-hackers list. Once they approve a fix I'll release a new
Cygwin version.
Thanks for your report.
Andrew.
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/
- Raw text -