Wed Jun 15 17:36:07 1994 Stan Shebs (shebs@andros.cygnus.com)
authorStan Shebs <shebs@codesourcery.com>
Thu, 16 Jun 1994 01:03:01 +0000 (01:03 +0000)
committerStan Shebs <shebs@codesourcery.com>
Thu, 16 Jun 1994 01:03:01 +0000 (01:03 +0000)
* mpw-make.in (.c.o, .gc.o): Prefix segment names with gdb_.
(top.c.o, annotate.c.o): Add build rules.
* macgdb.r (SysTypes.r): Include.
('vers'): New resource, version info.
(mFile, mEdit, mDebug): Enable all menu items.
(mDebug): Add key equivalents for continue, step, next.
(wConsole): Add zoom and close boxes to window.
* mac-xdep.c (new_console_window): New function, code taken from
mac_init.
(mac_command_loop): Use GetCaretTime for wait interval, call
do_idle on null events.
(do_idle): New function.
(zoom_window): Implement zooming.
(v_scroll_proc): New function, handles vertical scrolling.
(activate_window): Do activation of console window.
(do_menu_command): Implement items of file, edit, and debug menus.
(do_keyboard_command): Fix command extraction.
(adjust_console_sizes, adjust_console_text): New functions.
(hacked_fprintf, hacked_vfprintf, hacked_fputs, hacked_fputc,
hacked_putc): Don't call draw_console.
* ser-mac.c (mac_open): Add an error message for invalid ports.
(first_mac_write): New global.
(mac_write): Use first_mac_write to sleep on first several writes.

gdb/ChangeLog.mpw
gdb/mac-xdep.c
gdb/macgdb.r
gdb/mpw-make.in
gdb/ser-mac.c

index e63dd75a931523cd5ab5636e2e613011cc16629c..a31a596acb0aa5eb48ef44b64be974c4223218b0 100644 (file)
@@ -1,3 +1,29 @@
+Wed Jun 15 17:36:07 1994  Stan Shebs  (shebs@andros.cygnus.com)
+
+       * mpw-make.in (.c.o, .gc.o): Prefix segment names with gdb_.
+       (top.c.o, annotate.c.o): Add build rules.
+       * macgdb.r (SysTypes.r): Include.
+       ('vers'): New resource, version info.
+       (mFile, mEdit, mDebug): Enable all menu items.
+       (mDebug): Add key equivalents for continue, step, next.
+       (wConsole): Add zoom and close boxes to window.
+       * mac-xdep.c (new_console_window): New function, code taken from
+       mac_init.
+       (mac_command_loop): Use GetCaretTime for wait interval, call
+       do_idle on null events.
+       (do_idle): New function.
+       (zoom_window): Implement zooming.
+       (v_scroll_proc): New function, handles vertical scrolling.
+       (activate_window): Do activation of console window.
+       (do_menu_command): Implement items of file, edit, and debug menus.
+       (do_keyboard_command): Fix command extraction.
+       (adjust_console_sizes, adjust_console_text): New functions.
+       (hacked_fprintf, hacked_vfprintf, hacked_fputs, hacked_fputc,
+       hacked_putc): Don't call draw_console.
+       * ser-mac.c (mac_open): Add an error message for invalid ports.
+       (first_mac_write): New global.
+       (mac_write): Use first_mac_write to sleep on first several writes.
+
 Thu May 12 17:04:58 1994  Stan Shebs  (shebs@andros.cygnus.com)
 
        * mpw-make.in (INCLUDE_CFLAGS): Add readline source dir.
index e291262fbbbe61ad318649ca92efd0936c924fe6..8b1cb6e5fadabacac5205905b9c4bf47c01b923b 100644 (file)
@@ -1,6 +1,6 @@
 /* Top level support for Mac interface to GDB, the GNU debugger.
    Copyright 1994 Free Software Foundation, Inc.
-   Contributed by Cygnus Support.  Written by Stan Shebs for Cygnus.
+   Contributed by Cygnus Support.  Written by Stan Shebs.
 
 This file is part of GDB.
 
@@ -156,21 +156,30 @@ mac_init ()
   }
   DrawMenuBar ();
 
+  new_console_window ();
+
+  return 1;
+}
+
+new_console_window ()
+{
   /* Create the main window we're going to play in. */
   if (hasColorQD)
     console_window = GetNewCWindow (wConsole, NULL, (WindowPtr) -1L);
   else
     console_window = GetNewWindow (wConsole, NULL, (WindowPtr) -1L);
 
