xdvik 22.84.1 AIX problem in teTeX 2.96.4 pretest

Harald Koenig <[email protected]>
Newsgroups gmane.comp.tex.tetex.beta
Message-ID <[email protected]>
On Jun 27, Thomas Esser wrote:

>         * xdvik 22.84.1

xdvik doesn't compile on AIX 4.3.3, it fails in xdvik/mag.c with the following error

	mag.c:101: error: structure has no member named `reqevents'
	mag.c:103: error: structure has no member named `reqevents'
	mag.c: In function `mag_release':

because of the "#define events" in /usr/include/sys/poll.h:

	#ifdef  __64BIT__
	/* pollfd.fd is always a 32 bit entity (XOPEN) */
	struct  pollfd
	{
	        int     fd;                     /* file descriptor or file ptr  */
	        short   events;                 /* requested events             */
	        short   revents;                /* returned events              */
	
	};
	#else /* __64BIT__ */
	struct  pollfd
	{
	        long    fd;                     /* file descriptor or file ptr  */
	        ushort  reqevents;              /* requested events             */
	        ushort  rtnevents;              /* returned events              */
	};
==>	#define events  reqevents               /* SVR3,4 pollfd member name    */
==>	#define revents rtnevents               /* SVR3,4 pollfd member name    */
	#endif /* __64BIT__ */

which collides with the "struct event_info events" member of "struct program_globals"
in xdvi.h.


I've renamed that struct "events" to "xdvievents" in the following patch, 
which fixes the AIX problem:


-------------------------------------------------------------------------------
diff -ur orig/tetex-src-beta-2.96.4.20040627/texk/xdvik/xdvi.h tetex-src-beta-2.96.4.20040627/texk/xdvik/xdvi.h
--- orig/tetex-src-beta-2.96.4.20040627/texk/xdvik/xdvi.h	Tue Jun  1 23:57:14 2004
+++ tetex-src-beta-2.96.4.20040627/texk/xdvik/xdvi.h	Mon Jun 28 17:47:38 2004
@@ -730,7 +730,7 @@
     struct src_info src;
     
     /* event information */
-    struct event_info events;
+    struct event_info xdvievents;
 
     /* support for `-pause' feature */
     struct pause_info pausing;
