mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-01-10 01:48:00 +00:00
89da2ddf56
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
61 lines
1.2 KiB
C
61 lines
1.2 KiB
C
/*
|
|
* pterm main program.
|
|
*/
|
|
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
|
|
#include "putty.h"
|
|
|
|
const char *const appname = "pterm";
|
|
const int use_event_log = 0; /* pterm doesn't need it */
|
|
const int new_session = 0, saved_sessions = 0; /* or these */
|
|
const int use_pty_argv = TRUE;
|
|
|
|
Backend *select_backend(Conf *conf)
|
|
{
|
|
return &pty_backend;
|
|
}
|
|
|
|
int cfgbox(Conf *conf)
|
|
{
|
|
/*
|
|
* This is a no-op in pterm, except that we'll ensure the
|
|
* protocol is set to -1 to inhibit the useless Connection
|
|
* panel in the config box.
|
|
*/
|
|
conf_set_int(conf, CONF_protocol, -1);
|
|
return 1;
|
|
}
|
|
|
|
void cleanup_exit(int code)
|
|
{
|
|
exit(code);
|
|
}
|
|
|
|
int process_nonoption_arg(const char *arg, Conf *conf, int *allow_launch)
|
|
{
|
|
return 0; /* pterm doesn't have any. */
|
|
}
|
|
|
|
char *make_default_wintitle(char *hostname)
|
|
{
|
|
return dupstr("pterm");
|
|
}
|
|
|
|
int main(int argc, char **argv)
|
|
{
|
|
extern int pt_main(int argc, char **argv);
|
|
extern void pty_pre_init(void); /* declared in pty.c */
|
|
int ret;
|
|
|
|
cmdline_tooltype = TOOLTYPE_NONNETWORK;
|
|
default_protocol = -1;
|
|
|
|
pty_pre_init();
|
|
|
|
ret = pt_main(argc, argv);
|
|
cleanup_exit(ret);
|
|
return ret; /* not reached, but placates optimisers */
|
|
}
|