diff --git a/lib/rd.h b/lib/rd.h index 052f0c3c..42fa7913 100644 --- a/lib/rd.h +++ b/lib/rd.h @@ -354,7 +354,6 @@ * Ripper Settings */ #define RIPPER_BAR_INTERVAL 500 -#define RIPPER_TEMP_DIR "/tmp" #define RIPPER_TEMP_WAV "rdlibrary_rip.wav" #define RIPPER_TEMP_PEAK "rdlibrary_rip.dat" #define RIPPER_CDDB_USER "rdlibrary" diff --git a/lib/rdaudioconvert.cpp b/lib/rdaudioconvert.cpp index 16a2271e..a9767ca2 100644 --- a/lib/rdaudioconvert.cpp +++ b/lib/rdaudioconvert.cpp @@ -46,6 +46,7 @@ #include #include #include +#include #define STAGE2_XFER_SIZE 2048 #define STAGE2_BUFFER_SIZE 49152 @@ -152,10 +153,7 @@ RDAudioConvert::ErrorCode RDAudioConvert::convert() // // Generate Temporary Filenames // - strcpy(tmpdir,"/tmp"); - if(getenv("TEMP")!=NULL) { - strncpy(tmpdir,getenv("TEMP"),PATH_MAX-20); - } + strcpy(tmpdir,RDTempDir()); strcat(tmpdir,"/rdaudioconvertXXXXXX"); if(mkdtemp(tmpdir)==NULL) { return RDAudioConvert::ErrorInternal; diff --git a/lib/rdcart_dialog.cpp b/lib/rdcart_dialog.cpp index b803da45..0d4572e3 100644 --- a/lib/rdcart_dialog.cpp +++ b/lib/rdcart_dialog.cpp @@ -905,14 +905,29 @@ QString RDCartDialog::GetSearchFilter(const QString &filter, return search; } +QString RDCartDialog::StateFile() { + bool home_found = false; + QString home = RDGetHomeDir(&home_found); + if (home_found) { + return QString().sprintf("%s/.rdcartdialog",(const char *)home); + } else { + return NULL; + } +} void RDCartDialog::LoadState() { - if(getenv("HOME")==NULL) { + QString state_file = StateFile(); + if (state_file == NULL) { return; } + RDProfile *p=new RDProfile(); - p->setSource(QString().sprintf("%s/.rdcartdialog",getenv("HOME"))); + p->setSource(state_file); + + bool value_read = false; + cart_limit_box->setChecked(p->boolValue("RDCartDialog", "LimitSearch", true, &value_read)); + delete p; } @@ -921,11 +936,12 @@ void RDCartDialog::SaveState() { FILE *f=NULL; - if(getenv("HOME")==NULL) { + QString state_file = StateFile(); + if (state_file == NULL) { return; } - if((f=fopen(QString().sprintf("%s/.rdcartdialog",getenv("HOME")),"w"))== - NULL) { + + if((f=fopen(state_file,"w"))==NULL) { return; } fprintf(f,"[RDCartDialog]\n"); diff --git a/lib/rdcart_dialog.h b/lib/rdcart_dialog.h index 3a01e9f9..29c50675 100644 --- a/lib/rdcart_dialog.h +++ b/lib/rdcart_dialog.h @@ -84,6 +84,7 @@ class RDCartDialog : public QDialog void BuildGroupList(); QString GetSearchFilter(const QString &filter,const QString &group, const QString &schedcode); + QString StateFile(); void LoadState(); void SaveState(); int *cart_cartnum; diff --git a/lib/rdcut_dialog.cpp b/lib/rdcut_dialog.cpp index 27e57a9d..39527ae9 100644 --- a/lib/rdcut_dialog.cpp +++ b/lib/rdcut_dialog.cpp @@ -35,6 +35,8 @@ #include #include #include +#include + // // Icons @@ -641,14 +643,29 @@ void RDCutDialog::BuildGroupList() } } +QString RDCutDialog::StateFile() { + bool home_found = false; + QString home = RDGetHomeDir(&home_found); + if (home_found) { + return QString().sprintf("%s/.rdcartdialog",(const char *)home); + } else { + return NULL; + } +} void RDCutDialog::LoadState() { - if(getenv("HOME")==NULL) { + QString state_file = StateFile(); + if (state_file == NULL) { return; } + RDProfile *p=new RDProfile(); - p->setSource(QString().sprintf("%s/.rdcartdialog",getenv("HOME"))); + p->setSource(state_file); + + bool value_read = false; + cart_limit_box->setChecked(p->boolValue("RDCartDialog", "LimitSearch", true, &value_read)); + delete p; } @@ -657,11 +674,12 @@ void RDCutDialog::SaveState() { FILE *f=NULL; - if(getenv("HOME")==NULL) { + QString state_file = StateFile(); + if (state_file == NULL) { return; } - if((f=fopen(QString().sprintf("%s/.rdcartdialog",getenv("HOME")),"w"))== - NULL) { + + if((f=fopen(state_file,"w"))==NULL) { return; } fprintf(f,"[RDCartDialog]\n"); diff --git a/lib/rdcut_dialog.h b/lib/rdcut_dialog.h index d909cff9..5bb2803f 100644 --- a/lib/rdcut_dialog.h +++ b/lib/rdcut_dialog.h @@ -74,6 +74,7 @@ class RDCutDialog : public QDialog void RefreshCuts(); void SelectCut(QString cutname); void BuildGroupList(); + QString StateFile(); void LoadState(); void SaveState(); RDListView *cut_cart_list; diff --git a/lib/rdformpost.cpp b/lib/rdformpost.cpp index fd88e9c2..8119b92b 100644 --- a/lib/rdformpost.cpp +++ b/lib/rdformpost.cpp @@ -71,12 +71,7 @@ RDFormPost::RDFormPost(RDFormPost::Encoding encoding,unsigned maxsize, // // Initialize Temp Directory Path // - if(getenv("TMPDIR")!=NULL) { - strcpy(tempdir,getenv("TMPDIR")); - } - else { - strcpy(tempdir,"/tmp"); - } + strcpy(tempdir,RDTempDir()); strcat(tempdir,"/rivendellXXXXXX"); post_tempdir=mkdtemp(tempdir); if(post_tempdir.isNull()) { diff --git a/lib/rdmonitor_config.cpp b/lib/rdmonitor_config.cpp index 2dfbc7f4..982f89ac 100644 --- a/lib/rdmonitor_config.cpp +++ b/lib/rdmonitor_config.cpp @@ -28,13 +28,17 @@ #include #include +#include RDMonitorConfig::RDMonitorConfig() { clear(); mon_filename="/.rdmonitorrc"; - if(getenv("HOME")!=NULL) { - mon_filename=QString(getenv("HOME"))+mon_filename; + + bool home_found = false; + QString home = RDGetHomeDir(&home_found); + if (home_found) { + mon_filename=home+mon_filename; } } diff --git a/lib/rdtextfile.cpp b/lib/rdtextfile.cpp index 3315f7e7..9eab3955 100644 --- a/lib/rdtextfile.cpp +++ b/lib/rdtextfile.cpp @@ -65,7 +65,7 @@ bool RDTextFile(const QString &data) proc->launch(""); delete proc; #else - strcpy(tmpfile,"/tmp/rdreportXXXXXX"); + strcpy(tmpfile,RDTempDir()+"/rdreportXXXXXX"); int fd=mkstemp(tmpfile); if(fd<0) { QMessageBox::warning(NULL,"File Error","Unable to create temporary file"); diff --git a/lib/rdweb.cpp b/lib/rdweb.cpp index ede0d81d..5999d128 100644 --- a/lib/rdweb.cpp +++ b/lib/rdweb.cpp @@ -783,13 +783,7 @@ bool RDParsePost(std::map *vars) // // Initialize Temp Directory Path // - if(getenv("TMPDIR")!=NULL) { - tempdir=getenv("TMPDIR"); - } - else { - tempdir="/tmp"; - } - tempdir+="/rivendellXXXXXX"; + tempdir = RDTempDir() + "/rivendellXXXXXX"; // // Get message part separator diff --git a/rdadmin/createdb.cpp b/rdadmin/createdb.cpp index 28f7286c..dfd31f89 100644 --- a/rdadmin/createdb.cpp +++ b/rdadmin/createdb.cpp @@ -48,6 +48,7 @@ #include "rdconfig.h" #include #include +#include // // NOTE TO MAINTAINERS: @@ -2729,11 +2730,10 @@ int UpdateDb(int ver) // if(!admin_skip_backup) { if(admin_backup_filename.isEmpty()) { - if(getenv("HOME")==NULL) { - admin_backup_filename="/tmp"; - } - else { - admin_backup_filename=getenv("HOME"); + bool home_found = false; + admin_backup_filename = RDGetHomeDir(&home_found); + if (!home_found) { + admin_backup_filename = RDTempDir(); } admin_backup_filename+= QString().sprintf("/rdbackup-%s-%d.sql.gz", diff --git a/rdcatch/rdcatch.cpp b/rdcatch/rdcatch.cpp index 48343779..0ad458f1 100644 --- a/rdcatch/rdcatch.cpp +++ b/rdcatch/rdcatch.cpp @@ -2513,15 +2513,24 @@ int MainWidget::GetConnection(QString station,unsigned chan) return -1; } +QString MainWidget::GeometryFile() { + bool home_found = false; + QString home = RDGetHomeDir(&home_found); + if (home_found) { + return home + "/" + RDCATCH_GEOMETRY_FILE; + } else { + return NULL; + } +} void MainWidget::LoadGeometry() { - if(getenv("HOME")==NULL) { + QString geometry_file = GeometryFile(); + if(geometry_file==NULL) { return; } RDProfile *profile=new RDProfile(); - profile-> - setSource(QString().sprintf("%s/%s",getenv("HOME"),RDCATCH_GEOMETRY_FILE)); + profile->setSource(geometry_file); resize(profile->intValue("RDCatch","Width",sizeHint().width()), profile->intValue("RDCatch","Height",sizeHint().height())); @@ -2531,12 +2540,11 @@ void MainWidget::LoadGeometry() void MainWidget::SaveGeometry() { - if(getenv("HOME")==NULL) { + QString geometry_file = GeometryFile(); + if(geometry_file==NULL) { return; } - FILE *file=fopen((const char *)QString(). - sprintf("%s/%s",getenv("HOME"),RDCATCH_GEOMETRY_FILE), - "w"); + FILE *file=fopen(geometry_file,"w"); if(file==NULL) { return; } diff --git a/rdcatch/rdcatch.h b/rdcatch/rdcatch.h index 02eb0669..b3674c93 100644 --- a/rdcatch/rdcatch.h +++ b/rdcatch/rdcatch.h @@ -126,6 +126,7 @@ class MainWidget : public QWidget RDListViewItem *GetItem(int id); int GetMonitor(int serial,int chan); int GetConnection(QString station,unsigned chan=0); + QString GeometryFile(); void LoadGeometry(); void SaveGeometry(); std::vector catch_monitor; diff --git a/rdlibrary/cdripper.cpp b/rdlibrary/cdripper.cpp index ca8ff372..df26f678 100644 --- a/rdlibrary/cdripper.cpp +++ b/rdlibrary/cdripper.cpp @@ -84,7 +84,7 @@ CdRipper::CdRipper(QString cutname,RDCddbRecord *rec,RDLibraryConf *conf, // Create Temporary Directory // char path[PATH_MAX]; - strncpy(path,RIPPER_TEMP_DIR,PATH_MAX); + strncpy(path,RDTempDir(),PATH_MAX); strcat(path,"/XXXXXX"); if(mkdtemp(path)==NULL) { QMessageBox::warning(this,"RDLibrary - "+tr("Ripper Error"), diff --git a/rdlibrary/disk_ripper.cpp b/rdlibrary/disk_ripper.cpp index e49eed21..6d1b1dba 100644 --- a/rdlibrary/disk_ripper.cpp +++ b/rdlibrary/disk_ripper.cpp @@ -86,7 +86,7 @@ DiskRipper::DiskRipper(QString *filter,QString *group,QString *schedcode, // Create Temporary Directory // char path[PATH_MAX]; - strncpy(path,RIPPER_TEMP_DIR,PATH_MAX); + strncpy(path,RDTempDir(),PATH_MAX); strcat(path,"/XXXXXX"); if(mkdtemp(path)==NULL) { QMessageBox::warning(this,"RDLibrary - "+tr("Ripper Error"), diff --git a/rdlibrary/rdlibrary.cpp b/rdlibrary/rdlibrary.cpp index 9c3f2cbc..fad20d5a 100644 --- a/rdlibrary/rdlibrary.cpp +++ b/rdlibrary/rdlibrary.cpp @@ -1405,16 +1405,24 @@ QString MainWidget::GetTypeFilter() return type_filter; } +QString MainWidget::GeometryFile() { + bool home_found = false; + QString home = RDGetHomeDir(&home_found); + if (home_found) { + return home + "/" + RDLIBRARY_GEOMETRY_FILE; + } else { + return NULL; + } +} void MainWidget::LoadGeometry() { - if(getenv("HOME")==NULL) { + QString geometry_file = GeometryFile(); + if(geometry_file==NULL) { return; } RDProfile *profile=new RDProfile(); - profile-> - setSource(QString().sprintf("%s/%s",getenv("HOME"), - RDLIBRARY_GEOMETRY_FILE)); + profile->setSource(geometry_file); resize(profile->intValue("RDLibrary","Width",sizeHint().width()), profile->intValue("RDLibrary","Height",sizeHint().height())); lib_shownotes_box-> @@ -1426,12 +1434,11 @@ void MainWidget::LoadGeometry() void MainWidget::SaveGeometry() { - if(getenv("HOME")==NULL) { + QString geometry_file = GeometryFile(); + if(geometry_file==NULL) { return; } - FILE *file=fopen((const char *)QString(). - sprintf("%s/%s",getenv("HOME"),RDLIBRARY_GEOMETRY_FILE), - "w"); + FILE *file=fopen(geometry_file,"w"); if(file==NULL) { return; } diff --git a/rdlibrary/rdlibrary.h b/rdlibrary/rdlibrary.h index 50bc3422..a15beb83 100644 --- a/rdlibrary/rdlibrary.h +++ b/rdlibrary/rdlibrary.h @@ -105,6 +105,7 @@ class MainWidget : public QWidget const QDateTime ¤t_datetime); void SetCaption(QString user); QString GetTypeFilter(); + QString GeometryFile(); void LoadGeometry(); void SaveGeometry(); void LockUser(); diff --git a/utils/rdchunk/rdchunk.cpp b/utils/rdchunk/rdchunk.cpp index 0bbee9ad..fcff5776 100644 --- a/utils/rdchunk/rdchunk.cpp +++ b/utils/rdchunk/rdchunk.cpp @@ -249,7 +249,7 @@ void MainWidget::loadWaveFile() wave_name=QFileDialog::getOpenFileName(wave_path,RD_AUDIO_FILE_FILTER,this); if(wave_name.isEmpty()) { wave_loaded=false; - wave_path=getenv("HOME"); + wave_path=RDHomeDir(); wave_base=tr("RHPIPlay"); update(); return;