-  if (0) DebugStr("\pnear beginning");
   SetPort (console_window);
   console_text_rect = console_window->portRect;
+  /* Leave 8 pixels of blank space, for aesthetic reasons and to
+     make it easier to select from the beginning of a line. */
+  console_text_rect.left += 8;
   console_text_rect.bottom -= sbarwid - 1;
   console_text_rect.right -= sbarwid - 1;
   console_text = TENew (&console_text_rect, &console_text_rect);
-  TESetSelect (0, 32767, console_text);
+  TESetSelect (0, 40000, console_text);
   TEDelete (console_text);
-  TEInsert ("(gdb)", strlen("(gdb)"), console_text);
+  TEAutoView (1, console_text);
 
   console_v_scroll_rect = console_window->portRect;
   console_v_scroll_rect.bottom -= sbarwid - 1;
@@ -181,9 +190,6 @@ mac_init ()
 
   ShowWindow (console_window);
   SelectWindow (console_window);
-/*  force_update (console_window);  */
-
-  return 1;
 }
 
 mac_command_loop()
@@ -212,7 +218,7 @@ mac_command_loop()
        {
          get_global_mouse (&mouse);
          adjust_cursor (mouse, cursorRgn);
-         gotevent = WaitNextEvent (everyEvent, &event, 0L, cursorRgn);
+         gotevent = WaitNextEvent (everyEvent, &event, GetCaretTime(), cursorRgn);
        }
       else
        {
@@ -236,6 +242,10 @@ mac_command_loop()
          adjust_cursor (event.where, cursorRgn);
          do_event (&event);
        }
+      else
+       {
+         do_idle ();
+       }
     }
 }
 
@@ -360,6 +370,7 @@ EventRecord *evt;
       AEProcessAppleEvent (evt);
       break;
     case nullEvent:
+      do_idle ();
       rslt = 1;
       break;
     default:
@@ -368,6 +379,13 @@ EventRecord *evt;
   return rslt;
 }
 
+/* Do any idle-time activities. */
+
+do_idle ()
+{
+  TEIdle (console_text);
+}
+
 grow_window (win, where)
 WindowPtr win;
 Point where;
@@ -385,11 +403,9 @@ Point where;
       h = LoWord (winsize);
       v = HiWord (winsize);
       SizeWindow (win, h, v, 1);
-      if (win == console_window)
-       {
-         MoveControl(console_v_scrollbar, h - sbarwid, 0);
-         SizeControl(console_v_scrollbar, sbarwid + 1, v - sbarwid + 1);
-       }
+      adjust_console_sizes ();
+      adjust_console_scrollbars ();
+      adjust_console_text ();
       InvalRect (&win->portRect);
       SetPort (oldport);
     }
@@ -400,6 +416,11 @@ WindowPtr win;
 Point where;
 short part;
 {
+  ZoomWindow (win, part, (win == FrontWindow ()));
+  adjust_console_sizes ();
+  adjust_console_scrollbars ();
+  adjust_console_text ();
+  InvalRect (&(win->portRect));
 }
 
 close_window (win)
@@ -407,11 +428,43 @@ WindowPtr win;
 {
 }
 
