* lisp/progmodes/python.el (python-imenu--build-tree)
(python-imenu--put-parent): Simplify and Fix (GH bug 146).

* test/automated/python-tests.el (python-imenu-create-index-4)
(python-imenu-create-flat-index-2): New tests.
Enable giving hints to ImageMagick via :content-type

2013-08-13  Lars Magne Ingebrigtsen  <larsi@gnus.org>

	* image.el (image-content-type-suffixes): New variable.

2013-08-13  Lars Magne Ingebrigtsen  <larsi@gnus.org>

	* image.c (imagemagick_filename_hint): New function to possibly
	apply `image-content-type-suffixes'.
	(imagemagick_load_image): Use it.
Fix the Windows build broken by revision 113846.

 src/window.c (Fwindow_margins): Return nil when there's no marginal
 area, as per the documented API.
 src/w32term.c (x_scroll_bar_create): Use ALLOCATE_PSEUDOVECTOR, not
 Fmake_vector, as scroll bar's struct members are not all Lisp
 objects now.  This avoids crashes in GC.
 src/w32term.h (struct scroll_bar): Convert fringe_extended_p to a
 bool, so its address could be taken.
Make shr feed Content-Type to the image-creating libraries

This finally makes it possible to display icons.

* net/eww.el (eww-display-image): Ditto.

* net/shr.el (shr-parse-image-data): New function to grab both the
data itself and the Content-Type.
(shr-put-image): Use it.
* image.c (imagemagick_filename_hint): Check for errors in the alist structure.
White-space cleanup.
Rename :content-type to :format in `create-image'
Fix OSX 10.4 compiler errors.
* nsmenu.m (x_activate_menubar): Check for OSX >= 10.5
(trackingNotification:): Call ns_check_menu_open only for OSX >= 10.5.
* decompress.c: Minor simplifications.

(Fzlib_decompress_region): Don't bother verifying
that avail_out <= UINT_MAX, as that was confusing.
Mention the restriction in a comment instead.
Prefer 'int' to 'ptrdiff_t' when 'int' is wide enough.
* package-test.el: Remove tar-package-building functions.  Tar file
used for testing is included in the repository.
(package-test-install-texinfo, package-test-cleanup-built-files): Remove.
* configure.ac (EMACS_CONFIGURATION): Escape backslashes.
* window.h (struct window): Convert scroll_bar_width
from Lisp_Object to integer.  Adjust comment.
(WINDOW_CONFIG_SCROLL_BAR_WIDTH, WINDOW_CONFIG_SCROLL_BAR_COLS):
Adjust users.
* window.c (wset_scroll_bar_width): Remove.
(make_window): Initialize scroll_bar_width.
(Fsplit_window_internal): Use direct assignment.
(Fset_window_configuration, save_window_save):
Convert Lisp_Object to integer and back where appropriate.
(Fset_window_scroll_bars): Adjust user.  Return t if any scroll
bar was actually changed, and mention this in docstring.
Cleanup window fringes, margins and scroll bars adjustments.
* window.c (set_window_fringes, set_window_margins)
(set_window_scroll_bars, apply_window_adjustment): New functions.
(set_window_buffer, Fset_window_margins, Fset_window_fringes)
(Fset_window_scroll_bars): Use them.
Fix --enable-gcc-warnings errors introduced in 2013-08-13 commit.
* image.c (imagemagick_filename_hint): Use `const char *' and
prefer SSDATA to SDATA to avoid warnings.
* window.h (struct window): Convert window_end_pos and
window_end_vpos from Lisp_Object to ptrdiff_t and int, respectively.
(wset_window_end_pos, wset_window_end_vpos): Remove.
* dispnew.c (adjust_glyph_matrix):
* window.c (Fwindow_end, replace_window, set_window_buffer)
(make_window):
* xdisp.c (check_window_end, move_it_to, redisplay_internal)
(set_vertical_scroll_bar, redisplay_window, try_window)
(try_window_reusing_current_matrix, find_first_unchanged_at_end_row)
(try_window_id, decode_mode_spec, mouse_face_from_buffer_pos)
(note_mouse_highlight): Adjust users.
(try_cursor_movement): Likewise.  Convert old precondition to eassert.
Add comment.
* xdisp.c (adjust_window_ends): Move duplicated code to new function.
(try_window, try_window_reusing_current_matrix, try_window_id): Use it.
* image.c (imagemagick_filename_hint): New arg HINT_BUFFER.

Use changed.  This avoids the need to call xmalloc and for the
caller to call xfree, and avoids memory leaks in some situations.
* xdisp.c (cursor_type_changed): Now static.
* xdisp.c (redisplay_window): If window_end_valid is cleared due to
non-zero windows_or_buffers_changed, clear current_matrix_up_to_date_p
and so do not call to try_cursor_movement for that window.
Fix some issues in window.el.

* window.el (window-make-atom): Don't overwrite parameter
already present.
(display-buffer-in-atom-window): Handle special case where we
split an already atomic window.
(window--major-non-side-window, display-buffer-in-side-window)
(window--side-check): Ignore minibuffer window when walking
window tree.
(window-deletable-p): Return 'frame only if no other frame uses
our minibuffer window.
(record-window-buffer): Run buffer-list-update-hook.
(split-window): Make sure window--check-frame won't destroy an
existing atomic window in case the new window gets nested
inside.
(display-buffer-at-bottom): Ignore minibuffer window when
walking window tree.  Don't split a side window.
(pop-to-buffer): Don't set-buffer here, the select-window call
should do that.
(mouse-autoselect-window-select): Autoselect only if we are in the
text portion of the window.