Stefan Monnier [Fri, 23 May 2014 15:54:44 +0000 (11:54 -0400)]
* lisp/minibuffer.el (completion--sreverse): Remove.
(completion--common-suffix): Use `reverse' instead.
* lisp/emacs-lisp/regexp-opt.el (regexp-opt-group): Use `reverse' on strings.
* lisp/progmodes/sh-script.el (sh-ancestor-alist): Add mksh, a pdksh
derivative.
(sh-alias-alist): Alias /system/bin/sh (Android's system shell) to
mksh. Improve custom spec; allow regular expressions.
(sh-shell): Delegate name splitting to `sh-canonicalize-shell'.
(sh-after-hack-local-variables): New function.
(sh-mode): Use it; respect file-local `sh-shell' variable.
(sh-set-shell): Use `sh-canonicalize-shell' instead of open-coding
the normalization.
(sh-canonicalize-shell): Rewrite to support regexes.
* lisp/progmodes/sh-script.el (sh-ancestor-alist): Add mksh, a pdksh
derivative.
(sh-alias-alist): Alias /system/bin/sh (Android's system shell) to
mksh. Improve custom spec; allow regular expressions.
(sh-shell): Delegate name splitting to `sh-canonicalize-shell'.
(sh-after-hack-local-variables): New function.
(sh-mode): Use it; respect file-local `sh-shell' variable.
(sh-set-shell): Use `sh-canonicalize-shell' instead of open-coding
the normalization.
(sh-canonicalize-shell): Rewrite to support regexes.
Paul Eggert [Mon, 19 May 2014 19:19:05 +0000 (12:19 -0700)]
Allow any non-nil value to count as true in bool-vector.
Likewise for xd_signature in dbusbind.c.
This is more consistent with the usual practice in Emacs, which is
that any non-nil value counts as true.
* doc/lispref/sequences.texi (Bool-Vectors): Coalesce discussion of how to
print them. bool-vector's args need not be t or nil.
* src/alloc.c (Fbool_vector): Don't require args to be t or nil.
* src/dbusbind.c (xd_signature): Likewise, for booleans.
* src/data.c, lisp.h (Qbooleanp):
* src/lisp.h (CHECK_BOOLEAN): Remove. All uses removed.
Paul Eggert [Mon, 19 May 2014 04:56:03 +0000 (21:56 -0700)]
Remove dependencies on getdelim and getline.
Also, remove update-game-scores's limits on game scores and
simplify its file-locking code.
* configure.ac (getdelim, getline): Remove.
* lib-src/update-game-score.c (struct score_entry): Unify the username and
data members to a single user_data member, since they don't need to be
changed independently and getdelim and getline aren't helpful.
Make the score member char *, not intmax_t, so that scores are not
limited to intmax_t. All uses changed.
(lose_syserr): A zero errno stands for invalid data in score file.
(normalize_integer): New function.
(main): Use it. Check for invalid scores. Omit redundant stat check.
(read_score): First arg is now a string, not a FILE *. All uses
changed. Do not use getdelim or getline; that's way simpler.
(read_scores): Read the whole file, and let read_score handle each
line.
(score_compare): Compare strings representing integers, not integers.
(write_scores) [DOS_NT]: Eliminate unnecessary chmod.
(lock_file): Simplify locking code, eliminating goto.
Check for unlink failure.
Glenn Morris [Sun, 18 May 2014 23:02:29 +0000 (16:02 -0700)]
* configure.ac: Do not bother testing for png in non-graphical builds.
This seems to have been lost in the changes from the current emacs-24
branch version.
Paul Eggert [Sun, 18 May 2014 18:57:04 +0000 (11:57 -0700)]
Port ctags+etags build to Sun C 5.12.
* .bzrignore: Remove lib-src/ctags.c.
* lib-src/Makefile.in (etags_args): Remove, replacing with ...
(etags_cflags, etags_libs): New macros. All uses changed.
(ctags${EXEEXT}): Don't compile etags.c, as compiling etags.c in
parallel (once for ctags, once for etags) breaks parallel makes
with compilers that use the source file name to name temporaries,
such as Sun C 5.12. Instead, compile ctags.c.
* lib-src/ctags.c: New file.
Paul Eggert [Sun, 18 May 2014 05:50:17 +0000 (22:50 -0700)]
Port recent libpng changes to hosts with missing png.h.
* configure.ac (HAVE_PNG): Port to platforms where libpng-config
succeeds but png.h is absent, by testing libpng-config's output
rather than trusting it. I ran into this problem when building
Emacs trunk on a Solaris 10 host.
Paul Eggert [Fri, 16 May 2014 15:49:13 +0000 (08:49 -0700)]
Don't require pkg-config when building from repository.
* INSTALL: Prefer './configure FOO=BAR' to 'FOO=BAR ./configure'.
* INSTALL.REPO: pkg-config is no longer required to build from
the repository.
* autogen.sh: Don't check for pkg-config.
(progs): Remove pkg-config.
(pkg_config_min, AUTORECONF_ENV, env_space, ACLOCAL_PATH):
Remove. All uses removed.
* m4/pkg.m4: New file, built by admin/merge-pkg-config.
* configure.ac: Remove unnecessary m4_pattern_forbid of ^PKG_ and
an AC_ARG_VAR of PKG_CONFIG_PATH. pkg.m4 does that for us.
(EMACS_CHECK_MODULES): Remove workaround for old pkg-config bug,
as we use pkg.m4 from a newer pkg-config.
* admin/merge-pkg-config: New script.
* admin/notes/copyright: Update for m4/*.m4, in particular m4/pkg.m4.
* etc/NEWS: Prefer './configure FOO=BAR' to 'FOO=BAR ./configure'.
* etc/PROBLEMS (Build-time-problems): Remove pkg-config problem
that is no longer an issue.
* nt/INSTALL: Remove no-longer-needed notes about pkg-config.
Katsumi Yamaoka [Wed, 14 May 2014 08:50:51 +0000 (08:50 +0000)]
gnus-art.el, mm-uu.el: Misc improvements for displaying MIME parts
* gnus-art.el (gnus-mime-inline-part, gnus-mm-display-part):
Work for the last MIME part in an article.
(gnus-mime-display-single): Suppress excessive newlines between parts.
* mm-uu.el (mm-uu-dissect): Assume that separators may be accompanied
by leading or trailing newline.
Dmitry Antipov [Tue, 13 May 2014 14:18:54 +0000 (18:18 +0400)]
If available, use Xfixes extension to do pointer blanking.
* configure.ac (HAVE_XFIXES): Define if available.
(XFIXES_CFLAGS, XFIXES_LIBS): New AC_SUBSTs.
* src/Makefile.in (XFIXES_CFLAGS, XFIXES_LIBS): New var.
* src/xfns.c (x_set_mouse_color): Do not call make_invisible_cursor here.
(make_invisible_cursor): Move to...
* src/xterm.c (make_invisible_cursor): ...here.
(x_probe_xfixes_extension, xfixes_toggle_visible_pointer)
(x_toggle_visible_pointer, x_setup_pointer_blanking): New functions.
(x_term_init): Call to x_setup_pointer_blanking.
(XTtoggle_invisible_pointer): Use blanking specific to this display.
* src/xterm.h (struct x_display_info): New member toggle_visible_pointer.
Michael Albinus [Tue, 13 May 2014 08:54:08 +0000 (10:54 +0200)]
* net/browse-url.el (browse-url):
Use `unhandled-file-name-directory' when setting `default-directory',
in order to circumvent stalled remote connections.
Stefan Monnier [Sun, 11 May 2014 05:49:14 +0000 (01:49 -0400)]
* lisp/mouse.el: Use the normal toplevel loop while dragging.
(mouse-set-point): Handle multi-clicks.
(mouse-set-region): Handle multi-clicks for drags.
(mouse-drag-region): Update call accordingly.
(mouse-drag-track): Remove `do-mouse-drag-region-post-process' hack.
Use the normal event loop instead of a local while/read-event loop.
(global-map): Remove redundant bindings for double/triple-mouse-1.
* lisp/xt-mouse.el (xterm-mouse-translate-1): Only process one event at a time.
Generate synthetic down events when the protocol only sends up events.
(xterm-mouse-last): Remove.
(xterm-mouse--read-event-sequence-1000): Use xterm-mouse-last-down
terminal parameter instead.
(xterm-mouse--set-click-count): New function.
(xterm-mouse-event): Detect/generate double/triple clicks.
* lisp/reveal.el (reveal-close-old-overlays): Don't close while dragging.
Paul Eggert [Sun, 11 May 2014 02:27:53 +0000 (19:27 -0700)]
Require pkg-config 0.26 or later.
Earlier versions are buggy, as pkg-config --libs can output
nothing, which causes xrandr link failures.
* configure.ac (PKG_PROG_PKG_CONFIG): Bump from 0.9.0 to 0.26.
Glenn Morris [Sat, 10 May 2014 21:59:05 +0000 (14:59 -0700)]
admin.el tweaks
* admin/admin.el (set-version-in-file): Don't set identical version.
(set-version): Provide default version number.
(set-version, set-copyright): Give start/end messages.
Stefan Monnier [Sat, 10 May 2014 20:07:01 +0000 (16:07 -0400)]
* lisp/emacs-lisp/nadvice.el: Support adding a given function multiple times.
(advice--member-p): If name is given, only compare the name.
(advice--remove-function): Don't stop at the first match.
(advice--normalize-place): New function.
(add-function, remove-function): Use it.
(advice--add-function): Pass the name, if any, to
advice--remove-function.
Sam Steingold [Fri, 9 May 2014 17:04:46 +0000 (13:04 -0400)]
Optionally auto-reconnect depending on `rcirc-reconnect-delay'.
* net/rcirc.el (rcirc-reconnect-delay): New user option.
(rcirc-sentinel): Auto-reconnect to the server if `rcirc-reconnect-delay'
is non-0 (but not more often than its value in case the host is off-line).
Katsumi Yamaoka [Fri, 9 May 2014 09:50:14 +0000 (09:50 +0000)]
gnus-art.el: Misc improvements for displaying MIME parts
* gnus-art.el (gnus-mm-display-part): Don't put article out of sight
while prompting a user for a file name, etc.
(gnus-mime-display-single): Display part with a common appearance no
matter whether MIME button is omitted or not; don't add duplicate entry
to gnus-article-mime-handle-alist.
(gnus-mime-buttonize-attachments-in-header): Use copied buttons.
Juri Linkov [Thu, 8 May 2014 19:22:43 +0000 (22:22 +0300)]
Backport dired-check-switches from trunk.
* lisp/dired.el (dired-check-switches, dired-switches-recursive-p): New functions.
(dired-switches-escape-p, dired-move-to-end-of-filename):
Use `dired-check-switches'.
(dired-insert-old-subdirs, dired-build-subdir-alist)
(dired-sort-R-check): Use `dired-switches-recursive-p'.