-do_mouse_down (win, event)
-WindowPtr win;
-EventRecord *event;
+pascal void
+v_scroll_proc (ControlHandle control, short part)
 {
-  short part;
+  int oldval, amount = 0, newval;
+  int pagesize = ((*console_text)->viewRect.bottom - (*console_text)->viewRect.top) / (*console_text)->lineHeight;
+  if (part)
+    {
+      oldval = GetCtlValue (control);
+      switch (part)
+       {
+       case inUpButton:
+         amount = 1;
+         break;
+       case inDownButton:
+         amount = -1;
+         break;
+       case inPageUp:
+         amount = pagesize;
+         break;
+       case inPageDown:
+         amount = - pagesize;
+         break;
+       default:
+         /* (should freak out) */
+         break;
+       }
+      SetCtlValue(control, oldval - amount);
+      newval = GetCtlValue (control);
+      amount = oldval - newval;
+      if (amount)
+       TEScroll (0, amount * (*console_text)->lineHeight, console_text);
+    }
+}
+
+do_mouse_down (WindowPtr win, EventRecord *event)
+{
+  short part, value;
   Point mouse;
   ControlHandle control;
 
@@ -423,7 +476,23 @@ EventRecord *event;
       part = FindControl(mouse, win, &control);
       if (control == console_v_scrollbar)
        {
-         SysBeep(20);
+         switch (part)
+           {
+           case inThumb:
+             value = GetCtlValue (control);
+             part = TrackControl (control, mouse, nil);
+             if (part)
+               {
+                 value -= GetCtlValue (control);
+                 if (value)
+                   TEScroll(0, value * (*console_text)->lineHeight,
+                            console_text);
+               }
+             break;
+           default:
+             value = TrackControl (control, mouse, (ProcPtr) v_scroll_proc);
+             break;
+           }
        }
       else
        {
@@ -436,6 +505,8 @@ activate_window (win, activate)
 WindowPtr win;
 int activate;
 {
+  Rect grow_rect;
+
   if (win == nil) return;
   /* It's convenient to make the activated window also be the
      current GrafPort. */
@@ -443,7 +514,23 @@ int activate;
     SetPort(win);
   /* Activate the console window's scrollbar. */
   if (win == console_window)
-    HiliteControl (console_v_scrollbar, (activate ? 0 : 255));
+    {
+      if (activate)
+       {
+         TEActivate (console_text);
+         /* Cause the grow icon to be redrawn at the next update. */
+         grow_rect = console_window->portRect;
+         grow_rect.top = grow_rect.bottom - sbarwid;
+         grow_rect.left = grow_rect.right - sbarwid;
+         InvalRect (&grow_rect);
+       }
+      else
+       {
+         TEDeactivate (console_text);
+         DrawGrowIcon (console_window);
+       }
+      HiliteControl (console_v_scrollbar, (activate ? 0 : 255));
+    }
 }
 
 update_window (win)
@@ -486,7 +573,9 @@ long which;
   WindowPtr win;
   short ditem;
   int i;
+  char cmdbuf[300];
 
+  cmdbuf[0] = '\0';
   menuid = HiWord (which);
   menuitem = LoWord (which);
   switch (menuid)
@@ -495,8 +584,13 @@ long which;
       switch (menuitem)
        {
        case miAbout:
-/*       Alert(aAbout, nil); */
+         Alert (128, nil);
+         break;
+#if 0
+       case miHelp:
+         /* (should pop up help info) */
          break;
+#endif
        default:
          GetItem (GetMHandle (mApple), menuitem, daname);
          daRefNum = OpenDeskAcc (daname);
@@ -505,6 +599,16 @@ long which;
     case mFile:
       switch (menuitem)
        {
+       case miFileNew:
+         if (console_window == FrontWindow ())
+           {
+             close_window (console_window);
+           }
+         new_console_window ();
+         break;
+       case miFileOpen:
+         SysBeep (20);
+         break;
        case miFileQuit:
          ExitToShell ();
          break;
@@ -515,71 +619,103 @@ long which;
       switch (menuitem)
        {
        case miEditCut:
+         TECut (console_text);
          break;
        case miEditCopy:
+         TECopy (console_text);
          break;
        case miEditPaste:
+         TEPaste (console_text);
          break;
        case miEditClear:
+         TEDelete (console_text);
+         break;
+       }
+      /* All of these operations need the same postprocessing. */
+      adjust_console_sizes ();
+      adjust_console_scrollbars ();
+      adjust_console_text ();
+      break;
+    case mDebug:
+      switch (menuitem)
+       {
+       case miDebugTarget:
+         sprintf (cmdbuf, "target %s", "remote");
+         break;
+       case miDebugRun:
+         sprintf (cmdbuf, "run");
+         break;
+       case miDebugContinue:
+         sprintf (cmdbuf, "continue");
+         break;
+       case miDebugStep:
+         sprintf (cmdbuf, "step");
+         break;
+       case miDebugNext:
+         sprintf (cmdbuf, "next");
          break;
        }
       break;
     }
   HiliteMenu (0);
+  /* Execute a command if one had been given.  Do here because a command
+     may longjmp before we get a chance to unhilite the menu. */
+  if (strlen (cmdbuf) > 0)
+    execute_command (cmdbuf, 0);
 }
 
 char commandbuf[1000];
 
 do_keyboard_command (key)
-char key;
+int key;
 {
-  int startpos, endpos, i;
+  int startpos, endpos, i, len;
   char *last_newline;
-  char buf[10], *text_str, *command;
+  char buf[10], *text_str, *command, *cmd_start;
   CharsHandle text;
 
   if (key == '\015' || key == '\003')
     {
-      /* (should) Interpret the line as a command. */
       text = TEGetText (console_text);
       HLock ((Handle) text);
+      text_str = *text;
       startpos = (*console_text)->selStart;
       endpos = (*console_text)->selEnd;
       if (startpos != endpos)
        {
-         strncpy (commandbuf + 1, *text + startpos, endpos - startpos);
-         commandbuf[1 + endpos - startpos] = 0;
-         command = commandbuf + 1;
+         len = endpos - startpos;
+         cmd_start = text_str + startpos;
        }
       else
        {
-         DebugStr("\plooking for command");
-         last_newline = strrchr(*text+startpos, '\n');
-         if (last_newline)
-           {
-             strncpy (commandbuf + 1,
-                      last_newline,
-                      last_newline - (*text+startpos));
-             commandbuf[1 + last_newline - (*text+startpos)] = 0;
-             command = commandbuf + 1;
-           }
-         else
-           {
-             command = "help";
-           }
+         for (i = startpos - 1; i >= 0; --i)
+           if (text_str[i] == '\015')
+             break;
+         last_newline = text_str + i;
+         len = (text_str + startpos) - 1 - last_newline;
+         cmd_start = last_newline + 1;
        }
+      if (len > 1000) len = 999;
+      if (len < 0) len = 0;
+      strncpy (commandbuf + 1, cmd_start, len);
+      commandbuf[1 + len] = 0;
+      command = commandbuf + 1;
       HUnlock ((Handle) text);
       commandbuf[0] = strlen(command);
-      DebugStr(commandbuf);
 
-      /* Insert a newline and redraw before doing the command. */
-      buf[0] = '\015';
+      /* Insert a newline and recalculate before doing any command. */
+      key = '\015';
+      TEKey (key, console_text);
       TEInsert (buf, 1, console_text);
-      TESetSelect (100000, 100000, console_text);
-      draw_console ();
+      adjust_console_sizes ();
+      adjust_console_scrollbars ();
+      adjust_console_text ();
 
-      execute_command (commandbuf, 0);
-      bpstat_do_actions (&stop_bpstat);
+      if (strlen (command) > 0)
+       {
+         execute_command (command, 0);
+         bpstat_do_actions (&stop_bpstat);
+       }
     }
   else if (0 /* editing chars... */)
     {
@@ -587,22 +723,18 @@ char key;
   else
     {
       /* A self-inserting character. */
-      buf[0] = key;
-      TEInsert (buf, 1, console_text);
-      TESetSelect (100000, 100000, console_text);
-      draw_console ();
+      TEKey (key, console_text);
     }
 }
 
 draw_console ()
 {
-  GrafPtr oldport;
-
-  GetPort (&oldport);
   SetPort (console_window);
   TEUpdate (&(console_window->portRect), console_text);
-  SetPort (oldport);
-/*     adjust_help_scrollbar();  */
+#if 0
+  FrameRect (&((*console_text)->viewRect));
+  FrameRect (&((*console_text)->destRect));
+#endif
 }
 
 /* Cause an update of a window's entire contents. */
@@ -620,18 +752,52 @@ WindowPtr win;
   SetPort (oldport);
 }
 
+adjust_console_sizes ()
+{
+  Rect tmprect;
+
+  tmprect = console_window->portRect;
+  MoveControl (console_v_scrollbar, tmprect.right - sbarwid, 0);
+  SizeControl (console_v_scrollbar, sbarwid + 1, tmprect.bottom - sbarwid + 1);
+  tmprect.left += 7;
+  tmprect.right -= sbarwid;
+  tmprect.bottom -= sbarwid;
+  InsetRect(&tmprect, 1, 1);
+  (*console_text)->viewRect = tmprect;
+  (*console_text)->destRect = tmprect;
+  /* (should fiddle bottom of viewrect to be even multiple of lines?) */
+}
+
 adjust_console_scrollbars ()
 {
   int lines, newmax, value;
 
+  (*console_v_scrollbar)->contrlVis = 0;
   lines = (*console_text)->nLines;
-  newmax = lines - (((*console_text)->viewRect.bottom - (*console_text)->viewRect.top)
+  newmax = lines - (((*console_text)->viewRect.bottom
+                    - (*console_text)->viewRect.top)
                    / (*console_text)->lineHeight);
   if (newmax < 0) newmax = 0;
   SetCtlMax (console_v_scrollbar, newmax);
   value = ((*console_text)->viewRect.top - (*console_text)->destRect.top)
     / (*console_text)->lineHeight;
   SetCtlValue (console_v_scrollbar, value);
+  (*console_v_scrollbar)->contrlVis = 0xff;
+  ShowControl (console_v_scrollbar);
+}
+
+/* Scroll the TE record so that it is consistent with the scrollbar(s). */
+
+adjust_console_text ()
+{
+  TEScroll (((*console_text)->viewRect.left
+            - (*console_text)->destRect.left)
+           - 0 /* get h scroll value */,
+           (((*console_text)->viewRect.top
+             - (*console_text)->destRect.top)
+            - GetCtlValue (console_v_scrollbar))
+           * (*console_text)->lineHeight,
+           console_text);
 }
 
 /* Readline substitute. */
@@ -724,9 +890,8 @@ hacked_fprintf (FILE *fp, const char *fmt, ...)
       char buf[1000];
 
       ret = vsprintf(buf, fmt, ap);
+      TESetSelect (40000, 40000, console_text);
       TEInsert (buf, strlen(buf), console_text);
-      TESetSelect (100000, 100000, console_text);
-      draw_console ();
     }
   else
     ret = vfprintf (fp, fmt, ap);
@@ -764,9 +929,8 @@ hacked_vfprintf (FILE *fp, const char *format, va_list args)
       int ret;
 
       ret = vsprintf(buf, format, args);
+      TESetSelect (40000, 40000, console_text);
       TEInsert (buf, strlen(buf), console_text);
-      TESetSelect (100000, 100000, console_text);
-      draw_console ();
       return ret;
     }
   else
@@ -779,9 +943,8 @@ hacked_fputs (const char *s, FILE *fp)
 {
   if (mac_app && (fp == stdout || fp == stderr))
     {
+      TESetSelect (40000, 40000, console_text);
       TEInsert (s, strlen(s), console_text);
-      TESetSelect (100000, 100000, console_text);
-      draw_console ();
       return 0;
     }
   else
@@ -797,9 +960,8 @@ hacked_fputc (const char c, FILE *fp)
       char buf[2];
 
       buf[0] = c;
+      TESetSelect (40000, 40000, console_text);
       TEInsert (buf, 1, console_text);
-      TESetSelect (100000, 100000, console_text);
-      draw_console ();
       return 0;
     }
   else
@@ -815,9 +977,8 @@ hacked_putc (const char c, FILE *fp)
       char buf[2];
 
       buf[0] = c;
+      TESetSelect (40000, 40000, console_text);
       TEInsert (buf, 1, console_text);
-      TESetSelect (100000, 100000, console_text);
-      draw_console ();
     }
   else
     return fputc (c, fp);
