- valid.c: applied small patch from Gary Pennington, reindented
  some part of the code.
Daniel
diff --git a/valid.c b/valid.c
index f6590cc..57f9561 100644
--- a/valid.c
+++ b/valid.c
@@ -1901,11 +1901,11 @@
  */
 static void
 xmlFreeRef(xmlLinkPtr lk) {
-	xmlRefPtr ref = (xmlRefPtr)xmlLinkGetData(lk);
-	if (ref == NULL) return;
-	if (ref->value != NULL)
-		xmlFree((xmlChar *)ref->value);
-	xmlFree(ref);
+    xmlRefPtr ref = (xmlRefPtr)xmlLinkGetData(lk);
+    if (ref == NULL) return;
+    if (ref->value != NULL)
+        xmlFree((xmlChar *)ref->value);
+    xmlFree(ref);
 }
 
 /**
@@ -1916,8 +1916,8 @@
  */
 static void
 xmlFreeRefList(xmlListPtr list_ref) {
-	if (list_ref == NULL) return;
-	xmlListDelete(list_ref);
+    if (list_ref == NULL) return;
+    xmlListDelete(list_ref);
 }
 
 /**
@@ -1930,15 +1930,15 @@
 static int
 xmlWalkRemoveRef(const void *data, const void *user)
 {
-	xmlAttrPtr attr0 = ((xmlRefPtr)data)->attr;
-	xmlAttrPtr attr1 = ((xmlRemoveMemoPtr)user)->ap;
-	xmlListPtr ref_list = ((xmlRemoveMemoPtr)user)->l;
+    xmlAttrPtr attr0 = ((xmlRefPtr)data)->attr;
+    xmlAttrPtr attr1 = ((xmlRemoveMemoPtr)user)->ap;
+    xmlListPtr ref_list = ((xmlRemoveMemoPtr)user)->l;
 
-	if (attr0 == attr1) { /* Matched: remove and terminate walk */
-		xmlListRemoveFirst(ref_list, (void *)data);
-		return 0;
-	}
-	return 1;
+    if (attr0 == attr1) { /* Matched: remove and terminate walk */
+        xmlListRemoveFirst(ref_list, (void *)data);
+        return 0;
+    }
+    return 1;
 }
 
 /**
@@ -1955,73 +1955,73 @@
 xmlRefPtr 
 xmlAddRef(xmlValidCtxtPtr ctxt ATTRIBUTE_UNUSED, xmlDocPtr doc, const xmlChar *value,
     xmlAttrPtr attr) {
-	xmlRefPtr ret;
-	xmlRefTablePtr table;
-	xmlListPtr ref_list;
+    xmlRefPtr ret;
+    xmlRefTablePtr table;
+    xmlListPtr ref_list;
 
-	if (doc == NULL) {
-		xmlGenericError(xmlGenericErrorContext,
-		    "xmlAddRefDecl: doc == NULL\n");
-		return(NULL);
-	}
-	if (value == NULL) {
-		xmlGenericError(xmlGenericErrorContext,
-		    "xmlAddRefDecl: value == NULL\n");
-		return(NULL);
-	}
-	if (attr == NULL) {
-		xmlGenericError(xmlGenericErrorContext,
-		    "xmlAddRefDecl: attr == NULL\n");
-		return(NULL);
-	}
+    if (doc == NULL) {
+        xmlGenericError(xmlGenericErrorContext,
+            "xmlAddRefDecl: doc == NULL\n");
+        return(NULL);
+    }
+    if (value == NULL) {
+        xmlGenericError(xmlGenericErrorContext,
+            "xmlAddRefDecl: value == NULL\n");
+        return(NULL);
+    }
+    if (attr == NULL) {
+        xmlGenericError(xmlGenericErrorContext,
+            "xmlAddRefDecl: attr == NULL\n");
+        return(NULL);
+    }
 
-	/*
+    /*
      * Create the Ref table if needed.
      */
-	table = (xmlRefTablePtr) doc->refs;
-	if (table == NULL) 
-		doc->refs = table = xmlCreateRefTable();
-	if (table == NULL) {
-		xmlGenericError(xmlGenericErrorContext,
-		    "xmlAddRef: Table creation failed!\n");
-		return(NULL);
-	}
+    table = (xmlRefTablePtr) doc->refs;
+    if (table == NULL) 
+        doc->refs = table = xmlCreateRefTable();
+    if (table == NULL) {
+        xmlGenericError(xmlGenericErrorContext,
+            "xmlAddRef: Table creation failed!\n");
+        return(NULL);
+    }
 
