+++ /dev/null
-/*
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% %
-% %
-% SSS CCC RRRR III PPPP TTTTT TTTTT OOO K K EEEE N N %
-% S C R R I P P T T O O K K E NN N %
-% SSS C RRRR I PPPP T T O O KK EEE N N N %
-% S C R R I P T T O O K K E N NN %
-% SSSS CCC R RR III P T T OOO K K EEEE N N %
-% %
-% TTTTT EEEEE SSSSS TTTTT %
-% T E SS T %
-% T EEE SSS T %
-% T E SS T %
-% T EEEEE SSSSS T %
-% %
-% Perform "Magick" on Images via the Command Line Interface %
-% %
-% Dragon Computing %
-% Anthony Thyssen %
-% January 2012 %
-% %
-% %
-% 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 %
-% obtain a copy of the License at %
-% %
-% http://www.imagemagick.org/script/license.php %
-% %
-% Unless required by applicable law or agreed to in writing, software %
-% distributed under the License is distributed on an "AS IS" BASIS, %
-% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. %
-% See the License for the specific language governing permissions and %
-% limitations under the License. %
-% %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% Test the raw tokanization of the ScriptToken Subroutines
-%
-% This actually uses very little of the magic core functions
-% and in fact creates a completely stand-alone program by substituting
-% required MagickCore with direct system equivelents.
-%
-% Build
-% cc script-token-test.c -o script-token-test
-%
-% For testing see script-token-test.sh
-%
-*/
-
-/* System Replacement for MagickWand includes */
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <assert.h>
-#include <errno.h>
-
-#define MaxTextExtent 4096
-#define MagickFalse 0
-#define MagickTrue 1
-#define MagickBooleanType int
-
-#define AcquireMagickMemory(s) malloc(s)
-#define RelinquishMagickMemory(p) (free(p),NULL)
-#define ResizeMagickMemory(p,s) realloc(p,s)
-#define ResetMagickMemory(p,b,s) memset(p,b,s)
-#define StringToLong(s) strtol(s,(char **) NULL,10)
-#define LocaleCompare(p,q) strcasecmp(p,q)
-#define LocaleNCompare(p,q,l) strncasecmp(p,q,l)
-#define WandSignature 0xabacadabUL
-#define WandExport
-
-/* Include the actual code for ScriptToken functions */
-#define SCRIPT_TOKEN_TESTING 1 /* Prevent MagickWand Includes */
-#include "script-token.h"
-#include "script-token.c"
-
-/* Test program to report what tokens it finds in given input file/stream */
-
-int main(int argc, char *argv[])
-{
- ScriptTokenInfo
- *token_info;
-
- token_info = AcquireScriptTokenInfo( (argc>1) ? argv[1] : "-" );
- if (token_info == (ScriptTokenInfo *) NULL) {
- printf("Script Open Failure : %s\n", strerror(errno));
- return(1);
- }
-
- while (1) {
- if( GetScriptToken(token_info) == MagickFalse )
- break;
-
- if( strlen(token_info->token) > INITAL_TOKEN_LENGTH-1 ) {
- token_info->token[INITAL_TOKEN_LENGTH-4] = '.';
- token_info->token[INITAL_TOKEN_LENGTH-3] = '.';
- token_info->token[INITAL_TOKEN_LENGTH-2] = '.';
- token_info->token[INITAL_TOKEN_LENGTH-1] = '\0';
- }
- printf("l=%d, c=%d, stat=%d, len=%d, token=\"%s\"\n",
- token_info->token_line, token_info->token_column,
- token_info->status, token_info->length, token_info->token);
- }
-
- switch( token_info->status ) {
- case TokenStatusOK:
- break;
- case TokenStatusEOF:
- printf("EOF Found\n");
- break;
- case TokenStatusBadQuotes:
- /* Ensure last token has a sane length for error report */
- if( strlen(token_info->token) > INITAL_TOKEN_LENGTH-1 ) {
- token_info->token[INITAL_TOKEN_LENGTH-4] = '.';
- token_info->token[INITAL_TOKEN_LENGTH-3] = '.';
- token_info->token[INITAL_TOKEN_LENGTH-2] = '.';
- token_info->token[INITAL_TOKEN_LENGTH-1] = '\0';
- }
- printf("Bad Quotes l=%d, c=%d token=\"%s\"\n",
- token_info->token_line,token_info->token_column, token_info->token);
- break;
- case TokenStatusMemoryFailed: /* token is invalid */
- printf("Out of Memory l=%d, c=%d\n",
- token_info->token_line,token_info->token_column);
- break;
- case TokenStatusBinary: /* token is invalid */
- printf("Binary Char at l=%d, c=%d\n",
- token_info->curr_line,token_info->curr_column);
- break;
- }
-
- /* Clean up */
- token_info = DestroyScriptTokenInfo(token_info);
-
- return(0);
-}