@@ -831,4 +992,3 @@ hacked_fflush (FILE *fp)
     return 0;
   return fflush (fp);
 }
-
index b7bd3a9af046dc26ed3d80cbd5b2ff9bb98e1bb7..07b68822e54f8d5da2c3ee29353f0ac46d8841cf 100644 (file)
@@ -1,9 +1,17 @@
 /* Resource file for MacGDB. */
 
+#include "SysTypes.r"
 #include "Types.r"
 
 #include "mac-defs.h"
 
+resource 'vers' (1) {
+       0x02, 0x00, release, 0x00,
+       verUS,
+       "4.12.3",
+       "4.12.3, Copyright \251 1994 Free Software Foundation, Inc."
+};
+
 resource 'MBAR' (128) {
        { mApple, mFile, mEdit, mDebug };
 };
@@ -23,11 +31,11 @@ resource 'MENU' (mApple, preload) {
 resource 'MENU' (mFile, preload) {
        mFile,
        textMenuProc,
-       0xFFF,
+       allEnabled,
        enabled,
        "File",
        {
-               "New", noIcon, "N", noMark, plain,
+               "New", noIcon, noKey, noMark, plain,
                "Open...", noIcon, "O", noMark, plain,
                "-", noIcon, noKey, noMark, plain,
                "Quit", noIcon, "Q", noMark, plain
@@ -37,7 +45,7 @@ resource 'MENU' (mFile, preload) {
 resource 'MENU' (mEdit, preload) {
        mEdit,
        textMenuProc,
-       0x3400,
+       allEnabled,
        enabled,
        "Edit",
        {
@@ -53,16 +61,16 @@ resource 'MENU' (mEdit, preload) {
 resource 'MENU' (mDebug, preload) {
        mDebug,
        textMenuProc,
-       0x7FFFFFDD,
+       allEnabled,
        enabled,
        "Debug",
        {
                "Target", noIcon, "T", noMark, plain,
                "-", noIcon, noKey, noMark, plain,
                "Run", noIcon, "R", noMark, plain,
-               "Continue", noIcon, noKey, noMark, plain,
-               "Step", noIcon, noKey, noMark, plain,
-               "Next", noIcon, noKey, noMark, plain
+               "Continue", noIcon, "K", noMark, plain,
+               "Step", noIcon, "S", noMark, plain,
+               "Next", noIcon, "N", noMark, plain
        }
 };
 
@@ -114,9 +122,9 @@ resource 'DITL' (128) {
 
 resource 'WIND' (wConsole, preload, purgeable) {
        {40, 40, 310, 572},
-       documentProc,
+       zoomDocProc,
        visible,
-       noGoAway,
+       goAway,
        0x0,
        "GDB Console"
 };
index 6d476658a458405dc1ea629b65c471868cafc917..e5c76c7888994d041c81f37ff87f90b57ba19c07 100644 (file)
@@ -22,10 +22,10 @@ o = :
 # Default rule that puts each file into separate segment.
 
 .c.o  \Option-f .c
-   {CC}  {DepDir}{Default}.c {INTERNAL_CFLAGS} {SymOptions} -s {Default} -o {TargDir}{Default}.c.o
+   {CC}  {DepDir}{Default}.c {INTERNAL_CFLAGS} -s gdb_{Default} -o {TargDir}{Default}.c.o
 
 .gc.o \Option-f .c
-   {gC}         {DepDir}{Default}.c {INTERNAL_CFLAGS} {SymOptions} -s {Default} -o {TargDir}{Default}.gc.o
+   {gC}         {DepDir}{Default}.c {INTERNAL_CFLAGS} -s gdb_{Default} -o {TargDir}{Default}.gc.o
 
 #Copyright 1989, 1990, 1991, 1992, 1993, 1994 Free Software Foundation, Inc.
 
@@ -648,7 +648,7 @@ TARFILES = {SFILES} {HFILES_NO_SRCDIR} {HFILES_WITH_SRCDIR} \Option-d
        {ALLPARAM} {INFOFILES} {POSSLIBS} {REMOTE_EXAMPLES}
 
 
-OBS =  "{o}"version.c.o "{o}"main.c.o "{o}"blockframe.c.o "{o}"breakpoint.gc.o "{o}"findvar.c.o "{o}"stack.c.o "{o}"thread.c.o \Option-d
+OBS =  "{o}"version.c.o "{o}"main.c.o "{o}"top.c.o "{o}"blockframe.c.o "{o}"breakpoint.gc.o "{o}"findvar.c.o "{o}"stack.c.o "{o}"thread.c.o \Option-d
        "{o}"source.gc.o "{o}"values.c.o "{o}"eval.c.o "{o}"valops.c.o "{o}"valarith.c.o "{o}"valprint.c.o "{o}"printcmd.gc.o \Option-d
        "{o}"symtab.c.o "{o}"symfile.c.o "{o}"symmisc.c.o "{o}"infcmd.c.o "{o}"infrun.gc.o "{o}"command.c.o \Option-d
        "{o}"utils.c.o "{o}"expprint.c.o "{o}"environ.c.o "{o}"gdbtypes.c.o "{o}"copying.c.o {DEPFILES} \Option-d
@@ -657,7 +657,7 @@ OBS =       "{o}"version.c.o "{o}"main.c.o "{o}"blockframe.c.o "{o}"breakpoint.gc.o "{
        "{o}"dwarfread.c.o "{o}"mipsread.c.o "{o}"stabsread.c.o "{o}"core.c.o "{o}"c-lang.c.o "{o}"ch-lang.c.o "{o}"m2-lang.c.o \Option-d
        "{o}"complaints.c.o "{o}"typeprint.c.o "{o}"c-typeprint.c.o "{o}"ch-typeprint.c.o "{o}"m2-typeprint.c.o \Option-d
        "{o}"c-valprint.c.o "{o}"cp-valprint.c.o "{o}"ch-valprint.c.o "{o}"m2-valprint.c.o "{o}"nlmread.c.o \Option-d
-       "{o}"serial.c.o "{o}"mdebugread.c.o
+       "{o}"serial.c.o "{o}"mdebugread.c.o "{o}"annotate.c.o
 
 TSOBS =
 
@@ -1060,6 +1060,9 @@ MAKEOVERRIDES=
        {inferior_h} {symtab_h} {dis_asm_h}
 
 "{o}"altos-xdep.c.o \Option-f  "{s}"altos-xdep.c {defs_h} {gdbcore_h} {inferior_h}
+
+"{o}"annotate.c.o \Option-f  "{s}"annotate.c
+
 "{o}"arm-pinsn.c.o \Option-f  "{s}"arm-pinsn.c "{s}"{OP_INCLUDE}:arm.h {defs_h} {symtab_h}
 
 "{o}"blockframe.c.o \Option-f  "{s}"blockframe.c {defs_h} {gdbcore_h} {inferior_h} \Option-d
@@ -1246,7 +1249,12 @@ MAKEOVERRIDES=
 "{o}"main.c.o \Option-f  "{s}"main.c {bfd_h} {getopt_h} {readline_headers} "{s}"call-cmds.h \Option-d
        {defs_h} {gdbcmd_h} {inferior_h} "{s}"language.h "{s}"signals.h \Option-d
        {remote_utils_h}
-       {CC} {INTERNAL_CFLAGS} {READLINE_CFLAGS} "{srcdir}"main.c -o "{o}"main.c.o
+       {CC} "{srcdir}"main.c {INTERNAL_CFLAGS} {READLINE_CFLAGS} -o "{o}"main.c.o
+
+"{o}"top.c.o \Option-f  "{s}"top.c {bfd_h} {getopt_h} {readline_headers} "{s}"call-cmds.h \Option-d
+       {defs_h} {gdbcmd_h} {inferior_h} "{s}"language.h "{s}"signals.h \Option-d
+       {remote_utils_h}
+       {CC} "{srcdir}"top.c {INTERNAL_CFLAGS} {READLINE_CFLAGS} -o "{o}"top.c.o
 
 "{o}"maint.c.o \Option-f  "{s}"maint.c {defs_h} {gdbcmd_h} {gdbtypes_h} {symtab_h} "{s}"language.h \Option-d
        {expression_h}
index f8a2291413fe16d3597b17c528038f8ed31b2450..3be1fb3e8f58759b61175a87386ca2dab25c7976 100644 (file)
@@ -1,5 +1,6 @@
 /* Remote serial interface for local (hardwired) serial ports for Macintosh.
    Copyright 1994 Free Software Foundation, Inc.
+   Contributed by Cygnus Support.  Written by Stan Shebs.
 
    This file is part of GDB.
 
@@ -92,6 +93,7 @@ mac_open (scb, name)
     }
   else
     {
+      error ("You must specify a port.  Choices are `modem' or `printer'.");
       errno = ENOENT;
       return (-1);
     }
@@ -244,6 +246,8 @@ mac_set_baud_rate (scb, rate)
   return 0;
 }
 
+int first_mac_write = 0;
+
 static int
 mac_write (scb, str, len)
      serial_t scb;
@@ -253,6 +257,10 @@ mac_write (scb, str, len)
   OSErr err;
   IOParam pb;
 
+  if (first_mac_write++ < 8)
+    {
+      sleep (1);
+    }
   pb.ioRefNum = output_refnum;
   pb.ioBuffer = (Ptr) str;
   pb.ioReqCount = len;