diff -ur XSB.orig/packages/sgml/cc/fetch_file.c XSB/packages/sgml/cc/fetch_file.c --- XSB.orig/packages/sgml/cc/fetch_file.c 2005-03-14 18:43:28.000000000 +1300 +++ XSB/packages/sgml/cc/fetch_file.c 2007-01-26 21:48:07.000000000 +1300 @@ -336,7 +336,7 @@ if( (strstr( *source, "Error 503")!= NULL) || (strstr( *source, "503 Service Unavailable")!=NULL)){ - strstr( *source, "503 Service Unavailable") ; + strcpy( *source, "503 Service Unavailable") ; return FALSE; } diff -ur XSB.orig/packages/sgml/cc/parser.c XSB/packages/sgml/cc/parser.c --- XSB.orig/packages/sgml/cc/parser.c 2005-03-14 18:43:28.000000000 +1300 +++ XSB/packages/sgml/cc/parser.c 2007-01-26 22:53:38.000000000 +1300 @@ -593,7 +593,7 @@ for(el = xml_entities; *el; el++) { - process_entity_declaration(&p, *el); + process_entity_declaration(&p, (const ichar*)*el); } break; @@ -804,15 +804,15 @@ m->parent = p->marked; p->marked = m; - if ( istrcaseeq(kwd->name, "IGNORE") ) + if ( istrcaseeq(kwd->name, (const ichar*)"IGNORE") ) m->type = MS_IGNORE; - else if ( istrcaseeq(kwd->name, "INCLUDE") ) + else if ( istrcaseeq(kwd->name, (const ichar*)"INCLUDE") ) m->type = MS_INCLUDE; - else if ( istrcaseeq(kwd->name, "TEMP") ) + else if ( istrcaseeq(kwd->name, (const ichar*)"TEMP") ) m->type = MS_INCLUDE; - else if ( istrcaseeq(kwd->name, "CDATA") ) + else if ( istrcaseeq(kwd->name, (const ichar*)"CDATA") ) m->type = MS_CDATA; - else if ( istrcaseeq(kwd->name, "RCDATA") ) + else if ( istrcaseeq(kwd->name, (const ichar*)"RCDATA") ) m->type = MS_RCDATA; else m->type = MS_INCLUDE; /* default */ @@ -932,7 +932,7 @@ if ( end ) { decl = end; - if ( istrcaseeq(nm->name, "encoding") ) + if ( istrcaseeq(nm->name, (const ichar*)"encoding") ) set_encoding(p, buf); continue; @@ -970,9 +970,9 @@ { dtd *dtd = p->dtd; - if ( istrcaseeq(enc, "iso-8859-1") ) + if ( istrcaseeq(enc, (const ichar*)"iso-8859-1") ) { dtd->encoding = ENC_ISO_LATIN1; - } else if ( istrcaseeq(enc, "utf-8") ) + } else if ( istrcaseeq(enc, (const ichar*)"utf-8") ) { dtd->encoding = ENC_UTF8; } else gripe(ERC_EXISTENCE, "character encoding", enc); @@ -1545,7 +1545,7 @@ if ( f[CF_MDC] == chr ) /* > */ { if ( p->on_decl ) - (*p->on_decl)(p, ""); + (*p->on_decl)(p, (const ichar*)""); p->state = S_PCDATA; } @@ -2131,7 +2131,7 @@ { locbuf oldloc; push_location(p, &oldloc); - set_src_dtd_parser(p, IN_ENTITY, e->name->name); + set_src_dtd_parser(p, IN_ENTITY, (char*)e->name->name); empty_icharbuf(p->buffer); /* dubious */ for(s=text; *s; s++) putchar_dtd_parser(p, *s); @@ -2907,7 +2907,7 @@ if ( !empty ) { empty = sgml_calloc(1, sizeof(*empty)); - empty->name = dtd_add_symbol(dtd, "#EMPTY"); + empty->name = dtd_add_symbol(dtd, (const ichar*)"#EMPTY"); empty->defined = TRUE; } @@ -4380,7 +4380,7 @@ if ( !(s = isee_identifier(dtd, decl, "#default")) ) { return gripe(ERC_SYNTAX_ERROR, "Name expected", decl); } - id = dtd_add_symbol(dtd, "#DEFAULT"); + id = dtd_add_symbol(dtd, (const ichar*)"#DEFAULT"); isdef = TRUE; } @@ -4531,7 +4531,7 @@ static ichar * baseurl(dtd_parser *p) { if ( p->location.type == IN_FILE && p->location.name ) - { return istrdup(p->location.name); + { return istrdup((ichar*)p->location.name); } return NULL; @@ -4581,7 +4581,7 @@ } case ET_LITERAL: { e->value = istrdup(val); - e->length = strlen(e->value); + e->length = strlen((char*)e->value); return decl; } default: @@ -4652,7 +4652,7 @@ if ( !expand_pentities(p, eval, out, len) ) return FALSE; - l = strlen(out); /* could be better */ + l = strlen((char*)out); /* could be better */ out += l; len -= l; @@ -4794,7 +4794,7 @@ { if( e->exturl) { - file = e->exturl; + file = (char*)e->exturl; return file; } @@ -5932,7 +5932,7 @@ a->def = AT_IMPLIED; add_attribute(dtd, e, a); - if ( !e->undefined && !(dtd->dialect != DL_SGML && (istreq("xmlns", nm->name) || istrprefix("xmlns:", nm->name))) ) + if ( !e->undefined && !(dtd->dialect != DL_SGML && (istreq("xmlns", nm->name) || istrprefix((const ichar*)"xmlns:", nm->name))) ) { gripe(ERC_NO_ATTRIBUTE, e->name->name, nm->name); } } @@ -6444,7 +6444,7 @@ { int chr; - in = __utf8_get_char(in, &chr); + in = (const ichar*)__utf8_get_char((const char*)in, &chr); if ( chr >= OUTPUT_CHARSET_SIZE ) gripe(ERC_REPRESENTATION, "character"); *out++ = chr; diff -ur XSB.orig/packages/sgml/cc/sgml2pl.c XSB/packages/sgml/cc/sgml2pl.c --- XSB.orig/packages/sgml/cc/sgml2pl.c 2005-03-12 03:57:38.000000000 +1300 +++ XSB/packages/sgml/cc/sgml2pl.c 2007-01-26 22:42:46.000000000 +1300 @@ -273,7 +273,7 @@ { c2p_functor( "dtd_struct", 2, tmp1); c2p_int( (int) d, p2p_arg( tmp1, 1)); - c2p_string( d->doctype, p2p_arg( tmp1, 2)); + c2p_string( (char*)d->doctype, p2p_arg( tmp1, 2)); } /* dtd_struct/1 if no doctype is specified */ else @@ -306,7 +306,7 @@ return sgml2pl_error(ERR_TYPE, "atom", doctype); /*Create the dtd*/ - if ( !(dtd=new_dtd(dt)) ) + if ( !(dtd=new_dtd((const ichar*)dt)) ) return FALSE; dtd->references++; @@ -474,7 +474,7 @@ if(is_var(doctype) && dtd->doctype) { - c2p_string( dtd->doctype, doctype); + c2p_string( (char*)dtd->doctype, doctype); } return TRUE; } @@ -625,7 +625,7 @@ { if( !(s=p2c_string(temp_term) )) return FALSE; - p->enforce_outer_element = dtd_add_symbol(p->dtd, s); + p->enforce_outer_element = dtd_add_symbol(p->dtd, (const ichar*)s); } @@ -1551,7 +1551,7 @@ } else { - c2p_string( nm->name, t); + c2p_string( (char*)nm->name, t); } } @@ -1577,12 +1577,12 @@ { switch(a->definition->type) { case AT_CDATA: - c2p_string( a->value.cdata, t); + c2p_string( (char*)a->value.cdata, t); break; case AT_NUMBER: { if ( a->value.text ) - c2p_string( a->value.text, t); + c2p_string( (char*)a->value.text, t); else c2p_int( a->value.number, t); break; @@ -1611,7 +1611,7 @@ head = p2p_car( tail); tmp = p2p_cdr( tail); tail = tmp; - unify_listval(p, head, a->definition->type, e-val, val); + unify_listval(p, head, a->definition->type, e-val, (const char*)val); } tmp = p2p_new(); @@ -1623,7 +1623,7 @@ head = p2p_car( tail); tmp = p2p_cdr( tail); tail = tmp; - unify_listval(p, head, a->definition->type, e-val, val); + unify_listval(p, head, a->definition->type, e-val, (const char*)val); c2p_nil( tmp); p2p_unify( tmp, tail); @@ -1694,7 +1694,7 @@ { c2p_functor( "entity", 1 , tmp2); - c2p_string( e->name->name, p2p_arg( tmp2, 1)); + c2p_string( (char*)e->name->name, p2p_arg( tmp2, 1)); p2p_unify( h, tmp2); } @@ -1892,7 +1892,7 @@ } else - c2p_string ( e->name->name, t); + c2p_string ( (char*)e->name->name, t); return; } diff -ur XSB.orig/packages/sgml/cc/xmlns.c XSB/packages/sgml/cc/xmlns.c --- XSB.orig/packages/sgml/cc/xmlns.c 2005-03-08 09:31:23.000000000 +1300 +++ XSB/packages/sgml/cc/xmlns.c 2007-01-26 22:38:20.000000000 +1300 @@ -156,7 +156,7 @@ *local = s+1; n = dtd_add_symbol(dtd, buf); - if ( istrprefix("xml", buf) ) /* XML reserved namespaces */ + if ( istrprefix((const ichar*)"xml", buf) ) /* XML reserved namespaces */ { *url = n->name; return TRUE; } else if ( (ns = xmlns_find(p->environments, n)) )