X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;ds=sidebyside;f=index%2Fzebraapi.c;h=94964fd389df6ab0dd31f8c0d924c013df877d32;hb=be946e8fca9b807679467d508ccfe0f4b450f2d0;hp=338912579f11c4d84f19bade166decd9a5e3c253;hpb=70ac1af85bfc3ed5298ee657a280a253be57469f;p=idzebra-moved-to-github.git diff --git a/index/zebraapi.c b/index/zebraapi.c index 3389125..94964fd 100644 --- a/index/zebraapi.c +++ b/index/zebraapi.c @@ -1,4 +1,4 @@ -/* $Id: zebraapi.c,v 1.144 2004-12-10 12:37:07 heikki Exp $ +/* $Id: zebraapi.c,v 1.145 2004-12-21 22:00:57 adam Exp $ Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004 Index Data Aps @@ -49,7 +49,6 @@ static int log_level_initialized=0; static Res zebra_open_res (ZebraHandle zh); static void zebra_close_res (ZebraHandle zh); - static void zebra_chdir (ZebraService zs) { const char *dir ; @@ -125,7 +124,6 @@ ZebraHandle zebra_open (ZebraService zs) zh->shadow_enable = 1; default_encoding = res_get_def(zs->global_res, "encoding", "ISO-8859-1"); - zh->record_encoding = xstrdup (default_encoding); zh->iconv_to_utf8 = yaz_iconv_open ("UTF-8", default_encoding); @@ -138,6 +136,8 @@ ZebraHandle zebra_open (ZebraService zs) yaz_log (YLOG_WARN, "iconv: UTF-8 to %s unsupported", default_encoding); + zh->record_encoding = 0; + zebra_mutex_cond_lock (&zs->session_lock); zh->next = zs->sessions; @@ -1870,28 +1870,18 @@ int zebra_shadow_enable (ZebraHandle zh, int value) return 0; } -int zebra_record_encoding (ZebraHandle zh, const char *encoding) +int zebra_octet_term_encoding(ZebraHandle zh, const char *encoding) { ASSERTZH; assert(encoding); - yaz_log(log_level,"zebra_record_encoding"); - zh->errCode=0; - xfree (zh->record_encoding); - - /* - * Fixme! - * Something about charset aliases. Oleg??? - */ + yaz_log(log_level,"zebra_octet_term_encoding"); + zh->errCode = 0; if (zh->iconv_to_utf8 != 0) yaz_iconv_close(zh->iconv_to_utf8); if (zh->iconv_from_utf8 != 0) yaz_iconv_close(zh->iconv_from_utf8); - zh->record_encoding = xstrdup (encoding); - - yaz_log(YLOG_DEBUG, "Reset record encoding: %s", encoding); - zh->iconv_to_utf8 = yaz_iconv_open ("UTF-8", encoding); if (zh->iconv_to_utf8 == 0) @@ -1904,6 +1894,18 @@ int zebra_record_encoding (ZebraHandle zh, const char *encoding) return 0; } +int zebra_record_encoding (ZebraHandle zh, const char *encoding) +{ + ASSERTZH; + yaz_log(log_level,"zebra_record_encoding"); + zh->errCode = 0; + xfree (zh->record_encoding); + zh->record_encoding = 0; + if (encoding) + zh->record_encoding = xstrdup (encoding); + return 0; +} + int zebra_set_resource(ZebraHandle zh, const char *name, const char *value) { ASSERTZH;