#define ATTR_PASCURS 0x40000000UL /* passive cursor (box) */
#define ATTR_INVALID 0x20000000UL
#define ATTR_WRAPPED 0x10000000UL
+#define ATTR_RIGHTCURS 0x10000000UL /* doubles as cursor-on-RHS indicator */
#define LATTR_NORM 0x00000000UL
#define LATTR_WIDE 0x01000000UL
GLOBAL char *logfile;
/*
+ * Window handles for the dialog boxes that can be running during a
+ * PuTTY session.
+ */
+GLOBAL HWND logbox;
+
+/*
* I've just looked in the windows standard headr files for WM_USER, there
* are hundreds of flags defined using the form WM_USER+123 so I've
* renumbered this NETEVENT value and the two in window.c
VT_XWINDOWS, VT_OEMANSI, VT_OEMONLY, VT_POORMAN
} VT_Mode;
+enum {
+ /*
+ * Line discipline option states: off, on, up to the backend.
+ */
+ LD_YES, LD_NO, LD_BACKEND
+};
+
+enum {
+ /*
+ * Line discipline options which the backend might try to control.
+ */
+ LD_EDIT, /* local line editing */
+ LD_ECHO /* local echo */
+};
+
typedef struct {
char *(*init) (char *host, int port, char **realhost);
void (*send) (char *buf, int len);
void (*special) (Telnet_Special code);
Socket (*socket) (void);
int (*sendok) (void);
+ int (*ldisc) (int);
int default_port;
} Backend;
} backends[];
typedef struct {
- void (*send) (char *buf, int len);
-} Ldisc;
-
-GLOBAL Ldisc *ldisc;
-
-typedef struct {
/* Basic options */
char host[512];
int port;
- enum { PROT_RAW, PROT_TELNET, PROT_SSH } protocol;
+ enum { PROT_RAW, PROT_TELNET, PROT_RLOGIN, PROT_SSH } protocol;
int close_on_exit;
int warn_on_close;
- int ping_interval;
+ int ping_interval; /* in seconds */
/* SSH options */
char remote_cmd[512];
int nopty;
char termspeed[32];
char environmt[1024]; /* VAR\tvalue\0VAR\tvalue\0\0 */
char username[32];
+ char localusername[32];
int rfc_environ;
/* Keyboard options */
int bksp_is_delete;
int alt_f4; /* is it special? */
int alt_space; /* is it special? */
int alt_only; /* is it special? */
- int ldisc_term;
+ int localecho;
+ int localedit;
int alwaysontop;
int scroll_on_key;
int scroll_on_disp;
int dec_om;
int wrap_mode;
int lfhascr;
+ int cursor_type; /* 0=block 1=underline 2=vertical */
int blink_cur;
int beep;
int scrollbar;
int fontcharset;
char logfilename[FILENAME_MAX];
int logtype;
+ int hide_mouseptr;
/* Colour options */
int try_palette;
int bold_colour;
int xlat_88592w1250;
int xlat_88592cp852;
int xlat_capslockcyr;
+ /* X11 forwarding */
+ int x11_forward;
+ char x11_display[128];
} Config;
/*
void term_blink(int set_cursor);
void term_paste(void);
void term_nopaste(void);
+int term_ldisc(int option);
void from_backend(int is_stderr, char *data, int len);
void logfopen (void);
void logfclose (void);
extern Backend raw_backend;
/*
+ * Exports from rlogin.c.
+ */
+
+extern Backend rlogin_backend;
+
+/*
* Exports from telnet.c.
*/
* Exports from ldisc.c.
*/
-extern Ldisc ldisc_term, ldisc_simple;
+extern void ldisc_send(char *buf, int len);
/*
* Exports from sshrand.c.