[chirp_devel] [PATCH] Fix logic error preventing auto repeater setting in some cases

Dan Smith
Tue Mar 12 19:03:48 PDT 2013


# HG changeset patch
# User Dan Smith <dsmith at danplanet.com>
# Date 1363140169 25200
# Node ID 39add30a1ee5ea0c652f5ff4a310bcb1c0426eca
# Parent  443ea98c0840de12f8ee149ccd8eecc78bb69a51
Fix logic error preventing auto repeater setting in some cases

If autorpt is enabled and you enter a frequency into a blank channel
that is the same as was previously just entered, the new item defaulting
code fools ed_freq() into thinking that the frequency field was unchanged,
and thus that the auto repeater logic should not be applied. This
enhances the logic that determines if the frequency was changed to avoid
this problem.

Fixes #683

diff -r 443ea98c0840 -r 39add30a1ee5 chirpui/memedit.py
--- a/chirpui/memedit.py	Tue Mar 05 09:49:47 2013 -0800
+++ b/chirpui/memedit.py	Tue Mar 12 19:02:49 2013 -0700
@@ -123,7 +123,7 @@
 
     def ed_freq(self, _foo, path, new, colnum):
         iter = self.store.get_iter(path)
-        prev, = self.store.get(iter, colnum)
+        was_filled, prev = self.store.get(iter, self.col("_filled"), colnum)
 
         def set_offset(path, offset):
             if offset > 0:
@@ -154,7 +154,8 @@
         if not self._features.has_nostep_tuning:
             set_ts(chirp_common.required_step(new))
 
-        if new and self._config.get_bool("autorpt") and new != prev:
+        is_changed = new != prev if was_filled else True
+        if new and self._config.get_bool("autorpt") and is_changed:
             try:
                 band = chirp_common.freq_to_band(new)
                 set_offset(path, 0)



More information about the chirp_devel mailing list