/* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % A p p e n d I m a g e T o L i s t % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % AppendImageToList() appends an image to the end of the list. % % The format of the AppendImageToList method is: % % AppendImageToList(Image *images,const Image *image) % % A description of each parameter follows: % % o images: The image list. % % o image: The image. % % */ MagickExport void AppendImageToList(Image **images,const Image *image) { register Image *p; assert(images != (Image **) NULL); if (image == (Image *) NULL) return; assert(image->signature == MagickSignature); if (image->debug != MagickFalse) (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename); RelinquishImageResources(image); if ((*images) == (Image *) NULL) { *images=(Image *) image; return; } assert((*images)->signature == MagickSignature); for (p=(*images); p->next != (Image *) NULL; p=p->next); p->next=(Image *) image; p->next->previous=p; SyncImageList(*images); }
/* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % A p p e n d I m a g e T o L i s t % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % AppendImageToList() appends the second image list to the end of the first % list. The given image list pointer is left unchanged, unless it was empty. % % The format of the AppendImageToList method is: % % AppendImageToList(Image *images,const Image *image) % % A description of each parameter follows: % % o images: the image list to be appended to. % % o image: the appended image or image list. % */ MagickExport void AppendImageToList(Image **images,const Image *image) { register Image *p, *q; assert(images != (Image **) NULL); if (image == (Image *) NULL) return; assert(image->signature == MagickSignature); if (image->debug != MagickFalse) (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename); if ((*images) == (Image *) NULL) { *images=(Image *) image; return; } assert((*images)->signature == MagickSignature); p=GetLastImageInList(*images); q=GetFirstImageInList(image); p->next=q; q->previous=p; SyncImageList(*images); }