mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-01-09 17:38:00 +00:00
eefebaaa9e
Nearly every part of the code that ever handles a full backend structure has historically done it using a pair of pointer variables, one pointing at a constant struct full of function pointers, and the other pointing to a 'void *' state object that's passed to each of those. While I'm modernising the rest of the code, this seems like a good time to turn that into the same more or less type-safe and less cumbersome system as I'm using for other parts of the code, such as Socket, Plug, BinaryPacketProtocol and so forth: the Backend structure contains a vtable pointer, and a system of macro wrappers handles dispatching through that vtable.
26 lines
576 B
C
26 lines
576 B
C
/*
|
|
* ldisc.h: defines the Ldisc data structure used by ldisc.c and
|
|
* ldiscucs.c. (Unfortunately it was necessary to split the ldisc
|
|
* module in two, to avoid unnecessarily linking in the Unicode
|
|
* stuff in tools that don't require it.)
|
|
*/
|
|
|
|
#ifndef PUTTY_LDISC_H
|
|
#define PUTTY_LDISC_H
|
|
|
|
struct Ldisc_tag {
|
|
Terminal *term;
|
|
Backend *backend;
|
|
void *frontend;
|
|
|
|
/*
|
|
* Values cached out of conf.
|
|
*/
|
|
int telnet_keyboard, telnet_newline, protocol, localecho, localedit;
|
|
|
|
char *buf;
|
|
int buflen, bufsiz, quotenext;
|
|
};
|
|
|
|
#endif /* PUTTY_LDISC_H */
|