[116837] trunk/dports/aqua/emacs-app
hum at macports.org
hum at macports.org
Sat Feb 8 04:44:48 PST 2014
Revision: 116837
https://trac.macports.org/changeset/116837
Author: hum at macports.org
Date: 2014-02-08 04:44:48 -0800 (Sat, 08 Feb 2014)
Log Message:
-----------
emacs-app: add patchfiles for Mavericks; see #41224 and #42383.
Modified Paths:
--------------
trunk/dports/aqua/emacs-app/Portfile
Added Paths:
-----------
trunk/dports/aqua/emacs-app/files/patch-mavericks-home.diff
trunk/dports/aqua/emacs-app/files/patch-mavericks-memleak.diff
Modified: trunk/dports/aqua/emacs-app/Portfile
===================================================================
--- trunk/dports/aqua/emacs-app/Portfile 2014-02-08 12:34:59 UTC (rev 116836)
+++ trunk/dports/aqua/emacs-app/Portfile 2014-02-08 12:44:48 UTC (rev 116837)
@@ -5,7 +5,7 @@
name emacs-app
version 24.3
-revision 1
+revision 2
categories aqua editors
maintainers hum css openmaintainer
@@ -38,6 +38,11 @@
patchfiles patch-src_emacs.c.diff
+if {${os.platform} == "darwin" && ${os.major} >= 13} {
+ patchfiles-append patch-mavericks-home.diff \
+ patch-mavericks-memleak.diff
+}
+
post-patch {
reinplace "s|__PREFIX__|${prefix}|" ${worksrcpath}/src/emacs.c
}
Added: trunk/dports/aqua/emacs-app/files/patch-mavericks-home.diff
===================================================================
--- trunk/dports/aqua/emacs-app/files/patch-mavericks-home.diff (rev 0)
+++ trunk/dports/aqua/emacs-app/files/patch-mavericks-home.diff 2014-02-08 12:44:48 UTC (rev 116837)
@@ -0,0 +1,19 @@
+--- src/emacs.c.orig 2011-01-09 02:45:14.000000000 +0900
++++ src/emacs.c 2011-09-09 23:13:44.000000000 +0900
+@@ -1156,10 +1156,13 @@
+ if (!noninteractive)
+ {
+ #ifdef NS_IMPL_COCOA
+- if (skip_args < argc)
++ /* Started from GUI? */
++ /* FIXME: Do the right thing if getenv returns NULL, or if
++ chdir fails. */
++ if (! inhibit_window_system && ! isatty (0))
++ chdir (getenv ("HOME"));
++ if (skip_args < argc)
+ {
+- /* FIXME: Do the right thing if getenv returns NULL, or if
+- chdir fails. */
+ if (!strncmp (argv[skip_args], "-psn", 4))
+ {
+ skip_args += 1;
Added: trunk/dports/aqua/emacs-app/files/patch-mavericks-memleak.diff
===================================================================
--- trunk/dports/aqua/emacs-app/files/patch-mavericks-memleak.diff (rev 0)
+++ trunk/dports/aqua/emacs-app/files/patch-mavericks-memleak.diff 2014-02-08 12:44:48 UTC (rev 116837)
@@ -0,0 +1,82 @@
+--- src/nsterm.h
++++ src/nsterm.h
+@@ -55,6 +55,10 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
+ /* We override sendEvent: as a means to stop/start the event loop */
+ @interface EmacsApp : NSApplication
+ {
++#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_9
++ BOOL shouldKeepRunning;
++ BOOL isFirst;
++#endif
+ }
+ - (void)logNotification: (NSNotification *)notification;
+ - (void)sendEvent: (NSEvent *)theEvent;
+diff --git a/src/nsterm.m b/src/nsterm.m
+index a57e744..324f065 100644
+--- src/nsterm.m
++++ src/nsterm.m
+@@ -3373,7 +3373,7 @@ ns_read_socket (struct terminal *terminal, struct input_event *hold_quit)
+ if ([NSApp modalWindow] != nil)
+ return -1;
+
+- if (hold_event_q.nr > 0)
++ if (hold_event_q.nr > 0)
+ {
+ int i;
+ for (i = 0; i < hold_event_q.nr; ++i)
+@@ -3447,7 +3447,7 @@ ns_select (int nfds, fd_set *readfds, fd_set *writefds,
+
+ /* NSTRACE (ns_select); */
+
+- if (hold_event_q.nr > 0)
++ if (hold_event_q.nr > 0)
+ {
+ /* We already have events pending. */
+ kill (0, SIGIO);
+@@ -4270,6 +4270,46 @@ ns_term_shutdown (int sig)
+
+ @implementation EmacsApp
+
++#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_9
++- (id)init
++{
++ if (self = [super init])
++ self->isFirst = YES;
++
++ return self;
++}
++
++- (void)run
++{
++ NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
++
++ if (isFirst) [self finishLaunching];
++ isFirst = NO;
++
++ shouldKeepRunning = YES;
++ do
++ {
++ [pool release];
++ pool = [[NSAutoreleasePool alloc] init];
++
++ NSEvent *event =
++ [self nextEventMatchingMask:NSAnyEventMask
++ untilDate:[NSDate distantFuture]
++ inMode:NSDefaultRunLoopMode
++ dequeue:YES];
++ [self sendEvent:event];
++ [self updateWindows];
++ } while (shouldKeepRunning);
++
++ [pool release];
++}
++
++- (void)stop: (id)sender
++{
++ shouldKeepRunning = NO;
++}
++#endif
++
+ - (void)logNotification: (NSNotification *)notification
+ {
+ const char *name = [[notification name] UTF8String];
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/macports-changes/attachments/20140208/926bbdf1/attachment-0001.html>
More information about the macports-changes
mailing list