Remove page_index and page_total from Image Structure (failured method)
diff --git a/ChangeLog b/ChangeLog
index ab5716a..6568964 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,6 @@
+2011-03-25 6.6.8-7 Anthony Thyssen <A.Thyssen@griffith...>
+ * Removed the fix for %p and %n escapes, as it was not working right
+
2011-03-24 6.6.8-7 Cristy <quetzlzacatenango@image...>
* New version 6.6.8-7.
diff --git a/magick/constitute.c b/magick/constitute.c
index c4593bb..d5f5b05 100644
--- a/magick/constitute.c
+++ b/magick/constitute.c
@@ -635,7 +635,6 @@
*profile;
next->taint=MagickFalse;
- next->page_index = next->page_total= 0;
GetPathComponent(magick_filename,MagickPath,magick_path);
if (*magick_path == '\0')
(void) CopyMagickString(next->magick,magick,MaxTextExtent);
diff --git a/magick/fx.c b/magick/fx.c
index e5e5ad2..bb91bd2 100644
--- a/magick/fx.c
+++ b/magick/fx.c
@@ -1753,7 +1753,7 @@
case 'n':
{
if (LocaleCompare(symbol,"n") == 0)
- return((MagickRealType) image->page_total);
+ return((MagickRealType) GetImageListLength(fx_info->images));
break;
}
case 'O':
@@ -1811,7 +1811,7 @@
case 't':
{
if (LocaleCompare(symbol,"t") == 0)
- return((MagickRealType) image->page_index);
+ return((MagickRealType) fx_info->images->scene);
break;
}
case 'W':
diff --git a/magick/image.h b/magick/image.h
index 40251c9..de495bb 100644
--- a/magick/image.h
+++ b/magick/image.h
@@ -336,10 +336,6 @@
MagickBooleanType
ping;
-
- size_t
- page_index, /* %p current index in working image sequence */
- page_total; /* %n total pages in working image sequence */
};
diff --git a/magick/list.c b/magick/list.c
index 29fcb95..494f224 100644
--- a/magick/list.c
+++ b/magick/list.c
@@ -907,60 +907,6 @@
% %
% %
% %
-+ P a g e I n d e x I m a g e L i s t %
-% %
-% %
-% %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% PageIndexImageList() synchronizes the page_index and page_total values
-% in the image list.
-%
-% These values are used by InterpretImageProperties() to set %p and %n
-% percent escapes. The value is preserved, even if the image is later removed
-% from the list using RemoveFirstImageFromList() for individual image
-% processing.
-%
-% The format of the PageIndexImageList method is:
-%
-% void PageIndexImageList(Image *images)
-%
-% A description of each parameter follows:
-%
-% o images: the image list.
-%
-*/
-MagickExport void PageIndexImageList(Image *images)
-{
- register size_t
- p,n;
-
- if (images == (Image *) NULL)
- return;
- assert(images->signature == MagickSignature);
- if (images->debug != MagickFalse)
- (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",images->filename);
-
- /* find start for image counting */
- while (images->previous != (Image *) NULL)
- images=images->previous;
-
- /* count up images - find end */
- n=1;
- while (images->next != (Image *) NULL)
- images=images->next, n++;
-
- /* set page_index and page_total attributes */
- p=n-1;
- for (; images != (Image *) NULL; images=images->previous)
- images->page_index=p--, images->page_total=(size_t) n;
-}
-
-/*
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% %
-% %
-% %
% P r e p e n d I m a g e T o L i s t %
% %
% %
diff --git a/magick/list.h b/magick/list.h
index e1941a4..0d96707 100644
--- a/magick/list.h
+++ b/magick/list.h
@@ -52,7 +52,6 @@
DeleteImageFromList(Image **),
DeleteImages(Image **,const char *,ExceptionInfo *),
InsertImageInList(Image **,Image *),
- PageIndexImageList(Image *),
PrependImageToList(Image **,Image *),
ReplaceImageInList(Image **,Image *),
ReverseImageList(Image **),
diff --git a/magick/property.c b/magick/property.c
index 9a5b2f4..8afe29d 100644
--- a/magick/property.c
+++ b/magick/property.c
@@ -2352,8 +2352,16 @@
{
if (LocaleNCompare("page",property,4) == 0)
{
- FormatMagickString(value,MaxTextExtent,"%.20g",(double)
- image->page_index+1);
+ register const Image
+ *p;
+
+ size_t
+ page;
+
+ p=image;
+ for (page=1; GetPreviousImageInList(p) != (Image *) NULL; page++)
+ p=GetPreviousImageInList(p);
+ (void) FormatMagickString(value,MaxTextExtent,"%.20g",(double) page);
break;
}
break;
@@ -2794,7 +2802,8 @@
/*
Number of images in the list.
*/
- q+=FormatMagickString(q,extent,"%.20g",(double) image->page_total);
+ q+=FormatMagickString(q,extent,"%.20g",(double) GetImageListLength(
+ image));
break;
}
case 'o':
@@ -2807,10 +2816,19 @@
}
case 'p':
{
+ register const Image
+ *p;
+
+ size_t
+ page;
+
/*
Image page number.
*/
- q+=FormatMagickString(q,extent,"%.20g",(double) image->page_index);
+ p=image;
+ for (page=1; GetPreviousImageInList(p) != (Image *) NULL; page++)
+ p=GetPreviousImageInList(p);
+ q+=FormatMagickString(q,extent,"%.20g",(double) page);
break;
}
case 'q':
diff --git a/wand/identify.c b/wand/identify.c
index 8b95826..c6fe54b 100644
--- a/wand/identify.c
+++ b/wand/identify.c
@@ -322,7 +322,6 @@
continue;
AppendImageStack(images);
FinalizeImageSettings(image_info,image,MagickFalse);
- PageIndexImageList(images);
for ( ; image != (Image *) NULL; image=GetNextImageInList(image))
{
if (image->scene == 0)
diff --git a/wand/mogrify.c b/wand/mogrify.c
index fa00c0c..6b30d7d 100644
--- a/wand/mogrify.c
+++ b/wand/mogrify.c
@@ -7705,7 +7705,6 @@
(*images)->filename);
if ((argc <= 0) || (*argv == (char *) NULL))
return(MagickTrue);
- PageIndexImageList(*images);
mogrify_info=CloneImageInfo(image_info);
quantize_info=AcquireQuantizeInfo(mogrify_info);
channel=mogrify_info->channel;
@@ -8047,7 +8046,6 @@
*fx_image;
(void) SyncImagesSettings(mogrify_info,*images);
- PageIndexImageList(*images);
fx_image=FxImageChannel(*images,channel,argv[i+1],exception);
if (fx_image == (Image *) NULL)
{
@@ -8691,12 +8689,11 @@
return(MagickTrue);
(void) SetImageInfoProgressMonitor(image_info,(MagickProgressMonitor) NULL,
(void *) NULL);
+ mogrify_images=NewImageList();
+ number_images=GetImageListLength(*images);
status=0;
if (post == MagickFalse)
status&=MogrifyImageList(image_info,argc,argv,images,exception);
- PageIndexImageList(*images);
- number_images=(*images)->page_total;
- mogrify_images=NewImageList();
for (i=0; i < (ssize_t) number_images; i++)
{
image=RemoveFirstImageFromList(images);