Add a "Config *" argument to term_init(), and use that instead of the global
[u/mdw/putty] / unix / pterm.c
index b1b98c1..8b28a23 100644 (file)
@@ -1352,7 +1352,7 @@ void beep(void *frontend, int mode)
        gdk_beep();
 }
 
-int CharWidth(Context ctx, int uc)
+int char_width(Context ctx, int uc)
 {
     /*
      * Under X, any fixed-width font really _is_ fixed-width.
@@ -1779,18 +1779,22 @@ int do_cmdline(int argc, char **argv, int do_everything)
     extern char **pty_argv;           /* declared in pty.c */
 
     /*
-     * Macros to make argument handling easier.
+     * Macros to make argument handling easier. Note that because
+     * they need to call `continue', they cannot be contained in
+     * the usual do {...} while (0) wrapper to make them
+     * syntactically single statements; hence it is not legal to
+     * use one of these macros as an unbraced statement between
+     * `if' and `else'.
      */
-#define EXPECTS_ARG do { \
+#define EXPECTS_ARG { \
     if (--argc <= 0) { \
        err = 1; \
        fprintf(stderr, "pterm: %s expects an argument\n", p); \
+        continue; \
     } else \
        val = *++argv; \
-} while (0)
-#define SECOND_PASS_ONLY do { \
-    if (!do_everything) continue; \
-} while (0)
+}
+#define SECOND_PASS_ONLY { if (!do_everything) continue; }
 
     /*
      * TODO:
@@ -2097,7 +2101,7 @@ int main(int argc, char **argv)
     inst->currcursor = inst->textcursor;
     show_mouseptr(inst, 1);
 
-    inst->term = term_init(inst);
+    inst->term = term_init(&cfg, inst);
     inst->logctx = log_init(inst);
     term_provide_logctx(inst->term, inst->logctx);