Work around lcc's annoying (but, even more annoyingly, legitimate)
[u/mdw/putty] / timing.c
index a87be89..6dd8aa5 100644 (file)
--- a/timing.c
+++ b/timing.c
@@ -41,10 +41,21 @@ static int compare_timers(void *av, void *bv)
      * Failing that, compare on the other two fields, just so that
      * we don't get unwanted equality.
      */
+#ifdef __LCC__
+    /* lcc won't let us compare function pointers. Legal, but annoying. */
+    {
+       int c = memcmp(&a->fn, &b->fn, sizeof(a->fn));
+       if (c < 0)
+           return -1;
+       else if (c > 0)
+           return +1;
+    }
+#else    
     if (a->fn < b->fn)
        return -1;
     else if (a->fn > b->fn)
        return +1;
+#endif
 
     if (a->ctx < b->ctx)
        return -1;