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.
This commit is contained in:
Stan Shebs 1994-06-16 01:03:01 +00:00
parent 675ad6dc68
commit 58c0b523fe
5 changed files with 293 additions and 83 deletions

View 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) Thu May 12 17:04:58 1994 Stan Shebs (shebs@andros.cygnus.com)
* mpw-make.in (INCLUDE_CFLAGS): Add readline source dir. * mpw-make.in (INCLUDE_CFLAGS): Add readline source dir.

View File

@ -1,6 +1,6 @@
/* Top level support for Mac interface to GDB, the GNU debugger. /* Top level support for Mac interface to GDB, the GNU debugger.
Copyright 1994 Free Software Foundation, Inc. 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. This file is part of GDB.
@ -156,21 +156,30 @@ mac_init ()
} }
DrawMenuBar (); DrawMenuBar ();
new_console_window ();
return 1;
}
new_console_window ()
{
/* Create the main window we're going to play in. */ /* Create the main window we're going to play in. */
if (hasColorQD) if (hasColorQD)
console_window = GetNewCWindow (wConsole, NULL, (WindowPtr) -1L); console_window = GetNewCWindow (wConsole, NULL, (WindowPtr) -1L);
else else
console_window = GetNewWindow (wConsole, NULL, (WindowPtr) -1L); console_window = GetNewWindow (wConsole, NULL, (WindowPtr) -1L);
if (0) DebugStr("\pnear beginning");
SetPort (console_window); SetPort (console_window);
console_text_rect = console_window->portRect; 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.bottom -= sbarwid - 1;
console_text_rect.right -= sbarwid - 1; console_text_rect.right -= sbarwid - 1;
console_text = TENew (&console_text_rect, &console_text_rect); console_text = TENew (&console_text_rect, &console_text_rect);
TESetSelect (0, 32767, console_text); TESetSelect (0, 40000, console_text);
TEDelete (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 = console_window->portRect;
console_v_scroll_rect.bottom -= sbarwid - 1; console_v_scroll_rect.bottom -= sbarwid - 1;
@ -181,9 +190,6 @@ mac_init ()
ShowWindow (console_window); ShowWindow (console_window);
SelectWindow (console_window); SelectWindow (console_window);
/* force_update (console_window); */
return 1;
} }
mac_command_loop() mac_command_loop()
@ -212,7 +218,7 @@ mac_command_loop()
{ {
get_global_mouse (&mouse); get_global_mouse (&mouse);
adjust_cursor (mouse, cursorRgn); adjust_cursor (mouse, cursorRgn);
gotevent = WaitNextEvent (everyEvent, &event, 0L, cursorRgn); gotevent = WaitNextEvent (everyEvent, &event, GetCaretTime(), cursorRgn);
} }
else else
{ {
@ -236,6 +242,10 @@ mac_command_loop()
adjust_cursor (event.where, cursorRgn); adjust_cursor (event.where, cursorRgn);
do_event (&event); do_event (&event);
} }
else
{
do_idle ();
}
} }
} }
@ -360,6 +370,7 @@ EventRecord *evt;
AEProcessAppleEvent (evt); AEProcessAppleEvent (evt);
break; break;
case nullEvent: case nullEvent:
do_idle ();
rslt = 1; rslt = 1;
break; break;
default: default:
@ -368,6 +379,13 @@ EventRecord *evt;
return rslt; return rslt;
} }
/* Do any idle-time activities. */
do_idle ()
{
TEIdle (console_text);
}
grow_window (win, where) grow_window (win, where)
WindowPtr win; WindowPtr win;
Point where; Point where;
@ -385,11 +403,9 @@ Point where;
h = LoWord (winsize); h = LoWord (winsize);
v = HiWord (winsize); v = HiWord (winsize);
SizeWindow (win, h, v, 1); SizeWindow (win, h, v, 1);
if (win == console_window) adjust_console_sizes ();
{ adjust_console_scrollbars ();
MoveControl(console_v_scrollbar, h - sbarwid, 0); adjust_console_text ();
SizeControl(console_v_scrollbar, sbarwid + 1, v - sbarwid + 1);
}
InvalRect (&win->portRect); InvalRect (&win->portRect);
SetPort (oldport); SetPort (oldport);
} }
@ -400,6 +416,11 @@ WindowPtr win;
Point where; Point where;
short part; short part;
{ {
ZoomWindow (win, part, (win == FrontWindow ()));
adjust_console_sizes ();
adjust_console_scrollbars ();
adjust_console_text ();
InvalRect (&(win->portRect));
} }
close_window (win) close_window (win)
@ -407,11 +428,43 @@ WindowPtr win;
{ {
} }
do_mouse_down (win, event) pascal void
WindowPtr win; v_scroll_proc (ControlHandle control, short part)
EventRecord *event;
{ {
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; Point mouse;
ControlHandle control; ControlHandle control;
@ -423,7 +476,23 @@ EventRecord *event;
part = FindControl(mouse, win, &control); part = FindControl(mouse, win, &control);
if (control == console_v_scrollbar) 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 else
{ {
@ -436,6 +505,8 @@ activate_window (win, activate)
WindowPtr win; WindowPtr win;
int activate; int activate;
{ {
Rect grow_rect;
if (win == nil) return; if (win == nil) return;
/* It's convenient to make the activated window also be the /* It's convenient to make the activated window also be the
current GrafPort. */ current GrafPort. */
@ -443,7 +514,23 @@ int activate;
SetPort(win); SetPort(win);
/* Activate the console window's scrollbar. */ /* Activate the console window's scrollbar. */
if (win == console_window) 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) update_window (win)
@ -486,7 +573,9 @@ long which;
WindowPtr win; WindowPtr win;
short ditem; short ditem;
int i; int i;
char cmdbuf[300];
cmdbuf[0] = '\0';
menuid = HiWord (which); menuid = HiWord (which);
menuitem = LoWord (which); menuitem = LoWord (which);
switch (menuid) switch (menuid)
@ -495,8 +584,13 @@ long which;
switch (menuitem) switch (menuitem)
{ {
case miAbout: case miAbout:
/* Alert(aAbout, nil); */ Alert (128, nil);
break; break;
#if 0
case miHelp:
/* (should pop up help info) */
break;
#endif
default: default:
GetItem (GetMHandle (mApple), menuitem, daname); GetItem (GetMHandle (mApple), menuitem, daname);
daRefNum = OpenDeskAcc (daname); daRefNum = OpenDeskAcc (daname);
@ -505,6 +599,16 @@ long which;
case mFile: case mFile:
switch (menuitem) switch (menuitem)
{ {
case miFileNew:
if (console_window == FrontWindow ())
{
close_window (console_window);
}
new_console_window ();
break;
case miFileOpen:
SysBeep (20);
break;
case miFileQuit: case miFileQuit:
ExitToShell (); ExitToShell ();
break; break;
@ -515,71 +619,103 @@ long which;
switch (menuitem) switch (menuitem)
{ {
case miEditCut: case miEditCut:
TECut (console_text);
break; break;
case miEditCopy: case miEditCopy:
TECopy (console_text);
break; break;
case miEditPaste: case miEditPaste:
TEPaste (console_text);
break; break;
case miEditClear: 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;
} }
break; break;
} }
HiliteMenu (0); 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]; char commandbuf[1000];
do_keyboard_command (key) do_keyboard_command (key)
char key; int key;
{ {
int startpos, endpos, i; int startpos, endpos, i, len;
char *last_newline; char *last_newline;
char buf[10], *text_str, *command; char buf[10], *text_str, *command, *cmd_start;
CharsHandle text; CharsHandle text;
if (key == '\015' || key == '\003') if (key == '\015' || key == '\003')
{ {
/* (should) Interpret the line as a command. */
text = TEGetText (console_text); text = TEGetText (console_text);
HLock ((Handle) text); HLock ((Handle) text);
text_str = *text;
startpos = (*console_text)->selStart; startpos = (*console_text)->selStart;
endpos = (*console_text)->selEnd; endpos = (*console_text)->selEnd;
if (startpos != endpos) if (startpos != endpos)
{ {
strncpy (commandbuf + 1, *text + startpos, endpos - startpos); len = endpos - startpos;
commandbuf[1 + endpos - startpos] = 0; cmd_start = text_str + startpos;
command = commandbuf + 1;
} }
else else
{ {
DebugStr("\plooking for command"); for (i = startpos - 1; i >= 0; --i)
last_newline = strrchr(*text+startpos, '\n'); if (text_str[i] == '\015')
if (last_newline) break;
{ last_newline = text_str + i;
strncpy (commandbuf + 1, len = (text_str + startpos) - 1 - last_newline;
last_newline, cmd_start = last_newline + 1;
last_newline - (*text+startpos));
commandbuf[1 + last_newline - (*text+startpos)] = 0;
command = commandbuf + 1;
}
else
{
command = "help";
}
} }
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); HUnlock ((Handle) text);
commandbuf[0] = strlen(command); commandbuf[0] = strlen(command);
DebugStr(commandbuf);
/* Insert a newline and redraw before doing the command. */ /* Insert a newline and recalculate before doing any command. */
buf[0] = '\015'; key = '\015';
TEKey (key, console_text);
TEInsert (buf, 1, console_text); TEInsert (buf, 1, console_text);
TESetSelect (100000, 100000, console_text); adjust_console_sizes ();
draw_console (); adjust_console_scrollbars ();
adjust_console_text ();
execute_command (commandbuf, 0); if (strlen (command) > 0)
bpstat_do_actions (&stop_bpstat); {
execute_command (command, 0);
bpstat_do_actions (&stop_bpstat);
}
} }
else if (0 /* editing chars... */) else if (0 /* editing chars... */)
{ {
@ -587,22 +723,18 @@ char key;
else else
{ {
/* A self-inserting character. */ /* A self-inserting character. */
buf[0] = key; TEKey (key, console_text);
TEInsert (buf, 1, console_text);
TESetSelect (100000, 100000, console_text);
draw_console ();
} }
} }
draw_console () draw_console ()
{ {
GrafPtr oldport;
GetPort (&oldport);
SetPort (console_window); SetPort (console_window);
TEUpdate (&(console_window->portRect), console_text); TEUpdate (&(console_window->portRect), console_text);
SetPort (oldport); #if 0
/* adjust_help_scrollbar(); */ FrameRect (&((*console_text)->viewRect));
FrameRect (&((*console_text)->destRect));
#endif
} }
/* Cause an update of a window's entire contents. */ /* Cause an update of a window's entire contents. */
@ -620,18 +752,52 @@ WindowPtr win;
SetPort (oldport); 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 () adjust_console_scrollbars ()
{ {
int lines, newmax, value; int lines, newmax, value;
(*console_v_scrollbar)->contrlVis = 0;
lines = (*console_text)->nLines; 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); / (*console_text)->lineHeight);
if (newmax < 0) newmax = 0; if (newmax < 0) newmax = 0;
SetCtlMax (console_v_scrollbar, newmax); SetCtlMax (console_v_scrollbar, newmax);
value = ((*console_text)->viewRect.top - (*console_text)->destRect.top) value = ((*console_text)->viewRect.top - (*console_text)->destRect.top)
/ (*console_text)->lineHeight; / (*console_text)->lineHeight;
SetCtlValue (console_v_scrollbar, value); 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. */ /* Readline substitute. */
@ -724,9 +890,8 @@ hacked_fprintf (FILE *fp, const char *fmt, ...)
char buf[1000]; char buf[1000];
ret = vsprintf(buf, fmt, ap); ret = vsprintf(buf, fmt, ap);
TESetSelect (40000, 40000, console_text);
TEInsert (buf, strlen(buf), console_text); TEInsert (buf, strlen(buf), console_text);
TESetSelect (100000, 100000, console_text);
draw_console ();
} }
else else
ret = vfprintf (fp, fmt, ap); ret = vfprintf (fp, fmt, ap);
@ -764,9 +929,8 @@ hacked_vfprintf (FILE *fp, const char *format, va_list args)
int ret; int ret;
ret = vsprintf(buf, format, args); ret = vsprintf(buf, format, args);
TESetSelect (40000, 40000, console_text);
TEInsert (buf, strlen(buf), console_text); TEInsert (buf, strlen(buf), console_text);
TESetSelect (100000, 100000, console_text);
draw_console ();
return ret; return ret;
} }
else else
@ -779,9 +943,8 @@ hacked_fputs (const char *s, FILE *fp)
{ {
if (mac_app && (fp == stdout || fp == stderr)) if (mac_app && (fp == stdout || fp == stderr))
{ {
TESetSelect (40000, 40000, console_text);
TEInsert (s, strlen(s), console_text); TEInsert (s, strlen(s), console_text);
TESetSelect (100000, 100000, console_text);
draw_console ();
return 0; return 0;
} }
else else
@ -797,9 +960,8 @@ hacked_fputc (const char c, FILE *fp)
char buf[2]; char buf[2];
buf[0] = c; buf[0] = c;
TESetSelect (40000, 40000, console_text);
TEInsert (buf, 1, console_text); TEInsert (buf, 1, console_text);
TESetSelect (100000, 100000, console_text);
draw_console ();
return 0; return 0;
} }
else else
@ -815,9 +977,8 @@ hacked_putc (const char c, FILE *fp)
char buf[2]; char buf[2];
buf[0] = c; buf[0] = c;
TESetSelect (40000, 40000, console_text);
TEInsert (buf, 1, console_text); TEInsert (buf, 1, console_text);
TESetSelect (100000, 100000, console_text);
draw_console ();
} }
else else
return fputc (c, fp); return fputc (c, fp);
@ -831,4 +992,3 @@ hacked_fflush (FILE *fp)
return 0; return 0;
return fflush (fp); return fflush (fp);
} }

