297,300c297,299
< /***************************************
<  * draw all the lateral segments and   *
<  * connect back with the first segment *
<  ***************************************/
---
> /*********************************
>  * draw all the lateral segments *
>  *********************************/
304c303
< for (i = 0; i <= n_contour; i++)
---
> for (i = 0; i < n_contour; i++)
306,307d304
<   if (i == n_contour) {i = 0; n_contour = -1;}
< 
321a319,335
> /***************************************
>  * connect back with the first segment *
>  ***************************************/
> 
> norm [0] = normals[0];
> norm [1] = normals[1];
> gamgi_math_vector_normal (norm);
> glNormal3dv (norm);
>    
> point [0] = contour[0] * scale;
> point [1] = contour[1] * scale;
> point [2] = -depth / 2.0;
> glVertex3dv (point);
>    
> point [2] = depth / 2.0;
> glVertex3dv (point);
> 
364d377
< printf ("glVertex3dv: %f %f %f\n", vertex[0], vertex[1], vertex[2]);
376a390,392
> vertex = (double *) malloc (3 * sizeof (double));
> gamgi_math_vector_copy (coords, vertex);
> 
382,383d397
< vertex = (double *) malloc (3 * sizeof (double));
< gamgi_math_vector_copy (coords, vertex);
385,387c399,400
< 
< extruded->vertices = gamgi_engine_slist_add_start (extruded->vertices);
< extruded->vertices->data = vertex;
---
> extruded->extra = gamgi_engine_slist_add_start (extruded->extra);
> extruded->extra->data = vertex;
397c410
< if (extruded->open == TRUE) gluTessEndContour (extruded->tesselator);
---
> if (extruded->open) gluTessEndContour (extruded->tesselator);
428d440
< printf ("vertex horizontal line: %f %f %f\n", vertex[0], vertex[1], vertex[2]);
494d505
<   printf ("vertex conic 1: %f %f %f\n", vertex[0], vertex[1], vertex[2]);
514d524
< printf ("vertex conic 2: %f %f %f\n", vertex[0], vertex[1], vertex[2]);
601d610
<   printf ("vertex cubic 1: %f %f %f\n", vertex[0], vertex[1], vertex[2]);
623d631
< printf ("vertex cubic 2: %f %f %f\n", vertex[0], vertex[1], vertex[2]);
668,669c676,677
< extruded->last[0] = to->x;
< extruded->last[1] = to->y;
---
> extruded->last[0] = vertex[0];
> extruded->last[1] = vertex[1];
939,940d946
<  *                                                  *
<  *          free vertex lists memory                *
950,956d955
< for (slist = extruded->vertices; slist != NULL; slist = slist->next)
<   {
<   free (slist->data);
<   slist = gamgi_engine_slist_remove_start (slist);
<   }
< extruded->vertices = NULL;
< 
959,960d957
<  *                                                         *
<  *                 free vertex lists memory                *
970,976d966
< for (slist = extruded->vertices; slist != NULL; slist = slist->next)
<   {
<   free (slist->data);
<   slist = gamgi_engine_slist_remove_start (slist);
<   }
< extruded->vertices = NULL;
< 
979,982d968
<  *                                                              *
<  * the FreeType glyph decomposition routine traverses the       *
<  * outlines of the font by calling the various routines stored  *
<  * in extruded. These in turn call the static_extrusion routine *
984a971,976
> /*****************************************************************
>  * the FreeType glyph decomposition routine traverses the        *
>  * outlines of the font by calling the various routines stored   *
>  * in extruded. These in turn call the static_extrusion routine. *
>  *****************************************************************/
> 
1022a1015,1027
> for (slist = extruded->vertices; slist != NULL; slist = slist->next)
>   {
>   free (slist->data);
>   slist = gamgi_engine_slist_remove_start (slist);
>   }
> extruded->vertices = NULL;
> 
> for (slist = extruded->extra; slist != NULL; slist = slist->next)
>   {
>   free (slist->data);
>   slist = gamgi_engine_slist_remove_start (slist);
>   }
> extruded->extra = NULL;
1219a1225
> extruded->extra = NULL;
