# HG changeset patch # User Jaroslav Hajek # Date 1283855915 -7200 # Node ID dc74ce93cfc4496b2ada65efe4a71656fb1063a4 # Parent 1094868ca10d66b226e9efa22ea1d97567f114ac initialize GraphicsMagick in all __magick_* functions diff -r 1094868ca10d -r dc74ce93cfc4 src/ChangeLog --- a/src/ChangeLog Tue Sep 07 12:23:01 2010 +0200 +++ b/src/ChangeLog Tue Sep 07 12:38:35 2010 +0200 @@ -1,3 +1,10 @@ +2010-09-07 Jaroslav Hajek + + * DLD-FUNCTIONS/__magick_read__.cc (maybe_initialize_magick): New + helper function. Move initialization code & static variable here. + (F__magick_read__, F__magick_write__, F__magick_finfo__): Call it + here. + 2010-09-03 Jaroslav Hajek * DLD-FUNCTIONS/cquad.cc: New source, courtesy by Pedro Gonnet. diff -r 1094868ca10d -r dc74ce93cfc4 src/DLD-FUNCTIONS/__magick_read__.cc --- a/src/DLD-FUNCTIONS/__magick_read__.cc Tue Sep 07 12:23:01 2010 +0200 +++ b/src/DLD-FUNCTIONS/__magick_read__.cc Tue Sep 07 12:38:35 2010 +0200 @@ -371,18 +371,9 @@ #endif -DEFUN_DLD (__magick_read__, args, nargout, - "-*- texinfo -*-\n\ -@deftypefn {Function File} {@var{m} =} __magick_read__(@var{fname}, @var{index})\n\ -@deftypefnx {Function File} {[@var{m}, @var{colormap}] =} __magick_read__(@var{fname}, @var{index})\n\ -@deftypefnx {Function File} {[@var{m}, @var{colormap}, @var{alpha}] =} __magick_read__(@var{fname}, @var{index})\n\ -Read images with ImageMagick++. In general you should not be using this\n\ -function. Instead you should use @code{imread}.\n\ -@seealso{imread}\n\ -@end deftypefn") +static void +maybe_initialize_magick (void) { - octave_value_list output; - #ifdef HAVE_MAGICK static bool initialized = false; @@ -402,6 +393,24 @@ initialized = true; } +#endif +} + +DEFUN_DLD (__magick_read__, args, nargout, + "-*- texinfo -*-\n\ +@deftypefn {Function File} {@var{m} =} __magick_read__(@var{fname}, @var{index})\n\ +@deftypefnx {Function File} {[@var{m}, @var{colormap}] =} __magick_read__(@var{fname}, @var{index})\n\ +@deftypefnx {Function File} {[@var{m}, @var{colormap}, @var{alpha}] =} __magick_read__(@var{fname}, @var{index})\n\ +Read images with ImageMagick++. In general you should not be using this\n\ +function. Instead you should use @code{imread}.\n\ +@seealso{imread}\n\ +@end deftypefn") +{ + octave_value_list output; + +#ifdef HAVE_MAGICK + + maybe_initialize_magick (); if (args.length () > 3 || args.length () < 1 || ! args(0).is_string () || nargout > 3) @@ -832,6 +841,8 @@ octave_value_list retval; #ifdef HAVE_MAGICK + maybe_initialize_magick (); + int nargin = args.length (); if (nargin > 2) @@ -961,6 +972,8 @@ #ifdef HAVE_MAGICK + maybe_initialize_magick (); + if (args.length () < 1 || ! args (0).is_string ()) { print_usage ();