186abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project/* 286abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project * Copyright 2001-2004 Brandon Long 386abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project * All Rights Reserved. 486abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project * 586abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project * ClearSilver Templating System 686abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project * 786abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project * This code is made available under the terms of the ClearSilver License. 886abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project * http://www.clearsilver.net/license.hdf 986abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project * 1086abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project */ 1186abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 1286abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project#include "ClearSilver.h" 1386abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 1486abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project#include <stdio.h> 1586abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project#include <string.h> 1686abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 1786abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Projectstatic NEOERR *output (void *ctx, char *s) 1886abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project{ 1986abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project printf ("%s", s); 2086abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project return STATUS_OK; 2186abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project} 2286abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 2386abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Projectint main (int argc, char *argv[]) 2486abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project{ 2586abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project NEOERR *err; 2686abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project CSPARSE *parse; 2786abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project HDF *hdf; 2886abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project int verbose = 0; 2986abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project char *hdf_file, *cs_file; 3086abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 3186abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project if (argc < 3) 3286abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project { 3386abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project ne_warn ("Usage: cstest [-v] <file.hdf> <file.cs>"); 3486abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project return -1; 3586abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project } 3686abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 3786abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project if (!strcmp(argv[1], "-v")) 3886abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project { 3986abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project verbose = 1; 4086abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project if (argc < 4) 4186abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project { 4286abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project ne_warn ("Usage: cstest [-v] <file.hdf> <file.cs>"); 4386abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project return -1; 4486abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project } 4586abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project hdf_file = argv[2]; 4686abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project cs_file = argv[3]; 4786abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project } 4886abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project else 4986abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project { 5086abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project hdf_file = argv[1]; 5186abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project cs_file = argv[2]; 5286abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project } 5386abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 5486abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project err = hdf_init(&hdf); 5586abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project if (err != STATUS_OK) 5686abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project { 5786abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project nerr_log_error(err); 5886abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project return -1; 5986abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project } 6086abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project err = hdf_read_file(hdf, hdf_file); 6186abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project if (err != STATUS_OK) 6286abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project { 6386abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project nerr_log_error(err); 6486abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project return -1; 6586abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project } 6686abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 6786abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project printf ("Parsing %s\n", cs_file); 6886abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project err = cs_init (&parse, hdf); 6986abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project if (err != STATUS_OK) 7086abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project { 7186abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project nerr_log_error(err); 7286abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project return -1; 7386abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project } 7486abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project err = cgi_register_strfuncs(parse); 7586abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project if (err != STATUS_OK) 7686abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project { 7786abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project nerr_log_error(err); 7886abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project return -1; 7986abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project } 8086abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 8186abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project err = cs_parse_file (parse, cs_file); 8286abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project if (err != STATUS_OK) 8386abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project { 8486abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project err = nerr_pass(err); 8586abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project nerr_log_error(err); 8686abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project return -1; 8786abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project } 8886abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 8986abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project err = cs_render(parse, NULL, output); 9086abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project if (err != STATUS_OK) 9186abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project { 9286abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project err = nerr_pass(err); 9386abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project nerr_log_error(err); 9486abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project return -1; 9586abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project } 9686abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 9786abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project if (verbose) 9886abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project { 9986abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project printf ("\n-----------------------\nCS DUMP\n"); 10086abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project err = cs_dump(parse, NULL, output); 10186abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project } 10286abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 10386abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project cs_destroy (&parse); 10486abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 10586abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project if (verbose) 10686abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project { 10786abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project printf ("\n-----------------------\nHDF DUMP\n"); 10886abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project hdf_dump (hdf, NULL); 10986abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project } 11086abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project hdf_destroy(&hdf); 11186abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 11286abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project 11386abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project return 0; 11486abe4b9898668901b812fa6c1eaa38cb34989e2The Android Open Source Project} 115