]> git.pld-linux.org Git - packages/wicd.git/commitdiff
- initial
authorZsolt Udvari <uzsolt@pld-linux.org>
Tue, 5 Oct 2010 20:59:31 +0000 (20:59 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
- https://bugs.launchpad.net/wicd/+bug/602825/comments/24

Changed files:
    no-deepcopy.patch -> 1.1

no-deepcopy.patch [new file with mode: 0644]

diff --git a/no-deepcopy.patch b/no-deepcopy.patch
new file mode 100644 (file)
index 0000000..f579d9d
--- /dev/null
@@ -0,0 +1,50 @@
+--- wicd-1.7.0/wicd/configmanager.py   2010-01-15 05:49:11.000000000 +0100
++++ wicd-1.7.0/wicd/configmanager.py.new       2010-10-05 22:10:33.267799689 +0200
+@@ -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()
This page took 0.063321 seconds and 4 git commands to generate.