From a3a004418560ee0e941540d3ec03b59fb9e86716 Mon Sep 17 00:00:00 2001 From: François Revel Date: Sat, 2 Jan 2010 20:41:24 +0000 Subject: Default BeOS implementation for save_complete_gui_save() and save_complete_htmlSaveFileFormat(). svn path=/trunk/netsurf/; revision=9780 --- beos/beos_save_complete.cpp | 87 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 beos/beos_save_complete.cpp (limited to 'beos') diff --git a/beos/beos_save_complete.cpp b/beos/beos_save_complete.cpp new file mode 100644 index 000000000..12de212ac --- /dev/null +++ b/beos/beos_save_complete.cpp @@ -0,0 +1,87 @@ +/* + * Copyright 2008 François Revol + * Copyright 2009 Mark Benjamin + * + * This file is part of NetSurf, http://www.netsurf-browser.org/ + * + * NetSurf is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * NetSurf is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#define _GNU_SOURCE + +#define __STDBOOL_H__ 1 +#include +#include +#include +#include +extern "C" { +#include "content/content.h" +#include "desktop/save_complete.h" +#include "utils/utils.h" +} + +/** +* conducts the filesystem save appropriate to the gui +* \param path save path +* \param filename name of file to save +* \param len data length +* \param sourcedata pointer to data to save +* \param type content type +* \return true for success +*/ + +bool save_complete_gui_save(const char *path, const char *filename, + size_t len, const char *sourcedata, content_type type) +{ + int res; + int namelen; + namelen = strlen(path) + strlen(filename) + 2; /* '/', '\0' */ + char *fullpath = (char *)malloc(namelen); + if (!fullpath) { + warn_user("NoMemory", 0); + return false; + } + snprintf(fullpath, namelen, "%s/%s", path, filename); + FILE *f; + f = fopen(fullpath, "wb"); + free(fullpath); + if (f == NULL) + return false; + res = fwrite(sourcedata, len, 1, f); + fclose(f); + if (res != 1) + return false; + return true; +} + +/** +* wrapper for lib function htmlSaveFileFormat; front sets path from path +* + filename in a filesystem-specific way +*/ + +int save_complete_htmlSaveFileFormat(const char *path, const char *filename, + xmlDocPtr cur, const char *encoding, int format) +{ + int ret; + int len = strlen(path) + strlen(filename) + 2; + char *fullpath = (char *)malloc(len); + if (fullpath == NULL) { + warn_user("NoMemory", 0); + return -1; + } + snprintf(fullpath, len, "%s/%s", path, filename); + ret = htmlSaveFileFormat(fullpath, cur, encoding, format); + free(fullpath); + return ret; +} + -- cgit v1.2.3