Glenn Morris [Thu, 26 Jun 2014 06:18:53 +0000 (23:18 -0700)]
lib-src/Makefile trivial simplifications
* lib-src/Makefile.in (blessmail): Depend on lisp/mail/blessmail.el.
Use $<, $@.
(regex.o, etags${EXEEXT}, ctags${EXEEXT}, ebrowse${EXEEXT})
(profile${EXEEXT}, make-docfile${EXEEXT}, movemail${EXEEXT})
(pop.o, emacsclient${EXEEXT}, emacsclientw${EXEEXT}, ntlib.o)
(hexl${EXEEXT}, update-game-score${EXEEXT}, emacsclient.res): Use $<.
(ctags${EXEEXT}): Add $srcdir to dependency rather than using VPATH.
Luke Lee [Thu, 26 Jun 2014 04:18:12 +0000 (12:18 +0800)]
HideIfDef mode bug fixes and enhancements. This is #2 of 3 patches based
on the completed work posted on http://www.emacswiki.org/emacs/HideIfDef.
- Supporting argumented macro expansion.
- Stringification, tokenization and concatenation of strings and tokens.
- Add functions to find defines and parse argumented macros into a macro
tree containing macro name, formal parameters and macro body.
- On macro evaluation, macros will be applied with actual parameters and
then got expanded recursively.
- Apply review changes.
* lisp/progmodes/hideif.el (hif-string-to-number): Fix return value bug.
(hif-simple-token-only, hif-tokenize): Commentted in detail mainly for
performance enhancements.
(hif-parse-if-exp): Rename to `hif-parse-exp'. Enhanced for macro
expansion.
(hif-factor, hif-string-concatenation, intern-safe): Support string
concatenation and argumented macro expansion.
(hif-if-valid-identifier-p, hif-define-operator, hif-flatten)
(hif-expand-token-list, hif-get-argument-list, hif-define-macro)
(hif-delimit, hif-macro-supply-arguments, hif-invoke, hif-canonicalize)
(hif-canonicalize-tokens, hif-looking-at-elif, hif-place-macro-invocation)
(hif-parse-macro-arglist): Mostly new functions for supporting argumented
macro expansion.
(hif-string-concatenation, hif-stringify, hif-token-concat)
(hif-token-stringification, hif-token-concatenation): Stringify and
concatentation.
(hif-find-next-relevant): Fix comments
(hif-ifdef-to-endif, hif-looking-at-elif, hif-hide-line): Bug fix for
some cases involving #elif.
(hif-find-define, hif-add-new-defines): New functions for automatically
scanning of defined symbols.
(hide-ifdef-guts): Fix for auto defined symbol scanning.
(hide-ifdef-undef): Fix behavior to match CPP.
Glenn Morris [Wed, 25 Jun 2014 23:51:10 +0000 (19:51 -0400)]
lisp/Makefile: Remove cc-*.el dependencies on non-cc files
* lisp/Makefile.in ($(lisp)/progmodes/cc-defs.elc)
($(lisp)/progmodes/cc-fonts.elc, $(lisp)/progmodes/cc-langs.elc)
($(lisp)/progmodes/cc-vars.elc): Drop hand-written deps on non-cc files.
They are not relevant to the original issue (bug#1004),
and cause unnecessary recompilation (bug#2151).
Glenn Morris [Wed, 25 Jun 2014 22:59:37 +0000 (18:59 -0400)]
* flymake-tests.el (flymake-tests--current-face): Tweak previous sleep change.
Using the time-honored principle of "if it doesn't when you do X,
do it again and see what happens".
Stefan Monnier [Wed, 25 Jun 2014 18:11:45 +0000 (14:11 -0400)]
* lisp/play/landmark.el: Use lexical-binding and avoid `intangible'.
(landmark--last-pos): New var.
(landmark--intangible-chars): New const.
(landmark--intangible): New function.
(landmark-mode, landmark-move): Use it.
(landmark-mode): Remove properties.
(landmark-plot-square, landmark-point-square, landmark-goto-xy)
(landmark-cross-qtuple):
Don't worry about `intangible' any more.
(landmark-click, landmark-point-y): Same; and don't assume point-min==1.
(landmark-init-display): Don't set `intangible' and `point-entered'.
(square): Remove. Inline it instead.
(landmark--distance): Rename from `distance'.
(landmark-calc-distance-of-robot-from): Rename from
calc-distance-of-robot-from.
(landmark-calc-smell-internal): Rename from calc-smell-internal.
Dmitry Antipov [Wed, 25 Jun 2014 12:11:08 +0000 (16:11 +0400)]
Consistently use validate_subarray to verify substring.
* fns.c (validate_substring): Not static any more. Adjust to
use ptrdiff_t, not EMACS_INT, becase string and vector limits
can't exceed ptrdiff_t even if EMACS_INT is wider.
* lisp.h (validate_subarray): Add prototype.
* coding.c (Fundecodable_char_position):
* composite.c (Fcomposition_get_gstring, Fcompose_string_internal):
Use validate_subarray. Adjust comment to mention substring.
Dmitry Antipov [Wed, 25 Jun 2014 10:36:51 +0000 (14:36 +0400)]
Do not allow out-of-range character position in Fcompare_strings.
* src/fns.c (validate_subarray): Add prototype.
(Fcompare_substring): Use validate_subarray to check ranges.
Adjust comment to mention that the semantics was changed. Also see
http://lists.gnu.org/archive/html/emacs-devel/2014-06/msg00447.html.
* lisp/files.el (dir-locals-find-file, file-relative-name):
* lisp/info.el (Info-complete-menu-item):
* lisp/minibuffer.el (completion-table-subvert): Prefer string-prefix-p
to compare-strings to avoid out-of-range errors.
* lisp/subr.el (string-prefix-p): Adjust to match strict range
checking in compare-strings.
* test/automated/fns-tests.el (fns-tests-compare-string): New test.
Glenn Morris [Wed, 25 Jun 2014 06:03:13 +0000 (23:03 -0700)]
admin/unidata: small Makefile simplifications
* admin/unidata/Makefile.in (${top_srcdir}/src/macuvs.h): Make and load .elc.
(.el.elc): Replace with pattern rule.
(%.elc): New.
(unidata.txt): Use $<.
(compile): Remove.
(${DSTDIR}/charprop.el): Use order-only prereqs rather than a sub-make.
Leonard Randall [Tue, 24 Jun 2014 19:39:22 +0000 (21:39 +0200)]
Make search in reftex-using-biblatex-p non-greedy.
* textmodes/reftex-parse.el (reftex-using-biblatex-p): Make search
for comment lines non-greedy and stopping at newlines to fix stack
overflows with large files.
Paul Eggert [Tue, 24 Jun 2014 08:10:48 +0000 (01:10 -0700)]
Be more consistent about the 'Qfoo' naming convention.
* image.c (Fimagemagick_types):
* lisp.h (lisp_h_CHECK_TYPE, CHECK_TYPE, CHECK_ARRAY):
* process.c (Fmake_network_process):
Rename C local identifier 'Qfoo to avoid giving the false
impression that it stands for the symbol 'foo'.
Eli Zaretskii [Tue, 24 Jun 2014 07:10:47 +0000 (00:10 -0700)]
Backport Unicode 7 update of character- and script-related databases
* lisp/international/characters.el (char-script-table):
Update for scripts added and codepoint ranges changed in Unicode 7.0.
* lisp/international/fontset.el (script-representative-chars):
Add representative characters for scripts added in Unicode 7.0.
(otf-script-alist): Synchronize with the latest registry of OTF script tags.
Eli Zaretskii [Mon, 23 Jun 2014 15:27:16 +0000 (18:27 +0300)]
Update various character- and script-related databases per Unicode 7.0.
lisp/international/fontset.el (script-representative-chars): Add
representative characters for scripts added in Unicode 7.0.
(otf-script-alist): Synchronize with the latest registry of OTF
script tags.
lisp/international/characters.el (char-script-table): Update for
scripts added and codepoint ranges changed in Unicode 7.0.
Glenn Morris [Mon, 23 Jun 2014 06:43:20 +0000 (23:43 -0700)]
Misc small doc/ Makefile cleanup
* emacs/Makefile.in (mkinfodir): Remove.
(.dvi.ps): Replace with pattern rule.
(${buildinfodir}): New rule.
($(buildinfodir)/emacs.info): Use order-only prereq for output dir. Use $<.
(emacs.dvi, emacs.pdf, emacs.html, emacs-xtra.dvi, emacs-xtra.pdf): Use $<.
(%.ps): New rule.
* lispintro/Makefile.in (mkinfodir): Remove.
(.dvi.ps): Replace with explicit rule.
(${buildinfodir}): New rule.
(${buildinfodir}/eintr.info): Use order-only prereq for output dir. Use $<.
(emacs-lisp-intro.dvi, emacs-lisp-intro.pdf, emacs-lisp-intro.html): Use $<.
(emacs-lisp-intro.ps): New rule.
* lispref/Makefile.in (mkinfodir): Remove.
(.dvi.ps): Replace with explicit rule.
(html): Declare as PHONY.
(${buildinfodir}): New rule.
($(buildinfodir)/elisp.info): Use order-only prereq for output dir. Use $<.
(elisp.dvi, elisp.html, elisp.pdf): Use $<.
(elisp.ps): New rule.
Eli Barzilay [Mon, 23 Jun 2014 05:14:23 +0000 (01:14 -0400)]
* calculator.el (calculator-standard-displayer): Fix bug in use of
`calculator-groupize-number'.
(calculator-funcall): Fix broken `cl-flet' use by moving it into the
`eval' code, so it works in v24.3.1 too.
(calculator-last-input): Comment to clarify purpose.
Also add back a ChangeLog blurb for previous commit 2014-06-15T04:52:34Z!eli@barzilay.org.
Michael Albinus [Sun, 22 Jun 2014 09:20:38 +0000 (11:20 +0200)]
* net/tramp-adb.el (tramp-adb-handle-process-file):
* net/tramp-sh.el (tramp-sh-handle-process-file):
* net/tramp-smb.el (tramp-smb-handle-process-file): Do not raise
the output buffer when DISPLAY is non-nil.
Fix completion retrieval parsing.
* progmodes/python.el (python-mode):
(python-util-strip-string): New function.
(python-shell-completion-get-completions): Use it.
* automated/python-tests.el (python-util-strip-string-1): New test.
Eli Zaretskii [Sat, 21 Jun 2014 12:30:02 +0000 (15:30 +0300)]
Fix bug #17823 with vertical-motion in lines with line-prefix.
src/indent.c (Fvertical_motion): Move to the goal column, if any,
with a single call to move_it_in_display_line, not in two calls.
Doing this with two calls causes move_it_in_display_line apply the
line-prefix handling twice instead of just once.
Enhancements for outline integration.
* lisp/progmodes/python.el (python-mode): Properly set
outline-heading-end-regexp so that comments after colons for
defuns are supported.
Eli Zaretskii [Fri, 20 Jun 2014 08:47:10 +0000 (11:47 +0300)]
Fix bug #17801 with extraneous newlines after inserting markup in Texinfo mode.
lisp/textmodes/texinfo.el (texinfo-mode): Set skeleton-end-newline
locally to nil.
(texinfo-insert-block, texinfo-insert-@end)
(texinfo-insert-@example, texinfo-insert-@quotation): Adjust to
local setting of skeleton-end-newline by adding an explicit \n to
the skeletons where appropriate.
Stefan Monnier [Fri, 20 Jun 2014 01:05:40 +0000 (21:05 -0400)]
* lisp/emacs-lisp/smie.el (smie--hanging-eolp-function): New var.
(smie-indent--hanging-p): Use it.
* lisp/progmodes/sh-script.el (sh-set-shell): Set it.
Stefan Monnier [Thu, 19 Jun 2014 22:07:09 +0000 (18:07 -0400)]
* cedet/semantic/ia.el (semantic-ia-complete-symbol-menu): Use posn-at-point
instead of senator-completion-menu-point-as-event; un-comment, tho keep
the "no smart completion" fallback commented since it still doesn't work.
Dmitry Antipov [Thu, 19 Jun 2014 16:52:20 +0000 (20:52 +0400)]
Minor cleanup of fonset code.
* fontset.c (FONTSET_ID, set_fontset_id, FONTSET_NAME)
(set_fontset_name, FONTSET_ASCII, set_fontset_ascii)
(FONTSET_BASE, set_fontset_base, FONTSET_FRAME)
(set_fontset_frame, FONTSET_NOFONT_FACE, set_fontset_nofont_face)
(FONTSET_DEFAULT, set_fontset_default, FONTSET_FALLBACK)
(set_fontset_fallback): Reorder extra slots and avoid unused slots.
(free_realized_fontset): Remove because a no-op since 2008.
(free_face_fontset): Adjust user.
(syms_of_fontset): Shrink fontset by one extra slot.
* lisp/emacs-lisp/lisp-mode.el (lisp-string-after-doc-keyword-p): New fun.
(lisp-string-in-doc-position-p): New function, extracted from
lisp-font-lock-syntactic-face-function.
(lisp-font-lock-syntactic-face-function): Use them.
Stefan Monnier [Wed, 18 Jun 2014 19:38:00 +0000 (15:38 -0400)]
* lisp/play/bubbles.el (bubbles--initialize, bubbles--show-scores)
(bubbles--game-over): Don't add `intangible' properties since they
didn't work anyway.
Eli Zaretskii [Wed, 18 Jun 2014 15:15:52 +0000 (18:15 +0300)]
Fix bug #17790 with compilation against giflib 5.1.0 and later.
src/image.c [5 < GIFLIB_MAJOR + (1 <= GIFLIB_MINOR)]: Declare the
prototype of DGifCloseFile as appropriate for older and newer
versions of giflib.
(gif_close): New function, encapsulates the differences in the
calling sequence of DGifCloseFile before v5.1.0 and after it.
(gif_load): Call gif_close instead of DGifCloseFile. Divulge the
error string where appropriate.
lisp/term/w32-win.el (dynamic-library-alist): Support giflib 5.1.0
and later.
Juri Linkov [Wed, 18 Jun 2014 08:48:49 +0000 (11:48 +0300)]
* lisp/vc/diff-mode.el (diff-changed): Empty face definition
to use `diff-removed' and `diff-added' on tty as well.
(diff-context): Use darker color on light background and
lighter color on dark background.
Juri Linkov [Wed, 18 Jun 2014 08:33:57 +0000 (11:33 +0300)]
* lisp/vc/diff-mode.el (diff-refine-changed): Rename from
`diff-refine-change' for consistency with `diff-changed'.
(diff-refine-change): Add obsolete face alias.
* lisp/vc/smerge-mode.el (smerge-refined-changed): Rename from
`smerge-refined-change'.
(smerge-refined-change): Add obsolete face alias.
Stefan Monnier [Tue, 17 Jun 2014 19:33:58 +0000 (15:33 -0400)]
* lisp/rect.el (rectangle-preview): New custom.
(rectangle): New group.
(rectangle--pos-cols): Add `window' argument.
(rectangle--string-preview-state, rectangle--string-preview-window):
New vars.
(rectangle--string-flush-preview, rectangle--string-erase-preview)
(rectangle--space-to, rectangle--string-preview): New functions.
(string-rectangle): Use them.
(rectangle--inhibit-region-highlight): New var.
(rectangle--highlight-for-redisplay): Obey it. Make sure
`apply-on-region' uses the point-crutches of the right window.
Use :align-to rather than multiple spaces.
Dmitry Antipov [Tue, 17 Jun 2014 03:14:00 +0000 (07:14 +0400)]
* fileio.c (Fread_file_name): Do not pass redundant args and ...
* callint.c (read_file_name): ... convert to static here.
* lisp.h (Fread_file_name): Do not EXFUN it.
* composite.c (CHAR_COMPOSABLE_P): Replace unsafe macro with ...
(char_composable_p): ... static function. All users changed.
Eli Zaretskii [Mon, 16 Jun 2014 19:38:28 +0000 (22:38 +0300)]
A better fix for bug #17777 with visual-order cursor movement.
src/xdisp.c (Fmove_point_visually): Instead of testing for keyboard
macro execution, make sure point didn't move since last complete
redisplay, as the condition for using the glyph matrix
information.
Dmitry Antipov [Mon, 16 Jun 2014 08:49:09 +0000 (12:49 +0400)]
Do not ask for XRender extension each time XFT font is opened.
* xftfont.c (xftfont_open): Move call to XRenderQueryExtension ...
* xterm.c (x_term_init) [HAVE_XFT]: ... to here. Adjust comment.
Andrea Rossetti [Mon, 16 Jun 2014 06:37:37 +0000 (08:37 +0200)]
In ruler-mode fix calculation of column from mouse position (Bug#17768).
* ruler-mode.el (ruler-mode-window-col)
(ruler-mode-mouse-set-left-margin)
(ruler-mode-mouse-set-right-margin): Fix calculation of column
from mouse position (Bug#17768).