From 01778a2d546bb4cebe3a4e5a0bb227deda548182 Mon Sep 17 00:00:00 2001 From: Simon Tatham Date: Wed, 23 Mar 2016 21:58:40 +0000 Subject: [PATCH] Make gtkmain.c contain the actual main(). Instead of main() living in uxputty.c and uxpterm.c, and doing a little bit of setup before calling the larger pt_main() in gtkmain.c, I've now turned things backwards: the big function in gtkmain.c *is* main(), and the small pieces of preliminary setup in uxputty.c and uxpterm.c are now a function called setup() which is called from there. This will allow me to reuse the rest of ux{putty,pterm}.c, i.e. the assorted top-level bits and pieces that distinguish PuTTY from pterm, in the upcoming OS X application that will have its own main(). --- unix/gtkmain.c | 9 ++++++++- unix/uxpterm.c | 11 +++-------- unix/uxputty.c | 8 +------- 3 files changed, 12 insertions(+), 16 deletions(-) diff --git a/unix/gtkmain.c b/unix/gtkmain.c index 5e8b9fe2..eb731ea8 100644 --- a/unix/gtkmain.c +++ b/unix/gtkmain.c @@ -534,13 +534,20 @@ int do_cmdline(int argc, char **argv, int do_everything, int *allow_launch, extern int cfgbox(Conf *conf); -int pt_main(int argc, char **argv) +int main(int argc, char **argv) { Conf *conf; int need_config_box; setlocale(LC_CTYPE, ""); + { + /* Call the function in ux{putty,pterm}.c to do app-type + * specific setup */ + extern void setup(int); + setup(TRUE); /* TRUE means we are a one-session process */ + } + progname = argv[0]; /* diff --git a/unix/uxpterm.c b/unix/uxpterm.c index 3211d45a..0b848bc7 100644 --- a/unix/uxpterm.c +++ b/unix/uxpterm.c @@ -43,18 +43,13 @@ char *make_default_wintitle(char *hostname) return dupstr("pterm"); } -int main(int argc, char **argv) +void setup(int single) { - 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 */ + if (single) + pty_pre_init(); } diff --git a/unix/uxputty.c b/unix/uxputty.c index d0ba55f6..7933130f 100644 --- a/unix/uxputty.c +++ b/unix/uxputty.c @@ -132,11 +132,8 @@ char *platform_get_x_display(void) { const int share_can_be_downstream = TRUE; const int share_can_be_upstream = TRUE; -int main(int argc, char **argv) +void setup(int single) { - extern int pt_main(int argc, char **argv); - int ret; - sk_init(); flags = FLAG_VERBOSE | FLAG_INTERACTIVE; default_protocol = be_default_protocol; @@ -147,7 +144,4 @@ int main(int argc, char **argv) if (b) default_port = b->default_port; } - ret = pt_main(argc, argv); - cleanup_exit(ret); - return ret; /* not reached, but placates optimisers */ } -- 2.45.2