From 2f4741f1afab21ed9cdbf40a20d3f6e8e00a0b69 Mon Sep 17 00:00:00 2001 From: cristy Date: Mon, 1 Nov 2010 23:29:42 +0000 Subject: [PATCH] --- ChangeLog | 2 ++ coders/xpm.c | 10 ++++++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 925cb660d..0fa31df94 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,8 @@ 2010-10-30 6.6.5-5 Cristy * Do not read configure files in the current directory for the "installed" version of ImageMagick. + * Allow numeric characters in the XPM basename (reference + http://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=17385). 2010-10-29 6.6.5-4 Glenn Randers-Pehrson * Revised PNG palette optimization diff --git a/coders/xpm.c b/coders/xpm.c index a5eed36e3..c95f475b0 100644 --- a/coders/xpm.c +++ b/coders/xpm.c @@ -139,11 +139,11 @@ static MagickBooleanType IsXPM(const unsigned char *magick,const size_t length) */ static int CompareXPMColor(const void *target,const void *source) -{ +{ const char *p, *q; - + p=(const char *) target; q=(const char *) source; return(strcmp(p,q)); @@ -968,8 +968,10 @@ static MagickBooleanType WriteXPMImage(const ImageInfo *image_info,Image *image) (void) FormatMagickString(buffer,MaxTextExtent,"xpm_%s",basename); (void) CopyMagickString(basename,buffer,MaxTextExtent); } - for (i=0; basename[i] != '\0'; i++) - if (isalpha((int) ((unsigned char) basename[i])) == 0) + if (isalpha((int) ((unsigned char) basename[0])) == 0) + basename[0]='_'; + for (i=1; basename[i] != '\0'; i++) + if (isalnum((int) ((unsigned char) basename[i])) == 0) basename[i]='_'; (void) FormatMagickString(buffer,MaxTextExtent, "static char *%s[] = {\n",basename); -- 2.40.0