Eli Zaretskii [Sat, 29 Jun 2013 13:36:19 +0000 (16:36 +0300)]
Implement visual-order cursor motion.
src/xdisp.c (Fmove_point_visually): New function.
lisp/bindings.el (visual-order-cursor-movement): New defcustom.
(right-char, left-char): Provide visual-order cursor motion by
calling move-point-visually. Update the doc strings.
doc/emacs/basic.texi (Moving Point): Document visual-order-cursor-movement
and its effect on right-char and left-char.
Glenn Morris [Sat, 29 Jun 2013 01:51:32 +0000 (18:51 -0700)]
* admin/admin.el (make-manuals): Don't bother with txt or dvi any more.
(manual-txt): Remove.
(manual-pdf): Doc fix.
(manual-ps): Rename from manual-dvi.
Kenichi Handa [Fri, 28 Jun 2013 14:59:50 +0000 (23:59 +0900)]
coding.h (define_coding_undecided_arg_index): New enum.
(coding_attr_index): New members
coding_attr_undecided_inhibit_null_byte_detection,
coding_attr_undecided_inhibit_iso_escape_detection,
coding_attr_undecided_prefer_utf_8.
(undecided_spec): New struct.
(struct coding_system): New member `undecied' of the member
`spec'.
Kenichi Handa [Fri, 28 Jun 2013 14:54:18 +0000 (23:54 +0900)]
mule.el (define-coding-system): New coding system
properties :inhibit-null-byte-detection,
:inhibit-iso-escape-detection, and :prefer-utf-8.
(set-buffer-file-coding-system): If :charset-list property of
CODING-SYSTEM is `emacs', do not check if CODING-SYSTEM is
appropriate for setting.
Kenichi Handa [Fri, 28 Jun 2013 14:42:55 +0000 (23:42 +0900)]
mule-cmds.el (select-safe-coding-system): If
DEFAULT-CODING-SYSTEM is prefer-utf-8 and the buffer contains
multibyte characters, return utf-8 (or one of it's siblings).
Kenichi Handa [Fri, 28 Jun 2013 14:39:40 +0000 (23:39 +0900)]
decoder-tests.el (decoder-tests-gen-file): New arg FILE.
(decoder-tests-ao-gen-file): Renamed from decoder-tests-filename.
Callers changed.
(decoder-tests-filename): New function.
(decoder-tests-prefer-utf-8-read)
(decoder-tests-prefer-utf-8-write): New function.
(ert-test-decoder-prefer-utf-8): New test.
Paul Eggert [Thu, 27 Jun 2013 14:47:52 +0000 (07:47 -0700)]
Do not tickle glib SIGCHLD handling if Cygwin.
This mostly consists of undoing recent changes.
* callproc.c (Fcall_process):
* process.c (create_process):
Do not worry about catching SIGCHLD here, undoing previous change.
* nsterm.m (ns_term_init): Re-catch SIGCHLD, undoing previous change.
* process.c, process.h (catch_child_signal):
No longer extern if !NS_IMPL_GNUSTEP, undoing 06-22 change.
* process.c (catch_child_handler): Don't worry about being called
lazily and do not assume caller has blocked SIGCHLD, undoing
previous change. Move first-time stuff back to
init_process_emacs, undoing 06-22 change. If CYGWIN, do not
tickle glib, as that causes Cygwin bootstrap to fail. Do not
set lib_child_handler if it's already initialized, which may
help avoid problems on GNUStep.
Dmitry Gutov [Thu, 27 Jun 2013 09:51:55 +0000 (13:51 +0400)]
* test/automated/package-x-test.el: Change the commentary.
(package-x-test--single-archive-entry-1-3)
(package-x-test--single-archive-entry-1-4): Fix the tests, by
using the appropriate data structure.
Dmitry Gutov [Thu, 27 Jun 2013 09:26:54 +0000 (13:26 +0400)]
* automated/Makefile.in (setwins): Include the 'data' subdirectory.
* automated/package-x-test.el: New file.
* automated/package-test.el: New file.
* automated/data/package: New directory, with test examples.
* lisp/emacs-lisp/package-x.el (package-upload-buffer-internal): Adapt
to `package-desc-version' being a list. Use
`package--ac-desc-version' to retrieve version from a package
archive element.
New experimental feature to save&restore window and frame setup.
* etc/NEWS: Document new Desktop option `desktop-save-windows'.
* lisp/desktop.el (desktop-save-windows): New defcustom.
(desktop--saved-states): New var.
(desktop--excluded-frame-parameters): New defconst.
(desktop--filter-frame-parms, desktop--find-frame-in-display)
(desktop--restore-windows, desktop--save-windows): New functions.
(desktop-save): Call `desktop--save-windows'.
(desktop-read): Call `desktop--restore-windows'.
Stefan Monnier [Wed, 26 Jun 2013 22:31:19 +0000 (18:31 -0400)]
* lisp/emacs-lisp/nadvice.el (advice--defalias-fset): Move advice back to
advice--pending if newdef is nil or an autoload.
(advice-mapc): New function.
* net/eww.el (eww-mode): Undo isn't necessary in eww buffers,
probably.
(eww-mode-map): Add a menu bar.
(eww-add-bookmark): New command.
(eww-bookmark-mode): New mode and commands.
Stefan Monnier [Tue, 25 Jun 2013 16:13:49 +0000 (12:13 -0400)]
* lisp/emacs-lisp/package.el: Include obsolete packages from archives.
Use lexical-binding.
(package-archive-contents): Change format; include obsolete packages.
(package-desc): Use `dir' to mark builtin packages.
(package--from-builtin): Set the `dir' field to `builtin'.
(generated-autoload-file, version-control): Declare.
(package-compute-transaction): Change first arg and return value to be
lists of package-descs. Adjust to new package-archive-contents format.
(package--add-to-archive-contents): Adjust to new
package-archive-contents format.
(package-download-transaction): Arg is now a list of package-descs.
(package-install): If `pkg' is a package name, pass it as
a requirement, so it is subject to the usual (e.g. disabled) checks.
(describe-package): Accept package-desc as well.
(describe-package-1): Describe a specific package-desc. Add links to
other package-descs for the same package name.
(package-menu-describe-package): Pass the actual package-desc.
(package-menu-mode): Add to tabulated-list-revert-hook so revert-buffer
works correctly.
(package-desc-status): New function.
(package-menu--refresh): New function, extracted
from package-menu--generate.
(package-menu--generate): Use it.
(package-delete): Update package-alist.
(package-menu-execute): Don't call package-initialize.
Stefan Monnier [Tue, 25 Jun 2013 13:07:04 +0000 (09:07 -0400)]
* lisp/files-x.el (read-file-local-variable-value): Use read-from-minibuffer
for values and use read--expression for expressions.
(read-file-local-variable): Avoid setq.
(read-file-local-variable-mode): Use minor-mode-list.
Glenn Morris [Tue, 25 Jun 2013 02:24:32 +0000 (19:24 -0700)]
* test/automated/occur-tests.el (occur-test-create): New function.
Use it to create separate tests for each element, so we run them
all rather than stopping at the first error.
Daiki Ueno [Mon, 24 Jun 2013 07:07:08 +0000 (16:07 +0900)]
epg.el: Add context option `home-directory' and `program'.
* epg.el (epg-make-context): Check if PROTOCOL is valid; embed the
file name of gpg executable.
(epg-context-program): New function.
(epg-context-home-directory): New function.
(epg-context-set-program): New function.
(epg-context-set-home-directory): New function.
(epg--start): Use `epg-context-program' instead of
'epg-gpg-program'.
(epg--list-keys-1): Likewise.
Glenn Morris [Mon, 24 Jun 2013 02:26:57 +0000 (19:26 -0700)]
* doc/misc/eudc.texi (Overview, Creating BBDB Records): Restrict bbdb cross-ref
to info output. It's not very important, and gives broken links in
the html version.
Paul Eggert [Mon, 24 Jun 2013 00:31:31 +0000 (17:31 -0700)]
A more-conservative workaround for Cygwin SIGCHLD issues.
* callproc.c (Fcall_process):
* process.c (create_process):
Make sure SIGCHLD is caught before we fork,
since Emacs startup no arranges to catch SIGCHLD.
* process.c (lib_child_handler): Initialize to null, not to
dummy_handler.
(catch_child_signal): Allow self to be called lazily.
Do nothing if it's already been called.
Assume caller has blocked SIGCHLD (all callers do now).
* emacs.c (main): Do not catch SIGCHLD here; defer it until
just before it's really needed.
* nsterm.m (ns_term_init): No need to re-catch SIGCHLD here,
since it hasn't been caught yet.
lisp/faces.el: Minor changes.
(face-documentation): Simplify.
(read-face-attribute, tty-find-type, x-resolve-font-name):
Use `string-match-p'.
(list-faces-display): Use `string-match-p'. Simplify.
(face-spec-recalc): Check face to avoid face alias loops.
(read-color): Use `string-match-p' and non-capturing parenthesis.
Paul Eggert [Sun, 23 Jun 2013 18:18:47 +0000 (11:18 -0700)]
Try to avoid malloc SEGVs on Cygwin.
* callproc.c, process.h (block_child_signal, unblock_child_signal):
Now extern.
* emacs.c (main): Catch SIGCHLD just before initializing gfilenotify.
* process.c (catch_child_signal): Block SIGCHLD while futzing with
the SIGCHLD handler, since the code is not atomic and (due to glib)
signals may be arriving now.
* sysdep.c (init_signals): Do not catch child signals here;
'main' now does that later, at a safer time.
lisp/emacs-lisp/tabulated-list.el: Fix alignment problem with :pad-right = 0.
(tabulated-list-init-header): Don't skip aligning the next header field when
padding is 0; otherwise, field width is not respected unless the title is as
wide as the field.
Glenn Morris [Sun, 23 Jun 2013 01:48:23 +0000 (18:48 -0700)]
Remove some doc/misc/Makefile.in stuff that is not needed any more
* doc/misc/Makefile.in (HTML_TARGETS, html, emacs-faq.html, emacs-faq):
Remove; not needed now we use a standard html layout for the faq.
(clean): Remove HTML_TARGETS, emacs-faq.text.
Paul Eggert [Sat, 22 Jun 2013 19:01:47 +0000 (12:01 -0700)]
Clean up SIGCHLD handling a bit.
* process.c, process.h (catch_child_signal):
Now always extern, even if !NS_IMPL_GNUSTEP.
* process.c (catch_child_signal): Move glib tickler here from
init_process_emacs, so that it's done earlier in Emacs
initialization. Also move the noninteractive && !initialized
check here from init_process_emacs. This is all a bit cleaner for
GNUish platforms, and I hope it works around the Cygwin bug.
* sysdep.c (init_signals): Invoke catch_child_signal here, so
that glib signal handling is tickled before glib creates threads.