-void request_resize (int, int, int);
-void do_text (Context, int, int, char *, int, unsigned long, int);
-void set_title (char *);
-void set_icon (char *);
-void set_sbar (int, int, int);
-Context get_ctx(void);
-void free_ctx (Context);
-void palette_set (int, int, int, int);
-void palette_reset (void);
-void write_clip (void *, int, int);
-void get_clip (void **, int *);
-void optimised_move (int, int, int);
-void connection_fatal(char *, ...);
-void fatalbox (char *, ...);
-void beep (int);
-void begin_session(void);
-void sys_cursor(int x, int y);
+void request_resize(void *frontend, int, int);
+void do_text(Context, int, int, char *, int, unsigned long, int);
+void do_cursor(Context, int, int, char *, int, unsigned long, int);
+int char_width(Context ctx, int uc);
+#ifdef OPTIMISE_SCROLL
+void do_scroll(void *, int, int, int);
+#endif
+void set_title(void *frontend, char *);
+void set_icon(void *frontend, char *);
+void set_sbar(void *frontend, int, int, int);
+Context get_ctx(void *frontend);
+void free_ctx(Context);
+void palette_set(void *frontend, int, int, int, int);
+void palette_reset(void *frontend);
+void write_aclip(void *frontend, char *, int, int);
+void write_clip(void *frontend, wchar_t *, int, int);
+void get_clip(void *frontend, wchar_t **, int *);
+void optimised_move(void *frontend, int, int, int);
+void set_raw_mouse_mode(void *frontend, int);
+Mouse_Button translate_button(void *frontend, Mouse_Button b);
+void connection_fatal(void *frontend, char *, ...);
+void fatalbox(char *, ...);
+void modalfatalbox(char *, ...);
+#ifdef macintosh
+#pragma noreturn(fatalbox)
+#pragma noreturn(modalfatalbox)
+#endif
+void beep(void *frontend, int);
+void begin_session(void *frontend);
+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);