Helmut Eller [Mon, 2 Dec 2013 14:45:22 +0000 (09:45 -0500)]
* lisp/emacs-lisp/debug.el (debugger-toggle-locals): New command.
(debugger-mode-map): Bind it.
(debugger--backtrace-base): New function.
(debugger-eval-expression): Use it.
(debugger-frame-number): Skip local vars when present.
(debugger--locals-visible-p, debugger--insert-locals)
(debugger--show-locals, debugger--hide-locals): New functions.
* src/eval.c (Fbacktrace__locals): New function.
(syms_of_eval): Defsubr it.
Michael Albinus [Mon, 2 Dec 2013 13:52:23 +0000 (14:52 +0100)]
* net/tramp-sh.el (tramp-remote-process-environment): Do not set "LC_ALL".
(tramp-get-remote-locale): New defun.
(tramp-open-connection-setup-interactive-shell): Use it.
Dmitry Gutov [Mon, 2 Dec 2013 03:03:40 +0000 (05:03 +0200)]
Fix minor log-edit-show-files annoyances
* lisp/vc/log-edit.el (log-edit-kill-buffer): Move the use of
`save-selected-window' to `log-edit-hide-buf'. This makes
`log-edit-show-files' idempotent.
(log-edit-show-files): Mark the new window as dedicated.
Dmitry Gutov [Mon, 2 Dec 2013 02:26:07 +0000 (04:26 +0200)]
Install the actual changes missing in previous revision
* lisp/vc/log-edit.el (log-edit-mode-map): Add binding for
`log-edit-kill-biffer'.
(log-edit-hide-buf): Add a FIXME comment.
(log-edit-add-new-comment): New function, extracted from
`log-edit-done'.
(log-edit-done, log-edit-add-to-changelog): Use it.
(log-edit-kill-buffer): New command.
Dmitry Gutov [Mon, 2 Dec 2013 02:24:31 +0000 (04:24 +0200)]
Implement log-edit-kill-buffer
* vc/log-edit.el (log-edit-mode-map): Add binding for
`log-edit-kill-biffer'.
(log-edit-hide-buf): Add a FIXME comment.
(log-edit-add-new-comment): New function, extracted from
`log-edit-done'.
(log-edit-done, log-edit-add-to-changelog): Use it.
(log-edit-kill-buffer): New command.
* xterm.h (struct scroll_bar): Remove member `fringe_extended_p'.
* xterm.c (x_draw_fringe_bitmap, x_scroll_run): Remove code for
fringe background extension.
(x_scroll_bar_create): Remove variables `sb_left' and `sb_width',
because they are now always the same as `left' and `width',
respectively. Remove code for the case that `width' and
`sb_width' are different.
Allow customizing the checkboxes in eww
* net/shr.el (shr-tag-table): Fix comment typo.
* net/eww.el (eww-text-input-types): : New const.
(eww-process-text-input): Treat input types in
`eww-text-input-types' as text.
* net/shr.el (shr-tag-video): Display content for video if no
poster is available.
(shr-tag-audio): Add support for <audio> tag.
* net/eww.el (eww-use-external-browser-for-content-type): New
variable.
(eww-render): Handle `eww-use-external-browser-for-content-type'.
Use \\` to match beginning of string instead of ^.
(eww-browse-with-external-browser): Provide optional URL parameter.
(eww-render): Set `eww-current-title' back to "".
* net/shr.el (shr-prefer-media-type-alist): : New customizable
variable.
(shr--get-media-pref): New function.
(shr--extract-best-source): New function.
(shr-tag-video, shr-tag-audio): Use `shr--extract-best-source' when
no :src tag was specified.
* net/eww.el (eww-form-checkbox-selected-symbol): New
customizable variable.
(eww-form-checkbox-symbol): New customizable variable.
(eww-form-checkbox): Use `eww-form-checkbox-selected-symbol' and
`eww-form-checkbox-symbol'.
(eww-toggle-checkbox): Use `eww-form-checkbox-selected-symbol' and
`eww-form-checkbox-symbol'.
Allow preferring some media types over others
* net/shr.el (shr-prefer-media-type-alist): : New customizable
variable.
(shr--get-media-pref): New function.
(shr--extract-best-source): New function.
(shr-tag-video, shr-tag-audio): Use `shr--extract-best-source' when
no :src tag was specified.
Option to always use external-browser for certain content.
* net/eww.el (eww-use-external-browser-for-content-type): New
variable.
(eww-render): Handle `eww-use-external-browser-for-content-type'.
Use \\` to match beginning of string instead of ^.
(eww-browse-with-external-browser): Provide optional URL parameter.
Treat HTML5 input types as text
* net/eww.el (eww-text-input-types): : New const.
(eww-process-text-input): Treat input types in
`eww-text-input-types' as text.
Don't reload eww pages when browsing to different #targets
* net/eww.el (eww-follow-link): New command to avoid reloading
pages when we follow #target links.
Dmitry Gutov [Sun, 1 Dec 2013 04:13:50 +0000 (06:13 +0200)]
Apply the initial log-edit tweaks discussed at emacs-devel
* .dir-locals.el: (log-edit-move): Add the "Author: " header.
* lisp/vc/log-edit.el (log-edit-mode-map): Add binding for
`log-edit-beginning-of-line'.
(log-edit-setup-add-author): New user option.
(log-edit-beginning-of-line): New command.
(log-edit): Move major mode call above the contents setup so that
the local variable values are already applied.
(log-edit): Only insert "Author: " when
`log-edit-setup-add-author' is non-nil.
(log-edit): When SETUP is non-nil, position point after ": "
instead of point-min.
Dani Moncayo [Sat, 30 Nov 2013 15:42:13 +0000 (16:42 +0100)]
msys-to-w32: Do not translate paths starting with %emacs_dir%.
* build-aux/msys-to-w32 (w32pathlist): Do not translate paths
starting with %emacs_dir%.
Stefan Monnier [Sat, 30 Nov 2013 04:04:18 +0000 (23:04 -0500)]
* src/xdisp.c (redisplay_internal): Don't call set_window_update_flags.
Set invisible frames's `redisplay' when a full redisplay is requested.
(redisplay_window): Set must_be_updated_p instead.
(redisplay_mode_lines): Don't set must_be_updated_p any more.
(display_mode_lines): Set it here instead.
* src/dispextern.h (set_window_update_flags): Remove.
* src/dispnew.c (set_window_update_flags): Remove `b' argument; make static.
* Makefile.in (distclean, bootstrap-clean, maintainer-clean):
Also clean admin/grammars, if present.
* admin/grammars/README: Remove.
* admin/grammars/Makefile.in: New file.
* admin/grammars/c.by, admin/grammars/java-tags.wy, admin/grammars/js.wy:
* admin/grammars/python.wy: Update declarations to match generated outputs.
* lisp/Makefile.in (semantic): New.
(compile-main): Depend on semantic.
* lisp/cedet/semantic/bovine/grammar.el (bovine--make-parser-1):
New function, split from bovine-make-parsers.
(bovine-make-parsers): Use bovine--make-parser-1.
(bovine-batch-make-parser): New function.
* lisp/cedet/semantic/wisent/grammar.el (wisent--make-parser-1):
New function, split from wisent-make-parsers.
(wisent-make-parsers): Use wisent--make-parser-1.
(wisent-batch-make-parser): New function.
* lisp/cedet/semantic/db.el (semanticdb-save-all-db):
Avoid prompting in batch mode.
* lisp/cedet/semantic/grammar.el (semantic-grammar-footer-template):
Disable version-control and autoloads in the output.
(semantic-grammar-create-package):
Add option to return nil if output is up-to-date.
Tom Seddon [Fri, 29 Nov 2013 11:01:45 +0000 (13:01 +0200)]
Fix bug #6364 with slow scrolling on MS-Windows with bitmap fonts.
src/w32font.c (g_b_init_get_char_width_32_w): New static var.
(globals_of_w32font): Zero it out.
(GetCharWidth32W_Proc): New function pointer.
(get_char_width_32_w): New function.
(compute_metrics): If get_glyph_outline_w returns an error, try
get_char_width_32_w before declaring a failure. This avoids
punishing raster (a.k.a. "bitmap") fonts by slowing down
redisplay.
Eli Zaretskii [Fri, 29 Nov 2013 10:33:31 +0000 (12:33 +0200)]
Fix reftex-tests on MS-Windows.
test/automated/reftex-tests.el (reftex-parse-from-file-test): Run
temp-dir through file-truename, to make sure the temporary file
names are comparable as strings.
Eli Zaretskii [Fri, 29 Nov 2013 09:35:58 +0000 (11:35 +0200)]
Fix decoder-tests test on MS-Windows.
test/automated/decoder-tests.el (ert-test-decoder-prefer-utf-8):
Force Unix EOLs by using 'utf-8-unix', since the default of
'utf-8' is system-dependent, while the test expects to see Unix
EOLs.
Eli Zaretskii [Fri, 29 Nov 2013 08:53:50 +0000 (10:53 +0200)]
More thorough fix of bug #15913 with mouse-highlight on MS-Windows.
src/xdisp.c (clear_mouse_face): Don't invalidate the entire
mouse-highlight info, just signal frame_up_to_date_hook that mouse
highlight needs to be redisplayed.
Paul Eggert [Fri, 29 Nov 2013 05:25:25 +0000 (21:25 -0800)]
Fix minor problems found by static checking.
* buffer.h (struct buffer_text, struct buffer):
* frame.h (struct frame):
* window.h (struct window):
Avoid 'bool foo : 1;', as it's not portable to pre-C99 compilers,
as described in ../lib/stdbool.in.h. Use 'unsigned foo : 1;' instead.
* menu.c (syms_of_menu): Define x-popup-dialog, removing a
no-longer-valid use of HAVE_MENUS.
* xdisp.c (propagate_buffer_redisplay): Now static.
Andreas Politz [Fri, 29 Nov 2013 03:38:20 +0000 (05:38 +0200)]
* doc/lispref/modes.texi (Imenu): Make it clear that sub-alist is the cdr.
* lisp/imenu.el (imenu--subalist-p): Don't error on non-conses and
allow non-lambda lists as functions.
(imenu--in-alist): Don't recurse into non-subalists.
(imenu): Don't pass function itself as an argument.
Stefan Monnier [Fri, 29 Nov 2013 02:03:39 +0000 (21:03 -0500)]
* lisp/progmodes/python.el (python-mode-map): Remove binding for ":".
(python-indent-electric-colon): Remove command.
(python-indent-post-self-insert-function): Integrate the previous code
of python-indent-electric-colon. Make it conditional on
electric-indent-mode.
(python-mode): Add ?: to electric-indent-chars.
Move python-indent-post-self-insert-function to the end of
post-self-insert-hook.
Stefan Monnier [Thu, 28 Nov 2013 22:43:09 +0000 (17:43 -0500)]
Refine redisplay optimizations to only redisplay *some* frames/windows
rather than all of them.
* src/xdisp.c (REDISPLAY_SOME): New constant.
(redisplay_other_windows, wset_redisplay, fset_redisplay)
(bset_redisplay, bset_update_mode_line): New functions.
(message_dolog): Use bset_redisplay.
(clear_garbaged_frames): Use fset_redisplay.
(echo_area_display): Use wset_redisplay.
(buffer_shared_and_changed): Remove.
(prepare_menu_bars): Call Vpre_redisplay_function before updating
frame titles. Compute the actual set of windows redisplayed.
Don't update frame titles and menu bars for frames that don't need to
be redisplayed.
(propagate_buffer_redisplay): New function.
(AINC): New macro.
(redisplay_internal): Use it. Be more selective in the set of windows
we redisplay. Propagate windows_or_buffers_changed to
update_mode_lines a bit later to simplify the code.
(mark_window_display_accurate_1): Reset window and buffer's
`redisplay' flag.
(redisplay_window): Do nothing if neither the window nor the buffer nor
the frame needs redisplay.
* src/window.h (struct window): Add `redisplay' field.
(wset_redisplay, fset_redisplay, bset_redisplay, bset_update_mode_line)
(redisplay_other_windows, window_list): New declarations.
* src/window.c (select_window, Fset_window_start): Use wset_redisplay.
(window_list): Not static any more.
(grow_mini_window, shrink_mini_window): Use fset_redisplay.
* src/minibuf.c (read_minibuf_unwind): Don't redisplay everything.
* src/insdel.c (prepare_to_modify_buffer_1): Use bset_redisplay.
* src/frame.c (Fmake_frame_visible): Don't redisplay everything.
* src/frame.h (struct frame): Add `redisplay' field.
Move `external_menu_bar' bitfield next to other bit-fields.
(SET_FRAME_GARBAGED): Use fset_redisplay.
(SET_FRAME_VISIBLE): Don't garbage the frame;
Use redisplay_other_windows.
* src/buffer.h (struct buffer): Add `redisplay' field.
* src/buffer.c (Fforce_mode_line_update): Pay attention to the `all' flag.
(modify_overlay): Use bset_redisplay.
* src/alloc.c (gc_sweep): Don't unmark strings while sweeping symbols.
Glenn Morris [Thu, 28 Nov 2013 20:31:55 +0000 (12:31 -0800)]
* leim/leim-ext.el: Change method for getting comments in the output
to one that does not fool lisp/compile-main's no-byte-compile test.
* leim/Makefile.in (${leimdir}/leim-list.el): Adapt for this.
Eli Zaretskii [Thu, 28 Nov 2013 19:40:15 +0000 (21:40 +0200)]
Fix bug #15933 with crashes in file-notify-tests on MS-Windows.
Support w32 file notifications in batch mode.
src/w32proc.c (sys_select): Don't wait on interrupt_handle if it is
invalid (which happens in batch mode). If non-interactive, call
handle_file_notifications to store file notification events in the
input queue.
src/w32notify.c (send_notifications): Handle FRAME_INITIAL frames as
well.
src/w32inevt.c (handle_file_notifications): Now external, not
static.
src/w32term.h (handle_file_notifications): Provide prototype.
src/emacs.c (main) [HAVE_W32NOTIFY]: When non-interactive, call
init_crit, since init_display, which does that otherwise, is not
called.
Michael Albinus [Wed, 27 Nov 2013 14:23:32 +0000 (15:23 +0100)]
* automated/file-notify-tests.el
(file-notify-test-remote-temporary-file-directory):
Check $REMOTE_TEMPORARY_FILE_DIRECTORY.
(tramp-read-passwd): Check $REMOTE_ALLOW_PASSWORD.
(file-notify--deftest-remote): Cleanup connection initially.
(file-notify-test03-autorevert): Run also in batch mode. Use a
larger timeout for remote files. `sit-for' 1 second; 0.1 second
does not work on MS Windows. Call `accept-process-output' for
remote files. Apply `string-match' instead of `string-equal', the
messages are different on MS Windows.
* automated/tramp-tests.el (tramp-test-temporary-file-directory):
Use $REMOTE_TEMPORARY_FILE_DIRECTORY.
(tramp-read-passwd): Check $REMOTE_ALLOW_PASSWORD.
Glenn Morris [Wed, 27 Nov 2013 06:15:06 +0000 (22:15 -0800)]
Move runtime leim lisp files to lisp/leim directory
This allows us to reuse much of the lisp build and installation machinery,
rather than duplicating it.
* Makefile.in (abs_builddir, leimdir): Remove.
(buildlisppath, SUBDIR, COPYDIR, COPYDESTS): No more leim directory.
(epaths-force-w32): No longer set BLD.
(leim): Remove.
(install-arch-indep): No longer run or install leim.
(mostlyclean, clean): No longer run leim rule.
(bootstrap-clean): Change leim target.
(maintainer-clean): Add leim.
(check-declare): Remove leim.
* README: Update for leim changes.
* configure.ac (leimdir): Remove.
(standardlisppath): No more leimdir.
* make-dist: Update for files from leim/ now being in lisp/leim/.
* doc/lispref/loading.texi (Library Search):
* doc/lispref/os.texi (Startup Summary): No more leim directory.
* leim/Makefile.in (leimdir): New variable.
(TIT_GB, TIT_BIG5, MISC, changed.tit, changed.misc)
(${leimdir}/leim-list.el, ${leimdir}/ja-dic/ja-dic.el):
Generate in $leimdir.
(all): Remove compilation, add ja-dic.
(leim-list.el): Now PHONY.
(setwins, compile-targets, compile-main, clean, mostlyclean)
(extraclean): Remove.
(bootstrap-clean): Delete all generated files.
* leim/README: Update for moved leim/ directory.
* leim/leim-ext.el (ucs-input-activate, hangul-input-method-activate):
Remove manual autoloads; now in loaddefs.el.
Disable byte-compile, version-control, autoloads in the output.
* lisp/Makefile.in (setwins_for_subdirs): Skip leim/ directory.
(compile-main): Depend on lisp/leim rule.
(leim): New rule.
* lisp/loadup.el: Move leim-list.el to leim/ subdirectory.
* lisp/startup.el (normal-top-level): No more leim directory.
* lisp/international/ja-dic-cnv.el (skkdic-convert):
Disable version-control and autoloads in output files.
* lisp/international/titdic-cnv.el (titdic-convert, miscdic-convert):
Disable version-control and autoloads in output files.
* lisp/leim/quail: Move here from ../leim.
* lisp/leim/quail/hangul.el (hangul-input-method-activate):
Add autoload cookie.
(generated-autoload-load-name): Set file-local value.
* lisp/leim/quail/uni-input.el (ucs-input-activate): Add autoload cookie.
(generated-autoload-load-name): Set file-local value.
* nt/README.W32:
* nt/addpm.c (env_vars):
* nt/epaths.nt (PATH_LOADSEARCH, PATH_DUMPLOADSEARCH):
* nt/paths.h (PATH_LOADSEARCH): No more leim directory.
* src/Makefile.in (leimdir): Now in lisp source directory.
($(leimdir)/leim-list.el): Just use ../leim .
* src/epaths.in (PATH_DUMPLOADSEARCH):
* src/lread.c (load_path_default):
* src/nsterm.m (ns_load_path): No more leim directory.