[IniLCNScanner] Fails to propagate some changes to bouquets.* files

Issue #727 resolved
prl created an issue

When /etc/enigma2/bouquets.tv and bouquets.radioare updated in IniLCNScanner.LCN.addInBouquets(), the files are left unchanged if any line contains the name of the corresponding Terrestrial LCN bouquet file (rep userbouquet.terrestrial_lcn.tv and userbouquet.terrestrial_lcn.radio).

This means that if the code changes some other part of the entry for the Terrestrial LCN bouquet file (e.g. the flags, as in the fix for issue #726), the change is ignored.

The code also allows multiple entries for userbouquet.terrestrial_lcn.tv(resp .radio) in the bouquets file, and would not respect user changes to the order of bouquets in the bouquets file.

Change addInBouquets()to only short-circuit the update if the new entry for the Terrestrial LCN bouquet file is identical with the one in the file. If the entry is to be updated, do it in the position of the first occurrence of any entry for the Terrestrial LCN bouquet file. If there is no existing entry, put the Terrestrial LCN bouquet file entry before all other existing service entries in the file.

Replication steps

Apply the replication steps in issue #726. Then apply the fix for issue #726. Do a location scan (MENU>Setup>Tuners>Location scan). The Terrestrial RADIO LCN bouquet is not accessible. Do a Factory reset (MENU>Setup>System>Factory reset) and rescan in the startup wizard. Now the Terrestrial RADIO LCN bouquet is accessible.

Alternatively, by code examination.

Comments (2)

  1. Peter Urbanec

    Fix bug #727: [IniLCNScanner] Fails to propagate some changes to bouquets.* files

    Change addInBouquets() to only short-circuit the update if the new entry for the Terrestrial LCN bouquet file is identical with a single entry in the file. If the entry is to be updated, do it in the position of the first occurrence of any entry for the Terrestrial LCN bouquet file. If there is no existing entry, put the Terrestrial LCN bouquet file entry before all other existing service entries in the file.

    Done with a complete re-write of addInBouquets() to clean it up a bit and make it more Pythonic.

    → <<cset 8dd22de8d294>>

  2. Log in to comment