[BACK]Return to outline.c CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / external / mit / expat / dist / examples

Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.

Diff for /src/external/mit/expat/dist/examples/outline.c between version 1.1.1.1.4.1 and 1.1.1.1.4.2

version 1.1.1.1.4.1, 2012/02/11 18:18:19 version 1.1.1.1.4.2, 2012/04/17 00:04:42
Line 0 
Line 1 
   /*****************************************************************
    * outline.c
    *
    * Copyright 1999, Clark Cooper
    * All rights reserved.
    *
    * This program is free software; you can redistribute it and/or
    * modify it under the terms of the license contained in the
    * COPYING file that comes with the expat distribution.
    *
    * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
    * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
    * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
    * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
    * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
    * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
    * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
    *
    * Read an XML document from standard input and print an element
    * outline on standard output.
    * Must be used with Expat compiled for UTF-8 output.
    */
   
   
   #include <stdio.h>
   #include <expat.h>
   
   #if defined(__amigaos__) && defined(__USE_INLINE__)
   #include <proto/expat.h>
   #endif
   
   #ifdef XML_LARGE_SIZE
   #if defined(XML_USE_MSC_EXTENSIONS) && _MSC_VER < 1400
   #define XML_FMT_INT_MOD "I64"
   #else
   #define XML_FMT_INT_MOD "ll"
   #endif
   #else
   #define XML_FMT_INT_MOD "l"
   #endif
   
   #define BUFFSIZE        8192
   
   char Buff[BUFFSIZE];
   
   int Depth;
   
   static void XMLCALL
   start(void *data, const char *el, const char **attr)
   {
     int i;
   
     for (i = 0; i < Depth; i++)
       printf("  ");
   
     printf("%s", el);
   
     for (i = 0; attr[i]; i += 2) {
       printf(" %s='%s'", attr[i], attr[i + 1]);
     }
   
     printf("\n");
     Depth++;
   }
   
   static void XMLCALL
   end(void *data, const char *el)
   {
     Depth--;
   }
   
   int
   main(int argc, char *argv[])
   {
     XML_Parser p = XML_ParserCreate(NULL);
     if (! p) {
       fprintf(stderr, "Couldn't allocate memory for parser\n");
       exit(-1);
     }
   
     XML_SetElementHandler(p, start, end);
   
     for (;;) {
       int done;
       int len;
   
       len = (int)fread(Buff, 1, BUFFSIZE, stdin);
       if (ferror(stdin)) {
         fprintf(stderr, "Read error\n");
         exit(-1);
       }
       done = feof(stdin);
   
       if (XML_Parse(p, Buff, len, done) == XML_STATUS_ERROR) {
         fprintf(stderr, "Parse error at line %" XML_FMT_INT_MOD "u:\n%s\n",
                 XML_GetCurrentLineNumber(p),
                 XML_ErrorString(XML_GetErrorCode(p)));
         exit(-1);
       }
   
       if (done)
         break;
     }
     XML_ParserFree(p);
     return 0;
   }

Legend:
Removed from v.1.1.1.1.4.1  
changed lines
  Added in v.1.1.1.1.4.2

CVSweb <webmaster@jp.NetBSD.org>