From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on yquem.inria.fr X-Spam-Level: * X-Spam-Status: No, score=1.0 required=5.0 tests=AWL,SPF_FAIL autolearn=disabled version=3.1.3 X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by yquem.inria.fr (Postfix) with ESMTP id 38AD1BC69 for ; Wed, 28 Mar 2007 16:56:07 +0200 (CEST) Received: from mail.gmx.net (mail.gmx.net [213.165.64.20]) by concorde.inria.fr (8.13.6/8.13.6) with SMTP id l2SEu6fg031875 for ; Wed, 28 Mar 2007 16:56:06 +0200 Received: (qmail invoked by alias); 28 Mar 2007 14:56:06 -0000 Received: from p54a32e22.dip0.t-ipconnect.de (EHLO hmmm.de) [84.163.46.34] by mail.gmx.net (mp028) with SMTP; 28 Mar 2007 16:56:06 +0200 X-Authenticated: #20477425 X-Provags-ID: V01U2FsdGVkX1/cvLBLHX7cYB9X13jCAgtl7ZpZIkl8sao3Ky745K znfboQuWjcLD9o Date: Wed, 28 Mar 2007 16:56:04 +0200 From: micha To: Joel Reymont Cc: caml-list@yquem.inria.fr Subject: Re: [Caml-list] Wrapping OCaml function returning a variant Message-ID: <20070328165604.0031caa1@hmmm.de> In-Reply-To: References: <20070328142550.72f2f3a6@hmmm.de> <20070328163420.241a2cfe@hmmm.de> X-Mailer: Sylpheed-Claws 2.6.0 (GTK+ 2.8.20; i486-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Y-GMX-Trusted: 0 X-Miltered: at concorde with ID 460A8206.000 by Joe's j-chkmail (http://j-chkmail . ensmp . fr)! X-Spam: no; 0.00; ocaml:01 val:01 val:01 datatype:01 integers:01 ocaml:01 cheers:01 integer:01 caml-list:01 variant:02 parameters:02 string:02 string:02 long:06 wed:06 Am Wed, 28 Mar 2007 15:46:54 +0100 schrieb Joel Reymont : > I came up with this. Is it sound? > > > switch (Long_val(v)) { I think you must use Tag_val(x) since your datatype is a constructed type with parameters (it is a block not an integer as for : type x = One | Two, here you would have integers ) > case 0: /* success */ > res = String_val(Field(v, 0)); maybe it's better to strcpy() the string if you want to be independent of the ocaml side cheers Michael