diff --git a/src/zapit/include/zapit/getservices.h b/src/zapit/include/zapit/getservices.h index fa2e5d33a..8fb26d083 100644 --- a/src/zapit/include/zapit/getservices.h +++ b/src/zapit/include/zapit/getservices.h @@ -109,7 +109,7 @@ class CServiceManager bool InitSatPosition(t_satellite_position position, char * name = NULL, bool force = false); bool LoadServices(bool only_current); - void SaveServices(bool tocopy, bool if_changed = false); + void SaveServices(bool tocopy, bool if_changed = false, bool no_deleted = false); void SaveMotorPositions(); bool SaveCurrentServices(transponder_id_t tpid); bool CopyCurrentServices(transponder_id_t tpid); diff --git a/src/zapit/src/getservices.cpp b/src/zapit/src/getservices.cpp index b71ef1ceb..e33f06417 100644 --- a/src/zapit/src/getservices.cpp +++ b/src/zapit/src/getservices.cpp @@ -783,7 +783,7 @@ void CServiceManager::WriteSatHeader(FILE * fd, sat_config_t &config) } } -void CServiceManager::SaveServices(bool tocopy, bool if_changed) +void CServiceManager::SaveServices(bool tocopy, bool if_changed, bool no_deleted) { int processed = 0; @@ -826,7 +826,9 @@ void CServiceManager::SaveServices(bool tocopy, bool if_changed) tpdone = 1; } - ccI->second.dumpServiceXml(fd); + /* don't dump removed channels if no_deleted == true */ + if (!no_deleted || !(ccI->second.flags & CZapitChannel::REMOVED)) + ccI->second.dumpServiceXml(fd); processed++; #ifdef SAVE_DEBUG chans_processed.insert(ccI->second.getChannelID());