[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/src/macfns.c,v
From: |
YAMAMOTO Mitsuharu |
Subject: |
[Emacs-diffs] Changes to emacs/src/macfns.c,v |
Date: |
Fri, 22 Dec 2006 08:27:27 +0000 |
CVSROOT: /cvsroot/emacs
Module name: emacs
Changes by: YAMAMOTO Mitsuharu <mituharu> 06/12/22 08:27:27
Index: macfns.c
===================================================================
RCS file: /cvsroot/emacs/emacs/src/macfns.c,v
retrieving revision 1.99
retrieving revision 1.100
diff -u -b -r1.99 -r1.100
--- macfns.c 15 Dec 2006 08:05:18 -0000 1.99
+++ macfns.c 22 Dec 2006 08:27:27 -0000 1.100
@@ -1969,9 +1969,9 @@
{
AEDesc desc;
#ifdef MAC_OSX
- FSRef fref;
+ FSRef fref, fref_proxy;
#else
- FSSpec fss;
+ FSSpec fss, fss_proxy;
#endif
Boolean changed;
Lisp_Object encoded_file_name = ENCODE_FILE (file_name);
@@ -1997,10 +1997,19 @@
{
if (alias)
{
+ /* (FS)ResolveAlias never sets `changed' to true if
+ `alias' is minimal. */
#ifdef MAC_OSX
- err = FSUpdateAlias (NULL, &fref, alias, &changed);
+ err = FSResolveAlias (NULL, alias, &fref_proxy, &changed);
+ if (err == noErr)
+ err = FSCompareFSRefs (&fref, &fref_proxy);
#else
- err = UpdateAlias (NULL, &fss, alias, &changed);
+ err = ResolveAlias (NULL, alias, &fss_proxy, &changed);
+ if (err == noErr)
+ err = !(fss.vRefNum == fss_proxy.vRefNum
+ && fss.parID == fss_proxy.parID
+ && EqualString (fss.name, fss_proxy.name,
+ false, true));
#endif
}
if (err != noErr || alias == NULL)
@@ -2051,11 +2060,11 @@
confusing. */
|| (!MINI_WINDOW_P (w)
&& (modified_p != !NILP (w->last_had_star))))
+ {
SetWindowModified (FRAME_MAC_WINDOW (f),
!MINI_WINDOW_P (w) && modified_p);
-
- if (windows_or_buffers_changed)
mac_update_proxy_icon (f);
+ }
#endif
}