1 /* Last non-groff version: hpoint.c 1.1 84/10/08 */ 2 3 /* 4 * This file contains routines for manipulating the point data structures 5 * for the gremlin picture editor. 6 */ 7 8 #include <stdlib.h> 9 #include "gprint.h" 10 11 12 /* 13 * Return pointer to empty point list. 14 */ 15 POINT * PTInit()16PTInit() 17 { 18 return ((POINT *) NULL); 19 } 20 21 22 /* 23 * This routine creates a new point with coordinates x and y and links it 24 * into the pointlist. 25 */ 26 POINT * PTMakePoint(double x,double y,POINT ** pplist)27PTMakePoint(double x, 28 double y, 29 POINT **pplist) 30 { 31 register POINT *pt; 32 33 if (Nullpoint(pt = *pplist)) { /* empty list */ 34 *pplist = (POINT *) malloc(sizeof(POINT)); 35 pt = *pplist; 36 } else { 37 while (!Nullpoint(pt->nextpt)) 38 pt = pt->nextpt; 39 pt->nextpt = (POINT *) malloc(sizeof(POINT)); 40 pt = pt->nextpt; 41 } 42 43 pt->x = x; 44 pt->y = y; 45 pt->nextpt = PTInit(); 46 return (pt); 47 } /* end PTMakePoint */ 48 49 /* EOF */ 50