projects
/
u
/
mdw
/
putty
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Port forwarding module now passes backend handles around properly.
[u/mdw/putty]
/
unix
/
pterm.c
diff --git
a/unix/pterm.c
b/unix/pterm.c
index
2791693
..
40eccba
100644
(file)
--- a/
unix/pterm.c
+++ b/
unix/pterm.c
@@
-54,6
+54,8
@@
struct gui_data {
char icontitle[sizeof(((Config *)0)->wintitle)];
int master_fd, master_func_id, exited;
void *ldisc;
char icontitle[sizeof(((Config *)0)->wintitle)];
int master_fd, master_func_id, exited;
void *ldisc;
+ Backend *back;
+ void *backhandle;
};
static struct gui_data the_inst;
};
static struct gui_data the_inst;
@@
-887,8
+889,8
@@
void done_with_pty(struct gui_data *inst)
gtk_input_remove(inst->master_func_id);
}
gtk_input_remove(inst->master_func_id);
}
- if (!inst->exited &&
back->exitcode(
backhandle) >= 0) {
- int exitcode =
back->exitcode(
backhandle);
+ if (!inst->exited &&
inst->back->exitcode(inst->
backhandle) >= 0) {
+ int exitcode =
inst->back->exitcode(inst->
backhandle);
int clean;
clean = WIFEXITED(exitcode) && (WEXITSTATUS(exitcode) == 0);
int clean;
clean = WIFEXITED(exitcode) && (WEXITSTATUS(exitcode) == 0);
@@
-941,7
+943,7
@@
gint timer_func(gpointer data)
{
struct gui_data *inst = (struct gui_data *)data;
{
struct gui_data *inst = (struct gui_data *)data;
- if (
back->exitcode(
backhandle) >= 0) {
+ if (
inst->back->exitcode(inst->
backhandle) >= 0) {
/*
* The primary child process died. We could keep the
* terminal open for remaining subprocesses to output to,
/*
* The primary child process died. We could keep the
* terminal open for remaining subprocesses to output to,
@@
-1962,14
+1964,14
@@
int main(int argc, char **argv)
term = term_init();
term = term_init();
- back = &pty_backend;
-
back->init((void *)term, &
backhandle, NULL, 0, NULL, 0);
+
inst->
back = &pty_backend;
+
inst->back->init((void *)term, &inst->
backhandle, NULL, 0, NULL, 0);
- term_provide_resize_fn(term,
back->size,
backhandle);
+ term_provide_resize_fn(term,
inst->back->size, inst->
backhandle);
term_size(term, cfg.height, cfg.width, cfg.savelines);
term_size(term, cfg.height, cfg.width, cfg.savelines);
- inst->ldisc = ldisc_create(term,
back,
backhandle, inst);
+ inst->ldisc = ldisc_create(term,
inst->back, inst->
backhandle, inst);
ldisc_send(inst->ldisc, NULL, 0, 0);/* cause ldisc to notice changes */
inst->master_fd = pty_master_fd;
ldisc_send(inst->ldisc, NULL, 0, 0);/* cause ldisc to notice changes */
inst->master_fd = pty_master_fd;