Turned the old `Telnet Command' System-submenu into a more general
[u/mdw/putty] / putty.h
diff --git a/putty.h b/putty.h
index 5116210..d1c89a2 100644 (file)
--- a/putty.h
+++ b/putty.h
@@ -134,6 +134,11 @@ typedef enum {
     TS_EOL
 } Telnet_Special;
 
+struct telnet_special {
+    const char *name;                 /* NULL==end, ""==separator */
+    int code;
+};
+
 typedef enum {
     MBT_NOTHING,
     MBT_LEFT, MBT_MIDDLE, MBT_RIGHT,   /* `raw' button designations */
@@ -272,6 +277,7 @@ struct backend_tag {
     int (*sendbuffer) (void *handle);
     void (*size) (void *handle, int width, int height);
     void (*special) (void *handle, Telnet_Special code);
+    const struct telnet_special *(*get_specials) (void *handle);
     Socket(*socket) (void *handle);
     int (*exitcode) (void *handle);
     int (*sendok) (void *handle);
@@ -380,6 +386,7 @@ struct config_tag {
     int fullscreenonaltenter;
     int scroll_on_key;
     int scroll_on_disp;
+    int erase_to_scrollback;
     int compose_key;
     int ctrlaltkeys;
     char wintitle[256];                       /* initial window title */
@@ -439,7 +446,7 @@ struct config_tag {
     /* SSH bug compatibility modes */
     int sshbug_ignore1, sshbug_plainpw1, sshbug_rsa1,
        sshbug_hmac2, sshbug_derivekey2, sshbug_rsapad2,
-       sshbug_dhgex2;
+       sshbug_dhgex2, sshbug_pksessid2;
     /* Options for pterm. Should split out into platform-dependent part. */
     int stamp_utmp;
     int login_shell;
@@ -518,6 +525,7 @@ void sys_cursor(void *frontend, int x, int y);
 void request_paste(void *frontend);
 void frontend_keypress(void *frontend);
 void ldisc_update(void *frontend, int echo, int edit);
+void update_specials_menu(void *frontend);
 #define OPTIMISE_IS_SCROLL 1
 
 void set_iconic(void *frontend, int iconic);
@@ -545,7 +553,7 @@ void random_destroy_seed(void);
 /*
  * Exports from settings.c.
  */
-void save_settings(char *section, int do_host, Config * cfg);
+char *save_settings(char *section, int do_host, Config * cfg);
 void save_open_settings(void *sesskey, int do_host, Config *cfg);
 void load_settings(char *section, int do_host, Config * cfg);
 void load_open_settings(void *sesskey, int do_host, Config *cfg);
@@ -597,7 +605,7 @@ int term_ldisc(Terminal *, int option);
 void term_copyall(Terminal *);
 void term_reconfig(Terminal *, Config *);
 void term_seen_key_event(Terminal *); 
-int from_backend(void *, int is_stderr, char *data, int len);
+int from_backend(void *, int is_stderr, const char *data, int len);
 void term_provide_resize_fn(Terminal *term,
                            void (*resize_fn)(void *, int, int),
                            void *resize_ctx);
@@ -772,11 +780,19 @@ int cmdline_process_param(char *, char *, int, Config *);
 void cmdline_run_saved(Config *);
 extern char *cmdline_password;
 #define TOOLTYPE_FILETRANSFER 1
+#define TOOLTYPE_NONNETWORK 2
 extern int cmdline_tooltype;
 
 void cmdline_error(char *, ...);
 
 /*
+ * Exports from config.c.
+ */
+struct controlbox;
+void setup_config_box(struct controlbox *b, struct sesslist *sesslist,
+                     int midsession, int protocol);
+
+/*
  * X11 auth mechanisms we know about.
  */
 enum {
@@ -790,8 +806,8 @@ extern const char *const x11_authnames[];  /* declared in x11fwd.c */
 /*
  * Miscellaneous exports from the platform-specific code.
  */
-Filename filename_from_str(char *string);
-char *filename_to_str(Filename fn);
+Filename filename_from_str(const char *string);
+const char *filename_to_str(const Filename *fn);
 int filename_equal(Filename f1, Filename f2);
 int filename_is_null(Filename fn);