X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/putty/blobdiff_plain/1709795fee167cc2d2d423df0161e7963376b910..2856a1b9009fe14b762f61c824d0e8d5cc86b542:/winstuff.h diff --git a/winstuff.h b/winstuff.h index 3bf43bcb..1cbe5b78 100644 --- a/winstuff.h +++ b/winstuff.h @@ -5,6 +5,20 @@ #ifndef PUTTY_WINSTUFF_H #define PUTTY_WINSTUFF_H +#include /* for FILENAME_MAX */ + +struct Filename { + char path[FILENAME_MAX]; +}; +#define f_open(filename, mode) ( fopen((filename).path, (mode)) ) + +struct FontSpec { + char name[64]; + int isbold; + int height; + int charset; +}; + /* * Global variables. Most modules declare these `extern', but * window.c will do `#define PUTTY_DO_GLOBALS' before including this @@ -18,7 +32,12 @@ #endif #endif -typedef struct config_tag Config; /* duplicated from putty.h */ +#ifndef DONE_TYPEDEFS +#define DONE_TYPEDEFS +typedef struct config_tag Config; +typedef struct backend_tag Backend; +typedef struct terminal_tag Terminal; +#endif #define PUTTY_REG_POS "Software\\SimonTatham\\PuTTY" #define PUTTY_REG_PARENT "Software\\SimonTatham" @@ -46,6 +65,20 @@ GLOBAL HWND logbox; GLOBAL HINSTANCE hinst; /* + * Details of the help file. + */ +GLOBAL char *help_path; +GLOBAL int help_has_contents; + +/* + * The terminal and logging context are notionally local to the + * Windows front end, but they must be shared between window.c and + * windlg.c. Likewise the saved-sessions list. + */ +GLOBAL Terminal *term; +GLOBAL void *logctx; + +/* * 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 @@ -54,6 +87,31 @@ GLOBAL HINSTANCE hinst; #define WM_NETEVENT (WM_XUSER + 5) /* + * On Windows, we send MA_2CLK as the only event marking the second + * press of a mouse button. Compare unix.h. + */ +#define MULTICLICK_ONLY_EVENT 1 + +/* + * On Windows, data written to the clipboard must be NUL-terminated. + */ +#define SELECTION_NUL_TERMINATED 1 + +/* + * On Windows, copying to the clipboard terminates lines with CRLF. + */ +#define SEL_NL { 13, 10 } + +/* + * sk_getxdmdata() does not exist under Windows (not that I + * couldn't write it if I wanted to, but I haven't bothered), so + * it's a macro which always returns FALSE. With any luck this will + * cause the compiler to notice it can optimise away the + * implementation of XDM-AUTHORIZATION-1 in x11fwd.c :-) + */ +#define sk_getxdmdata(socket, ip, port) (0) + +/* * Exports from winctrls.c. */ @@ -135,7 +193,8 @@ void progressbar(struct ctlpos *cp, int id); void fwdsetter(struct ctlpos *cp, int listid, char *stext, int sid, char *e1stext, int e1sid, int e1id, char *e2stext, int e2sid, int e2id, - char *btext, int bid); + char *btext, int bid, + char *r1text, int r1id, char *r2text, int r2id); /* * Exports from windlg.c. @@ -154,12 +213,9 @@ void UpdateSizeTip(HWND src, int cx, int cy); void EnableSizeTip(int bEnable); /* - * Unicode and multi-byte character handling stuff. + * Exports from unicode.c. */ -#define is_dbcs_leadbyte(cp, c) IsDBCSLeadByteEx(cp, c) -#define mb_to_wc(cp, flags, mbstr, mblen, wcstr, wclen) \ - MultiByteToWideChar(cp, flags, mbstr, mblen, wcstr, wclen) -#define wc_to_mb(cp, flags, wcstr, wclen, mbstr, mblen, def, defused) \ - WideCharToMultiByte(cp, flags, mbstr, mblen, wcstr, wclen, def,defused) +struct unicode_data; +void init_ucs(Config *, struct unicode_data *); #endif