Kenichi Handa [Sat, 19 Jul 2014 15:18:23 +0000 (00:18 +0900)]
2014-07-19 Kenichi Handa <handa@gnu.org>
* xfaces.c (realize_x_face): Call font_load_for_lface with no
mandatory font spec (Bug#17973).
2014-07-19 Stefan Monnier <monnier@iro.umontreal.ca>
* font.c (font_score): Return the worst score if the size of
ENTITY is wrong by more than a factor 2 (Bug#17973).
Stefan Monnier [Sat, 19 Jul 2014 01:43:29 +0000 (21:43 -0400)]
* lisp/rect.el (rectangle--string-preview): Don't assume there
a non-nil default.
Fixes: debbugs:17984
Dmitry Antipov [Fri, 18 Jul 2014 11:04:37 +0000 (15:04 +0400)]
Prefer 'x_display_info *' to 'Display *' in X selection code.
This helps to avoid unneeded calls to x_display_info_for_display.
* xterm.h (struct selection_input_event): Record 'x_display_info *'
instead of 'Display *'.
(SELECTION_EVENT_DPYINFO): New macro.
(SELECTION_EVENT_DISPLAY): Now inline function to prohibit using
it as an lvalue. Mention this in comment.
* xterm.c (handle_one_xevent): Use SELECTION_EVENT_DPYINFO.
* xselect.c (x_get_window_property_as_lisp_data, x_atom_to_symbol)
(selection_data_to_lisp_data, receive_incremental_selection):
Convert to use 'x_display_info *'. Adjust users where appropriate.
(lisp_data_to_selection_data): Likewise. Also pass 'struct
selection data *' as last arg to not return values in args.
(unexpect_property_change): Use common removal technique.
Albert Krewinkel [Fri, 18 Jul 2014 08:23:49 +0000 (08:23 +0000)]
* lisp/gnus/gnus-msg.el (gnus-configure-posting-style):
Allow string replacements in values when matching against a header.
* doc/misc/gnus.texi (Posting Styles): Document the possibility to
perform string replacements when matching against headers.
Dmitry Antipov [Fri, 18 Jul 2014 06:02:19 +0000 (10:02 +0400)]
* frame.c (frame_unspecified_color): New function
refactored out from ...
(Fframe_parameters, Fframe_parameter): ... adjusted users.
(x_fullscreen_adjust, set_frame_param): Move Windows-specific
function to ...
* w32term.c (x_fullscreen_adjust, set_frame_param): ... static here.
* frame.h (x_fullscreen_adjust) [HAVE_NTGUI]:
* lisp.h (set_frame_param): Remove prototype.
* xterm.c (x_display_pixel_width, x_display_pixel_height): Now ...
* xterm.h (x_display_pixel_width, x_display_pixel_height): ...
inlined from here.
Dmitry Antipov [Thu, 17 Jul 2014 10:18:19 +0000 (14:18 +0400)]
* data.c (wrong_choice): Not static any more.
* lisp.h (wrong_choice): Add prototype.
* frame.h (struct frame) [USE_X_TOOLKIT || HAVE_NTGUI]:
Declare namebuf as such. Tweak comment.
[USE_GTK]: Likewise for tool_bar_position.
(fset_tool_bar_position) [USE_GTK]: Ditto.
(FRAME_TOOL_BAR_POSITION): New macro.
* frame.c (x_report_frame_params):
* gtkutil.c (update_frame_tool_bar):
* xfns.c (Fx_create_frame): Use it.
(x_set_tool_bar_position): Add meaningful diagnostic messages.
Dmitry Antipov [Thu, 17 Jul 2014 09:12:51 +0000 (13:12 +0400)]
* print.c (print_preprocess): Adjust to match changed
sub char-table structure and avoid crash (Bug#18038).
Glenn Morris [Wed, 16 Jul 2014 17:06:12 +0000 (13:06 -0400)]
Merge from emacs-24; up to 2014-06-23T06:25:47Z!rgm@gnu.org
Dmitry Antipov [Wed, 16 Jul 2014 15:39:15 +0000 (19:39 +0400)]
* frame.h (enum fullscreen_type) [HAVE_WINDOW_SYSTEM]: Use more natural
values. Add comment.
(struct frame): Re-arrange layout to avoid extra padding and use bit
fields for output_method, want_fullscreen and vertical_scroll_bar_type.
(FRAME_VERTICAL_SCROLL_BAR_TYPE, FRAME_HAS_VERTICAL_SCROLL_BARS)
(FRAME_HAS_VERTICAL_SCROLL_BARS_ON_LEFT)
(FRAME_HAS_VERTICAL_SCROLL_BARS_ON_RIGHT) [!HAVE_WINDOW_SYSTEM]:
Define as no-ops because there are no scroll bars anyway.
* frame.c (make_frame, make_terminal_frame, make_initial_frame):
Adjust users.
* font.c (fset_font_data) [HAVE_XFT || HAVE_FREETYPE]:
Add convenient setter.
(font_put_frame_data, font_get_frame_data): Use it.
Dmitry Antipov [Wed, 16 Jul 2014 08:45:22 +0000 (12:45 +0400)]
More precise control over values of some buffer-local variables.
* keyboard.c (Qvertical_scroll_bar):
* frame.c (Qleft, Qright): Move to ...
* buffer.c (Qleft, Qright, Qvertical_scroll_bar): ... here.
* buffer.c (Qchoice, Qrange, Qoverwrite_mode, Qfraction): New symbols.
(syms_of_buffer): DEFSYM all of the above, attach special properties.
Use special symbols to DEFVAR_PER_BUFFER overwrite-mode,
vertical-scroll-bar, scroll-up-aggressively
and scroll-down-aggressively.
* buffer.h (Qchoice, Qrange, Qleft, Qright, Qvertical_scroll_bar):
Add declarations.
* nsfns.m, frame.h (Qleft, Qright):
* nsterm.m (Qleft): Remove declarations.
* gtkutil.c (toplevel): Include buffer.h.
* data.c (wrong_choice, wrong_range): New functions.
(store_symval_forwarding): Handle special properties of buffer-local
variables and use functions from the above to signal error, if any.
Daiki Ueno [Wed, 16 Jul 2014 05:44:05 +0000 (14:44 +0900)]
Revert 2014-07-16T04:11:08Z!ueno@gnu.org and fix XCHAR2B_BYTE[12] in nsgui.h only
* nsgui.h (XCHAR2B_BYTE1): Add missing parentheses around
pointer argument, before dereferencing.
(XCHAR2B_BYTE2): Likewise.
Daiki Ueno [Wed, 16 Jul 2014 04:40:43 +0000 (13:40 +0900)]
Remove unnecessary ifdef from nsgui.h, introduced by my last commit
Daiki Ueno [Wed, 16 Jul 2014 04:31:31 +0000 (13:31 +0900)]
Move back the XChar2b definition to w32gui.h and nsgui.h
Fix the last change. XChar2b still needs to be defined platform dependently,
to match with the argument types of drawing functions.
Glenn Morris [Wed, 16 Jul 2014 04:28:42 +0000 (21:28 -0700)]
* lisp/desktop.el (after-init-hook): Disable startup frame restoration
in non-graphical situations.
Fixes: debbugs:17693
Daiki Ueno [Wed, 16 Jul 2014 04:11:08 +0000 (13:11 +0900)]
Consolidate XChar2b macros for the X, W32, and NS
Suggested by Jan Djärv in:
https://lists.gnu.org/archive/html/emacs-devel/2014-07/msg00203.html
* w32gui.h (XChar2b, STORE_XCHAR2B, XCHAR2B_BYTE1, XCHAR2B_BYTE2):
Move the fallback definitions to dispextern.h.
* nsgui.h (XChar2b, STORE_XCHAR2B, XCHAR2B_BYTE1, XCHAR2B_BYTE2):
Likewise. Share the same definition with W32.
* xterm.h (STORE_XCHAR2B, XCHAR2B_BYTE1, XCHAR2B_BYTE2): Move to ...
* dispextern.h (STORE_XCHAR2B, XCHAR2B_BYTE1, XCHAR2B_BYTE2):
... here for the consistency with W32 and NS.
Paul Eggert [Tue, 15 Jul 2014 19:28:25 +0000 (12:28 -0700)]
Use "b" flag more consistently; avoid "t".
* make-docfile.c (READ_TEXT): Remove; all uses replaced by "r".
(READ_BINARY): Remove; all uses replaced by "rb".
Fixes: debbugs:18006
Eli Zaretskii [Tue, 15 Jul 2014 16:11:33 +0000 (19:11 +0300)]
etc/TODO: Minor updates.
Alvar Jesus Ibeas Martin [Tue, 15 Jul 2014 16:06:49 +0000 (19:06 +0300)]
Fix bug #18025 with typos in Emacs Lisp Introduction manual.
doc/lispintro/emacs-lisp-intro.texi (Variables, Buffer Names, if & or)
(Symbols as Chest, fwd-para while): Fix typos.
Dmitry Antipov [Tue, 15 Jul 2014 14:04:06 +0000 (18:04 +0400)]
* regex.c (re_search_2): Use ssize_t to avoid integer overflow.
Dmitry Antipov [Tue, 15 Jul 2014 09:59:05 +0000 (13:59 +0400)]
* lwlib/lwlib.h (toplevel): Use unsigned int for LWLIB_ID.
* src/xmenu.c (toplevel): Use LWLIB_ID for next_menubar_widget_id.
(pop_down_menu) [USE_X_TOOLKIT]: Accept integer arg.
(create_and_show_popup_menu, create_and_show_dialog) [USE_X_TOOLKIT]:
Use record_unwind_protect_int and avoid consing.
(syms_of_xmenu) [USE_X_TOOLKIT]: Declare WIDGET_ID_TICK_START.
Daniel Colascione [Mon, 14 Jul 2014 23:58:52 +0000 (16:58 -0700)]
Unbreak compilation of derived cc-mode modes
* lisp/progmodes/cc-defs.el (c-lang-defconst-eval-immediately):
Use `macroexpand-all' instead of `cl-macroexpand-all'.
* lisp/progmodes/cc-langs.el: Change comments from `cl-macroexpand-all'
to `macroexpand-all'
Glenn Morris [Mon, 14 Jul 2014 19:29:29 +0000 (15:29 -0400)]
Tweak earlier vc-log-edit change
* lisp/vc/vc-dispatcher.el (vc-log-edit): Do set up the log buffer
if it was "empty", or used for a different set of files.
Fixes: debbugs:17884
Paul Eggert [Mon, 14 Jul 2014 19:23:18 +0000 (12:23 -0700)]
Use binary-io module, O_BINARY, and "b" flag.
* admin/merge-gnulib (GNULIB_MODULES): Add binary-io. It was already
present implicitly; this just makes the dependence explicit.
* lib-src/etags.c, lib-src/hexl.c, lib-src/make-docfile.c:
Include binary-io.h instead of fcntl.h and/or io.h.
(main): Use set_binary_mode or SET_BINARY
in place of handcrafted code.
* lib-src/etags.c (main) [DOS_NT]:
* lib-src/movemail.c (main) [WINDOWSNT]:
Don't mess with _fmode.
* lib-src/etags.c (main, process_file_name, analyse_regex):
Use fopen/popen's "b" flag instead.
* lib-src/movemail.c (main, popmail): Use open/lk_open/mkostemp's O_BINARY
instead.
* src/callproc.c (create_temp_file): Use mkostemp's O_BINARY flag.
* src/emacs.c [MSDOS]:
* src/emacs.c (main) [DOS_NT]: Don't mess with _fmode.
(main) [MSDOS]: Use SET_BINARY instead of setmode.
* src/minibuf.c: Include binary-io.h instead of fcntl.h.
(read_minibuf_noninteractive):
Use set_binary_mode instead of handcrafted code.
Don't call emacs_set_tty if emacs_get_tty failed.
* src/sysdep.c, src/systty.h (emacs_get_tty): Return int, not void.
* src/sysdep.c (emacs_open, emacs_pipe): Use O_BINARY.
* src/w32.c (pipe2): Adjust eassert to include O_BINARY.
Fixes: debbugs:18006
Paul Eggert [Mon, 14 Jul 2014 19:07:54 +0000 (12:07 -0700)]
* macros.c (Fstart_kbd_macro): Avoid need for overflow check.
Paul Eggert [Mon, 14 Jul 2014 18:56:35 +0000 (11:56 -0700)]
* macros.c (Fstart_kbd_macro): Simplify.
This works around a GCC compiler bug when Emacs is configured with
--enable-gcc-warnings.
Eli Zaretskii [Mon, 14 Jul 2014 15:10:20 +0000 (18:10 +0300)]
src/ChangeLog: Fix a typo in a recently added entry.
Dmitry Antipov [Mon, 14 Jul 2014 15:06:52 +0000 (19:06 +0400)]
* term.c (tty_menu_add_pane, tty_menu_add_selection):
Use menu_item_width.
(tty_menu_show): Simplify because ty_menu_create never return NULL.
Dmitry Antipov [Mon, 14 Jul 2014 04:44:01 +0000 (08:44 +0400)]
* lisp.h (CHECK_VECTOR_OR_STRING): Return number of elements
or characters in string, respectively. Add comment.
* fringe.c (Fdefine_fringe_bitmap):
* fns.c (Fsubstring, substring_both): Use it.
* keymap.c (Fdefine_key, Flookup_key):
* macros.c (Fstart_kbd_macro): Likewise. Avoid call to Flength.
Paul Eggert [Mon, 14 Jul 2014 00:45:19 +0000 (17:45 -0700)]
* make-docfile.c: Simplify a bit, to simplify further refactoring.
(outfile): Remove static var. All uses changed to use stdout,
since it's always stdout anyway. While we're at it, prefer
putchar/puts/fputs to printf when there are no format strings.
(main): Use freopen rather than fopen, so that stdout is reused.
Move O_BINARY stuff after the freopen, so it affects the
reopened file.
(write_c_args): Omit first arg, since it's always stdout now.
All uses changed.
Paul Eggert [Sun, 13 Jul 2014 15:50:35 +0000 (08:50 -0700)]
Improve behavior of 'bzr up; cd src; make -k'.
* Makefile.in (ACLOCAL_INPUTS): Add all m4/*.m4 files.
* src/Makefile.in (top_srcdir): New var.
(ntsource, lispsource, ALL_CFLAGS, gl-stamp, emacs.res):
Use '$(top_srcdir)' instead of '$(srcdir)/..';
its expansion is a bit shorter.
(../config.status): Actually build config.status instead of
just complaining.
(ACLOCAL_INPUTS, AUTOCONF_INPUTS):
New macros, copied and relocated from ../Makefile.in.
($(top_srcdir)/aclocal.m4, $(top_srcdir)/configure, config.in)
(../config.status, Makefile): New dependencies and rules,
copied with relocation from ../Makefile.in. This should be more
likely to rebuild the build machinery properly if you do a 'make'
in the src directory.
Eli Zaretskii [Sun, 13 Jul 2014 14:49:59 +0000 (17:49 +0300)]
Fix bug #17986 with infloop in redisplay when default-directory is nil.
src/xdisp.c (decode_mode_spec): Call file-remote-p on the current
buffer's default-directory only if it is a string.
lisp/bindings.el (mode-line-remote): If default-directory is not a
string, don't call file-remote-p on it; instead state in the
help-echo that it is nil.
Paul Eggert [Sat, 12 Jul 2014 20:02:44 +0000 (13:02 -0700)]
Merge from gnulib, incorporating:
2014-06-27 mktime: merge #if/#ifdef usage from glibc
* lib/mktime.c: Update from gnulib.
Glenn Morris [Sat, 12 Jul 2014 17:53:29 +0000 (10:53 -0700)]
Merge from emacs-24; up to 2014-06-22T05:00:14Z!dmantipov@yandex.ru
Paul Eggert [Sat, 12 Jul 2014 16:26:54 +0000 (09:26 -0700)]
* etags.c (Lisp_functions): Also record cl-defun etc.
Fixes: debbugs:17965
Eli Zaretskii [Sat, 12 Jul 2014 10:29:13 +0000 (13:29 +0300)]
Attempt to fix bug #17962 with SIGSEGV in display_line.
src/xdisp.c (display_line): Don't call FETCH_BYTE with argument less than 1.
Eli Zaretskii [Sat, 12 Jul 2014 09:25:29 +0000 (12:25 +0300)]
Document the behavior of file selection dialogs on Windows 7 (bug #17950).
etc/PROBLEMS: Mention the problem from bug #17950.
src/w32fns.c (Fx_file_dialog): Mention in the doc string the
behavior on Windows 7 and later when the function is repeatedly
invoked with the same value of DIR.
src/xfns.c (Fx_file_dialog) [USE_MOTIF, USE_GTK]: Update the doc
string to match the one in w32fns.c.
Eli Zaretskii [Sat, 12 Jul 2014 09:08:41 +0000 (12:08 +0300)]
etc/PROBLEMS: Update problems specific to MS-Windows.
Eli Zaretskii [Sat, 12 Jul 2014 07:47:40 +0000 (10:47 +0300)]
Minor fix for read_minibuf_noninteractive on MS-Windows.
src/minibuf.c (read_minibuf_noninteractive) [WINDOWSNT]: Switch
stdin to binary mode only if it is connected to a terminal.
Fixes: debbugs:17839
Dmitry Antipov [Sat, 12 Jul 2014 04:06:32 +0000 (08:06 +0400)]
* XMenuInt.h (XDeleteAssoc): Remove duplicated prototype to
pacify -Wredundant-decls.
Paul Eggert [Sat, 12 Jul 2014 02:24:02 +0000 (19:24 -0700)]
Fix bug: C-x v v discarded existing log message.
* lisp/vc/vc-dispatcher.el (vc-log-edit):
Don't clobber an already-existing log message.
Fixes: debbugs:17884
Paul Eggert [Fri, 11 Jul 2014 17:55:24 +0000 (10:55 -0700)]
Coalesce extern decls.
* minibuf.c (emacs_get_tty, emacs_set_tty, suppress_echo_on_tty):
* sysdep.c (emacs_get_tty, emacs_set_tty):
Move duplicate extern decls from here ...
* systty.h: ... to here, so that there's just one copy.
Paul Eggert [Fri, 11 Jul 2014 17:28:53 +0000 (10:28 -0700)]
* Makefile.in (install-arch-indep): Avoid readdir race.
Fixes: debbugs:17971
Jan Djärv [Fri, 11 Jul 2014 16:33:17 +0000 (18:33 +0200)]
Add ifdef NS_IMPL_COCOA aound OSX version check (for clang)
* nsfns.m (Fns_popup_font_panel): Ditto.
* nsterm.m (changeFont:): Add ifdef NS_IMPL_COCOA.
Eli Zaretskii [Fri, 11 Jul 2014 15:44:25 +0000 (18:44 +0300)]
Fix reading input without echoing on MS-Windows.
src/minibuf.c (read_minibuf_noninteractive) [WINDOWSNT]: Switch stdin
to binary mode when not echoing input.
Fixes: debbugs:17839
Eli Zaretskii [Fri, 11 Jul 2014 13:58:02 +0000 (16:58 +0300)]
Implement echo suppression in non-interactive mode for MS-Windows.
src/minibuf.c (read_minibuf_noninteractive): Finish reading on '\r',
not only on '\n'.
src/sysdep.c (emacs_get_tty, emacs_set_tty, suppress_echo_on_tty)
[DOS_NT]: Implement for WINDOWSNT.
src/systty.h (struct emacs_tty) [DOS_NT]: The struct member is now
unsigned.
Fixes: debbugs:17839
Eli Zaretskii [Fri, 11 Jul 2014 12:49:49 +0000 (15:49 +0300)]
doc/lispref/internals.texi (Garbage Collection): Fix last change.
Michael Albinus [Fri, 11 Jul 2014 12:35:23 +0000 (14:35 +0200)]
* sysdep.c (suppress_echo_on_tty): New function.
* minibuf.c (read_minibuf_noninteractive): Use it.
Dmitry Antipov [Fri, 11 Jul 2014 12:19:58 +0000 (16:19 +0400)]
* src/alloc.c (Fmemory_info) [HAVE_LINUX_SYSINFO]: Return nil if
sysinfo failed. Adjust docstring.
* doc/lispref/internals.texi (Garbage Collection): Mention memory-info.
* lisp/files.el (out-of-memory-warning-percentage): New defcustom.
(warn-maybe-out-of-memory): Use it.
Eli Zaretskii [Fri, 11 Jul 2014 10:09:51 +0000 (13:09 +0300)]
Implement memory-info for MS-DOS.
src/dosfns.c (dos_memory_info): New function.
src/dosfns.h (dos_memory_info): Add prototype.
src/alloc.c (Fmemory_info) [MSDOS]: Call dos_memory_info.
src/vm-limit.c (get_lim_data) [MSDOS]: Call dos_memory_info, instead
of doing some of its job.
Eli Zaretskii [Fri, 11 Jul 2014 09:56:58 +0000 (12:56 +0300)]
Temporary fix for the MS-Windows build broken by last commit.
src/minibuf.c (read_minibuf_noninteractive) [WINDOWSNT]: Don't
reference termios structure members.
Fixes: debbugs:17839
Michael Albinus [Fri, 11 Jul 2014 09:33:06 +0000 (11:33 +0200)]
* NEWS: Passwords in batch mode are hidden.
Michael Albinus [Fri, 11 Jul 2014 09:09:54 +0000 (11:09 +0200)]
Hide password in batch mode
* doc/lispref/minibuf.texi (Intro to Minibuffers, Reading a Password):
Password hiding is available in batch mode, do not mention it in
the exclusion list. Mention `read-hide-char'.
* lisp/subr.el (read-passwd): Use `read-hide-char' if non-nil. Bind it
when calling `read-string'.
* src/minibuf.c (top): Include systty.h. Declare external
emacs_get_tty and emacs_set_tty.
(Vread_hide_char): New lisp variable.
(read_minibuf_noninteractive): Hide characters with
Vread_hide_char if it is a character.
* src/sysdep.c (emacs_get_tty, emacs_set_tty): Make them externally visible.
Fixes: debbugs:17839
Eli Zaretskii [Thu, 10 Jul 2014 19:09:26 +0000 (22:09 +0300)]
Implement memory-info for MS-Windows.
src/w32.c (w32_memory_info): New function.
src/w32.h (w32_memory_info): Prototype it.
src/alloc.c (Fmemory_info) [WINDOWSNT]: Call it.
Eli Zaretskii [Thu, 10 Jul 2014 18:19:37 +0000 (21:19 +0300)]
lisp/files.el (warn-maybe-out-of-memory): Fix the wording of the warning.
Glenn Morris [Thu, 10 Jul 2014 18:09:04 +0000 (14:09 -0400)]
Tweak previous log-edit-changelog-entries change
* lisp/vc/log-edit.el (log-edit-changelog-entries):
Check for a visited-but-never-saved ChangeLog.
Dmitry Antipov [Thu, 10 Jul 2014 13:00:45 +0000 (17:00 +0400)]
* files.el (warn-maybe-out-of-memory): Fix last change.
Dmitry Antipov [Thu, 10 Jul 2014 12:33:35 +0000 (16:33 +0400)]
* configure.ac: Check whether sys/sysinfo.h provides
Linux 'sysinfo' function and 'struct sysinfo' type.
* src/alloc.c (Fmemory_info): New function.
* lisp/files.el (warn-maybe-out-of-memory): New function.
(find-file-noselect): Use it.
Dmitry Antipov [Thu, 10 Jul 2014 04:35:55 +0000 (08:35 +0400)]
* coding.h (struct coding_system): Remove 'error_positions' (unused)
and 'errors' (set but unused) fields. Use bitfields for 'eol_seen',
'mode', 'common_flags' and 'result' fields, adjust layout to avoid
extra padding and shrink struct coding_system by 56 bytes (x86_64).
* coding.c (decode_coding_utf_8, decode_coding_utf_16)
(decode_coding_emacs_mule, decode_coding_iso_2022, decode_coding_sjis)
(decode_coding_big5, decode_coding_charset, decode_coding)
(encode_coding): Adjust users.
Paul Eggert [Wed, 9 Jul 2014 23:39:58 +0000 (16:39 -0700)]
* syntax.c (back_comment): Use more-natural location for label.
Paul Eggert [Wed, 9 Jul 2014 23:35:31 +0000 (16:35 -0700)]
* font.c, font.h (font_unparse_fcname): Now static.
Define only if HAVE_XFT || HAVE_FREETYPE || HAVE_NS.
Stefan Monnier [Wed, 9 Jul 2014 18:54:06 +0000 (14:54 -0400)]
* lisp/vc/log-edit.el (log-edit-changelog-entries): Don't both visiting
a non-existing file.
Fixes: debbugs:17970
Stefan Monnier [Wed, 9 Jul 2014 18:46:33 +0000 (14:46 -0400)]
* lisp/faces.el (face-name): Undo last change.
(x-resolve-font-name): Don't call face-name.
Fixes: debbugs:17956
Sam Steingold [Wed, 9 Jul 2014 14:51:52 +0000 (10:51 -0400)]
Treat the perl keyword `constant' like `bless', `return' &c
* lisp/progmodes/cperl-mode.el (cperl-block-p): Tread the perl keyword
`constant' like `bless', `return' &c
Dmitry Antipov [Wed, 9 Jul 2014 10:36:35 +0000 (14:36 +0400)]
* coding.c (ALLOC_CONVERSION_WORK_AREA): Prefer ptrdiff_t to int and
so avoid integer overflow if decoded gap size exceeds INT_MAX bytes.
Dmitry Antipov [Wed, 9 Jul 2014 06:25:35 +0000 (10:25 +0400)]
Next minor cleanup of font subsystem.
* font.h (enum font_property_index): Remove FONT_ENTITY_INDEX (no
users) and FONT_FORMAT_INDEX (set by a few font drivers but never
really used).
(FONT_ENTITY_NOT_LOADABLE, FONT_ENTITY_SET_NOT_LOADABLE): Remove;
unused.
* ftfont.h (ftfont_font_format): Remove prototype.
* ftfont.c (ftfont_font_format): Remove; now unused.
(ftfont_open):
* nsfont.m (nsfont_open):
* w32font.c (w32font_open_internal):
* w32uniscribe.c (uniscribe_open):
* xfont.c (xfont_open):
* xftfont.c (xftfont_open): All users changed.
Fabián Ezequiel Gallina [Wed, 9 Jul 2014 03:55:53 +0000 (00:55 -0300)]
Fix dedenters and electric colon handling.
* lisp/progmodes/python.el
(python-rx-constituents): Add dedenter and block-ender.
(python-indent-dedenters, python-indent-block-enders): Delete.
(python-indent-context): Return new case for dedenter-statement.
(python-indent-calculate-indentation): Handle new case.
(python-indent-calculate-levels): Fix levels calculation for
dedenter statements.
(python-indent-post-self-insert-function): Fix colon handling.
(python-info-dedenter-opening-block-message): New function.
(python-indent-line): Use it.
(python-info-closing-block)
(python-info-closing-block-message): Remove.
(python-info-dedenter-opening-block-position)
(python-info-dedenter-opening-block-positions)
(python-info-dedenter-statement-p): New functions.
* test/automated/python-tests.el
(python-indent-block-enders-1)
(python-indent-block-enders-2): Fix tests.
(python-indent-block-enders-3)
(python-indent-block-enders-4)
(python-indent-block-enders-5)
(python-indent-dedenters-1)
(python-indent-dedenters-2): Remove tests.
(python-indent-dedenters-1)
(python-indent-dedenters-2)
(python-indent-dedenters-3)
(python-indent-dedenters-4)
(python-indent-dedenters-5)
(python-indent-dedenters-6)
(python-indent-dedenters-7)
(python-info-dedenter-opening-block-position-1)
(python-info-dedenter-opening-block-position-2)
(python-info-dedenter-opening-block-position-3)
(python-info-dedenter-opening-block-positions-1)
(python-info-dedenter-opening-block-positions-2)
(python-info-dedenter-opening-block-positions-3)
(python-info-dedenter-opening-block-positions-4)
(python-info-dedenter-opening-block-positions-5)
(python-info-dedenter-opening-block-message-1)
(python-info-dedenter-opening-block-message-2)
(python-info-dedenter-opening-block-message-3)
(python-info-dedenter-opening-block-message-4)
(python-info-dedenter-opening-block-message-5)
(python-info-dedenter-statement-p-1)
(python-info-dedenter-statement-p-2)
(python-info-dedenter-statement-p-3)
(python-info-dedenter-statement-p-4)
(python-info-dedenter-statement-p-5): New tests.
Fixes: debbugs:15163
Stefan Monnier [Wed, 9 Jul 2014 02:20:21 +0000 (22:20 -0400)]
* lisp/rect.el (apply-on-rectangle): Check forward-line really moved to the
next line.
Glenn Morris [Wed, 9 Jul 2014 02:04:12 +0000 (19:04 -0700)]
Merge from emacs-24; up to 2014-06-19T14:03:45Z!monnier@iro.umontreal.ca
Stefan Monnier [Tue, 8 Jul 2014 19:45:24 +0000 (15:45 -0400)]
* lisp/erc/erc.el (erc-channel-receive-names): Reduce redundancy.
Stefan Monnier [Tue, 8 Jul 2014 19:33:37 +0000 (15:33 -0400)]
* lisp/linum.el (linum--face-height): New function.
(linum-update-window): Use it to adjust margin to linum's width.
Fixes: debbugs:17813
Stefan Monnier [Tue, 8 Jul 2014 19:15:28 +0000 (15:15 -0400)]
* lisp/leim/quail/sisheng.el (sisheng-list): Don't bother with-case-table.
* lisp/eshell/em-smart.el (eshell-smart-scroll-window): Use
with-selected-window.
Stefan Monnier [Tue, 8 Jul 2014 18:47:47 +0000 (14:47 -0400)]
* lisp/xt-mouse.el (xterm-mouse-translate-1): Intern drag event.
Remove also pointless window&mark manipulation.
Fixes: debbugs:17894
Stefan Monnier [Tue, 8 Jul 2014 18:38:07 +0000 (14:38 -0400)]
* lisp/progmodes/sh-script.el (sh-smie-sh-rules): Don't align with a && in
the middle of a line.
Fixes: debbugs:17896
Stefan Monnier [Tue, 8 Jul 2014 18:24:39 +0000 (14:24 -0400)]
* doc/lispref/debugging.texi (Function Debugging, Debugger Commands):
Update debug-on-entry w.r.t behavior after redefinitions.
Fixes: debbugs:17902
Paul Eggert [Tue, 8 Jul 2014 17:13:32 +0000 (10:13 -0700)]
* process.c (read_and_dispose_of_process_output): Fix typo
in previous patch: we want nonnegative fds, not nonzero fds.
Stefan Monnier [Tue, 8 Jul 2014 16:51:35 +0000 (12:51 -0400)]
* lisp/progmodes/perl-mode.el: Use syntax-ppss; fix one indentation case.
(perl-indent-line): Use syntax-ppss to detect we're in a doc-section.
(perl-continuation-line-p): Don't skip over anything else than labels.
Return the previous char.
(perl-calculate-indent): Use syntax-ppss instead of parse-start
and update callers accordingly. For continuation lines, check the
the case of array hashes.
(perl-backward-to-noncomment): Make it non-interactive.
(perl-backward-to-start-of-continued-exp): Rewrite.
* test/indent/perl.perl: Add indentation pattern for hash-table entries.
Sam Steingold [Tue, 8 Jul 2014 15:35:29 +0000 (11:35 -0400)]
New user commands, similar to what is available in ESS
* lisp/progmodes/inf-lisp.el (lisp-eval-paragraph, lisp-eval-form-and-next):
New user commands.
Eli Zaretskii [Tue, 8 Jul 2014 15:12:39 +0000 (18:12 +0300)]
Fix bug #17969 with vertical-motion through continuation lines with TABs.
src/xdisp.c (move_it_to): Adjust calculation of line_start_x to what
x_produce_glyphs does when it generates a stretch glyph that
represents a TAB.
Dmitry Antipov [Tue, 8 Jul 2014 14:50:45 +0000 (18:50 +0400)]
* font.c (font_build_object) [HAVE_XFT || HAVE_FREETYPE || HAVE_NS]:
New function, with an intention to avoid code duplication between
a few font drivers.
* font.h (font_build_object) [HAVE_XFT || HAVE_FREETYPE || HAVE_NS]:
Add prototype.
* ftfont.c (ftfont_open):
* macfont.m (macfont_open):
* xftfont.c (xftfont_open): Use it.
Dmitry Antipov [Tue, 8 Jul 2014 14:19:34 +0000 (18:19 +0400)]
* nsfont.m (nsfont_close): Free glyphs and metrics arrays as well.
Juri Linkov [Tue, 8 Jul 2014 09:17:09 +0000 (12:17 +0300)]
* lisp/startup.el (command-line): Append displaying the warning about
the errors in the init file to the end of `after-init-hook'.
Fixes: debbugs:17927
Juri Linkov [Tue, 8 Jul 2014 09:03:23 +0000 (12:03 +0300)]
* lisp/faces.el (face-name): Return input arg `face' as is
when it's not a symbol.
(x-resolve-font-name): Don't check if the face is a symbol.
Fixes: debbugs:17956
Juri Linkov [Tue, 8 Jul 2014 08:55:00 +0000 (11:55 +0300)]
* lisp/facemenu.el (list-colors-print): In help-echo format use %.2f
instead of %d because now HSV values are floating-point components
between 0.0 and 1.0.
Juri Linkov [Tue, 8 Jul 2014 08:49:18 +0000 (11:49 +0300)]
* lisp/vc/vc-annotate.el (vc-annotate-background-mode): New defcustom.
(vc-annotate-color-map): Use less saturated colors (20%) for
background-mode.
(vc-annotate-very-old-color): Add default value for background-mode.
(vc-annotate-background): Set default value to nil since now text on
the default backgrounds should be legible in light and dark modes.
(vc-annotate-lines): Use `vc-annotate-background-mode'. Doc fix.
Fixes: debbugs:17808
Juri Linkov [Tue, 8 Jul 2014 08:27:46 +0000 (11:27 +0300)]
* lisp/simple.el (transpose-chars): Don't move point into read-only area.
Fixes: debbugs:17829
Juri Linkov [Tue, 8 Jul 2014 08:02:50 +0000 (11:02 +0300)]
* lisp/window.el (with-displayed-buffer-window): New macro.
(with-temp-buffer-window, with-current-buffer-window):
Use `macroexp-let2' to evaluate and bind variables
in the same order as macro arguments.
(display-buffer--action-function-custom-type): Add
`display-buffer-below-selected' and `display-buffer-at-bottom'.
* lisp/minibuffer.el (minibuffer-completion-help): Replace
`with-output-to-temp-buffer' with `with-displayed-buffer-window'
with actions that display *Completions* at-bottom when called
from the minibuffer, or below-selected in a normal buffer.
Associate `window-height' with `fit-window-to-buffer'.
Let-bind `pop-up-windows' to nil.
* lisp/dired.el (dired-mark-pop-up): Use `with-displayed-buffer-window'
instead of `with-current-buffer-window'.
Fixes: debbugs:17809
Dmitry Antipov [Tue, 8 Jul 2014 07:17:04 +0000 (11:17 +0400)]
* chartab.c (char_table_translate): Move to...
* character.h (char_table_translate): ... inline function here.
Avoid Faref and assume that args are always valid. This helps to
speedup search, which is especially important for a huge buffers.
* lisp.h (char_table_translate): Remove prototype.
Paul Eggert [Tue, 8 Jul 2014 06:24:07 +0000 (23:24 -0700)]
* process.c: Add sanity checks for file descriptors.
(wait_reading_process_output, Fprocess_filter_multibyte_p):
Check that infd is nonnegative before using it as an fd.
(read_and_dispose_of_process_output, Fprocess_send_eof):
Likewise, for outfd.
(wait_reading_process_output): Omit unnecessary check of infd.
Fixes: debbugs:17844
Luke Lee [Tue, 8 Jul 2014 01:52:48 +0000 (09:52 +0800)]
ChangeLog fix: correcting file path.
Paul Eggert [Mon, 7 Jul 2014 23:33:05 +0000 (16:33 -0700)]
Minor fixups related to usage of the 'long' type.
* gnutls.c (emacs_gnutls_handshake):
* xfaces.c (dump_realized_face):
Work even if 'long' is narrower than 'void *'.
* termcap.c (scan_file):
* xselect.c (x_decline_selection_request)
(x_reply_selection_request, x_get_window_property):
* xterm.c (x_set_frame_alpha):
Remove unnecessary 'L' suffixes of integer constants.
* xfns.c (hack_wm_protocols):
* xselect.c (x_fill_property_data):
* xterm.c (x_set_offset, x_set_window_size_1, x_make_frame_invisible):
Remove unnecessary casts to 'long'.
(set_machine_and_pid_properties): Don't assume pid_t fits in 32 bits.
Paul Eggert [Mon, 7 Jul 2014 23:25:13 +0000 (16:25 -0700)]
Minor ImageMagick safety fixes.
* image.c (imagemagick_compute_animated_image):
Remove useless assignment to local. Avoid problems if dest_width is 0.
(imagemagick_load_image): Use int for pixel counts that can't
exceed INT_MAX. Avoid problem if PixelGetNextIteratorRow returns
a row width greater than the image width (or greater than LONG_MAX!).
Luke Lee [Mon, 7 Jul 2014 08:59:32 +0000 (16:59 +0800)]
HideIfDef mode bug fixes and enhancements. This is #3 of 3 patches based
on the completed work posted on http://www.emacswiki.org/emacs/HideIfDef.
- Add macro evaluation function and key binding for a marked region.
- Merge continuous "..." lines into one.
- Fix old hideif bugs that fail to hide the correct #elif regions
- Support hide/show commands in a marked region.
- Expand top level for .h files to prevent re-inclusion protection.
- Change maintainer.
* lisp/progmodes/hideif.el (hide-ifdef-env): Change to global.
(hide-ifdef-env-backup): New variable.
(hide-ifdef-expand-reinclusion-protection, hide-ifdef-header-regexp):
New customizable variables.
(hif-clear-all-ifdef-defined): New defun.
(hif-merge-ifdef-region, hide-ifdef-region-internal, hide-ifdef-region)
(hif-show-ifdef-region): Merge hidden regions to prevent continuous "...".
(hif-tokenize): Fix for MS-DOS/Win EOL style.
(hif-endif-to-ifdef, hif-make-range, hif-find-range, hif-possibly-hide):
Fix bug to hide the correct #elif region(s).
(hif-range-elif): New defun.
(hif-recurse-level): New var.
(hif-evaluate-region, hif-evaluate-macro): New defun.
(hide-ifdef-guts): Prevent reinclusion protected C/C++ headers from
fully hidden.
(hide-ifdef-define, hide-ifdefs, hide-ifdef-block, show-ifdef-block):
Better interaction.
Katsumi Yamaoka [Mon, 7 Jul 2014 05:47:59 +0000 (05:47 +0000)]
lisp/gnus/gnus-start.el (gnus-dribble-read-file): Don't stop auto-saving
Glenn Morris [Sun, 6 Jul 2014 23:58:52 +0000 (16:58 -0700)]
* cua-rect.el (cua--activate-rectangle): Avoid setting cua--rectangle to nil.
Fixes: debbugs:17877
Stephen Berman [Sun, 6 Jul 2014 20:28:38 +0000 (22:28 +0200)]
* calendar/todo-mode.el: Fix wrong-type-argument error when
marking multiple consecutive items.
(todo-toggle-mark-item): Don't try to mark the empty lines at the
end of the todo and done items sections. Note in doc string that
items marked by passing a numeric prefix argument can include the
last todo and first done items.
(todo-mark-category): Don't try to mark the empty line between the
todo and done items sections.
Stefan Monnier [Sat, 5 Jul 2014 19:11:59 +0000 (15:11 -0400)]
* lisp/emacs-lisp/edebug.el (edebug-eval-defun): Print result using
proper Lisp quoting.
Fixes: debbugs:17934
Stefan Monnier [Sat, 5 Jul 2014 18:37:45 +0000 (14:37 -0400)]
* lisp/progmodes/ruby-mode.el (ruby-mode-variables): Don't meddle with
require-final-newline since prog-mode already took care of it.
Fixes: debbugs:17947
Kenichi Handa [Sat, 5 Jul 2014 14:07:57 +0000 (23:07 +0900)]
merge trunk
Eli Zaretskii [Sat, 5 Jul 2014 10:24:11 +0000 (13:24 +0300)]
src/xdisp.c (pos_visible_p): Fix inaccurate comment.
Eli Zaretskii [Sat, 5 Jul 2014 09:53:50 +0000 (12:53 +0300)]
Fix bug #17944 with pos-visible-in-window-p when there's image at window start.
src/xdisp.c (pos_visible_p): Fix condition for finding CHARPOS by the
first call to move_it_to.