+yaz (1.9.1-3) unstable; urgency=low
+
+ * don't let grs.sgml filter interpret &-entities.
+
+ -- Adam Dickmeiss <adam@indexdata.dk> Tue, 8 Oct 2002 22:13:30 +0100
+
yaz (1.9.1-2) unstable; urgency=low
* official release.
binary-indep: build install
dh_testdir
dh_testroot
- dh_installdocs -p yaz-doc doc/*.html doc/*.pdf
+ dh_installdocs -p yaz-doc doc/*.html doc/*.pdf doc/*.png
dh_installchangelogs -p yaz-doc
dh_link -p yaz-doc
dh_strip -p yaz-doc
* LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
* OF THIS SOFTWARE.
*
- * $Id: data1.h,v 1.17 2002-09-24 07:58:59 adam Exp $
+ * $Id: data1.h,v 1.18 2002-10-08 20:14:44 adam Exp $
*/
#ifndef DATA1_H
char *name;
char *value;
struct data1_xattr *next;
+ unsigned short what; /* DATA1I_text, .. see data1_node.u.data */
} data1_xattr;
typedef struct data1_absyn
{
char *data; /* filename or data */
int len;
- /* text inclusion */
+ /* text inclusion */
#define DATA1I_inctxt 1
- /* binary data inclusion */
+ /* binary data inclusion */
#define DATA1I_incbin 2
/* text data */
#define DATA1I_text 3
- /* numerical data */
+ /* numerical data */
#define DATA1I_num 4
- /* object identifier */
-#define DATA1I_oid 5
+ /* object identifier */
+#define DATA1I_oid 5
+ /* XML text */
+#define DATA1I_xmltext 6
unsigned what:7;
unsigned formatted_text : 1; /* newlines are significant */
} data;
* See the file LICENSE for details.
* Sebastian Hammer, Adam Dickmeiss
*
- * $Id: d1_prtree.c,v 1.10 2002-09-24 13:58:13 adam Exp $
+ * $Id: d1_prtree.c,v 1.11 2002-10-08 20:14:44 adam Exp $
*/
#include <yaz/log.h>
pr_string (out, n->u.data.data, n->u.data.len);
fprintf (out, "'\n");
break;
+ case DATA1I_xmltext:
+ fprintf (out, "xml text '");
+ pr_string (out, n->u.data.data, n->u.data.len);
+ fprintf (out, "'\n");
+ break;
default:
fprintf (out, "unknown(%d)\n", n->u.data.what);
break;
* See the file LICENSE for details.
* Sebastian Hammer, Adam Dickmeiss
*
- * $Id: d1_read.c,v 1.52 2002-09-24 07:58:59 adam Exp $
+ * $Id: d1_read.c,v 1.53 2002-10-08 20:14:44 adam Exp $
*/
#include <assert.h>
*p = (data1_xattr*) nmem_malloc (nmem, sizeof(**p));
(*p)->name = nmem_strdup (nmem, *attr++);
(*p)->value = nmem_strdup (nmem, *attr++);
+ (*p)->what = DATA1I_text;
+
p = &(*p)->next;
}
*p = 0;
*p = (data1_xattr*) nmem_malloc (nmem, sizeof(**p));
(*p)->name = nmem_strdup (nmem, *attr++);
(*p)->value = nmem_strdup (nmem, *attr++);
+ (*p)->what = DATA1I_text;
p = &(*p)->next;
}
*p = 0;
*p = (data1_xattr*) nmem_malloc (nmem, sizeof(**p));
(*p)->name = nmem_strdup (nmem, *attr++);
(*p)->value = nmem_strdup (nmem, *attr++);
+ (*p)->what = DATA1I_text;
p = &(*p)->next;
}
*p = 0;
static int ampr (int (*get_byte)(void *fh), void *fh, int *amp)
{
+#if 1
+ int c = (*get_byte)(fh);
+ *amp = 0;
+ return c;
+#else
int c = (*get_byte)(fh);
*amp = 0;
if (c == '&')
}
}
return c;
+#endif
}
data1_xattr *data1_read_xattr (data1_handle dh, NMEM m,
p->next = 0;
pp = &p->next;
p->value = 0;
+ p->what = DATA1I_xmltext;
wrbuf_rewind(wrbuf);
while (c && c != '=' && c != '>' && c != '/' && !d1_isspace(c))
continue;
}
res = data1_mk_node2 (dh, m, DATA1N_data, parent);
- res->u.data.what = DATA1I_text;
+ res->u.data.what = DATA1I_xmltext;
res->u.data.formatted_text = 0;
d1_stack[level] = res;
* See the file LICENSE for details.
* Sebastian Hammer, Adam Dickmeiss
*
- * $Id: d1_write.c,v 1.18 2002-09-24 13:58:13 adam Exp $
+ * $Id: d1_write.c,v 1.19 2002-10-08 20:14:44 adam Exp $
*/
#include <string.h>
wrbuf_write_cdata (b, msg, strlen(msg));
}
+static void wrbuf_put_xattr(WRBUF b, data1_xattr *p)
+{
+ for (; p; p = p->next)
+ {
+ wrbuf_putc (b, ' ');
+ if (p->what == DATA1I_xmltext)
+ wrbuf_puts (b, p->name);
+ else
+ wrbuf_put_cdata (b, p->name);
+ if (p->value)
+ {
+ wrbuf_putc (b, '=');
+ wrbuf_putc (b, '"');
+ if (p->what == DATA1I_text)
+ wrbuf_put_cdata (b, p->value);
+ else
+ wrbuf_puts (b, p->value);
+ wrbuf_putc (b, '"');
+ }
+ }
+}
+
static int nodetoidsgml(data1_node *n, int select, WRBUF b, int col,
int pretty_format)
{
indent (b, col);
wrbuf_puts (b, "<?");
wrbuf_put_cdata (b, c->u.preprocess.target);
- for (p = c->u.preprocess.attributes; p; p = p->next)
- {
- wrbuf_putc (b, ' ');
- wrbuf_put_cdata (b, p->name);
- wrbuf_putc (b, '=');
- wrbuf_putc (b, '"');
- wrbuf_put_cdata (b, p->value);
- wrbuf_putc (b, '"');
- }
+ wrbuf_put_xattr (b, c->u.preprocess.attributes);
if (c->child)
wrbuf_puts(b, " ");
if (nodetoidsgml(c, select, b, (col > 40) ? 40 : col+2,
indent (b, col);
wrbuf_puts (b, "<");
wrbuf_put_cdata (b, tag);
- for (p = c->u.tag.attributes; p; p = p->next)
- {
- wrbuf_putc (b, ' ');
- wrbuf_put_cdata (b, p->name);
- wrbuf_putc (b, '=');
- wrbuf_putc (b, '"');
- wrbuf_put_cdata (b, p->value);
- wrbuf_putc (b, '"');
- }
+ wrbuf_put_xattr (b, c->u.tag.attributes);
wrbuf_puts(b, ">");
if (pretty_format)
wrbuf_puts(b, "\n");
wrbuf_puts (b, "<!--");
switch (c->u.data.what)
{
+ case DATA1I_xmltext:
+ wrbuf_write(b, c->u.data.data, c->u.data.len);
+ break;
case DATA1I_text:
if (!pretty_format || c->u.data.formatted_text)
{