/* OBSOLETE /* Top level support for Mac interface to GDB, the GNU debugger. */ /* OBSOLETE Copyright 1994, 1995, 1998, 2000, 2001 Free Software Foundation, Inc. */ /* OBSOLETE Contributed by Cygnus Support. Written by Stan Shebs. */ /* OBSOLETE */ /* OBSOLETE This file is part of GDB. */ /* OBSOLETE */ /* OBSOLETE This program is free software; you can redistribute it and/or modify */ /* OBSOLETE it under the terms of the GNU General Public License as published by */ /* OBSOLETE the Free Software Foundation; either version 2 of the License, or */ /* OBSOLETE (at your option) any later version. */ /* OBSOLETE */ /* OBSOLETE This program is distributed in the hope that it will be useful, */ /* OBSOLETE but WITHOUT ANY WARRANTY; without even the implied warranty of */ /* OBSOLETE MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ /* OBSOLETE GNU General Public License for more details. */ /* OBSOLETE */ /* OBSOLETE You should have received a copy of the GNU General Public License */ /* OBSOLETE along with this program; if not, write to the Free Software */ /* OBSOLETE Foundation, Inc., 59 Temple Place - Suite 330, */ /* OBSOLETE Boston, MA 02111-1307, USA. */ */ /* OBSOLETE */ /* OBSOLETE #include "defs.h" */ /* OBSOLETE */ /* OBSOLETE #include */ /* OBSOLETE #include */ /* OBSOLETE */ /* OBSOLETE #include */ /* OBSOLETE #include */ /* OBSOLETE #include */ /* OBSOLETE #include */ /* OBSOLETE #include */ /* OBSOLETE #include */ /* OBSOLETE #include */ /* OBSOLETE #include */ /* OBSOLETE #include */ /* OBSOLETE #include */ /* OBSOLETE #include */ /* OBSOLETE #include */ /* OBSOLETE #include */ /* OBSOLETE #include */ /* OBSOLETE #include */ /* OBSOLETE #include */ /* OBSOLETE #include */ /* OBSOLETE #include */ /* OBSOLETE #include */ /* OBSOLETE #include */ /* OBSOLETE #include */ /* OBSOLETE #include */ /* OBSOLETE #include */ /* OBSOLETE #include */ /* OBSOLETE #include */ /* OBSOLETE #include */ /* OBSOLETE */ /* OBSOLETE #ifdef MPW */ /* OBSOLETE #define QD(whatever) (qd.##whatever) */ /* OBSOLETE #define QDPat(whatever) (&(qd.##whatever)) */ /* OBSOLETE #endif /* MPW */ */ /* OBSOLETE */ /* OBSOLETE #ifdef THINK_C */ /* OBSOLETE #define QD(whatever) (whatever) */ /* OBSOLETE #endif */ /* OBSOLETE */ /* OBSOLETE #define p2c(pstr,cbuf) \ */ /* OBSOLETE strncpy(cbuf, ((char *) (pstr) + 1), pstr[0]); \ */ /* OBSOLETE cbuf[pstr[0]] = '\0'; */ /* OBSOLETE */ /* OBSOLETE #define pascalify(STR) \ */ /* OBSOLETE sprintf(tmpbuf, " %s", STR); \ */ /* OBSOLETE tmpbuf[0] = strlen(STR); */ /* OBSOLETE */ /* OBSOLETE #include "gdbcmd.h" */ /* OBSOLETE #include "call-cmds.h" */ /* OBSOLETE #include "symtab.h" */ /* OBSOLETE #include "inferior.h" */ /* OBSOLETE #include */ /* OBSOLETE #include "target.h" */ /* OBSOLETE #include "breakpoint.h" */ /* OBSOLETE #include "gdbtypes.h" */ /* OBSOLETE #include "expression.h" */ /* OBSOLETE #include "language.h" */ /* OBSOLETE */ /* OBSOLETE #include "mac-defs.h" */ /* OBSOLETE */ /* OBSOLETE int debug_openp = 0; */ /* OBSOLETE */ /* OBSOLETE /* This is true if we are running as a standalone application. */ */ /* OBSOLETE */ /* OBSOLETE int mac_app; */ /* OBSOLETE */ /* OBSOLETE /* This is true if we are using WaitNextEvent. */ */ /* OBSOLETE */ /* OBSOLETE int use_wne; */ /* OBSOLETE */ /* OBSOLETE /* This is true if we have Color Quickdraw. */ */ /* OBSOLETE */ /* OBSOLETE int has_color_qd; */ /* OBSOLETE */ /* OBSOLETE /* This is true if we are using Color Quickdraw. */ */ /* OBSOLETE */ /* OBSOLETE int use_color_qd; */ /* OBSOLETE */ /* OBSOLETE int inbackground; */ /* OBSOLETE */ /* OBSOLETE Rect dragrect = */ /* OBSOLETE {-32000, -32000, 32000, 32000}; */ /* OBSOLETE Rect sizerect; */ /* OBSOLETE */ /* OBSOLETE int sbarwid = 15; */ /* OBSOLETE */ /* OBSOLETE /* Globals for the console window. */ */ /* OBSOLETE */ /* OBSOLETE WindowPtr console_window; */ /* OBSOLETE */ /* OBSOLETE ControlHandle console_v_scrollbar; */ /* OBSOLETE */ /* OBSOLETE Rect console_v_scroll_rect; */ /* OBSOLETE */ /* OBSOLETE TEHandle console_text; */ /* OBSOLETE */ /* OBSOLETE Rect console_text_rect; */ /* OBSOLETE */ /* OBSOLETE /* This will go away eventually. */ */ /* OBSOLETE gdb_has_a_terminal (void) */ /* OBSOLETE { */ /* OBSOLETE return 1; */ /* OBSOLETE } */ /* OBSOLETE */ /* OBSOLETE mac_init (void) */ /* OBSOLETE { */ /* OBSOLETE SysEnvRec se; */ /* OBSOLETE int eventloopdone = 0; */ /* OBSOLETE char *str; */ /* OBSOLETE Boolean gotevent; */ /* OBSOLETE Point mouse; */ /* OBSOLETE EventRecord event; */ /* OBSOLETE WindowPtr win; */ /* OBSOLETE RgnHandle cursorRgn; */ /* OBSOLETE int i; */ /* OBSOLETE Handle menubar; */ /* OBSOLETE MenuHandle menu; */ /* OBSOLETE Handle siow_resource; */ /* OBSOLETE */ /* OBSOLETE mac_app = 0; */ /* OBSOLETE */ /* OBSOLETE str = getenv ("DEBUG_GDB"); */ /* OBSOLETE if (str != NULL && str[0] != '\0') */ /* OBSOLETE { */ /* OBSOLETE if (strcmp (str, "openp") == 0) */ /* OBSOLETE debug_openp = 1; */ /* OBSOLETE } */ /* OBSOLETE */ /* OBSOLETE /* Don't do anything if we`re running under MPW. */ */ /* OBSOLETE if (!StandAlone) */ /* OBSOLETE return; */ /* OBSOLETE */ /* OBSOLETE /* Don't do anything if we're using SIOW. */ */ /* OBSOLETE /* This test requires that the siow 0 resource, as defined in */ /* OBSOLETE {RIncludes}siow.r, not be messed with. If it is, then the */ /* OBSOLETE standard Mac setup below will step on SIOW's Mac setup and */ /* OBSOLETE most likely crash the machine. */ */ /* OBSOLETE siow_resource = GetResource ('siow', 0); */ /* OBSOLETE if (siow_resource != nil) */ /* OBSOLETE return; */ /* OBSOLETE */ /* OBSOLETE mac_app = 1; */ /* OBSOLETE */ /* OBSOLETE /* Do the standard Mac environment setup. */ */ /* OBSOLETE InitGraf (&QD (thePort)); */ /* OBSOLETE InitFonts (); */ /* OBSOLETE FlushEvents (everyEvent, 0); */ /* OBSOLETE InitWindows (); */ /* OBSOLETE InitMenus (); */ /* OBSOLETE TEInit (); */ /* OBSOLETE InitDialogs (NULL); */ /* OBSOLETE InitCursor (); */ /* OBSOLETE */ /* OBSOLETE /* Color Quickdraw is different from Classic QD. */ */ /* OBSOLETE SysEnvirons (2, &se); */ /* OBSOLETE has_color_qd = se.hasColorQD; */ /* OBSOLETE /* Use it if we got it. */ */ /* OBSOLETE use_color_qd = has_color_qd; */ /* OBSOLETE */ /* OBSOLETE sizerect.top = 50; */ /* OBSOLETE sizerect.left = 50; */ /* OBSOLETE sizerect.bottom = 1000; */ /* OBSOLETE sizerect.right = 1000; */ /* OBSOLETE #if 0 */ /* OBSOLETE sizerect.bottom = screenBits.bounds.bottom - screenBits.bounds.top; */ /* OBSOLETE sizerect.right = screenBits.bounds.right - screenBits.bounds.left; */ /* OBSOLETE #endif */ /* OBSOLETE */ /* OBSOLETE /* Set up the menus. */ */ /* OBSOLETE menubar = GetNewMBar (mbMain); */ /* OBSOLETE SetMenuBar (menubar); */ /* OBSOLETE /* Add the DAs etc as usual. */ */ /* OBSOLETE menu = GetMHandle (mApple); */ /* OBSOLETE if (menu != nil) */ /* OBSOLETE { */ /* OBSOLETE AddResMenu (menu, 'DRVR'); */ /* OBSOLETE } */ /* OBSOLETE DrawMenuBar (); */ /* OBSOLETE */ /* OBSOLETE new_console_window (); */ /* OBSOLETE } */ /* OBSOLETE */ /* OBSOLETE new_console_window (void) */ /* OBSOLETE { */ /* OBSOLETE /* Create the main window we're going to play in. */ */ /* OBSOLETE if (has_color_qd) */ /* OBSOLETE console_window = GetNewCWindow (wConsole, NULL, (WindowPtr) - 1L); */ /* OBSOLETE else */ /* OBSOLETE console_window = GetNewWindow (wConsole, NULL, (WindowPtr) - 1L); */ /* OBSOLETE */ /* OBSOLETE SetPort (console_window); */ /* OBSOLETE console_text_rect = console_window->portRect; */ /* OBSOLETE /* Leave 8 pixels of blank space, for aesthetic reasons and to */ /* OBSOLETE make it easier to select from the beginning of a line. */ */ /* OBSOLETE console_text_rect.left += 8; */ /* OBSOLETE console_text_rect.bottom -= sbarwid - 1; */ /* OBSOLETE console_text_rect.right -= sbarwid - 1; */ /* OBSOLETE console_text = TENew (&console_text_rect, &console_text_rect); */ /* OBSOLETE TESetSelect (0, 40000, console_text); */ /* OBSOLETE TEDelete (console_text); */ /* OBSOLETE TEAutoView (1, console_text); */ /* OBSOLETE */ /* OBSOLETE console_v_scroll_rect = console_window->portRect; */ /* OBSOLETE console_v_scroll_rect.bottom -= sbarwid - 1; */ /* OBSOLETE console_v_scroll_rect.left = console_v_scroll_rect.right - sbarwid; */ /* OBSOLETE console_v_scrollbar = */ /* OBSOLETE NewControl (console_window, &console_v_scroll_rect, */ /* OBSOLETE "\p", 1, 0, 0, 0, scrollBarProc, 0L); */ /* OBSOLETE */ /* OBSOLETE ShowWindow (console_window); */ /* OBSOLETE SelectWindow (console_window); */ /* OBSOLETE } */ /* OBSOLETE */ /* OBSOLETE mac_command_loop (void) */ /* OBSOLETE { */ /* OBSOLETE SysEnvRec se; */ /* OBSOLETE int eventloopdone = 0; */ /* OBSOLETE Boolean gotevent; */ /* OBSOLETE Point mouse; */ /* OBSOLETE EventRecord event; */ /* OBSOLETE WindowPtr win; */ /* OBSOLETE RgnHandle cursorRgn; */ /* OBSOLETE int i, tm; */ /* OBSOLETE Handle menubar; */ /* OBSOLETE MenuHandle menu; */ /* OBSOLETE */ /* OBSOLETE /* Figure out if the WaitNextEvent Trap is available. */ */ /* OBSOLETE use_wne = */ /* OBSOLETE (NGetTrapAddress (0x60, ToolTrap) != NGetTrapAddress (0x9f, ToolTrap)); */ /* OBSOLETE /* Pass WaitNextEvent an empty region the first time through. */ */ /* OBSOLETE cursorRgn = NewRgn (); */ /* OBSOLETE /* Go into the main event-handling loop. */ */ /* OBSOLETE while (!eventloopdone) */ /* OBSOLETE { */ /* OBSOLETE /* Use WaitNextEvent if it is available, otherwise GetNextEvent. */ */ /* OBSOLETE if (use_wne) */ /* OBSOLETE { */ /* OBSOLETE get_global_mouse (&mouse); */ /* OBSOLETE adjust_cursor (mouse, cursorRgn); */ /* OBSOLETE tm = GetCaretTime (); */ /* OBSOLETE gotevent = WaitNextEvent (everyEvent, &event, tm, cursorRgn); */ /* OBSOLETE } */ /* OBSOLETE else */ /* OBSOLETE { */ /* OBSOLETE SystemTask (); */ /* OBSOLETE gotevent = GetNextEvent (everyEvent, &event); */ /* OBSOLETE } */ /* OBSOLETE /* First decide if the event is for a dialog or is just any old event. */ */ /* OBSOLETE if (FrontWindow () != nil && IsDialogEvent (&event)) */ /* OBSOLETE { */ /* OBSOLETE short itemhit; */ /* OBSOLETE DialogPtr dialog; */ /* OBSOLETE */ /* OBSOLETE /* Handle all the modeless dialogs here. */ */ /* OBSOLETE if (DialogSelect (&event, &dialog, &itemhit)) */ /* OBSOLETE { */ /* OBSOLETE } */ /* OBSOLETE } */ /* OBSOLETE else if (gotevent) */ /* OBSOLETE { */ /* OBSOLETE /* Make sure we have the right cursor before handling the event. */ */ /* OBSOLETE adjust_cursor (event.where, cursorRgn); */ /* OBSOLETE do_event (&event); */ /* OBSOLETE } */ /* OBSOLETE else */ /* OBSOLETE { */ /* OBSOLETE do_idle (); */ /* OBSOLETE } */ /* OBSOLETE } */ /* OBSOLETE } */ /* OBSOLETE */ /* OBSOLETE /* Collect the global coordinates of the mouse pointer. */ */ /* OBSOLETE */ /* OBSOLETE get_global_mouse (Point *mouse) */ /* OBSOLETE { */ /* OBSOLETE EventRecord evt; */ /* OBSOLETE */ /* OBSOLETE OSEventAvail (0, &evt); */ /* OBSOLETE *mouse = evt.where; */ /* OBSOLETE } */ /* OBSOLETE */ /* OBSOLETE /* Change the cursor's appearance to be appropriate for the given mouse */ /* OBSOLETE location. */ */ /* OBSOLETE */ /* OBSOLETE adjust_cursor (Point mouse, RgnHandle region) */ /* OBSOLETE { */ /* OBSOLETE } */ /* OBSOLETE */ /* OBSOLETE /* Decipher an event, maybe do something with it. */ */ /* OBSOLETE */ /* OBSOLETE do_event (EventRecord *evt) */ /* OBSOLETE { */ /* OBSOLETE short part, err, rslt = 0; */ /* OBSOLETE WindowPtr win; */ /* OBSOLETE Boolean hit; */ /* OBSOLETE char key; */ /* OBSOLETE Point pnt; */ /* OBSOLETE */ /* OBSOLETE switch (evt->what) */ /* OBSOLETE { */ /* OBSOLETE case mouseDown: */ /* OBSOLETE /* See if the click happened in a special part of the screen. */ */ /* OBSOLETE part = FindWindow (evt->where, &win); */ /* OBSOLETE switch (part) */ /* OBSOLETE { */ /* OBSOLETE case inMenuBar: */ /* OBSOLETE adjust_menus (); */ /* OBSOLETE do_menu_command (MenuSelect (evt->where)); */ /* OBSOLETE break; */ /* OBSOLETE case inSysWindow: */ /* OBSOLETE SystemClick (evt, win); */ /* OBSOLETE break; */ /* OBSOLETE case inContent: */ /* OBSOLETE if (win != FrontWindow ()) */ /* OBSOLETE { */ /* OBSOLETE /* Bring the clicked-on window to the front. */ */ /* OBSOLETE SelectWindow (win); */ /* OBSOLETE /* Fix the menu to match the new front window. */ */ /* OBSOLETE adjust_menus (); */ /* OBSOLETE /* We always want to discard the event now, since clicks in a */ /* OBSOLETE windows are often irreversible actions. */ */ /* OBSOLETE } */ /* OBSOLETE else */ /* OBSOLETE /* Mouse clicks in the front window do something useful. */ */ /* OBSOLETE do_mouse_down (win, evt); */ /* OBSOLETE break; */ /* OBSOLETE case inDrag: */ /* OBSOLETE /* Standard drag behavior, no tricks necessary. */ */ /* OBSOLETE DragWindow (win, evt->where, &dragrect); */ /* OBSOLETE break; */ /* OBSOLETE case inGrow: */ /* OBSOLETE grow_window (win, evt->where); */ /* OBSOLETE break; */ /* OBSOLETE case inZoomIn: */ /* OBSOLETE case inZoomOut: */ /* OBSOLETE zoom_window (win, evt->where, part); */ /* OBSOLETE break; */ /* OBSOLETE case inGoAway: */ /* OBSOLETE close_window (win); */ /* OBSOLETE break; */ /* OBSOLETE } */ /* OBSOLETE break; */ /* OBSOLETE case keyDown: */ /* OBSOLETE case autoKey: */ /* OBSOLETE key = evt->message & charCodeMask; */ /* OBSOLETE /* Check for menukey equivalents. */ */ /* OBSOLETE if (evt->modifiers & cmdKey) */ /* OBSOLETE { */ /* OBSOLETE if (evt->what == keyDown) */ /* OBSOLETE { */ /* OBSOLETE adjust_menus (); */ /* OBSOLETE do_menu_command (MenuKey (key)); */ /* OBSOLETE } */ /* OBSOLETE } */ /* OBSOLETE else */ /* OBSOLETE { */ /* OBSOLETE if (evt->what == keyDown) */ /* OBSOLETE { */ /* OBSOLETE /* Random keypress, interpret it. */ */ /* OBSOLETE do_keyboard_command (key); */ /* OBSOLETE } */ /* OBSOLETE } */ /* OBSOLETE break; */ /* OBSOLETE case activateEvt: */ /* OBSOLETE activate_window ((WindowPtr) evt->message, evt->modifiers & activeFlag); */ /* OBSOLETE break; */ /* OBSOLETE case updateEvt: */ /* OBSOLETE update_window ((WindowPtr) evt->message); */ /* OBSOLETE break; */ /* OBSOLETE case diskEvt: */ /* OBSOLETE /* Call DIBadMount in response to a diskEvt, so that the user can format */ /* OBSOLETE a floppy. (from DTS Sample) */ */ /* OBSOLETE if (HiWord (evt->message) != noErr) */ /* OBSOLETE { */ /* OBSOLETE SetPt (&pnt, 50, 50); */ /* OBSOLETE err = DIBadMount (pnt, evt->message); */ /* OBSOLETE } */ /* OBSOLETE break; */ /* OBSOLETE case app4Evt: */ /* OBSOLETE /* Grab only a single byte. */ */ /* OBSOLETE switch ((evt->message >> 24) & 0xFF) */ /* OBSOLETE { */ /* OBSOLETE case 0xfa: */ /* OBSOLETE break; */ /* OBSOLETE case 1: */ /* OBSOLETE inbackground = !(evt->message & 1); */ /* OBSOLETE activate_window (FrontWindow (), !inbackground); */ /* OBSOLETE break; */ /* OBSOLETE } */ /* OBSOLETE break; */ /* OBSOLETE case kHighLevelEvent: */ /* OBSOLETE AEProcessAppleEvent (evt); */ /* OBSOLETE break; */ /* OBSOLETE case nullEvent: */ /* OBSOLETE do_idle (); */ /* OBSOLETE rslt = 1; */ /* OBSOLETE break; */ /* OBSOLETE default: */ /* OBSOLETE break; */ /* OBSOLETE } */ /* OBSOLETE return rslt; */ /* OBSOLETE } */ /* OBSOLETE */ /* OBSOLETE /* Do any idle-time activities. */ */ /* OBSOLETE */ /* OBSOLETE do_idle (void) */ /* OBSOLETE { */ /* OBSOLETE TEIdle (console_text); */ /* OBSOLETE } */ /* OBSOLETE */ /* OBSOLETE grow_window (WindowPtr win, Point where) */ /* OBSOLETE { */ /* OBSOLETE long winsize; */ /* OBSOLETE int h, v; */ /* OBSOLETE GrafPtr oldport; */ /* OBSOLETE */ /* OBSOLETE winsize = GrowWindow (win, where, &sizerect); */ /* OBSOLETE /* Only do anything if it actually changed size. */ */ /* OBSOLETE if (winsize != 0) */ /* OBSOLETE { */ /* OBSOLETE GetPort (&oldport); */ /* OBSOLETE SetPort (win); */ /* OBSOLETE if (win == console_window) */ /* OBSOLETE { */ /* OBSOLETE EraseRect (&win->portRect); */ /* OBSOLETE h = LoWord (winsize); */ /* OBSOLETE v = HiWord (winsize); */ /* OBSOLETE SizeWindow (win, h, v, 1); */ /* OBSOLETE resize_console_window (); */ /* OBSOLETE } */ /* OBSOLETE SetPort (oldport); */ /* OBSOLETE } */ /* OBSOLETE } */ /* OBSOLETE */ /* OBSOLETE zoom_window (WindowPtr win, Point where, short part) */ /* OBSOLETE { */ /* OBSOLETE ZoomWindow (win, part, (win == FrontWindow ())); */ /* OBSOLETE if (win == console_window) */ /* OBSOLETE { */ /* OBSOLETE resize_console_window (); */ /* OBSOLETE } */ /* OBSOLETE } */ /* OBSOLETE */ /* OBSOLETE resize_console_window (void) */ /* OBSOLETE { */ /* OBSOLETE adjust_console_sizes (); */ /* OBSOLETE adjust_console_scrollbars (); */ /* OBSOLETE adjust_console_text (); */ /* OBSOLETE InvalRect (&console_window->portRect); */ /* OBSOLETE } */ /* OBSOLETE */ /* OBSOLETE close_window (WindowPtr win) */ /* OBSOLETE { */ /* OBSOLETE } */ /* OBSOLETE */ /* OBSOLETE pascal void */ /* OBSOLETE v_scroll_proc (ControlHandle control, short part) */ /* OBSOLETE { */ /* OBSOLETE int oldval, amount = 0, newval; */ /* OBSOLETE int pagesize = ((*console_text)->viewRect.bottom - (*console_text)->viewRect.top) / (*console_text)->lineHeight; */ /* OBSOLETE if (part) */ /* OBSOLETE { */ /* OBSOLETE oldval = GetCtlValue (control); */ /* OBSOLETE switch (part) */ /* OBSOLETE { */ /* OBSOLETE case inUpButton: */ /* OBSOLETE amount = 1; */ /* OBSOLETE break; */ /* OBSOLETE case inDownButton: */ /* OBSOLETE amount = -1; */ /* OBSOLETE break; */ /* OBSOLETE case inPageUp: */ /* OBSOLETE amount = pagesize; */ /* OBSOLETE break; */ /* OBSOLETE case inPageDown: */ /* OBSOLETE amount = -pagesize; */ /* OBSOLETE break; */ /* OBSOLETE default: */ /* OBSOLETE /* (should freak out) */ */ /* OBSOLETE break; */ /* OBSOLETE } */ /* OBSOLETE SetCtlValue (control, oldval - amount); */ /* OBSOLETE newval = GetCtlValue (control); */ /* OBSOLETE amount = oldval - newval; */ /* OBSOLETE if (amount) */ /* OBSOLETE TEScroll (0, amount * (*console_text)->lineHeight, console_text); */ /* OBSOLETE } */ /* OBSOLETE } */ /* OBSOLETE */ /* OBSOLETE do_mouse_down (WindowPtr win, EventRecord * event) */ /* OBSOLETE { */ /* OBSOLETE short part, value; */ /* OBSOLETE Point mouse; */ /* OBSOLETE ControlHandle control; */ /* OBSOLETE */ /* OBSOLETE if (1 /*is_app_window(win) */ ) */ /* OBSOLETE { */ /* OBSOLETE SetPort (win); */ /* OBSOLETE mouse = event->where; */ /* OBSOLETE GlobalToLocal (&mouse); */ /* OBSOLETE part = FindControl (mouse, win, &control); */ /* OBSOLETE if (control == console_v_scrollbar) */ /* OBSOLETE { */ /* OBSOLETE switch (part) */ /* OBSOLETE { */ /* OBSOLETE case inThumb: */ /* OBSOLETE value = GetCtlValue (control); */ /* OBSOLETE part = TrackControl (control, mouse, nil); */ /* OBSOLETE if (part) */ /* OBSOLETE { */ /* OBSOLETE value -= GetCtlValue (control); */ /* OBSOLETE if (value) */ /* OBSOLETE TEScroll (0, value * (*console_text)->lineHeight, */ /* OBSOLETE console_text); */ /* OBSOLETE } */ /* OBSOLETE break; */ /* OBSOLETE default: */ /* OBSOLETE #if 0 /* don't deal with right now */ */ /* OBSOLETE #if 1 /* universal headers */ */ /* OBSOLETE value = TrackControl (control, mouse, (ControlActionUPP) v_scroll_proc); */ /* OBSOLETE #else */ /* OBSOLETE value = TrackControl (control, mouse, (ProcPtr) v_scroll_proc); */ /* OBSOLETE #endif */ /* OBSOLETE #endif */ /* OBSOLETE break; */ /* OBSOLETE } */ /* OBSOLETE } */ /* OBSOLETE else */ /* OBSOLETE { */ /* OBSOLETE TEClick (mouse, 0, console_text); */ /* OBSOLETE } */ /* OBSOLETE } */ /* OBSOLETE } */ /* OBSOLETE */ /* OBSOLETE scroll_text (int hlines, int vlines) */ /* OBSOLETE { */ /* OBSOLETE } */ /* OBSOLETE */ /* OBSOLETE activate_window (WindowPtr win, int activate) */ /* OBSOLETE { */ /* OBSOLETE Rect grow_rect; */ /* OBSOLETE */ /* OBSOLETE if (win == nil) */ /* OBSOLETE return; */ /* OBSOLETE /* It's convenient to make the activated window also be the */ /* OBSOLETE current GrafPort. */ */ /* OBSOLETE if (activate) */ /* OBSOLETE SetPort (win); */ /* OBSOLETE /* Activate the console window's scrollbar. */ */ /* OBSOLETE if (win == console_window) */ /* OBSOLETE { */ /* OBSOLETE if (activate) */ /* OBSOLETE { */ /* OBSOLETE TEActivate (console_text); */ /* OBSOLETE /* Cause the grow icon to be redrawn at the next update. */ */ /* OBSOLETE grow_rect = console_window->portRect; */ /* OBSOLETE grow_rect.top = grow_rect.bottom - sbarwid; */ /* OBSOLETE grow_rect.left = grow_rect.right - sbarwid; */ /* OBSOLETE InvalRect (&grow_rect); */ /* OBSOLETE } */ /* OBSOLETE else */ /* OBSOLETE { */ /* OBSOLETE TEDeactivate (console_text); */ /* OBSOLETE DrawGrowIcon (console_window); */ /* OBSOLETE } */ /* OBSOLETE HiliteControl (console_v_scrollbar, (activate ? 0 : 255)); */ /* OBSOLETE } */ /* OBSOLETE } */ /* OBSOLETE */ /* OBSOLETE update_window (WindowPtr win) */ /* OBSOLETE { */ /* OBSOLETE int controls = 1, growbox = 0; */ /* OBSOLETE GrafPtr oldport; */ /* OBSOLETE */ /* OBSOLETE /* Set the updating window to be the current grafport. */ */ /* OBSOLETE GetPort (&oldport); */ /* OBSOLETE SetPort (win); */ /* OBSOLETE /* recalc_depths(); */ */ /* OBSOLETE BeginUpdate (win); */ /* OBSOLETE if (win == console_window) */ /* OBSOLETE { */ /* OBSOLETE draw_console (); */ /* OBSOLETE controls = 1; */ /* OBSOLETE growbox = 1; */ /* OBSOLETE } */ /* OBSOLETE if (controls) */ /* OBSOLETE UpdateControls (win, win->visRgn); */ /* OBSOLETE if (growbox) */ /* OBSOLETE DrawGrowIcon (win); */ /* OBSOLETE EndUpdate (win); */ /* OBSOLETE SetPort (oldport); */ /* OBSOLETE } */ /* OBSOLETE */ /* OBSOLETE adjust_menus (void) */ /* OBSOLETE { */ /* OBSOLETE } */ /* OBSOLETE */ /* OBSOLETE do_menu_command (long which) */ /* OBSOLETE { */ /* OBSOLETE short menuid, menuitem; */ /* OBSOLETE short itemHit; */ /* OBSOLETE Str255 daname; */ /* OBSOLETE short daRefNum; */ /* OBSOLETE Boolean handledbyda; */ /* OBSOLETE WindowPtr win; */ /* OBSOLETE short ditem; */ /* OBSOLETE int i; */ /* OBSOLETE char cmdbuf[300]; */ /* OBSOLETE */ /* OBSOLETE cmdbuf[0] = '\0'; */ /* OBSOLETE menuid = HiWord (which); */ /* OBSOLETE menuitem = LoWord (which); */ /* OBSOLETE switch (menuid) */ /* OBSOLETE { */ /* OBSOLETE case mApple: */ /* OBSOLETE switch (menuitem) */ /* OBSOLETE { */ /* OBSOLETE case miAbout: */ /* OBSOLETE Alert (128, nil); */ /* OBSOLETE break; */ /* OBSOLETE #if 0 */ /* OBSOLETE case miHelp: */ /* OBSOLETE /* (should pop up help info) */ */ /* OBSOLETE break; */ /* OBSOLETE #endif */ /* OBSOLETE default: */ /* OBSOLETE GetItem (GetMHandle (mApple), menuitem, daname); */ /* OBSOLETE daRefNum = OpenDeskAcc (daname); */ /* OBSOLETE } */ /* OBSOLETE break; */ /* OBSOLETE case mFile: */ /* OBSOLETE switch (menuitem) */ /* OBSOLETE { */ /* OBSOLETE case miFileNew: */ /* OBSOLETE if (console_window == FrontWindow ()) */ /* OBSOLETE { */ /* OBSOLETE close_window (console_window); */ /* OBSOLETE } */ /* OBSOLETE new_console_window (); */ /* OBSOLETE break; */ /* OBSOLETE case miFileOpen: */ /* OBSOLETE SysBeep (20); */ /* OBSOLETE break; */ /* OBSOLETE case miFileQuit: */ /* OBSOLETE ExitToShell (); */ /* OBSOLETE break; */ /* OBSOLETE } */ /* OBSOLETE break; */ /* OBSOLETE case mEdit: */ /* OBSOLETE /* handledbyda = SystemEdit(menuitem-1); */ */ /* OBSOLETE switch (menuitem) */ /* OBSOLETE { */ /* OBSOLETE case miEditCut: */ /* OBSOLETE TECut (console_text); */ /* OBSOLETE break; */ /* OBSOLETE case miEditCopy: */ /* OBSOLETE TECopy (console_text); */ /* OBSOLETE break; */ /* OBSOLETE case miEditPaste: */ /* OBSOLETE TEPaste (console_text); */ /* OBSOLETE break; */ /* OBSOLETE case miEditClear: */ /* OBSOLETE TEDelete (console_text); */ /* OBSOLETE break; */ /* OBSOLETE } */ /* OBSOLETE /* All of these operations need the same postprocessing. */ */ /* OBSOLETE adjust_console_sizes (); */ /* OBSOLETE adjust_console_scrollbars (); */ /* OBSOLETE adjust_console_text (); */ /* OBSOLETE break; */ /* OBSOLETE case mDebug: */ /* OBSOLETE switch (menuitem) */ /* OBSOLETE { */ /* OBSOLETE case miDebugTarget: */ /* OBSOLETE sprintf (cmdbuf, "target %s", "remote"); */ /* OBSOLETE break; */ /* OBSOLETE case miDebugRun: */ /* OBSOLETE sprintf (cmdbuf, "run"); */ /* OBSOLETE break; */ /* OBSOLETE case miDebugContinue: */ /* OBSOLETE sprintf (cmdbuf, "continue"); */ /* OBSOLETE break; */ /* OBSOLETE case miDebugStep: */ /* OBSOLETE sprintf (cmdbuf, "step"); */ /* OBSOLETE break; */ /* OBSOLETE case miDebugNext: */ /* OBSOLETE sprintf (cmdbuf, "next"); */ /* OBSOLETE break; */ /* OBSOLETE } */ /* OBSOLETE break; */ /* OBSOLETE } */ /* OBSOLETE HiliteMenu (0); */ /* OBSOLETE /* Execute a command if one had been given. Do here because a command */ /* OBSOLETE may longjmp before we get a chance to unhilite the menu. */ */ /* OBSOLETE if (strlen (cmdbuf) > 0) */ /* OBSOLETE execute_command (cmdbuf, 0); */ /* OBSOLETE } */ /* OBSOLETE */ /* OBSOLETE char commandbuf[1000]; */ /* OBSOLETE */ /* OBSOLETE do_keyboard_command (int key) */ /* OBSOLETE { */ /* OBSOLETE int startpos, endpos, i, len; */ /* OBSOLETE char *last_newline; */ /* OBSOLETE char buf[10], *text_str, *command, *cmd_start; */ /* OBSOLETE CharsHandle text; */ /* OBSOLETE */ /* OBSOLETE if (key == '\015' || key == '\003') */ /* OBSOLETE { */ /* OBSOLETE text = TEGetText (console_text); */ /* OBSOLETE HLock ((Handle) text); */ /* OBSOLETE text_str = *text; */ /* OBSOLETE startpos = (*console_text)->selStart; */ /* OBSOLETE endpos = (*console_text)->selEnd; */ /* OBSOLETE if (startpos != endpos) */ /* OBSOLETE { */ /* OBSOLETE len = endpos - startpos; */ /* OBSOLETE cmd_start = text_str + startpos; */ /* OBSOLETE } */ /* OBSOLETE else */ /* OBSOLETE { */ /* OBSOLETE for (i = startpos - 1; i >= 0; --i) */ /* OBSOLETE if (text_str[i] == '\015') */ /* OBSOLETE break; */ /* OBSOLETE last_newline = text_str + i; */ /* OBSOLETE len = (text_str + startpos) - 1 - last_newline; */ /* OBSOLETE cmd_start = last_newline + 1; */ /* OBSOLETE } */ /* OBSOLETE if (len > 1000) */ /* OBSOLETE len = 999; */ /* OBSOLETE if (len < 0) */ /* OBSOLETE len = 0; */ /* OBSOLETE strncpy (commandbuf + 1, cmd_start, len); */ /* OBSOLETE commandbuf[1 + len] = 0; */ /* OBSOLETE command = commandbuf + 1; */ /* OBSOLETE HUnlock ((Handle) text); */ /* OBSOLETE commandbuf[0] = strlen (command); */ /* OBSOLETE */ /* OBSOLETE /* Insert a newline and recalculate before doing any command. */ */ /* OBSOLETE key = '\015'; */ /* OBSOLETE TEKey (key, console_text); */ /* OBSOLETE TEInsert (buf, 1, console_text); */ /* OBSOLETE adjust_console_sizes (); */ /* OBSOLETE adjust_console_scrollbars (); */ /* OBSOLETE adjust_console_text (); */ /* OBSOLETE */ /* OBSOLETE if (strlen (command) > 0) */ /* OBSOLETE { */ /* OBSOLETE execute_command (command, 0); */ /* OBSOLETE bpstat_do_actions (&stop_bpstat); */ /* OBSOLETE } */ /* OBSOLETE } */ /* OBSOLETE else */ /* OBSOLETE { */ /* OBSOLETE /* A self-inserting character. This includes delete. */ */ /* OBSOLETE TEKey (key, console_text); */ /* OBSOLETE } */ /* OBSOLETE } */ /* OBSOLETE */ /* OBSOLETE /* Draw all graphical stuff in the console window. */ */ /* OBSOLETE */ /* OBSOLETE draw_console (void) */ /* OBSOLETE { */ /* OBSOLETE SetPort (console_window); */ /* OBSOLETE TEUpdate (&(console_window->portRect), console_text); */ /* OBSOLETE } */ /* OBSOLETE */ /* OBSOLETE /* Cause an update of a given window's entire contents. */ */ /* OBSOLETE */ /* OBSOLETE force_update (WindowPtr win) */ /* OBSOLETE { */ /* OBSOLETE GrafPtr oldport; */ /* OBSOLETE */ /* OBSOLETE if (win == nil) */ /* OBSOLETE return; */ /* OBSOLETE GetPort (&oldport); */ /* OBSOLETE SetPort (win); */ /* OBSOLETE EraseRect (&win->portRect); */ /* OBSOLETE InvalRect (&win->portRect); */ /* OBSOLETE SetPort (oldport); */ /* OBSOLETE } */ /* OBSOLETE */ /* OBSOLETE adjust_console_sizes (void) */ /* OBSOLETE { */ /* OBSOLETE Rect tmprect; */ /* OBSOLETE */ /* OBSOLETE tmprect = console_window->portRect; */ /* OBSOLETE /* Move and size the scrollbar. */ */ /* OBSOLETE MoveControl (console_v_scrollbar, tmprect.right - sbarwid, 0); */ /* OBSOLETE SizeControl (console_v_scrollbar, sbarwid + 1, tmprect.bottom - sbarwid + 1); */ /* OBSOLETE /* Move and size the text. */ */ /* OBSOLETE tmprect.left += 7; */ /* OBSOLETE tmprect.right -= sbarwid; */ /* OBSOLETE tmprect.bottom -= sbarwid; */ /* OBSOLETE InsetRect (&tmprect, 1, 1); */ /* OBSOLETE (*console_text)->destRect = tmprect; */ /* OBSOLETE /* Fiddle bottom of viewrect to be even multiple of text lines. */ */ /* OBSOLETE tmprect.bottom = tmprect.top */ /* OBSOLETE + ((tmprect.bottom - tmprect.top) / (*console_text)->lineHeight) */ /* OBSOLETE * (*console_text)->lineHeight; */ /* OBSOLETE (*console_text)->viewRect = tmprect; */ /* OBSOLETE } */ /* OBSOLETE */ /* OBSOLETE adjust_console_scrollbars (void) */ /* OBSOLETE { */ /* OBSOLETE int lines, newmax, value; */ /* OBSOLETE */ /* OBSOLETE (*console_v_scrollbar)->contrlVis = 0; */ /* OBSOLETE lines = (*console_text)->nLines; */ /* OBSOLETE newmax = lines - (((*console_text)->viewRect.bottom */ /* OBSOLETE - (*console_text)->viewRect.top) */ /* OBSOLETE / (*console_text)->lineHeight); */ /* OBSOLETE if (newmax < 0) */ /* OBSOLETE newmax = 0; */ /* OBSOLETE SetCtlMax (console_v_scrollbar, newmax); */ /* OBSOLETE value = ((*console_text)->viewRect.top - (*console_text)->destRect.top) */ /* OBSOLETE / (*console_text)->lineHeight; */ /* OBSOLETE SetCtlValue (console_v_scrollbar, value); */ /* OBSOLETE (*console_v_scrollbar)->contrlVis = 0xff; */ /* OBSOLETE ShowControl (console_v_scrollbar); */ /* OBSOLETE } */ /* OBSOLETE */ /* OBSOLETE /* Scroll the TE record so that it is consistent with the scrollbar(s). */ */ /* OBSOLETE */ /* OBSOLETE adjust_console_text (void) */ /* OBSOLETE { */ /* OBSOLETE TEScroll (((*console_text)->viewRect.left */ /* OBSOLETE - (*console_text)->destRect.left) */ /* OBSOLETE - 0 /* get h scroll value */ , */ /* OBSOLETE ((((*console_text)->viewRect.top - (*console_text)->destRect.top) */ /* OBSOLETE / (*console_text)->lineHeight) */ /* OBSOLETE - GetCtlValue (console_v_scrollbar)) */ /* OBSOLETE * (*console_text)->lineHeight, */ /* OBSOLETE console_text); */ /* OBSOLETE } */ /* OBSOLETE */ /* OBSOLETE /* Readline substitute. */ */ /* OBSOLETE */ /* OBSOLETE char * */ /* OBSOLETE readline (char *prrompt) */ /* OBSOLETE { */ /* OBSOLETE return gdb_readline (prrompt); */ /* OBSOLETE } */ /* OBSOLETE */ /* OBSOLETE char *rl_completer_word_break_characters; */ /* OBSOLETE */ /* OBSOLETE char *rl_completer_quote_characters; */ /* OBSOLETE */ /* OBSOLETE int (*rl_completion_entry_function) (); */ /* OBSOLETE */ /* OBSOLETE int rl_point; */ /* OBSOLETE */ /* OBSOLETE char *rl_line_buffer; */ /* OBSOLETE */ /* OBSOLETE char *rl_readline_name; */ /* OBSOLETE */ /* OBSOLETE /* History substitute. */ */ /* OBSOLETE */ /* OBSOLETE void */ /* OBSOLETE add_history (char *buf) */ /* OBSOLETE { */ /* OBSOLETE } */ /* OBSOLETE */ /* OBSOLETE void */ /* OBSOLETE stifle_history (int n) */ /* OBSOLETE { */ /* OBSOLETE } */ /* OBSOLETE */ /* OBSOLETE int */ /* OBSOLETE unstifle_history (void) */ /* OBSOLETE { */ /* OBSOLETE } */ /* OBSOLETE */ /* OBSOLETE int */ /* OBSOLETE read_history (char *name) */ /* OBSOLETE { */ /* OBSOLETE } */ /* OBSOLETE */ /* OBSOLETE int */ /* OBSOLETE write_history (char *name) */ /* OBSOLETE { */ /* OBSOLETE } */ /* OBSOLETE */ /* OBSOLETE int */ /* OBSOLETE history_expand (char *x, char **y) */ /* OBSOLETE { */ /* OBSOLETE } */ /* OBSOLETE */ /* OBSOLETE extern HIST_ENTRY * */ /* OBSOLETE history_get (int xxx) */ /* OBSOLETE { */ /* OBSOLETE return NULL; */ /* OBSOLETE } */ /* OBSOLETE */ /* OBSOLETE int history_base; */ /* OBSOLETE */ /* OBSOLETE char * */ /* OBSOLETE filename_completion_function (char *text, char *name) */ /* OBSOLETE { */ /* OBSOLETE return "?"; */ /* OBSOLETE } */ /* OBSOLETE */ /* OBSOLETE char * */ /* OBSOLETE tilde_expand (char *str) */ /* OBSOLETE { */ /* OBSOLETE return xstrdup (str); */ /* OBSOLETE } */ /* OBSOLETE */ /* OBSOLETE /* Modified versions of standard I/O. */ */ /* OBSOLETE */ /* OBSOLETE #undef fprintf */ /* OBSOLETE */ /* OBSOLETE int */ /* OBSOLETE hacked_fprintf (FILE * fp, const char *fmt,...) */ /* OBSOLETE { */ /* OBSOLETE int ret; */ /* OBSOLETE va_list ap; */ /* OBSOLETE */ /* OBSOLETE va_start (ap, fmt); */ /* OBSOLETE if (mac_app && (fp == stdout || fp == stderr)) */ /* OBSOLETE { */ /* OBSOLETE char buf[1000]; */ /* OBSOLETE */ /* OBSOLETE ret = vsprintf (buf, fmt, ap); */ /* OBSOLETE TEInsert (buf, strlen (buf), console_text); */ /* OBSOLETE } */ /* OBSOLETE else */ /* OBSOLETE ret = vfprintf (fp, fmt, ap); */ /* OBSOLETE va_end (ap); */ /* OBSOLETE return ret; */ /* OBSOLETE } */ /* OBSOLETE */ /* OBSOLETE #undef printf */ /* OBSOLETE */ /* OBSOLETE int */ /* OBSOLETE hacked_printf (const char *fmt,...) */ /* OBSOLETE { */ /* OBSOLETE int ret; */ /* OBSOLETE va_list ap; */ /* OBSOLETE */ /* OBSOLETE va_start (ap, fmt); */ /* OBSOLETE ret = hacked_vfprintf (stdout, fmt, ap); */ /* OBSOLETE va_end (ap); */ /* OBSOLETE return ret; */ /* OBSOLETE } */ /* OBSOLETE */ /* OBSOLETE #undef vfprintf */ /* OBSOLETE */ /* OBSOLETE int */ /* OBSOLETE hacked_vfprintf (FILE * fp, const char *format, va_list args) */ /* OBSOLETE { */ /* OBSOLETE if (mac_app && (fp == stdout || fp == stderr)) */ /* OBSOLETE { */ /* OBSOLETE char buf[1000]; */ /* OBSOLETE int ret; */ /* OBSOLETE */ /* OBSOLETE ret = vsprintf (buf, format, args); */ /* OBSOLETE TEInsert (buf, strlen (buf), console_text); */ /* OBSOLETE if (strchr (buf, '\n')) */ /* OBSOLETE { */ /* OBSOLETE adjust_console_sizes (); */ /* OBSOLETE adjust_console_scrollbars (); */ /* OBSOLETE adjust_console_text (); */ /* OBSOLETE } */ /* OBSOLETE return ret; */ /* OBSOLETE } */ /* OBSOLETE else */ /* OBSOLETE return vfprintf (fp, format, args); */ /* OBSOLETE } */ /* OBSOLETE */ /* OBSOLETE #undef fputs */ /* OBSOLETE */ /* OBSOLETE hacked_fputs (const char *s, FILE * fp) */ /* OBSOLETE { */ /* OBSOLETE if (mac_app && (fp == stdout || fp == stderr)) */ /* OBSOLETE { */ /* OBSOLETE TEInsert (s, strlen (s), console_text); */ /* OBSOLETE if (strchr (s, '\n')) */ /* OBSOLETE { */ /* OBSOLETE adjust_console_sizes (); */ /* OBSOLETE adjust_console_scrollbars (); */ /* OBSOLETE adjust_console_text (); */ /* OBSOLETE } */ /* OBSOLETE return 0; */ /* OBSOLETE } */ /* OBSOLETE else */ /* OBSOLETE return fputs (s, fp); */ /* OBSOLETE } */ /* OBSOLETE */ /* OBSOLETE #undef fputc */ /* OBSOLETE */ /* OBSOLETE hacked_fputc (const char c, FILE * fp) */ /* OBSOLETE { */ /* OBSOLETE if (mac_app && (fp == stdout || fp == stderr)) */ /* OBSOLETE { */ /* OBSOLETE char buf[1]; */ /* OBSOLETE */ /* OBSOLETE buf[0] = c; */ /* OBSOLETE TEInsert (buf, 1, console_text); */ /* OBSOLETE if (c == '\n') */ /* OBSOLETE { */ /* OBSOLETE adjust_console_sizes (); */ /* OBSOLETE adjust_console_scrollbars (); */ /* OBSOLETE adjust_console_text (); */ /* OBSOLETE } */ /* OBSOLETE return c; */ /* OBSOLETE } */ /* OBSOLETE else */ /* OBSOLETE return fputc (c, fp); */ /* OBSOLETE } */ /* OBSOLETE */ /* OBSOLETE #undef putc */ /* OBSOLETE */ /* OBSOLETE hacked_putc (const char c, FILE * fp) */ /* OBSOLETE { */ /* OBSOLETE if (mac_app && (fp == stdout || fp == stderr)) */ /* OBSOLETE { */ /* OBSOLETE char buf[1]; */ /* OBSOLETE */ /* OBSOLETE buf[0] = c; */ /* OBSOLETE TEInsert (buf, 1, console_text); */ /* OBSOLETE if (c == '\n') */ /* OBSOLETE { */ /* OBSOLETE adjust_console_sizes (); */ /* OBSOLETE adjust_console_scrollbars (); */ /* OBSOLETE adjust_console_text (); */ /* OBSOLETE } */ /* OBSOLETE return c; */ /* OBSOLETE } */ /* OBSOLETE else */ /* OBSOLETE return fputc (c, fp); */ /* OBSOLETE } */ /* OBSOLETE */ /* OBSOLETE #undef fflush */ /* OBSOLETE */ /* OBSOLETE hacked_fflush (FILE * fp) */ /* OBSOLETE { */ /* OBSOLETE if (mac_app && (fp == stdout || fp == stderr)) */ /* OBSOLETE { */ /* OBSOLETE adjust_console_sizes (); */ /* OBSOLETE adjust_console_scrollbars (); */ /* OBSOLETE adjust_console_text (); */ /* OBSOLETE return 0; */ /* OBSOLETE } */ /* OBSOLETE return fflush (fp); */ /* OBSOLETE } */ /* OBSOLETE */ /* OBSOLETE #undef fgetc */ /* OBSOLETE */ /* OBSOLETE hacked_fgetc (FILE * fp) */ /* OBSOLETE { */ /* OBSOLETE if (mac_app && (fp == stdin)) */ /* OBSOLETE { */ /* OBSOLETE /* Catch any attempts to use this. */ */ /* OBSOLETE DebugStr ("\pShould not be reading from stdin!"); */ /* OBSOLETE return '\n'; */ /* OBSOLETE } */ /* OBSOLETE return fgetc (fp); */ /* OBSOLETE } */