From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7978 invoked by alias); 2 Dec 2008 15:39:03 -0000 Received: (qmail 7970 invoked by uid 22791); 2 Dec 2008 15:39:03 -0000 X-Spam-Check-By: sourceware.org Received: from mail28.messagelabs.com (HELO mail28.messagelabs.com) (216.82.249.131) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 02 Dec 2008 15:37:54 +0000 X-VirusChecked: Checked X-Env-Sender: Alex.Austin@spectrumdsi.com X-Msg-Ref: server-4.tower-28.messagelabs.com!1228232272!27918796!1 X-StarScan-Version: 6.0.0; banners=-,-,- Received: (qmail 16807 invoked from network); 2 Dec 2008 15:37:52 -0000 Received: from mail.mx1.digi.com (HELO mcl-sms-ns1.digi.com) (66.77.174.13) by server-4.tower-28.messagelabs.com with RC4-SHA encrypted SMTP; 2 Dec 2008 15:37:52 -0000 Received: from mtk-sms-exch01.digi.com (10.10.8.100) by mail.mx1.digi.com (172.16.1.13) with Microsoft SMTP Server (TLS) id 8.1.311.2; Tue, 2 Dec 2008 09:40:09 -0600 Received: from mtk-sms-exch01.digi.com ([10.10.8.100]) by mtk-sms-exch01.digi.com ([10.10.8.100]) with mapi; Tue, 2 Dec 2008 09:37:51 -0600 From: "Austin, Alex" To: Harvey Chapman CC: "gcc-help@gcc.gnu.org" Date: Tue, 02 Dec 2008 15:39:00 -0000 Subject: RE: va_arglist Message-ID: <3DC6D022E7CC5D41A9CA465499463C9E719BD73241@mtk-sms-exch01.digi.com> References: <3DC6D022E7CC5D41A9CA465499463C9E719BD73237@mtk-sms-exch01.digi.com> <4935382F.1060909@3gfp.com> In-Reply-To: <4935382F.1060909@3gfp.com> x-cr-puzzleid: {933E4551-42AD-45A7-B993-941F419E6E10} x-cr-hashedpuzzle: CoYU C+Vi DWeQ D4Tf D/9l FLSz GQU2 G/7h LeNT NSqv O+fL PkH2 P4AR P4N0 QZQ6 UAwq;2;ZwBjAGMALQBoAGUAbABwAEAAZwBjAGMALgBnAG4AdQAuAG8AcgBnADsAaABjAGgAYQBwAG0AYQBuAC0AZwBjAGMALQBoAGUAbABwAEAAMwBnAGYAcAAuAGMAbwBtAA==;Sosha1_v1;7;{933E4551-42AD-45A7-B993-941F419E6E10};YQBsAGUAeAAuAGEAdQBzAHQAaQBuAEAAcwBwAGUAYwB0AHIAdQBtAGQAcwBpAC4AYwBvAG0A;Tue, 02 Dec 2008 15:37:45 GMT;UgBFADoAIAB2AGEAXwBhAHIAZwBsAGkAcwB0AA== Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Mailing-List: contact gcc-help-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-help-owner@gcc.gnu.org X-SW-Source: 2008-12/txt/msg00028.txt.bz2 That's all about unpacking an arglist. I need to pack an arglist. Also, the= function in question isn't actually printf, but a custom API, and it doesn= 't have a vprintf equivalent. -----Original Message----- From: Harvey Chapman [mailto:hchapman-gcc-help@3gfp.com]=20 Sent: Tuesday, December 02, 2008 7:29 AM To: Austin, Alex Cc: gcc-help@gcc.gnu.org Subject: Re: va_arglist Maybe this will help? http://www.cl.cam.ac.uk/cgi-bin/manpage?3+stdarg Although, I tried nesting some printf-like calls and had no success.=20 Perhaps there's a trick to it? H. #include #include int testB(char *fmt, ...) { va_list ap; va_start(ap, fmt); printf("%p ", va_arg(ap, char *)); printf("%c\n", va_arg(ap, int)); va_end(ap); va_start(ap, fmt); vprintf(fmt, ap); va_end(ap); return(0); } int testA(char *fmt, ...) { int rc =3D 0; va_list ap; va_start(ap, fmt); printf("%p ", va_arg(ap, char *)); printf("%c\n", va_arg(ap, int)); va_end(ap); va_start(ap, fmt); rc =3D testB(fmt, ap); va_end(ap); return(rc); } int main(int argc, char *argv[]) { testA("Hello, %s%c\n", "World", '!'); return(0); }