--- ray/src/common/lamps.c 1990/12/08 09:28:16 1.1 +++ ray/src/common/lamps.c 1990/12/14 13:12:28 1.3 @@ -114,7 +114,7 @@ char *file; lastp = lp; } fclose(fp); - return(1); + return(lastp != NULL); memerr: fputs("Out of memory in loadlamps\n", stderr); return(-1); @@ -122,4 +122,22 @@ fmterr: fputs(buf, stderr); fprintf(stderr, "%s: %s\n", file, cp1); return(-1); +} + + +freelamps() /* free our lamps list */ +{ + register LAMP *lp1, *lp2; + + for (lp1 = lamps; lp1 != NULL; lp1 = lp1->next) { + free(lp1->pattern); + if (lp1->color != NULL) { + for (lp2 = lp1->next; lp2 != NULL; lp2 = lp2->next) + if (lp2->color == lp1->color) + lp2->color = NULL; + free((char *)lp1->color); + } + free((char *)lp1); + } + lamps = NULL; }