View File

@ -1,9 +1,17 @@
/* Resource file for MacGDB. */ /* Resource file for MacGDB. */
#include "SysTypes.r"
#include "Types.r" #include "Types.r"
#include "mac-defs.h" #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) { resource 'MBAR' (128) {
{ mApple, mFile, mEdit, mDebug }; { mApple, mFile, mEdit, mDebug };
}; };
@ -23,11 +31,11 @@ resource 'MENU' (mApple, preload) {
resource 'MENU' (mFile, preload) { resource 'MENU' (mFile, preload) {
mFile, mFile,
textMenuProc, textMenuProc,
0xFFF, allEnabled,
enabled, enabled,
"File", "File",
{ {
"New", noIcon, "N", noMark, plain, "New", noIcon, noKey, noMark, plain,
"Open...", noIcon, "O", noMark, plain, "Open...", noIcon, "O", noMark, plain,
"-", noIcon, noKey, noMark, plain, "-", noIcon, noKey, noMark, plain,
"Quit", noIcon, "Q", noMark, plain "Quit", noIcon, "Q", noMark, plain
@ -37,7 +45,7 @@ resource 'MENU' (mFile, preload) {
resource 'MENU' (mEdit, preload) { resource 'MENU' (mEdit, preload) {
mEdit, mEdit,
textMenuProc, textMenuProc,
0x3400, allEnabled,
enabled, enabled,
"Edit", "Edit",
{ {
@ -53,16 +61,16 @@ resource 'MENU' (mEdit, preload) {
resource 'MENU' (mDebug, preload) { resource 'MENU' (mDebug, preload) {
mDebug, mDebug,
textMenuProc, textMenuProc,
0x7FFFFFDD, allEnabled,
enabled, enabled,
"Debug", "Debug",
{ {
"Target", noIcon, "T", noMark, plain, "Target", noIcon, "T", noMark, plain,
"-", noIcon, noKey, noMark, plain, "-", noIcon, noKey, noMark, plain,
"Run", noIcon, "R", noMark, plain, "Run", noIcon, "R", noMark, plain,
"Continue", noIcon, noKey, noMark, plain, "Continue", noIcon, "K", noMark, plain,
"Step", noIcon, noKey, noMark, plain, "Step", noIcon, "S", noMark, plain,
"Next", noIcon, noKey, noMark, plain "Next", noIcon, "N", noMark, plain
} }
}; };
@ -114,9 +122,9 @@ resource 'DITL' (128) {
resource 'WIND' (wConsole, preload, purgeable) { resource 'WIND' (wConsole, preload, purgeable) {
{40, 40, 310, 572}, {40, 40, 310, 572},
documentProc, zoomDocProc,
visible, visible,
noGoAway, goAway,
0x0, 0x0,
"GDB Console" "GDB Console"
}; };

View File

@ -22,10 +22,10 @@ o = :
# Default rule that puts each file into separate segment. # Default rule that puts each file into separate segment.
.c.o \Option-f .c .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.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. #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} {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}"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}"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 "{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}"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}"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}"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 = TSOBS =
@ -1060,6 +1060,9 @@ MAKEOVERRIDES=
{inferior_h} {symtab_h} {dis_asm_h} {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}"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}"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 "{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 "{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 {defs_h} {gdbcmd_h} {inferior_h} "{s}"language.h "{s}"signals.h \Option-d
{remote_utils_h} {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 "{o}"maint.c.o \Option-f "{s}"maint.c {defs_h} {gdbcmd_h} {gdbtypes_h} {symtab_h} "{s}"language.h \Option-d
{expression_h} {expression_h}

View File

@ -1,5 +1,6 @@
/* Remote serial interface for local (hardwired) serial ports for Macintosh. /* Remote serial interface for local (hardwired) serial ports for Macintosh.
Copyright 1994 Free Software Foundation, Inc. Copyright 1994 Free Software Foundation, Inc.
Contributed by Cygnus Support. Written by Stan Shebs.
This file is part of GDB. This file is part of GDB.
@ -92,6 +93,7 @@ mac_open (scb, name)
} }
else else
{ {
error ("You must specify a port. Choices are `modem' or `printer'.");
errno = ENOENT; errno = ENOENT;
return (-1); return (-1);
} }
@ -244,6 +246,8 @@ mac_set_baud_rate (scb, rate)
return 0; return 0;
} }
int first_mac_write = 0;
static int static int
mac_write (scb, str, len) mac_write (scb, str, len)
serial_t scb; serial_t scb;
@ -253,6 +257,10 @@ mac_write (scb, str, len)
OSErr err; OSErr err;
IOParam pb; IOParam pb;
if (first_mac_write++ < 8)
{
sleep (1);
}
pb.ioRefNum = output_refnum; pb.ioRefNum = output_refnum;
pb.ioBuffer = (Ptr) str; pb.ioBuffer = (Ptr) str;
pb.ioReqCount = len; pb.ioReqCount = len;