[Checkins] SVN: zc.buildout/trunk/src/zc/buildout/ Fixed bug in handling saved option values with a single leading or

Jim Fulton jim at zope.com
Mon Jul 10 06:25:29 EDT 2006


Log message for revision 69068:
  Fixed bug in handling saved option values with a single leading or
  trailing newline.
  

Changed:
  U   zc.buildout/trunk/src/zc/buildout/buildout.py
  U   zc.buildout/trunk/src/zc/buildout/tests.py

-=-
Modified: zc.buildout/trunk/src/zc/buildout/buildout.py
===================================================================
--- zc.buildout/trunk/src/zc/buildout/buildout.py	2006-07-10 09:46:52 UTC (rev 69067)
+++ zc.buildout/trunk/src/zc/buildout/buildout.py	2006-07-10 10:25:29 UTC (rev 69068)
@@ -242,8 +242,22 @@
                 if part in install_parts:
                     old_options = installed_part_options[part].copy()
                     old_options.pop('__buildout_installed__')
-                    if old_options == self.get(part):
+                    new_options = self.get(part)
+                    if old_options == new_options:
                         continue
+                    for k in old_options:
+                        if k not in new_options:
+                            self._logger.debug("Part: %s, dropped option %s",
+                                               part, k)
+                        elif old_options[k] != new_options[k]:
+                            self._logger.debug(
+                                "Part: %s, option %s, %r != %r",
+                                part, k, new_options[k], old_options[k],
+                                )
+                    for k in new_options:
+                        if k not in old_options:
+                            self._logger.debug("Part: %s, new option %s",
+                                               part, k)
                 elif not uninstall_missing:
                     continue
 
@@ -462,9 +476,10 @@
                 _save_options(section, self[section], sys.stdout)
             print    
 
-_spacey_nl = re.compile('^[ \t\r\f\v]+'
-                        '|''[ \t\r\f\v]*\n[ \t\r\f\v\n]*'
+_spacey_nl = re.compile('[ \t\r\f\v]*\n[ \t\r\f\v\n]*'
                         '|'
+                        '^[ \t\r\f\v]+'
+                        '|'
                         '[ \t\r\f\v]+$'
                         )
 
@@ -497,6 +512,10 @@
     for option, value in items:
         value = value.replace('%', '%%')
         value = _spacey_nl.sub(_quote_spacey_nl, value)
+        if value.startswith('\n\t'):
+            value = '%(__buildout_space_n__)s' + value[2:]
+        if value.endswith('\n\t'):
+            value = value[:-2] + '%(__buildout_space_n__)s'
         print >>f, option, '=', value
             
     

Modified: zc.buildout/trunk/src/zc/buildout/tests.py
===================================================================
--- zc.buildout/trunk/src/zc/buildout/tests.py	2006-07-10 09:46:52 UTC (rev 69067)
+++ zc.buildout/trunk/src/zc/buildout/tests.py	2006-07-10 10:25:29 UTC (rev 69068)
@@ -80,6 +80,15 @@
     ...
     ... </zodb>  
     ...      \"\"\"
+    ...         options['debug1'] = \"\"\"
+    ... <zodb>
+    ...
+    ...   <filestorage>
+    ...     path foo
+    ...   </filestorage>
+    ...
+    ... </zodb>  
+    ... \"\"\"
     ...         options['debug2'] = '  x  '
     ...         options['debug3'] = '42'
     ...         options['format'] = '%3d'



More information about the Checkins mailing list