chiark / gitweb /
Merge and end branch-hostside-wip-2008-01-25 PROPERLY; cvs up -j branch-hostside...
[trains.git] / hostside / gui-plan.c
index 6ae3c58de9a1571397166340ec4982e4d510e82e..9e1f5922ba34ab74cb76076efef3bb9127f17695 100644 (file)
@@ -15,7 +15,7 @@
 #include <X11/Xlib.h>
 #include <X11/xpm.h>
 
-#include "hostside.h"
+#include "common.h"
 #include "../layout/plan-data-format.h"
 
 #include <oop.h>
@@ -44,6 +44,7 @@ struct SegmovfeatState {
 };
 
 oop_source *events;
+const char *progname= "gui-plan";
 
 static SegmovfeatState **state, *states_head;
 static Display *d;
@@ -53,6 +54,12 @@ static int redraw_needed_count, expose_count;
 static Pixmap bg_pixmap;
 static unsigned long train_pixel, owned_pixel;
 
+static const char *badcmdreport_data;
+static size_t badcmdreport_recsz;
+
+void die_hook(void) { }
+void die_vprintf_hook(const char *fmt, va_list al) { }
+
 static void diex(const char *fn, const char *w) __attribute__((noreturn));
 static void diex(const char *fn, const char *w) {
   die("Xlib call failed: %s%s%s%s", fn,
@@ -79,7 +86,8 @@ static void diexpm(const char *fn, const char *w, int xpmst) {
   }while(0)
 
 void vbadcmd(ParseState *ps, const char *fmt, va_list al) {
-  fprintf(stderr,"gui-plan: incorrect input: ");
+  fprintf(stderr,"gui-plan: incorrect input: `%.*s': ",
+         (int)badcmdreport_recsz, badcmdreport_data);
   vfprintf(stderr,fmt,al);
   putc('\n',stderr);
   exit(8);
@@ -248,6 +256,9 @@ static void *stdin_ifok(oop_source *evts, oop_read *cl_read,
   if (evt != OOP_RD_OK)
     return stdin_iferr(evts,cl_read,evt,errmsg,errnoval,data,recsz,cl_v);
 
+  badcmdreport_data= data;
+  badcmdreport_recsz= recsz;
+
   ps.cl= 0;
   ps.remain= data;
   ps_needword(&ps);