diff -ur orig/tetex-src-beta-2.96.4.20040627/texk/xdvik/dvi-draw.c tetex-src-beta-2.96.4.20040627/texk/xdvik/dvi-draw.c
--- orig/tetex-src-beta-2.96.4.20040627/texk/xdvik/dvi-draw.c	Tue Jun  1 23:57:12 2004
+++ tetex-src-beta-2.96.4.20040627/texk/xdvik/dvi-draw.c	Mon Jun 28 17:51:23 2004
@@ -669,10 +669,10 @@
     if (htex_inside_href)
 	htex_record_position(x, y, w, h);
     if (x < globals.win_expose.max_x && x + (int)w >= globals.win_expose.min_x && y < globals.win_expose.max_y && y + (int)h >= globals.win_expose.min_y) {
-	if (--globals.events.ctr == 0) {
+	if (--globals.xdvievents.ctr == 0) {
 	    if (read_events(EV_NOWAIT) & EV_GE_MAG_GONE) {
 /* 		fprintf(stderr, "longjmp1!\n"); */
-		longjmp(globals.events.canit, 1);
+		longjmp(globals.xdvievents.canit, 1);
 	    }
 	}
 #if COLOR
@@ -697,10 +697,10 @@
 	htex_record_position(x, y, bitmap->w, bitmap->h);
     if (x < globals.win_expose.max_x && x + (int)bitmap->w >= globals.win_expose.min_x &&
 	y < globals.win_expose.max_y && y + (int)bitmap->h >= globals.win_expose.min_y) {
-	if (--globals.events.ctr == 0)
+	if (--globals.xdvievents.ctr == 0)
 	    if (read_events(EV_NOWAIT) & EV_GE_MAG_GONE) {
 /* 		fprintf(stderr, "longjmp2!\n"); */
-		longjmp(globals.events.canit, 1);
+		longjmp(globals.xdvievents.canit, 1);
 	    }
 #if COLOR
 	if (fg_active != fg_current)
@@ -753,10 +753,10 @@
 	htex_record_position(x, y, img->width, img->height);
     if (x < globals.win_expose.max_x && x + img->width >= globals.win_expose.min_x &&
 	y < globals.win_expose.max_y && y + img->height >= globals.win_expose.min_y) {
-	if (--globals.events.ctr == 0)
+	if (--globals.xdvievents.ctr == 0)
 	    if (read_events(EV_NOWAIT) & EV_GE_MAG_GONE) {
 /* 		fprintf(stderr, "longjmp3!\n"); */
-		longjmp(globals.events.canit, 1);
+		longjmp(globals.xdvievents.canit, 1);
 	    }
 
 #if COLOR
@@ -1777,12 +1777,12 @@
 	if (read_events(EV_NOWAIT) & EV_GE_NEWPAGE) {
 	    break;
 	}
-	/* NOTE:  longjmp(globals.events.canit) should not be done within
+	/* NOTE:  longjmp(globals.xdvievents.canit) should not be done within
 	   read_events(). */
 	htex_prescan_save();
 	htex_prescan_initpage();
 
-	if (!setjmp(globals.events.canit)) {
+	if (!setjmp(globals.xdvievents.canit)) {
 	    struct htex_prescan_data data;
 	    int pre_depth, depth;
 	    data.pageno = scanned_page + 1;
@@ -1817,7 +1817,7 @@
 #endif
 	    break;
 	}
-	if (globals.events.flags & EV_GE_NEWPAGE)
+	if (globals.xdvievents.flags & EV_GE_NEWPAGE)
 	    break;
 	++scanned_page;
 #if COLOR
@@ -1835,7 +1835,7 @@
     }
     
 #if PS
-    if (!(globals.events.flags & EV_GE_NEWPAGE))
+    if (!(globals.xdvievents.flags & EV_GE_NEWPAGE))
 	psp.endheader();
 #endif
 }
@@ -1971,8 +1971,8 @@
 		wide_ubyte ch)
 {
     if (!load_font(currinf.fontp, resource.t1lib)) {	/* if not found */
-	if (globals.events.flags & EV_GE_NEWDOC) {	/* if abort */
-	    longjmp(globals.events.canit, 1);
+	if (globals.xdvievents.flags & EV_GE_NEWDOC) {	/* if abort */
+	    longjmp(globals.xdvievents.canit, 1);
 	}
 
 	/* FIXME: does this need to be replaced by GUI warning, or has this case already been covered? */
@@ -2370,7 +2370,7 @@
 		    if (resource.pause && strcmp(p, resource.pause_special) == 0) {
 			if (++pause_cnt > globals.pausing.num) {
 			    globals.pausing.flag = True;
-			    /* can't use longjmp(globals.events.canit, 1); */
+			    /* can't use longjmp(globals.xdvievents.canit, 1); */
 			    return;
 			}
 		    }
@@ -2507,11 +2507,11 @@
 	SET_CLIP(globals.gc.copy);
     }
     
-    if (!setjmp(globals.events.canit)) {
+    if (!setjmp(globals.xdvievents.canit)) {
 	/* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! BUG ALERT !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
 	   ALL GLYPH DRAWING/RULE SETTING COMMANDS THAT MIGHT INVOKE
-	   longjmp(globals.events.canit)
+	   longjmp(globals.xdvievents.canit)
 	   MUST GO INSIDE THIS IF CASE, AND MUST NOT BE INVOKED FROM
 	   SOMEWHERE ELSE!
 	   
@@ -2555,7 +2555,7 @@
 	had_ps_specials = False;
 #endif
 #endif
-	globals.events.flags &= ~EV_MAG_GONE;
+	globals.xdvievents.flags &= ~EV_MAG_GONE;
 #if 0
 	if (search_have_match() && save_gamma != 0.0) {
 	    resource.gamma = save_gamma;
@@ -3197,10 +3197,10 @@
 	return 0;	/* error; we'll catch it later */
 
     if (currinf.set_char_p == load_n_set_char) {
-	if (globals.events.flags & EV_GE_NEWDOC)	/* if abort */
+	if (globals.xdvievents.flags & EV_GE_NEWDOC)	/* if abort */
 	    return 0;
 	if (!load_font(currinf.fontp, resource.t1lib)) {	/* if not found */
-	    if (globals.events.flags & EV_GE_NEWDOC)	/* if abort */
+	    if (globals.xdvievents.flags & EV_GE_NEWDOC)	/* if abort */
 		return 0;
 
 	    /* FIXME: replace by GUI warning! */
@@ -3339,10 +3339,10 @@
 	return 0;	/* error; we'll catch it later */
 
     if (currinf.set_char_p == load_n_set_char) {
-	if (globals.events.flags & EV_GE_NEWDOC)	/* if abort */
+	if (globals.xdvievents.flags & EV_GE_NEWDOC)	/* if abort */
 	    return 0;
 	if (!load_font(currinf.fontp, resource.t1lib)) {	/* if not found */
-	    if (globals.events.flags & EV_GE_NEWDOC)	/* if abort */
+	    if (globals.xdvievents.flags & EV_GE_NEWDOC)	/* if abort */
 		return 0;
 
 	    /* FIXME: replace by GUI warning! */
@@ -4896,7 +4896,7 @@
     /* Move to that page.  */
     goto_page(best_page, resource.keep_flag ? NULL : home, False);
     page_history_insert(best_page);
-    globals.events.flags |= EV_NEWPAGE; /* so that existing mark gets erased */
+    globals.xdvievents.flags |= EV_NEWPAGE; /* so that existing mark gets erased */
     /* Now search that particular page.  */
 
     info.geom_special = src_spec_fwd_special;
diff -ur orig/tetex-src-beta-2.96.4.20040627/texk/xdvik/dvi-init.c tetex-src-beta-2.96.4.20040627/texk/xdvik/dvi-init.c
--- orig/tetex-src-beta-2.96.4.20040627/texk/xdvik/dvi-init.c	Sat May  8 02:51:27 2004
+++ tetex-src-beta-2.96.4.20040627/texk/xdvik/dvi-init.c	Mon Jun 28 17:51:19 2004
@@ -370,7 +370,7 @@
     fontp->file = NULL;
 
     /* update for font loading popup */
-    if (--globals.events.ctr == 0) {
+    if (--globals.xdvievents.ctr == 0) {
 	read_events(EV_GE_IDLE);
     }
     /* same trick as in statusline.c */
@@ -388,7 +388,7 @@
 #endif /* T1LIB */
 
     /* update again ... */
-    if (--globals.events.ctr == 0) {
+    if (--globals.xdvievents.ctr == 0) {
 	read_events(EV_GE_IDLE);
     }
     /* same trick as in statusline.c */
@@ -420,7 +420,7 @@
 #endif /* T1LIB */
     /* when not using T1lib, fontp->file == NULL means total failure */
     if (fontp->file == NULL) {
-	if (globals.events.flags & EV_GE_NEWDOC)
+	if (globals.xdvievents.flags & EV_GE_NEWDOC)
 	    return False;
 	fontp->flags |= FONT_LOADED;	/* as loaded as it'll get */
 	XDVI_ERROR((stderr, "Can't find font %s.%dpk", fontp->fontname, dpi));
@@ -642,7 +642,7 @@
 	    fontp->scale = scale;
 	    if (vfparent == NULL)
 		if (!load_font(fontp, resource.t1lib)) {
-		    if (globals.events.flags & EV_GE_NEWDOC) {	/* if aborting */
+		    if (globals.xdvievents.flags & EV_GE_NEWDOC) {	/* if aborting */
 			free(fontname);
 			free(fontp);
 			return NULL;
@@ -1462,7 +1462,7 @@
 	    */
 	    /*
 	    else {
-		globals.events.flags |= EV_RELOAD;
+		globals.xdvievents.flags |= EV_RELOAD;
 	    }
 	    */
 	    return True;
@@ -1478,7 +1478,7 @@
 	    if (resource.watch_file == 0.0) {
 		statusline_print(STATUS_MEDIUM, "File corrupted (click on window to reload) ...");
 		globals.cursor.flags |= CURSOR_CORRUPTED;
-		globals.events.flags |= EV_CURSOR;
+		globals.xdvievents.flags |= EV_CURSOR;
 	    }
 	    else {
 		statusline_print(STATUS_MEDIUM, "File corrupted (will try to reload) ...");
@@ -1489,7 +1489,7 @@
 		&& read_postamble(m_dvi_fp, &errflag, False)) {
 		TRACE_FILES((stderr, "File OK, reloading ..."));
 		
-		globals.events.flags |= EV_RELOAD;
+		globals.xdvievents.flags |= EV_RELOAD;
 		return True;
 	    }
 	    else {
@@ -1500,7 +1500,7 @@
 	}
 	else {
 	    TRACE_FILES((stderr, "Not using temp fp, reloading..."));
-	    globals.events.flags |= EV_RELOAD;
+	    globals.xdvievents.flags |= EV_RELOAD;
 	    return True;
 	}
     }
@@ -1577,7 +1577,7 @@
     else if (fstatbuf.st_mtime != globals.dvi_file.time) {
 	TRACE_EVENTS((stderr, "watching: file has changed."));
 	globals.cursor.flags |= CURSOR_CORRUPTED;
-	globals.events.flags |= EV_CURSOR;
+	globals.xdvievents.flags |= EV_CURSOR;
 	if ((new_file = XFOPEN(globals.dvi_name, OPEN_MODE)) != NULL) {
 	    TRACE_EVENTS((stderr, "watching: new file opened successfully."));
 	    if (process_preamble(new_file, &errflag)
@@ -1586,7 +1586,7 @@
 		TRACE_EVENTS((stderr, "watching: file is OK - reloading."));
 
 		close_old_filep();
-		globals.events.flags |= EV_NEWDOC;
+		globals.xdvievents.flags |= EV_NEWDOC;
 	    }
 	    else {
 		TRACE_EVENTS((stderr, "watching: file seems corrupted"));
diff -ur orig/tetex-src-beta-2.96.4.20040627/texk/xdvik/dvisel.c tetex-src-beta-2.96.4.20040627/texk/xdvik/dvisel.c
--- orig/tetex-src-beta-2.96.4.20040627/texk/xdvik/dvisel.c	Sat May  8 02:51:27 2004
+++ tetex-src-beta-2.96.4.20040627/texk/xdvik/dvisel.c	Mon Jun 28 17:51:12 2004
@@ -371,7 +371,7 @@
 	if (read_events(EV_NOWAIT) & EV_GE_NEWPAGE)
 	    break;
 	page_bak = page;
-	if (!setjmp(globals.events.canit)) {
+	if (!setjmp(globals.xdvievents.canit)) {
 	    fprintf(stderr, "current position: %lu; seeking to: %lu\n",
 		    (unsigned long)pos_save,
 		    (unsigned long)pageinfo_get_offset(page));
diff -ur orig/tetex-src-beta-2.96.4.20040627/texk/xdvik/events.c tetex-src-beta-2.96.4.20040627/texk/xdvik/events.c
--- orig/tetex-src-beta-2.96.4.20040627/texk/xdvik/events.c	Sat Jun 26 18:40:04 2004
+++ tetex-src-beta-2.96.4.20040627/texk/xdvik/events.c	Mon Jun 28 17:50:57 2004
@@ -537,7 +537,7 @@
     if (windowrec->max_y < (int)(y + h))
 	windowrec->max_y = y + h;
 
-    globals.events.flags |= EV_EXPOSE;
+    globals.xdvievents.flags |= EV_EXPOSE;
 }
 
 void
@@ -840,7 +840,7 @@
     mane.width = new_clip_w;
     mane.height = new_clip_h;
     if (old_clip_w == 0) {
-	globals.events.flags |= EV_NEWPAGE;
+	globals.xdvievents.flags |= EV_NEWPAGE;
     }
 
     if (resource.keep_flag) {
@@ -1357,7 +1357,7 @@
 	/* Control-L (and changing the page) clears this box */
 	globals.src.fwd_box_page = -1;
 
-	globals.events.flags |= EV_NEWPAGE;
+	globals.xdvievents.flags |= EV_NEWPAGE;
 	XFlush(DISP);       
     }
 }
@@ -1485,7 +1485,7 @@
     if (arg == current_page) { /* zero argument -> redraw page */
 	globals.src.fwd_box_page = -1;
 	search_reset_info();
-	globals.events.flags |= EV_NEWPAGE;
+	globals.xdvievents.flags |= EV_NEWPAGE;
 	XFlush(DISP);
 	statusline_print(STATUS_SHORT, "Page redrawn.");
 	return;
@@ -2173,7 +2173,7 @@
 /*     if (!resource.keep_flag) */
 /* 	home(False); */
 
-    globals.events.flags |= EV_NEWPAGE;
+    globals.xdvievents.flags |= EV_NEWPAGE;
     XFlush(DISP);
 }
 
@@ -2349,7 +2349,7 @@
 
 /*      store_user_preference("gamma", "%f", resource.gamma); */
 
-    globals.events.flags |= EV_NEWPAGE;
+    globals.xdvievents.flags |= EV_NEWPAGE;
     XFlush(DISP);
 }
 
@@ -2579,7 +2579,7 @@
 	else {
 	    statusline_print(STATUS_SHORT, "greyscaling off");
 	}
-	globals.events.flags |= EV_NEWPAGE;
+	globals.xdvievents.flags |= EV_NEWPAGE;
 	XFlush(DISP);
 	return;
     }
@@ -2616,7 +2616,7 @@
 #endif
     }
     reset_fonts();
-    globals.events.flags |= EV_NEWPAGE;
+    globals.xdvievents.flags |= EV_NEWPAGE;
     XFlush(DISP);
 }
 
@@ -2649,7 +2649,7 @@
 #ifdef MOTIF
     update_preferences_color();
 #endif
-    globals.events.flags |= EV_NEWPAGE;
+    globals.xdvievents.flags |= EV_NEWPAGE;
 }
 
 static void
@@ -2748,7 +2748,7 @@
 	XClearWindow(DISP, mane.win);
     }
     
-    globals.events.flags |= EV_PS_TOGGLE;
+    globals.xdvievents.flags |= EV_PS_TOGGLE;
     XFlush(DISP);
 }
 
@@ -2841,7 +2841,7 @@
 	XClearWindow(DISP, mane.win);
     }
     
-    globals.events.flags |= EV_PS_TOGGLE;
+    globals.xdvievents.flags |= EV_PS_TOGGLE;
     XFlush(DISP);
 }
 #endif
@@ -2859,7 +2859,7 @@
 	return;
     
 /*      fprintf(stderr, "reread file!\n"); */
-    globals.events.flags |= EV_RELOAD;
+    globals.xdvievents.flags |= EV_RELOAD;
 }
 
 static void
@@ -3260,7 +3260,7 @@
 	mouse_motion = mouse_release = null_mouse;
     }
     
-    globals.events.flags |= EV_CURSOR;
+    globals.xdvievents.flags |= EV_CURSOR;
     XFlush(DISP);
     
 #if defined(NEW_MENU_CREATION) || defined(MOTIF)
@@ -3318,13 +3318,13 @@
 	if (mouse_release != null_mouse && mouse_release != text_release)
 	    return;
 	
-	globals.events.flags |= EV_CURSOR;
+	globals.xdvievents.flags |= EV_CURSOR;
 	
         XFlush(DISP);
     }
     else {
 	mouse_motion = mouse_release = null_mouse;
-	globals.events.flags |= EV_CURSOR;
+	globals.xdvievents.flags |= EV_CURSOR;
 
 	text_change_region(TEXT_SEL_CLEAR, NULL);
 	
@@ -3377,7 +3377,7 @@
 	XDVI_WARNING((stderr, "drag(): Valid arguments are `+', `|' or `-'"));
     }
     
-    globals.events.flags |= EV_CURSOR;
+    globals.xdvievents.flags |= EV_CURSOR;
     
     if (mouse_release == null_mouse) {
 	mouse_motion = drag_motion;
@@ -3438,7 +3438,7 @@
     mouse_motion = mouse_release = null_mouse;
 
     globals.cursor.flags &= ~(CURSOR_DRAG_H | CURSOR_DRAG_V | CURSOR_DRAG_A);
-    globals.events.flags |= EV_CURSOR;
+    globals.xdvievents.flags |= EV_CURSOR;
     XFlush(DISP);
 }
 
@@ -3637,7 +3637,7 @@
     source_reverse_x = (source_reverse_x + mane_base_x) * mane.shrinkfactor;
     source_reverse_y = (source_reverse_y + mane_base_y) * mane.shrinkfactor;
 
-    globals.events.flags |= EV_SRC;
+    globals.xdvievents.flags |= EV_SRC;
 }
 
 void
@@ -3663,11 +3663,11 @@
 	return;
     }
 
-    if (!(globals.events.flags & EV_SRC)) {
+    if (!(globals.xdvievents.flags & EV_SRC)) {
 	source_reverse_x = -1;
 	source_show_all = (arg == 1 ? True : False);
 
-	globals.events.flags |= EV_SRC;
+	globals.xdvievents.flags |= EV_SRC;
     }
     if (clear_statusline)
 	statusline_clear();
@@ -3704,8 +3704,8 @@
 	set_dvi_name(filename);
 	current_page = 0; /* switch to first page */
 	close_old_filep();
-	globals.events.flags |= EV_NEWDOC;
-	globals.events.flags |= EV_PAGEHIST_INSERT;
+	globals.xdvievents.flags |= EV_NEWDOC;
+	globals.xdvievents.flags |= EV_PAGEHIST_INSERT;
     }
 }
 
@@ -3990,7 +3990,7 @@
 	}
 	TRACE_CLIENT((stderr, "got back atom_src_goto: |%s|", prop_ret));
 	globals.src.fwd_string = prop_ret;
-	globals.events.flags |= EV_SRC;
+	globals.xdvievents.flags |= EV_SRC;
     }
     else if ((&(ev->xproperty))->atom == atom_find_string()) {
 	/* string search requested */
@@ -4002,12 +4002,12 @@
 	}
 	TRACE_FIND((stderr, "got back atom_find_string: |%s|", prop_ret));
 	resource.find_string = prop_ret;
-	globals.events.flags |= EV_FIND;
+	globals.xdvievents.flags |= EV_FIND;
     }
     else if ((&(ev->xproperty))->atom == atom_reload()) {
 	/* like do_sigusr(); there's no data in this case. */
 	TRACE_CLIENT((stderr, "atom_reload()"));
-	globals.events.flags |= EV_RELOAD;
+	globals.xdvievents.flags |= EV_RELOAD;
     }
     else if ((&(ev->xproperty))->atom == atom_newdoc()) {
 	/* loading a new file */
@@ -4029,7 +4029,7 @@
 	    return;
 	}
 	set_dvi_name(prop_ret);
