Commit graph

118914 commits

Author SHA1 Message Date
Eli Zaretskii
5fbd17e369 Fix line-move-visual's following of column in R2L lines.
src/simple.el (line-move-visual): When converting X pixel coordinate
 to temporary-goal-column, adjust the value for right-to-left
 screen lines.  This fixes vertical-motion, next/prev-line, etc.

 src/dispnew.c (buffer_posn_from_coords): Fix the value of the column
 returned for right-to-left screen lines.  (Before the change on
 2014-12-30, the incorrectly-computed X pixel coordinate concealed
 this bug.)
2015-01-08 16:04:46 +02:00
Eli Zaretskii
ad83cdacb6 Fix GDB accesses to the 'nil's name.
src/.gdbinit (xsymname): New subroutine.
 (xprintsym, initial-tbreak): Use it to access the name of a symbol
 in a way that doesn't cause GDB to barf when it tries to
 dereference a NULL pointer.
2015-01-08 15:53:09 +02:00
Eli Zaretskii
daa18b5e85 Fix fallout from "Qnil is zero" change in the display engine. (Bug#19535)
src/xdisp.c (next_element_from_c_string): Use Lisp integer zero as
 the object.
 (set_cursor_from_row, try_cursor_movement, dump_glyph)
 (insert_left_trunc_glyphs, append_space_for_newline)
 (extend_face_to_end_of_line, highlight_trailing_whitespace)
 (find_row_edges, ROW_GLYPH_NEWLINE_P, Fmove_point_visually)
 (Fbidi_resolved_levels, produce_special_glyphs)
 (rows_from_pos_range, mouse_face_from_buffer_pos)
 (note_mouse_highlight): Use nil as the object for glyphs inserted
 by the display engine, and test with NILP instead of INTEGERP.
 src/w32fns.c (Fx_show_tip): Use NILP to test for glyphs inserted by
 the display engine.
 src/xfns.c (Fx_show_tip): Use NILP to test for glyphs inserted by
 the display engine.
 src/dispextern.h (struct glyph, struct it): Update comments for the
 OBJECT members.
2015-01-08 15:46:23 +02:00
Paul Eggert
0002f31af9 Port new Lisp symbol init to x86 --with-wide-int
* lisp.h (DEFINE_LISP_SYMBOL_BEGIN, DEFINE_LISP_SYMBOL_END):
Define to empty on platforms where EMACS_INT_MAX != INTPTR_MAX, as
GCC (at least) does not allow a constant initializer to widen an
address constant.
2015-01-08 00:44:18 -08:00
Paul Eggert
206333ee30 * lisp.h (TAG_SYMPTR): Don't do arithmetic on NULL.
This is a followup to the "Port Qnil==0 XUNTAG to clang" patch.
Although clang doesn't need it, some other compiler might, and
it's easy enough to be safe.
2015-01-07 23:40:20 -08:00
Paul Eggert
ce5c361c14 * conf_post.h (ATTRIBUTE_ALLOC_SIZE): Port to clang 3.5.0.
Apparently clang removed support for the alloc_size attribute.
2015-01-07 23:12:04 -08:00
Paul Eggert
f6a27d26dc Port Qnil==0 XUNTAG to clang
clang has undefined behavior if the program subtracts an integer
from (char *) 0.  Problem reported by YAMAMOTO Mitsuharu in:
http://lists.gnu.org/archive/html/emacs-devel/2015-01/msg00132.html
* lisp.h (lisp_h_XUNTAG) [USE_LSB_TAG]:
(XUNTAG) [!USE_LSB_TAG]: Port to clang 3.5.0.
2015-01-07 23:02:27 -08:00
Glenn Morris
9f654763f2 # ChangeLog fixes 2015-01-07 21:00:04 -08:00
Glenn Morris
5a92f20310 * admin/authors.el (authors-aliases): Add an entry to ignore. 2015-01-07 20:58:09 -08:00
Glenn Morris
ffa8603902 * lisp/files.el (file-tree-walk): Remove; of unknown authorship.
* etc/NEWS: Remove entry.

Fixes: debbugs:19325
2015-01-07 20:52:24 -08:00
Katsumi Yamaoka
dff81fa7b7 lisp/gnus/gnus-group.el (gnus-read-ephemeral-bug-group): Use mm-disable-multibyte instead of mm-enable-multibyte 2015-01-08 03:38:59 +00:00
Katsumi Yamaoka
fa785a7785 lisp/gnus/gnus-group.el (gnus-read-ephemeral-bug-group): Use mm-enable-multibyte instead of set-buffer-multibyte 2015-01-08 03:37:10 +00:00
Paul Eggert
ad5ac01471 * src/gfilenotify.c (monitor_to_lisp, lisp_to_monitor):
Port recent fix to !USE_LSB_TAG platforms.
2015-01-07 17:53:20 -08:00
Paul Eggert
d71659fed4 Port GFileMonitor * hack to Qnil==0 platforms
Reported by Glenn Morris in: http://bugs.gnu.org/15880#112
* gfilenotify.c (monitor_to_lisp, lisp_to_monitor): New functions.
(dir_monitor_callback, Fgfile_add_watch, Fgfile_rm_watch): Use them.
2015-01-07 17:13:05 -08:00
Andreas Schwab
ad97127d9c Fix content decoding in gnus-read-ephemeral-bug-group
* gnus-group.el (gnus-read-ephemeral-bug-group): Bind
coding-system-for-read and coding-system-for-write only around
with-temp-file, and make buffer unibyte.  Don't write temp file twice.
2015-01-08 00:19:21 +01:00
Eli Zaretskii
8596361bb3 src/window.c (Fwindow_body_width): Doc fix. (Bug#19395) 2015-01-08 00:17:32 +01:00
Stefan Monnier
50414e9410 * lisp/subr.el (redisplay-dont-pause): Mark as obsolete.
* doc/lispref/display.texi (Forcing Redisplay): Remove references to
redisplay-dont-pause and redisplay-preemption-period (which doesn't
even exist).
2015-01-08 00:15:21 +01:00
K. Handa
88bc8332eb Merge branch master of git.sv.gnu.org:/srv/git/emacs. 2015-01-07 22:51:41 +09:00
K. Handa
3f79d31316 international/ccl.el (define-ccl-program): Improve the docstring. 2015-01-07 22:47:43 +09:00
Sam Steingold
95295df44c Use generic `display-buffer-alist' instead of mode-specific customizations.
* lisp/shell.el (shell-display-buffer-actions): Remove,
use `display-buffer-alist' instead.
2015-01-06 16:32:09 -05:00
Jan D
c751166609 NS: Fix frame size when height and font set at startup.
* nsterm.m (x_set_window_size): Call updateFrameSize to get real
size instead of using widht/height.  The frame may be constrained.
2015-01-06 20:30:39 +01:00
Paul Eggert
215942da54 Merge from gnulib
* lib/stdio.in.h, m4/stdio_h.m4: Update from gnulib, incorporating:
2015-01-05 stdio: fix use of PRIdMAX on modern mingw
2015-01-06 09:15:29 -08:00
Dmitry Gutov
f5afaf9ce7 Add help-echo to xrefs
* lisp/progmodes/xref.el (xref--insert-xrefs): Add `help-echo' property
to the references.
2015-01-06 02:47:58 +03:00
Paul Eggert
6e8fe3f853 * lisp.h (XSYMBOL): Parenthesize id in forward decl.
Needed when neither optimizing nor inlining.
Also, sort decls alphabetically.
2015-01-05 14:16:23 -08:00
Eli Zaretskii
5b5dab1281 MS-Windows followup to previous commit
src/w32proc.c, src/w32.h, src/w32fns.c, src/w32font.c, src/w32menu.c:
 src/w32notify.c, src/w32proc.c, src/w32select.c, src/w32term.c:
 src/w32uniscribe.c: Remove declarations of Q* variables that
 represent symbols.
2015-01-05 22:13:58 +02:00
Paul Eggert
bc78ff2603 Use 0 for Qnil
Fixes Bug#15880.
If USE_LSB_TAG, arrange for the representation of Qnil to be zero so
that NILP (x) is equivalent to testing whether x is 0 at the
machine level.  The overall effects of this and the previous patch
shrink the size of the text segment by 2.3% and speeds up
compilation of all the .elc files by about 0.5% on my platform,
which is Fedora 20 x86-64.
* lib-src/make-docfile.c (compare_globals):
* src/lisp.h (lisp_h_XPNTR, lisp_h_XSYMBOL, lisp_h_XUNTAG)
(make_lisp_symbol) [USE_LSB_TAG]:
Symbols now tag the difference from lispsym, not the pointer.
(lisp_h_XUNTAGBASE, TAG_SYMPTR): New macros.
(Lisp_Int0, Lisp_Int1, Lisp_Symbol, Lisp_Misc, Lisp_String, Lisp_Cons):
Renumber so that Lisp_Symbol is 0, so that Qnil is zero.
(XSYMBOL): New forward decl.
(XUNTAGBASE): New function.
(XUNTAG): Use it.
2015-01-05 10:15:04 -08:00
Paul Eggert
58f2d6ef32 Compute C decls for DEFSYMs automatically
Fixes Bug#15880.
This patch also makes Q constants (e.g., Qnil) constant addresses
from the C point of view.
* make-docfile.c: Revamp to generate table of symbols, too.
Include <stdbool.h>.
(xstrdup): New function.
(main): Don't process the same file twice.
(SYMBOL): New constant in enum global_type.
(struct symbol): Turn 'value' member into a union, either v.value
for int or v.svalue for string.  All uses changed.
(add_global): New arg svalue, which overrides value, so that globals
can have a string value.
(close_emacs_global): New arg num_symbols; all uses changed.
Output lispsym decl.
(write_globals): Output symbol globals too.  Output more
ATTRIBUTE_CONST, now that Qnil etc. are C constants.
Output defsym_name table.
(scan_c_file): Move most of guts into ...
(scan_c_stream): ... new function.  Scan for DEFSYMs and
record symbols found.  Don't read past EOF if file doesn't
end in newline.
* alloc.c, bidi.c, buffer.c, bytecode.c, callint.c, casefiddle:
* casetab.c, category.c, ccl.c, charset.c, chartab.c, cmds.c, coding.c:
* composite.c, data.c, dbusbind.c, decompress.c, dired.c, dispnew.c:
* doc.c, editfns.c, emacs.c, eval.c, fileio.c, fns.c, font.c, fontset.c:
* frame.c, fringe.c, ftfont.c, ftxfont.c, gfilenotify.c, gnutls.c:
* image.c, inotify.c, insdel.c, keyboard.c, keymap.c, lread.c:
* macfont.m, macros.c, minibuf.c, nsfns.m, nsfont.m, nsimage.m:
* nsmenu.m, nsselect.m, nsterm.m, print.c, process.c, profiler.c:
* search.c, sound.c, syntax.c, term.c, terminal.c, textprop.c, undo.c:
* window.c, xdisp.c, xfaces.c, xfns.c, xftfont.c, xmenu.c, xml.c:
* xselect.c, xsettings.c, xterm.c:
Remove Q vars that represent symbols (e.g., Qnil, Qt, Qemacs).
These names are now defined automatically by make-docfile.
* alloc.c (init_symbol): New function.
(Fmake_symbol): Use it.
(c_symbol_p): New function.
(valid_lisp_object_p, purecopy): Use it.
* alloc.c (marked_pinned_symbols):
Use make_lisp_symbol instead of make_lisp_ptr.
(garbage_collect_1): Mark lispsym symbols.
(CHECK_ALLOCATED_AND_LIVE_SYMBOL): New macro.
(mark_object): Use it.
(sweep_symbols): Sweep lispsym symbols.
(symbol_uses_obj): New function.
(which_symbols): Use it.  Work for lispsym symbols, too.
(init_alloc_once): Initialize Vpurify_flag here; no need to wait,
since Qt's address is already known now.
(syms_of_alloc): Add lispsym count to symbols_consed.
* buffer.c (init_buffer_once): Compare to Qnil, not to make_number (0),
when testing whether storage is all bits zero.
* dispextern (struct image_type):
* font.c (font_property_table):
* frame.c (struct frame_parm_table, frame_parms):
* keyboard.c (scroll_bar_parts, struct event_head):
* xdisp.c (struct props):
Use XSYMBOL_INIT (Qfoo) and struct Lisp_Symbol * rather than &Qfoo and
Lisp_Object *, since Qfoo is no longer an object whose address can be
taken.  All uses changed.
* eval.c (run_hook): New function.  Most uses of Frun_hooks changed to
use it, so that they no longer need to take the address of a Lisp sym.
(syms_of_eval): Don't use DEFSYM on Vrun_hooks, as it's a variable.
* frame.c (syms_of_frame): Add defsyms for the frame_parms table.
* keyboard.c (syms_of_keyboard): Don't DEFSYM Qmenu_bar here.
DEFSYM Qdeactivate_mark before the corresponding var.
* keymap.c (syms_of_keymap): Use DEFSYM for Qmenu_bar and Qmode_line
instead of interning their symbols; this avoids duplicates.
(LISP_INITIALLY, TAG_PTR)
(DEFINE_LISP_SYMBOL_BEGIN, DEFINE_LISP_SYMBOL_END, XSYMBOL_INIT):
New macros.
(LISP_INITIALLY_ZERO): Use it.
(enum symbol_interned, enum symbol_redirect, struct Lisp_Symbol)
(EXFUN, DEFUN_ARGS_MANY, DEFUN_ARGS_UNEVALLED, DEFUN_ARGS_*):
Move decls up, to avoid forward uses.  Include globals.h earlier, too.
(make_lisp_symbol): New function.
(XSETSYMBOL): Use it.
(DEFSYM): Now just a placeholder for make-docfile.
* lread.c (DEFINE_SYMBOLS): Define, for globals.h.
(intern_sym): New function, with body taken from old intern_driver.
(intern_driver): Use it.  Last arg is now Lisp integer, not ptrdiff_t.
All uses changed.
(define_symbol): New function.
(init_obarray): Define the C symbols taken from lispsym.
Use plain DEFSYM for Qt and Qnil.
* syntax.c (init_syntax_once): No need to worry about
Qchar_table_extra_slots.
2015-01-05 10:14:58 -08:00
Stefan Monnier
d2cf05d1ba * lisp/minibuffer.el (completion-category-defaults): Default to nil.
(completion-category-defaults): New var.
Set unicode-name to use substring completion.
2015-01-05 11:34:06 -05:00
Dmitry Gutov
c477f20730 Add mouse interaction to xref
* lisp/progmodes/xref.el (xref--button-map): New variable.
(xref--mouse-2): New command.
(xref--insert-xrefs): Add `mouse-face' and `keymap' properties to
the inserted references.
2015-01-05 02:45:30 +03:00
Paul Eggert
bf90e9ac7c 'temacs -nw' should not call missing functions
Without this patch, "temacs -nw" fails with the diagnostic
"emacs: Symbol's function definition is void: frame-windows-min-size"
and messes up the tty's state.
* lib-src/make-docfile.c (write_globals):
Declare Fframe_windows_min_size with ATTRIBUTE_CONST, too.  Sort.
* src/frame.c (Fframe_windows_min_size): New placeholder function.
(syms_of_frame): Define it.
* src/window.c (Fwindow__sanitize_window_sizes): New placeholder.
(syms_of_window): Define it.
2015-01-04 13:21:03 -08:00
Paul Eggert
cde73794f6 * INSTALL: Mention 'make WERROR_CFLAGS='. 2015-01-04 01:11:08 -08:00
Paul Eggert
1ac42bca88 * doc/lispref/files.texi: Fix xref typo. 2015-01-04 00:50:56 -08:00
Glenn Morris
e82fc62bd4 # ChangeLog fixes 2015-01-04 00:22:29 -08:00
Paul Eggert
fec9b792f5 Clarify 'make info'
* Makefile.in (info): Use GNU make conditional rather than
an '@' rule with a shell conditional, so that the builder can
see the submake.
2015-01-03 19:12:25 -08:00
Paul Eggert
35127c362a Less 'make' chatter for oldXMenu
* Makefile.in (AM_V_GEN, am__v_GEN_, am__v_GEN_0, am__v_GEN_1)
(AM_V_at, am__v_at_, am__v_at_0, am__v_at_1): New macros.
(libXMenu11.a): Use them.
2015-01-03 18:54:35 -08:00
Paul Eggert
4d12b5540c Less 'make' chatter for lwlib
* Makefile.in (AM_V_GEN, am__v_GEN_, am__v_GEN_0, am__v_GEN_1)
(AM_V_at, am__v_at_, am__v_at_0, am__v_at_1): New macros.
(liblw.a): Use them.
2015-01-03 18:54:34 -08:00
Paul Eggert
ccb2d93859 Less 'make' chatter for lisp dir
* lisp/Makefile.in (THEFILE): Define to be 'no-such-file' by default,
to make it clearer that the caller must specify it.
(compile-onefile): Remove, replacing by ...
($(THEFILE)c): ... new rule.  This lets us use AM_V_GEN here.
($(THEFILE)c, .el.elc, $(MH_E_DIR)/mh-loaddefs.el)
($(TRAMP_DIR)/tramp-loaddefs.el, $(CAL_DIR)/cal-loaddefs.el)
($(CAL_DIR)/diary-loaddefs.el, $(CAL_DIR)/hol-loaddefs.el):
Use AM_V_GEN to lessen 'make' chatter.
(.el.elc): Omit duplicate comment.
* src/Makefile.in (%.elc): Adjust to compile-onefile change in
../lisp/Makefile.in.
2015-01-03 18:54:34 -08:00
Paul Eggert
0d85a0c05e Less 'make' chatter for lib-src
* Makefile.in (blessmail): Less 'make' chatter here.
2015-01-03 18:54:34 -08:00
Paul Eggert
c895d02ca1 Less 'make' chatter for leim
* Makefile.in (AM_DEFAULT_VERBOSITY, AM_V_GEN, am__v_GEN_)
(am__v_GEN_0, am__v_GEN_1, AM_V_at, am__v_at_, am__v_at_0)
(am__v_at_1): New macros, from src/Makefile.in.
(${leimdir}/quail/%.el, misc_convert, ${leimdir}/leim-list.el)
(${leimdir}/ja-dic/ja-dic.el): Use them.
2015-01-03 18:54:34 -08:00
Paul Eggert
4e23582925 Less 'make' chatter for admin/grammars
* grammars/Makefile.in (AM_DEFAULT_VERBOSITY, AM_V_GEN)
(am__v_GEN_, am__v_GEN_0, am__v_GEN_1, AM_V_at, am__v_at_)
(am__v_at_0, am__v_at_1): New macros, from src/Makefile.in.
(${bovinedir}/%-by.el, ${bovinedir}/scm-by.el)
(${cedetdir}/semantic/%-wy.el, ${wisentdir}/%-wy.el)
(${wisentdir}/javat-wy.el, ${cedetdir}/srecode/srt-wy.el): Use them.
2015-01-03 18:54:34 -08:00
Paul Eggert
ed51b8df3c Less 'make' chatter for VCSWITNESS
* Makefile.in (dirstate, VCSWITNESS): New macros.
(src): Use them to lessen 'make' chatter.
2015-01-03 18:54:33 -08:00
Paul Eggert
cd2d58c1c8 Less 'make' chatter in batch mode
* admin/unidata/unidata-gen.el (unidata-gen-files):
* lisp/emacs-lisp/autoload.el (autoload-generate-file-autoloads):
* lisp/emacs-lisp/bytecomp.el (byte-compile-file):
* lisp/files.el (save-buffer, basic-save-buffer):
* lisp/international/quail.el (quail-update-leim-list-file):
Don't output messages like "Generating ..." in batch mode.
2015-01-03 18:29:23 -08:00
Paul Eggert
d20f82e6f1 batch write-region no longer says "Wrote FOO"
This cuts down on 'make' chatter a bit.
* doc/lispref/files.texi (Writing to Files):
* etc/NEWS: Document this.
* src/fileio.c (Fwrite_region):
Don't output "Wrote /whatever/foo.elc" if noninteractive.
2015-01-03 17:49:15 -08:00
Dmitry Gutov
d94007484a Unbreak `mouse-action' property in text buttons
* lisp/button.el (push-button): Fix regression from 2012-12-06.
2015-01-04 03:24:53 +03:00
Paul Eggert
5395106b0e Revert previous change to produce_composite_glyph
* term.c (produce_composite_glyph): Revert previous change (Bug#19496).
2015-01-03 14:37:32 -08:00
Dmitry Gutov
8bef7b6ad1 Only show "Back" when the marker stack is non-empty
* lisp/menu-bar.el (menu-bar-goto-menu): Use it.

* lisp/progmodes/xref.el (xref-marker-stack-empty-p): New function.
2015-01-03 23:10:36 +02:00
Dmitry Gutov
5496236583 Don't remap next-line' and previous-line' in xref keymap
* lisp/progmodes/xref.el (xref--window-configuration): New variable.
(xref-show-location-at-point): New command.
(xref--restore-window-configuration): New function.
(xref-next-line, xref-prev-line): Delegate to
`xref-show-location-at-point'.
(xref--location-at-point): Don't signal the error.
(xref-goto-xref): Do that here instead.
(xref--xref-buffer-mode): Add `xref--restore-window-configuration'
to `pre-command-hook'.
(xref--xref-buffer-mode-map): Don't remap `next-line' and
`previous-line'.  Additionally bind `xref-next-line' and
`xref-prev-line' to `n' and `p' respectively.  Bind
`xref-show-location-at-point' to `C-o'.
2015-01-03 23:10:36 +02:00
Paul Eggert
c6e9f7838a Pacify gcc -Wparentheses
* frame.c (x_set_frame_parameters): Add parens (Bug#19428).
2015-01-03 12:19:25 -08:00
Martin Rudalics
8c38c2b77a Two fixes for setting up sizes of a new frame (Bug#19428).
* frame.c (x_set_frame_parameters): Call Fset_frame_size only if
f->can_x_set_window_size is true.
* xterm.c (x_set_window_size_1): Call change_frame_size with
text sizes instead of pixel sizes (Bug#19428).
2015-01-03 17:40:40 +01:00
Glenn Morris
11ee7d8bf1 ChangeLog fixes 2015-01-02 11:52:03 -08:00