From 9d2ee5f5200b0febb5b383e822870364a860d0b2 Mon Sep 17 00:00:00 2001
From: Brad Barber <bradb@shore.net>
Date: Tue, 5 Jan 2010 22:12:17 -0500
Subject: [PATCH] qhull 2010.0.3 Fix rbox t, bug.  Remove extra 't' argument.
 Setup download and news page for 2010.1. Add Ta to qhull.man. Fix
 printcoplanar test.

---
 Announce.txt     |  2 +-
 README.txt       |  2 +-
 html/qh-get.htm  | 50 +++++++++++++++++++++++++++++++-----------------
 html/qhull.man   |  4 ++++
 html/qhull.txt   |  3 +++
 src/Changes.txt  | 29 ++++++++++------------------
 src/global.c     | 22 +++++++++++----------
 src/libqhull.c   | 15 ++++++++-------
 src/libqhull.h   | 14 ++++++++------
 src/qhull_a.h    |  6 ++++--
 src/rboxlib.c    | 27 +++++++++++++++-----------
 src/stat.h       |  6 +++---
 src/user.h       |  2 +-
 src/userprintf.c |  3 +++
 14 files changed, 106 insertions(+), 79 deletions(-)

diff --git a/Announce.txt b/Announce.txt
index 5df7618..86a692b 100644
--- a/Announce.txt
+++ b/Announce.txt
@@ -1,5 +1,5 @@
 
- Qhull 2010.0.2  2010/01/04
+ Qhull 2010.0.3  2010/01/05
 
         http://www.qhull.org
         git@gitorious.org:qhull/qhull.git
diff --git a/README.txt b/README.txt
index 2ce2ecf..8637e94 100644
--- a/README.txt
+++ b/README.txt
@@ -1,6 +1,6 @@
 Name
 
-      qhull, rbox         2010.0.2          2010/01/04
+      qhull, rbox         2010.0.3 2010/01/05
   
 Convex hull, Delaunay triangulation, Voronoi diagrams, Halfspace intersection
  
diff --git a/html/qh-get.htm b/html/qh-get.htm
index 5d76064..7bc03ee 100644
--- a/html/qh-get.htm
+++ b/html/qh-get.htm
@@ -29,24 +29,47 @@ width="100" height="100"></a> Qhull Downloads</h1>
 
 	<p>Visit <a href="http://www.qhull.org/news">Qhull News</a>
 	for news, bug reports, change history, and users.</p>
+
+	<p>A serious bug was found in Qhull 2003.1.  Please upgrade to 2010.1.</p>
 	</li>
     <li><a
-        href="http://www.qhull.org/download/qhull-2003.1.zip">Download:
-        Qhull 2003.1 for Windows</a> (1.2 Mbytes) <p>Type: console programs for
+        href="http://www.qhull.org/download/qhull-2010.1.zip">Download:
+        Qhull 2010.1 for Windows</a> (1.2 Mbytes) <p>Type: console programs for
         Windows 95, 98, ME, 2000, NT, XP</p>
         <p>Includes executables, documentation, sources files, and a cygwin Makefile. It runs in a
         DOS window.</p>
     </li>