-	globals.events.flags |= EV_NEWDOC;
+	globals.xdvievents.flags |= EV_NEWDOC;
     }
     else if ((&(ev->xproperty))->atom == atom_newpage()) {
 	/* jumping to a different page */
@@ -4081,7 +4081,7 @@
 {
     UNUSED(signo);
     
-    globals.events.ctr = 1;
+    globals.xdvievents.ctr = 1;
     event_freq = -1;	/* forget Plan B */
     sig_flags |= SF_POLL;
 # ifndef HAVE_SIGACTION
@@ -4119,7 +4119,7 @@
 {
     UNUSED(signo);
     
-    globals.events.ctr = 1;
+    globals.xdvievents.ctr = 1;
     sig_flags |= SF_USR;
 }
 
@@ -4757,7 +4757,7 @@
 #ifndef HAVE_SIGACTION
     (void) signal(SIGUSR1, handle_sigusr);	/* reset the signal */
 #endif
-    globals.events.flags |= EV_RELOAD;
+    globals.xdvievents.flags |= EV_RELOAD;
 }
 
 
@@ -4803,7 +4803,7 @@
        is in non-k xdvi, else we'll end up in a busy loop! I don't know
        what's meant by `caller' here anyway ...
 
-       globals.events.flags |= EV_TERM; /\* otherwise, let the caller handle it *\/
+       globals.xdvievents.flags |= EV_TERM; /\* otherwise, let the caller handle it *\/
     */
 }
 
@@ -4825,7 +4825,7 @@
  *	indicating which event types should cause read_events to return instead
  *	of waiting for more events.  This function will always process all
  *	pending events and signals before returning.
- *	The return value is the value of globals.events.flags.
+ *	The return value is the value of globals.xdvievents.flags.
  */
 
 unsigned int
@@ -4841,7 +4841,7 @@
     if (globals.debug & DBG_EVENT)
 	fprintf(stderr, "%s:%d: read_events %u\n", __FILE__, __LINE__, ret_mask);
     for (;;) {
-	globals.events.ctr = event_freq;
+	globals.xdvievents.ctr = event_freq;
 	/*
 	 * The above line clears the flag indicating that an event is
 	 * pending.  So if an event comes in right now, the flag will be
@@ -4871,9 +4871,9 @@
 		    if (XtPending())
 			break;
 
-		    if (globals.events.flags & ret_mask) {
+		    if (globals.xdvievents.flags & ret_mask) {
 			(void) sigprocmask(SIG_SETMASK, &oldsig, (sigset_t *) NULL);
-			return globals.events.flags;
+			return globals.xdvievents.flags;
 		    }
 		    (void) sigsuspend(&oldsig);
 		}
@@ -4907,8 +4907,8 @@
 		    if (XtPending())
 			break;
 
-		    if (globals.events.flags & ret_mask)
-			return globals.events.flags;
+		    if (globals.xdvievents.flags & ret_mask)
+			return globals.xdvievents.flags;
 
 		    /* If a SIGUSR1 signal comes right now, then it will wait
 		       until an X event or another SIGUSR1 signal arrives. */
@@ -5072,7 +5072,7 @@
 		  currwin.base_x, currwin.base_y));
 
     /* can't use ev_cursor here, since the event loop might not see this change quick enough */
