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