Reorganised the Unicode layer somewhat: moved luni_send and
[u/mdw/putty] / putty.h
diff --git a/putty.h b/putty.h
index 6c5a3ad..ba99aae 100644 (file)
--- a/putty.h
+++ b/putty.h
@@ -23,17 +23,6 @@ typedef struct terminal_tag Terminal;
 #include "puttyps.h"
 #include "network.h"
 
-/*
- * Global variables. Most modules declare these `extern', but
- * window.c will do `#define PUTTY_DO_GLOBALS' before including this
- * module, and so will get them properly defined.
- */
-#ifdef PUTTY_DO_GLOBALS
-#define GLOBAL
-#else
-#define GLOBAL extern
-#endif
-
 /* Three attribute types: 
  * The ATTRs (normal attributes) are stored with the characters in the main
  * display arrays
@@ -104,9 +93,6 @@ GLOBAL int alt_pressed;
 
 GLOBAL int session_closed;
 
-GLOBAL char *help_path;
-GLOBAL int help_has_contents;
-
 GLOBAL int nsessions;
 GLOBAL char **sessions;
 
@@ -200,6 +186,7 @@ struct backend_tag {
     int (*exitcode) (void *handle);
     int (*sendok) (void *handle);
     int (*ldisc) (void *handle, int);
+    void (*provide_ldisc) (void *handle, void *ldisc);
     /*
      * back->unthrottle() tells the back end that the front end
      * buffer is clearing.
@@ -208,9 +195,6 @@ struct backend_tag {
     int default_port;
 };
 
-GLOBAL Backend *back;
-GLOBAL void *backhandle;
-
 extern struct backend_list {
     int protocol;
     char *name;
@@ -399,8 +383,6 @@ GLOBAL Config cfg;
 GLOBAL int default_protocol;
 GLOBAL int default_port;
 
-GLOBAL Terminal *term;                /* temporary while changes are made */
-
 struct RSAKey;                        /* be a little careful of scope */
 
 /*
@@ -430,7 +412,8 @@ void beep(int);
 void begin_session(void);
 void sys_cursor(int x, int y);
 void request_paste(void);
-void frontend_keypress(void);
+void frontend_keypress(void *frontend);
+void ldisc_update(void *frontend, int echo, int edit);
 #define OPTIMISE_IS_SCROLL 1
 
 void set_iconic(int iconic);
@@ -535,8 +518,14 @@ extern Backend ssh_backend;
 /*
  * Exports from ldisc.c.
  */
+void *ldisc_create(Terminal *, Backend *, void *, void *);
+void ldisc_send(void *handle, char *buf, int len, int interactive);
 
-extern void ldisc_send(char *buf, int len, int interactive);
+/*
+ * Exports from ldiscucs.c.
+ */
+void lpage_send(void *, int codepage, char *buf, int len, int interactive);
+void luni_send(void *, wchar_t * widebuf, int len, int interactive);
 
 /*
  * Exports from sshrand.c.
@@ -565,9 +554,12 @@ extern char ver[];
 #ifndef CP_UTF8
 #define CP_UTF8 65001
 #endif
-void init_ucs_tables(void);
-void lpage_send(int codepage, char *buf, int len, int interactive);
-void luni_send(wchar_t * widebuf, int len, int interactive);
+void init_ucs(void);
+int is_dbcs_leadbyte(int codepage, char byte);
+int mb_to_wc(int codepage, int flags, char *mbstr, int mblen,
+            wchar_t *wcstr, int wclen);
+int wc_to_mb(int codepage, int flags, wchar_t *wcstr, int wclen,
+            char *mbstr, int mblen, char *defchr, int *defused);
 wchar_t xlat_uskbd2cyrllic(int ch);
 int check_compose(int first, int second);
 int decode_codepage(char *cp_name);