-	<li><a href="http://www.qhull.org/download/qhull-2003.1.tar.gz">Download: Qhull 2003.1 for Unix</a> (725K)
-	<p>Type: C source code for Unix systems</b>
+	<li><a href="http://www.qhull.org/download/qhull-2010.1-src.tgz">Download: Qhull 2010.1 for Unix</a> (725K)
+	<p>Type: C source code for 32-bit and 64-bit architectures</p>
+	<p>Includes documentation, source files, a simple Makefile, DevStudio project files, and Qt project files.
+	    Includes preliminary C++ support.
+        The C++ interface may change without notice.
+        If using gcc 4.1, 4.2, or 4.3, please compile qset.s with
+        -fno-strict-aliasing (otherwise qhull segfaults) [Karas, Krishnaswami].
+        See <a href=http://www.qhull.org/news/#bugs>Bugs</a> [Apr 2008] for a patch.
+       </p>
+	<p>Debian, rpm, and Autoconf distributions will appear later</p>
+    </li>
+	<li><a href="http://gitorious.org/qhull">Gitorious Qhull</a> (git://gitorious.org/qhull/qhull.git)
+	<p>Type: git repository for Qhull</b>
+	<p>Includes documentation, source files, C++ interface,
+	    and test programs.  The C++ interface may change without notice.
+	    If using gcc 4.1, 4.2, or 4.3, please compile qset.s with
+        -fno-strict-aliasing (otherwise qhull segfaults) [Karas, Krishnaswami].
+        See <a href=http://www.qhull.org/news/#bugs>Bugs</a> [Apr 2008] for a patch.
+       </p>
+   </li>
+  <!---
+	<li><a href="http://www.qhull.org/download/qhull-2010.1.tgz">Download: Qhull 2010.1 for Unix</a> (725K)
+	<p>Type: C source code for Unix systems</p>
 	<p>Includes documentation, source files, and Autoconf/Automake/Libtool
-        support [R. Laboissiere].
-        If using gcc-4 or later, please compile qset.s with
+        support [R. Laboissiere].  Includes preliminary C++ support.
+        If using gcc 4.1, 4.2, or 4.3, please compile qset.s with
         -fno-strict-aliasing (otherwise qhull segfaults) [Karas, Krishnaswami].
         See <a href=http://www.qhull.org/news/#bugs>Bugs</a> [Apr 2008] for a patch.
        </p>
+   </li>
 
-<!---
     <li><a href=http://savannah.nongnu.org/files/?group=qhull>Download: Qhull 2002.1 for Unix</a>
 
 	<p>Includes documentation, source files, and a configure Makefile.
@@ -56,16 +79,6 @@ width="100" height="100"></a> Qhull Downloads</h1>
 	<p>B. Pearlmutter created a
 <a href=http://packages.debian.org/stable/math/qhull-bin.html>Debian build</a> of Qhull 3.1
 and upgraded it to 2002.1.
-	-->
-    </li>
-    <li><a href="http://www.qhull.org/download/qhull-2003.1-src.tgz">Download:
-        Qhull 2003.1 source code</a> (450K) <p>Type: C source code for
-        32-bit and 64-bit architectures </p>
-        <p>Includes documentation, source files, and a simple Makefile.
-        If using gcc-4 or later, please compile qset.s with
-        -fno-strict-aliasing (otherwise qhull segfaults) [Karas, Krishnaswami].
-        See <a href=http://www.qhull.org/news/#bugs>Bugs</a> [Apr 2008] for a patch.
-       </p>
     </li>
 
     <li><a href="http://www.qhull.org/download/qhull-2003.1-1mdk.i686.rpm">Download:
@@ -81,11 +94,12 @@ and upgraded it to 2002.1.
 		<p>Type: Debian packages
         <p>Includes documentation, source files, and previous distributions [R. Laboissiere].</p>
 	</li>
+	-->
 
     <li><a href=http://savannah.nongnu.org/projects/qhull/>Qhull@Savannah</a>
 	<p>Type: CVS repository</b>
 
-	<p>CVS repositiory of Qhull sources, documentation, and Makefiles.
+	<p>CVS repositiory of Qhull sources, documentation, and Makefiles.  No longer active.  Use gitorious instead.
 	</p>
     </li>
     <li><a href=http://www6.uniovi.es/ftp/pub/mirrors/geom.umn.edu/software/ghindex.html>Spanish
diff --git a/html/qhull.man b/html/qhull.man
index 7f6bd65..908782b 100644
--- a/html/qhull.man
+++ b/html/qhull.man
@@ -856,6 +856,10 @@ execution and geometric and topological events.  'T4' traces the
 algorithm.  'T5' includes information about memory allocation and
 Gaussian elimination.
 .TP
+Ta
+Annotate output with codes that identify the 
+corresponding qh_fprintf() statement.
+.TP
 Tc
 Check frequently during execution.  This will catch most inconsistency
 errors.
diff --git a/html/qhull.txt b/html/qhull.txt
index 3a39962..3250d6d 100644
--- a/html/qhull.txt
+++ b/html/qhull.txt
@@ -1025,6 +1025,9 @@ qhull(1)                                                 qhull(1)
               includes  information  about  memory allocation and
               Gaussian elimination.
 
+       Ta     Annotate output with codes that identify the 
+              corresponding qh_fprintf() statement.
+
        Tc     Check frequently during execution.  This will catch
               most inconsistency errors.
 
diff --git a/src/Changes.txt b/src/Changes.txt
index be9f9ad..c2dcd06 100644
--- a/src/Changes.txt
+++ b/src/Changes.txt
@@ -22,7 +22,7 @@ To do for documentation
  - Better documentation for qhmem totshort, freesize, etc.
  - Clean up qhull-news.html XML
  - how to change .h, .c, and .cpp to text/html.  OK in Opera
- - need a page with all QHnnnn for web lookups
+ - Set up wiki for Qhull.  Include error and warning codes (QHnnnn).
  - QhullVertex.dimension() is not quite correct, epensive
  - Check globalAngleEpsilon
  - Deprecate save_qhull()
@@ -97,25 +97,16 @@ To do
    libqhull.h:  qhstatT *old_qhstat;       /* for saving qh_qhstat in save_qhull() and UsingLibQhull.  Free with qh_free() */
    mem.h:   setT      *tempstack;         /* stack of temporary memory, managed by users */
 
- - Ran qhull regression tests (eg/q_test)  Review the following problems
+ - Add library dependencies to .pro files.  For now, rebuild on changes.
  
- Output warning Qc
- rbox d D2 | qhull FQ n | qhalf s H0 Fc FP Fn FN FQ Fv Fx
-
- Failed.  Premature exit
- rbox 1000 W0 | qhull QR2 QJ s Fs Tv
-
- t not printed
- Statistics for: rbox 1000 W1e-20 t | qhull Tcv Qc
-
- 6668,7x outer plane
- Statistics for: rbox 1000 L100000 s G1e-6 t | qhull Tv Q10
-
- 5135.7x outer plane
- Statistics for: rbox 1000 s W1e-13 t | qhull d Tv
+qhull 2010.0.3 2010/01/05
 
+Fixed bugs
+- 'QJn' (joggle): Fix qh.STOPcone in qh_build_withrestart().  It was not cleared. 
+- qh_initqhull_outputflags [global.c]: warn about Qc only if QHULLfinished, otherwise set if needed
 
-qhull 2010.0.2  2010/01/04
+qhull 2010.0.2 2010/01/04
+- Reviewed output of q_test and compared to results from 2003.1
 
 Fixed bugs
 - qh_gethash [poly.c]: fix sign conversion.  Previously, the result may be negative, leading to a segfault.  
@@ -132,7 +123,7 @@ Code changes
 - Makefile.txt corrected for libqhull build [amorilia]
 - Renamed index to idx to avoid shadowing BSD strings.h [kwilliams]
 
-qhull 2010.0.1  2010/01/03
+qhull 2010.0.1 2010/01/03
 
 New Features:
  - Added option 'Ta' to annotate output with message codes
@@ -146,7 +137,7 @@ Preliminary C++ support:
 Changes to qhull options and results
  - Allow 'd' and 'v' as the filename for 'TO ..' and 'TI ...' in qdelaunay [M. Jambon]
  - Allow quoted filenames for 'TO ...' and 'TI ...'
- - Preceed error messages and warnings with a message code (e.g., QH6012)
+ - Prefix error messages and warnings with a message code (e.g., QH6012)
  - Fixed rbox ignoring flags that were not separated by spaces
  - Report all hidden options before exiting in qh_checkflags()
  - Defined qh_OPTIONline [user.h] as max length of option line ('FO') 
diff --git a/src/global.c b/src/global.c
index 7bbfb04..6abb9fd 100644
--- a/src/global.c
+++ b/src/global.c
@@ -12,8 +12,8 @@
    see qhull_a.h for internal functions
 
    copyright (c) 1993-2010 The Geometry Center.
-   $Id: //product/qhull/main/rel/src/global.c#53 $$Change: 1150 $
-   $DateTime: 2010/01/04 22:43:14 $$Author: bbarber $
+   $Id: //product/qhull/main/rel/src/global.c#55 $$Change: 1152 $
+   $DateTime: 2010/01/05 22:11:10 $$Author: bbarber $
  */
 
 #include "qhull_a.h"
@@ -47,7 +47,7 @@ qhT qh_qh;     		/* all global variables.
     recompile user_eg.c, rbox.c, libqhull.c, qconvex.c, qdelaun.c qvoronoi.c, qhalf.c
 */
 
-const char *qh_version = "2010.0.2 2010/01/04";
+const char *qh_version = "2010.0.3 2010/01/05";
 
 /*-<a                             href="qh-globa.htm#TOC"
   >-------------------------------</a><a name="appendprint">-</a>
@@ -1405,6 +1405,8 @@ void qh_initflags(char *command) {
 	s++;
     }
   }
+  if (qh STOPcone && qh JOGGLEmax < REALmax/2)
+    qh_fprintf(qh ferr, 7078, "qhull warning: 'TCn' (stopCone) ignored when used with 'QJn' (joggle)\n");
   if (isgeom && !qh FORCEoutput && qh PRINTout[1])
     qh_fprintf(qh ferr, 7037, "qhull warning: additional output formats are not compatible with Geomview\n");
   /* set derived values in qh_initqhull_globals */
@@ -1749,10 +1751,6 @@ void qh_initqhull_outputflags(void) {
     if (qh PRINTprecision) 
       qh_fprintf(qh ferr, 7041, "qhull input warning: 'QJ' (joggle) will usually prevent coincident input sites for options 'Fc' and 'FP'\n");
   }
-  if (!qh KEEPcoplanar && !qh KEEPinside && !qh ONLYgood
-    && ((qh PRINTcoplanar && qh PRINTspheres) || printcoplanar)) {
-        qh_fprintf(qh ferr, 7072, "qhull output warning: ignoring coplanar points, option 'Qc' not set for qhull.\n");
-  }
   if (printmath && (qh hull_dim > 3 || qh VORONOI)) {
     qh_fprintf(qh ferr, 6056, "qhull input error: Mathematica and Maple output is only available for 2-d and 3-d convex hulls and 2-d Delaunay triangulations\n");
     qh_errexit(qh_ERRinput, NULL, NULL);
@@ -1780,10 +1778,14 @@ available for 4-d output(ignored).  Could use 'GDn' instead.\n");
     }
   }
   if (!qh KEEPcoplanar && !qh KEEPinside && !qh ONLYgood) {
-      if ((qh PRINTcoplanar && qh PRINTspheres) || printcoplanar) {
-          qh KEEPcoplanar = True;
-          qh_option("Qcoplanar", NULL, NULL);
+    if ((qh PRINTcoplanar && qh PRINTspheres) || printcoplanar) {
+      if (qh QHULLfinished) {
+        qh_fprintf(qh ferr, 7072, "qhull output warning: ignoring coplanar points, option 'Qc' was not set for the first run of qhull.\n");
+      }else {
+        qh KEEPcoplanar = True;
+        qh_option("Qcoplanar", NULL, NULL);
       }
+    }
   }
   qh PRINTdim= qh hull_dim;
   if (qh DROPdim >=0) {    /* after Geomview checks */
diff --git a/src/libqhull.c b/src/libqhull.c
index b2a5a42..47c5b06 100644
--- a/src/libqhull.c
+++ b/src/libqhull.c
@@ -11,8 +11,8 @@
    see qhull_a.h for internal functions
 
    copyright (c) 1993-2010 The Geometry Center.
-   $Id: //product/qhull/main/rel/src/libqhull.c#5 $$Change: 1150 $
-   $DateTime: 2010/01/04 22:43:14 $$Author: bbarber $        
+   $Id: //product/qhull/main/rel/src/libqhull.c#6 $$Change: 1151 $
+   $DateTime: 2010/01/05 19:34:31 $$Author: bbarber $        
 */
 
 #include "qhull_a.h" 
@@ -108,7 +108,7 @@ void qh_qhull(void) {
   }
   qh hulltime= qh_CPUclock - qh hulltime;
   qh QHULLfinished= True;
-  trace1((qh ferr, 1036, "qh_qhull: algorithm completed\n"));
+  trace1((qh ferr, 1036, "Qhull: algorithm completed\n"));
 } /* qhull */
 
 /*-<a                             href="qh-qhull.htm#TOC"
@@ -295,12 +295,12 @@ void qh_build_withrestart(void) {
     if (restart) {       /* only from qh_precision() */
       zzinc_(Zretry);
       wmax_(Wretrymax, qh JOGGLEmax);
-      qh STOPcone= True; /* if break, prevents normal output */
+      /* QH7078 warns about using 'TCn' with 'QJn' */
+      qh STOPcone= -1; /* if break from joggle, prevents normal output */
     }
     if (!qh RERUN && qh JOGGLEmax < REALmax/2) {
       if (qh build_cnt > qh_JOGGLEmaxretry) {
-	qh_fprintf(qh ferr, 6229, "\n\
-qhull precision error: %d attempts to construct a convex hull\n\
+	qh_fprintf(qh ferr, 6229, "qhull precision error: %d attempts to construct a convex hull\n\
         with joggled input.  Increase joggle above 'QJ%2.2g'\n\
 	or modify qh_JOGGLE... parameters in user.h\n",
 	   qh build_cnt, qh JOGGLEmax);
@@ -310,6 +310,7 @@ qhull precision error: %d attempts to construct a convex hull\n\
 	break;
     }else if (qh build_cnt && qh build_cnt >= qh RERUN)
       break;
+    qh STOPcone= 0;
     qh_freebuild(True);  /* first call is a nop */
     qh build_cnt++;
     if (!qh qhull_optionsiz)
@@ -1226,7 +1227,7 @@ void qh_printsummary(FILE *fp) {
   if (id >=0 && qh STOPcone-1 != id && -qh STOPpoint-1 != id)
     size--;
   if (qh STOPcone || qh STOPpoint)
-      qh_fprintf(fp, 9288, "\nAt a premature exit due to 'TVn', 'TCn', 'TRn', or precision error.");
+      qh_fprintf(fp, 9288, "\nAt a premature exit due to 'TVn', 'TCn', 'TRn', or precision error with 'QJn'.");
   if (qh UPPERdelaunay)
     goodused= qh GOODvertex + qh GOODpoint + qh SPLITthresholds;
   else if (qh DELAUNAY)
diff --git a/src/libqhull.h b/src/libqhull.h
index 43f0e95..e620031 100644
--- a/src/libqhull.h
+++ b/src/libqhull.h
@@ -7,8 +7,8 @@
    see qh-qhull.htm, qhull_a.h
 
    copyright (c) 1993-2010 The Geometry Center.
-   $Id: //product/qhull/main/rel/src/libqhull.h#4 $$Change: 1137 $
-   $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
+   $Id: //product/qhull/main/rel/src/libqhull.h#5 $$Change: 1151 $
+   $DateTime: 2010/01/05 19:34:31 $$Author: bbarber $
 
    NOTE: access to qh_qh is via the 'qh' macro.  This allows
    qh_qh to be either a pointer or a structure.  An example
@@ -516,7 +516,7 @@ struct qhT {
   boolT SKIPconvex;       /* true 'Q6' if skip convexity testing during pre-merge */
   boolT SPLITthresholds;  /* true if upper_/lower_threshold defines a region
                                used only for printing (!for qh ONLYgood) */
-  int	STOPcone;         /* 'TCn' 1+n for stopping after cone for point n*/
+  int	STOPcone;         /* 'TCn' 1+n for stopping after cone for point n */
 			  /*       also used by qh_build_withresart for err exit*/
   int	STOPpoint;        /* 'TVn' 'TV-n' 1+n for stopping after/before(-)
 			                adding point n */
@@ -999,13 +999,15 @@ void	qh_printhelp_narrowhull(FILE *fp, realT minangle);
 void	qh_printhelp_singular(FILE *fp);
 void 	qh_user_memsizes(void);
 
-/********* -user2.c prototypes (alphabetical) **********************/
+/********* -usermem.c prototypes (alphabetical) **********************/
 void    qh_exit(int exitcode);
-void	qh_fprintf(FILE *fp, int msgcode, const char *fmt, ... );
-void	qh_fprintf_rbox(FILE *fp, int msgcode, const char *fmt, ... );
 void    qh_free(void *mem);
 void   *qh_malloc(size_t size);
 
+/********* -userprintf.c prototypes (alphabetical) **********************/
+void	qh_fprintf(FILE *fp, int msgcode, const char *fmt, ... );
+void	qh_fprintf_rbox(FILE *fp, int msgcode, const char *fmt, ... );
+
 /***** -geom.c/geom2.c/random.c prototypes (duplicated from geom.h, random.h) ****************/
 
 facetT *qh_findbest(pointT *point, facetT *startfacet,
diff --git a/src/qhull_a.h b/src/qhull_a.h
index ad35036..d5c6089 100644
--- a/src/qhull_a.h
+++ b/src/qhull_a.h
@@ -13,8 +13,8 @@
    defines internal functions for libqhull.c global.c
 
    copyright (c) 1993-2010 The Geometry Center.
-   $Id: //product/qhull/main/rel/src/qhull_a.h#25 $$Change: 1137 $
-   $DateTime: 2010/01/02 21:58:11 $$Author: bbarber $
+   $Id: //product/qhull/main/rel/src/qhull_a.h#26 $$Change: 1151 $
+   $DateTime: 2010/01/05 19:34:31 $$Author: bbarber $
 
    Notes:  grep for ((" and (" to catch fprintf("lkasdjf");
            full parens around (x?y:z)
@@ -70,6 +70,8 @@
   traceN((qh ferr, 0Nnnn, "format\n", vars));
     calls qh_fprintf if qh.IStracing >= N
 
+    Add debugging traps to the end of qh_fprintf
+
   notes:
     removing tracing reduces code size but doesn't change execution speed
 */
diff --git a/src/rboxlib.c b/src/rboxlib.c
index 02fd60b..8442d7e 100644
--- a/src/rboxlib.c
+++ b/src/rboxlib.c
@@ -336,16 +336,6 @@ int qh_rboxpoints(FILE* fout, FILE* ferr, char* rbox_command) {
     totpoints= numpoints + isaxis;
   totpoints += cubesize + diamondsize + addpoints;
 
-  if (iscdd) 
-    qh_fprintf_rbox(rbox.fout, 9391, "%s\nbegin\n        %d %d %s\n", 
-          NOcommand ? "" : command, 
-          totpoints, dim+1,
-          rbox.isinteger ? "integer" : "real");
-  else if (NOcommand)
-    qh_fprintf_rbox(rbox.fout, 9392, "%d\n%d\n", dim, totpoints);
-  else
-    qh_fprintf_rbox(rbox.fout, 9393, "%d %s\n%d\n", dim, command, totpoints);
-
   /* ============= seed randoms =============== */
   if (istime == 0) {
     for (s=command; *s; s++) {
@@ -357,11 +347,26 @@ int qh_rboxpoints(FILE* fout, FILE* ferr, char* rbox_command) {
     }
   }else if (israndom) {
     seed= time(&timedata);
-    sprintf(seedbuf, " t%d", seed);
+    sprintf(seedbuf, " t%d", seed);  /* appends an extra t, not worth removing */
     strncat(command, seedbuf, sizeof(command));
+    t= strstr(command, " t ");
+    if (t)
+      strcpy(t+1, t+3); /* remove " t " */
   } /* else, seed explicitly set to n */
   qh_RANDOMseed_(seed);
 
+  /* ============= print header =============== */
+
+  if (iscdd) 
+      qh_fprintf_rbox(rbox.fout, 9391, "%s\nbegin\n        %d %d %s\n", 
+      NOcommand ? "" : command, 
+      totpoints, dim+1,
+      rbox.isinteger ? "integer" : "real");
+  else if (NOcommand)
+      qh_fprintf_rbox(rbox.fout, 9392, "%d\n%d\n", dim, totpoints);
+  else
+      qh_fprintf_rbox(rbox.fout, 9393, "%d %s\n%d\n", dim, command, totpoints);
+
   /* ============= explicit points =============== */
   if ((s= first_point)) {
     while (s && *s) { /* 'P' */
diff --git a/src/stat.h b/src/stat.h
index 22e0027..4c15ae1 100644
--- a/src/stat.h
+++ b/src/stat.h
@@ -7,8 +7,8 @@
    see qh-stat.htm and stat.c
 
    copyright (c) 1993-2010 The Geometry Center.
-   $Id: //product/qhull/main/rel/src/stat.h#26 $$Change: 1150 $
-   $DateTime: 2010/01/04 22:43:14 $$Author: bbarber $
+   $Id: //product/qhull/main/rel/src/stat.h#27 $$Change: 1151 $
+   $DateTime: 2010/01/05 19:34:31 $$Author: bbarber $
 
    recompile qhull if you change this file
 
@@ -352,7 +352,7 @@ enum ztypes {zdoc,zinc,zadd,zmax,zmin,ZTYPEreal,wadd,wmax,wmin,ZTYPEend};
   MAYdebugx
     define as maydebug() to be called frequently for error trapping
 */
-#define MAYdebugx 
+#define MAYdebugx
 
 /*-<a                             href="qh-stat.htm#TOC"
   >--------------------------------</a><a name="zdef_">-</a>
diff --git a/src/user.h b/src/user.h
index 03c16a7..868faef 100644
--- a/src/user.h
+++ b/src/user.h
@@ -47,7 +47,7 @@ Code flags --
 
   If add new messages, assign these values and increment.
 
-  def counters = [27, 1047, 2059, 3025, 4068, 5003, 6233, 7078, 8143, 9410]
+  def counters = [27, 1047, 2059, 3025, 4068, 5003, 6233, 7079, 8143, 9410]
 
   See: qh_ERR* [libqhull.h]
 */
diff --git a/src/userprintf.c b/src/userprintf.c
index 0a295c3..4183061 100644
--- a/src/userprintf.c
+++ b/src/userprintf.c
@@ -58,6 +58,9 @@ void qh_fprintf(FILE *fp, int msgcode, const char *fmt, ... ) {
     }
     vfprintf(fp, fmt, args);
     va_end(args);
+
+    /* Place debugging traps here. Use with option 'Tn' */
+
 } /* qh_fprintf */
 
 void qh_fprintf_rbox(FILE *fp, int msgcode, const char *fmt, ... ) {
-- 
GitLab