Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mRemoteNG/PuTTYNG.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--config.c2
-rw-r--r--dialog.c28
-rw-r--r--dialog.h24
-rw-r--r--unix/platform.h4
-rw-r--r--utils/ctrlset_normalise.c1
-rw-r--r--windows/controls.c6
-rw-r--r--windows/help.h4
7 files changed, 37 insertions, 32 deletions
diff --git a/config.c b/config.c
index cca76b29..a2537dbb 100644
--- a/config.c
+++ b/config.c
@@ -1588,7 +1588,7 @@ static void clipboard_selector_handler(dlgcontrol *ctrl, dlgparam *dlg,
}
static void clipboard_control(struct controlset *s, const char *label,
- char shortcut, int percentage, intorptr helpctx,
+ char shortcut, int percentage, HelpCtx helpctx,
int setting, int strsetting)
{
#ifdef NAMED_CLIPBOARDS
diff --git a/dialog.c b/dialog.c
index ce2d0eb2..26a0ff49 100644
--- a/dialog.c
+++ b/dialog.c
@@ -205,7 +205,7 @@ void *ctrl_alloc(struct controlbox *b, size_t size)
}
static dlgcontrol *ctrl_new(struct controlset *s, int type,
- intorptr helpctx, handler_fn handler,
+ HelpCtx helpctx, handler_fn handler,
intorptr context)
{
dlgcontrol *c = snew(dlgcontrol);
@@ -228,7 +228,7 @@ static dlgcontrol *ctrl_new(struct controlset *s, int type,
/* `ncolumns' is followed by that many percentages, as integers. */
dlgcontrol *ctrl_columns(struct controlset *s, int ncolumns, ...)
{
- dlgcontrol *c = ctrl_new(s, CTRL_COLUMNS, P(NULL), NULL, P(NULL));
+ dlgcontrol *c = ctrl_new(s, CTRL_COLUMNS, NULL_HELPCTX, NULL, P(NULL));
assert(s->ncolumns == 1 || ncolumns == 1);
c->columns.ncols = ncolumns;
s->ncolumns = ncolumns;
@@ -248,7 +248,7 @@ dlgcontrol *ctrl_columns(struct controlset *s, int ncolumns, ...)
dlgcontrol *ctrl_editbox(struct controlset *s, const char *label,
char shortcut, int percentage,
- intorptr helpctx, handler_fn handler,
+ HelpCtx helpctx, handler_fn handler,
intorptr context, intorptr context2)
{
dlgcontrol *c = ctrl_new(s, CTRL_EDITBOX, helpctx, handler, context);
@@ -263,7 +263,7 @@ dlgcontrol *ctrl_editbox(struct controlset *s, const char *label,
dlgcontrol *ctrl_combobox(struct controlset *s, const char *label,
char shortcut, int percentage,
- intorptr helpctx, handler_fn handler,
+ HelpCtx helpctx, handler_fn handler,
intorptr context, intorptr context2)
{
dlgcontrol *c = ctrl_new(s, CTRL_EDITBOX, helpctx, handler, context);
@@ -283,7 +283,7 @@ dlgcontrol *ctrl_combobox(struct controlset *s, const char *label,
* is NO_SHORTCUT.
*/
dlgcontrol *ctrl_radiobuttons_fn(struct controlset *s, const char *label,
- char shortcut, int ncolumns, intorptr helpctx,
+ char shortcut, int ncolumns, HelpCtx helpctx,
handler_fn handler, intorptr context, ...)
{
va_list ap;
@@ -329,7 +329,7 @@ dlgcontrol *ctrl_radiobuttons_fn(struct controlset *s, const char *label,
}
dlgcontrol *ctrl_pushbutton(struct controlset *s, const char *label,
- char shortcut, intorptr helpctx,
+ char shortcut, HelpCtx helpctx,
handler_fn handler, intorptr context)
{
dlgcontrol *c = ctrl_new(s, CTRL_BUTTON, helpctx, handler, context);
@@ -341,7 +341,7 @@ dlgcontrol *ctrl_pushbutton(struct controlset *s, const char *label,
}
dlgcontrol *ctrl_listbox(struct controlset *s, const char *label,
- char shortcut, intorptr helpctx,
+ char shortcut, HelpCtx helpctx,
handler_fn handler, intorptr context)
{
dlgcontrol *c = ctrl_new(s, CTRL_LISTBOX, helpctx, handler, context);
@@ -358,7 +358,7 @@ dlgcontrol *ctrl_listbox(struct controlset *s, const char *label,
}
dlgcontrol *ctrl_droplist(struct controlset *s, const char *label,
- char shortcut, int percentage, intorptr helpctx,
+ char shortcut, int percentage, HelpCtx helpctx,
handler_fn handler, intorptr context)
{
dlgcontrol *c = ctrl_new(s, CTRL_LISTBOX, helpctx, handler, context);
@@ -375,7 +375,7 @@ dlgcontrol *ctrl_droplist(struct controlset *s, const char *label,
}
dlgcontrol *ctrl_draglist(struct controlset *s, const char *label,
- char shortcut, intorptr helpctx,
+ char shortcut, HelpCtx helpctx,
handler_fn handler, intorptr context)
{
dlgcontrol *c = ctrl_new(s, CTRL_LISTBOX, helpctx, handler, context);
@@ -393,7 +393,7 @@ dlgcontrol *ctrl_draglist(struct controlset *s, const char *label,
dlgcontrol *ctrl_filesel(struct controlset *s, const char *label,
char shortcut, const char *filter, bool write,
- const char *title, intorptr helpctx,
+ const char *title, HelpCtx helpctx,
handler_fn handler, intorptr context)
{
dlgcontrol *c = ctrl_new(s, CTRL_FILESELECT, helpctx, handler, context);
@@ -406,7 +406,7 @@ dlgcontrol *ctrl_filesel(struct controlset *s, const char *label,
}
dlgcontrol *ctrl_fontsel(struct controlset *s, const char *label,
- char shortcut, intorptr helpctx,
+ char shortcut, HelpCtx helpctx,
handler_fn handler, intorptr context)
{
dlgcontrol *c = ctrl_new(s, CTRL_FONTSELECT, helpctx, handler, context);
@@ -417,13 +417,13 @@ dlgcontrol *ctrl_fontsel(struct controlset *s, const char *label,
dlgcontrol *ctrl_tabdelay(struct controlset *s, dlgcontrol *ctrl)
{
- dlgcontrol *c = ctrl_new(s, CTRL_TABDELAY, P(NULL), NULL, P(NULL));
+ dlgcontrol *c = ctrl_new(s, CTRL_TABDELAY, NULL_HELPCTX, NULL, P(NULL));
c->tabdelay.ctrl = ctrl;
return c;
}
dlgcontrol *ctrl_text(struct controlset *s, const char *text,
- intorptr helpctx)
+ HelpCtx helpctx)
{
dlgcontrol *c = ctrl_new(s, CTRL_TEXT, helpctx, NULL, P(NULL));
c->label = dupstr(text);
@@ -432,7 +432,7 @@ dlgcontrol *ctrl_text(struct controlset *s, const char *text,
}
dlgcontrol *ctrl_checkbox(struct controlset *s, const char *label,
- char shortcut, intorptr helpctx,
+ char shortcut, HelpCtx helpctx,
handler_fn handler, intorptr context)
{
dlgcontrol *c = ctrl_new(s, CTRL_CHECKBOX, helpctx, handler, context);
diff --git a/dialog.h b/dialog.h
index fad78d16..ab933b9a 100644
--- a/dialog.h
+++ b/dialog.h
@@ -161,7 +161,7 @@ struct dlgcontrol {
* platform-specific driver can use to ensure it brings up the
* right piece of help text.
*/
- intorptr helpctx;
+ HelpCtx helpctx;
/*
* Setting this to non-NULL coerces two or more controls to have
* their y-coordinates adjusted so that they can sit alongside
@@ -519,11 +519,11 @@ void *ctrl_alloc_with_free(struct controlbox *b, size_t size,
/* `ncolumns' is followed by that many percentages, as integers. */
dlgcontrol *ctrl_columns(struct controlset *, int ncolumns, ...);
dlgcontrol *ctrl_editbox(struct controlset *, const char *label,
- char shortcut, int percentage, intorptr helpctx,
+ char shortcut, int percentage, HelpCtx helpctx,
handler_fn handler,
intorptr context, intorptr context2);
dlgcontrol *ctrl_combobox(struct controlset *, const char *label,
- char shortcut, int percentage, intorptr helpctx,
+ char shortcut, int percentage, HelpCtx helpctx,
handler_fn handler,
intorptr context, intorptr context2);
/*
@@ -533,33 +533,33 @@ dlgcontrol *ctrl_combobox(struct controlset *, const char *label,
* is NO_SHORTCUT.
*/
dlgcontrol *ctrl_radiobuttons_fn(struct controlset *, const char *label,
- char shortcut, int ncolumns, intorptr helpctx,
+ char shortcut, int ncolumns, HelpCtx helpctx,
handler_fn handler, intorptr context, ...);
#define ctrl_radiobuttons(...) \
ctrl_radiobuttons_fn(__VA_ARGS__, (const char *)NULL)
dlgcontrol *ctrl_pushbutton(struct controlset *, const char *label,
- char shortcut, intorptr helpctx,
+ char shortcut, HelpCtx helpctx,
handler_fn handler, intorptr context);
dlgcontrol *ctrl_listbox(struct controlset *, const char *label,
- char shortcut, intorptr helpctx,
+ char shortcut, HelpCtx helpctx,
handler_fn handler, intorptr context);
dlgcontrol *ctrl_droplist(struct controlset *, const char *label,
- char shortcut, int percentage, intorptr helpctx,
+ char shortcut, int percentage, HelpCtx helpctx,
handler_fn handler, intorptr context);
dlgcontrol *ctrl_draglist(struct controlset *, const char *label,
- char shortcut, intorptr helpctx,
+ char shortcut, HelpCtx helpctx,
handler_fn handler, intorptr context);
dlgcontrol *ctrl_filesel(struct controlset *, const char *label,
char shortcut, const char *filter, bool write,
- const char *title, intorptr helpctx,
+ const char *title, HelpCtx helpctx,
handler_fn handler, intorptr context);
dlgcontrol *ctrl_fontsel(struct controlset *, const char *label,
- char shortcut, intorptr helpctx,
+ char shortcut, HelpCtx helpctx,
handler_fn handler, intorptr context);
dlgcontrol *ctrl_text(struct controlset *, const char *text,
- intorptr helpctx);
+ HelpCtx helpctx);
dlgcontrol *ctrl_checkbox(struct controlset *, const char *label,
- char shortcut, intorptr helpctx,
+ char shortcut, HelpCtx helpctx,
handler_fn handler, intorptr context);
dlgcontrol *ctrl_tabdelay(struct controlset *, dlgcontrol *);
diff --git a/unix/platform.h b/unix/platform.h
index 6a8c7ba3..31da1294 100644
--- a/unix/platform.h
+++ b/unix/platform.h
@@ -78,7 +78,9 @@ extern const struct BackendVtable pty_backend;
/*
* Under GTK, there is no context help available.
*/
-#define HELPCTX(x) P(NULL)
+typedef void *HelpCtx;
+#define NULL_HELPCTX ((HelpCtx)NULL)
+#define HELPCTX(x) NULL
#define FILTER_KEY_FILES NULL /* FIXME */
#define FILTER_DYNLIB_FILES NULL /* FIXME */
diff --git a/utils/ctrlset_normalise.c b/utils/ctrlset_normalise.c
index 46f5f19f..3d922ebb 100644
--- a/utils/ctrlset_normalise.c
+++ b/utils/ctrlset_normalise.c
@@ -2,6 +2,7 @@
* Helper function from the dialog.h mechanism.
*/
+#include "putty.h"
#include "misc.h"
#include "dialog.h"
diff --git a/windows/controls.c b/windows/controls.c
index 7065b7be..22b70c93 100644
--- a/windows/controls.c
+++ b/windows/controls.c
@@ -2131,12 +2131,12 @@ bool winctrl_context_help(struct dlgparam *dp, HWND hwnd, int id)
/*
* This is the Windows front end, so we're allowed to assume
- * `helpctx.p' is a context string.
+ * `helpctx' is a context string.
*/
- if (!c->ctrl || !c->ctrl->helpctx.p)
+ if (!c->ctrl || !c->ctrl->helpctx)
return false; /* no help available for this ctrl */
- launch_help(hwnd, c->ctrl->helpctx.p);
+ launch_help(hwnd, c->ctrl->helpctx);
return true;
}
diff --git a/windows/help.h b/windows/help.h
index 0ab0e050..d0f76496 100644
--- a/windows/help.h
+++ b/windows/help.h
@@ -9,7 +9,9 @@
/* These are used in the cross-platform configuration dialog code. */
-#define HELPCTX(x) P(WINHELP_CTX_ ## x)
+typedef const char *HelpCtx;
+#define NULL_HELPCTX NULL
+#define HELPCTX(x) WINHELP_CTX_ ## x
#define WINHELP_CTX_no_help NULL