Diff for /XML/parser.c between versions 1.27 and 1.28

version 1.27, 1998/08/03 20:06:17 version 1.28, 1998/08/03 21:55:20
Line 231  not_blank: Line 231  not_blank:
     return(in);      return(in);
 }  }
   
   /************************************************************************
    *                                                                      *
    *              Commodity functions to handle CHARs                     *
    *                                                                      *
    ************************************************************************/
   
 /*  /*
  * xmlStrndup : a strdup for array of CHAR's   * xmlStrndup : a strdup for array of CHAR's
  */   */
Line 302  CHAR *xmlStrchr(const CHAR *str, CHAR va Line 308  CHAR *xmlStrchr(const CHAR *str, CHAR va
     return(NULL);      return(NULL);
 }  }
   
   /************************************************************************
    *                                                                      *
    *              Extra stuff for namespace support                       *
    *      Relates to http://www.w3.org/TR/WD-xml-names                    *
    *                                                                      *
    ************************************************************************/
   
   /*
    * xmlNamespaceParseNCName : parse an XML namespace name.
    *
    * [NS 3] NCName ::= (Letter | '_') (NCNameChar)*
    *
    * [NS 4] NCNameChar ::= Letter | Digit | '.' | '-' | '_' |
    *                       CombiningChar | Extender
    */
   
   CHAR *xmlNamespaceParseNCName(xmlParserCtxtPtr ctxt) {
       const CHAR *q;
       CHAR *ret = NULL;
   
       if (!IS_LETTER(ctxt->cur[0]) && (ctxt->cur[0] != '_')) return(NULL);
       q = ctxt->cur++;
   
       while ((IS_LETTER(ctxt->cur[0])) || (IS_DIGIT(ctxt->cur[0])) ||
              (ctxt->cur[0] == '.') || (ctxt->cur[0] == '-') ||
              (ctxt->cur[0] == '_') ||
              (IS_COMBINING(ctxt->cur[0])) ||
              (IS_EXTENDER(ctxt->cur[0])))
           ctxt->cur++;
       
       ret = xmlStrndup(q, ctxt->cur - q);
   
       return(ret);
   }
   
   /*
    * xmlNamespaceParseQName : parse an XML qualified name
    *
    * [NS 5] QName ::= (Prefix ':')? LocalPart
    *
    * [NS 6] Prefix ::= NCName
    *
    * [NS 7] LocalPart ::= NCName
    */
   
   CHAR *xmlNamespaceParseQName(xmlParserCtxtPtr ctxt, CHAR **prefix) {
       CHAR *ret = NULL;
   
       *prefix = NULL;
       ret = xmlNamespaceParseNCName(ctxt);
       if (ctxt->cur[0] == ':') {
           *prefix = ret;
           ctxt->cur++;
           ret = xmlNamespaceParseNCName(ctxt);
       }
   
       return(ret);
   }
   
   /*
    * xmlNamespaceParseNSDef : parse a namespace prefix declaration
    *
    * [NS 1] NSDef ::= PrefixDef Eq SystemLiteral
    *
    * [NS 2] PrefixDef ::= 'xmlns' (':' NCName)?
    */
   
   void xmlNamespaceParseNSDef(xmlParserCtxtPtr ctxt) {
       CHAR *name = NULL;
   
       if ((ctxt->cur[0] == 'x') && (ctxt->cur[1] == 'm') &&
           (ctxt->cur[2] == 'l') && (ctxt->cur[3] == 'n') &&
           (ctxt->cur[4] == 's')) {
           ctxt->cur += 5;
           if (ctxt->cur[0] == ':') {
               ctxt->cur++;
               name = xmlNamespaceParseNCName(ctxt);
           }
       }
   }
   
   /************************************************************************
    *                                                                      *
    *                      The parser itself                               *
    *      Relates to http://www.w3.org/TR/REC-xml                         *
    *                                                                      *
    ************************************************************************/
   
 /*  /*
  * xmlParseName : parse an XML name.   * xmlParseName : parse an XML name.
  *   *

Removed from v.1.27  
changed lines
  Added in v.1.28


Webmaster