[Magick-bugs] Finding fonts (e.g., ghostscript)
Ken Laprade
klaprade at harris.com
Mon Oct 15 07:53:34 PDT 2007
I want to install Ghostscript fonts along with ImageMagick, but I do
not want hard-coded pathnames in "type-ghostscript.xml". This will
allow our software installation to be placed in any arbitrary location
without requiring reconfiguration.
To accomplish this, I suggest allowing "LoadTypeList()" in "type.c" to
find glyph and metric files relative to the "type.xml" location. I
propose this patch:
----------------------------------------
--- ImageMagick-6.3.6/magick/type.c-orig 2007-10-15 10:00:46.502532508 -0400
+++ ImageMagick-6.3.6/magick/type.c 2007-10-15 10:00:19.937219116 -0400
@@ -1075,6 +1075,22 @@
if (strchr(path,'@') != (char *) NULL)
(void) SubstituteString(&path,"@ghostscript_font_path@",font_path);
#endif
+ if (IsAccessible(path) == MagickFalse)
+ {
+ /*
+ If path is not accessible, try prepending filename's directory.
+ */
+ char newpath[MaxTextExtent];
+ GetPathComponent(filename,HeadPath,newpath);
+ if (*newpath != '\0')
+ {
+ (void) ConcatenateMagickString(newpath,DirectorySeparator,
+ MaxTextExtent);
+ (void) ConcatenateMagickString(newpath,path,MaxTextExtent);
+ path=(char *) RelinquishMagickMemory(path);
+ path=ConstantString(newpath);
+ }
+ }
type_info->glyphs=path;
}
attribute=GetXMLTreeAttribute(type,"metrics");
@@ -1088,6 +1104,22 @@
if (strchr(path,'@') != (char *) NULL)
(void) SubstituteString(&path,"@ghostscript_font_path@",font_path);
#endif
+ if (IsAccessible(path) == MagickFalse)
+ {
+ /*
+ If path is not accessible, try prepending filename's directory.
+ */
+ char newpath[MaxTextExtent];
+ GetPathComponent(filename,HeadPath,newpath);
+ if (*newpath != '\0')
+ {
+ (void) ConcatenateMagickString(newpath,DirectorySeparator,
+ MaxTextExtent);
+ (void) ConcatenateMagickString(newpath,path,MaxTextExtent);
+ path=(char *) RelinquishMagickMemory(path);
+ path=ConstantString(newpath);
+ }
+ }
type_info->metrics=path;
}
attribute=GetXMLTreeAttribute(type,"name");
----------------------------------------
--
Ken Laprade Email: klaprade at harris.com
Harris Corporation Voice: (321)984-5727
PO Box 9800, MS W3/31G
Melbourne, FL 32902
More information about the Magick-bugs
mailing list