summaryrefslogtreecommitdiff
path: root/cleopatre/application/libspid/src
diff options
context:
space:
mode:
authorlefranc2010-05-28 12:36:32 +0000
committerlefranc2010-05-28 12:36:32 +0000
commit8c81ede66f20eec67e808ee8313450ce84eb963f (patch)
treea9587cd2f3dea511040bd057c515b93662e0996a /cleopatre/application/libspid/src
parent9b34e55ab81d89496d108735a917ad2dbd57b482 (diff)
cleo/appli/libspid: make good copy a files with dir in name, closes #1587
git-svn-id: svn+ssh://pessac/svn/cesar/trunk@7139 017c9cb6-072f-447c-8318-d5b54f68fe89
Diffstat (limited to 'cleopatre/application/libspid/src')
-rw-r--r--cleopatre/application/libspid/src/system.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/cleopatre/application/libspid/src/system.c b/cleopatre/application/libspid/src/system.c
index 7290b0cf38..10628088cf 100644
--- a/cleopatre/application/libspid/src/system.c
+++ b/cleopatre/application/libspid/src/system.c
@@ -19,6 +19,8 @@
#include <errno.h>
#include <fcntl.h>
#include <unistd.h>
+#include <time.h>
+#include <syslog.h>
#include "libspid.h"
/**
@@ -227,7 +229,7 @@ void libspid_system_reboot(void)
libspid_error_t libspid_system_save(void)
{
FILE *fp;
- char *ptr, filename[128], command_buffer[256];
+ char *ptr, filename[128], *dirptr, tmpbuf[128], command_buffer[256];
int rc = 0;
char prefix[16] = {0};
@@ -260,7 +262,12 @@ libspid_error_t libspid_system_save(void)
{
continue;
}
- sprintf(command_buffer, "cp -a %s/%.64s %s", LIBSPID_CONF_ROOT_PATH, ptr, LIBSPID_SAVE_DIR_PATH);
+ strcpy (tmpbuf, ptr);
+ dirptr = dirname (tmpbuf);
+ sprintf(command_buffer, "mkdir -p %s/%.64s", LIBSPID_SAVE_DIR_PATH, dirptr);
+ //syslog(LOG_DEBUG, "libspid_save_config: %s", command_buffer);
+ rc = system(command_buffer);
+ sprintf(command_buffer, "cp -a %s/%.64s %s/%s", LIBSPID_CONF_ROOT_PATH, ptr, LIBSPID_SAVE_DIR_PATH, dirptr);
//syslog(LOG_DEBUG, "libspid_save_config: %s", command_buffer);
rc = system(command_buffer);
if (rc !=0)