Index: modules/menu/menu.admin.inc =================================================================== RCS file: /cvs/drupal/drupal/modules/menu/menu.admin.inc,v retrieving revision 1.68 diff -u -r1.68 menu.admin.inc --- modules/menu/menu.admin.inc 4 Nov 2009 04:43:58 -0000 1.68 +++ modules/menu/menu.admin.inc 7 Nov 2009 07:44:00 -0000 @@ -266,7 +266,7 @@ $path = $item['link_path']; if (isset($item['options']['query'])) { - $path .= '?' . $item['options']['query']; + $path .= '?' . drupal_http_build_query($item['options']['query']); } if (isset($item['options']['fragment'])) { $path .= '#' . $item['options']['fragment']; @@ -346,22 +346,22 @@ */ function menu_edit_item_validate($form, &$form_state) { $item = &$form_state['values']['menu']; - $normal_path = drupal_get_normal_path($item['link_path']); - if ($item['link_path'] != $normal_path) { - drupal_set_message(t('The menu system stores system paths only, but will use the URL alias for display. %link_path has been stored as %normal_path', array('%link_path' => $item['link_path'], '%normal_path' => $normal_path))); - $item['link_path'] = $normal_path; - } if (!url_is_external($item['link_path'])) { - $parsed_link = parse_url($item['link_path']); - if (isset($parsed_link['query'])) { - $item['options']['query'] = $parsed_link['query']; - } - if (isset($parsed_link['fragment'])) { - $item['options']['fragment'] = $parsed_link['fragment']; + $normal_path = drupal_get_normal_path($item['link_path']); + if ($item['link_path'] != $normal_path) { + drupal_set_message(t('The menu system stores system paths only, but will use the URL alias for display. %link_path has been stored as %normal_path', array('%link_path' => $item['link_path'], '%normal_path' => $normal_path))); + $item['link_path'] = $normal_path; } + $parsed_link = drupal_parse_url($item['link_path']); if ($item['link_path'] != $parsed_link['path']) { $item['link_path'] = $parsed_link['path']; } + if (!empty($parsed_link['query'])) { + $item['options']['query'] = $parsed_link['query']; + } + if (!empty($parsed_link['fragment'])) { + $item['options']['fragment'] = $parsed_link['fragment']; + } } if (!trim($item['link_path']) || !menu_valid_path($item)) { form_set_error('link_path', t("The path '@link_path' is either invalid or you do not have access to it.", array('@link_path' => $item['link_path'])));