From patchwork Mon Mar 12 13:11:27 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?Marc-Andr=C3=A9_Lureau?= X-Patchwork-Id: 146099 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id DEDAFB6F9D for ; Tue, 13 Mar 2012 00:20:40 +1100 (EST) Received: from localhost ([::1]:52824 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S75Ax-00060M-MZ for incoming@patchwork.ozlabs.org; Mon, 12 Mar 2012 09:20:35 -0400 Received: from eggs.gnu.org ([208.118.235.92]:39024) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S75AU-0005uE-Km for qemu-devel@nongnu.org; Mon, 12 Mar 2012 09:20:30 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1S75AJ-00044D-O1 for qemu-devel@nongnu.org; Mon, 12 Mar 2012 09:20:05 -0400 Received: from mail-ey0-f173.google.com ([209.85.215.173]:46998) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S75AI-00043l-HM for qemu-devel@nongnu.org; Mon, 12 Mar 2012 09:19:55 -0400 Received: by eaaf11 with SMTP id f11so1255304eaa.4 for ; Mon, 12 Mar 2012 06:19:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:x-mailer:in-reply-to:references; bh=nSV4KCmoKeQKGQGszQ+P5NxLVFfKyNRhztBn46tM490=; b=ISsS7DCLSxxh/qsOVgVcMz2JlW98nfWjIYUOQSVS1nIs7i1rNIEAxheSlR8s2fWF6N iMk4X1GViE9ZMA4HDBHgRbdK39JObsQuN1ljZqbfrp1dMy19f0H3sZRVt7M0YlUlF0YM w4NEm+GbEbEOA1QbPxcHOF0LpzANN5ZxvFOkhue/f44E4pbfPUcff1XI7qwmVG3QUph5 MW0B+7M8Ek5VyOC79+wm9pOctbQfRpoz3LeZUnrQxX3yqgeWrM9EwsYIk1WBNKh4vIkm Li6V/Fj5+MPMu+/FAdS26pAn7J3gVa98eEDASUeF2pciw07zN8b5kwAXEsXkX153z8bE RjeA== Received: by 10.213.3.156 with SMTP id 28mr846573ebn.227.1331557906846; Mon, 12 Mar 2012 06:11:46 -0700 (PDT) Received: from localhost (133.pool85-58-35.dynamic.orange.es. [85.58.35.133]) by mx.google.com with ESMTPS id r44sm12392413eef.2.2012.03.12.06.11.45 (version=TLSv1/SSLv3 cipher=OTHER); Mon, 12 Mar 2012 06:11:46 -0700 (PDT) From: "=?UTF-8?q?Marc-Andr=C3=A9=20Lureau?=" To: qemu-devel@nongnu.org Date: Mon, 12 Mar 2012 14:11:27 +0100 Message-Id: <1331557893-30806-2-git-send-email-marcandre.lureau@redhat.com> X-Mailer: git-send-email 1.7.7.6 In-Reply-To: <1331557893-30806-1-git-send-email-marcandre.lureau@redhat.com> References: <1331557893-30806-1-git-send-email-marcandre.lureau@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 209.85.215.173 Cc: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Subject: [Qemu-devel] [PATCH/RFC 1/7] ppm_save: use QEMUFile X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org --- hw/vga.c | 22 ++++++++++++---------- 1 files changed, 12 insertions(+), 10 deletions(-) diff --git a/hw/vga.c b/hw/vga.c index 5994f43..24af4a1 100644 --- a/hw/vga.c +++ b/hw/vga.c @@ -2364,19 +2364,20 @@ void vga_init_vbe(VGACommonState *s, MemoryRegion *system_memory) int ppm_save(const char *filename, struct DisplaySurface *ds) { - FILE *f; + QEMUFile *f; uint8_t *d, *d1; uint32_t v; int y, x; uint8_t r, g, b; - int ret; char *linebuf, *pbuf; + gchar *header; + + f = qemu_fopen(filename, "wb"); + g_return_val_if_fail(f != NULL, -1); + + header = g_strdup_printf("P6\n%d %d\n%d\n", ds->width, ds->height, 255); + qemu_put_buffer(f, (uint8_t*)header, strlen(header)); - f = fopen(filename, "wb"); - if (!f) - return -1; - fprintf(f, "P6\n%d %d\n%d\n", - ds->width, ds->height, 255); linebuf = g_malloc(ds->width * 3); d1 = ds->data; for(y = 0; y < ds->height; y++) { @@ -2397,11 +2398,12 @@ int ppm_save(const char *filename, struct DisplaySurface *ds) d += ds->pf.bytes_per_pixel; } d1 += ds->linesize; - ret = fwrite(linebuf, 1, pbuf - linebuf, f); - (void)ret; + qemu_put_buffer(f, (uint8_t*)linebuf, pbuf - linebuf); } + g_free(linebuf); - fclose(f); + g_free(header); + qemu_fclose(f); return 0; }