X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=util%2Fwrbuf.c;h=a649e6464c5849c88261527c72e1d88725068210;hb=6588b4176290d756fa422b9b93e297ddba3e22d8;hp=424f0fcfa98208356067532c588d5741ac23a2f1;hpb=9d9bbf2ad72a44772dca1e694de9a84c4e48aa21;p=yaz-moved-to-github.git diff --git a/util/wrbuf.c b/util/wrbuf.c index 424f0fc..a649e64 100644 --- a/util/wrbuf.c +++ b/util/wrbuf.c @@ -1,9 +1,8 @@ /* - * Copyright (c) 1995-2002, Index Data. + * Copyright (c) 1995-2003, Index Data. * See the file LICENSE for details. - * Sebastian Hammer, Adam Dickmeiss * - * $Id: wrbuf.c,v 1.10 2002-10-22 10:05:36 adam Exp $ + * $Id: wrbuf.c,v 1.13 2003-07-14 12:58:18 adam Exp $ */ /* @@ -14,6 +13,7 @@ #include #endif +#include #include #include #include @@ -79,6 +79,37 @@ int wrbuf_puts(WRBUF b, const char *buf) return 0; } +int wrbuf_xmlputs(WRBUF b, const char *cp) +{ + while (*cp) + { + switch(*cp) + { + case '<': + wrbuf_puts(b, "<"); + break; + case '>': + wrbuf_puts(b, ">"); + break; + case '&': + wrbuf_puts(b, "&"); + break; + case '"': + wrbuf_puts(b, """); + break; + case '\'': + wrbuf_puts(b, "'"); + break; + default: + wrbuf_putc(b, *cp); + } + cp++; + } + wrbuf_putc(b, 0); + (b->pos)--; + return 0; +} + void wrbuf_printf(WRBUF b, const char *fmt, ...) { va_list ap;