From 8c81ede66f20eec67e808ee8313450ce84eb963f Mon Sep 17 00:00:00 2001 From: lefranc Date: Fri, 28 May 2010 12:36:32 +0000 Subject: 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 --- cleopatre/application/libspid/src/system.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'cleopatre/application/libspid/src') 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 #include #include +#include +#include #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) -- cgit v1.2.3