Gitweb links:

...log 
http://git.netsurf-browser.org/netsurf.git/shortlog/6ff3238825f21e0abec37b1d485318648d824cab
...commit 
http://git.netsurf-browser.org/netsurf.git/commit/6ff3238825f21e0abec37b1d485318648d824cab
...tree 
http://git.netsurf-browser.org/netsurf.git/tree/6ff3238825f21e0abec37b1d485318648d824cab

The branch, master has been updated
       via  6ff3238825f21e0abec37b1d485318648d824cab (commit)
      from  4fcb6eb3016de68b4a742cd6b4d2248550529deb (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commitdiff 
http://git.netsurf-browser.org/netsurf.git/commit/?id=6ff3238825f21e0abec37b1d485318648d824cab
commit 6ff3238825f21e0abec37b1d485318648d824cab
Author: Vincent Sanders <[email protected]>
Commit: Vincent Sanders <[email protected]>

    centralise monkey output generation

diff --git a/frontends/gtk/login.c b/frontends/gtk/login.c
index 02951aa..184ef29 100644
--- a/frontends/gtk/login.c
+++ b/frontends/gtk/login.c
@@ -258,12 +258,15 @@ create_login_window(nsurl *url,
 
 
 /* exported function documented in gtk/login.h */
-nserror gui_401login_open(nsurl *url, const char *realm,
-               const char *username, const char *password,
-               nserror (*cb)(const char *username,
+nserror
+gui_401login_open(nsurl *url,
+                 const char *realm,
+                 const char *username,
+                 const char *password,
+                 nserror (*cb)(const char *username,
                                const char *password,
                                void *pw),
-               void *cbpw)
+                 void *cbpw)
 {
        lwc_string *host;
        nserror res;
diff --git a/frontends/monkey/401login.c b/frontends/monkey/401login.c
index 58335dd..76550d8 100644
--- a/frontends/monkey/401login.c
+++ b/frontends/monkey/401login.c
@@ -21,6 +21,7 @@
 #include <stdlib.h>
 #include <stdio.h>
 
+#include "monkey/output.h"
 #include "monkey/401login.h"
 
 typedef struct monkey401 {
@@ -34,12 +35,16 @@ typedef struct monkey401 {
 static monkey401_t *m4_ring = NULL;
 static uint32_t m4_ctr = 0;
 
-nserror gui_401login_open(nsurl *url, const char *realm,
-               const char *username, const char *password,
-               nserror (*cb)(const char *username,
+
+nserror
+gui_401login_open(nsurl *url,
+                 const char *realm,
+                 const char *username,
+                 const char *password,
+                 nserror (*cb)(const char *username,
                                const char *password,
                                void *pw),
-               void *cbpw)
+                 void *cbpw)
 {
        monkey401_t *m4t = calloc(sizeof(*m4t), 1);
        if (m4t == NULL) {
@@ -51,7 +56,7 @@ nserror gui_401login_open(nsurl *url, const char *realm,
   
        RING_INSERT(m4_ring, m4t);
   
-       fprintf(stdout, "401LOGIN OPEN M4 %u URL %s REALM %s\n",
+       moutf(MOUT_LOGIN, "OPEN LWIN %u URL %s REALM %s",
                m4t->num, nsurl_access(url), realm);
 
        return NSERROR_OK;
diff --git a/frontends/monkey/Makefile b/frontends/monkey/Makefile
index 27d6610..d49a6c5 100644
--- a/frontends/monkey/Makefile
+++ b/frontends/monkey/Makefile
@@ -39,7 +39,7 @@ endif
 # ----------------------------------------------------------------------------
 
 # S_MONKEY are sources purely for the MONKEY build
-S_FRONTEND := main.c filetype.c schedule.c bitmap.c plot.c browser.c \
+S_FRONTEND := main.c output.c filetype.c schedule.c bitmap.c plot.c browser.c \
        download.c 401login.c cert.c layout.c dispatch.c fetch.c
 
 
diff --git a/frontends/monkey/bitmap.c b/frontends/monkey/bitmap.c
index 83b8566..e53b565 100644
--- a/frontends/monkey/bitmap.c
+++ b/frontends/monkey/bitmap.c
@@ -23,6 +23,7 @@
 #include "utils/errors.h"
 #include "netsurf/bitmap.h"
 
+#include "monkey/output.h"
 #include "monkey/bitmap.h"
 
 struct bitmap {
@@ -127,7 +128,7 @@ static int bitmap_get_height(void *bitmap)
 static nserror bitmap_render(struct bitmap *bitmap,
                             struct hlcache_handle *content)
 {
-       fprintf(stdout, "GENERIC BITMAP RENDER\n");
+       moutf(MOUT_GENERIC, "BITMAP RENDER");
        return NSERROR_OK;
 }
 
diff --git a/frontends/monkey/browser.c b/frontends/monkey/browser.c
index 1fbbbf0..b93d491 100644
--- a/frontends/monkey/browser.c
+++ b/frontends/monkey/browser.c
@@ -32,6 +32,7 @@
 #include "netsurf/browser_window.h"
 #include "netsurf/plotters.h"
 
+#include "monkey/output.h"
 #include "monkey/browser.h"
 #include "monkey/plot.h"
 
@@ -42,7 +43,7 @@ static struct gui_window *gw_ring = NULL;
 /* exported function documented in monkey/browser.h */
 nserror monkey_warn_user(const char *warning, const char *detail)
 {
-       fprintf(stderr, "WARN %s %s\n", warning, detail);
+       moutf(MOUT_WARNING, "%s %s", warning, detail);
        return NSERROR_OK;
 }
 
@@ -50,14 +51,14 @@ struct gui_window *
 monkey_find_window_by_num(uint32_t win_num)
 {
        struct gui_window *ret = NULL;
-  
+
        RING_ITERATE_START(struct gui_window, gw_ring, c_ring) {
                if (c_ring->win_num == win_num) {
                        ret = c_ring;
                        RING_ITERATE_STOP(gw_ring, c_ring);
                }
        } RING_ITERATE_END(gw_ring, c_ring);
-  
+
        return ret;
 }
 
@@ -77,28 +78,31 @@ gui_window_create(struct browser_window *bw,
        struct gui_window *ret = calloc(sizeof(*ret), 1);
        if (ret == NULL)
                return NULL;
-  
+
        ret->win_num = win_ctr++;
        ret->bw = bw;
-  
+
        ret->width = 800;
        ret->height = 600;
-  
-       fprintf(stdout, "WINDOW NEW WIN %u FOR %p EXISTING %p NEWTAB %s CLONE 
%s\n",
-               ret->win_num, bw, existing, flags & GW_CREATE_TAB ? "TRUE" : 
"FALSE",
-               flags & GW_CREATE_CLONE ? "TRUE" : "FALSE");
-       fprintf(stdout, "WINDOW SIZE WIN %u WIDTH %d HEIGHT %d\n",
-               ret->win_num, ret->width, ret->height);
-  
+
+       moutf(MOUT_WINDOW,
+             "NEW WIN %u FOR %p EXISTING %p NEWTAB %s CLONE %s",
+             ret->win_num, bw, existing,
+             flags & GW_CREATE_TAB ? "TRUE" : "FALSE",
+             flags & GW_CREATE_CLONE ? "TRUE" : "FALSE");
+       moutf(MOUT_WINDOW,
+             "SIZE WIN %u WIDTH %d HEIGHT %d",
+             ret->win_num, ret->width, ret->height);
+
        RING_INSERT(gw_ring, ret);
-  
+
        return ret;
 }
 
 static void
 gui_window_destroy(struct gui_window *g)
 {
-       fprintf(stdout, "WINDOW DESTROY WIN %u\n", g->win_num);
+       moutf(MOUT_WINDOW, "DESTROY WIN %u", g->win_num);
        RING_REMOVE(gw_ring, g);
        free(g);
 }
@@ -106,7 +110,7 @@ gui_window_destroy(struct gui_window *g)
 static void
 gui_window_set_title(struct gui_window *g, const char *title)
 {
-       fprintf(stdout, "WINDOW TITLE WIN %u STR %s\n", g->win_num, title);
+       moutf(MOUT_WINDOW, "TITLE WIN %u STR %s", g->win_num, title);
 }
 
 /**
@@ -120,9 +124,9 @@ gui_window_set_title(struct gui_window *g, const char 
*title)
  */
 static nserror
 gui_window_get_dimensions(struct gui_window *g, int *width, int *height,
-                          bool scaled)
+                         bool scaled)
 {
-       fprintf(stdout, "WINDOW GET_DIMENSIONS WIN %u WIDTH %d HEIGHT %d\n",
+       moutf(MOUT_WINDOW, "GET_DIMENSIONS WIN %u WIDTH %d HEIGHT %d",
                g->win_num, g->width, g->height);
        *width = g->width;
        *height = g->height;
@@ -133,25 +137,25 @@ gui_window_get_dimensions(struct gui_window *g, int 
*width, int *height,
 static void
 gui_window_new_content(struct gui_window *g)
 {
-       fprintf(stdout, "WINDOW NEW_CONTENT WIN %u\n", g->win_num);
+       moutf(MOUT_WINDOW, "NEW_CONTENT WIN %u", g->win_num);
 }
 
 static void
 gui_window_set_icon(struct gui_window *g, struct hlcache_handle *icon)
 {
-       fprintf(stdout, "WINDOW NEW_ICON WIN %u\n", g->win_num);
+       moutf(MOUT_WINDOW, "NEW_ICON WIN %u", g->win_num);
 }
 
 static void
 gui_window_start_throbber(struct gui_window *g)
 {
-       fprintf(stdout, "WINDOW START_THROBBER WIN %u\n", g->win_num);
+       moutf(MOUT_WINDOW, "START_THROBBER WIN %u", g->win_num);
 }
 
 static void
 gui_window_stop_throbber(struct gui_window *g)
 {
-       fprintf(stdout, "WINDOW STOP_THROBBER WIN %u\n", g->win_num);
+       moutf(MOUT_WINDOW, "STOP_THROBBER WIN %u", g->win_num);
 }
 
 
@@ -171,7 +175,7 @@ gui_window_set_scroll(struct gui_window *gw, const struct 
rect *rect)
        gw->scrollx = rect->x0;
        gw->scrolly = rect->y0;
 
-       fprintf(stdout, "WINDOW SET_SCROLL WIN %u X %d Y %d\n",
+       moutf(MOUT_WINDOW, "SET_SCROLL WIN %u X %d Y %d",
                gw->win_num, rect->x0, rect->y0);
        return NSERROR_OK;
 }
@@ -187,15 +191,14 @@ gui_window_set_scroll(struct gui_window *gw, const struct 
rect *rect)
 static nserror
 monkey_window_invalidate_area(struct gui_window *gw, const struct rect *rect)
 {
-       fprintf(stdout, "WINDOW INVALIDATE_AREA WIN %u", gw->win_num);
-
        if (rect != NULL) {
-               fprintf(stdout,
-                       " X %d Y %d WIDTH %d HEIGHT %d\n",
-                       rect->x0, rect->y0,
-                       (rect->x1 - rect->x0), (rect->y1 - rect->y0));
+               moutf(MOUT_WINDOW,
+                     "INVALIDATE_AREA WIN %u X %d Y %d WIDTH %d HEIGHT %d",
+                     gw->win_num,
+                     rect->x0, rect->y0,
+                     (rect->x1 - rect->x0), (rect->y1 - rect->y0));
        } else {
-               fprintf(stdout," ALL\n");
+               moutf(MOUT_WINDOW, "INVALIDATE_AREA WIN %u ALL", gw->win_num);
        }
 
        return NSERROR_OK;
@@ -209,21 +212,21 @@ gui_window_update_extent(struct gui_window *g)
        if (browser_window_get_extents(g->bw, false, &width, &height) != 
NSERROR_OK)
                return;
 
-       fprintf(stdout, "WINDOW UPDATE_EXTENT WIN %u WIDTH %d HEIGHT %d\n", 
-               g->win_num, width, height);
+       moutf(MOUT_WINDOW, "UPDATE_EXTENT WIN %u WIDTH %d HEIGHT %d",
+             g->win_num, width, height);
 }
 
 static void
 gui_window_set_status(struct gui_window *g, const char *text)
 {
-       fprintf(stdout, "WINDOW SET_STATUS WIN %u STR %s\n", g->win_num, text);
+       moutf(MOUT_WINDOW, "SET_STATUS WIN %u STR %s", g->win_num, text);
 }
 
 static void
 gui_window_set_pointer(struct gui_window *g, gui_pointer_shape shape)
 {
        const char *ptr_name = "UNKNOWN";
-  
+
        switch (shape) {
        case GUI_POINTER_POINT:
                ptr_name = "POINT";
@@ -285,21 +288,24 @@ gui_window_set_pointer(struct gui_window *g, 
gui_pointer_shape shape)
        default:
                break;
        }
-       fprintf(stdout, "WINDOW SET_POINTER WIN %u POINTER %s\n", g->win_num, 
ptr_name);
+
+       moutf(MOUT_WINDOW, "SET_POINTER WIN %u POINTER %s",
+             g->win_num, ptr_name);
 }
 
 static nserror
 gui_window_set_url(struct gui_window *g, nsurl *url)
 {
-       fprintf(stdout, "WINDOW SET_URL WIN %u URL %s\n", g->win_num, 
nsurl_access(url));
+       moutf(MOUT_WINDOW, "SET_URL WIN %u URL %s",
+             g->win_num, nsurl_access(url));
        return NSERROR_OK;
 }
 
 static bool
 gui_window_get_scroll(struct gui_window *g, int *sx, int *sy)
 {
-       fprintf(stdout, "WINDOW GET_SCROLL WIN %u X %d Y %d\n",
-               g->win_num, g->scrollx, g->scrolly);
+       moutf(MOUT_WINDOW, "GET_SCROLL WIN %u X %d Y %d",
+             g->win_num, g->scrollx, g->scrolly);
        *sx = g->scrollx;
        *sy = g->scrolly;
        return true;
@@ -308,7 +314,7 @@ gui_window_get_scroll(struct gui_window *g, int *sx, int 
*sy)
 static bool
 gui_window_scroll_start(struct gui_window *g)
 {
-       fprintf(stdout, "WINDOW SCROLL_START WIN %u\n", g->win_num);
+       moutf(MOUT_WINDOW, "SCROLL_START WIN %u", g->win_num);
        g->scrollx = g->scrolly = 0;
        return true;
 }
@@ -318,28 +324,28 @@ static void
 gui_window_place_caret(struct gui_window *g, int x, int y, int height,
                       const struct rect *clip)
 {
-       fprintf(stdout, "WINDOW PLACE_CARET WIN %u X %d Y %d HEIGHT %d\n",
-               g->win_num, x, y, height);
+       moutf(MOUT_WINDOW, "PLACE_CARET WIN %u X %d Y %d HEIGHT %d",
+             g->win_num, x, y, height);
 }
 
 static void
 gui_window_remove_caret(struct gui_window *g)
 {
-       fprintf(stdout, "WINDOW REMOVE_CARET WIN %u\n", g->win_num);
+       moutf(MOUT_WINDOW, "REMOVE_CARET WIN %u", g->win_num);
 }
 
 static bool
 gui_window_drag_start(struct gui_window *g, gui_drag_type type,
-                      const struct rect *rect)
+                     const struct rect *rect)
 {
-       fprintf(stdout, "WINDOW SCROLL_START WIN %u TYPE %i\n", g->win_num, 
type);
+       moutf(MOUT_WINDOW, "SCROLL_START WIN %u TYPE %i", g->win_num, type);
        return false;
 }
 
 static nserror
 gui_window_save_link(struct gui_window *g, nsurl *url, const char *title)
 {
-       fprintf(stdout, "WINDOW SAVE_LINK WIN %u URL %s TITLE %s\n",
+       moutf(MOUT_WINDOW, "SAVE_LINK WIN %u URL %s TITLE %s",
                g->win_num, nsurl_access(url), title);
        return NSERROR_OK;
 }
@@ -380,11 +386,11 @@ monkey_window_handle_destroy(int argc, char **argv)
 {
        struct gui_window *gw;
        uint32_t nr = atoi((argc > 2) ? argv[2] : "-1");
-  
+
        gw = monkey_find_window_by_num(nr);
-  
+
        if (gw == NULL) {
-               fprintf(stdout, "ERROR WINDOW NUM BAD\n");
+               moutf(MOUT_ERROR, "WINDOW NUM BAD");
        } else {
                browser_window_destroy(gw->bw);
        }
@@ -397,16 +403,16 @@ monkey_window_handle_go(int argc, char **argv)
        nsurl *url;
        nsurl *ref_url = NULL;
        nserror error;
-  
+
        if (argc < 4 || argc > 5) {
-               fprintf(stdout, "ERROR WINDOW GO ARGS BAD\n");
+               moutf(MOUT_ERROR, "WINDOW GO ARGS BAD");
                return;
        }
-  
+
        gw = monkey_find_window_by_num(atoi(argv[2]));
-  
+
        if (gw == NULL) {
-               fprintf(stdout, "ERROR WINDOW NUM BAD\n");
+               moutf(MOUT_ERROR, "WINDOW NUM BAD");
                return;
        }
 
@@ -446,35 +452,35 @@ monkey_window_handle_redraw(int argc, char **argv)
                .background_images = true,
                .plot = monkey_plotters
        };
-  
+
        if (argc != 3 && argc != 7) {
-               fprintf(stdout, "ERROR WINDOW REDRAW ARGS BAD\n");
+               moutf(MOUT_ERROR, "WINDOW REDRAW ARGS BAD");
                return;
        }
 
        gw = monkey_find_window_by_num(atoi(argv[2]));
-  
+
        if (gw == NULL) {
-               fprintf(stdout, "ERROR WINDOW NUM BAD\n");
+               moutf(MOUT_ERROR, "WINDOW NUM BAD");
                return;
        }
-  
+
        clip.x0 = 0;
        clip.y0 = 0;
        clip.x1 = gw->width;
        clip.y1 = gw->height;
-  
+
        if (argc == 7) {
                clip.x0 = atoi(argv[3]);
                clip.y0 = atoi(argv[4]);
                clip.x1 = atoi(argv[5]);
                clip.y1 = atoi(argv[6]);
        }
-  
+
        NSLOG(netsurf, INFO, "Issue redraw");
-       fprintf(stdout, "WINDOW REDRAW WIN %d START\n", atoi(argv[2]));
-       browser_window_redraw(gw->bw, gw->scrollx, gw->scrolly, &clip, &ctx);  
-       fprintf(stdout, "WINDOW REDRAW WIN %d STOP\n", atoi(argv[2]));
+       moutf(MOUT_WINDOW, "REDRAW WIN %d START", atoi(argv[2]));
+       browser_window_redraw(gw->bw, gw->scrollx, gw->scrolly, &clip, &ctx);
+       moutf(MOUT_ERROR, "REDRAW WIN %d STOP", atoi(argv[2]));
 }
 
 static void
@@ -482,13 +488,13 @@ monkey_window_handle_reload(int argc, char **argv)
 {
        struct gui_window *gw;
        if (argc != 3 && argc != 4) {
-               fprintf(stdout, "ERROR WINDOW RELOAD ARGS BAD\n");
+               moutf(MOUT_ERROR, "WINDOW RELOAD ARGS BAD\n");
        }
-  
+
        gw = monkey_find_window_by_num(atoi(argv[2]));
-  
+
        if (gw == NULL) {
-               fprintf(stdout, "ERROR WINDOW NUM BAD\n");
+               moutf(MOUT_ERROR, "WINDOW NUM BAD");
        } else {
                browser_window_reload(gw->bw, argc == 4);
        }
@@ -500,7 +506,7 @@ monkey_window_handle_command(int argc, char **argv)
 {
        if (argc == 1)
                return;
-  
+
        if (strcmp(argv[1], "NEW") == 0) {
                monkey_window_handle_new(argc, argv);
        } else if (strcmp(argv[1], "DESTROY") == 0) {
@@ -512,9 +518,9 @@ monkey_window_handle_command(int argc, char **argv)
        } else if (strcmp(argv[1], "RELOAD") == 0) {
                monkey_window_handle_reload(argc, argv);
        } else {
-               fprintf(stdout, "ERROR WINDOW COMMAND UNKNOWN %s\n", argv[1]);
+               moutf(MOUT_ERROR, "WINDOW COMMAND UNKNOWN %s\n", argv[1]);
        }
-  
+
 }
 
 static struct gui_window_table window_table = {
diff --git a/frontends/monkey/cert.c b/frontends/monkey/cert.c
index a199755..0827ff0 100644
--- a/frontends/monkey/cert.c
+++ b/frontends/monkey/cert.c
@@ -22,6 +22,7 @@
 #include "utils/ring.h"
 #include "utils/nsurl.h"
 
+#include "monkey/output.h"
 #include "monkey/cert.h"
 
 typedef struct monkey_cert {
@@ -36,9 +37,10 @@ static monkey_cert_t *cert_ring = NULL;
 static uint32_t cert_ctr = 0;
 
 nserror
-gui_cert_verify(nsurl *url, const struct ssl_cert_info *certs, 
-                unsigned long num, nserror (*cb)(bool proceed, void *pw),
-                void *cbpw)
+gui_cert_verify(nsurl *url,
+               const struct ssl_cert_info *certs,
+               unsigned long num, nserror (*cb)(bool proceed, void *pw),
+               void *cbpw)
 {
        monkey_cert_t *m4t = calloc(sizeof(*m4t), 1);
        if (m4t == NULL) {
@@ -47,13 +49,11 @@ gui_cert_verify(nsurl *url, const struct ssl_cert_info 
*certs,
        m4t->cb = cb;
        m4t->pw = cbpw;
        m4t->num = cert_ctr++;
-  
+
        RING_INSERT(cert_ring, m4t);
-  
-       fprintf(stdout, "SSLCERT VERIFY CERT %u URL %s\n",
-               m4t->num, nsurl_access(url));
+
+       moutf(MOUT_SSLCERT, "VERIFY CWIN %u URL %s",
+             m4t->num, nsurl_access(url));
 
        return NSERROR_OK;
 }
-
-
diff --git a/frontends/monkey/download.c b/frontends/monkey/download.c
index 5c9ce1b..1c516e3 100644
--- a/frontends/monkey/download.c
+++ b/frontends/monkey/download.c
@@ -25,6 +25,7 @@
 #include "netsurf/download.h"
 #include "desktop/download.h"
 
+#include "monkey/output.h"
 #include "monkey/browser.h"
 
 static uint32_t dwin_ctr = 0;
@@ -51,8 +52,8 @@ gui_download_window_create(download_context *ctx,
   
        RING_INSERT(dw_ring, ret);
   
-       fprintf(stdout, "DOWNLOAD_WINDOW CREATE DWIN %u WIN %u\n", 
-               ret->dwin_num, parent->win_num);
+       moutf(MOUT_DOWNLOAD, "CREATE DWIN %u WIN %u",
+             ret->dwin_num, parent->win_num);
   
        return ret;
 }
@@ -61,7 +62,7 @@ static nserror
 gui_download_window_data(struct gui_download_window *dw, 
                          const char *data, unsigned int size)
 {
-       fprintf(stdout, "DOWNLOAD_WINDOW DATA DWIN %u SIZE %u DATA %s\n",
+       moutf(MOUT_DOWNLOAD, "DATA DWIN %u SIZE %u DATA %s",
                dw->dwin_num, size, data);
        return NSERROR_OK;
 }
@@ -70,15 +71,13 @@ static void
 gui_download_window_error(struct gui_download_window *dw,
                           const char *error_msg)
 {
-       fprintf(stdout, "DOWNLOAD_WINDOW ERROR DWIN %u ERROR %s\n",
-               dw->dwin_num, error_msg);
+       moutf(MOUT_DOWNLOAD, "ERROR DWIN %u ERROR %s", dw->dwin_num, error_msg);
 }
 
 static void
 gui_download_window_done(struct gui_download_window *dw)
 {
-       fprintf(stdout, "DOWNLOAD_WINDOW DONE DWIN %u\n",
-               dw->dwin_num);
+       moutf(MOUT_DOWNLOAD, "DONE DWIN %u", dw->dwin_num);
        RING_REMOVE(dw_ring, dw);
        free(dw);
 }
diff --git a/frontends/monkey/main.c b/frontends/monkey/main.c
index 53cde5a..7ef4208 100644
--- a/frontends/monkey/main.c
+++ b/frontends/monkey/main.c
@@ -37,6 +37,7 @@
 #include "netsurf/cookie_db.h"
 #include "content/fetch.h"
 
+#include "monkey/output.h"
 #include "monkey/dispatch.h"
 #include "monkey/browser.h"
 #include "monkey/cert.h"
@@ -66,7 +67,7 @@ static bool monkey_done = false;
  */
 static void die(const char * const error)
 {
-       fprintf(stderr, "DIE %s\n", error);
+       moutf(MOUT_DIE, "%s", error);
        exit(EXIT_FAILURE);
 }
 
@@ -199,7 +200,7 @@ static void monkey_quit(void)
 
 static nserror gui_launch_url(struct nsurl *url)
 {
-       fprintf(stdout, "GENERIC LAUNCH URL %s\n", nsurl_access(url));
+       moutf(MOUT_GENERIC, "LAUNCH URL %s", nsurl_access(url));
        return NSERROR_OK;
 }
 
@@ -279,7 +280,7 @@ static void monkey_run(void)
                switch (schedtm) {
                case -1:
                        NSLOG(netsurf, INFO, "Iterate blocking");
-                       fprintf(stdout, "GENERIC POLL BLOCKING\n");
+                       moutf(MOUT_GENERIC, "POLL BLOCKING");
                        timeout = NULL;
                        break;
 
@@ -292,7 +293,7 @@ static void monkey_run(void)
 
                default:
                        NSLOG(netsurf, INFO, "Iterate non-blocking");
-                       fprintf(stdout, "GENERIC POLL TIMED %d\n", schedtm);
+                       moutf(MOUT_GENERIC, "POLL TIMED %d", schedtm);
                        tv.tv_sec = schedtm / 1000; /* miliseconds to seconds */
                        tv.tv_usec = (schedtm % 1000) * 1000; /* remainder to 
microseconds */
                        timeout = &tv;
@@ -392,14 +393,14 @@ main(int argc, char **argv)
                die("options handler failed to register");
        }
 
-       fprintf(stdout, "GENERIC STARTED\n");
+       moutf(MOUT_GENERIC, "STARTED");
        monkey_run();
 
-       fprintf(stdout, "GENERIC CLOSING_DOWN\n");
+       moutf(MOUT_GENERIC, "CLOSING_DOWN");
        monkey_kill_browser_windows();
 
        netsurf_exit();
-       fprintf(stdout, "GENERIC FINISHED\n");
+       moutf(MOUT_GENERIC, "FINISHED");
 
        /* finalise options */
        nsoption_finalise(nsoptions, nsoptions_default);
diff --git a/frontends/monkey/output.c b/frontends/monkey/output.c
new file mode 100644
index 0000000..a3390ea
--- /dev/null
+++ b/frontends/monkey/output.c
@@ -0,0 +1,54 @@
+/*
+ * Copyright 2018 Vincent Sanders <[email protected]>
+ *
+ * This file is part of NetSurf, http://www.netsurf-browser.org/
+ *
+ * NetSurf is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * NetSurf is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <stdio.h>
+#include <stdarg.h>
+
+#include "monkey/output.h"
+
+/**
+ * output type prefixes
+ */
+static const char *type_text[]={
+       "DIE",
+       "ERROR",
+       "WARN",
+       "GENERIC",
+       "WINDOW",
+       "LOGIN",
+       "SSLCERT",
+       "DOWNLOAD",
+       "PLOT",
+};
+
+/* exported interface documented in monkey/output.h */
+int moutf(enum monkey_output_type mout_type, const char *fmt, ...)
+{
+       va_list ap;
+       int res;
+
+       res = fprintf(stdout, "%s ", type_text[mout_type]);
+
+       va_start(ap, fmt);
+       res += vfprintf(stdout, fmt, ap);
+       va_end(ap);
+
+       fputc('\n', stdout);
+
+       return res + 1;
+}
diff --git a/frontends/monkey/output.h b/frontends/monkey/output.h
new file mode 100644
index 0000000..5e77ab3
--- /dev/null
+++ b/frontends/monkey/output.h
@@ -0,0 +1,36 @@
+/*
+ * Copyright 2018 Vincent Sanders <[email protected]>
+ *
+ * This file is part of NetSurf, http://www.netsurf-browser.org/
+ *
+ * NetSurf is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * NetSurf is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef NS_MONKEY_OUTPUT_H
+#define NS_MONKEY_OUTPUT_H
+
+enum monkey_output_type {
+       MOUT_DIE,
+       MOUT_ERROR,
+       MOUT_WARNING,
+       MOUT_GENERIC,
+       MOUT_WINDOW,
+       MOUT_LOGIN,
+       MOUT_SSLCERT,
+       MOUT_DOWNLOAD,
+       MOUT_PLOT,
+};
+
+int moutf(enum monkey_output_type mout_type, const char *fmt, ...);
+
+#endif
diff --git a/frontends/monkey/plot.c b/frontends/monkey/plot.c
index 2fc9a3c..7a84c4a 100644
--- a/frontends/monkey/plot.c
+++ b/frontends/monkey/plot.c
@@ -22,6 +22,8 @@
 #include "utils/errors.h"
 #include "netsurf/plotters.h"
 
+#include "monkey/output.h"
+
 /**
  * \brief Sets a clip rectangle for subsequent plot operations.
  *
@@ -33,8 +35,7 @@
 static nserror
 monkey_plot_clip(const struct redraw_context *ctx, const struct rect *clip)
 {
-       fprintf(stdout,
-               "PLOT CLIP X0 %d Y0 %d X1 %d Y1 %d\n",
+       moutf(MOUT_PLOT, "CLIP X0 %d Y0 %d X1 %d Y1 %d",
                clip->x0, clip->y0, clip->x1, clip->y1);
        return NSERROR_OK;
 }
@@ -61,9 +62,8 @@ monkey_plot_arc(const struct redraw_context *ctx,
                const plot_style_t *style,
                int x, int y, int radius, int angle1, int angle2)
 {
-       fprintf(stdout,
-               "PLOT ARC X %d Y %d RADIUS %d ANGLE1 %d ANGLE2 %d\n",
-               x, y, radius, angle1, angle2);
+       moutf(MOUT_PLOT, "ARC X %d Y %d RADIUS %d ANGLE1 %d ANGLE2 %d",
+             x, y, radius, angle1, angle2);
        return NSERROR_OK;
 }
 
@@ -85,9 +85,7 @@ monkey_plot_disc(const struct redraw_context *ctx,
                 const plot_style_t *style,
                 int x, int y, int radius)
 {
-       fprintf(stdout,
-               "PLOT DISC X %d Y %d RADIUS %d\n",
-               x, y, radius);
+       moutf(MOUT_PLOT, "DISC X %d Y %d RADIUS %d", x, y, radius);
        return NSERROR_OK;
 }
 
@@ -108,8 +106,7 @@ monkey_plot_line(const struct redraw_context *ctx,
                 const plot_style_t *style,
                 const struct rect *line)
 {
-       fprintf(stdout,
-               "PLOT LINE X0 %d Y0 %d X1 %d Y1 %d\n",
+       moutf(MOUT_PLOT, "LINE X0 %d Y0 %d X1 %d Y1 %d",
                line->x0, line->y0, line->x1, line->y1);
        return NSERROR_OK;
 }
@@ -133,8 +130,7 @@ monkey_plot_rectangle(const struct redraw_context *ctx,
                      const plot_style_t *style,
                      const struct rect *rect)
 {
-       fprintf(stdout,
-               "PLOT RECT X0 %d Y0 %d X1 %d Y1 %d\n",
+       moutf(MOUT_PLOT, "RECT X0 %d Y0 %d X1 %d Y1 %d",
                rect->x0, rect->y0, rect->x1, rect->y1);
        return NSERROR_OK;
 }
@@ -160,9 +156,7 @@ monkey_plot_polygon(const struct redraw_context *ctx,
                    const int *p,
                    unsigned int n)
 {
-       fprintf(stdout,
-               "PLOT POLYGON VERTICIES %d\n",
-               n);
+       moutf(MOUT_PLOT, "POLYGON VERTICIES %d", n);
        return NSERROR_OK;
 }
 
@@ -187,8 +181,7 @@ monkey_plot_path(const struct redraw_context *ctx,
                 unsigned int n,
                 const float transform[6])
 {
-       fprintf(stdout,
-               "PLOT PATH VERTICIES %d WIDTH %f\n",
+       moutf(MOUT_PLOT, "PATH VERTICIES %d WIDTH %f",
                n, plot_style_fixed_to_float(pstyle->stroke_width));
        return NSERROR_OK;
 }
@@ -227,9 +220,8 @@ monkey_plot_bitmap(const struct redraw_context *ctx,
                   colour bg,
                   bitmap_flags_t flags)
 {
-       fprintf(stdout,
-               "PLOT BITMAP X %d Y %d WIDTH %d HEIGHT %d\n",
-               x, y, width, height);
+       moutf(MOUT_PLOT, "BITMAP X %d Y %d WIDTH %d HEIGHT %d",
+             x, y, width, height);
        return NSERROR_OK;
 }
 
@@ -253,9 +245,7 @@ monkey_plot_text(const struct redraw_context *ctx,
                 const char *text,
                 size_t length)
 {
-       fprintf(stdout,
-               "PLOT TEXT X %d Y %d STR %*s\n",
-               x, y, (int)length, text);
+       moutf(MOUT_PLOT, "TEXT X %d Y %d STR %*s\n", x, y, (int)length, text);
        return NSERROR_OK;
 }
 


-----------------------------------------------------------------------

Summary of changes:
 frontends/gtk/login.c                          |   11 +-
 frontends/monkey/401login.c                    |   15 ++-
 frontends/monkey/Makefile                      |    2 +-
 frontends/monkey/bitmap.c                      |    3 +-
 frontends/monkey/browser.c                     |  144 ++++++++++++------------
 frontends/monkey/cert.c                        |   18 +--
 frontends/monkey/download.c                    |   13 +--
 frontends/monkey/main.c                        |   15 +--
 frontends/{riscos/assert.c => monkey/output.c} |   48 ++++----
 desktop/version.c => frontends/monkey/output.h |   24 ++--
 frontends/monkey/plot.c                        |   36 +++---
 11 files changed, 175 insertions(+), 154 deletions(-)
 copy frontends/{riscos/assert.c => monkey/output.c} (55%)
 copy desktop/version.c => frontends/monkey/output.h (72%)

diff --git a/frontends/gtk/login.c b/frontends/gtk/login.c
index 02951aa..184ef29 100644
--- a/frontends/gtk/login.c
+++ b/frontends/gtk/login.c
@@ -258,12 +258,15 @@ create_login_window(nsurl *url,
 
 
 /* exported function documented in gtk/login.h */
-nserror gui_401login_open(nsurl *url, const char *realm,
-               const char *username, const char *password,
-               nserror (*cb)(const char *username,
+nserror
+gui_401login_open(nsurl *url,
+                 const char *realm,
+                 const char *username,
+                 const char *password,
+                 nserror (*cb)(const char *username,
                                const char *password,
                                void *pw),
-               void *cbpw)
+                 void *cbpw)
 {
        lwc_string *host;
        nserror res;
diff --git a/frontends/monkey/401login.c b/frontends/monkey/401login.c
index 58335dd..76550d8 100644
--- a/frontends/monkey/401login.c
+++ b/frontends/monkey/401login.c
@@ -21,6 +21,7 @@
 #include <stdlib.h>
 #include <stdio.h>
 
+#include "monkey/output.h"
 #include "monkey/401login.h"
 
 typedef struct monkey401 {
@@ -34,12 +35,16 @@ typedef struct monkey401 {
 static monkey401_t *m4_ring = NULL;
 static uint32_t m4_ctr = 0;
 
-nserror gui_401login_open(nsurl *url, const char *realm,
-               const char *username, const char *password,
-               nserror (*cb)(const char *username,
+
+nserror
+gui_401login_open(nsurl *url,
+                 const char *realm,
+                 const char *username,
+                 const char *password,
+                 nserror (*cb)(const char *username,
                                const char *password,
                                void *pw),
-               void *cbpw)
+                 void *cbpw)
 {
        monkey401_t *m4t = calloc(sizeof(*m4t), 1);
        if (m4t == NULL) {
@@ -51,7 +56,7 @@ nserror gui_401login_open(nsurl *url, const char *realm,
   
        RING_INSERT(m4_ring, m4t);
   
-       fprintf(stdout, "401LOGIN OPEN M4 %u URL %s REALM %s\n",
+       moutf(MOUT_LOGIN, "OPEN LWIN %u URL %s REALM %s",
                m4t->num, nsurl_access(url), realm);
 
        return NSERROR_OK;
diff --git a/frontends/monkey/Makefile b/frontends/monkey/Makefile
index 27d6610..d49a6c5 100644
--- a/frontends/monkey/Makefile
+++ b/frontends/monkey/Makefile
@@ -39,7 +39,7 @@ endif
 # ----------------------------------------------------------------------------
 
 # S_MONKEY are sources purely for the MONKEY build
-S_FRONTEND := main.c filetype.c schedule.c bitmap.c plot.c browser.c \
+S_FRONTEND := main.c output.c filetype.c schedule.c bitmap.c plot.c browser.c \
        download.c 401login.c cert.c layout.c dispatch.c fetch.c
 
 
diff --git a/frontends/monkey/bitmap.c b/frontends/monkey/bitmap.c
index 83b8566..e53b565 100644
--- a/frontends/monkey/bitmap.c
+++ b/frontends/monkey/bitmap.c
@@ -23,6 +23,7 @@
 #include "utils/errors.h"
 #include "netsurf/bitmap.h"
 
+#include "monkey/output.h"
 #include "monkey/bitmap.h"
 
 struct bitmap {
@@ -127,7 +128,7 @@ static int bitmap_get_height(void *bitmap)
 static nserror bitmap_render(struct bitmap *bitmap,
                             struct hlcache_handle *content)
 {
-       fprintf(stdout, "GENERIC BITMAP RENDER\n");
+       moutf(MOUT_GENERIC, "BITMAP RENDER");
        return NSERROR_OK;
 }
 
diff --git a/frontends/monkey/browser.c b/frontends/monkey/browser.c
index 1fbbbf0..b93d491 100644
--- a/frontends/monkey/browser.c
+++ b/frontends/monkey/browser.c
@@ -32,6 +32,7 @@
 #include "netsurf/browser_window.h"
 #include "netsurf/plotters.h"
 
+#include "monkey/output.h"
 #include "monkey/browser.h"
 #include "monkey/plot.h"
 
@@ -42,7 +43,7 @@ static struct gui_window *gw_ring = NULL;
 /* exported function documented in monkey/browser.h */
 nserror monkey_warn_user(const char *warning, const char *detail)
 {
-       fprintf(stderr, "WARN %s %s\n", warning, detail);
+       moutf(MOUT_WARNING, "%s %s", warning, detail);
        return NSERROR_OK;
 }
 
@@ -50,14 +51,14 @@ struct gui_window *
 monkey_find_window_by_num(uint32_t win_num)
 {
        struct gui_window *ret = NULL;
-  
+
        RING_ITERATE_START(struct gui_window, gw_ring, c_ring) {
                if (c_ring->win_num == win_num) {
                        ret = c_ring;
                        RING_ITERATE_STOP(gw_ring, c_ring);
                }
        } RING_ITERATE_END(gw_ring, c_ring);
-  
+
        return ret;
 }
 
@@ -77,28 +78,31 @@ gui_window_create(struct browser_window *bw,
        struct gui_window *ret = calloc(sizeof(*ret), 1);
        if (ret == NULL)
                return NULL;
-  
+
        ret->win_num = win_ctr++;
        ret->bw = bw;
-  
+
        ret->width = 800;
        ret->height = 600;
-  
-       fprintf(stdout, "WINDOW NEW WIN %u FOR %p EXISTING %p NEWTAB %s CLONE 
%s\n",
-               ret->win_num, bw, existing, flags & GW_CREATE_TAB ? "TRUE" : 
"FALSE",
-               flags & GW_CREATE_CLONE ? "TRUE" : "FALSE");
-       fprintf(stdout, "WINDOW SIZE WIN %u WIDTH %d HEIGHT %d\n",
-               ret->win_num, ret->width, ret->height);
-  
+
+       moutf(MOUT_WINDOW,
+             "NEW WIN %u FOR %p EXISTING %p NEWTAB %s CLONE %s",
+             ret->win_num, bw, existing,
+             flags & GW_CREATE_TAB ? "TRUE" : "FALSE",
+             flags & GW_CREATE_CLONE ? "TRUE" : "FALSE");
+       moutf(MOUT_WINDOW,
+             "SIZE WIN %u WIDTH %d HEIGHT %d",
+             ret->win_num, ret->width, ret->height);
+
        RING_INSERT(gw_ring, ret);
-  
+
        return ret;
 }
 
 static void
 gui_window_destroy(struct gui_window *g)
 {
-       fprintf(stdout, "WINDOW DESTROY WIN %u\n", g->win_num);
+       moutf(MOUT_WINDOW, "DESTROY WIN %u", g->win_num);
        RING_REMOVE(gw_ring, g);
        free(g);
 }
@@ -106,7 +110,7 @@ gui_window_destroy(struct gui_window *g)
 static void
 gui_window_set_title(struct gui_window *g, const char *title)
 {
-       fprintf(stdout, "WINDOW TITLE WIN %u STR %s\n", g->win_num, title);
+       moutf(MOUT_WINDOW, "TITLE WIN %u STR %s", g->win_num, title);
 }
 
 /**
@@ -120,9 +124,9 @@ gui_window_set_title(struct gui_window *g, const char 
*title)
  */
 static nserror
 gui_window_get_dimensions(struct gui_window *g, int *width, int *height,
-                          bool scaled)
+                         bool scaled)
 {
-       fprintf(stdout, "WINDOW GET_DIMENSIONS WIN %u WIDTH %d HEIGHT %d\n",
+       moutf(MOUT_WINDOW, "GET_DIMENSIONS WIN %u WIDTH %d HEIGHT %d",
                g->win_num, g->width, g->height);
        *width = g->width;
        *height = g->height;
@@ -133,25 +137,25 @@ gui_window_get_dimensions(struct gui_window *g, int 
*width, int *height,
 static void
 gui_window_new_content(struct gui_window *g)
 {
-       fprintf(stdout, "WINDOW NEW_CONTENT WIN %u\n", g->win_num);
+       moutf(MOUT_WINDOW, "NEW_CONTENT WIN %u", g->win_num);
 }
 
 static void
 gui_window_set_icon(struct gui_window *g, struct hlcache_handle *icon)
 {
-       fprintf(stdout, "WINDOW NEW_ICON WIN %u\n", g->win_num);
+       moutf(MOUT_WINDOW, "NEW_ICON WIN %u", g->win_num);
 }
 
 static void
 gui_window_start_throbber(struct gui_window *g)
 {
-       fprintf(stdout, "WINDOW START_THROBBER WIN %u\n", g->win_num);
+       moutf(MOUT_WINDOW, "START_THROBBER WIN %u", g->win_num);
 }
 
 static void
 gui_window_stop_throbber(struct gui_window *g)
 {
-       fprintf(stdout, "WINDOW STOP_THROBBER WIN %u\n", g->win_num);
+       moutf(MOUT_WINDOW, "STOP_THROBBER WIN %u", g->win_num);
 }
 
 
@@ -171,7 +175,7 @@ gui_window_set_scroll(struct gui_window *gw, const struct 
rect *rect)
        gw->scrollx = rect->x0;
        gw->scrolly = rect->y0;
 
-       fprintf(stdout, "WINDOW SET_SCROLL WIN %u X %d Y %d\n",
+       moutf(MOUT_WINDOW, "SET_SCROLL WIN %u X %d Y %d",
                gw->win_num, rect->x0, rect->y0);
        return NSERROR_OK;
 }
@@ -187,15 +191,14 @@ gui_window_set_scroll(struct gui_window *gw, const struct 
rect *rect)
 static nserror
 monkey_window_invalidate_area(struct gui_window *gw, const struct rect *rect)
 {
-       fprintf(stdout, "WINDOW INVALIDATE_AREA WIN %u", gw->win_num);
-
        if (rect != NULL) {
-               fprintf(stdout,
-                       " X %d Y %d WIDTH %d HEIGHT %d\n",
-                       rect->x0, rect->y0,
-                       (rect->x1 - rect->x0), (rect->y1 - rect->y0));
+               moutf(MOUT_WINDOW,
+                     "INVALIDATE_AREA WIN %u X %d Y %d WIDTH %d HEIGHT %d",
+                     gw->win_num,
+                     rect->x0, rect->y0,
+                     (rect->x1 - rect->x0), (rect->y1 - rect->y0));
        } else {
-               fprintf(stdout," ALL\n");
+               moutf(MOUT_WINDOW, "INVALIDATE_AREA WIN %u ALL", gw->win_num);
        }
 
        return NSERROR_OK;
@@ -209,21 +212,21 @@ gui_window_update_extent(struct gui_window *g)
        if (browser_window_get_extents(g->bw, false, &width, &height) != 
NSERROR_OK)
                return;
 
-       fprintf(stdout, "WINDOW UPDATE_EXTENT WIN %u WIDTH %d HEIGHT %d\n", 
-               g->win_num, width, height);
+       moutf(MOUT_WINDOW, "UPDATE_EXTENT WIN %u WIDTH %d HEIGHT %d",
+             g->win_num, width, height);
 }
 
 static void
 gui_window_set_status(struct gui_window *g, const char *text)
 {
-       fprintf(stdout, "WINDOW SET_STATUS WIN %u STR %s\n", g->win_num, text);
+       moutf(MOUT_WINDOW, "SET_STATUS WIN %u STR %s", g->win_num, text);
 }
 
 static void
 gui_window_set_pointer(struct gui_window *g, gui_pointer_shape shape)
 {
        const char *ptr_name = "UNKNOWN";
-  
+
        switch (shape) {
        case GUI_POINTER_POINT:
                ptr_name = "POINT";
@@ -285,21 +288,24 @@ gui_window_set_pointer(struct gui_window *g, 
gui_pointer_shape shape)
        default:
                break;
        }
-       fprintf(stdout, "WINDOW SET_POINTER WIN %u POINTER %s\n", g->win_num, 
ptr_name);
+
+       moutf(MOUT_WINDOW, "SET_POINTER WIN %u POINTER %s",
+             g->win_num, ptr_name);
 }
 
 static nserror
 gui_window_set_url(struct gui_window *g, nsurl *url)
 {
-       fprintf(stdout, "WINDOW SET_URL WIN %u URL %s\n", g->win_num, 
nsurl_access(url));
+       moutf(MOUT_WINDOW, "SET_URL WIN %u URL %s",
+             g->win_num, nsurl_access(url));
        return NSERROR_OK;
 }
 
 static bool
 gui_window_get_scroll(struct gui_window *g, int *sx, int *sy)
 {
-       fprintf(stdout, "WINDOW GET_SCROLL WIN %u X %d Y %d\n",
-               g->win_num, g->scrollx, g->scrolly);
+       moutf(MOUT_WINDOW, "GET_SCROLL WIN %u X %d Y %d",
+             g->win_num, g->scrollx, g->scrolly);
        *sx = g->scrollx;
        *sy = g->scrolly;
        return true;
@@ -308,7 +314,7 @@ gui_window_get_scroll(struct gui_window *g, int *sx, int 
*sy)
 static bool
 gui_window_scroll_start(struct gui_window *g)
 {
-       fprintf(stdout, "WINDOW SCROLL_START WIN %u\n", g->win_num);
+       moutf(MOUT_WINDOW, "SCROLL_START WIN %u", g->win_num);
        g->scrollx = g->scrolly = 0;
        return true;
 }
@@ -318,28 +324,28 @@ static void
 gui_window_place_caret(struct gui_window *g, int x, int y, int height,
                       const struct rect *clip)
 {
-       fprintf(stdout, "WINDOW PLACE_CARET WIN %u X %d Y %d HEIGHT %d\n",
-               g->win_num, x, y, height);
+       moutf(MOUT_WINDOW, "PLACE_CARET WIN %u X %d Y %d HEIGHT %d",
+             g->win_num, x, y, height);
 }
 
 static void
 gui_window_remove_caret(struct gui_window *g)
 {
-       fprintf(stdout, "WINDOW REMOVE_CARET WIN %u\n", g->win_num);
+       moutf(MOUT_WINDOW, "REMOVE_CARET WIN %u", g->win_num);
 }
 
 static bool
 gui_window_drag_start(struct gui_window *g, gui_drag_type type,
-                      const struct rect *rect)
+                     const struct rect *rect)
 {
-       fprintf(stdout, "WINDOW SCROLL_START WIN %u TYPE %i\n", g->win_num, 
type);
+       moutf(MOUT_WINDOW, "SCROLL_START WIN %u TYPE %i", g->win_num, type);
        return false;
 }
 
 static nserror
 gui_window_save_link(struct gui_window *g, nsurl *url, const char *title)
 {
-       fprintf(stdout, "WINDOW SAVE_LINK WIN %u URL %s TITLE %s\n",
+       moutf(MOUT_WINDOW, "SAVE_LINK WIN %u URL %s TITLE %s",
                g->win_num, nsurl_access(url), title);
        return NSERROR_OK;
 }
@@ -380,11 +386,11 @@ monkey_window_handle_destroy(int argc, char **argv)
 {
        struct gui_window *gw;
        uint32_t nr = atoi((argc > 2) ? argv[2] : "-1");
-  
+
        gw = monkey_find_window_by_num(nr);
-  
+
        if (gw == NULL) {
-               fprintf(stdout, "ERROR WINDOW NUM BAD\n");
+               moutf(MOUT_ERROR, "WINDOW NUM BAD");
        } else {
                browser_window_destroy(gw->bw);
        }
@@ -397,16 +403,16 @@ monkey_window_handle_go(int argc, char **argv)
        nsurl *url;
        nsurl *ref_url = NULL;
        nserror error;
-  
+
        if (argc < 4 || argc > 5) {
-               fprintf(stdout, "ERROR WINDOW GO ARGS BAD\n");
+               moutf(MOUT_ERROR, "WINDOW GO ARGS BAD");
                return;
        }
-  
+
        gw = monkey_find_window_by_num(atoi(argv[2]));
-  
+
        if (gw == NULL) {
-               fprintf(stdout, "ERROR WINDOW NUM BAD\n");
+               moutf(MOUT_ERROR, "WINDOW NUM BAD");
                return;
        }
 
@@ -446,35 +452,35 @@ monkey_window_handle_redraw(int argc, char **argv)
                .background_images = true,
                .plot = monkey_plotters
        };
-  
+
        if (argc != 3 && argc != 7) {
-               fprintf(stdout, "ERROR WINDOW REDRAW ARGS BAD\n");
+               moutf(MOUT_ERROR, "WINDOW REDRAW ARGS BAD");
                return;
        }
 
        gw = monkey_find_window_by_num(atoi(argv[2]));
-  
+
        if (gw == NULL) {
-               fprintf(stdout, "ERROR WINDOW NUM BAD\n");
+               moutf(MOUT_ERROR, "WINDOW NUM BAD");
                return;
        }
-  
+
        clip.x0 = 0;
        clip.y0 = 0;
        clip.x1 = gw->width;
        clip.y1 = gw->height;
-  
+
        if (argc == 7) {
                clip.x0 = atoi(argv[3]);
                clip.y0 = atoi(argv[4]);
                clip.x1 = atoi(argv[5]);
                clip.y1 = atoi(argv[6]);
        }
-  
+
        NSLOG(netsurf, INFO, "Issue redraw");
-       fprintf(stdout, "WINDOW REDRAW WIN %d START\n", atoi(argv[2]));
-       browser_window_redraw(gw->bw, gw->scrollx, gw->scrolly, &clip, &ctx);  
-       fprintf(stdout, "WINDOW REDRAW WIN %d STOP\n", atoi(argv[2]));
+       moutf(MOUT_WINDOW, "REDRAW WIN %d START", atoi(argv[2]));
+       browser_window_redraw(gw->bw, gw->scrollx, gw->scrolly, &clip, &ctx);
+       moutf(MOUT_ERROR, "REDRAW WIN %d STOP", atoi(argv[2]));
 }
 
 static void
@@ -482,13 +488,13 @@ monkey_window_handle_reload(int argc, char **argv)
 {
        struct gui_window *gw;
        if (argc != 3 && argc != 4) {
-               fprintf(stdout, "ERROR WINDOW RELOAD ARGS BAD\n");
+               moutf(MOUT_ERROR, "WINDOW RELOAD ARGS BAD\n");
        }
-  
+
        gw = monkey_find_window_by_num(atoi(argv[2]));
-  
+
        if (gw == NULL) {
-               fprintf(stdout, "ERROR WINDOW NUM BAD\n");
+               moutf(MOUT_ERROR, "WINDOW NUM BAD");
        } else {
                browser_window_reload(gw->bw, argc == 4);
        }
@@ -500,7 +506,7 @@ monkey_window_handle_command(int argc, char **argv)
 {
        if (argc == 1)
                return;
-  
+
        if (strcmp(argv[1], "NEW") == 0) {
                monkey_window_handle_new(argc, argv);
        } else if (strcmp(argv[1], "DESTROY") == 0) {
@@ -512,9 +518,9 @@ monkey_window_handle_command(int argc, char **argv)
        } else if (strcmp(argv[1], "RELOAD") == 0) {
                monkey_window_handle_reload(argc, argv);
        } else {
-               fprintf(stdout, "ERROR WINDOW COMMAND UNKNOWN %s\n", argv[1]);
+               moutf(MOUT_ERROR, "WINDOW COMMAND UNKNOWN %s\n", argv[1]);
        }
-  
+
 }
 
 static struct gui_window_table window_table = {
diff --git a/frontends/monkey/cert.c b/frontends/monkey/cert.c
index a199755..0827ff0 100644
--- a/frontends/monkey/cert.c
+++ b/frontends/monkey/cert.c
@@ -22,6 +22,7 @@
 #include "utils/ring.h"
 #include "utils/nsurl.h"
 
+#include "monkey/output.h"
 #include "monkey/cert.h"
 
 typedef struct monkey_cert {
@@ -36,9 +37,10 @@ static monkey_cert_t *cert_ring = NULL;
 static uint32_t cert_ctr = 0;
 
 nserror
-gui_cert_verify(nsurl *url, const struct ssl_cert_info *certs, 
-                unsigned long num, nserror (*cb)(bool proceed, void *pw),
-                void *cbpw)
+gui_cert_verify(nsurl *url,
+               const struct ssl_cert_info *certs,
+               unsigned long num, nserror (*cb)(bool proceed, void *pw),
+               void *cbpw)
 {
        monkey_cert_t *m4t = calloc(sizeof(*m4t), 1);
        if (m4t == NULL) {
@@ -47,13 +49,11 @@ gui_cert_verify(nsurl *url, const struct ssl_cert_info 
*certs,
        m4t->cb = cb;
        m4t->pw = cbpw;
        m4t->num = cert_ctr++;
-  
+
        RING_INSERT(cert_ring, m4t);
-  
-       fprintf(stdout, "SSLCERT VERIFY CERT %u URL %s\n",
-               m4t->num, nsurl_access(url));
+
+       moutf(MOUT_SSLCERT, "VERIFY CWIN %u URL %s",
+             m4t->num, nsurl_access(url));
 
        return NSERROR_OK;
 }
-
-
diff --git a/frontends/monkey/download.c b/frontends/monkey/download.c
index 5c9ce1b..1c516e3 100644
--- a/frontends/monkey/download.c
+++ b/frontends/monkey/download.c
@@ -25,6 +25,7 @@
 #include "netsurf/download.h"
 #include "desktop/download.h"
 
+#include "monkey/output.h"
 #include "monkey/browser.h"
 
 static uint32_t dwin_ctr = 0;
@@ -51,8 +52,8 @@ gui_download_window_create(download_context *ctx,
   
        RING_INSERT(dw_ring, ret);
   
-       fprintf(stdout, "DOWNLOAD_WINDOW CREATE DWIN %u WIN %u\n", 
-               ret->dwin_num, parent->win_num);
+       moutf(MOUT_DOWNLOAD, "CREATE DWIN %u WIN %u",
+             ret->dwin_num, parent->win_num);
   
        return ret;
 }
@@ -61,7 +62,7 @@ static nserror
 gui_download_window_data(struct gui_download_window *dw, 
                          const char *data, unsigned int size)
 {
-       fprintf(stdout, "DOWNLOAD_WINDOW DATA DWIN %u SIZE %u DATA %s\n",
+       moutf(MOUT_DOWNLOAD, "DATA DWIN %u SIZE %u DATA %s",
                dw->dwin_num, size, data);
        return NSERROR_OK;
 }
@@ -70,15 +71,13 @@ static void
 gui_download_window_error(struct gui_download_window *dw,
                           const char *error_msg)
 {
-       fprintf(stdout, "DOWNLOAD_WINDOW ERROR DWIN %u ERROR %s\n",
-               dw->dwin_num, error_msg);
+       moutf(MOUT_DOWNLOAD, "ERROR DWIN %u ERROR %s", dw->dwin_num, error_msg);
 }
 
 static void
 gui_download_window_done(struct gui_download_window *dw)
 {
-       fprintf(stdout, "DOWNLOAD_WINDOW DONE DWIN %u\n",
-               dw->dwin_num);
+       moutf(MOUT_DOWNLOAD, "DONE DWIN %u", dw->dwin_num);
        RING_REMOVE(dw_ring, dw);
        free(dw);
 }
diff --git a/frontends/monkey/main.c b/frontends/monkey/main.c
index 53cde5a..7ef4208 100644
--- a/frontends/monkey/main.c
+++ b/frontends/monkey/main.c
@@ -37,6 +37,7 @@
 #include "netsurf/cookie_db.h"
 #include "content/fetch.h"
 
+#include "monkey/output.h"
 #include "monkey/dispatch.h"
 #include "monkey/browser.h"
 #include "monkey/cert.h"
@@ -66,7 +67,7 @@ static bool monkey_done = false;
  */
 static void die(const char * const error)
 {
-       fprintf(stderr, "DIE %s\n", error);
+       moutf(MOUT_DIE, "%s", error);
        exit(EXIT_FAILURE);
 }
 
@@ -199,7 +200,7 @@ static void monkey_quit(void)
 
 static nserror gui_launch_url(struct nsurl *url)
 {
-       fprintf(stdout, "GENERIC LAUNCH URL %s\n", nsurl_access(url));
+       moutf(MOUT_GENERIC, "LAUNCH URL %s", nsurl_access(url));
        return NSERROR_OK;
 }
 
@@ -279,7 +280,7 @@ static void monkey_run(void)
                switch (schedtm) {
                case -1:
                        NSLOG(netsurf, INFO, "Iterate blocking");
-                       fprintf(stdout, "GENERIC POLL BLOCKING\n");
+                       moutf(MOUT_GENERIC, "POLL BLOCKING");
                        timeout = NULL;
                        break;
 
@@ -292,7 +293,7 @@ static void monkey_run(void)
 
                default:
                        NSLOG(netsurf, INFO, "Iterate non-blocking");
-                       fprintf(stdout, "GENERIC POLL TIMED %d\n", schedtm);
+                       moutf(MOUT_GENERIC, "POLL TIMED %d", schedtm);
                        tv.tv_sec = schedtm / 1000; /* miliseconds to seconds */
                        tv.tv_usec = (schedtm % 1000) * 1000; /* remainder to 
microseconds */
                        timeout = &tv;
@@ -392,14 +393,14 @@ main(int argc, char **argv)
                die("options handler failed to register");
        }
 
-       fprintf(stdout, "GENERIC STARTED\n");
+       moutf(MOUT_GENERIC, "STARTED");
        monkey_run();
 
-       fprintf(stdout, "GENERIC CLOSING_DOWN\n");
+       moutf(MOUT_GENERIC, "CLOSING_DOWN");
        monkey_kill_browser_windows();
 
        netsurf_exit();
-       fprintf(stdout, "GENERIC FINISHED\n");
+       moutf(MOUT_GENERIC, "FINISHED");
 
        /* finalise options */
        nsoption_finalise(nsoptions, nsoptions_default);
diff --git a/frontends/riscos/assert.c b/frontends/monkey/output.c
similarity index 55%
copy from frontends/riscos/assert.c
copy to frontends/monkey/output.c
index 50b8f5d..a3390ea 100644
--- a/frontends/riscos/assert.c
+++ b/frontends/monkey/output.c
@@ -1,5 +1,5 @@
 /*
- * Copyright 2005 James Bursa <[email protected]>
+ * Copyright 2018 Vincent Sanders <[email protected]>
  *
  * This file is part of NetSurf, http://www.netsurf-browser.org/
  *
@@ -16,29 +16,39 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-/** \file
- * Assert reporting (RISC OS implementation).
- */
-
-#include <assert.h>
 #include <stdio.h>
-#include <stdlib.h>
-#include "oslib/wimp.h"
+#include <stdarg.h>
 
+#include "monkey/output.h"
 
 /**
- * Report an assert() failure and exit.
+ * output type prefixes
  */
+static const char *type_text[]={
+       "DIE",
+       "ERROR",
+       "WARN",
+       "GENERIC",
+       "WINDOW",
+       "LOGIN",
+       "SSLCERT",
+       "DOWNLOAD",
+       "PLOT",
+};
 
-void __assert2(const char *expr, const char *function, const char *file,
-               int line)
+/* exported interface documented in monkey/output.h */
+int moutf(enum monkey_output_type mout_type, const char *fmt, ...)
 {
-       fprintf(stderr, "\n\"%s\", line %d: %s%sAssertion failed: %s\n",
-                       file, line,
-                       function ? function : "",
-                       function ? ": " : "",
-                       expr);
-       fflush(stderr);
-
-       abort();
+       va_list ap;
+       int res;
+
+       res = fprintf(stdout, "%s ", type_text[mout_type]);
+
+       va_start(ap, fmt);
+       res += vfprintf(stdout, fmt, ap);
+       va_end(ap);
+
+       fputc('\n', stdout);
+
+       return res + 1;
 }
diff --git a/desktop/version.c b/frontends/monkey/output.h
similarity index 72%
copy from desktop/version.c
copy to frontends/monkey/output.h
index 387cb1f..5e77ab3 100644
--- a/desktop/version.c
+++ b/frontends/monkey/output.h
@@ -16,15 +16,21 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "testament.h"
+#ifndef NS_MONKEY_OUTPUT_H
+#define NS_MONKEY_OUTPUT_H
 
-#include "desktop/version.h"
+enum monkey_output_type {
+       MOUT_DIE,
+       MOUT_ERROR,
+       MOUT_WARNING,
+       MOUT_GENERIC,
+       MOUT_WINDOW,
+       MOUT_LOGIN,
+       MOUT_SSLCERT,
+       MOUT_DOWNLOAD,
+       MOUT_PLOT,
+};
+
+int moutf(enum monkey_output_type mout_type, const char *fmt, ...);
 
-const char * const netsurf_version = "3.9 (Dev"
-#if defined(CI_BUILD)
-       " CI #" CI_BUILD
 #endif
-       ")"
-       ;
-const int netsurf_version_major = 3;
-const int netsurf_version_minor = 9;
diff --git a/frontends/monkey/plot.c b/frontends/monkey/plot.c
index 2fc9a3c..7a84c4a 100644
--- a/frontends/monkey/plot.c
+++ b/frontends/monkey/plot.c
@@ -22,6 +22,8 @@
 #include "utils/errors.h"
 #include "netsurf/plotters.h"
 
+#include "monkey/output.h"
+
 /**
  * \brief Sets a clip rectangle for subsequent plot operations.
  *
@@ -33,8 +35,7 @@
 static nserror
 monkey_plot_clip(const struct redraw_context *ctx, const struct rect *clip)
 {
-       fprintf(stdout,
-               "PLOT CLIP X0 %d Y0 %d X1 %d Y1 %d\n",
+       moutf(MOUT_PLOT, "CLIP X0 %d Y0 %d X1 %d Y1 %d",
                clip->x0, clip->y0, clip->x1, clip->y1);
        return NSERROR_OK;
 }
@@ -61,9 +62,8 @@ monkey_plot_arc(const struct redraw_context *ctx,
                const plot_style_t *style,
                int x, int y, int radius, int angle1, int angle2)
 {
-       fprintf(stdout,
-               "PLOT ARC X %d Y %d RADIUS %d ANGLE1 %d ANGLE2 %d\n",
-               x, y, radius, angle1, angle2);
+       moutf(MOUT_PLOT, "ARC X %d Y %d RADIUS %d ANGLE1 %d ANGLE2 %d",
+             x, y, radius, angle1, angle2);
        return NSERROR_OK;
 }
 
@@ -85,9 +85,7 @@ monkey_plot_disc(const struct redraw_context *ctx,
                 const plot_style_t *style,
                 int x, int y, int radius)
 {
-       fprintf(stdout,
-               "PLOT DISC X %d Y %d RADIUS %d\n",
-               x, y, radius);
+       moutf(MOUT_PLOT, "DISC X %d Y %d RADIUS %d", x, y, radius);
        return NSERROR_OK;
 }
 
@@ -108,8 +106,7 @@ monkey_plot_line(const struct redraw_context *ctx,
                 const plot_style_t *style,
                 const struct rect *line)
 {
-       fprintf(stdout,
-               "PLOT LINE X0 %d Y0 %d X1 %d Y1 %d\n",
+       moutf(MOUT_PLOT, "LINE X0 %d Y0 %d X1 %d Y1 %d",
                line->x0, line->y0, line->x1, line->y1);
        return NSERROR_OK;
 }
@@ -133,8 +130,7 @@ monkey_plot_rectangle(const struct redraw_context *ctx,
                      const plot_style_t *style,
                      const struct rect *rect)
 {
-       fprintf(stdout,
-               "PLOT RECT X0 %d Y0 %d X1 %d Y1 %d\n",
+       moutf(MOUT_PLOT, "RECT X0 %d Y0 %d X1 %d Y1 %d",
                rect->x0, rect->y0, rect->x1, rect->y1);
        return NSERROR_OK;
 }
@@ -160,9 +156,7 @@ monkey_plot_polygon(const struct redraw_context *ctx,
                    const int *p,
                    unsigned int n)
 {
-       fprintf(stdout,
-               "PLOT POLYGON VERTICIES %d\n",
-               n);
+       moutf(MOUT_PLOT, "POLYGON VERTICIES %d", n);
        return NSERROR_OK;
 }
 
@@ -187,8 +181,7 @@ monkey_plot_path(const struct redraw_context *ctx,
                 unsigned int n,
                 const float transform[6])
 {
-       fprintf(stdout,
-               "PLOT PATH VERTICIES %d WIDTH %f\n",
+       moutf(MOUT_PLOT, "PATH VERTICIES %d WIDTH %f",
                n, plot_style_fixed_to_float(pstyle->stroke_width));
        return NSERROR_OK;
 }
@@ -227,9 +220,8 @@ monkey_plot_bitmap(const struct redraw_context *ctx,
                   colour bg,
                   bitmap_flags_t flags)
 {
-       fprintf(stdout,
-               "PLOT BITMAP X %d Y %d WIDTH %d HEIGHT %d\n",
-               x, y, width, height);
+       moutf(MOUT_PLOT, "BITMAP X %d Y %d WIDTH %d HEIGHT %d",
+             x, y, width, height);
        return NSERROR_OK;
 }
 
@@ -253,9 +245,7 @@ monkey_plot_text(const struct redraw_context *ctx,
                 const char *text,
                 size_t length)
 {
-       fprintf(stdout,
-               "PLOT TEXT X %d Y %d STR %*s\n",
-               x, y, (int)length, text);
+       moutf(MOUT_PLOT, "TEXT X %d Y %d STR %*s\n", x, y, (int)length, text);
        return NSERROR_OK;
 }
 


-- 
NetSurf Browser

_______________________________________________
netsurf-commits mailing list
[email protected]
http://listmaster.pepperfish.net/cgi-bin/mailman/listinfo/netsurf-commits-netsurf-browser.org

Reply via email to