-    if (!(globals.events.flags & EV_CURSOR)) {
+    if (!(globals.xdvievents.flags & EV_CURSOR)) {
 	TRACE_EVENTS((stderr, "Cursor: %ld", globals.cursor.flags));
 	if (!(globals.cursor.flags & (CURSOR_DRAG_H | CURSOR_DRAG_V | CURSOR_DRAG_A))) {
 	    if (resource.mouse_mode == MOUSE_RULER_MODE)
@@ -5081,7 +5081,7 @@
 		XDefineCursor(DISP, CURSORWIN, globals.cursor.wait);
 	    XFlush(DISP);
 	}
-	globals.events.flags |= EV_CURSOR;
+	globals.xdvievents.flags |= EV_CURSOR;
     }
 
     /* No longer needed since windows are correctly transient now */
@@ -5109,7 +5109,7 @@
 
 	prescan(globals.dvi_file.bak_fp);
 
-	if (globals.events.flags & EV_GE_NEWPAGE) {	/* if we need to re-prescan */
+	if (globals.xdvievents.flags & EV_GE_NEWPAGE) {	/* if we need to re-prescan */
 	    return;
 	}
     }
@@ -5137,7 +5137,7 @@
     */
 #if PS_GS
     if (gs_postpone_prescan) {
-	if (!setjmp(globals.events.canit)) {
+	if (!setjmp(globals.xdvievents.canit)) {
 	    gs_resume_prescan();
 	}
 	else
@@ -5258,9 +5258,9 @@
 	    for (;;) {
 		redraw_page();
 		(void) read_events(EV_NOWAIT);
-		if (!(globals.events.flags & (EV_NEWPAGE | EV_NEWDOC | EV_RELOAD)))
+		if (!(globals.xdvievents.flags & (EV_NEWPAGE | EV_NEWDOC | EV_RELOAD)))
 		    break;
-		globals.events.flags = EV_IDLE;
+		globals.xdvievents.flags = EV_IDLE;
 	    }
 #else
 	    redraw_page();
@@ -5271,15 +5271,15 @@
     else {
 	for (;;) {	/* normal operation */
 	    (void) read_events(EV_GT_IDLE);
-/*  	    fprintf(stderr, "globals.events.flags: %d; ev_newpage: %d, ev_newdoc: %d\n", globals.events.flags, EV_NEWPAGE, EV_NEWDOC); */
+/*  	    fprintf(stderr, "globals.xdvievents.flags: %d; ev_newpage: %d, ev_newdoc: %d\n", globals.xdvievents.flags, EV_NEWPAGE, EV_NEWDOC); */
 	    /* NOTE: reloading must be checked first! */
-	    if (globals.events.flags & (EV_NEWPAGE | EV_NEWDOC | EV_RELOAD | EV_PS_TOGGLE)) {
+	    if (globals.xdvievents.flags & (EV_NEWPAGE | EV_NEWDOC | EV_RELOAD | EV_PS_TOGGLE)) {
 		TRACE_EVENTS((stderr, "EV_NEWPAGE | ..."));
-		globals.events.flags &= ~(EV_NEWPAGE | EV_EXPOSE | EV_PS_TOGGLE);
-		if (globals.events.flags & EV_RELOAD) {
+		globals.xdvievents.flags &= ~(EV_NEWPAGE | EV_EXPOSE | EV_PS_TOGGLE);
+		if (globals.xdvievents.flags & EV_RELOAD) {
 		    dviErrFlagT errflag;
 
-		    globals.events.flags &= ~EV_RELOAD;
+		    globals.xdvievents.flags &= ~EV_RELOAD;
 		    if (load_dvi_file(True, &errflag)) {
 #if PS
 			ps_clear_cache();
@@ -5297,13 +5297,13 @@
 			statusline_print(STATUS_MEDIUM, "File corrupted, not reloading.");
 		    }
 		}
-		if (globals.events.flags & EV_NEWDOC) {
+		if (globals.xdvievents.flags & EV_NEWDOC) {
 		    dviErrFlagT errflag;
 		    TRACE_EVENTS((stderr, "EV_NEWDOC!"));
 /*  		    fprintf(stderr, "newdoc!\n"); */
 		    TRACE_FILES((stderr, "current page: %d", current_page));
 /*  		    file_history_set_page(current_page); */
-		    globals.events.flags &= ~EV_NEWDOC;
+		    globals.xdvievents.flags &= ~EV_NEWDOC;
 		    if (load_dvi_file(True, &errflag)) {
 			statusline_append(STATUS_SHORT, "Opened ", "Opened \"%s\"", globals.dvi_name);
 /* 			statusline_print(STATUS_SHORT, "Opened \"%s\"", globals.dvi_name); */
@@ -5338,22 +5338,22 @@
 		    (void)dvi_file_changed();
 		}
 	    }
-	    else if (globals.events.flags & EV_FILEHIST_GOTO_PAGE) {
+	    else if (globals.xdvievents.flags & EV_FILEHIST_GOTO_PAGE) {
 		int pageno;
-		globals.events.flags &= ~EV_FILEHIST_GOTO_PAGE;
+		globals.xdvievents.flags &= ~EV_FILEHIST_GOTO_PAGE;
 		pageno = file_history_get_page();
 		goto_page(pageno, resource.keep_flag ? NULL : home, False);
 		TRACE_FILES((stderr, "got page: %d", pageno));
 	    }
-	    else if (globals.events.flags & EV_PAGEHIST_INSERT) {
-		globals.events.flags &= ~EV_PAGEHIST_INSERT;
+	    else if (globals.xdvievents.flags & EV_PAGEHIST_INSERT) {
+		globals.xdvievents.flags &= ~EV_PAGEHIST_INSERT;
 		page_history_insert(current_page);
 	    }
-	    else if (globals.events.flags & EV_FIND_CANCEL) {
+	    else if (globals.xdvievents.flags & EV_FIND_CANCEL) {
 		/* NOTE: This must be done before checking for expose() */
-		globals.events.flags &= ~EV_FIND_CANCEL;
+		globals.xdvievents.flags &= ~EV_FIND_CANCEL;
 	    }
-	    else if (globals.events.flags & EV_ANCHOR) {
+	    else if (globals.xdvievents.flags & EV_ANCHOR) {
 		/*
 		 * Similar to forward search: search for a htex anchor.
 		 * This needs to come before the next case which does the redraw_page(),
@@ -5369,9 +5369,9 @@
 		    continue;
 		
 		anchor_search(g_anchor_pos);
-		globals.events.flags &= ~EV_ANCHOR;
+		globals.xdvievents.flags &= ~EV_ANCHOR;
 	    }
-	    else if (globals.events.flags & EV_SRC) {
+	    else if (globals.xdvievents.flags & EV_SRC) {
 		/*
 		 * Source special operations are deferred to here because
 		 * they call geom_scan(), which may call define_font(),
@@ -5385,7 +5385,7 @@
 			continue;
 		    
 		    source_forward_search(s);
-		    globals.events.flags &= ~EV_SRC;
+		    globals.xdvievents.flags &= ~EV_SRC;
 		    globals.src.fwd_string = NULL;
 
 		    /* de-iconify window if needed, and raise it */
@@ -5397,15 +5397,15 @@
 			continue;
 		    
 		    source_reverse_search(source_reverse_x, source_reverse_y, True);
-		    globals.events.flags &= ~EV_SRC;
+		    globals.xdvievents.flags &= ~EV_SRC;
 		}
 		else {
 		    source_special_show(source_show_all);
-		    globals.events.flags &= ~EV_SRC;
+		    globals.xdvievents.flags &= ~EV_SRC;
 		}
 	    }
 	    /* support for `-findstring' */
-	    else if (globals.events.flags & EV_FIND) {
+	    else if (globals.xdvievents.flags & EV_FIND) {
 		if (dvi_file_changed())
 		    continue;
 
@@ -5416,29 +5416,29 @@
 		else { /* actually should never arrive here?? */
 		    dvi_find_string(NULL, True);
 		}
-		globals.events.flags &= ~EV_FIND;
+		globals.xdvievents.flags &= ~EV_FIND;
 	    }
-	    else if (globals.events.flags & EV_MAG_MOVE) {
+	    else if (globals.xdvievents.flags & EV_MAG_MOVE) {
 		move_magnifier();
 	    }
-	    else if (globals.events.flags & EV_EXPOSE) {
+	    else if (globals.xdvievents.flags & EV_EXPOSE) {
 		if (magnifier.min_x < MAXDIM) {
 /*  		    fprintf(stderr, "magnifier < maxdim!\n"); */
 		    if (mane.min_x >= MAXDIM) {
 /*  			fprintf(stderr, "mane >= maxdim!\n"); */
-			globals.events.flags &= ~EV_EXPOSE;
+			globals.xdvievents.flags &= ~EV_EXPOSE;
 		    }
 		    redraw(&magnifier);
 		}
 		else {
 		    /* see comment in mag.c */
-		    globals.events.flags &= ~EV_EXPOSE;
+		    globals.xdvievents.flags &= ~EV_EXPOSE;
 		    if (mane.min_x < MAXDIM) {
 			redraw(&mane);
 		    }
 		}
 	    }
-	    else if (globals.events.flags & EV_CURSOR) {
+	    else if (globals.xdvievents.flags & EV_CURSOR) {
 		/*
 		 * This code eliminates unnecessary calls to XDefineCursor,
 		 * since this is a slow operation on some hardware (e.g., S3
@@ -5469,7 +5469,7 @@
 		    else
 			curr = globals.cursor.ready;
 		    XDefineCursor(DISP, CURSORWIN, curr);
-		    globals.events.flags &= ~EV_CURSOR;
+		    globals.xdvievents.flags &= ~EV_CURSOR;
 		}
 	    }
 	    XFlush(DISP);
diff -ur orig/tetex-src-beta-2.96.4.20040627/texk/xdvik/filehist.c tetex-src-beta-2.96.4.20040627/texk/xdvik/filehist.c
--- orig/tetex-src-beta-2.96.4.20040627/texk/xdvik/filehist.c	Tue Jun  1 23:57:13 2004
+++ tetex-src-beta-2.96.4.20040627/texk/xdvik/filehist.c	Mon Jun 28 17:49:46 2004
@@ -359,9 +359,9 @@
 	    globals.dvi_file.dirname = get_dir_component(globals.dvi_name);
 	    globals.dvi_file.dirlen = strlen(globals.dvi_file.dirname);
 	    
-	    globals.events.flags |= EV_NEWDOC;
-	    globals.events.flags |= EV_FILEHIST_GOTO_PAGE;
-	    globals.events.flags |= EV_PAGEHIST_INSERT;
+	    globals.xdvievents.flags |= EV_NEWDOC;
+	    globals.xdvievents.flags |= EV_FILEHIST_GOTO_PAGE;
+	    globals.xdvievents.flags |= EV_PAGEHIST_INSERT;
 	}
 	else { /* re-open old file */
 	    popup_message(globals.widgets.top_level,
@@ -391,7 +391,7 @@
 		filehist_menu_refresh();
 	    }
 	    else {
-		globals.events.flags |= EV_NEWPAGE;
+		globals.xdvievents.flags |= EV_NEWPAGE;
 	    }
 	}
     }
diff -ur orig/tetex-src-beta-2.96.4.20040627/texk/xdvik/gui/mag.c tetex-src-beta-2.96.4.20040627/texk/xdvik/gui/mag.c
--- orig/tetex-src-beta-2.96.4.20040627/texk/xdvik/gui/mag.c	Sat May  8 02:51:44 2004
+++ tetex-src-beta-2.96.4.20040627/texk/xdvik/gui/mag.c	Mon Jun 28 17:48:58 2004
@@ -98,9 +98,9 @@
     main_y = event->xmotion.y_root - new_mag_y;
 
     if (new_mag_x != mag_x || new_mag_y != mag_y)
-	globals.events.flags |= EV_MAG_MOVE;
+	globals.xdvievents.flags |= EV_MAG_MOVE;
     else
-	globals.events.flags &= ~EV_MAG_MOVE;
+	globals.xdvievents.flags &= ~EV_MAG_MOVE;
 }
 
 void
@@ -114,13 +114,13 @@
 	else {
 	    XDestroyWindow(DISP, magnifier.win);
 	    if (drawing_mag) {
-		globals.events.flags |= EV_MAG_GONE;
+		globals.xdvievents.flags |= EV_MAG_GONE;
 	    }
 	    magnifier.win = (Window) 0;
 	    mouse_motion = mouse_release = null_mouse;
-	    globals.events.flags &= ~EV_MAG_MOVE;
+	    globals.xdvievents.flags &= ~EV_MAG_MOVE;
 	    globals.cursor.flags &= ~CURSOR_MAG;
-	    globals.events.flags |= EV_CURSOR;
+	    globals.xdvievents.flags |= EV_CURSOR;
 	    can_exposures(&magnifier);
 	    /*
 	      Workaround for bug #703304:
@@ -136,9 +136,9 @@
 	      may cause a `BadDrawable' X error with color material (e.g. from #702288),
 	      or a `draw_part: shouldn't happen: POST encountered' error. Neither do
 	      the following work:
-	         globals.events.flags |= EV_EXPOSE;		(doesn't fix the bug)
+	         globals.xdvievents.flags |= EV_EXPOSE;		(doesn't fix the bug)
 		 draw_page();			(same effect as redraw(&mane))
-		 globals.events.flags |= EV_NEWPAGE;	(works, but is crude and causes flicker)
+		 globals.xdvievents.flags |= EV_NEWPAGE;	(works, but is crude and causes flicker)
 		 
 	      So I decided to use expose() for the time being, which 
 	      sets mane.min_x to the current x point (which doesn't happen
@@ -389,7 +389,7 @@
     mag_x = x;
     mag_y = y;
     if (mag_x == new_mag_x && mag_y == new_mag_y)
-	globals.events.flags &= ~EV_MAG_MOVE;
+	globals.xdvievents.flags &= ~EV_MAG_MOVE;
     compute_mag_pos(&xx, &yy);
     XMoveWindow(DISP, magnifier.win, xx, yy);
     scroll_window(&magnifier,
@@ -514,7 +514,7 @@
 move_magnifier(void)
 {
     if (magnifier.win == (Window) 0)
-	globals.events.flags &= ~EV_MAG_MOVE;
+	globals.xdvievents.flags &= ~EV_MAG_MOVE;
     else if (abs(new_mag_x - mag_x) > 2 * abs(new_mag_y - mag_y))
 	do_movemag(new_mag_x, mag_y);
     else if (abs(new_mag_y - mag_y) > 2 * abs(new_mag_x - mag_x))
@@ -688,7 +688,7 @@
     if (block_this_mouse_event())
 	return;
     else if (dvi_file_changed()) {
-	globals.events.flags |= EV_RELOAD;
+	globals.xdvievents.flags |= EV_RELOAD;
 	return;
     }
 
@@ -759,7 +759,7 @@
 #endif
 
     globals.cursor.flags |= CURSOR_MAG;
-    globals.events.flags |= EV_CURSOR;
+    globals.xdvievents.flags |= EV_CURSOR;
     
     mag_x = event->xbutton.x + mag_conv_x;
     mag_y = event->xbutton.y + mag_conv_y;
diff -ur orig/tetex-src-beta-2.96.4.20040627/texk/xdvik/gui/search-dialog.c tetex-src-beta-2.96.4.20040627/texk/xdvik/gui/search-dialog.c
--- orig/tetex-src-beta-2.96.4.20040627/texk/xdvik/gui/search-dialog.c	Sat May  8 02:51:44 2004
+++ tetex-src-beta-2.96.4.20040627/texk/xdvik/gui/search-dialog.c	Mon Jun 28 17:48:54 2004
@@ -278,7 +278,7 @@
        will be eventually reset by do_pages() in events.c.
        (The scanning routines musn't reset it, since they
        might not be called again after this point!) */
-    globals.events.flags |= EV_FIND_CANCEL;
+    globals.xdvievents.flags |= EV_FIND_CANCEL;
 
     search_signal_page_changed(); /* Hack to make search restart anew */
     search_erase_highlighting(True);
diff -ur orig/tetex-src-beta-2.96.4.20040627/texk/xdvik/gui/xaw_menu.c tetex-src-beta-2.96.4.20040627/texk/xdvik/gui/xaw_menu.c
--- orig/tetex-src-beta-2.96.4.20040627/texk/xdvik/gui/xaw_menu.c	Tue Jun  1 23:57:15 2004
+++ tetex-src-beta-2.96.4.20040627/texk/xdvik/gui/xaw_menu.c	Mon Jun 28 17:48:49 2004
@@ -387,7 +387,7 @@
 	ptr++;
     TRACE_GUI((stderr, "User selected: %d, `%s'", idx, ptr));
     if (idx == 0) {
-	globals.events.flags |= EV_RELOAD;
+	globals.xdvievents.flags |= EV_RELOAD;
 	return;
     }
     file_history_open(ptr);
diff -ur orig/tetex-src-beta-2.96.4.20040627/texk/xdvik/gui/xm_colorsel.c tetex-src-beta-2.96.4.20040627/texk/xdvik/gui/xm_colorsel.c
--- orig/tetex-src-beta-2.96.4.20040627/texk/xdvik/gui/xm_colorsel.c	Wed Apr 21 10:38:29 2004
+++ tetex-src-beta-2.96.4.20040627/texk/xdvik/gui/xm_colorsel.c	Mon Jun 28 17:48:44 2004
@@ -165,7 +165,7 @@
 	XChangeGC(DISP, globals.gc.ruler, GCForeground, &values);
 
 	scanned_page = scanned_page_color = scanned_page_reset;
-	globals.events.flags |= EV_NEWPAGE;
+	globals.xdvievents.flags |= EV_NEWPAGE;
 
     }
     else if (strcmp(cinfo->button_info->resource_name, "background") == 0) {
@@ -175,7 +175,7 @@
 
 	resource.back_Pixel = cinfo->new_color.pixel;
 	scanned_page = scanned_page_color = scanned_page_reset;
-	globals.events.flags |= EV_RELOAD; /* EV_NEWPAGE not sufficient with color code ... */
+	globals.xdvievents.flags |= EV_RELOAD; /* EV_NEWPAGE not sufficient with color code ... */
     }
     else if (strcmp(cinfo->button_info->resource_name, "highlight") == 0) {
 	XGCValues values;
@@ -187,7 +187,7 @@
 	search_draw_inverted_regions();
 	resource.match_highlight_inverted = !resource.match_highlight_inverted;
 	/* end of hack to update match GC */
-	globals.events.flags |= EV_NEWPAGE; /* force redraw */
+	globals.xdvievents.flags |= EV_NEWPAGE; /* force redraw */
     }
     
     XtUnmanageChild(widget);
diff -ur orig/tetex-src-beta-2.96.4.20040627/texk/xdvik/gui/xm_menu.c tetex-src-beta-2.96.4.20040627/texk/xdvik/gui/xm_menu.c
--- orig/tetex-src-beta-2.96.4.20040627/texk/xdvik/gui/xm_menu.c	Tue Jun  1 23:57:15 2004
+++ tetex-src-beta-2.96.4.20040627/texk/xdvik/gui/xm_menu.c	Mon Jun 28 17:48:39 2004
@@ -168,7 +168,7 @@
     ASSERT(menu != NULL, "XmNuserData in filehist_select_cb musn't be NULL!");
 
     if (idx == 0) { /* user re-selected current file: reload */
-	globals.events.flags |= EV_RELOAD;
+	globals.xdvievents.flags |= EV_RELOAD;
 	return;
     }
     if ((fname = file_history_get_elem(idx, &pageno)) == NULL) {
diff -ur orig/tetex-src-beta-2.96.4.20040627/texk/xdvik/gui/xm_prefs.c tetex-src-beta-2.96.4.20040627/texk/xdvik/gui/xm_prefs.c
--- orig/tetex-src-beta-2.96.4.20040627/texk/xdvik/gui/xm_prefs.c	Tue Jun  1 23:57:15 2004
+++ tetex-src-beta-2.96.4.20040627/texk/xdvik/gui/xm_prefs.c	Mon Jun 28 17:48:34 2004
@@ -325,7 +325,7 @@
 /*     if (need_redraw) */
     /* just reload it always, there's too many exceptions ...
        redraw isn't always sufficient if file has colors. */
-    globals.events.flags |= EV_RELOAD;
+    globals.xdvievents.flags |= EV_RELOAD;
 
 }
 
diff -ur orig/tetex-src-beta-2.96.4.20040627/texk/xdvik/gui/xm_prefs_appearance.c tetex-src-beta-2.96.4.20040627/texk/xdvik/gui/xm_prefs_appearance.c
--- orig/tetex-src-beta-2.96.4.20040627/texk/xdvik/gui/xm_prefs_appearance.c	Wed Apr 21 10:38:37 2004
+++ tetex-src-beta-2.96.4.20040627/texk/xdvik/gui/xm_prefs_appearance.c	Mon Jun 28 17:48:27 2004
@@ -92,7 +92,7 @@
     resource.match_highlight_inverted = !resource.match_highlight_inverted;
 
     /* force a redraw so that a current match is updated if there was one */
-    globals.events.flags |= EV_NEWPAGE;
+    globals.xdvievents.flags |= EV_NEWPAGE;
     
     store_preference(&(prefs->db), "matchInverted", "%s",
 		     resource.match_highlight_inverted ? "True" : "False");
diff -ur orig/tetex-src-beta-2.96.4.20040627/texk/xdvik/gui/xm_prefs_fonts.c tetex-src-beta-2.96.4.20040627/texk/xdvik/gui/xm_prefs_fonts.c
--- orig/tetex-src-beta-2.96.4.20040627/texk/xdvik/gui/xm_prefs_fonts.c	Wed Apr 21 23:12:10 2004
+++ tetex-src-beta-2.96.4.20040627/texk/xdvik/gui/xm_prefs_fonts.c	Mon Jun 28 17:48:13 2004
@@ -95,7 +95,7 @@
     store_preference(&(prefs->db), "linkStyle", "%d", resource.link_style);
 
     /* update display */
-    globals.events.flags |= EV_NEWPAGE;
+    globals.xdvievents.flags |= EV_NEWPAGE;
     XFlush(DISP);
 }
 
@@ -219,7 +219,7 @@
 	    XFreeGC(XtDisplay(w), old_gc);
 	}
 	/* update display */
-	globals.events.flags |= EV_NEWPAGE;
+	globals.xdvievents.flags |= EV_NEWPAGE;
 	XFlush(DISP);
     }
 }
diff -ur orig/tetex-src-beta-2.96.4.20040627/texk/xdvik/gui/xm_prefs_scroll.c tetex-src-beta-2.96.4.20040627/texk/xdvik/gui/xm_prefs_scroll.c
--- orig/tetex-src-beta-2.96.4.20040627/texk/xdvik/gui/xm_prefs_scroll.c	Sun Apr 18 14:21:19 2004
+++ tetex-src-beta-2.96.4.20040627/texk/xdvik/gui/xm_prefs_scroll.c	Mon Jun 28 17:48:02 2004
@@ -108,7 +108,7 @@
 	store_preference(&(prefs->db), "sideMargin", "%s", x_off);
 	store_preference(&(prefs->db), "topMargin", "%s", y_off);
 
-	globals.events.flags |= EV_NEWPAGE;
+	globals.xdvievents.flags |= EV_NEWPAGE;
 	XFlush(DISP);
 	
 	XtFree((char *)buf_x);
diff -ur orig/tetex-src-beta-2.96.4.20040627/texk/xdvik/hypertex.c tetex-src-beta-2.96.4.20040627/texk/xdvik/hypertex.c
--- orig/tetex-src-beta-2.96.4.20040627/texk/xdvik/hypertex.c	Sat May  8 02:51:28 2004
+++ tetex-src-beta-2.96.4.20040627/texk/xdvik/hypertex.c	Mon Jun 28 17:49:41 2004
@@ -1390,8 +1390,8 @@
 	    return;
 	}
 	else {
-	    globals.events.flags |= EV_NEWDOC;
-	    globals.events.flags |= EV_PAGEHIST_INSERT;
+	    globals.xdvievents.flags |= EV_NEWDOC;
+	    globals.xdvievents.flags |= EV_PAGEHIST_INSERT;
 /*  	    statusline_print(STATUS_MEDIUM, "Back to file: \"%s\"", globals.dvi_name); */
 	}
     }
@@ -1447,7 +1447,7 @@
 	free(g_anchor_pos);
 	g_anchor_pos = xstrdup(info->anchor + 1);
 	g_anchor_len = strlen(g_anchor_pos);
-	globals.events.flags |= EV_ANCHOR;
+	globals.xdvievents.flags |= EV_ANCHOR;
     }
     else { /* it's an absolute link */
 	char *new_linkname = NULL;
@@ -1462,12 +1462,12 @@
 	    return;
 	}
 	else {
-	    globals.events.flags |= EV_NEWDOC;
+	    globals.xdvievents.flags |= EV_NEWDOC;
 	    goto_page(0, resource.keep_flag ? NULL : home, False);
-	    globals.events.flags |= EV_PAGEHIST_INSERT;
+	    globals.xdvievents.flags |= EV_PAGEHIST_INSERT;
 
 	    if (g_anchor_pos != NULL)
-		globals.events.flags |= EV_ANCHOR;
+		globals.xdvievents.flags |= EV_ANCHOR;
 
 /*  	    statusline_print(STATUS_MEDIUM, "Loaded file: \"%s\"", globals.dvi_name); */
 	    free(new_linkname);
@@ -1559,7 +1559,7 @@
        `prev_wrapped' pointer.
      */
     if (htex_page_info.anchors[i].prev_wrapped != -1) {
-	globals.events.flags |= EV_NEWPAGE;
+	globals.xdvievents.flags |= EV_NEWPAGE;
 	XSync(DISP, False);
 	return;
     }
@@ -1616,7 +1616,7 @@
 		free(g_anchor_pos);
 		g_anchor_pos = xstrdup(link + 1);
 		g_anchor_len = strlen(g_anchor_pos);
-		globals.events.flags |= EV_ANCHOR;
+		globals.xdvievents.flags |= EV_ANCHOR;
 		redraw_anchors(link_num);
 		return True;
 	    }
@@ -1640,13 +1640,13 @@
 		history_save_anchor(orig_link, pageno_bak, dvi_name_bak);
 		free(dvi_name_bak);
 		if (!newwindow) {
-		    globals.events.flags |= EV_NEWDOC;
+		    globals.xdvievents.flags |= EV_NEWDOC;
 		    goto_page(0, resource.keep_flag ? NULL : home, False);
-		    globals.events.flags |= EV_PAGEHIST_INSERT;
+		    globals.xdvievents.flags |= EV_PAGEHIST_INSERT;
 		    
 		    MYTRACE((stderr, "NEW FILE: |%s|", globals.dvi_name));
 		    if (g_anchor_pos != NULL)
-			globals.events.flags |= EV_ANCHOR;
+			globals.xdvievents.flags |= EV_ANCHOR;
 /*  		    statusline_print(STATUS_MEDIUM, "Loaded file: \"%s\"", dvi_name); */
 		}
 		else {
@@ -1675,7 +1675,7 @@
     if (anchor_text != NULL) { /* found an anchor */
 	if (!(globals.cursor.flags & CURSOR_LINK) && !dragging_text_selection()) {
 	    globals.cursor.flags |= CURSOR_LINK;
-	    globals.events.flags |= EV_CURSOR;
+	    globals.xdvievents.flags |= EV_CURSOR;
 	}
 	/* to prevent flicker, print only when it differs from previous one,
 	   i.e. when it either has a different ID or is on a different page: */
@@ -1689,7 +1689,7 @@
     else { /* not over anchor text, reset cursor and statusline */
 	if (globals.cursor.flags & CURSOR_LINK) {
 	    globals.cursor.flags &= ~CURSOR_LINK;
-	    globals.events.flags |= EV_CURSOR;
+	    globals.xdvievents.flags |= EV_CURSOR;
 	}
 
 	if (id_bak != -1 && (resource.expert_mode & XPRT_SHOW_STATUSLINE) != 0) {
diff -ur orig/tetex-src-beta-2.96.4.20040627/texk/xdvik/pagehist.c tetex-src-beta-2.96.4.20040627/texk/xdvik/pagehist.c
--- orig/tetex-src-beta-2.96.4.20040627/texk/xdvik/pagehist.c	Tue Jun  1 23:57:13 2004
+++ tetex-src-beta-2.96.4.20040627/texk/xdvik/pagehist.c	Mon Jun 28 17:49:37 2004
@@ -234,7 +234,7 @@
 	    return;
 	}
 	else {
-	    globals.events.flags |= EV_NEWDOC;
+	    globals.xdvievents.flags |= EV_NEWDOC;
 #if DEBUG
 	    fprintf(stderr, "Back to file: \"%s\"\n", globals.dvi_name);
 #endif
diff -ur orig/tetex-src-beta-2.96.4.20040627/texk/xdvik/psdps.c tetex-src-beta-2.96.4.20040627/texk/xdvik/psdps.c
--- orig/tetex-src-beta-2.96.4.20040627/texk/xdvik/psdps.c	Sun Apr 18 14:21:10 2004
+++ tetex-src-beta-2.96.4.20040627/texk/xdvik/psdps.c	Mon Jun 28 17:49:33 2004
@@ -216,7 +216,7 @@
 	    if (p >= p0 + 8 && memcmp(p - 8, ackstr, 9) == 0) {
 		--DPS_pending;
 		if (DPS_pending == 0)
-		    globals.events.flags |= EV_ACK;
+		    globals.xdvievents.flags |= EV_ACK;
 		if (globals.debug & DBG_PS)
 		    printf("Got DPS ack; %d pending.\n", DPS_pending);
 		++p;
@@ -231,7 +231,7 @@
 		++p;
 		(void)bcopy(p, p - 9, linepos - p);
 		linepos -= 9;
-		globals.events.flags |= EV_ACK;
+		globals.xdvievents.flags |= EV_ACK;
 		continue;
 	    }
 	    if (p >= p0 + 8 && memcmp(p - 8, intstr2, 9) == 0) {
@@ -278,7 +278,7 @@
 	puts("Received DPS alarm");
 
     DPS_timer_set = False;
-    globals.events.flags |= EV_ACK;
+    globals.xdvievents.flags |= EV_ACK;
 }
 #endif /* SUNHACK */
 
@@ -290,13 +290,13 @@
 
     DPSFlushContext(DPS_ctx);
     if (read_events(DPS_ev_mask | EV_ACK) & EV_ACK) {
-	globals.events.flags &= ~EV_ACK;
+	globals.xdvievents.flags &= ~EV_ACK;
 	return;
     }
 
     if (globals.debug & DBG_PS)
 	printf("Interrupting DPS in waitack(); code is now %d %x\n",
-		XDPSGetContextStatus(DPS_ctx), globals.events.flags);
+		XDPSGetContextStatus(DPS_ctx), globals.xdvievents.flags);
 
     DPS_active = DPS_in_header = DPS_in_doc = False;
     DPS_ev_mask = DPS_MASK_NORMAL;
@@ -317,7 +317,7 @@
     DPSInterruptContext(DPS_ctx);
     DPSFlushContext(DPS_ctx);
     (void) read_events(EV_GE_TERM | EV_ACK);
-    globals.events.flags &= ~EV_ACK;
+    globals.xdvievents.flags &= ~EV_ACK;
 
     XSync(DISP, False);
     DPSPrintf(DPS_ctx, " stop\n%%%%xdvimark\n stop\n%%%%xdvimark\n");
@@ -331,7 +331,7 @@
     DPS_timer_set = True;
     set_timer(&DPS_timer, 500);
     (void) read_events(EV_GE_TERM | EV_ACK);
-    globals.events.flags &= ~EV_ACK;
+    globals.xdvievents.flags &= ~EV_ACK;
 
     if (DPS_pending <= 0) {
 	if (DPS_timer_set) {
@@ -653,8 +653,8 @@
 	++DPS_pending;
     }
 
-    if (globals.events.flags & DPS_MASK_NORMAL)
-	longjmp(globals.events.canit, 1);
+    if (globals.xdvievents.flags & DPS_MASK_NORMAL)
+	longjmp(globals.xdvievents.canit, 1);
 
     DPSPrintf(DPS_ctx, "%d %d moveto\n", xul, yul);
     DPSPrintf(DPS_ctx, "%s\n", cp);
@@ -684,7 +684,7 @@
 static void
 drawrawDPS(const char *cp)
 {
-    if (!DPS_active || (globals.events.flags & DPS_ev_mask))
+    if (!DPS_active || (globals.xdvievents.flags & DPS_ev_mask))
 	return;
 
     if (globals.debug & DBG_PS)
@@ -731,8 +731,8 @@
 
     fclose(psfile);
 
-    if (globals.events.flags & DPS_ev_mask)
-	longjmp(globals.events.canit, 1);
+    if (globals.xdvievents.flags & DPS_ev_mask)
+	longjmp(globals.xdvievents.canit, 1);
 }
 
 
@@ -751,7 +751,7 @@
 static void
 drawendDPS(const char *cp)
 {
-    if (!DPS_active || (globals.events.flags & DPS_MASK_NORMAL))
+    if (!DPS_active || (globals.xdvievents.flags & DPS_MASK_NORMAL))
 	return;
 
     if (globals.debug & DBG_PS)
@@ -774,7 +774,7 @@
 static void
 beginheaderDPS(void)
 {
-    if (globals.events.flags & DPS_MASK_HEADER || !checkDPS())
+    if (globals.xdvievents.flags & DPS_MASK_HEADER || !checkDPS())
 	return;
 
     if (globals.debug & DBG_PS)
diff -ur orig/tetex-src-beta-2.96.4.20040627/texk/xdvik/psgs.c tetex-src-beta-2.96.4.20040627/texk/xdvik/psgs.c
--- orig/tetex-src-beta-2.96.4.20040627/texk/xdvik/psgs.c	Tue Jun  1 23:57:13 2004
+++ tetex-src-beta-2.96.4.20040627/texk/xdvik/psgs.c	Mon Jun 28 17:49:29 2004
@@ -243,7 +243,7 @@
 	    if (memcmp(p, ackstr, 3) == 0) {
 		--GS_pending;
 		if (GS_pending == 0)
-		    globals.events.flags |= EV_ACK;
+		    globals.xdvievents.flags |= EV_ACK;
 		if (globals.debug & DBG_PS)
 		    printf("Got GS ack; %d pending.\n", GS_pending);
 	    } else if (memcmp(p, oldstr, 3) == 0) {
@@ -324,7 +324,7 @@
 	    break;
 	}
     }
-    globals.events.flags |= GS_write_ack;
+    globals.xdvievents.flags |= GS_write_ack;
     GS_write_ack = 0;
 }
 
@@ -341,7 +341,7 @@
     char *old_out;
     Boolean interrupting;
 
-    if (GS_pid == 0 || (globals.events.flags & GS_ev_mask))
+    if (GS_pid == 0 || (globals.xdvievents.flags & GS_ev_mask))
 	return;
 
     /*
@@ -395,7 +395,7 @@
 	for (;;) {	/* loop because there may be stray ACKs */
 	    if (!interrupting) {
 		(void) read_events(GS_ev_mask | EV_ACK);
-		globals.events.flags &= ~EV_ACK;
+		globals.xdvievents.flags &= ~EV_ACK;
 
 		if (GS_pid == 0) {	/* if GS died */
 		    GS_die_ack = 0;
@@ -405,7 +405,7 @@
 		if (GS_outb_out != old_out)	/* if more room in buffer */
 		    break;
 
-		if (globals.events.flags & GS_ev_mask) {	/* if a serious event */
+		if (globals.xdvievents.flags & GS_ev_mask) {	/* if a serious event */
 		    if (globals.debug & DBG_PS)
 			puts("Setting timeout in gs_send()");
 
@@ -415,7 +415,7 @@
 	    }
 	    else {
 		(void) read_events(EV_GE_TERM | EV_PS_TOGGLE | EV_ACK);
-		globals.events.flags &= ~EV_ACK;
+		globals.xdvievents.flags &= ~EV_ACK;
 
 		if (GS_outb_out != old_out)	/* if more room in buffer */
 		    break;
@@ -448,7 +448,7 @@
     if (globals.debug & DBG_PS)
 	puts("GS timeout expired");
 
-    globals.events.flags |= EV_ACK;
+    globals.xdvievents.flags |= EV_ACK;
     GS_timer_set = False;
 #if TIMER_PROBLEM_FIXED
     gs_timeout_id = 0;
@@ -463,7 +463,7 @@
 waitack(void)
 {
     if (GS_pending == 0) {
-	globals.events.flags &= ~EV_ACK;
+	globals.xdvievents.flags &= ~EV_ACK;
 	return;
     }
 
@@ -472,13 +472,13 @@
     for (;;) {	/* loop because there might be stray ACKs. */
 /*  	fprintf(stderr, "looping for stray ACKs, page %d\n", current_page); */
 	(void) read_events(EV_GE_ACK);
-	globals.events.flags &= ~EV_ACK;
+	globals.xdvievents.flags &= ~EV_ACK;
 
 	if (GS_pending == 0) {
 	    GS_die_ack = 0;
 	    return;
 	}
-	if (globals.events.flags & EV_GE_ACK)
+	if (globals.xdvievents.flags & EV_GE_ACK)
 	    break;
     }
 
@@ -496,7 +496,7 @@
     GS_timer_set = True;
 
     (void) read_events(EV_GE_TERM | EV_PS_TOGGLE | EV_ACK);
-    globals.events.flags &= ~EV_ACK;
+    globals.xdvievents.flags &= ~EV_ACK;
 
     if (GS_timer_set) {
 #if TIMER_PROBLEM_FIXED
@@ -694,8 +694,8 @@
 	toggle_gs(0);	/* if we got a 'v' already */
     else {
 	scanned_page = scanned_page_ps = scanned_page_reset;
-	globals.events.flags |= EV_NEWPAGE;	/* ||| redraw the page */
-	longjmp(globals.events.canit, 1);
+	globals.xdvievents.flags |= EV_NEWPAGE;	/* ||| redraw the page */
+	longjmp(globals.xdvievents.canit, 1);
     }
     return True;
 }
@@ -749,7 +749,7 @@
     scanned_page = scanned_page_ps = scanned_page_reset;
     GS_active = GS_in_doc = False;
     GS_pending = 0;
-    globals.events.flags |= GS_die_ack;
+    globals.xdvievents.flags |= GS_die_ack;
 }
 
 static	void
@@ -802,12 +802,12 @@
       a file that should be reloaded.
     */
     if (GS_pending == 0) {
-/*  	fprintf(stderr, "+++++++++ 1st case; waitack: %d\n", globals.events.flags & EV_ACK); */
-	globals.events.flags &= ~EV_ACK;
+/*  	fprintf(stderr, "+++++++++ 1st case; waitack: %d\n", globals.xdvievents.flags & EV_ACK); */
+	globals.xdvievents.flags &= ~EV_ACK;
 	return;
     }
     else if (GS_pending < 0) {
-/*  	fprintf(stderr, "GS_pending: %d; waitack: %d\n", GS_pending, globals.events.flags & EV_ACK); */
+/*  	fprintf(stderr, "GS_pending: %d; waitack: %d\n", GS_pending, globals.xdvievents.flags & EV_ACK); */
 	return;	/* nothing to do */
     }
 
@@ -853,8 +853,8 @@
     if (!GS_active) {
 	/* check whether page_w or page_h have increased */
 	if (globals.page.w > GS_page_w || globals.page.h > GS_page_h) {
-	    if (globals.events.flags & GS_ev_mask)
-		longjmp(globals.events.canit, 1);
+	    if (globals.xdvievents.flags & GS_ev_mask)
+		longjmp(globals.xdvievents.canit, 1);
 	    ++GS_pending;
 	    sprintf(buf,
 		    "H mark /HWSize [%d %d] /ImagingBBox [0 0 %d %d] "
@@ -867,14 +867,14 @@
 		    globals.page.w);
 	    gs_send(buf, strlen(buf));
 	    if (!in_header) {
-		globals.events.flags |= EV_NEWPAGE;	/* ||| redraw the page */
-		longjmp(globals.events.canit, 1);
+		globals.xdvievents.flags |= EV_NEWPAGE;	/* ||| redraw the page */
+		longjmp(globals.xdvievents.canit, 1);
 	    }
 	}
 
 	if (magnification != GS_mag) {
-	    if (globals.events.flags & GS_ev_mask)
-		longjmp(globals.events.canit, 1);
+	    if (globals.xdvievents.flags & GS_ev_mask)
+		longjmp(globals.xdvievents.canit, 1);
 	    ++GS_pending;
 	    sprintf(buf,
 		    "H TeXDict begin /DVImag %ld 1000 div def end stop\n"
@@ -884,8 +884,8 @@
 	}
 
 	if (mane.shrinkfactor != GS_shrink) {
-	    if (globals.events.flags & GS_ev_mask)
-		longjmp(globals.events.canit, 1);
+	    if (globals.xdvievents.flags & GS_ev_mask)
+		longjmp(globals.xdvievents.canit, 1);
 	    ++GS_pending;
 	    sprintf(buf,
 		    "H TeXDict begin %d %d div dup /Resolution X /VResolution X end stop\n"
@@ -906,8 +906,8 @@
     checkgs(False);
 
     if (!GS_active) {
-	if (globals.events.flags & GS_ev_mask)
-	    longjmp(globals.events.canit, 1);
+	if (globals.xdvievents.flags & GS_ev_mask)
+	    longjmp(globals.xdvievents.canit, 1);
 	++GS_pending;
 	gs_send(str, (sizeof str) - 1);
 	GS_active = True;
@@ -1023,9 +1023,9 @@
 	return;
     }
 
-    if (globals.events.flags & GS_ev_mask) {
+    if (globals.xdvievents.flags & GS_ev_mask) {
 /* 	fprintf(stderr, "longjmp!"); */
-	longjmp(globals.events.canit, 1);
+	longjmp(globals.xdvievents.canit, 1);
     }
 
     GS_in_header = True;
diff -ur orig/tetex-src-beta-2.96.4.20040627/texk/xdvik/psnews.c tetex-src-beta-2.96.4.20040627/texk/xdvik/psnews.c
--- orig/tetex-src-beta-2.96.4.20040627/texk/xdvik/psnews.c	Sat May  8 02:51:29 2004
+++ tetex-src-beta-2.96.4.20040627/texk/xdvik/psnews.c	Mon Jun 28 17:49:18 2004
@@ -262,7 +262,7 @@
 	(void)ps_checkfor(PostScriptInput, PSIO_WAIT_TAG, 58);
 	--NeWS_pending;
 	if (NeWS_pending == 0)
-	    globals.events.flags |= EV_ACK;
+	    globals.xdvievents.flags |= EV_ACK;
 	if (globals.debug & DBG_PS)
 	    printf("Got NeWS ack; %d pending.\n", NeWS_pending);
     }
@@ -303,7 +303,7 @@
 	       directly. */
 	    if (NeWS_xout.pfd != NULL)
 		NeWS_xout.pfd->events &= ~POLLOUT;
-	    globals.events.flags |= EV_ACK;
+	    globals.xdvievents.flags |= EV_ACK;
 	    break;
 #endif
 	}
@@ -337,7 +337,7 @@
 {
     struct sigaction orig;
 
-    if (PostScript == (PSFILE *) NULL || (globals.events.flags & NeWS_ev_mask))
+    if (PostScript == (PSFILE *) NULL || (globals.xdvievents.flags & NeWS_ev_mask))
 	return;
 
     (void) sigaction(SIGPIPE, &psio_sigpipe_handler_struct, &orig);
@@ -354,11 +354,11 @@
     write_to_NeWS();
     (void) read_events(NeWS_ev_mask | EV_ACK);
 
-    if (!(globals.events.flags & EV_ACK)) {	/* if interrupted */
+    if (!(globals.xdvievents.flags & EV_ACK)) {	/* if interrupted */
 	/* ||| Do somthing more severe here */
     }
 
-    globals.events.flags &= ~EV_ACK;
+    globals.xdvievents.flags &= ~EV_ACK;
 
     /* put back generic handler for SIGPIPE */
     (void) sigaction(SIGPIPE, &orig, (struct sigaction *) NULL);
@@ -381,8 +381,8 @@
     if (NeWS_pending > 0)
 	(void) read_events(EV_GE_ACK);
 
-    if (globals.events.flags & EV_ACK) {
-	globals.events.flags &= ~EV_ACK;
+    if (globals.xdvievents.flags & EV_ACK) {
+	globals.xdvievents.flags &= ~EV_ACK;
 	return;
     }
 
@@ -622,16 +622,16 @@
     if (!NeWS_active) {
 	/* send initialization to NeWS server */
 	if (NeWS_page_w < globals.page.w || NeWS_page_h < globals.page.h) {
-	    if (globals.events.flags & NEWS_MASK_NORMAL)
-		longjmp(globals.events.canit, 1);
+	    if (globals.xdvievents.flags & NEWS_MASK_NORMAL)
+		longjmp(globals.xdvievents.canit, 1);
 	    ++NeWS_pending;
 	    NeWS_page_w = globals.page.w;
 	    NeWS_page_h = globals.page.h;
 	    NeWS_send(str2, (sizeof str2) - 1);
 	}
 	if (magnification != NeWS_mag) {
-	    if (globals.events.flags & NEWS_MASK_NORMAL)
-		longjmp(globals.events.canit, 1);
+	    if (globals.xdvievents.flags & NEWS_MASK_NORMAL)
+		longjmp(globals.xdvievents.canit, 1);
 	    ++NeWS_pending;
 	    sprintf(buf, "H TeXDict begin /DVImag %d 1000 div def "
 		    "end stop\n%%%%xdvimark\n",
@@ -639,8 +639,8 @@
 	    NeWS_send(buf, strlen(buf));
 	}
 	if (mane.shrinkfactor != NeWS_shrink) {
-	    if (globals.events.flags & NEWS_MASK_NORMAL)
-		longjmp(globals.events.canit, 1);
+	    if (globals.xdvievents.flags & NEWS_MASK_NORMAL)
+		longjmp(globals.xdvievents.canit, 1);
 	    ++NeWS_pending;
 	    sprintf(buf, "H TeXDict begin %d %d div dup "
 		    "/Resolution X /VResolution X "
@@ -649,8 +649,8 @@
 		    NeWS_shrink = mane.shrinkfactor);
 	    NeWS_send(buf, strlen(buf));
 	}
-	if (globals.events.flags & NEWS_MASK_NORMAL)
-	    longjmp(globals.events.canit, 1);
+	if (globals.xdvievents.flags & NEWS_MASK_NORMAL)
+	    longjmp(globals.xdvievents.canit, 1);
 	++NeWS_pending;
 	NeWS_send(str, (sizeof str) - 1);
 	NeWS_active = True;
@@ -811,7 +811,7 @@
 	blen = fread(buffer, sizeof(char), 1024, psfile);
 	if (blen == 0) break;
 	NeWS_send(buffer, blen);
-	if (sigpipe_error || (globals.events.flags & NeWS_ev_mask))
+	if (sigpipe_error || (globals.xdvievents.flags & NeWS_ev_mask))
 	    break;
     }
     fclose(psfile);
@@ -873,8 +873,8 @@
 	return;
     }
 
-    if (globals.events.flags & NEWS_MASK_HEADER)
-	longjmp(globals.events.canit, 1);
+    if (globals.xdvievents.flags & NEWS_MASK_HEADER)
+	longjmp(globals.xdvievents.canit, 1);
 
     NeWS_in_header = True;
     NeWS_ev_mask = NEWS_MASK_HEADER;
diff -ur orig/tetex-src-beta-2.96.4.20040627/texk/xdvik/search-internal.c tetex-src-beta-2.96.4.20040627/texk/xdvik/search-internal.c
--- orig/tetex-src-beta-2.96.4.20040627/texk/xdvik/search-internal.c	Sat May  8 02:51:29 2004
+++ tetex-src-beta-2.96.4.20040627/texk/xdvik/search-internal.c	Mon Jun 28 17:49:13 2004
@@ -920,7 +920,7 @@
     if (match_page != current_page) {
 	goto_page(match_page, resource.keep_flag ? NULL : home, False);
 	page_history_insert(match_page);
-/* 	globals.events.flags |= EV_NEWPAGE; */
+/* 	globals.xdvievents.flags |= EV_NEWPAGE; */
     }
     /* don't raise the window - this can obscure the search popup */
     /*     XMapRaised(DISP, XtWindow(globals.widgets.top_level)); */
diff -ur orig/tetex-src-beta-2.96.4.20040627/texk/xdvik/special.c tetex-src-beta-2.96.4.20040627/texk/xdvik/special.c
--- orig/tetex-src-beta-2.96.4.20040627/texk/xdvik/special.c	Sat May  8 02:51:30 2004
+++ tetex-src-beta-2.96.4.20040627/texk/xdvik/special.c	Mon Jun 28 17:49:07 2004
@@ -1097,7 +1097,7 @@
 		   So instead, we just close the file and force a redraw of the entire page.
 		*/
 		fclose(f);
-		globals.events.flags |= EV_NEWPAGE;
+		globals.xdvievents.flags |= EV_NEWPAGE;
 	    }
 	}
     }
@@ -2205,8 +2205,8 @@
 		scanned_page_ps = scanned_page;
 #endif
 /* 		fprintf(stderr, "forcing redraw!!!\n"); */
-		globals.events.flags |= EV_NEWPAGE;		/* force a redraw */
-		longjmp(globals.events.canit, 1);
+		globals.xdvievents.flags |= EV_NEWPAGE;		/* force a redraw */
+		longjmp(globals.xdvievents.canit, 1);
 	    }
 	    return;
 	}
@@ -2465,8 +2465,8 @@
 # if COLOR
 	    scanned_page_color = scanned_page;
 # endif
-	    globals.events.flags |= EV_NEWPAGE;		/* force a redraw */
-	    longjmp(globals.events.canit, 1);
+	    globals.xdvievents.flags |= EV_NEWPAGE;		/* force a redraw */
+	    longjmp(globals.xdvievents.canit, 1);
 	}
 #endif /* PS */
 	return;
@@ -2481,8 +2481,8 @@
 	    scanned_page_ps = scanned_page;
 # endif
 /* 	    fprintf(stderr, "forcing redraw!\n"); */
-	    globals.events.flags |= EV_NEWPAGE;		/* force a redraw */
-	    longjmp(globals.events.canit, 1);
+	    globals.xdvievents.flags |= EV_NEWPAGE;		/* force a redraw */
+	    longjmp(globals.xdvievents.canit, 1);
 	}
 #endif /* COLOR */
 	return;
@@ -2499,8 +2499,8 @@
 #if COLOR
 	    scanned_page_color = scanned_page;
 #endif
-	    globals.events.flags |= EV_NEWPAGE; /* force a redraw */
-	    longjmp(globals.events.canit, 1);
+	    globals.xdvievents.flags |= EV_NEWPAGE; /* force a redraw */
+	    longjmp(globals.xdvievents.canit, 1);
 	}
 	return;
     }
diff -ur orig/tetex-src-beta-2.96.4.20040627/texk/xdvik/xdvi.c tetex-src-beta-2.96.4.20040627/texk/xdvik/xdvi.c
--- orig/tetex-src-beta-2.96.4.20040627/texk/xdvik/xdvi.c	Sat Jun 26 18:40:04 2004
+++ tetex-src-beta-2.96.4.20040627/texk/xdvik/xdvi.c	Mon Jun 28 17:49:03 2004
@@ -1957,7 +1957,7 @@
 #endif /* 0 */
 
     /* need to redraw the page to avoid artifacts */
-    globals.events.flags |= EV_NEWPAGE;
+    globals.xdvievents.flags |= EV_NEWPAGE;
     XFlush(DISP);
 }
 
@@ -2491,7 +2491,7 @@
 	sprintf(new_special, "%d:%d %s", data.line, data.col, expanded_filename);
 	free(expanded_filename);
 	globals.src.fwd_string = new_special;
-	globals.events.flags |= EV_SRC;
+	globals.xdvievents.flags |= EV_SRC;
     }
 }
 
@@ -3326,8 +3326,8 @@
     globals.curr_editor = NULL;
     globals.curr_browser = NULL;
     
-    globals.events.flags = EV_IDLE;
-    globals.events.ctr = 0;
+    globals.xdvievents.flags = EV_IDLE;
+    globals.xdvievents.ctr = 0;
     
     globals.pausing.num = 0;
     globals.pausing.num_save = NULL;
@@ -3810,14 +3810,14 @@
 
     /* trigger string search */
     if (resource.find_string != NULL) {
-	globals.events.flags |= EV_FIND;
+	globals.xdvievents.flags |= EV_FIND;
     }
 
     /* trigger anchor search */
     if (resource.anchor_pos != NULL) {
 	g_anchor_pos = xstrdup(resource.anchor_pos);
 	g_anchor_len = strlen(g_anchor_pos);
-	globals.events.flags |= EV_ANCHOR;
+	globals.xdvievents.flags |= EV_ANCHOR;
     }
 
 #if defined(MOTIF) && HAVE_XPM
@@ -3855,7 +3855,7 @@
     }
 
     /* insert this page into the history */
-    globals.events.flags |= EV_PAGEHIST_INSERT;
+    globals.xdvievents.flags |= EV_PAGEHIST_INSERT;
     
     do_pages();
 }
-------------------------------------------------------------------------------




Harald Koenig
-- 
"I hope to die                                      ___       _____
before I *have* to use Microsoft Word.",           0--,|    /OOOOOOO\
Donald E. Knuth, 02-Oct-2001 in Tuebingen.        <_/  /  /OOOOOOOOOOO\
                                                    \  \/OOOOOOOOOOOOOOO\
                                                      \ OOOOOOOOOOOOOOOOO|//
Harald Koenig                                          \/\/\/\/\/\/\/\/\/
science+computing ag                                    //  /     \\  \
[email protected]                            ^^^^^       ^^^^^
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.