% November 1998 %
% %
% %
-% Copyright 1999-2011 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2012 ImageMagick Studio LLC, a non-profit organization %
% dedicated to making software imaging solutions freely available. %
% %
% You may not use this file except in compliance with the License. You may %
#include "MagickCore/mime-private.h"
#include "MagickCore/module.h"
#include "MagickCore/module-private.h"
-#if defined(MAGICKCORE_WINDOWS_SUPPORT)
-# include "MagickCore/nt-feature.h"
-#endif
+#include "MagickCore/nt-base-private.h"
#include "MagickCore/random-private.h"
#include "MagickCore/registry.h"
#include "MagickCore/registry-private.h"
*/
MagickExport int GetMagickPrecision(void)
{
-#define MagickPrecision 6
-
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"...");
- if (SetMagickPrecision(0) == 0)
- {
- char
- *limit;
-
- (void) SetMagickPrecision(MagickPrecision);
- limit=GetEnvironmentValue("MAGICK_PRECISION");
- if (limit == (char *) NULL)
- limit=GetPolicyValue("precision");
- if (limit != (char *) NULL)
- {
- (void) SetMagickPrecision(StringToInteger(limit));
- limit=DestroyString(limit);
- }
- }
return(SetMagickPrecision(0));
}
\f
% o magick: Specifies the image format.
%
*/
-MagickExport MagickBooleanType IsMagickConflict(const char *magick)
+MagickPrivate MagickBooleanType IsMagickConflict(const char *magick)
{
assert(magick != (char *) NULL);
#if defined(macintosh)
Set client name and execution path.
*/
(void) GetExecutionPath(execution_path,MaxTextExtent);
- if ((path != (const char *) NULL) && (*path != '\0'))
+ if ((path != (const char *) NULL) && (*path == *DirectorySeparator) &&
+ (IsPathAccessible(path) != MagickFalse))
(void) CopyMagickString(execution_path,path,MaxTextExtent);
GetPathComponent(execution_path,TailPath,filename);
(void) SetClientName(filename);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% SetMagickPrecision() sets the maximum number of significant digits to be
-% printed and returns it.
+% printed.
+%
+% An input argument of 0 returns the current precision setting.
+%
+% A negative value forces the precision to reset to a default value according
+% to the environment variable "MAGICK_PRECISION", the current 'policy'
+% configuration setting, or the default value of '6', in that order.
%
% The format of the SetMagickPrecision method is:
%
*/
MagickExport int SetMagickPrecision(const int precision)
{
+#define MagickPrecision 6
+
static int
magick_precision = 0;
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"...");
- if (precision != 0)
+ if (precision > 0)
magick_precision=precision;
+ if ((precision < 0) || (magick_precision == 0))
+ {
+ char
+ *limit;
+
+ /*
+ Precision reset, or it has not been set yet
+ */
+ magick_precision = MagickPrecision;
+ limit=GetEnvironmentValue("MAGICK_PRECISION");
+ if (limit == (char *) NULL)
+ limit=GetPolicyValue("precision");
+ if (limit != (char *) NULL)
+ {
+ magick_precision=StringToInteger(limit);
+ limit=DestroyString(limit);
+ }
+ }
return(magick_precision);
}
\f