From 4f96a1de597ca70d584f9ff85bfa300e8618ba7c Mon Sep 17 00:00:00 2001 From: cristy Date: Sat, 4 Jan 2014 15:31:36 +0000 Subject: [PATCH] --- MagickCore/image.c | 80 ++++++++++++++++++++++------------------------ 1 file changed, 38 insertions(+), 42 deletions(-) diff --git a/MagickCore/image.c b/MagickCore/image.c index 3016bd18d..29f195610 100644 --- a/MagickCore/image.c +++ b/MagickCore/image.c @@ -2379,50 +2379,46 @@ MagickExport MagickBooleanType SetImageInfo(ImageInfo *image_info, (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s", image_info->filename); *subimage='\0'; - if (frames == 0) + GetPathComponent(image_info->filename,SubimagePath,subimage); + if (*subimage != '\0') { - GetPathComponent(image_info->filename,SubimagePath,subimage); - if (*subimage != '\0') + /* + Look for scene specification (e.g. img0001.pcd[4]). + */ + if (IsSceneGeometry(subimage,MagickFalse) == MagickFalse) { - /* - Look for scene specification (e.g. img0001.pcd[4]). - */ - if (IsSceneGeometry(subimage,MagickFalse) == MagickFalse) - { - if (IsGeometry(subimage) != MagickFalse) - (void) CloneString(&image_info->extract,subimage); - } - else - { - size_t - first, - last; - - (void) CloneString(&image_info->scenes,subimage); - image_info->scene=StringToUnsignedLong(image_info->scenes); - image_info->number_scenes=image_info->scene; - p=image_info->scenes; - for (q=(char *) image_info->scenes; *q != '\0'; p++) - { - while ((isspace((int) ((unsigned char) *p)) != 0) || - (*p == ',')) - p++; - first=(size_t) strtol(p,&q,10); - last=first; - while (isspace((int) ((unsigned char) *q)) != 0) - q++; - if (*q == '-') - last=(size_t) strtol(q+1,&q,10); - if (first > last) - Swap(first,last); - if (first < image_info->scene) - image_info->scene=first; - if (last > image_info->number_scenes) - image_info->number_scenes=last; - p=q; - } - image_info->number_scenes-=image_info->scene-1; - } + if (IsGeometry(subimage) != MagickFalse) + (void) CloneString(&image_info->extract,subimage); + } + else + { + size_t + first, + last; + + (void) CloneString(&image_info->scenes,subimage); + image_info->scene=StringToUnsignedLong(image_info->scenes); + image_info->number_scenes=image_info->scene; + p=image_info->scenes; + for (q=(char *) image_info->scenes; *q != '\0'; p++) + { + while ((isspace((int) ((unsigned char) *p)) != 0) || (*p == ',')) + p++; + first=(size_t) strtol(p,&q,10); + last=first; + while (isspace((int) ((unsigned char) *q)) != 0) + q++; + if (*q == '-') + last=(size_t) strtol(q+1,&q,10); + if (first > last) + Swap(first,last); + if (first < image_info->scene) + image_info->scene=first; + if (last > image_info->number_scenes) + image_info->number_scenes=last; + p=q; + } + image_info->number_scenes-=image_info->scene-1; } } *extension='\0'; -- 2.40.0