]> asedeno.scripts.mit.edu Git - PuTTY.git/commitdiff
Backends now seem to work. Pasting still doesn't.
authorBen Harris <bjh21@bjh21.me.uk>
Thu, 18 Mar 1999 00:04:34 +0000 (00:04 +0000)
committerBen Harris <bjh21@bjh21.me.uk>
Thu, 18 Mar 1999 00:04:34 +0000 (00:04 +0000)
macterm.c now uses UPPs for a few things so that it should work if compiled
natively for the PowerPC.  Not tested it yet though.

[originally from svn r122]

macterm.c
testback.c

index a78e2307dbaa93d09cfa4ac44d96d3c6d4130ecc..fd0e1f330aedb541d01a28a1fc36eb95a192ab0d 100644 (file)
--- a/macterm.c
+++ b/macterm.c
@@ -1,4 +1,4 @@
-/* $Id: macterm.c,v 1.1.2.25 1999/03/16 20:27:31 ben Exp $ */
+/* $Id: macterm.c,v 1.1.2.26 1999/03/18 00:04:34 ben Exp $ */
 /*
  * Copyright (c) 1999 Ben Harris
  * All rights reserved.
@@ -35,6 +35,7 @@
 #include <Gestalt.h>
 #include <MacMemory.h>
 #include <MacWindows.h>
+#include <MixedMode.h>
 #include <Palettes.h>
 #include <Quickdraw.h>
 #include <QuickdrawText.h>
@@ -86,6 +87,22 @@ static pascal void mac_set_attr_mask(short, short, GDHandle, long);
 static int mac_keytrans(struct mac_session *, EventRecord *, unsigned char *);
 static void text_click(struct mac_session *, EventRecord *);
 
+#ifdef USES_ROUTINE_DESCRIPTORS
+static RoutineDescriptor mac_scrolltracker_upp =
+    BUILD_ROUTINE_DESCRIPTOR(uppControlActionProcInfo,
+                            (ProcPtr)mac_scrolltracker);
+static RoutineDescriptor do_text_for_device_upp =
+    BUILD_ROUTINE_DESCRIPTOR(uppDeviceLoopDrawingProcInfo,
+                            (ProcPtr)do_text_for_device);
+static RoutineDescriptor mac_set_attr_mask_upp =
+    BUILD_ROUTINE_DESCRIPTOR(uppDeviceLoopDrawingProcInfo,
+                            (ProcPtr)mac_set_attr_mask);
+#else /* not USES_ROUTINE_DESCRIPTORS */
+#define mac_scrolltracker_upp  mac_scrolltracker
+#define do_text_for_device_upp do_text_for_device
+#define mac_set_attr_mask_upp  mac_set_attr_mask
+#endif /* not USES_ROUTINE_DESCRIPTORS */
+
 /*
  * Temporary hack till I get the terminal emulator supporting multiple
  * sessions
@@ -131,7 +148,7 @@ void mac_newsession(void) {
 
     /* This should obviously be initialised by other means */
     mac_loadconfig(&cfg);
-/*    back = &loop_backend; */
+    back = &loop_backend;
     s = smalloc(sizeof(*s));
     memset(s, 0, sizeof(*s));
     onlysession = s;
@@ -285,7 +302,7 @@ void mac_clickterm(WindowPtr window, EventRecord *event) {
          case kControlDownButtonPart:
          case kControlPageUpPart:
          case kControlPageDownPart:
-           TrackControl(control, mouse, mac_scrolltracker);
+           TrackControl(control, mouse, &mac_scrolltracker_upp);
            break;
        }
     } else {
@@ -434,10 +451,7 @@ void mac_keyterm(WindowPtr window, EventRecord *event) {
 
     s = (struct mac_session *)GetWRefCon(window);
     len = mac_keytrans(s, event, buf);
-    /* XXX: I can't get the loopback backend to link, so we'll do this: */
-/*    back->send((char *)buf, len); */
-    for (i = 0; i < len; i++)
-       inbuf_putc(buf[i]);
+    back->send((char *)buf, len);
     term_out();
     term_update();
 }
@@ -687,7 +701,7 @@ void do_text(struct mac_session *s, int x, int y, char *text, int len,
     SetFractEnable(FALSE); /* We want characters on pixel boundaries */
     textrgn = NewRgn();
     RectRgn(textrgn, &a.textrect);
-    DeviceLoop(textrgn, do_text_for_device, (long)&a, 0);
+    DeviceLoop(textrgn, &do_text_for_device_upp, (long)&a, 0);
     DisposeRgn(textrgn);
     /* Tell the window manager about it in case this isn't an update */
     ValidRect(&a.textrect);
@@ -766,7 +780,7 @@ struct mac_session *get_ctx(void) {
     struct mac_session *s = onlysession;
 
     attr_mask = ATTR_INVALID;
-    DeviceLoop(s->window->visRgn, mac_set_attr_mask, (long)s, 0);
+    DeviceLoop(s->window->visRgn, &mac_set_attr_mask_upp, (long)s, 0);
     return s;
 }
 
index fddfb84edffd339a67531cc91efecb7ff4666773..be49761a6451b7efc223671e3b5c495092d4a48e 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: testback.c,v 1.1.2.1 1999/03/07 23:23:38 ben Exp $ */
+/* $Id: testback.c,v 1.1.2.2 1999/03/18 00:04:34 ben Exp $ */
 /*
  * Copyright (c) 1999 Simon Tatham
  * Copyright (c) 1999 Ben Harris
@@ -35,7 +35,7 @@
 static char *null_init(char *, int, char **);
 static int null_msg(void);
 static void null_send(char *, int);
-static void loop_send(*char *, int);
+static void loop_send(char *, int);
 static void null_size(void);
 static void null_special(Telnet_Special);
 
@@ -61,7 +61,7 @@ static void null_send(char *buf, int len) {
 
 }
 
-static void lo_send (char *buf, int len) {
+static void loop_send (char *buf, int len) {
     while (len--) {
        int new_head = (inbuf_head + 1) & INBUF_MASK;
        int c = (unsigned char) *buf;