}
subimage_length=0;
subimage_offset=0;
- p=component;
- if (*p != '\0')
- p=component+strlen(component)-1;
- if ((*p == ']') && (strchr(component,'[') != (char *) NULL) &&
- (IsPathAccessible(path) == MagickFalse) &&
- (strstr(component,"][") == (char *) NULL))
+ p=component+strlen(component)-1;
+ q=strrchr(component,'[');
+ if ((strlen(component) > 2) && (*p == ']') && (q != (char *) NULL) &&
+ ((q == component) || (*(q-1) != ']')) &&
+ (IsPathAccessible(path) == MagickFalse))
{
/*
Look for scene specification (e.g. img0001.pcd[4]).
*/
- for (q=p-1; q > component; q--)
- if (*q == '[')
- break;
- if (*q == '[')
+ *p='\0';
+ if ((IsSceneGeometry(q+1,MagickFalse) == MagickFalse) &&
+ (IsGeometry(q+1) == MagickFalse))
+ *p=']';
+ else
{
- *p='\0';
- if ((IsSceneGeometry(q+1,MagickFalse) == MagickFalse) &&
- (IsGeometry(q+1) == MagickFalse))
- *p=']';
- else
- {
- subimage_length=(size_t) (p-q);
- subimage_offset=magick_length+1+(size_t) (q-component);
- *q='\0';
- }
+ subimage_length=(size_t) (p-q);
+ subimage_offset=magick_length+1+(size_t) (q-component);
+ *q='\0';
}
}
p=component;