mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-07-01 19:42:48 -05:00
Giant const-correctness patch of doom!
Having found a lot of unfixed constness issues in recent development, I thought perhaps it was time to get proactive, so I compiled the whole codebase with -Wwrite-strings. That turned up a huge load of const problems, which I've fixed in this commit: the Unix build now goes cleanly through with -Wwrite-strings, and the Windows build is as close as I could get it (there are some lingering issues due to occasional Windows API functions like AcquireCredentialsHandle not having the right constness). Notable fallout beyond the purely mechanical changing of types: - the stuff saved by cmdline_save_param() is now explicitly dupstr()ed, and freed in cmdline_run_saved. - I couldn't make both string arguments to cmdline_process_param() const, because it intentionally writes to one of them in the case where it's the argument to -pw (in the vain hope of being at least slightly friendly to 'ps'), so elsewhere I had to temporarily dupstr() something for the sake of passing it to that function - I had to invent a silly parallel version of const_cmp() so I could pass const string literals in to lookup functions. - stripslashes() in pscp.c and psftp.c has the annoying strchr nature
This commit is contained in:
@ -1055,7 +1055,7 @@ static void set_transient_window_pos(GtkWidget *parent, GtkWidget *child)
|
||||
gtk_widget_set_uposition(GTK_WIDGET(child), dx, dy);
|
||||
}
|
||||
|
||||
void dlg_error_msg(void *dlg, char *msg)
|
||||
void dlg_error_msg(void *dlg, const char *msg)
|
||||
{
|
||||
struct dlgparam *dp = (struct dlgparam *)dlg;
|
||||
GtkWidget *window, *hbox, *text, *ok;
|
||||
@ -1998,7 +1998,7 @@ GtkWidget *layout_ctrls(struct dlgparam *dp, struct Shortcuts *scs,
|
||||
{
|
||||
GtkWidget *ww;
|
||||
GtkRequisition req;
|
||||
char *browsebtn =
|
||||
const char *browsebtn =
|
||||
(ctrl->generic.type == CTRL_FILESELECT ?
|
||||
"Browse..." : "Change...");
|
||||
|
||||
@ -3138,7 +3138,8 @@ static void messagebox_handler(union control *ctrl, void *dlg,
|
||||
if (event == EVENT_ACTION)
|
||||
dlg_end(dlg, ctrl->generic.context.i);
|
||||
}
|
||||
int messagebox(GtkWidget *parentwin, char *title, char *msg, int minwid, ...)
|
||||
int messagebox(GtkWidget *parentwin, const char *title, const char *msg,
|
||||
int minwid, ...)
|
||||
{
|
||||
GtkWidget *window, *w0, *w1;
|
||||
struct controlbox *ctrlbox;
|
||||
@ -3235,7 +3236,7 @@ int messagebox(GtkWidget *parentwin, char *title, char *msg, int minwid, ...)
|
||||
return dp.retval;
|
||||
}
|
||||
|
||||
int string_width(char *text)
|
||||
int string_width(const char *text)
|
||||
{
|
||||
GtkWidget *label = gtk_label_new(text);
|
||||
GtkRequisition req;
|
||||
@ -3355,21 +3356,21 @@ void old_keyfile_warning(void)
|
||||
*/
|
||||
}
|
||||
|
||||
void fatal_message_box(void *window, char *msg)
|
||||
void fatal_message_box(void *window, const char *msg)
|
||||
{
|
||||
messagebox(window, "PuTTY Fatal Error", msg,
|
||||
string_width("REASONABLY LONG LINE OF TEXT FOR BASIC SANITY"),
|
||||
"OK", 'o', 1, 1, NULL);
|
||||
}
|
||||
|
||||
void nonfatal_message_box(void *window, char *msg)
|
||||
void nonfatal_message_box(void *window, const char *msg)
|
||||
{
|
||||
messagebox(window, "PuTTY Error", msg,
|
||||
string_width("REASONABLY LONG LINE OF TEXT FOR BASIC SANITY"),
|
||||
"OK", 'o', 1, 1, NULL);
|
||||
}
|
||||
|
||||
void fatalbox(char *p, ...)
|
||||
void fatalbox(const char *p, ...)
|
||||
{
|
||||
va_list ap;
|
||||
char *msg;
|
||||
@ -3381,7 +3382,7 @@ void fatalbox(char *p, ...)
|
||||
cleanup_exit(1);
|
||||
}
|
||||
|
||||
void nonfatal(char *p, ...)
|
||||
void nonfatal(const char *p, ...)
|
||||
{
|
||||
va_list ap;
|
||||
char *msg;
|
||||
@ -3404,7 +3405,7 @@ static void licence_clicked(GtkButton *button, gpointer data)
|
||||
{
|
||||
char *title;
|
||||
|
||||
char *licence =
|
||||
const char *licence =
|
||||
"Copyright 1997-2015 Simon Tatham.\n\n"
|
||||
|
||||
"Portions copyright Robert de Bath, Joris van Rantwijk, Delian "
|
||||
|
Reference in New Issue
Block a user