From d9158b5edab734d47841b4bc6c9dcbfa1389a861 Mon Sep 17 00:00:00 2001 From: ben Date: Fri, 28 Mar 2003 00:50:04 +0000 Subject: [PATCH] Tidy up dlg_editbox_set() and implemen dlg_editbox_get() for System 7. git-svn-id: svn://svn.tartarus.org/sgt/putty@3011 cda61777-01e9-0310-a592-d414129be87e --- mac/macctrls.c | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/mac/macctrls.c b/mac/macctrls.c index 4aa9ce92..1d2527ec 100644 --- a/mac/macctrls.c +++ b/mac/macctrls.c @@ -1,4 +1,4 @@ -/* $Id: macctrls.c,v 1.16 2003/03/28 00:06:17 ben Exp $ */ +/* $Id: macctrls.c,v 1.17 2003/03/28 00:50:04 ben Exp $ */ /* * Copyright (c) 2003 Ben Harris * All rights reserved. @@ -1069,17 +1069,16 @@ void dlg_editbox_set(union control *ctrl, void *dlg, char const *text) assert(mc->generic.type == MACCTRL_EDITBOX); GetPort(&saveport); SetPort((GrafPtr)(GetWindowPort(mcs->window))); - if (mac_gestalts.apprvers >= 0x100) { + if (mac_gestalts.apprvers >= 0x100) SetControlData(mc->editbox.tbctrl, kControlEntireControl, ctrl->editbox.password ? kControlEditTextPasswordTag : kControlEditTextTextTag, strlen(text), text); - } else { + else TESetText(text, strlen(text), (TEHandle)(*mc->editbox.tbctrl)->contrlData); - } - DrawOneControl(mc->editbox.tbctrl); + DrawOneControl(mc->editbox.tbctrl); SetPort(saveport); } @@ -1087,6 +1086,7 @@ void dlg_editbox_get(union control *ctrl, void *dlg, char *buffer, int length) { struct macctrls *mcs = dlg; union macctrl *mc = findbyctrl(mcs, ctrl); + TEHandle te; Size olen; assert(mc != NULL); @@ -1099,14 +1099,17 @@ void dlg_editbox_get(union control *ctrl, void *dlg, char *buffer, int length) length - 1, buffer, &olen) != noErr) olen = 0; if (olen > length - 1) - buffer[length - 1] = '\0'; - else - buffer[olen] = '\0'; - buffer[olen] = '\0'; - } else - buffer[0] = '\0'; + olen = length - 1; + } else { + te = (TEHandle)(*mc->editbox.tbctrl)->contrlData; + olen = (*te)->teLength; + if (olen > length - 1) + olen = length - 1; + memcpy(buffer, *(*te)->hText, olen); + } + buffer[olen] = '\0'; fprintf(stderr, "dlg_editbox_get: %s\n", buffer); -}; +} /* -- 2.11.0