Support for athena in netbeans has been added with the following
patch:

    patch 7.3.016: Support Athena, just like Motif

However the motif and athena code in netbeans still follows the old
design where netbeans-read() calls directly netbeans_parse_messages()
within the gui event loop. This had been changed for gtk and Windows
to fix the problem "Vim SEGV after netbeans messes up syntax data
structures". The attached patch aligns athena and motif code with the
code of gtk and Windows.

The patch has been tested with the pyclewn test suite on gtk, athena
and motif. This patch is made above my previous netbeans-close patch
from today, but can be easily applied without it.

-- 
Xavier

Les Chemins de Lokoti: http://lokoti.alwaysdata.net

-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
diff --git a/src/gui_x11.c b/src/gui_x11.c
--- a/src/gui_x11.c
+++ b/src/gui_x11.c
@@ -2895,6 +2895,11 @@
 	    focus = gui.in_focus;
 	}
 
+#if defined(FEAT_NETBEANS_INTG)
+	/* Process the queued netbeans messages. */
+	netbeans_parse_messages();
+#endif
+
 	/*
 	 * Don't use gui_mch_update() because then we will spin-lock until a
 	 * char arrives, instead we use XtAppProcessEvent() to hang until an
diff --git a/src/netbeans.c b/src/netbeans.c
--- a/src/netbeans.c
+++ b/src/netbeans.c
@@ -730,9 +730,6 @@
     static char_u	*buf = NULL;
     int			len = 0;
     int			readlen = 0;
-#if defined(NB_HAS_GUI) && !defined(FEAT_GUI_GTK) && !defined(FEAT_GUI_W32)
-    static int		level = 0;
-#endif
 #ifdef HAVE_SELECT
     struct timeval	tval;
     fd_set		rfds;
@@ -748,13 +745,6 @@
 	return;
     }
 
-#if defined(NB_HAS_GUI) && !defined(FEAT_GUI_GTK) && !defined(FEAT_GUI_W32)
-    /* recursion guard; this will be called from the X event loop at unknown
-     * moments */
-    if (NB_HAS_GUI)
-	++level;
-#endif
-
     /* Allocate a buffer to read into. */
     if (buf == NULL)
     {
@@ -817,21 +807,9 @@
 	}
     }
 
-#if defined(NB_HAS_GUI) && !defined(FEAT_GUI_W32)
-    /* Let the main loop handle messages. */
-    if (NB_HAS_GUI)
-    {
-# ifdef FEAT_GUI_GTK
-	if (gtk_main_level() > 0)
-	    gtk_main_quit();
-# else
-	/* Parse the messages now, but avoid recursion. */
-	if (level == 1)
-	    netbeans_parse_messages();
-
-	--level;
-# endif
-    }
+#if defined(NB_HAS_GUI) && defined(FEAT_GUI_GTK)
+    if (NB_HAS_GUI && gtk_main_level() > 0)
+        gtk_main_quit();
 #endif
 }
 

Raspunde prin e-mail lui