projects
/
idzebra-moved-to-github.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Update m4
[idzebra-moved-to-github.git]
/
util
/
charmap.c
diff --git
a/util/charmap.c
b/util/charmap.c
index
01286ff
..
c67cae9
100644
(file)
--- a/
util/charmap.c
+++ b/
util/charmap.c
@@
-1,5
+1,5
@@
/* This file is part of the Zebra server.
/* This file is part of the Zebra server.
- Copyright (C) 1994-2009 Index Data
+ Copyright (C) 1994-2011 Index Data
Zebra is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
Zebra is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
@@
-26,6
+26,9
@@
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
* Zebra dictionary.
*/
* Zebra dictionary.
*/
+#if HAVE_CONFIG_H
+#include <config.h>
+#endif
#include <ctype.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
#include <stdlib.h>
@@
-239,7
+242,6
@@
ucs4_t zebra_prim_w(ucs4_t **s)
ucs4_t i = 0;
char fmtstr[8];
ucs4_t i = 0;
char fmtstr[8];
- yaz_log(YLOG_DEBUG, "prim_w %.3s", (char *) *s);
if (**s == '\\' && 1[*s])
{
(*s)++;
if (**s == '\\' && 1[*s])
{
(*s)++;
@@
-425,7
+427,7
@@
static int scan_string(char *s_native,
ucs4_t arg[512];
ucs4_t arg_prim[512];
ucs4_t arg[512];
ucs4_t arg_prim[512];
- ucs4_t *s0, *s = arg;
+ ucs4_t *s = arg;
ucs4_t c, begin, end;
size_t i;
ucs4_t c, begin, end;
size_t i;
@@
-482,9
+484,16
@@
static int scan_string(char *s_native,
break;
case '(':
++s;
break;
case '(':
++s;
- s0 = s; i = 0;
+ i = 0;
while (*s != ')' || s[-1] == '\\')
while (*s != ')' || s[-1] == '\\')
+ {
+ if (*s == '\0')
+ {
+ yaz_log(YLOG_FATAL, "Missing ) in charmap");
+ return -1;
+ }
arg_prim[i++] = zebra_prim_w(&s);
arg_prim[i++] = zebra_prim_w(&s);
+ }
arg_prim[i] = 0;
if (scan_to_utf8(t_utf8, arg_prim, zebra_ucs4_strlen(arg_prim), str, sizeof(str)-1))
return -1;
arg_prim[i] = 0;
if (scan_to_utf8(t_utf8, arg_prim, zebra_ucs4_strlen(arg_prim), str, sizeof(str)-1))
return -1;
@@
-728,7
+737,7
@@
chrmaptab chrmaptab_create(const char *tabpath, const char *name,
chrmaptab_destroy(res);
res = 0;
}
chrmaptab_destroy(res);
res = 0;
}
- yaz_log(YLOG_DEBUG, "maptab %s close %d errors", name, errors);
+ yaz_log(YLOG_DEBUG, "maptab %s num=%d close %d errors", name, num, errors);
if (t_utf8 != 0)
yaz_iconv_close(t_utf8);
if (t_unicode != 0)
if (t_utf8 != 0)
yaz_iconv_close(t_utf8);
if (t_unicode != 0)