summaryrefslogtreecommitdiffstats
path: root/extra/wicd/wicd-1.7.0-python-2.7.patch
blob: 51a2c8312dc35a7618d031bafb9d6ebd6f6f6d6a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
diff -ur wicd-1.7.0/wicd/configmanager.py wicd-1.7.0.new/wicd/configmanager.py
--- wicd-1.7.0/wicd/configmanager.py	2010-01-15 05:49:11.000000000 +0100
+++ wicd-1.7.0.new/wicd/configmanager.py	2010-10-08 13:14:22.084345024 +0200
@@ -35,7 +35,7 @@
 class ConfigManager(RawConfigParser):
     """ A class that can be used to manage a given configuration file. """
     def __init__(self, path, debug=False, mark_whitespace="`'`"):
-        RawConfigParser.__init__(self)
+        RawConfigParser.__init__(self, allow_no_value=True)
         self.config_file = path
         self.debug = debug
         self.mrk_ws = mark_whitespace
@@ -176,28 +176,35 @@
 
 
     def _copy_section(self, name):
-        # Yes, deepcopy sucks, but it is robust to changes in both
-        # this class and RawConfigParser.
-        p = copy.deepcopy(self)
-        for sname in p.sections():
-            if sname != name:
-                p.remove_section(sname)
+        p = ConfigManager("", self.debug, self.mrk_ws)
+        p.add_section(name)
+        for (iname, value) in self.items(name):
+            p.set(name, iname, value)
+        # Store the filename this section was read from.
         p.config_file = p.get_option(name, '_filename_', p.config_file)
         p.remove_option(name, '_filename_')
         return p
 
     def write(self):
         """ Writes the loaded config file to disk. """
-        # Really don't like this deepcopy.
-        p = copy.deepcopy(self)
-        for sname in p.sections():
-            fname = p.get_option(sname, '_filename_')
+        in_this_file = []
+        for sname in self.sections():
+            fname = self.get_option(sname, '_filename_')
             if fname and fname != self.config_file:
+                # Write sections from other files
                 section = self._copy_section(sname)
-                p.remove_section(sname)
                 section._write_one()
+            else:
+                # Save names of local sections
+                in_this_file.append(sname)
 
-        for sname in p.sections():
+        # Make an instance with only these sections
+        p = ConfigManager("", self.debug, self.mrk_ws)
+        p.config_file = self.config_file
+        for sname in in_this_file:
+            p.add_section(sname)
+            for (iname, value) in self.items(sname):
+                p.set(sname, iname, value)
             p.remove_option(sname, '_filename_')
         p._write_one()
 
diff -ur wicd-1.7.0/wicd/wicd-daemon.py wicd-1.7.0.new/wicd/wicd-daemon.py
--- wicd-1.7.0/wicd/wicd-daemon.py	2010-01-15 05:49:11.000000000 +0100
+++ wicd-1.7.0.new/wicd/wicd-daemon.py	2010-10-08 13:11:15.811786603 +0200
@@ -1802,7 +1802,7 @@
     wicd_bus = dbus.service.BusName('org.wicd.daemon', bus=bus)
     daemon = WicdDaemon(wicd_bus, auto_connect=auto_connect)
     if not no_poll:
-        child_pid = Popen([misc.find_path("python"), "-O", 
+        child_pid = Popen([misc.find_path("python2"), "-O", 
                           os.path.join(wpath.daemon, "monitor.py")],
                           shell=False, close_fds=True).pid
     atexit.register(on_exit, child_pid)