Albert Krewinkel [Tue, 11 Jun 2013 07:32:25 +0000 (07:32 +0000)]
lisp/gnus/sievel-manage.el: fully support STARTTLS, fix bit rot
* Make sieve-manage-open work with STARTTLS: shorten stream managing
functions by using open-protocol-stream to do most of the work. Has
the nice benefit of enabling STARTTLS.
* Remove unneeded functions and options: the following functions and
options are neither in the API, nor called by any other function, so
they are deleted:
- sieve-manage-network-p
- sieve-manage-network-open
- sieve-manage-starttls-p
- sieve-manage-starttls-open
- sieve-manage-forward
- sieve-manage-streams
- sieve-manage-stream-alist
The options could not be applied in a meaningful way anymore; they
didn't happen to have much effect before.
* Cosmetic changes and code clean-up
* Enable Multibyte for SieveManage buffers: The parser won't properly
handle umlauts and line endings unless multibyte is turned on in the
process buffer.
* Wait for capabilities after STARTTLS: following RFC5804, the server
sends new capabilities after successfully establishing a TLS
connection with the client. The client should update the cached list
of capabilities, but we just ignore the answer for now.
lisp/gnus/eww.el (eww-tag-input): Implement submit buttons
(eww-click-radio): Implement radio and checkboxes
(eww-submit): Handle hidden elements
(eww-submit): Get submit button logic right
lisp/gnus/shr.el (shr-expand-url): Expand URLs that start with a slash correctly
Paul Eggert [Mon, 10 Jun 2013 20:26:20 +0000 (13:26 -0700)]
Documentation fix for 'ls' and hard links.
* compile.texi (Compilation Functions):
* files.texi (File Attributes, Changing Files):
Use current format for GNU 'ls' output.
(File Attributes): Fix problem introduced in previous change:
the link count is the number of hard links, not the number
of hard links + 1.
Aidan Gauland [Mon, 10 Jun 2013 02:41:49 +0000 (14:41 +1200)]
Update Ehsell visual-commands documentation
* eshell.texi (Input/Output): Expand to cover new visual-command
options, eshell-visual-subcommands and eshell-visual-options.
Divide into separate Visual Commands and Redirection sections.
* eshell/em-term.el (eshell-visual-commands)
(eshell-visual-subcommands)
(eshell-visual-options): Add summary line to docstrings. Add
cross-references.
src/xdisp.c (compute_display_string_pos): When W is NULL, use the current
buffer as the object to pass to get-char-property.
(Fcurrent_bidi_paragraph_direction): Assign NULL to the window
pointer member of the bidi iterator, since no window is pertinent
to this function.
Eli Zaretskii [Sun, 9 Jun 2013 16:37:22 +0000 (19:37 +0300)]
Fix bug #14575 with window-specific overlays with line-prefix or wrap-prefix.
src/xdisp.c (get_it_property): If it->object is a buffer, pass to
get-char-property the window that is being rendered, instead of
the buffer, to support window-specific overlays.
Aidan Gauland [Sun, 9 Jun 2013 06:39:40 +0000 (18:39 +1200)]
Tidy module initialisation functions
* eshell/em-term.el (eshell-visual-command-p): New function.
(eshell-term-initialize): Move long lambda to separate function eshell-visual-command-p.
* eshell/em-dirs.el (eshell-dirs-initialise): Add missing #' to lambda.
* eshell/em-script.el (eshell-script-initialize): Add missing #' to lambda.
Eli Zaretskii [Sat, 8 Jun 2013 18:28:36 +0000 (21:28 +0300)]
Fix bug #14575 with window-specific overlays with display props.
src/bidi.c (bidi_fetch_char): Accept additional argument, the window
being displayed, and pass it to compute_display_string_pos.
(bidi_level_of_next_char, bidi_resolve_explicit_1)
(bidi_paragraph_init): All callers changed.
src/xdisp.c (init_from_display_pos, init_iterator)
(handle_single_display_spec, next_overlay_string)
(get_overlay_strings_1, reseat_1, reseat_to_string)
(push_prefix_prop, Fcurrent_bidi_paragraph_direction): Set
bidi_it.w member from it->w.
(compute_display_string_pos): Accept additional argument, the
window being displayed, and pass it to Fget_char_property.
src/dispextern.h (struct bidi_it): New member w, the window being
displayed.
(compute_display_string_pos): Adjust prototype.
Jan Djärv [Sat, 8 Jun 2013 18:13:24 +0000 (20:13 +0200)]
Fix compilation issues for GNUStep and GLIB conflicts.
* configure.ac (HAVE_GLIB): Only set XGSELOBJ if HAVE_NS = no.
(with_file_notification): Don't set to gfile if with_ns = yes.
* src/process.c (wait_reading_process_output): Check for NS before GLIB.
GLIB may be linked in due to rsvg, but ns_select must be called.
* src/xgselect.c (xg_select): Remove call to window_system_available
and g_main_context_pending at the top, so Gdk events (i.e. file
notify) are processed when Emacs is started with -nw.
Leo Liu [Sat, 8 Jun 2013 13:35:55 +0000 (21:35 +0800)]
* progmodes/octave.el (octave-add-log-current-defun): New function.
(octave-mode): Set add-log-current-defun-function.
(octave-goto-function-definition): Do not move point if not found.
(octave-find-definition): Enhance to try subfunctions first.
Jan Djärv [Sat, 8 Jun 2013 08:48:52 +0000 (10:48 +0200)]
* xgselect.c (xg_select): Remove call to window_system_available
and g_main_context_pending at the top, so Gdk events (i.e. file
notify) are processed when Emacs is started with -nw.
Stefan Monnier [Fri, 7 Jun 2013 22:58:35 +0000 (18:58 -0400)]
* lisp/emacs-lisp/smie.el: Improve show-paren-mode behavior.
(smie--opener/closer-at-point): New function.
(smie--matching-block-data): Use it. Don't match from right after an
opener or right before a closer. Obey smie-blink-matching-inners.
Don't signal a mismatch for repeated inners like "switch..case..case".
Leo Liu [Fri, 7 Jun 2013 13:00:47 +0000 (21:00 +0800)]
* progmodes/octave.el (octave-function-header-regexp): Fix.
(octave-help-mode-finish-hook, octave-help-mode-finish):
Remove. Just use temp-buffer-show-hook.
Eli Zaretskii [Fri, 7 Jun 2013 09:26:02 +0000 (12:26 +0300)]
Fix "make TAGS" on MS-Windows.
lisp/Makefile.in (TAGS TAGS-LISP): Pass the (long) list of *.el files
through xargs, to avoid failure due to MS-Windows limitations on
command-line length.
src/Makefile.in (ctagsfiles1, ctagsfiles2): Don't include *.m files.
(ctagsfiles3): New variable, includes only *.m files.
(TAGS): Use an explicit language name in the regular expressions,
to avoid transformation of '/SOMETHING' by MSYS to
'c:\MSYS\SOMETHING'.
Eli Zaretskii [Fri, 7 Jun 2013 08:31:53 +0000 (11:31 +0300)]
Minor improvements in nt/INSTALL.MSYS instructions.
nt/INSTALL.MSYS: mingw-get is not a GUI program (yet).
msys-automake is not suitable for MinGW builds. Mention the
--enable-locallisppath switch to msysconfig.sh. Suggested by
׃scar Fuentes <ofv@wanadoo.es>.
Richard Copley [Fri, 7 Jun 2013 08:08:29 +0000 (11:08 +0300)]
Fix bug #14513 with --enable-locallisppath not working on MS-Windows.
Makefile.in (msys_to_w32): Modify to support d:\foo file names.
(msys_lisppath_to_w32, msys_prefix_subst, msys_sed_sh_escape): New
variables.
(epaths-force-w32): Use them.
Paul Eggert [Thu, 6 Jun 2013 07:04:35 +0000 (00:04 -0700)]
A few porting etc. fixes for the new file monitor code.
See the thread containing
<http://lists.gnu.org/archive/html/emacs-devel/2013-06/msg00109.html>.
* gfilenotify.c (dir_monitor_callback, Fgfile_add_watch)
(Fgfile_rm_watch): Don't assume EMACS_INT is the same width as a pointer.
(dir_monitor_callback, Fgfile_rm_watch):
Use assq_no_quit instead of Fassoc, for speed.
(dir_monitor_callback, Fgfile_rm_watch):
eassert that the monitor is a fixnum.
(dir_monitor_callback): No need for CDR_SAFE.
Simplify building of lisp with alternative tails.
(Fgfile_add_watch, Fgfile_rm_watch):
Do not assume glib functions set errno reliably on failure.
(Fgfile_add_watch): Check that the monitor survives the XIL trick,
and signal an error otherwise.
(Fgfile_rm_watch): Prefer CONSP to !NILP.
Use Fdelq instead of Fdelete, for speed.
Alan Mackenzie [Wed, 5 Jun 2013 20:57:09 +0000 (20:57 +0000)]
* isearch.el (isearch-allow-prefix): New user option.
(isearch-other-meta-char): don't exit isearch when a prefix
argument is typed whilst `isearch-allow-prefix' is non-nil.
* search.texi (Isearch Scroll): Rename to "Not Exiting Isearch".
(Net Exiting Isearch): Document new user option
`isearch-allow-prefix'.
Eli Zaretskii [Wed, 5 Jun 2013 20:45:34 +0000 (23:45 +0300)]
Fix bug #14558 with turning off mouse-highlight during highlight.
src/xdisp.c (handle_tool_bar_click): When mouse-highlight is off,
don't insist on being invoked on a highlighted tool-bar button.
Avoids losing tool-bar functionality when mouse-highlight is nil.
(note_tool_bar_highlight, note_mode_line_or_margin_highlight):
Don't highlight when mouse-highlight is nil.
(note_mouse_highlight): When mouse-highlight is nil, don't return
right away; instead, run tool-bar and mode-line highlight
subroutine, clear any existing highlight, and revert the mouse
pointer to its default shape.
Stefan Monnier [Wed, 5 Jun 2013 19:57:10 +0000 (15:57 -0400)]
* lisp/autorevert.el (auto-revert-notify-handler): Use memq.
Hide assertion failure.
* lisp/skeleton.el: Use cl-lib.
(skeleton-further-elements): Use defvar-local.
(skeleton-insert): Use cl-progv.
Stefan Monnier [Wed, 5 Jun 2013 18:10:27 +0000 (14:10 -0400)]
* lisp/simple.el: Move all the prog-mode code to prog-mode.el.
* lisp/progmodes/prog-mode.el: New file.
* lisp/loadup.el:
* src/lisp.mk (lisp): Add prog-mode.el.
Paul Eggert [Wed, 5 Jun 2013 17:04:13 +0000 (10:04 -0700)]
Chain glib's SIGCHLD handler from Emacs's (Bug#14474).
* process.c (dummy_handler): New function.
(lib_child_handler): New static var.
(handle_child_signal): Invoke it.
(catch_child_signal): If a library has set up a signal handler,
save it into lib_child_handler.
(init_process_emacs): If using glib and not on Windows, tickle glib's
child-handling code so that it initializes its private SIGCHLD handler.
* syssignal.h (SA_SIGINFO): Default to 0.
* xterm.c (x_term_init): Remove D-bus hack that I installed on May
31; it should no longer be needed now.
Leo Liu [Wed, 5 Jun 2013 07:40:02 +0000 (15:40 +0800)]
Re-implement smie matching block highlight using show-paren-data-function.
* emacs-lisp/smie.el (smie-matching-block-highlight)
(smie--highlight-matching-block-overlay)
(smie--highlight-matching-block-lastpos)
(smie-highlight-matching-block)
(smie-highlight-matching-block-mode): Remove.
(smie--matching-block-data-cache): New variable.
(smie--matching-block-data): New function.
(smie-setup): Use smie--matching-block-data for
show-paren-data-function.
Stefan Monnier [Wed, 5 Jun 2013 02:35:40 +0000 (22:35 -0400)]
Fix compilation error with simultaneous dynamic+lexical scoping.
Add warning when a defvar appears after the first let-binding.
* lisp/emacs-lisp/bytecomp.el (byte-compile-lexical-variables): New var.
(byte-compile-close-variables): Initialize it.
(byte-compile--declare-var): New function.
(byte-compile-file-form-defvar)
(byte-compile-file-form-define-abbrev-table)
(byte-compile-file-form-custom-declare-variable): Use it.
(byte-compile-make-lambda-lexenv): Change the argument. Simplify.
(byte-compile-lambda): Share call to byte-compile-arglist-vars.
(byte-compile-bind): Handle dynamic bindings that shadow
lexical bindings.
(byte-compile-unbind): Make arg non-optional.
(byte-compile-let): Simplify.
* lisp/emacs-lisp/cconv.el (byte-compile-lexical-variables): Declare var.
(cconv--analyse-function, cconv-analyse-form): Populate it.
Protect byte-compile-bound-variables to limit the scope of defvars.
(cconv-analyse-form): Add missing rule for (defvar <foo>).
Remove unneeded rule for `declare'.
* lisp/emacs-lisp/cl-macs.el (cl--compiler-macro-adjoin): Use macroexp-let2
so as to avoid depending on cl-adjoin at run-time.
* lisp/emacs-lisp/cl-lib.el (cl-pushnew): Use backquotes.
* lisp/emacs-lisp/macroexp.el (macroexp--compiling-p): New function.
(macroexp--warn-and-return): Use it.
Stefan Monnier [Wed, 5 Jun 2013 01:58:43 +0000 (21:58 -0400)]
* src/keymap.c (Fcurrent_active_maps, Fdescribe_buffer_bindings):
* src/keyboard.c (menu_bar_items, tool_bar_items):
* src/doc.c (Fsubstitute_command_keys): Voverriding_terminal_local_map does
not override local keymaps any more.
Leo Liu [Tue, 4 Jun 2013 23:52:06 +0000 (07:52 +0800)]
* progmodes/compile.el (compile-goto-error): Add optional arg NOMSG.
(compilation-auto-jump): Suppress the "Mark set" message to give
way to exit message.
Alan Mackenzie [Tue, 4 Jun 2013 13:26:15 +0000 (13:26 +0000)]
Remove faulty optimisation from indentation calculation.
* progmodes/cc-engine.el (c-guess-basic-syntax): Don't calculate
search limit based on 2000 characters back from indent-point.
Eli Zaretskii [Mon, 3 Jun 2013 19:28:13 +0000 (22:28 +0300)]
Fix crashes in a text-mode session on Windows.
src/w32console.c (initialize_w32_display): Return the dimensions of
the console window via 2 additional arguments, not via the current
frame. This avoids crashes due to overrunning the bounds of
frame's decode_mode_spec_buffer, which is not resized following
the change of the frame dimensions from the initial 10x10.
src/w32term.h (w32_initialize_display_info): Adjust prototype.
src/term.c (init_tty): Take dimensions of the frame from the values
returned by initialize_w32_display.
Paul Eggert [Mon, 3 Jun 2013 18:29:30 +0000 (11:29 -0700)]
Fix minor problems found by static checking.
* data.c (pure_write_error):
Use xsignal2, not Fsignal, as Fsignal might return.
* eval.c (set_backtrace_debug_on_exit): Now static.
(backtrace_p, backtrace_top, backtrace_next, record_in_backtrace):
No longer inline. EXTERN_INLINE is needed only for functions
defined in .h files. Reindent function header as per GNU style.
(backtrace_p, backtrace_top, backtrace_next):
Mark EXTERNALLY_VISIBLE so they don't get optimized away by the
compiler or linker. Add extern decls to pacify gcc -Wall.
* frame.c, frame.h (Qgeometry, Qworkarea, Qmm_size, Qframes, Qsource):
Now static.
* frame.c (free_monitors): Define only on platforms that need it.
* nsterm.m (ns_term_init):
* process.c (catch_child_signal):
Don't worry about whether SIGCHLD is defined, as SIGCHLD is
defined on all porting targets these days.
* process.c, process.h (catch_child_signal):
Make it extern only if NS_IMPL_GNUSTEP is defined.
Stefan Monnier [Mon, 3 Jun 2013 15:40:35 +0000 (11:40 -0400)]
* lisp.el: Provide completion of locally bound variables in Elisp.
* lisp/emacs-lisp/lisp.el: Use lexical-binding.
(lisp--local-variables-1, lisp--local-variables): New functions.
(lisp--local-variables-completion-table): New var.
(lisp-completion-at-point): Use it to provide completion of let-bound vars.
Michael Albinus [Mon, 3 Jun 2013 13:35:21 +0000 (15:35 +0200)]
* NEWS: Emacs can be compiled with file notification support via the
configure option `--with-file-notification=LIB'. `glib', `inotify'
and `w32' are supported.
* src/Makefile.in (NOTIFY_OBJ): New variable.
(base_obj): Replace inotify.o by $(NOTIFY_OBJ).
* src/emacs.c (main): Use HAVE_W32NOTIFY to wrap respective code.
Call syms_of_gfilenotify.
* src/gfilenotify.c: New file.
* src/keyboard.c (Qfile_notify): New variable. Replaces Qfile_inotify
and Qfile_w32notify.
(top): Wrap respective code by HAVE_GFILENOTIFY, HAVE_INOTIFY,
HAVE_W32NOTIFY and USE_FILE_NOTIFY.
* src/lisp.h: Declare syms_of_gfilenotify.
* src/termhooks.h (e): Wrap enum by USE_FILE_NOTIFY.
Michael Albinus [Mon, 3 Jun 2013 12:25:39 +0000 (14:25 +0200)]
* cmdargs.texi (General Variables): Use "unix:path=/dev/null" as
dummy value for $DBUS_SESSION_BUS_ADDRESS. It also suppresses
autolaunching of the D-Bus session bus.
Stefan Monnier [Mon, 3 Jun 2013 09:01:53 +0000 (05:01 -0400)]
Merge the specpdl and backtrace stacks. Make the structure of the
specpdl entries more obvious via a tagged union of structs.
* src/lisp.h (BITS_PER_PTRDIFF_T): New constant.
(enum specbind_tag): New enum.
(struct specbinding): Make it a tagged union of structs.
Add a case for backtrace records.
(specpdl_symbol, specpdl_old_value, specpdl_where, specpdl_arg)
(specpdl_func, backtrace_function, backtrace_nargs, backtrace_args)
(backtrace_debug_on_exit): New accessors.
(struct backtrace): Remove.
(struct catchtag): Remove backlist field.
* src/data.c (let_shadows_buffer_binding_p, let_shadows_global_binding_p):
Move to eval.c.
(Flocal_variable_p): Speed up the common case where the binding is
already loaded.
* src/eval.c (backtrace_list): Remove.
(set_specpdl_symbol, set_specpdl_old_value): Remove.
(set_backtrace_args, set_backtrace_nargs)
(set_backtrace_debug_on_exit, backtrace_p, backtrace_top)
(backtrace_next): New functions.
(Fdefvaralias, Fdefvar): Adjust to new specpdl format.
(unwind_to_catch, internal_lisp_condition_case)
(internal_condition_case, internal_condition_case_1)
(internal_condition_case_2, internal_condition_case_n): Don't bother
with backtrace_list any more.
(Fsignal): Adjust to new backtrace format.
(grow_specpdl): Move up.
(record_in_backtrace): New function.
(eval_sub, Ffuncall): Use it.
(apply_lambda): Adjust to new backtrace format.
(let_shadows_buffer_binding_p, let_shadows_global_binding_p): Move from
data.c.
(specbind): Adjust to new specpdl format. Simplify.
(record_unwind_protect, unbind_to): Adjust to new specpdl format.
(Fbacktrace_debug, Fbacktrace, Fbacktrace_frame): Adjust to new
backtrace format.
(mark_backtrace): Remove.
(mark_specpdl, get_backtrace, backtrace_top_function): New functions.
* src/xdisp.c (redisplay_internal): Use record_in_backtrace.
* src/alloc.c (Fgarbage_collect): Use record_in_backtrace.
Use mark_specpdl.
* src/profiler.c (record_backtrace): Use get_backtrace.
(handle_profiler_signal): Use backtrace_top_function.
* src/.gdbinit (xbacktrace, hookpost-backtrace): Use new backtrace
accessor functions.
Juri Linkov [Mon, 3 Jun 2013 08:51:50 +0000 (11:51 +0300)]
Search and highlight symbol at point.
* doc/emacs/display.texi (Highlight Interactively): Add global keybindings
with the key prefix `M-s h'. Document old command `highlight-phrase'.
Document new command `highlight-symbol-at-point'.
* lisp/bindings.el (search-map): Bind `highlight-symbol-at-point' to
`M-s h .'.
* lisp/hi-lock.el (highlight-symbol-at-point): New alias for the new
command `hi-lock-face-symbol-at-point'.
(hi-lock-face-symbol-at-point): New command.
(hi-lock-map): Bind `highlight-symbol-at-point' to `C-x w .'.
(hi-lock-menu): Add `highlight-symbol-at-point'.
(hi-lock-mode): Doc fix.
* lisp/isearch.el (isearch-forward-symbol-at-point): New command.
(search-map): Bind `isearch-forward-symbol-at-point' to `M-s .'.
(isearch-highlight-regexp): Add a regexp which matches
words/symbols for word/symbol mode.
* lisp/subr.el (find-tag-default-bounds): New function with the body
mostly moved from `find-tag-default'.
(find-tag-default): Move most code to `find-tag-default-bounds',
call it and apply `buffer-substring-no-properties' afterwards.