diff --git a/gmap_parse_macro.inc b/gmap_parse_macro.inc index 47cfe18f5058022ccd71156f76f1e113fd96de08..08d8bf92d04b2e167f4ce8f92388a0e3e76eb0ec 100644 --- a/gmap_parse_macro.inc +++ b/gmap_parse_macro.inc @@ -62,6 +62,7 @@ function _gmap_parse_macro($instring, $ver = 2) { // Get a list of keys that are "multiple." $m = array(); $multiple = gmap_module_invoke('macro_multiple', $m); + $def = gmap_defaults(); // Remove leading and trailing tags if (substr(trim($instring), -1)==']') { @@ -154,19 +155,16 @@ function _gmap_parse_macro($instring, $ver = 2) { } // Fixup legacy lines. if (isset($m['line1'])) { - $def = gmap_defaults(); if (!isset($m['line'])) $m['line'] = array(); $m['line'][] = $def['line_colors'][0] .':'. $m['line1']; unset($m['line1']); } if (isset($m['line2'])) { - $def = gmap_defaults(); if (!isset($m['line'])) $m['line'] = array(); $m['line'][] = $def['line_colors'][1] .':'. $m['line3']; unset($m['line2']); } if (isset($m['line3'])) { - $def = gmap_defaults(); if (!isset($m['line'])) $m['line'] = array(); $m['line'][] = $def['line_colors'][2] .':'. $m['line3']; unset($m['line3']); @@ -253,7 +251,12 @@ function _gmap_parse_macro($instring, $ver = 2) { $sep = ','; } $m['behavior-temp'] = explode($sep, $m['behavior']); - $m['behavior'] = array(); + // 2010 Nov 30 change: + // Fix a very old bug regarding behavior flags: + // It was always supposed to defer to the site default behaviors for every + // flag not defined by the macro, but this was just plain not happening. + // This is a backwards-incompatible change + $m['behavior'] = $def['behavior']; foreach ($m['behavior-temp'] as $v) { $m['behavior'][substr($v, 1)] = (substr($v, 0, 1) == '+') ? TRUE : FALSE; }