]> granicus.if.org Git - graphviz/commitdiff
use new gvprintnum routine in -Tps:core
authorellson <devnull@localhost>
Wed, 19 Dec 2007 22:03:36 +0000 (22:03 +0000)
committerellson <devnull@localhost>
Wed, 19 Dec 2007 22:03:36 +0000 (22:03 +0000)
lib/gvc/gvcproc.h
lib/gvc/gvdevice.c
lib/gvc/gvprintnum.c

index a6ab07bf6cc1bb498fcc70f77725ec0503a8cf6a..b8c93f6e47355a0e347f4ebdbe99d3ab300307c2 100644 (file)
@@ -77,9 +77,10 @@ extern "C" {
     extern void gvdevice_format(GVJ_t * job);
     extern void gvdevice_finalize(GVJ_t * job);
 
-    extern char * gvprintnum(int *len, double num);
+    extern unsigned char * gvprintnum(int *len, double num);
     extern void gvdevice_printnum(GVJ_t * job, double num);
     extern void gvdevice_printpointf(GVJ_t * job, pointf p);
+    extern void gvdevice_printpointflist(GVJ_t * job, pointf *p, int n);
 
 /* render */
 
index 4b141f69825a99f7dddec03b92c7c1bd8204e7f5..1cf0d98cc1fd689cd341610eecf1164ab208106e 100644 (file)
@@ -106,7 +106,7 @@ void gvdevice_printf(GVJ_t * job, const char *format, ...)
 
 void gvdevice_printnum(GVJ_t * job, double num)
 {
-    char *buf;
+    unsigned char *buf;
     int len;
 
     buf = gvprintnum(&len, num);
@@ -115,16 +115,27 @@ void gvdevice_printnum(GVJ_t * job, double num)
 
 void gvdevice_printpointf(GVJ_t * job, pointf p)
 {
-    char *buf;
+    unsigned char *buf;
     int len;
 
     buf = gvprintnum(&len, p.x);
     gvdevice_write(job, buf, len);
-    gvdevice_write(job, " ", 1);
+    gvdevice_write(job, (unsigned char*)" ", 1);
     buf = gvprintnum(&len, p.y);
     gvdevice_write(job, buf, len);
 } 
 
+void gvdevice_printpointflist(GVJ_t * job, pointf *p, int n)
+{
+    int i = 0;
+
+    while (TRUE) {
+       gvdevice_printpointf(job, p[i]);
+        if (++i >= n) break;
+        gvdevice_write(job, (unsigned char*)" ", 1);
+    }
+} 
+
 static void auto_output_filename(GVJ_t *job)
 {
     static char *buf;
index 7109e582b98d278e2a38cd41cd907ea0bd42b1ea..4087fa0c96d5f8c0811afd3fa479bb7e32a6e8de 100644 (file)
 #define DECPLACES_SCALE 100
 
 /* use macro so maxnegnum is stated just once for both double and string versions */
-#define val_str(n, x) static double n = x; static char n##str[] = #x;
+#define val_str(n, x) static double n = x; static unsigned char n##str[] = #x;
 val_str(maxnegnum, -999999999999999.99)
 
 /* Note.  Returned string is only good until the next call to gvprintnum */
-char * gvprintnum (int *len, double number)
+unsigned char * gvprintnum (int *len, double number)
 {
-    static char tmpbuf[sizeof(maxnegnumstr)];   /* buffer big enough for worst case */
-    char *result = tmpbuf+sizeof(maxnegnumstr); /* init result to end of tmpbuf */
+    static unsigned char tmpbuf[sizeof(maxnegnumstr)];   /* buffer big enough for worst case */
+    unsigned char *result = tmpbuf+sizeof(maxnegnumstr); /* init result to end of tmpbuf */
     long int N;
     bool showzeros, negative;
     int digit, i;
@@ -61,7 +61,7 @@ char * gvprintnum (int *len, double number)
         N = number + 0.5;
     if (N == 0) {                      /* special case for exactly 0 */
        *len = 1;
-       return "0";
+       return (unsigned char *)"0";
     }
     if ((negative = (N < 0)))          /* avoid "-0" by testing rounded int */
         N = -N;                                /* make number +ve */
@@ -92,7 +92,7 @@ char * gvprintnum (int *len, double number)
 #ifdef GVPRINTNUM_TEST
 int main (int argc, char *argv[])
 {
-    char *buf;
+    unsigned char *buf;
     int len;
 
     double test[] = {