Fixed bug #2068: pkg-config trouble.
[yaz-moved-to-github.git] / src / copy_types.c
1 /*
2  * Copyright (C) 1995-2007, Index Data ApS
3  * All rights reserved.
4  *
5  * $Id: copy_types.c,v 1.1 2007-04-30 08:29:07 adam Exp $
6  */
7
8 /** \file copy_types.c
9     \brief Copies various Z39.50 types
10  */
11
12 #include <yaz/copy_types.h>
13
14 Z_RPNQuery *yaz_copy_z_RPNQuery(Z_RPNQuery *q, ODR out)
15 {
16     Z_RPNQuery *q1 = 0;
17     ODR enc = odr_createmem(ODR_ENCODE);
18     ODR dec = odr_createmem(ODR_DECODE);
19     if (!z_RPNQuery(enc, &q, 0, 0))
20         return 0;
21     else
22     {
23         int len;
24         char *buf = odr_getbuf(enc, &len, 0);
25         if (buf)
26         {
27             odr_setbuf(dec, buf, len, 0);
28             z_RPNQuery(dec, &q1, 0, 0);
29             nmem_transfer(out->mem, dec->mem);
30         }
31     }
32     odr_destroy(enc);
33     odr_destroy(dec);
34     return q1;
35 }
36
37 Z_Query *yaz_copy_Z_Query(Z_Query *q, ODR out)
38 {
39     Z_Query *q1 = 0;
40     ODR enc = odr_createmem(ODR_ENCODE);
41     ODR dec = odr_createmem(ODR_DECODE);
42     if (!z_Query(enc, &q, 0, 0))
43         return 0;
44     else
45     {
46         int len;
47         char *buf = odr_getbuf(enc, &len, 0);
48         if (buf)
49         {
50             odr_setbuf(dec, buf, len, 0);
51             z_Query(dec, &q1, 0, 0);
52             nmem_transfer(out->mem, dec->mem);
53         }
54     }
55     odr_destroy(enc);
56     odr_destroy(dec);
57     return q1;
58 }
59
60
61 /*
62  * Local variables:
63  * c-basic-offset: 4
64  * indent-tabs-mode: nil
65  * End:
66  * vim: shiftwidth=4 tabstop=8 expandtab
67  */
68