Message-Id: <email address hidden> Date: Mon, 09 Jan 2006 10:18:13 -0500 From: Matthias Clasen <email address hidden> To: <email address hidden> Subject:
--=-cZaZ+yaIEggWEBtcfLKc Content-Type: text/plain Content-Transfer-Encoding: 7bit
Ah, got it now. Does this look more complete ?
--=-cZaZ+yaIEggWEBtcfLKc Content-Disposition: attachment; filename=ImageMagick-6.2.5-format-string-again.patch Content-Type: text/x-patch; name=ImageMagick-6.2.5-format-string-again.patch; charset=UTF-8 Content-Transfer-Encoding: 7bit
--- ImageMagick-6.2.5/magick/image.c.format-string-again 2005-10-22 12:17:39.000000000 -0400 +++ ImageMagick-6.2.5/magick/image.c 2006-01-09 10:09:33.000000000 -0500 @@ -2861,8 +2861,16 @@ char format[MaxTextExtent];
+ /* Extract first numeric format specifier */ (void) CopyMagickString(format,p,MaxTextExtent); + if (q-p+1 < MaxTextExtent) + format[q-p+1]='\0'; + /* Expand format */ (void) FormatMagickString(p,MaxTextExtent,format,image_info->scene); + /* Copy rest of string verbatim without further expansion */ + (void) ConcatenateMagickString(filename, + image_info->filename+(q-filename)+1, + MaxTextExtent); break; } } --- ImageMagick-6.2.5/magick/blob.c.format-string-again 2005-09-28 15:00:17.000000000 -0400 +++ ImageMagick-6.2.5/magick/blob.c 2006-01-09 10:09:33.000000000 -0500 @@ -2135,8 +2135,17 @@ char format[MaxTextExtent];
+ /* Extract first numeric format specifier */ (void) CopyMagickString(format,p,MaxTextExtent); + if (q-p+1 < MaxTextExtent) + format[q-p+1]='\0'; + /* Expand format */ (void) FormatMagickString(p,MaxTextExtent,format,image->scene); + /* Copy rest of string verbatim without further expansion */ + (void) ConcatenateMagickString(filename, + image_info->filename+(q-filename)+1, + MaxTextExtent); + break; } } --- ImageMagick-6.2.5/magick/animate.c.format-string-again 2005-10-23 22:15:16.000000000 -0400 +++ ImageMagick-6.2.5/magick/animate.c 2006-01-09 10:15:17.000000000 -0500 @@ -606,8 +606,33 @@ /* Form filename for multi-part images. */ - (void) FormatMagickString(filename,MaxTextExtent, - image_info->filename,scene); + (void) CopyMagickString(filename,image->filename,MaxTextExtent); + for (p=strchr(filename,'%'); p != (char *) NULL; p=strchr(p+1,'%')) + { + char + *q; + + q=p+1; + if (*q == '0') + (void) strtol(q,&q,10); + if ((*q == '%') || (*q == 'd') || (*q == 'o') || (*q == 'x')) + { + char + format[MaxTextExtent]; + + /* Extract first numeric format specifier */ + (void) CopyMagickString(format,p,MaxTextExtent); + if (q-p+1 < MaxTextExtent) + format[q-p+1]='\0'; + /* Expand format */ + (void) FormatMagickString(p,MaxTextExtent,format,image->scene); + /* Copy rest of string verbatim without further expansion */ + (void) ConcatenateMagickString(filename, + image_info->filename+(q-filename)+1, + MaxTextExtent); + break; + } + } if (LocaleCompare(filename,image_info->filename) == 0) (void) FormatMagickString(filename,MaxTextExtent,"%s[%lu]", image_info->filename,scene);
--=-cZaZ+yaIEggWEBtcfLKc--
Message-Id: <email address hidden>
Date: Mon, 09 Jan 2006 10:18:13 -0500
From: Matthias Clasen <email address hidden>
To: <email address hidden>
Subject:
--=-cZaZ+ yaIEggWEBtcfLKc Transfer- Encoding: 7bit
Content-Type: text/plain
Content-
Ah, got it now. Does this look more complete ?
--=-cZaZ+ yaIEggWEBtcfLKc Disposition: attachment; filename= ImageMagick- 6.2.5-format- string- again.patch k-6.2.5- format- string- again.patch; charset=UTF-8 Transfer- Encoding: 7bit
Content-
Content-Type: text/x-patch; name=ImageMagic
Content-
--- ImageMagick- 6.2.5/magick/ image.c. format- string- again 2005-10-22 12:17:39.000000000 -0400 6.2.5/magick/ image.c 2006-01-09 10:09:33.000000000 -0500
format[ MaxTextExtent] ;
+++ ImageMagick-
@@ -2861,8 +2861,16 @@
char
+ /* Extract first numeric format specifier */ g(format, p,MaxTextExtent ); ing(p,MaxTextEx tent,format, image_info- >scene) ; ckString( filename, >filename+ (q-filename) +1, 6.2.5/magick/ blob.c. format- string- again 2005-09-28 15:00:17.000000000 -0400 6.2.5/magick/ blob.c 2006-01-09 10:09:33.000000000 -0500
format[ MaxTextExtent] ;
(void) CopyMagickStrin
+ if (q-p+1 < MaxTextExtent)
+ format[q-p+1]='\0';
+ /* Expand format */
(void) FormatMagickStr
+ /* Copy rest of string verbatim without further expansion */
+ (void) ConcatenateMagi
+ image_info-
+ MaxTextExtent);
break;
}
}
--- ImageMagick-
+++ ImageMagick-
@@ -2135,8 +2135,17 @@
char
+ /* Extract first numeric format specifier */ g(format, p,MaxTextExtent ); ing(p,MaxTextEx tent,format, image-> scene); ckString( filename, >filename+ (q-filename) +1, 6.2.5/magick/ animate. c.format- string- again 2005-10-23 22:15:16.000000000 -0400 6.2.5/magick/ animate. c 2006-01-09 10:15:17.000000000 -0500
Form filename for multi-part images. ing(filename, MaxTextExtent, >filename, scene); g(filename, image-> filename, MaxTextExtent) ; filename, '%'); p != (char *) NULL; p=strchr(p+1,'%')) MaxTextExtent] ; g(format, p,MaxTextExtent ); ing(p,MaxTextEx tent,format, image-> scene); ckString( filename, >filename+ (q-filename) +1, filename, image_info- >filename) == 0)
(void) FormatMagickStr ing(filename, MaxTextExtent, "%s[%lu] ",
image_ info->filename, scene);
(void) CopyMagickStrin
+ if (q-p+1 < MaxTextExtent)
+ format[q-p+1]='\0';
+ /* Expand format */
(void) FormatMagickStr
+ /* Copy rest of string verbatim without further expansion */
+ (void) ConcatenateMagi
+ image_info-
+ MaxTextExtent);
+
break;
}
}
--- ImageMagick-
+++ ImageMagick-
@@ -606,8 +606,33 @@
/*
*/
- (void) FormatMagickStr
- image_info-
+ (void) CopyMagickStrin
+ for (p=strchr(
+ {
+ char
+ *q;
+
+ q=p+1;
+ if (*q == '0')
+ (void) strtol(q,&q,10);
+ if ((*q == '%') || (*q == 'd') || (*q == 'o') || (*q == 'x'))
+ {
+ char
+ format[
+
+ /* Extract first numeric format specifier */
+ (void) CopyMagickStrin
+ if (q-p+1 < MaxTextExtent)
+ format[q-p+1]='\0';
+ /* Expand format */
+ (void) FormatMagickStr
+ /* Copy rest of string verbatim without further expansion */
+ (void) ConcatenateMagi
+ image_info-
+ MaxTextExtent);
+ break;
+ }
+ }
if (LocaleCompare(
--=-cZaZ+ yaIEggWEBtcfLKc --