2019-05-03 Fred Gleason <fredg@paravelsystems.com>

* Cleaned up a compiler warning for rdimport(1).
This commit is contained in:
Fred Gleason 2019-05-03 16:59:32 -04:00
parent aa59fbb0f5
commit 128a977d56
4 changed files with 89 additions and 5 deletions

View File

@ -18639,3 +18639,5 @@
* Updated the package version to 3.0.0rc01. * Updated the package version to 3.0.0rc01.
2019-05-03 Fred Gleason <fredg@paravelsystems.com> 2019-05-03 Fred Gleason <fredg@paravelsystems.com>
* Fixed a regression that broke audio importation in rdimport(1). * Fixed a regression that broke audio importation in rdimport(1).
2019-05-03 Fred Gleason <fredg@paravelsystems.com>
* Cleaned up a compiler warning for rdimport(1).

View File

@ -740,7 +740,7 @@ int RDSetTimeLength(const QString &str)
return res; return res;
} }
/*
bool RDCopy(const QString &srcfile,const QString &destfile) bool RDCopy(const QString &srcfile,const QString &destfile)
{ {
int src_fd; int src_fd;
@ -777,6 +777,81 @@ bool RDCopy(const QString &srcfile,const QString &destfile)
close(dest_fd); close(dest_fd);
return true; return true;
} }
*/
bool RDCopy(const QString &srcfile,const QString &destfile)
{
int src_fd;
int dest_fd;
if((src_fd=open((const char *)srcfile,O_RDONLY))<0) {
return false;
}
if((dest_fd=open((const char *)destfile,O_WRONLY|O_CREAT,S_IWUSR))<0) {
close(src_fd);
return false;
}
bool ret=RDCopy(src_fd,dest_fd);
close(src_fd);
close(dest_fd);
return ret;
}
bool RDCopy(const QString &srcfile,int dest_fd)
{
int src_fd;
if((src_fd=open((const char *)srcfile,O_RDONLY))<0) {
return false;
}
bool ret=RDCopy(src_fd,dest_fd);
close(src_fd);
return ret;
}
bool RDCopy(int src_fd,const QString &destfile)
{
int dest_fd;
if((dest_fd=open((const char *)destfile,O_WRONLY|O_CREAT,S_IWUSR))<0) {
return false;
}
bool ret=RDCopy(src_fd,dest_fd);
close(dest_fd);
return ret;
}
bool RDCopy(int src_fd,int dest_fd)
{
struct stat src_stat;
struct stat dest_stat;
char *buf=NULL;
int n;
if(fstat(src_fd,&src_stat)<0) {
return false;
}
if(fstat(dest_fd,&dest_stat)<0) {
return false;
}
if(fchmod(dest_fd,src_stat.st_mode)<0) {
return false;
}
buf=(char *)malloc(dest_stat.st_blksize);
while((n=read(src_fd,buf,dest_stat.st_blksize))==dest_stat.st_blksize) {
write(dest_fd,buf,dest_stat.st_blksize);
}
write(dest_fd,buf,n);
free(buf);
return true;
}
bool RDWritePid(const QString &dirname,const QString &filename,int owner, bool RDWritePid(const QString &dirname,const QString &filename,int owner,

View File

@ -84,6 +84,9 @@ bool RDIsSqlNull(const QString &table,const QString &name,unsigned test,
QString RDGetTimeLength(int mseconds,bool leadzero=false,bool tenths=true); QString RDGetTimeLength(int mseconds,bool leadzero=false,bool tenths=true);
int RDSetTimeLength(const QString &string); int RDSetTimeLength(const QString &string);
bool RDCopy(const QString &srcfile,const QString &destfile); bool RDCopy(const QString &srcfile,const QString &destfile);
bool RDCopy(const QString &srcfile,int dest_fd);
bool RDCopy(int src_fd,const QString &destfile);
bool RDCopy(int src_fd,int dest_fd);
bool RDWritePid(const QString &dirname,const QString &filename,int owner=-1, bool RDWritePid(const QString &dirname,const QString &filename,int owner=-1,
int group=-1); int group=-1);
void RDDeletePid(const QString &dirname,const QString &filename); void RDDeletePid(const QString &dirname,const QString &filename);

View File

@ -1480,14 +1480,18 @@ RDWaveFile *MainObject::FixFile(const QString &filename,RDWaveData *wavedata)
// //
// Copy File // Copy File
// //
import_temp_fix_filename= char tempfile[PATH_MAX];
QString(tempnam(RDTempDirectory::basePath(),"rdfix"))+QString(".wav"); strncpy(tempfile,RDTempDirectory::basePath()+
if(import_temp_fix_filename.isNull()) { QString().sprintf("/rdimport%dXXXXXX",getpid()),PATH_MAX);
int dest_fd=mkstemp(tempfile);
if(dest_fd<0) {
return NULL; return NULL;
} }
if(!RDCopy(filename,import_temp_fix_filename)) { import_temp_fix_filename=tempfile;
if(!RDCopy(filename,dest_fd)) {
return NULL; return NULL;
} }
close(dest_fd);
// //
// Apply Fix // Apply Fix