#include "bundle-util.h" /* self */
#include "bundle.h"
+#include "main.h"
-static const guint8 *bundle_util_file_retrieve(guint32 *data_length_return,const gchar *pathname,const gchar *basename)
+static G_CONST_RETURN guint8 *bundle_util_file_retrieve(guint32 *data_length_return,const gchar *basename)
{
const guint8 *data;
g_return_val_if_fail(data_length_return!=NULL,NULL);
- g_return_val_if_fail(pathname!=NULL,NULL);
g_return_val_if_fail(basename!=NULL,NULL);
+ if (optarg_verbose)
+ g_message(_("Retrieving internally stored: %s"),basename);
data=g_hash_table_lookup(bundle_hash_new(),basename);
g_return_val_if_fail(data!=NULL,NULL);
*data_length_return=GUINT32_FROM_BE(*(guint32 *)data);
g_return_val_if_fail(pathname!=NULL,FALSE);
g_return_val_if_fail(basename!=NULL,FALSE);
- if (!(data=bundle_util_file_retrieve(&data_length,pathname,basename)))
+ if (!(data=bundle_util_file_retrieve(&data_length,basename)))
return FALSE;
if (-1==(fd=open(pathname,O_RDONLY))) {
return TRUE;
}
-gboolean bundle_util_file_write(const gchar *pathname,const gchar *basename,mode_t pathname_mode)
+gboolean bundle_util_file_write(const gchar *pathname,const gchar *basename,mode_t pathname_mode,gboolean pathname_backup)
{
const guint8 *data;
guint32 data_length;
g_return_val_if_fail(pathname!=NULL,FALSE);
g_return_val_if_fail(basename!=NULL,FALSE);
- if (!(data=bundle_util_file_retrieve(&data_length,pathname,basename)))
+ if (!(data=bundle_util_file_retrieve(&data_length,basename)))
return FALSE;
- if (!bundle_util_file_backup_conditional(pathname,basename))
+ if (pathname_backup && !bundle_util_file_backup_conditional(pathname,basename))
return FALSE;
if (-1==(fd=open(pathname,O_WRONLY|O_CREAT|O_TRUNC,pathname_mode))) {