projects
/
yaz-moved-to-github.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'master' of ssh://git.indexdata.com/home/git/pub/yaz
[yaz-moved-to-github.git]
/
src
/
marcdisp.c
diff --git
a/src/marcdisp.c
b/src/marcdisp.c
index
d3c6c92
..
a5084ce
100644
(file)
--- a/
src/marcdisp.c
+++ b/
src/marcdisp.c
@@
-1,8
+1,6
@@
-/*
- * Copyright (C) 1995-2007, Index Data ApS
+/* This file is part of the YAZ toolkit.
+ * Copyright (C) 1995-2008 Index Data
* See the file LICENSE for details.
* See the file LICENSE for details.
- *
- * $Id: marcdisp.c,v 1.54 2008-01-30 19:59:02 adam Exp $
*/
/**
*/
/**
@@
-20,6
+18,7
@@
#include <stdarg.h>
#include <stdio.h>
#include <stdarg.h>
#include <stdio.h>
+#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <yaz/marcdisp.h>
#include <string.h>
#include <ctype.h>
#include <yaz/marcdisp.h>
@@
-468,7
+467,7
@@
int yaz_marc_write_line(yaz_marc_t mt, WRBUF wr)
the code is a single character .. However we've
seen multibyte codes, so see how big it really is */
size_t using_code_len =
the code is a single character .. However we've
seen multibyte codes, so see how big it really is */
size_t using_code_len =
- (identifier_length != 2) ? identifier_length - 1
+ (identifier_length > 2) ? identifier_length - 1
:
cdata_one_character(mt, s->code_data);
:
cdata_one_character(mt, s->code_data);
@@
-617,7
+616,7
@@
static int yaz_marc_write_marcxml_ns1(yaz_marc_t mt, WRBUF wr,
the code is a single character .. However we've
seen multibyte codes, so see how big it really is */
size_t using_code_len =
the code is a single character .. However we've
seen multibyte codes, so see how big it really is */
size_t using_code_len =
- (identifier_length != 2) ? identifier_length - 1
+ (identifier_length > 2) ? identifier_length - 1
:
cdata_one_character(mt, s->code_data);
:
cdata_one_character(mt, s->code_data);
@@
-719,12
+718,12
@@
int yaz_marc_write_marcxchange(yaz_marc_t mt, WRBUF wr,
}
}
+#if YAZ_HAVE_XML2
int yaz_marc_write_xml(yaz_marc_t mt, xmlNode **root_ptr,
const char *ns,
const char *format,
const char *type)
{
int yaz_marc_write_xml(yaz_marc_t mt, xmlNode **root_ptr,
const char *ns,
const char *format,
const char *type)
{
-#if YAZ_HAVE_XML2
struct yaz_marc_node *n;
int identifier_length;
const char *leader = 0;
struct yaz_marc_node *n;
int identifier_length;
const char *leader = 0;
@@
-787,7
+786,7
@@
int yaz_marc_write_xml(yaz_marc_t mt, xmlNode **root_ptr,
the code is a single character .. However we've
seen multibyte codes, so see how big it really is */
size_t using_code_len =
the code is a single character .. However we've
seen multibyte codes, so see how big it really is */
size_t using_code_len =
- (identifier_length != 2) ? identifier_length - 1
+ (identifier_length > 2) ? identifier_length - 1
:
cdata_one_character(mt, s->code_data);
:
cdata_one_character(mt, s->code_data);
@@
-829,10
+828,8
@@
int yaz_marc_write_xml(yaz_marc_t mt, xmlNode **root_ptr,
}
wrbuf_destroy(wr_cdata);
return 0;
}
wrbuf_destroy(wr_cdata);
return 0;
-#else
- return -1;
-#endif
}
}
+#endif
int yaz_marc_write_iso2709(yaz_marc_t mt, WRBUF wr)
{
int yaz_marc_write_iso2709(yaz_marc_t mt, WRBUF wr)
{
@@
-1054,7
+1051,7
@@
static int marc_exec_leader(const char *leader_spec, char *leader, size_t size)
no = sscanf(cp, "%d=%20[^,]%n", &pos, val, &no_read);
if (no < 2 || no_read < 3)
return -1;
no = sscanf(cp, "%d=%20[^,]%n", &pos, val, &no_read);
if (no < 2 || no_read < 3)
return -1;
- if (pos < 0 || pos >= size)
+ if (pos < 0 || (size_t) pos >= size)
return -1;
if (*val == '\'')
return -1;
if (*val == '\'')