diff --git a/src/zapit/include/zapit/getservices.h b/src/zapit/include/zapit/getservices.h index 56c577f98..2dc1cd0dc 100644 --- a/src/zapit/include/zapit/getservices.h +++ b/src/zapit/include/zapit/getservices.h @@ -112,7 +112,7 @@ class CServiceManager bool InitSatPosition(t_satellite_position position, char * name = NULL, bool force = false, int deltype = FE_QPSK); 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 72fdd2947..c1137fa68 100644 --- a/src/zapit/src/getservices.cpp +++ b/src/zapit/src/getservices.cpp @@ -785,7 +785,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; @@ -830,7 +830,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());