-/* $Id: macterm.c,v 1.47 2003/01/14 18:43:26 ben Exp $ */
+/* $Id: macterm.c,v 1.50 2003/01/15 23:30:21 ben Exp $ */
/*
* Copyright (c) 1999 Simon Tatham
* Copyright (c) 1999, 2002 Ben Harris
{
char *errmsg;
+ init_ucs(s);
/* XXX: Own storage management? */
if (HAVE_COLOR_QD())
s->window = GetNewCWindow(wTerminal, NULL, (WindowPtr)-1);
s->window = GetNewWindow(wTerminal, NULL, (WindowPtr)-1);
SetWRefCon(s->window, (long)s);
s->scrollbar = GetNewControl(cVScroll, s->window);
- s->term = term_init(&s->cfg, s);
+ s->term = term_init(&s->cfg, &s->ucsdata, s);
mac_initfont(s);
mac_initpalette(s);
ShowWindow(s->window);
s->next = sesslist;
- s->prev = s->next->prev;
+ s->prev = &sesslist;
if (s->next != NULL)
s->next->prev = &s->next;
sesslist = s;
const char text = 'W';
FontInfo fi;
- fprintf(stderr, "want width = %d\n", wantwidth);
numer.v = denom.v = 1; /* always */
numer.h = denom.h = 1;
for (i = 0; i < 3; i++) {
- fprintf(stderr, "Trying %d:%d\n", numer.h, denom.h);
tmpnumer = numer;
tmpdenom = denom;
if (s->window->grafProcs != NULL)
/* The result of StdTxMeas must be scaled by the factors it returns. */
gotwidth = FixRound(FixMul(gotwidth << 16,
FixRatio(tmpnumer.h, tmpdenom.h)));
- fprintf(stderr, "width = %d\n", gotwidth);
if (gotwidth == wantwidth)
break;
numer.h *= wantwidth;
SetPort(portsave);
}
+void mac_closeterm(WindowPtr window)
+{
+ Session *s = (Session *)GetWRefCon(window);
+
+ /* XXX warn on close */
+ HideWindow(s->window);
+ *s->prev = s->next;
+ s->next->prev = s->prev;
+ ldisc_free(s->ldisc);
+ s->back->free(s->backhandle);
+ log_free(s->logctx);
+ if (s->uni_to_font != NULL)
+ DisposeUnicodeToTextInfo(&s->uni_to_font);
+ term_free(s->term);
+ DisposeWindow(s->window);
+ DisposePalette(s->palette);
+ sfree(s);
+}
+
void mac_activateterm(WindowPtr window, Boolean active) {
Session *s;