projects
/
u
/
mdw
/
putty
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Extra bit of pre-release fiddling for the checklist.
[u/mdw/putty]
/
ldisc.c
diff --git
a/ldisc.c
b/ldisc.c
index
c77b5c8
..
1febff3
100644
(file)
--- a/
ldisc.c
+++ b/
ldisc.c
@@
-12,12
+12,12
@@
#include "terminal.h"
#include "ldisc.h"
#include "terminal.h"
#include "ldisc.h"
-#define ECHOING (ldisc->cfg->localecho ==
LD_YES
|| \
- (ldisc->cfg->localecho ==
LD_BACKEND
&& \
+#define ECHOING (ldisc->cfg->localecho ==
FORCE_ON
|| \
+ (ldisc->cfg->localecho ==
AUTO
&& \
(ldisc->back->ldisc(ldisc->backhandle, LD_ECHO) || \
term_ldisc(ldisc->term, LD_ECHO))))
(ldisc->back->ldisc(ldisc->backhandle, LD_ECHO) || \
term_ldisc(ldisc->term, LD_ECHO))))
-#define EDITING (ldisc->cfg->localedit ==
LD_YES
|| \
- (ldisc->cfg->localedit ==
LD_BACKEND
&& \
+#define EDITING (ldisc->cfg->localedit ==
FORCE_ON
|| \
+ (ldisc->cfg->localedit ==
AUTO
&& \
(ldisc->back->ldisc(ldisc->backhandle, LD_EDIT) || \
term_ldisc(ldisc->term, LD_EDIT))))
(ldisc->back->ldisc(ldisc->backhandle, LD_EDIT) || \
term_ldisc(ldisc->term, LD_EDIT))))
@@
-65,7
+65,7
@@
void *ldisc_create(Config *mycfg, Terminal *term,
Backend *back, void *backhandle,
void *frontend)
{
Backend *back, void *backhandle,
void *frontend)
{
- Ldisc ldisc = s
malloc(sizeof(*ldisc)
);
+ Ldisc ldisc = s
new(struct ldisc_tag
);
ldisc->buf = NULL;
ldisc->buflen = 0;
ldisc->buf = NULL;
ldisc->buflen = 0;
@@
-87,6
+87,19
@@
void *ldisc_create(Config *mycfg, Terminal *term,
return ldisc;
}
return ldisc;
}
+void ldisc_free(void *handle)
+{
+ Ldisc ldisc = (Ldisc) handle;
+
+ if (ldisc->term)
+ ldisc->term->ldisc = NULL;
+ if (ldisc->back)
+ ldisc->back->provide_ldisc(ldisc->backhandle, NULL);
+ if (ldisc->buf)
+ sfree(ldisc->buf);
+ sfree(ldisc);
+}
+
void ldisc_send(void *handle, char *buf, int len, int interactive)
{
Ldisc ldisc = (Ldisc) handle;
void ldisc_send(void *handle, char *buf, int len, int interactive)
{
Ldisc ldisc = (Ldisc) handle;
@@
-151,8
+164,8
@@
void ldisc_send(void *handle, char *buf, int len, int interactive)
bsb(ldisc, plen(ldisc, ldisc->buf[ldisc->buflen - 1]));
ldisc->buflen--;
if (ldisc->buflen > 0 &&
bsb(ldisc, plen(ldisc, ldisc->buf[ldisc->buflen - 1]));
ldisc->buflen--;
if (ldisc->buflen > 0 &&
- isspace(
ldisc->buf[ldisc->buflen -
1]) &&
- !isspace(ldisc->buf[ldisc->buflen]))
+ isspace(
(unsigned char)ldisc->buf[ldisc->buflen-
1]) &&
+ !isspace(
(unsigned char)
ldisc->buf[ldisc->buflen]))
break;
}
break;
break;
}
break;
@@
-248,7
+261,7
@@
void ldisc_send(void *handle, char *buf, int len, int interactive)
default_case:
if (ldisc->buflen >= ldisc->bufsiz) {
ldisc->bufsiz = ldisc->buflen + 256;
default_case:
if (ldisc->buflen >= ldisc->bufsiz) {
ldisc->bufsiz = ldisc->buflen + 256;
- ldisc->buf = sre
alloc(ldisc->buf, ldisc->bufsiz
);
+ ldisc->buf = sre
size(ldisc->buf, ldisc->bufsiz, char
);
}
ldisc->buf[ldisc->buflen++] = c;
if (ECHOING)
}
ldisc->buf[ldisc->buflen++] = c;
if (ECHOING)