Change call to parse_cmd_doc to avoid problems with strict aliasing rules.
[yaz-moved-to-github.git] / client / client.c
index 0029c09..4f8ccae 100644 (file)
@@ -2,7 +2,7 @@
  * Copyright (C) 1995-2006, Index Data ApS
  * See the file LICENSE for details.
  *
- * $Id: client.c,v 1.314 2006-09-07 11:31:39 adam Exp $
+ * $Id: client.c,v 1.317 2006-10-04 07:26:00 adam Exp $
  */
 /** \file client.c
  *  \brief yaz-client program
@@ -180,7 +180,7 @@ int cmd_register_tab(const char* arg);
 
 static void close_session (void);
 
-ODR getODROutputStream()
+ODR getODROutputStream(void)
 {
     return out;
 }
@@ -766,7 +766,7 @@ int cmd_open(const char *arg)
     return session_connect(cur_host);
 }
 
-void try_reconnect() 
+void try_reconnect(void)
 {
     char* open_command;
         
@@ -1410,7 +1410,7 @@ static int send_SRW_searchRequest(const char *arg)
     if (record_schema)
         sr->u.request->recordSchema = record_schema;
     if (recordsyntax_size == 1 && recordsyntax_list[0] == VAL_TEXT_XML)
-        sr->u.explain_request->recordPacking = "xml";
+        sr->u.request->recordPacking = "xml";
     return send_srw(sr);
 }
 #endif
@@ -1891,7 +1891,7 @@ const char *get_ill_element (void *clientData, const char *element)
     return 0;
 }
 
-static Z_External *create_external_itemRequest()
+static Z_External *create_external_itemRequest(void)
 {
     struct ill_get_ctl ctl;
     ILL_ItemRequest *req;
@@ -2102,7 +2102,7 @@ static int send_itemorder(const char *type, int itemno)
     return 0;
 }
 
-static int only_z3950()
+static int only_z3950(void)
 {
     if (!conn)
     {
@@ -2294,6 +2294,7 @@ static int cmd_xmles(const char *arg)
         return 1;
     else
     {
+        char *asn_buf = 0;
         int noread = 0;
         char oid_str[51];
         int oid_value_xmles = VAL_XMLES;
@@ -2322,10 +2323,13 @@ static int cmd_xmles(const char *arg)
             printf("Bad OID: %s\n", oid_str);
             return 0;
         }
-        
-        if (parse_cmd_doc(&arg, out, (char **) &ext->u.single_ASN1_type->buf,
+
+        if (parse_cmd_doc(&arg, out, &asn_buf,
                           &ext->u.single_ASN1_type->len, 0) == 0)
             return 0;
+
+        ext->u.single_ASN1_type->buf = (unsigned char *) asn_buf;
+
         req->packageType = yaz_oidval_to_z3950oid(out, CLASS_EXTSERV,
                                                   oid_value_xmles);
         
@@ -3638,7 +3642,7 @@ int cmd_push_command(const char* arg)
     return 1;
 }
 
-void source_rcfile() 
+void source_rcfile(void)
 {
     /*  Look for a $HOME/.yazclientrc and source it if it exists */
     struct stat statbuf;