1
0
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:
Simon Tatham
2015-05-15 11:15:42 +01:00
parent fb4fbe1158
commit 89da2ddf56
65 changed files with 559 additions and 450 deletions

View File

@ -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 "