-	ret = (xmlRefPtr) xmlMalloc(sizeof(xmlRef));
-	if (ret == NULL) {
-		xmlGenericError(xmlGenericErrorContext,
-		    "xmlAddRef: out of memory\n");
-		return(NULL);
-	}
+    ret = (xmlRefPtr) xmlMalloc(sizeof(xmlRef));
+    if (ret == NULL) {
+        xmlGenericError(xmlGenericErrorContext,
+            "xmlAddRef: out of memory\n");
+        return(NULL);
+    }
 
-	/*
+    /*
      * fill the structure.
      */
- 	ret->value = xmlStrdup(value);
-	ret->attr = attr;
+    ret->value = xmlStrdup(value);
+    ret->attr = attr;
 
-	/* To add a reference :-
-	 * References are maintained as a list of references,
-	 * Lookup the entry, if no entry create new nodelist
-	 * Add the owning node to the NodeList
-	 * Return the ref
-	 */
+    /* To add a reference :-
+     * References are maintained as a list of references,
+     * Lookup the entry, if no entry create new nodelist
+     * Add the owning node to the NodeList
+     * Return the ref
+     */
 
-	if(NULL == (ref_list = xmlHashLookup(table, value))) {
-		if(NULL == (ref_list = xmlListCreate(xmlFreeRef, NULL))) {
-			xmlGenericError(xmlGenericErrorContext,
-			    "xmlAddRef: Reference list creation failed!\n");
-			return(NULL);
-		}
-		if (xmlHashAddEntry(table, value, ref_list) < 0) {
-			xmlListDelete(ref_list);
-			xmlGenericError(xmlGenericErrorContext,
-			    "xmlAddRef: Reference list insertion failed!\n");
-			return(NULL);
-		}
-	}
-	xmlListInsert(ref_list, ret);
-	return(ret);
+    if (NULL == (ref_list = xmlHashLookup(table, value))) {
+        if (NULL == (ref_list = xmlListCreate(xmlFreeRef, NULL))) {
+            xmlGenericError(xmlGenericErrorContext,
+                "xmlAddRef: Reference list creation failed!\n");
+            return(NULL);
+        }
+        if (xmlHashAddEntry(table, value, ref_list) < 0) {
+            xmlListDelete(ref_list);
+            xmlGenericError(xmlGenericErrorContext,
+                "xmlAddRef: Reference list insertion failed!\n");
+            return(NULL);
+        }
+    }
+    xmlListInsert(ref_list, ret);
+    return(ret);
 }
 
 /**
@@ -2032,7 +2032,7 @@
  */
 void
 xmlFreeRefTable(xmlRefTablePtr table) {
-	xmlHashFree(table, (xmlHashDeallocator) xmlFreeRefList);
+    xmlHashFree(table, (xmlHashDeallocator) xmlFreeRefList);
 }
 
 /**
@@ -2049,23 +2049,25 @@
  */
 int
 xmlIsRef(xmlDocPtr doc, xmlNodePtr elem, xmlAttrPtr attr) {
-	if ((doc->intSubset == NULL) && (doc->extSubset == NULL)) {
-		return(0);
-	} else if (doc->type == XML_HTML_DOCUMENT_NODE) {
-		/* TODO @@@ */
-		return(0);    
-	} else {
-		xmlAttributePtr attrDecl;
+    if ((doc->intSubset == NULL) && (doc->extSubset == NULL)) {
+        return(0);
+    } else if (doc->type == XML_HTML_DOCUMENT_NODE) {
+        /* TODO @@@ */
+        return(0);    
+    } else {
+        xmlAttributePtr attrDecl;
 
-		attrDecl = xmlGetDtdAttrDesc(doc->intSubset, elem->name, attr->name);
-		if ((attrDecl == NULL) && (doc->extSubset != NULL))
-			attrDecl = xmlGetDtdAttrDesc(doc->extSubset, elem->name,
-			    attr->name);
+        attrDecl = xmlGetDtdAttrDesc(doc->intSubset, elem->name, attr->name);
+        if ((attrDecl == NULL) && (doc->extSubset != NULL))
+            attrDecl = xmlGetDtdAttrDesc(doc->extSubset,
+		                         elem->name, attr->name);
 
-		if ((attrDecl != NULL) && (attrDecl->atype == XML_ATTRIBUTE_IDREF))
-			return(1);
-	}
-	return(0);
+	if ((attrDecl != NULL) &&
+	    (attrDecl->atype == XML_ATTRIBUTE_IDREF ||
+	     attrDecl->atype == XML_ATTRIBUTE_IDREFS))
+	return(1);
+    }
+    return(0);
 }
 
 /**
@@ -2079,50 +2081,50 @@
  */
 int
 xmlRemoveRef(xmlDocPtr doc, xmlAttrPtr attr) {
-	xmlListPtr ref_list;
-	xmlRefTablePtr table;
-	xmlChar *ID;
-	xmlRemoveMemo target;
+    xmlListPtr ref_list;
+    xmlRefTablePtr table;
+    xmlChar *ID;
+    xmlRemoveMemo target;
 
-	if (doc == NULL) return(-1);
-	if (attr == NULL) return(-1);
-	table = (xmlRefTablePtr) doc->refs;
-	if (table == NULL) 
-		return(-1);
+    if (doc == NULL) return(-1);
+    if (attr == NULL) return(-1);
+    table = (xmlRefTablePtr) doc->refs;
+    if (table == NULL) 
+        return(-1);
 
-	if (attr == NULL)
-		return(-1);
-	ID = xmlNodeListGetString(doc, attr->children, 1);
-	if (ID == NULL)
-		return(-1);
-	ref_list = xmlHashLookup(table, ID);
+    if (attr == NULL)
+        return(-1);
+    ID = xmlNodeListGetString(doc, attr->children, 1);
+    if (ID == NULL)
+        return(-1);
+    ref_list = xmlHashLookup(table, ID);
 
-	if(ref_list == NULL) {
-		xmlFree(ID);
-		return (-1);
-	}
-	/* At this point, ref_list refers to a list of references which
-	 * have the same key as the supplied attr. Our list of references
-	 * is ordered by reference address and we don't have that information
-	 * here to use when removing. We'll have to walk the list and
-	 * check for a matching attribute, when we find one stop the walk
-	 * and remove the entry.
-	 * The list is ordered by reference, so that means we don't have the
-	 * key. Passing the list and the reference to the walker means we
-	 * will have enough data to be able to remove the entry.
-	 */
-	target.l = ref_list;
-	target.ap = attr;
-	
-	/* Remove the supplied attr from our list */
-	xmlListWalk(ref_list, xmlWalkRemoveRef, &target);
+    if(ref_list == NULL) {
+        xmlFree(ID);
+        return (-1);
+    }
+    /* At this point, ref_list refers to a list of references which
+     * have the same key as the supplied attr. Our list of references
+     * is ordered by reference address and we don't have that information
+     * here to use when removing. We'll have to walk the list and
+     * check for a matching attribute, when we find one stop the walk
+     * and remove the entry.
+     * The list is ordered by reference, so that means we don't have the
+     * key. Passing the list and the reference to the walker means we
+     * will have enough data to be able to remove the entry.
+     */
+    target.l = ref_list;
+    target.ap = attr;
+    
+    /* Remove the supplied attr from our list */
+    xmlListWalk(ref_list, xmlWalkRemoveRef, &target);
 
-	/*If the list is empty then remove the list entry in the hash */
-	if (xmlListEmpty(ref_list))
-	    xmlHashUpdateEntry(table, ID, NULL, (xmlHashDeallocator)
-	    xmlFreeRefList);
-	xmlFree(ID);
-	return(0);
+    /*If the list is empty then remove the list entry in the hash */
+    if (xmlListEmpty(ref_list))
+        xmlHashUpdateEntry(table, ID, NULL, (xmlHashDeallocator)
+        xmlFreeRefList);
+    xmlFree(ID);
+    return(0);
 }
 
 /**
@@ -2136,23 +2138,23 @@
  */
 xmlListPtr 
 xmlGetRefs(xmlDocPtr doc, const xmlChar *ID) {
-	xmlRefTablePtr table;
+    xmlRefTablePtr table;
 
-	if (doc == NULL) {
-		xmlGenericError(xmlGenericErrorContext, "xmlGetRef: doc == NULL\n");
-		return(NULL);
-	}
+    if (doc == NULL) {
+        xmlGenericError(xmlGenericErrorContext, "xmlGetRef: doc == NULL\n");
+        return(NULL);
+    }
 
-	if (ID == NULL) {
-		xmlGenericError(xmlGenericErrorContext, "xmlGetRef: ID == NULL\n");
-		return(NULL);
-	}
+    if (ID == NULL) {
+        xmlGenericError(xmlGenericErrorContext, "xmlGetRef: ID == NULL\n");
+        return(NULL);
+    }
 
-	table = (xmlRefTablePtr) doc->refs;
-	if (table == NULL) 
-		return(NULL);
+    table = (xmlRefTablePtr) doc->refs;
+    if (table == NULL) 
+        return(NULL);
 
-	return (xmlHashLookup(table, ID));
+    return (xmlHashLookup(table, ID));
 }
 
 /************************************************************************