[comp.sys.amiga] mg2a patch: don't access Workbench at startup

jw@sics.se (Johan Widen) (06/21/88)

Here is a patch for mg release 2a. The patch is useful for those who have
only one drive (me!). You may have noticed that mg insists on accessing the
Workbench disk during startup. This is because it mucks around with disk
fonts, even if CHANGE_FONT is undefined.

I have also included a small fix. bcopy was called with the arguments
reversed.

*** :ttyio.c.old	Sun Jun 19 11:34:33 1988
--- ttyio.c	Tue Jun 21 00:32:37 1988
***************
*** 27,33 ****
--- 27,35 ----
  #include <graphics/gfxbase.h>
  #include <intuition/intuition.h>
  #include <intuition/intuitionbase.h>
+ #ifdef	CHANGE_FONT
  #include <libraries/diskfont.h>
+ #endif
  
  #undef	TRUE			/* avoid redefinition messages 		*/
  #undef	FALSE
***************
*** 51,57 ****
--- 53,61 ----
  extern	int			 OpenConsole();
  extern	char			*OpenLibrary();
  extern	struct	Window		*OpenWindow();
+ #ifdef	CHANGE_FONT
  extern	struct TextFont		*OpenDiskFont();
+ #endif
  extern	LONG			 RectFill();
  extern	LONG			 ReplyMsg();
  extern	LONG			 RawKeyConvert();
***************
*** 119,125 ****
--- 123,131 ----
  
  extern struct	IntuitionBase	*IntuitionBase;
  extern struct	GfxBase		*GfxBase;
+ #ifdef	CHANGE_FONT
  ULONG			DiskfontBase;
+ #endif
  
  /*
   * Intuition window and menu variables.  MG gets used a lot, because it
***************
*** 275,283 ****
--- 281,291 ----
  	if (IntuitionBase == NULL)
  		cleanup();
  
+ #ifdef	CHANGE_FONT
  	DiskfontBase = (ULONG) OpenLibrary("diskfont.library", 0L);
  	if (DiskfontBase == NULL)
  		cleanup();
+ #endif
  
  	/* Get our screen and font, then figure out if we can go borderless
  	*/
***************
*** 283,289 ****
--- 291,301 ----
  	*/
  	if ((EmS = wbscreen()) == NULL)
  		cleanup();
+ #ifdef	CHANGE_FONT
  	EmFont = OpenDiskFont(EmS->Font);
+ #else
+ 	EmFont = OpenFont(EmS->Font);
+ #endif
  	if ((EmS->Width >= ((INIT_COLS * EmFont->tf_XSize) + LR_BORDER)) &&
  		(EmS->Height >= ((INIT_ROWS * EmFont->tf_YSize) + TB_BORDER)))
  		borderless = FALSE;
***************
*** 295,301 ****
  	last_left = MG.LeftEdge = 0;
  	last_top = MG.TopEdge = 0;
  
! 	bcopy(outbuf,"\x9b0 p", 4);	/* preload cursor off sequence */
  	obuf = outbuf + 4;
  }
  
--- 307,313 ----
  	last_left = MG.LeftEdge = 0;
  	last_top = MG.TopEdge = 0;
  
! 	strcpy(outbuf, "\x9b0 p");	/* preload cursor off sequence */
  	obuf = outbuf + 4;
  }
  
***************
*** 433,439 ****
--- 445,453 ----
  	if (EmacsMenu)		DisposeMenus(EmacsMenu);
  #endif
  	if (EmFont)		CloseFont(EmFont);
+ #ifdef	CHANGE_FONT
  	if (DiskfontBase)	CloseLibrary(DiskfontBase);
+ #endif
  	if (IntuitionBase)	CloseLibrary(IntuitionBase);
  	if (GfxBase)		CloseLibrary(GfxBase);
  }
-- 
Johan Widen
SICS, PO Box 1263, S-164 28 KISTA, SWEDEN
Tel: +46 8 752 15 32	Ttx: 812 61 54 SICS S	Fax: +46 8 751 72 30
Internet: jw@sics.se or {mcvax,munnari,ukc,unido}!enea!sics.se!jw