* random.c, spgrid.[ch]: Fix warnings with hope that I didn't broke
	  anything. These floats to longs and vice versa casts are starnge
	  indeed.
	* isis_pdu.c: As we don't use %z for size_t for now because we support
	  older compilers, cast them to unsigned long.

	Also fix previous changelog entry. Isisd compiles cleanly now again.
diff --git a/isisd/topology/random.c b/isisd/topology/random.c
index d4ef995..6ee17a0 100644
--- a/isisd/topology/random.c
+++ b/isisd/topology/random.c
@@ -10,11 +10,11 @@
 #include <sys/types.h>
 #include <sys/times.h>
 
-float timer()
+unsigned long timer()
    { struct tms hold;
 
         times(&hold);
-        return  (float)(hold.tms_utime) / 60.0;
+        return (unsigned long) ((float) (hold.tms_utime) / 60.0);
    }
 
 
@@ -84,6 +84,7 @@
   return (long) internal_seed ;
 }
 
+#if 0 /* Not used. */
 /*********************************************************************/
 /*                                                                   */
 /*              computer independent variant of  irand               */
@@ -106,14 +107,14 @@
   internal_seed = ( (((is2 * A1) + (is1 * A2))% T16 )* T15 + (is2 * A2) ) & B;
   return (long) ( internal_seed ) ;
 }
-
+#endif
 
 /*********************************************************************/
 
 
 double rand01()
 
-{ return  (double) irand() / BF ;
+{ return  (double) (irand() / BF) ;
 }
   
 /*********************************************************************/
diff --git a/isisd/topology/spgrid.c b/isisd/topology/spgrid.c
index bde0f95..a1aa6d7 100644
--- a/isisd/topology/spgrid.c
+++ b/isisd/topology/spgrid.c
@@ -26,7 +26,7 @@
 
 #define NODE( x, y ) (x*Y + y + 1)
 
-char   *graph_type[] =  {
+const char   *graph_type[] =  {
   "double cycle",
   "cycle",
   "path"
@@ -227,7 +227,7 @@
 /* parsing  parameters */
 /* checks the validity of incoming parameters */
 int
-spgrid_check_params ( struct vty *vty, int argc, char **argv)
+spgrid_check_params ( struct vty *vty, int argc, const char **argv)
 {
 /* initialized by default values */
   ext=0;
@@ -341,11 +341,11 @@
         switch ( args[2] ) {
           case 'l': /* upper bound of the interval */
             cl_f = 1;
-            cl  =  (long) atof ( &args[3] );
+            cl  =  atol ( &args[3] );
             break;
           case 'm': /* lower bound */
             cm_f = 1;
-            cm  = (long ) atof ( &args[3] );
+            cm  = atol ( &args[3] );
             break;
           case 'c': /* type - cycle */
             cw_f = 1;
@@ -372,15 +372,15 @@
           {
           case 'l': /* upper bound of the interval */
             al_f = 1;
-            al  =  (long) atof ( &args[3] );
+            al  =  atol ( &args[3] );
             break;
           case 'm': /* lower bound */
             am_f = 1;
-            am  = (long ) atof ( &args[3] );
+            am  = atol ( &args[3] );
             break;
           case 'x': /* number of additional arcs */
             ax_f = 1;
-            ax   = (long ) atof ( &args[3] );
+            ax   = atol ( &args[3] );
             if ( ax < 0 )
              {
                usage (vty);
@@ -404,11 +404,11 @@
           {
           case 'l': /* upper bound */
             il_f = 1;
-            il  =  (long) atof ( &args[3] );
+            il  =  atol ( &args[3] );
             break;
           case 'm': /* lower bound */
             im_f = 1;
-            im  = (long ) atof ( &args[3] );
+            im  = atol ( &args[3] );
             break;
           case 'n': /* additional length: l *= in*|i1-i2| */
             in_f = 1;
@@ -452,11 +452,11 @@
           {
           case 'l': /* upper bound of art. arc */
             sl_f = 1;
-            sl  =  (long) atof ( &args[3] );
+            sl  =  atol ( &args[3] );
             break;
           case 'm': /* lower bound of art. arc */
             sm_f = 1;
-            sm  =  (long) atof ( &args[3] );
+            sm  =  atol ( &args[3] );
             break;
           default:  /* unknown switch  value */
             usage (vty);
@@ -473,11 +473,11 @@
           {
           case 'l': /* upper bound */
             pl_f = 1;
-            pl  =  (long) atof ( &args[3] );
+            pl  =  atol ( &args[3] );
             break;
           case 'm': /* lower bound */
             pm_f = 1;
-            pm  = (long ) atof ( &args[3] );
+            pm  = atol ( &args[3] );
             break;
           case 'n': /* additional: p *= pn*(x+1) */
             pn_f = 1;
diff --git a/isisd/topology/spgrid.h b/isisd/topology/spgrid.h
index f96c00f..1c1ceea 100644
--- a/isisd/topology/spgrid.h
+++ b/isisd/topology/spgrid.h
@@ -33,7 +33,7 @@
 };
 
 int           gen_spgrid_topology (struct vty *vty, struct list *topology);
-int           spgrid_check_params (struct vty *vty, int argc, char **argv);
+int           spgrid_check_params (struct vty *vty, int argc, const char **argv);
 
 
 #endif /* _ZEBRA_ISIS_TOPOLOGY_SPGRID_H */