#if defined(MAGICKCORE_GS_DELEGATE)
#include "ghostscript/iapi.h"
#include "ghostscript/ierrors.h"
+#else
+typedef struct gsapi_revision_s
+{
+ const char *product;
+ const char *copyright;
+ long revision;
+ long revisiondate;
+} gsapi_revision_t;
#endif
#if defined(__cplusplus) || defined(c_plusplus)
(MagickDLLCall *set_stdio)(gs_main_instance *,int(MagickDLLCall *)(void *,
char *,int),int(MagickDLLCall *)(void *,const char *,int),
int(MagickDLLCall *)(void *,const char *,int));
+
+ int
+ (MagickDLLCall *revision)(gsapi_revision_t *, int);
} GhostInfo;
extern MagickPrivate MagickBooleanType
return(FALSE);
}
(void) ResetMagickMemory((void *) &ghost_info,0,sizeof(GhostInfo));
- ghost_info.delete_instance=(void (MagickDLLCall *) (gs_main_instance *)) (
+ ghost_info.delete_instance=(void (MagickDLLCall *)(gs_main_instance *)) (
lt_dlsym(ghost_handle,"gsapi_delete_instance"));
ghost_info.exit=(int (MagickDLLCall *)(gs_main_instance*))
lt_dlsym(ghost_handle,"gsapi_exit");
MagickDLLCall *)(void *,char *,int),int(MagickDLLCall *)(void *,
const char *,int),int(MagickDLLCall *)(void *,const char *,int)))
(lt_dlsym(ghost_handle,"gsapi_set_stdio"));
+ ghost_info.revision=(int (MagickDLLCall *)(gsapi_revision_t *,int)) (
+ lt_dlsym(ghost_handle,"gsapi_revision"));
UnlockSemaphoreInfo(ghost_semaphore);
if ((ghost_info.delete_instance == NULL) || (ghost_info.exit == NULL) ||
(ghost_info.init_with_args == NULL) || (ghost_info.new_instance == NULL)
- || (ghost_info.run_string == NULL) || (ghost_info.set_stdio == NULL)
- )
+ || (ghost_info.run_string == NULL) || (ghost_info.set_stdio == NULL) ||
+ (ghost_info.revision == NULL))
return(FALSE);
return(TRUE);
}
gs_main_instance
*interpreter;
+ gsapi_revision_t
+ revision;
+
int
argc,
code;
ghost_info_struct.set_stdio=(int (*)(gs_main_instance *,int(*)(void *,char *,
int),int(*)(void *,const char *,int),int(*)(void *, const char *, int)))
gsapi_set_stdio;
+ ghost_info_struct.revision=(int (*)(gsapi_revision_t *,int)) gsapi_revision;
#endif
if (ghost_info == (GhostInfo *) NULL)
ExecuteGhostscriptCommand(command,status);
+ if ((ghost_info->revision)(&revision,sizeof(revision)) != 0)
+ revision.revision=0;
if (verbose != MagickFalse)
{
- (void) fputs("[ghostscript library]",stdout);
+ (void) fprintf(stdout,"[ghostscript library %.2f]",
+ (double)revision.revision / 100);
SetArgsStart(command,args_start);
(void) fputs(args_start,stdout);
}
SetArgsStart(command,args_start);
if (status == -101) /* quit */
(void) FormatLocaleString(message,MaxTextExtent,
- "[ghostscript library]%s: %s",args_start,errors);
+ "[ghostscript library %.2f]%s: %s",(double)revision.revision / 100,
+ args_start,errors);
else
{
(void) ThrowMagickException(exception,GetMagickModule(),
- DelegateError,"PDFDelegateFailed","`[ghostscript library]%s': %s",
- args_start,errors);
+ DelegateError,"PDFDelegateFailed",
+ "`[ghostscript library %.2f]%s': %s",
+ (double)revision.revision / 100,args_start,errors);
if (errors != (char *) NULL)
errors=DestroyString(errors);
(void) LogMagickEvent(CoderEvent,GetMagickModule(),
gs_main_instance
*interpreter;
+ gsapi_revision_t
+ revision;
+
int
argc,
code;
ghost_info_struct.set_stdio=(int (*)(gs_main_instance *,int(*)(void *,char *,
int),int(*)(void *,const char *,int),int(*)(void *, const char *, int)))
gsapi_set_stdio;
+ ghost_info_struct.revision=(int (*)(gsapi_revision_t *,int)) gsapi_revision;
#endif
if (ghost_info == (GhostInfo *) NULL)
ExecuteGhostscriptCommand(command,status);
+ if ((ghost_info->revision)(&revision,sizeof(revision)) != 0)
+ revision.revision=0;
if (verbose != MagickFalse)
{
- (void) fputs("[ghostscript library]",stdout);
+ (void) fprintf(stdout,"[ghostscript library %.2f]",
+ (double)revision.revision / 100);
SetArgsStart(command,args_start);
(void) fputs(args_start,stdout);
}
SetArgsStart(command,args_start);
if (status == -101) /* quit */
(void) FormatLocaleString(message,MaxTextExtent,
- "[ghostscript library]%s: %s",args_start,errors);
+ "[ghostscript library %.2f]%s: %s",(double)revision.revision / 100,
+ args_start,errors);
else
{
(void) ThrowMagickException(exception,GetMagickModule(),
DelegateError,"PostscriptDelegateFailed",
- "`[ghostscript library]%s': %s",args_start,errors);
+ "`[ghostscript library %.2f]%s': %s",
+ (double)revision.revision / 100,args_start,errors);
if (errors != (char *) NULL)
errors=DestroyString(errors);
(void) LogMagickEvent(CoderEvent,GetMagickModule(),