Jim Meyering [Sat, 28 May 2011 12:19:08 +0000 (14:19 +0200)]
avoid a sign-extension bug in crypto_hash_function
* fns.c (to_uchar): Define.
(crypto_hash_function): Use it to convert some newly-signed
variables to unsigned, to avoid sign-extension bugs. For example,
without this change, (md5 "truc") would evaluate to 45723a2aff78ff4fff7fff1114760e62 rather than the expected 45723a2af3788c4ff17f8d1114760e62. Reported by Antoine Levitt in
http://thread.gmane.org/gmane.emacs.devel/139824
Eli Zaretskii [Sat, 28 May 2011 10:00:09 +0000 (13:00 +0300)]
Adapt the MSDOS build to introduction of sha1 and other latest changes.
msdos/sed1v2.inp: Edit "make-docfile -d FOO" commands to chdir back to
src/. Make editing of RUN_TEMACS commands less sensitive to
leading whitespace.
msdos/sedlibmk.inp (gl_LIBOBJS): Add sha1.o.
Stefan Monnier [Sat, 28 May 2011 02:10:32 +0000 (23:10 -0300)]
* lisp/minibuffer.el (completion--capf-wrapper): Check applicability before
retuning non-nil for non-exclusive completion data.
* lisp/progmodes/etags.el (tags-completion-at-point-function):
* lisp/info-look.el (info-lookup-completions-at-point): Mark as non-exclusive.
(info-complete): Adjust accordingly.
* lisp/erc/erc-pcomplete.el (erc-pcompletions-at-point): Mark the completion
data as non-exclusive if it's using the default-completion-function.
(pcomplete-erc-parse-arguments): Rename pcomplete-parse-erc-arguments.
(pcomplete-erc-setup): Use new name.
Stefan Monnier [Sat, 28 May 2011 01:33:10 +0000 (22:33 -0300)]
* lisp/info-look.el: Convert to lexical-binding and completion-at-point.
(info-lookup-completions-at-point): New function.
(info-complete): Use it and completion-in-region.
Toby Cubitt [Fri, 27 May 2011 19:58:19 +0000 (16:58 -0300)]
* lisp/emacs-lisp/avl-tree.el (avl-tree--del-balance): Rename from
avl-tree--del-balance1 and make it work both ways.
(avl-tree--del-balance2): Remove.
(avl-tree--enter-balance): Rename from avl-tree--enter-balance1 and
make it work both ways.
(avl-tree--enter-balance2): Remove.
(avl-tree--switch-dir, avl-tree--dir-to-sign, avl-tree--sign-to-dir):
New macros.
(avl-tree--mapc, avl-tree-map): Add direction argument.
Paul Eggert [Fri, 27 May 2011 19:32:01 +0000 (12:32 -0700)]
* xselect.c: Fix minor problems prompted by GCC 4.6.0 warnings.
(x_handle_selection_request, frame_for_x_selection): Remove unused vars.
(x_clipboard_manager_save): Now static.
(Fx_clipboard_manager_save): Rename local to avoid shadowing.
Chong Yidong [Fri, 27 May 2011 16:17:59 +0000 (12:17 -0400)]
Support X clipboard managers.
* lisp/select.el (xselect-convert-to-targets): Add MULTIPLE target to list.
(xselect-convert-to-save-targets): New function.
* src/xselect.c: Support for clipboard managers.
(Vselection_alist): Move to termhooks.h as terminal-local var.
(LOCAL_SELECTION): New macro.
(x_atom_to_symbol): Handle x_display_info_for_display fail case.
(symbol_to_x_atom): Remove gratuitous arg.
(x_handle_selection_request, lisp_data_to_selection_data)
(x_get_foreign_selection, Fx_register_dnd_atom): Callers changed.
(x_own_selection, x_get_local_selection, x_convert_selection): New
arg, specifying work frame. Use terminal-local Vselection_alist.
(some_frame_on_display): Delete unused function.
(Fx_own_selection_internal, Fx_get_selection_internal)
(Fx_disown_selection_internal, Fx_selection_owner_p)
(Fx_selection_exists_p): New optional frame arg.
(frame_for_x_selection, Fx_clipboard_manager_save): New functions.
(x_handle_selection_clear): Don't treat other terminals with the
same keyboard specially. Use the terminal-local Vselection_alist.
(x_clear_frame_selections): Use Frun_hook_with_args.
* src/termhooks.h (Vselection_alist): Make it terminal-local.
* src/terminal.c (create_terminal): Initialize it.
* src/xterm.c (x_term_init): Intern ATOM and CLIPBOARD_MANAGER atoms.
Chong Yidong [Thu, 26 May 2011 17:42:32 +0000 (13:42 -0400)]
* src/xselect.c: ICCCM-compliant handling of MULTIPLE targets.
(converted_selections, conversion_fail_tag): New global variables.
(x_selection_request_lisp_error): Free the above.
(x_get_local_selection): Remove unnecessary code.
(x_reply_selection_request): Args changed; handle arbitrary array
of converted selections stored in converted_selections. Separate
the XChangeProperty and SelectionNotify steps.
(x_handle_selection_request): Rewrite to handle MULTIPLE target.
(x_convert_selection): New function.
(x_handle_selection_event): Simplify.
(x_get_foreign_selection): Don't ignore incoming requests while
waiting for an answer; this will fail when we implement
SAVE_TARGETS, and seems unnecessary anyway.
(selection_data_to_lisp_data): Recognize ATOM_PAIR type.
(Vx_sent_selection_functions): Doc fix.
Take account of periodic fringe bitmap's dependency on y-position in redrawing.
* dispextern.h (struct glyph_row): New member fringe_bitmap_periodic_p.
* dispnew.c (shift_glyph_matrix, scrolling_window): Mark scrolled row
for fringe update if it has periodic bitmap.
(row_equal_p): Also compare left_fringe_offset, right_fringe_offset,
and fringe_bitmap_periodic_p.
* fringe.c (get_fringe_bitmap_data): New function.
(draw_fringe_bitmap_1, update_window_fringes): Use it.
(update_window_fringes): Record periodicity of fringe bitmap in glyph
row. Mark glyph row for fringe update if periodicity changed.
* xdisp.c (try_window_reusing_current_matrix): Don't mark scrolled row
for fringe update unless it has periodic bitmap.
Glenn Morris [Wed, 25 May 2011 02:33:35 +0000 (19:33 -0700)]
Small further clean-up in lib-src/Makefile.in
* lib-src/Makefile.in (.c.o): Remove (every .o file has an explicit rule).
(insrcdir): New.
(stamp-rcs2log, stamp-rcs-checkin, stamp-grep-changelog, stamp-vcdiff):
Use $insrcdir to suppress unaesthetic ignored errors.
(clean): Simplify list of things to delete.
Vincent Belaïche [Tue, 24 May 2011 18:22:09 +0000 (15:22 -0300)]
* lisp/play/5x5.el (5x5-new-game, 5x5-randomize):
Reset 5x5-solver-output to nil when a new grid is cast.
(5x5-log-init, 5x5-log): Use defsubst instead of defmacro to shunt
these debugging traces, as defmacro breaks the compiled code.
Glenn Morris [Tue, 24 May 2011 17:23:15 +0000 (13:23 -0400)]
Reimplement trunk 2011-05-24T08:02:58Z!rgm@gnu.org in a way visible to automake.
* configure.in (OPT_MAKEFILES_IN): Remove.
(SUBDIR_MAKEFILES): New variable, passed to AC_CONFIG_FILES.
(SUBDIR_MAKEFILES_IN): New output variable.
* Makefile.in (OPT_MAKEFILES_IN): Remove.
(SUBDIR_MAKEFILES_IN): Let configure set it.
Glenn Morris [Tue, 24 May 2011 08:02:58 +0000 (01:02 -0700)]
Define the list of subdir Makefiles only in configure.in.
* configure.in (OPT_MAKEFILES_IN): Remove.
(SUBDIR_MAKEFILES): New variable, passed to AC_CONFIG_FILES.
(SUBDIR_MAKEFILES_IN): New output variable.
* Makefile.in (OPT_MAKEFILES_IN): Remove.
(SUBDIR_MAKEFILES_IN): Let configure set it.
Paul Eggert [Tue, 24 May 2011 05:16:14 +0000 (22:16 -0700)]
* dbusbind.c: Serial number integer overflow fixes.
(CHECK_DBUS_SERIAL_GET_SERIAL): New macro.
(xd_invalid_serial): New static function.
(Fdbus_call_method_asynchronously, xd_read_message_1): Use a float
to hold a serial number that is too large for a fixnum.
(Fdbus_method_return_internal, Fdbus_method_error_internal):
Check for serial numbers out of range. Decode any serial number
that was so large that it became a float.
Glenn Morris [Tue, 24 May 2011 04:00:56 +0000 (21:00 -0700)]
Restore test/ to its non-distributed state (bug#8107)
* make-dist: Don't distribute test/.
* configure.in (OPT_MAKEFILES_IN): New output variable.
(AC_CONFIG_FILES): Conditionally include test/automated/Makefile.
* Makefile.in (OPT_MAKEFILES_IN): New, set by configure.
(SUBDIR_MAKEFILES_IN): Use $OPT_MAKEFILES_IN.
(check): Give an explicit error if test/ is not present.
Stefan Monnier [Tue, 24 May 2011 02:45:50 +0000 (23:45 -0300)]
Add an :exit-function for completion-at-point.
* lisp/minibuffer.el (completion--done): New fun.
(completion--do-completion): Use it. New arg `expect-exact'.
(minibuffer-complete, minibuffer-complete-word): Don't output message,
since completion--do-completion does it for us now.
(minibuffer-force-complete): Use completion--done and
completion--replace. Handle sole-completion case with more care.
(minibuffer-complete-and-exit): Use new `expect-exact' arg.
(completion-extra-properties): New var.
(completion-annotate-function): Make obsolete.
(minibuffer-completion-help): Adjust accordingly.
Use completion-list-insert-choice-function.
(completion-at-point, completion-help-at-point):
Bind completion-extra-properties.
(completion-pcm-word-delimiters): Add | (for uniquify, for example).
* lisp/simple.el (completion-list-insert-choice-function): New var.
(completion-setup-function): Preserve it.
(choose-completion): Pay attention to it, shuffle the code a bit.
(choose-completion-string): New arg `insert-function'.
* lisp/textmodes/bibtex.el: Convert to lexical binding.
(bibtex-mode-map): Use completion-at-point.
(bibtex-mode): Use define-derived-mode&completion-at-point-functions.
(bibtex-completion-at-point-function): New fun, from bibtex-complete.
(bibtex-complete): Define as obsolete alias.
(bibtex-complete-internal): Remove.
(bibtex-format-entry): Remove unused sub-group in regexp.
* lisp/shell.el (shell--command-completion-data)
(shell-environment-variable-completion):
* lisp/pcomplete.el (pcomplete-completions-at-point):
* lisp/comint.el (comint--complete-file-name-data): Use :exit-function
instead of completion-table-with-terminator so it also works for
choose-completion.
Paul Eggert [Tue, 24 May 2011 01:59:17 +0000 (18:59 -0700)]
* dbusbind.c: Use XFASTINT rather than XUINT, and check for nonneg.
(Fdbus_call_method, Fdbus_call_method_asynchronously):
Use XFASTINT rather than XUINT when numbers are nonnegative.
(xd_append_arg, Fdbus_method_return_internal):
(Fdbus_method_error_internal): Likewise. Also, for unsigned
arguments, check that Lisp number is nonnegative, rather than
silently wrapping negative numbers around.
Ken Manheimer [Mon, 23 May 2011 15:03:04 +0000 (11:03 -0400)]
* allout.el (allout-inhibit-auto-fill-on-headline): Create new
customization variable and implement: If non-nil, auto-fill will be
inhibited while on topic's header line.
Vincent Belaïche [Mon, 23 May 2011 14:46:41 +0000 (11:46 -0300)]
* lisp/play/5x5.el: I/ Add an arithmetic solver to suggest positions to
click on. II/ Make 5x5 multisession. III/ Ensure that random grids
always have a solution in grid size = 5 cases.
(5x5-mode-map): Add keybinding to function `5x5-solve-suggest'.
(5x5-solver-output, 5x5-log-buffer): New vars.
(5x5-grid, 5x5-x-pos, 5x5-y-pos, 5x5-moves, 5x5-cracking):
Make these variables buffer local to achieve 5x5 multi-session-ness.
(5x5): Set 5x5-grid-size only if SIZE is non-negative.
(5x5-grid-to-vec, 5x5-vec-to-grid, 5x5-log-init, 5x5-log, 5x5-solver)
(5x5-solve-suggest): New funs.
(5x5-randomize): Use 5x5-make-move instead of 5x5-flip-cell to
randomize a grid so that we ensure that there is always a solution.
(5x5-make-random-grid): Allow other movement than flipping.
Paul Eggert [Mon, 23 May 2011 06:50:03 +0000 (23:50 -0700)]
ccl: add integer overflow checks
* ccl.c (CCL_CODE_MAX, GET_CCL_RANGE, GET_CCL_CODE, GET_CCL_INT):
(IN_INT_RANGE): New macros.
(ccl_driver): Use them to check for integer overflow when
decoding a CCL program. Many of the new checks are whether XINT (x)
fits in int; it doesn't always, on 64-bit hosts. The new version
doesn't catch all possible integer overflows, but it's an
improvement.