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);