bpt/emacs.git
10 years agoMerge from gnulib, incorporating:
Paul Eggert [Tue, 17 Dec 2013 20:43:43 +0000 (12:43 -0800)]
Merge from gnulib, incorporating:

2013-12-17 gettimeofday: port recent C++ fix to Emacs
2013-12-17 gettimeofday: fix C++ crosscompilation
2013-12-17 qacl: port to Windows better
* lib/file-has-acl.c, lib/time.in.h, m4/gettimeofday.m4, m4/time_h.m4:
Update from gnulib.
* lib/gnulib.mk: Regenerate.

10 years ago* lisp/window.el (window--pixel-to-total): Remove unused `mini' var.
Stefan Monnier [Tue, 17 Dec 2013 18:11:37 +0000 (13:11 -0500)]
* lisp/window.el (window--pixel-to-total): Remove unused `mini' var.
(maximize-window, minimize-window): Remove unused `pixelwise' arg.
(split-window): Remove unused `new' var.
(window--display-buffer): Remove unused `frame' and `delta' vars.
(fit-window-to-buffer): Remove unused vars `frame', `display-height',
and display-width'.

10 years agoFix minor problems in Windows emulation of getloadavg.
Eli Zaretskii [Tue, 17 Dec 2013 18:00:25 +0000 (20:00 +0200)]
Fix minor problems in Windows emulation of getloadavg.

 src/w32.c (getloadavg): Don't index samples[] array with negative
 indices.  Recover from wall-clock time being set backwards.

10 years agoFix some warnings in w32 specific code.
Eli Zaretskii [Tue, 17 Dec 2013 17:46:31 +0000 (19:46 +0200)]
Fix some warnings in w32 specific code.

 src/w32term.c (w32_initialize): Declare the argument of
 set_user_model as const.
 src/w32menu.c <MessageBoxW_Proc>: Fix argument declarations.
 (w32_menu_show): Constify some arguments passed to MessageBox.
 src/w32uniscribe.c (uniscribe_font_driver): Use LISP_INITIALLY_ZERO
 to initialize Lisp objects.
 src/w32font.c (w32font_driver): Use LISP_INITIALLY_ZERO to
 initialize Lisp objects.
 src/frame.c (x_set_frame_parameters) [HAVE_X_WINDOWS]: Declare and
 use variables used only on X under that condition.
 src/fileio.c (Fcopy_file) [!WINDOWSNT]: Don't declare on Windows
 variables not used there.

10 years agoRemove no more needed bindings of split-height-threshold.
Martin Rudalics [Tue, 17 Dec 2013 17:29:11 +0000 (18:29 +0100)]
Remove no more needed bindings of split-height-threshold.

* dired.el (dired-mark-pop-up):
* register.el (register-preview): Don't bind
split-height-threshold here since it's now done in
display-buffer-below-selected.

10 years agoFix 256 color mapping in rxvt.el
oblique [Tue, 17 Dec 2013 16:03:23 +0000 (00:03 +0800)]
Fix 256 color mapping in rxvt.el

* term/rxvt.el (rxvt-rgb-convert-to-16bit): Standardize with
xterm-rgb-convert-to-16bit.
(rxvt-register-default-colors): Standardize with
xterm-register-default-colors.

Fixes: debbugs:14078

10 years ago* killing.texi (Appending Kills): Note that append-next-kill can prepend the kill.
Chong Yidong [Tue, 17 Dec 2013 15:57:38 +0000 (23:57 +0800)]
* killing.texi (Appending Kills): Note that append-next-kill can prepend the kill.

10 years ago* simple.el (kill-region): Pass mark first then point, so kill-append works right.
Dima Kogan [Tue, 17 Dec 2013 15:48:26 +0000 (23:48 +0800)]
* simple.el (kill-region): Pass mark first then point, so kill-append works right.
(copy-region-as-kill, kill-ring-save): Likewise.

Fixes: debbugs:12819

10 years ago* net/rcirc.el (rcirc-add-face):
Leo Liu [Tue, 17 Dec 2013 15:15:00 +0000 (23:15 +0800)]
* net/rcirc.el (rcirc-add-face):
* eshell/em-prompt.el (eshell-emit-prompt):
* eshell/em-ls.el (eshell-ls-decorated-name): Use font-lock-face.

Fixes: debbugs:16167

10 years ago* files.el (break-hardlink-on-save): Doc fix.
Chong Yidong [Tue, 17 Dec 2013 15:09:13 +0000 (23:09 +0800)]
* files.el (break-hardlink-on-save): Doc fix.
Suggested by Xue Fuqiao.

Fixes: debbugs:13801

10 years ago* lisp/progmodes/ruby-mode.el (ruby-smie-rules): Indent ternary if.
Dmitry Gutov [Tue, 17 Dec 2013 12:04:23 +0000 (14:04 +0200)]
* lisp/progmodes/ruby-mode.el (ruby-smie-rules): Indent ternary if.

10 years agolisp/gnus/mm-util.el (mm-make-temp-file): Alias to make-temp-file for modern Emacsen
Katsumi Yamaoka [Tue, 17 Dec 2013 10:12:07 +0000 (10:12 +0000)]
lisp/gnus/mm-util.el (mm-make-temp-file): Alias to make-temp-file for modern Emacsen

10 years ago* lisp/net/shr.el (shr-insert-document): Remove unused var
Stefan Monnier [Tue, 17 Dec 2013 02:48:06 +0000 (21:48 -0500)]
* lisp/net/shr.el (shr-insert-document): Remove unused var
`shr-preliminary-table-render'.
(shr-rescale-image): Remove unused arg `force'.
(shr-put-image): Update calls accordingly.
(shr-tag-a): Use `cont' rather than dyn-bound `dom'.

10 years agoFix bug#16116
Dmitry Gutov [Tue, 17 Dec 2013 01:31:55 +0000 (03:31 +0200)]
Fix bug#16116

* lisp/emacs-lisp/smie.el (smie-indent--rule): Extract `smie-indent--rule-1'.
(smie-indent-close): Call `smie-indent--rule-1' with METHOD
:close-all, to see which indentation method to use.
(smie-rules-function): Document the method :close-all.

* test/indent/ruby.rb: Update examples according to the change
in `smie-indent-close'.

10 years ago* net/shr.el (shr-tag-a): Support zero-length <a name="foo"> elements.
Lars Magne Ingebrigtsen [Mon, 16 Dec 2013 23:40:17 +0000 (00:40 +0100)]
* net/shr.el (shr-tag-a): Support zero-length <a name="foo"> elements.

10 years agoeww anchor pointer movement fixup
Lars Magne Ingebrigtsen [Mon, 16 Dec 2013 23:29:47 +0000 (00:29 +0100)]
eww anchor pointer movement fixup

* net/eww.el (eww-display-html): If we can't find the anchor we're
looking for, then go to point-min.

10 years agoFix problems with CANNOT_DUMP and EMACSLOADPATH.
Paul Eggert [Mon, 16 Dec 2013 22:35:57 +0000 (14:35 -0800)]
Fix problems with CANNOT_DUMP and EMACSLOADPATH.

* leim/Makefile.in (RUN_EMACS):
* lisp/Makefile.in (emacs): Add lisp src to EMACSLOADPATH.
* lisp/loadup.el: Check for src/bootstrap-emacs only when Emacs can dump.
Expand dir too, in case it's relative.
* src/lread.c (init_lread): If CANNOT_DUMP, we can't be dumping.

10 years ago* lisp/desktop.el (desktop-auto-save-timeout): Change default to
Juri Linkov [Mon, 16 Dec 2013 21:48:51 +0000 (23:48 +0200)]
* lisp/desktop.el (desktop-auto-save-timeout): Change default to
`auto-save-timeout'.  Doc fix.
(desktop-save): Skip the timestamp in desktop-saved-frameset
when checking for auto-save changes.
(desktop-auto-save): Don't call desktop-auto-save-set-timer since
`desktop-auto-save' is called repeatedly by the idle timer.
(desktop-auto-save-set-timer): Replace `run-with-timer' with
`run-with-idle-timer' and a non-nil arg REPEAT.  Doc fix.

Fixes: debbugs:15331

10 years ago* lisp/isearch.el (isearch-mode-map): Remove [escape] key bindinds.
Juri Linkov [Mon, 16 Dec 2013 20:32:15 +0000 (22:32 +0200)]
* lisp/isearch.el (isearch-mode-map): Remove [escape] key bindinds.
(isearch-pre-command-hook): Check `this-command' for symbolp.

Fixes: debbugs:16035

10 years agoFix compilation errors introduced by changes in extend_face_to_end_of_line.
Eli Zaretskii [Mon, 16 Dec 2013 19:29:04 +0000 (21:29 +0200)]
Fix compilation errors introduced by changes in extend_face_to_end_of_line.

 src/xdisp.c (extend_face_to_end_of_line): Don't reference tool_bar_window
 in GTK and NS builds, they don't have this member of struct frame.

Fixes: debbugs:16165

10 years ago* lisp/emacs-lisp/gv.el (gv-ref): Mention lexbind restriction.
Stefan Monnier [Mon, 16 Dec 2013 19:12:21 +0000 (14:12 -0500)]
* lisp/emacs-lisp/gv.el (gv-ref): Mention lexbind restriction.

Fixes: debbugs:16153

10 years agoUpdate Emacs's Windows manifests to support Windows 8.1.
Eli Zaretskii [Mon, 16 Dec 2013 18:18:44 +0000 (20:18 +0200)]
Update Emacs's Windows manifests to support Windows 8.1.

 nt/emacs-x64.manifest:
 nt/emacs-x86.manifest: Declare that we target Windows 8.1 as well
 as earlier versions.  This is so GetVersion and GetVersionEx APIs
 used for bug reporting and other purposes return accurate version
 number on Windows 8.1.  See the discussion on MSDN
 http://msdn.microsoft.com/en-us/library/windows/desktop/dn302074.aspx
 for more details.

10 years agoA better fix for bug #16148 and related issues.
Eli Zaretskii [Mon, 16 Dec 2013 18:09:36 +0000 (20:09 +0200)]
A better fix for bug #16148 and related issues.

 src/xdisp.c (Fmove_point_visually): Fix subtle bugs in the fallback
 code, revealed in presence of R2L characters, character
 compositions, and display vectors.
 src/dispextern.h (struct composition_it): Correct a comment for the
 'width' member.

10 years ago* font.h (valid_font_driver) [!ENABLE_CHECKING]: Define a dummy.
Paul Eggert [Mon, 16 Dec 2013 18:05:53 +0000 (10:05 -0800)]
* font.h (valid_font_driver) [!ENABLE_CHECKING]: Define a dummy.

This prevents a compilation error on C compilers that do not
default functions to return 'int' if not declared.  Also, add
INLINE_HEADER_BEGIN and INLINE_HEADER_END to this include file,
since it now uses inline functions.

10 years agoFix bug #16165 with memory corruption by extend_face_to_end_of_line.
Eli Zaretskii [Mon, 16 Dec 2013 17:59:50 +0000 (19:59 +0200)]
Fix bug #16165 with memory corruption by extend_face_to_end_of_line.

 src/xdisp.c (extend_face_to_end_of_line): Don't fill background of
 display margins on mode line, header line, and in the frame's
 tool-bar window.

10 years ago* INSTALL: Clarify treatment of image libraries.
Paul Eggert [Mon, 16 Dec 2013 17:58:25 +0000 (09:58 -0800)]
* INSTALL: Clarify treatment of image libraries.

10 years agoAdd more .gitignore
Andreas Schwab [Mon, 16 Dec 2013 16:18:19 +0000 (17:18 +0100)]
Add more .gitignore

10 years ago* gnutls.c (Fgnutls_boot): Properly check Flistp return value.
Andreas Schwab [Mon, 16 Dec 2013 16:14:45 +0000 (17:14 +0100)]
* gnutls.c (Fgnutls_boot): Properly check Flistp return value.

10 years agoCleanup cfengine3-mode so complete-symbol works again.
Ted Zlatanov [Mon, 16 Dec 2013 15:49:25 +0000 (10:49 -0500)]
Cleanup cfengine3-mode so complete-symbol works again.

* progmodes/cfengine.el (cfengine3--current-word): Remove.
(cfengine3--current-function): Bring in the current-function
functionality from `cfengine3--current-word'.
(cfengine3-completion-function): Bring in the
bounds-of-current-word functionality from
`cfengine3--current-word'.

10 years agoFix bug#16161: CHECK_LIST_CONS fails on nil
Ted Zlatanov [Mon, 16 Dec 2013 15:47:09 +0000 (10:47 -0500)]
Fix bug#16161: CHECK_LIST_CONS fails on nil

* src/gnutls.c (Fgnutls_boot): Use `Flistp' instead of
`CHECK_LIST_CONS`.

10 years agoFix recent w32_enable_frame_resize_hack and display-buffer-below-selected fixes.
Martin Rudalics [Mon, 16 Dec 2013 09:58:44 +0000 (10:58 +0100)]
Fix recent w32_enable_frame_resize_hack and display-buffer-below-selected fixes.

* w32term.c (w32_enable_frame_resize_hack): Default to 1.

* window.el (display-buffer-below-selected): Bind
split-height-threshold to 0 as suggested by Juri Linkov.

10 years ago* progmodes/compile.el (compile-goto-error): Do not push-mark.
Leo Liu [Mon, 16 Dec 2013 08:07:10 +0000 (16:07 +0800)]
* progmodes/compile.el (compile-goto-error): Do not push-mark.
Remove NOMSG arg and all uses changed.

10 years ago* font.c (valid_font_driver) [ENABLE_CHECKING]: New function
Dmitry Antipov [Mon, 16 Dec 2013 07:45:33 +0000 (11:45 +0400)]
* font.c (valid_font_driver) [ENABLE_CHECKING]: New function
intended to find bogus pointers in font objects (Bug#16140).
* font.h (valid_font_driver) [ENABLE_CHECKING]: Add prototype.
* alloc.c (cleanup_vector): Use valid_font_driver in eassert.
(compact_font_cache_entry, compact_font_caches) [!HAVE_NTGUI]:
Disable for MS-Windows due to Bug#15876; apparently this
requires more or less substantial changes in fontset code.
* xfont.c (xfont_close):
* xftfont.c (xftfont_close): Call x_display_info_for_display
to check whether 'Display *' is valid (Bug#16093 and probably
Bug#16069).

10 years ago* lisp/emulation/cua-rect.el (cua-rectangle-mark-mode): New minor mode.
Stefan Monnier [Mon, 16 Dec 2013 02:24:08 +0000 (21:24 -0500)]
* lisp/emulation/cua-rect.el (cua-rectangle-mark-mode): New minor mode.
(cua--deactivate-rectangle): Don't deactivate the mark.
(cua-set-rectangle-mark): Don't set mark-active since
cua--activate-rectangle already does it for us.
(cua--rectangle-highlight-for-redisplay): Unhighlight a previous
non-rectangular region.

* lisp/emulation/cua-base.el (cua-repeat-replace-region):
Use with-current-buffer.

* lisp/net/gnutls.el: Use cl-lib.
(gnutls-negotiate): `mapcan' -> cl-mapcan.

10 years agoFix bug with conditionals in expand-file-name on MS-Windows.
Eli Zaretskii [Sun, 15 Dec 2013 20:39:36 +0000 (22:39 +0200)]
Fix bug with conditionals in expand-file-name on MS-Windows.

 src/fileio.c (Fexpand_file_name) [WINDOWSNT]: Fix conditionals.
 Reported by Juanma Barranquero <lekktu@gmail.com>.

10 years agoFix bug #16152 with crashes in process-send-eof on MS-Windows.
Eli Zaretskii [Sun, 15 Dec 2013 18:37:48 +0000 (20:37 +0200)]
Fix bug #16152 with crashes in process-send-eof on MS-Windows.

 src/process.c (Fprocess_send_eof): Don't crash if someone tries to
 open a pty on MS-Windows.

10 years agoMinor fix in Windows-specific code in decode_env_path.
Eli Zaretskii [Sun, 15 Dec 2013 17:52:14 +0000 (19:52 +0200)]
Minor fix in Windows-specific code in decode_env_path.

 src/emacs.c (decode_env_path): Fix bogus comparison against
 emacs_dir.  Reported by Juanma Barranquero <lekktu@gmail.com>.

10 years agosrc/w32*.c: Silence compiler warnings.
Juanma Barranquero [Sun, 15 Dec 2013 17:40:44 +0000 (18:40 +0100)]
src/w32*.c: Silence compiler warnings.

* w32fns.c (Fw32_shell_execute): Remove unused local variable.
(Fx_file_dialog): Add parentheses around && to silence warning.

* w32term.c (construct_drag_n_drop): Remove unused local variable.

10 years agoFix bug #16151 with background of display margins.
Eli Zaretskii [Sun, 15 Dec 2013 16:51:59 +0000 (18:51 +0200)]
Fix bug #16151 with background of display margins.

 src/xdisp.c (extend_face_to_end_of_line): Extend background of
 non-default face in margin areas as well.  (Bug#16151)
 (display_line): Call extend_face_to_end_of_line for continued
 lines as well, if the display margins have non-zero width.
 (set_glyph_string_background_width): When needed, set the
 extends_to_end_of_line_p flag on glyph strings to be drawn in
 margin areas, not only in the text area.

10 years agoFix session GUI startup.
Eli Zaretskii [Sun, 15 Dec 2013 16:27:25 +0000 (18:27 +0200)]
Fix session GUI startup.

 src/frame.h (FRAME_MOUSE_UPDATE): Fix a typo that caused infloop at
 startup.

10 years agoAdd ChangeLog entry for previous checkin of gnutls.c.
Paul Eggert [Sun, 15 Dec 2013 04:42:23 +0000 (20:42 -0800)]
Add ChangeLog entry for previous checkin of gnutls.c.

This entry was inadvertantly omitted.

10 years agoUse bool for boolean (GLYPH_DEBUG case).
Paul Eggert [Sun, 15 Dec 2013 04:20:53 +0000 (20:20 -0800)]
Use bool for boolean (GLYPH_DEBUG case).

* xdisp.c (trace_redisplay_p) [GLYPH_DEBUG]:
Use bool for boolean.
* dispextern.h (IF_DEBUG): Properly parenthesize and convert to void.
Args must now be expressions; all callers changed.

10 years ago* configure.ac (srcdir) [MINGW32]: Yet another tweak to avoid failure
Dani Moncayo [Sat, 14 Dec 2013 22:59:20 +0000 (23:59 +0100)]
* configure.ac (srcdir) [MINGW32]: Yet another tweak to avoid failure
  when srcdir is ".".  Fix also the indentation.

10 years ago* configure.ac (srcdir) [MINGW32]: Tweak to 2013-12-14T09:30:15Z!dmoncayo@gmail.com.
Dani Moncayo [Sat, 14 Dec 2013 22:06:30 +0000 (23:06 +0100)]
* configure.ac (srcdir) [MINGW32]: Tweak to 2013-12-14T09:30:15Z!dmoncayo@gmail.com.

10 years agoUse bool for boolean, focusing on headers.
Paul Eggert [Sat, 14 Dec 2013 21:36:44 +0000 (13:36 -0800)]
Use bool for boolean, focusing on headers.

* configure.ac (PTY_OPEN, GC_MARK_SECONDARY_STACK):
Use bool for boolean.
* lib-src/emacsclient.c, lib-src/etags.c, lib-src/hexl.c (FALSE, TRUE):
Remove.  All uses replaced with uncapitalized version.
* lib-src/emacsclient.c (message):
* lib-src/etags.c (make_tag, pfnote, consider_token, make_C_tag, lang_names):
* lib-src/hexl.c (un_flag, iso_flag, endian):
* lib-src/pop.c (pop_debug, pop_open, pop_multi_first, pop_multi_next)
(pop_trash):
Use bool for boolean.
* lib-src/etags.c (bool): Remove.
* lib-src/etags.c (globals, members, declarations, no_line_directive)
(no_duplicates): Use 'int' for boolean values that getopt requires
to be 'int'.  Formerly, these were 'bool' and 'bool' was 'int',
but we can no longer rely on this implementation.
* lib-src/pop.h (struct _popserver): Use bool_bf for boolean bit-fields.
* lwlib/xlwmenuP.h (XlwMenu_part): Use bool_bf for boolean bit-fields.
* src/atimer.h, src/lisp.h, src/syssignal.h, src/syswait.h, src/unexelf.c:
No need to include <stdbool.h>, since conf_post.h does it now.
* src/buffer.h (BUF_COMPUTE_UNCHANGED, DECODE_POSITION)
(BUFFER_CHECK_INDIRECTION, GET_OVERLAYS_AT, PER_BUFFER_VALUE_P)
(SET_PER_BUFFER_VALUE_P):
* src/ccl.c, src/ccl.h (setup_ccl_program):
* src/ccl.h (CHECK_CCL_PROGRAM):
* src/character.h (MAKE_CHAR_UNIBYTE, CHECK_CHARACTER_CAR)
(CHECK_CHARACTER_CDR, CHAR_STRING_ADVANCE, NEXT_CHAR_BOUNDARY)
(PREV_CHAR_BOUNDARY, FETCH_STRING_CHAR_ADVANCE)
(FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE)
(FETCH_STRING_CHAR_ADVANCE_NO_CHECK, FETCH_CHAR_ADVANCE)
(FETCH_CHAR_ADVANCE_NO_CHECK, INC_POS, DEC_POS, INC_BOTH)
(DEC_BOTH, BUF_INC_POS, BUF_DEC_POS):
* src/charset.h (CHECK_CHARSET, CHECK_CHARSET_GET_ID)
(CHECK_CHARSET_GET_ATTR, CHECK_CHARSET_GET_CHARSET)
(CHARSET_FAST_MAP_SET):
* src/coding.c (decode_coding_ccl, encode_coding_ccl):
* src/coding.h (CHECK_CODING_SYSTEM, CHECK_CODING_SYSTEM_GET_SPEC)
(CHECK_CODING_SYSTEM_GET_ID, SJIS_TO_JIS, SJIS_TO_JIS2)
(JIS_TO_SJIS, JIS_TO_SJIS2, ENCODE_FILE, DECODE_FILE)
(ENCODE_SYSTEM, DECODE_SYSTEM, ENCODE_UTF_8)
(decode_coding_c_string):
* src/composite.h (COMPOSITION_DECODE_REFS, COMPOSITION_DECODE_RULE):
* src/conf_post.h (has_attribute):
* src/dispextern.h (trace_redisplay_p):
(INC_TEXT_POS, DEC_TEXT_POS, SET_GLYPH_FROM_GLYPH_CODE)
(SET_CHAR_GLYPH, SET_CHAR_GLYPH_FROM_GLYPH)
(SET_GLYPH_FROM_CHAR_GLYPH):
(WINDOW_WANTS_MODELINE_P, WINDOW_WANTS_HEADER_LINE_P)
(FACE_SUITABLE_FOR_ASCII_CHAR_P, FACE_SUITABLE_FOR_CHAR_P)
(PRODUCE_GLYPHS, reset_mouse_highlight, in_display_vector_p)
(cursor_in_mouse_face_p):
* src/dispnew.c (adjust_glyph_matrix, clear_glyph_matrix_rows)
(blank_row, prepare_desired_row)
(build_frame_matrix_from_leaf_window, make_current)
(mirror_make_current, mirrored_line_dance, mirror_line_dance)
(update_window, scrolling_window, update_frame_line):
* src/disptab.h (GLYPH_FOLLOW_ALIASES):
* src/editfns.c (Fformat):
* src/font.h (FONT_WEIGHT_SYMBOLIC, FONT_SLANT_SYMBOLIC)
(FONT_WIDTH_SYMBOLIC, FONT_WEIGHT_FOR_FACE, FONT_SLANT_FOR_FACE)
(FONT_WIDTH_FOR_FACE, FONT_WEIGHT_NAME_NUMERIC)
(FONT_SLANT_NAME_NUMERIC, FONT_WIDTH_NAME_NUMERIC)
(FONT_SET_STYLE, CHECK_FONT, CHECK_FONT_SPEC, CHECK_FONT_ENTITY)
(CHECK_FONT_OBJECT, CHECK_FONT_GET_OBJECT, FONT_ADD_LOG)
(FONT_DEFERRED_LOG):
* src/frame.h (FRAME_W32_P, FRAME_MSDOS_P, FRAME_WINDOW_P):
(FRAME_EXTERNAL_TOOL_BAR, FRAME_EXTERNAL_MENU_BAR, FOR_EACH_FRAME)
(FRAME_MOUSE_UPDATE):
* src/fringe.c (Fdefine_fringe_bitmap):
* src/image.c (x_create_bitmap_from_data, x_create_bitmap_mask)
(x_create_bitmap_from_xpm_data, xpm_load_image):
* src/intervals.h (INTERVAL_HAS_PARENT, INTERVAL_PARENT)
(set_interval_parent, RESET_INTERVAL, COPY_INTERVAL_CACHE)
(MERGE_INTERVAL_CACHE):
* src/keymap.h (KEYMAPP):
* src/lisp.h (eassert, USE_LSB_TAG, CHECK_LISP_OBJECT_TYPE)
(STRING_SET_UNIBYTE, STRING_SET_MULTIBYTE, DEFSYM, PSEUDOVECTORP)
(CHECK_RANGED_INTEGER, CHECK_TYPE_RANGED_INTEGER)
(CHECK_NUMBER_COERCE_MARKER, CHECK_NUMBER_OR_FLOAT_COERCE_MARKER)
(DEFVAR_LISP, DEFVAR_LISP_NOPRO, DEFVAR_BOOL, DEFVAR_INT)
(DEFVAR_BUFFER_DEFAULTS, DEFVAR_KBOARD, QUIT)
(RETURN_UNGCPRO, USE_SAFE_ALLOCA, SAFE_NALLOCA, SAFE_FREE)
(SAFE_ALLOCA_LISP, FOR_EACH_ALIST_VALUE, functionp):
* src/syntax.h (SYNTAX_ENTRY, SYNTAX_WITH_FLAGS, SYNTAX)
(UPDATE_SYNTAX_TABLE_FORWARD, UPDATE_SYNTAX_TABLE_BACKWARD)
(SETUP_BUFFER_SYNTAX_TABLE):
* src/systime.h (timespec_valid_p):
* src/term.c (save_and_enable_current_matrix):
* src/window.h (WINDOW_MENU_BAR_P, WINDOW_TOOL_BAR_P):
* src/xdisp.c (in_display_vector_p, display_tool_bar_line)
(redisplay_internal, try_window_reusing_current_matrix)
(sync_frame_with_window_matrix_rows, try_window_id)
(display_menu_bar, display_tty_menu_item, display_mode_line)
(coords_in_mouse_face_p, cursor_in_mouse_face_p):
* src/xmenu.c (xmenu_show):
* src/xterm.c (use_xim, x_term_init):
* src/xterm.h (XSync, GTK_CHECK_VERSION, use_xim, SET_SCROLL_BAR_X_WIDGET)
(struct x_bitmap_record):
Use bool for booleans.
* src/ccl.c (struct buffer_text):
* src/ccl.h (struct ccl_program):
* src/charset.h (struct charset):
* src/cm.h (struct cm):
* src/coding.h (struct iso_2022_spec, struct coding_system):
* src/dispextern.h (struct glyph, struct glyph_matrix, struct glyph_row)
(struct glyph_string, struct face, struct face_cache)
(struct bidi_string_data, struct bidi_it)
(struct draw_fringe_bitmap_params, struct it, Mouse_HLInfo)
(struct image):
* src/editfns.c (Fformat):
* src/frame.h (struct frame):
* src/fringe.c (struct fringe_bitmap):
* src/intervals.h (struct interval):
* src/keyboard.h (struct kboard):
* src/lisp.h (struct Lisp_Symbol, struct Lisp_Misc_Any, struct Lisp_Marker)
(struct Lisp_Overlay, struct Lisp_Save_Value, struct Lisp_Free)
(struct Lisp_Buffer_Local_Value, union specbinding):
* src/macfont.m (struct macfont_info):
* src/process.h (struct Lisp_Process):
* src/termchar.h (struct tty_display_info):
* src/window.h (struct window):
* src/xterm.h (struct x_output):
Use bool_bf for boolean bit-fields.
* src/ccl.c (setup_ccl_program): Now returns bool instead of -1 or 0.
All callers changed.
* src/ccl.h (struct ccl_program): Remove unused members private_state,
src_multibyte, dst_multibyte, cr_consumed, suppress_error,
eight_bit_control.
(struct ccl_spec): Remove unused members cr_carryover,
eight_bit_carryover.
* src/conf_post.h: Include <stdbool.h>.
(bool_bf): New type.
* src/dispextern.h (TRACE, PREPARE_FACE_FOR_DISPLAY):
* src/interval.h (RESET_INTERVAL, COPY_INTERVAL_CACHE, MERGE_INTERVAL_CACHE)
Surround statement macro with proper 'do { ... } while (false)' brackets.
(SET_MATRIX_ROW_ENABLED_P): Assume 2nd arg is bool.
(PRODUCE_GLYPHS): Simplify use of boolean.
* src/fileio.c (Fcopy_file):
If I is an integer, prefer 'if (I != 0)' to 'if (I)'.
* src/lisp.h (UNGCPRO): Return void, not int.
(FOR_EACH_TAIL): Use void expression, not int expression.
* src/region-cache.c: Reindent.
* src/region-cache.h: Copy comments from region-cache.c, to fix
incorrect remarks about booleans.

10 years agoSupport filtering by keywords in package listings.
Ted Zlatanov [Sat, 14 Dec 2013 19:55:19 +0000 (14:55 -0500)]
Support filtering by keywords in package listings.

* emacs-lisp/package.el (package-built-in-p): Support both
built-in and the package.el converted package descriptions.
(package-show-package-list): Allow keywords.
(package-keyword-button-action): Use it instead of
`finder-list-matches'.
(package-menu-filter-interactive): Interactive filtering (by
keyword) function.
(package-menu--generate): Support keywords and change keymappings
and headers when they are given.
(package--has-keyword-p): Helper function.
(package-menu--refresh): Use it.
(package--mapc): Helper function.
(package-all-keywords): Use it.
(package-menu-mode-map): Set up menu items and keybindings to
provide a filtering UI.

10 years agoFix bug #16148 with visual-mode cursor motion and whitespace-newline-mode.
Eli Zaretskii [Sat, 14 Dec 2013 19:32:50 +0000 (21:32 +0200)]
Fix bug #16148 with visual-mode cursor motion and whitespace-newline-mode.

 src/xdisp.c (Fmove_point_visually): Expect overshoot in move_it_to
 when character at point is displayed from a display vector.

10 years agoNew verify-error GnuTLS interface for certificate validation
Ted Zlatanov [Sat, 14 Dec 2013 18:04:09 +0000 (13:04 -0500)]
New verify-error GnuTLS interface for certificate validation

* net/gnutls.el (gnutls-verify-error): New defcustom to control
the behavior when a certificate fails validation.  Defaults to
old behavior: never abort, just warn.
(gnutls-negotiate): Use it.

* gnutls.c: Replace `:verify_hostname_error' with `:verify_error',
now a list of certificate validation checks that will abort a
connection with an error.
(Fgnutls_boot): Document it and use it.

10 years agoHave display-buffer-below-selected never split window horizontally.
Martin Rudalics [Sat, 14 Dec 2013 17:00:54 +0000 (18:00 +0100)]
Have display-buffer-below-selected never split window horizontally.

* window.el (display-buffer-below-selected): Never split window
horizontally.  Suggested by Juri Linkov <juri@jurta.org>.

10 years ago* lisp/emacs-lisp/package.el (package--prepare-dependencies): New function.
Tom Willemse [Sat, 14 Dec 2013 16:02:39 +0000 (11:02 -0500)]
* lisp/emacs-lisp/package.el (package--prepare-dependencies): New function.
(package-buffer-info): Use it.

Fixes: debbugs:15108

10 years ago* lisp/icomplete.el (icomplete-completions): Make sure the prefix is already
Stefan Monnier [Sat, 14 Dec 2013 14:24:36 +0000 (09:24 -0500)]
* lisp/icomplete.el (icomplete-completions): Make sure the prefix is already
displayed elsewhere before hiding it.

10 years agoFix comment from the last change to `ruby-smie-rules'
Dmitry Gutov [Sat, 14 Dec 2013 13:57:58 +0000 (15:57 +0200)]
Fix comment from the last change to `ruby-smie-rules'

10 years agoHack frame resizing on Windows (Bug#16028).
Martin Rudalics [Sat, 14 Dec 2013 11:06:00 +0000 (12:06 +0100)]
Hack frame resizing on Windows (Bug#16028).

* w32term.c (w32_enable_frame_resize_hack): New variable.
(x_set_window_size): Use it to hack frame resizing on Windows
(Bug#16028).

10 years agoRevert 2 last commits in src/alloc.c.
Eli Zaretskii [Sat, 14 Dec 2013 09:57:53 +0000 (11:57 +0200)]
Revert 2 last commits in src/alloc.c.

10 years ago* configure.ac (srcdir) [MINGW32]: Convert to an absolute MSYS
Dani Moncayo [Sat, 14 Dec 2013 09:30:15 +0000 (10:30 +0100)]
* configure.ac (srcdir) [MINGW32]: Convert to an absolute MSYS
path of the form "/c/foo/bar" to simplify conversion of formats.

10 years agoMinor tweak of the last commit.
Eli Zaretskii [Sat, 14 Dec 2013 09:18:23 +0000 (11:18 +0200)]
Minor tweak of the last commit.

10 years agoAvoid crashing due to closing of font whose driver pointer is NULL.
Eli Zaretskii [Sat, 14 Dec 2013 09:16:10 +0000 (11:16 +0200)]
Avoid crashing due to closing of font whose driver pointer is NULL.

 src/alloc.c (cleanup_vector): Don't call the font driver's 'close'
 method if the 'driver' pointer is NULL.

10 years agosrc/fileio.c: Remove redundant empty #ifdef.
Eli Zaretskii [Sat, 14 Dec 2013 08:33:06 +0000 (10:33 +0200)]
src/fileio.c: Remove redundant empty #ifdef.

10 years agoFix copy-file on MS-Windows with file names outside of current locale.
Eli Zaretskii [Sat, 14 Dec 2013 08:29:42 +0000 (10:29 +0200)]
Fix copy-file on MS-Windows with file names outside of current locale.

 src/fileio.c (Fcopy_file) [WINDOWSNT]: Move most of the
 Windows-specific code to w32.c.  Change error message text to
 match that of Posix platforms.
 src/w32.c (w32_copy_file): New function, most of the code copied and
 reworked from Fcopy_file.  Improve error handling.  Plug memory
 leak when errors are thrown.  Support file names outside of the
 current codepage.  (Bug#7100)

10 years agoFix bug#16118
Dmitry Gutov [Sat, 14 Dec 2013 06:46:13 +0000 (08:46 +0200)]
Fix bug#16118

* lisp/progmodes/ruby-mode.el (ruby-smie-rules): Return nil before
open-paren tokens when preceded by a open-paren, too.
(ruby-smie-rules): Handle virtual indentation after open-paren
tokens specially.  If there is code between it and eol, return the
column where is starts.

* test/indent/ruby.rb: New examples.

10 years ago* lread.c (load_path_default): Prototype.
Paul Eggert [Fri, 13 Dec 2013 22:27:05 +0000 (14:27 -0800)]
* lread.c (load_path_default): Prototype.

10 years ago* etc/NEWS: Add sections for CEDET and EIEIO.
David Engster [Fri, 13 Dec 2013 21:41:35 +0000 (22:41 +0100)]
* etc/NEWS: Add sections for CEDET and EIEIO.

10 years agoprogmodes/cfengine.el: Fix `add-hook' doc.
Ted Zlatanov [Fri, 13 Dec 2013 19:49:56 +0000 (14:49 -0500)]
progmodes/cfengine.el: Fix `add-hook' doc.

* progmodes/cfengine.el: Fix `add-hook' doc.

10 years agoMore cfengine.el fixes over previous commit.
Ted Zlatanov [Fri, 13 Dec 2013 18:55:08 +0000 (13:55 -0500)]
More cfengine.el fixes over previous commit.

* progmodes/cfengine.el (cfengine-mode-syntax-functions-regex):
Initialize sensibly.
(cfengine3--current-word): Fix parameters.
(cfengine3-make-syntax-cache): Simplify further.
(cfengine3-completion-function, cfengine3--current-function): Use
`assq' for symbols.
(cfengine3--current-function): Fix `cfengine3--current-word' call.

10 years agoUnconditionally reset load-path after dumping
Glenn Morris [Fri, 13 Dec 2013 18:25:30 +0000 (13:25 -0500)]
Unconditionally reset load-path after dumping

* src/lread.c: (dump_path): Remove.
(load-path-default): Remove `changed' argument.
Do not set dump_path permanently.  Simplify.
(init_lread): Simplify.
(syms_of_lread): Remove dump_path.

* lisp/loadup.el (load-path): Warn if site-load or site-init changes it.
No more need to reset it when bootstrapping.

* doc/lispref/internals.texi (Building Emacs):
* doc/lispref/loading.texi (Library Search): Mention that site-load,
site-init cannot change load-path.

* INSTALL: No longer mention load-path and site-init/site-load.

* etc/NEWS: Mention this.

Fixes: debbugs:16107

10 years agoImprove CFEngine 3 parsing and eldoc support, with syntax fallbacks
Ted Zlatanov [Fri, 13 Dec 2013 18:18:19 +0000 (13:18 -0500)]
Improve CFEngine 3 parsing and eldoc support, with syntax fallbacks

* progmodes/cfengine.el (cfengine-cf-promises): Add more default
locations for cf-promises.
(cfengine-mode-syntax-functions-regex): New caching variable.
(cfengine3-fallback-syntax): Fallback syntax for cases where
cf-promises doesn't run.
(cfengine3--current-word): Reimplement using
`cfengine-mode-syntax-functions-regex'.
(cfengine3-completion-function, cfengine3--current-function): Use
`cfengine3-make-syntax-cache' directly.
(cfengine3-clear-syntax-cache): New function.
(cfengine3-make-syntax-cache): Simplify and create
`cfengine-mode-syntax-functions-regex' on demand.
(cfengine3-format-function-docstring): Don't call
`cfengine3-make-syntax-cache' explicitly.

10 years agoFix windmove-find-other-window broken after pixelwise resizing (Bug#16017).
Martin Rudalics [Fri, 13 Dec 2013 17:06:30 +0000 (18:06 +0100)]
Fix windmove-find-other-window broken after pixelwise resizing (Bug#16017).

* windmove.el (windmove-other-window-loc): Revert change from
2013-12-04.
(windmove-find-other-window): Call window-in-direction.
* window.el (window-in-direction): New arguments SIGN, WRAP and
MINI to emulate original windmove-find-other-window behavior.

10 years ago* alloc.c, font.c, font.h, ftfont.c, ftxfont.c, macfont.m,
Dmitry Antipov [Fri, 13 Dec 2013 15:55:23 +0000 (19:55 +0400)]
* alloc.c, font.c, font.h, ftfont.c, ftxfont.c, macfont.m,
* nsfont.m, w32font.c, xfont.c, xftfont.c: Revert last and
2013-12-12 font-related change to avoid Bug#16128, which
is quite hard to fix without even more substantial changes.

10 years ago* font.c (font_close_object): Check for live frame (Bug#16128).
Dmitry Antipov [Fri, 13 Dec 2013 13:34:05 +0000 (17:34 +0400)]
* font.c (font_close_object): Check for live frame (Bug#16128).

10 years agoMake blink-matching-paren perform blinking without moving the cursor
Dmitry Gutov [Fri, 13 Dec 2013 04:14:17 +0000 (06:14 +0200)]
Make blink-matching-paren perform blinking without moving the cursor

* lisp/faces.el (paren-showing-faces, show-paren-match)
(show-paren-mismatch): Move from paren.el.

* lisp/simple.el (blink-matching--overlay): New variable.
(blink-matching-open): Instead of moving point, highlight the
matching paren with an overlay
(http://lists.gnu.org/archive/html/emacs-devel/2013-12/msg00333.html).

10 years ago* gnutls.c, gnutls.h (emacs_gnutls_record_check_pending):
Paul Eggert [Fri, 13 Dec 2013 03:44:59 +0000 (19:44 -0800)]
* gnutls.c, gnutls.h (emacs_gnutls_record_check_pending):

Return ptrdiff_t, not int, since it's a buffer size.
Reindent/reparen some macros to a more Gnuish style.

10 years ago* bindings.el (visual-order-cursor-movement): Fix version.
Leo Liu [Fri, 13 Dec 2013 01:54:09 +0000 (09:54 +0800)]
* bindings.el (visual-order-cursor-movement): Fix version.

* indent.el (indent-region): Disable progress reporter in
minibuffer.

Fixes: debbugs:16108

10 years ago* lisp/simple.el <Keypad support>: Remove key bindings duplicated with bindings.el.
Juri Linkov [Fri, 13 Dec 2013 01:03:04 +0000 (03:03 +0200)]
* lisp/simple.el <Keypad support>: Remove key bindings duplicated with bindings.el.

Fixes: debbugs:14397

10 years ago* lisp/progmodes/python.el (python-pdbtrack-stacktrace-info-regexp):
Fabián Ezequiel Gallina [Fri, 13 Dec 2013 00:56:12 +0000 (21:56 -0300)]
* lisp/progmodes/python.el (python-pdbtrack-stacktrace-info-regexp):
Also match after beginning of line.
(python-pdbtrack-set-tracked-buffer): Fix logic for remote
files.  Thanks to Russell Sim.

Fixes: debbugs:15378

10 years agoFix bug in previous regex.c change, which broke a\{2,}.
Paul Eggert [Fri, 13 Dec 2013 00:51:47 +0000 (16:51 -0800)]
Fix bug in previous regex.c change, which broke a\{2,}.

10 years ago* lisp/comint.el (comint-mode-map): Replace `delete-char' with `delete-forward-char'.
Juri Linkov [Fri, 13 Dec 2013 00:47:18 +0000 (02:47 +0200)]
* lisp/comint.el (comint-mode-map): Replace `delete-char' with `delete-forward-char'.

Fixes: debbugs:16109

10 years ago* lisp/progmodes/python.el (python-indent-calculate-indentation): Fix
Fabián Ezequiel Gallina [Thu, 12 Dec 2013 23:32:05 +0000 (20:32 -0300)]
* lisp/progmodes/python.el (python-indent-calculate-indentation): Fix
de-denters cornercase.

* test/automated/python-tests.el (python-indent-dedenters-2): New test.

Fixes: debbugs:15731

10 years agoGenerate info/dir from .texi files rather than .info files
Glenn Morris [Thu, 12 Dec 2013 22:41:31 +0000 (17:41 -0500)]
Generate info/dir from .texi files rather than .info files

* Makefile.in (install-info): Handle missing info/dir.
(info_dir_deps): New variable.
(${srcdir}/info/dir): Depend on .texi files rather than .info files.
(check-info): Update topics.

* build-aux/make-info-dir: Use .texi files rather than .info files.
Update topics.

* doc/lispintro/emacs-lisp-intro.texi:
* doc/lispref/elisp.texi:
Tweak dircategory (all the others use "Emacs" + lower-case).

10 years agoMerge from CEDET upstream.
David Engster [Thu, 12 Dec 2013 22:09:15 +0000 (23:09 +0100)]
Merge from CEDET upstream.

10 years agoMerge with CEDET upstream.
David Engster [Thu, 12 Dec 2013 21:33:06 +0000 (22:33 +0100)]
Merge with CEDET upstream.

* admin/grammars/c.by (expr-binop): Add MOD.
(variablearg): Add 'opt-assign'.
(variablearg, varnamelist): Add default values so that it can be
later expanded into the tag.
(opt-stuff-after-symbol): Rename to 'brackets-after-symbol' and
remove empty match.
(multi-stage-dereference): Adapt to above rename.
(unaryexpression): Use 'symbol' instead of 'namespace-symbol',
since the latter also leads to an empty match at the end which
would make this too greedy.
(variablearg-opt-name): Support parsing of function pointers
inside an argument list.

* semantic/analyze.el
(semantic-analyze-find-tag-sequence-default): Always add scope to
the local miniscope for each type.  Otherwise, structure tags are
not analyzed correctly.  Also, always search the extended
miniscope even when not dealing with types.

* semantic/ctxt.el (semantic-get-local-variables-default): Also
try to parse local variables for buffers which are currently
marked as unparseable.  Otherwise, it is often impossible to
complete local variables.

* semantic/scope.el (semantic-analyze-scoped-types-default): If we
cannot find a type in the typecache, also look into the the types
we already found.  This is necessary since in C++, a 'using
namespace' can be dependend on a previous one.
(semantic-completable-tags-from-type): When creating the list of
completable types, pull in types which are referenced through
'using' statements, and also preserve their filenames.

* semanitc/bovine/c.el (semantic/analyze/refs): Require.
(semantic-analyze-tag-references): New override.  Mainly copied
from the default implementation, but if nothing could be found (or
just the tag itself), drop all namespaces from the scope and
search again.  This is necessary for implementations which are
defined outside of the namespace and only pull those in through
'using' statements.
(semantic-ctxt-scoped-types): Go through all tags around point and
search them for using statements.  In the case for using
statements outside of function scope, append them in the correct
order instead of using 'cons'.  This is important since using
statements may depend on previous ones.
(semantic-expand-c-tag-namelist): Do not try to parse struct
definitions as default values.  The grammar parser seems to return
the point positions slightly differently (as a cons instead of a
list).  Also, set parent for typedefs to 'nil'.  It does not
really make sense to set a parent class for typedefs, and it can
also lead to endless loops when calculating scope.
(semantic-c-reconstitute-token): Change handling of function
pointers; instead of seeing them as variables, handle them as
functions with a 'function-pointer' attribute.  Also, correctly
deal with function pointers as function arguments.
(semantic-c-reconstitute-function-arglist): New function to parse
function pointers inside an argument list.
(semantic-format-tag-name): Use 'function-pointer' attribute
instead of the old 'functionpointer-flag'.
(semantic-cpp-lexer): Use new `semantic-lex-spp-paren-or-list'.

* semantic/bovine/gcc.el (semantic-gcc-setup): Add 'features.h' to
the list of files whose preprocessor symbols are included.  This
pulls in things like __USE_POSIX and similar.

* semantic/format.el (semantic-format-tag-prototype-default):
Display default values if available.

* semantic/analyze/refs.el (semantic-analyze-refs-impl)
(semantic-analyze-refs-proto): Add 'default-value' as ignorable in
call to `semantic-tag-similar-p'.

* semantic/db-mode.el (semanticdb-semantic-init-hook-fcn): Always
set buffer for `semanticdb-current-table'.

* semantic/db.el (semanticdb-table::semanticdb-refresh-table): The
previous change turned up a bug in this method.  Since the current
table now correctly has a buffer set, the first clause in the
`cond' would be taken, but there was a `save-excursion' missing.

* semantic/lex-spp.el (semantic-c-end-of-macro): Declare.
(semantic-lex-spp-token-macro-to-macro-stream): Deal with macros
which open/close a scope.  For this, leave an overlay if we
encounter a single open paren and return a semantic-list in the
lexer.  When this list gets expanded, retrieve the old position
from the overlay.  See the comments in the function for further
details.
(semantic-lex-spp-find-closing-macro): New function to find the
next macro which closes scope (i.e., has a closing paren).
(semantic-lex-spp-replace-or-symbol-or-keyword): Go to end of
closing macro if necessary.
(semantic-lex-spp-paren-or-list): New lexer to specially deal with
parens in macro definitions.

* semantic/decorate/mode.el (semantic-decoration-mode): Do not
decorate available tags immediately but in an idle timer, since
EDE will usually not be activated yet, which will make it
impossible to find project includes.

* semantic/decorate/include.el
(semantic-decoration-on-includes-highlight-default): Remove
'unloaded' from throttle when decorating includes, otherwise all
would be loaded.  Rename 'table' to 'currenttable' to make things
clearer.

* ede/linux.el (cl): Require during compile.

* ede/linux.el (project-linux-build-directory-default)
(project-linux-architecture-default): Add customizable variables.
(ede-linux-project): Add additional slots to track Linux-specific
information (out-of-tree build directory and selected
architecture).
(ede-linux--get-build-directory, ede-linux--get-archs)
(ede-linux--detect-architecture, ede-linux--get-architecture)
(ede-linux--include-path): Added function to detect Linux-specific
information.
(ede-linux-load): Set new Linux-specific information when creating
a project.
(ede-expand-filename-impl): Use new and more accurate include
information.

* semantic/scope.el (semantic-calculate-scope): Return a clone of
the scopecache, so that everyone is working with its own (shallow)
copy.  Otherwise, if one caller is resetting the scope, it would
be reset for all others working with the scope cache as well.

10 years agoRemove stale comment from fileio.c.
Eli Zaretskii [Thu, 12 Dec 2013 20:52:38 +0000 (22:52 +0200)]
Remove stale comment from fileio.c.

10 years agoSpelling fixes.
Paul Eggert [Thu, 12 Dec 2013 20:07:40 +0000 (12:07 -0800)]
Spelling fixes.

10 years ago* lisp/emacs-lisp/nadvice.el: Add `depth' property to manage ordering.
Stefan Monnier [Thu, 12 Dec 2013 19:47:11 +0000 (14:47 -0500)]
* lisp/emacs-lisp/nadvice.el: Add `depth' property to manage ordering.
(advice--make): Pay attention to `depth'.
(advice--make-1): Don't autoload commands eagerly.
* lisp/emacs-lisp/elp.el (elp-instrument-function):
* lisp/emacs-lisp/trace.el (trace-function-internal):
* lisp/emacs-lisp/debug.el (debug-on-entry): Keep them "first".

* lisp/iswitchb.el (iswitchb-mode): Don't belittle ido.

10 years agoAvoid undefined behavior with huge regexp interval counts.
Paul Eggert [Thu, 12 Dec 2013 19:23:25 +0000 (11:23 -0800)]
Avoid undefined behavior with huge regexp interval counts.

* regex.c (GET_INTERVAL_COUNT): Rename from 'GET_UNSIGNED_NUMBER',
since it's now specialized to interval counts. All uses changed.
Do not assume wrapraound on signed integer overflow.
(regex_compile): Simplify based on the above changes.

10 years agoSupport MS-Windows file names that use characters outside of ANSI codepage.
Eli Zaretskii [Thu, 12 Dec 2013 18:19:10 +0000 (20:19 +0200)]
Support MS-Windows file names that use characters outside of ANSI codepage.

 src/w32.c (get_file_security, set_file_security)
 (create_symbolic_link): Separate pointers and boolean flags for
 ANSI and Unicode APIs.  Use the latter if w32_unicode_filenames is
 non-zero, else the former.
 (codepage_for_filenames, filename_to_utf16, )
 (filename_from_utf16, filename_to_ansi, filename_from_ansi): New
 functions.
 (init_user_info): Allow $HOME and $SHELL to include non-ANSI
 characters.
 (normalize_filename): Lose the DBCS code, now works on UTF-8.
 Accept only one argument; all callers changed.
 (dostounix_filename): Remove the second argument, now works in
 UTF-8.  All callers changed.
 (parse_root): Lose DBCS code.
 (get_long_basename, w32_get_short_filename, init_environment)
 (GetCachedVolumeInformation, sys_readdir, open_unc_volume)
 (read_unc_volume, logon_network_drive, faccessat, sys_chdir)
 (sys_chmod, sys_creat, sys_fopen, sys_link, sys_mkdir, sys_open)
 (sys_rename_replace, sys_rmdir, sys_unlink, stat_worker, utime)
 (is_symlink, readlink, chase_symlinks, w32_delayed_load): Work in
 Unicode mode if w32_unicode_filenames is non-zero, in ANSI mode
 otherwise.
 (ansi_encode_filename): New function.
 (get_emacs_configuration, get_emacs_configuration_options):
 Functions deleted.
 (add_volume_info, GetCachedVolumeInformation): Run the input file
 name through unixtodos_filename, to ensure it is stored and
 referenced in canonical form.
 (get_volume_info): Lose the DBCS code, now works in UTF-8.
 (logon_network_drive, sys_link, utime): Improve error handling.
 (sys_access): New function.
 (hashval, generate_inode_val): Unused functions deleted.
 (symlink, readlink, readlinkat): Lose DBCS code, now works in UTF-8.
 (check_windows_init_file): Convert error message from UTF-8 to
 ANSI codepage, for display in the message box.
 (globals_of_w32): Set w32_unicode_filenames according to the OS
 version.
 src/w32term.c (construct_drag_n_drop): Work in Unicode mode when
 w32_unicode_filenames is non-zero, ANSI mode otherwise.
 (syms_of_w32term): Declare w32-unicode-filenames.
 src/w32proc.c (new_child, delete_child): Remove code that handled
 unused pending_deletion and input_file members of the child struct.
 (create_child, sys_spawnve): Convert all file names to ANSI
 codepage.  Use ANSI APIs explicitly; forcibly fail if any file
 name cannot be encoded in ANSI codepage.  Don't use
 unixtodos_filename, mirror slashes by hand.
 (record_infile, record_pending_deletion): Functions deleted.
 (Fw32_short_file_name): Call w32_get_short_filename instead of
 GetShortPathName.
 src/w32notify.c (add_watch): Work in Unicode mode when
 w32_unicode_filenames is non-zero, ANSI mode otherwise.
 (Fw32notify_add_watch): Rewrite to avoid using GetFullPathName;
 instead, do the same with Lisp primitives.
 src/w32fns.c (file_dialog_callback, Fx_file_dialog)
 (Fsystem_move_file_to_trash, Fw32_shell_execute)
 (Ffile_system_info, Fdefault_printer_name): Work in Unicode mode
 when w32_unicode_filenames is non-zero, ANSI mode otherwise.
 (Fw32_shell_execute): Improve error reporting.
 (Fdefault_printer_name): Ifdef away for Cygwin.
 src/w32.h (struct _child_process): Remove input_file and
 pending_deletion members that are no longer used.
 (dostounix_filename, w32_get_short_filename, filename_from_ansi)
 (filename_to_ansi, filename_from_utf16, filename_to_utf16)
 (ansi_encode_filename): New and updated prototypes.
 src/unexw32.c (open_input_file, open_output_file, unexec): Use ANSI
 APIs explicitly.
 (unexec): Don't use dostounix_filename, it expects a file name in
 UTF-8.  Instead, mirror backslashes by hand.  Convert NEW_NAME to
 ANSI encoding.
 src/fileio.c (Ffile_name_directory, file_name_as_directory)
 (directory_file_name, Fexpand_file_name)
 (Fsubstitute_in_file_name) [WINDOWSNT]: Adapt to the change in
 arguments of dostounix_filename.
 (Fexpand_file_name) [WINDOWSNT]: Convert value of $HOME to UTF-8.
 use MAX_UTF8_PATH for size of file-name strings.
 (emacs_readlinkat): Build an explicitly unibyte string for file
 names.
 (syms_of_fileio) <file-name-coding-system>
 default-file-name-coding-system>: Mention MS-Windows peculiarities.
 src/emacs.c (init_cmdargs) [WINDOWSNT]: Convert argv[0] to UTF-8.
 (main) [WINDOWSNT]: Convert the argv[] elements that are files or
 directories to UTF-8.
 (decode_env_path) [WINDOWSNT]: Convert file names taken from the
 environment, and each element of the input PATH, to UTF-8.
 src/dired.c (file_attributes): Use build_unibyte_string explicitly
 to make Lisp strings from user and group names.
 src/coding.h (ENCODE_FILE, DECODE_FILE): Just call encode_file and
 decode_file.
 src/coding.c (decode_file_name, encode_file_name): New functions.
 src/termcap.c (tgetent): Adapt to the change in arguments of
 dostounix_filename.
 src/sysdep.c (sys_subshell) [WINDOWSNT]: Use MAX_UTF8_PATH for file
 names.
 src/msdos.c (dostounix_filename, init_environment): Adapt to the
 change in arguments of dostounix_filename.
 src/image.c (xpm_load, tiff_load, gif_load, imagemagick_load)
 [WINDOWSNT]: Encode file names passed to the image libraries in
 ANSI codepage.
 src/gnutls.c (Fgnutls_boot): Encode all file names passed to GnuTLS.
 [WINDOWSNT]: Convert file names to the current ANSI codepage.
 src/filelock.c (lock_file) [WINDOWSNT]: Adapt to the change in
 arguments of dostounix_filename.

 nt/inc/ms-w32.h (MAX_UTF8_PATH): New macro.
 (opendir, closedir, readdir, seekdir): Redirect to replacement
 functions.
 nt/inc/dirent.h: Make d_name[] be MAXNAMELEN*4 characters long.

 lisp/term/w32-win.el (w32-handle-dropped-file):
 lisp/startup.el (normal-top-level):
 lisp/net/browse-url.el (browse-url-file-url):
 lisp/dnd.el (dnd-get-local-file-name): On MS-Windows, encode and
 decode file names using 'utf-8' rather than
 file-name-coding-system.

 doc/emacs/mule.texi (File Name Coding): Document file-name encoding
 peculiarities on MS-Windows.

 doc/lispref/nonascii.texi (Encoding and I/O): Document file-name encoding
 peculiarities on MS-Windows.

 etc/NEWS: Mention support on MS-Windows of file names outside of the
 current locale.

Fixes: debbugs:7100

10 years ago* font.h (struct font_entity) [HAVE_NS]: New field to record
Dmitry Antipov [Thu, 12 Dec 2013 14:26:06 +0000 (18:26 +0400)]
* font.h (struct font_entity) [HAVE_NS]: New field to record
font driver which was used to create this entity.
(struct font) [HAVE_WINDOW_SYSTEM]: New field to record
frame where the font was opened.
(font_close_object): Add prototype.
* font.c (font_make_entity) [HAVE_NS]: Zero out driver field.
(font_close_object): Not static any more.  Lost frame arg.
Adjust comment and users.
* alloc.c (cleanup_vector): Call font_close_object to adjust
per-frame font counters correctly.  If HAVE_NS, also call
driver-specific cleanup for font-entity objects.
* ftfont.c (ftfont_open):
* nsfont.m (nsfont_open):
* w32font.c (w32font_open_internal):
* xfont.c (xfont_open):
* xftfont.c (xftfont_open): Save frame pointer in font object.
* macfont.m (macfont_open): Likewise.
(macfont_descriptor_entity): Save driver pointer to be able
to call its free_entity routine when font-entity is swept.
* ftxfont.c (ftxfont_open): Add eassert because frame
pointer should be saved by ftfont_driver.open.

10 years ago* tramp.texi (direntry): Use ssh but rsh.
Michael Albinus [Thu, 12 Dec 2013 09:57:56 +0000 (10:57 +0100)]
* tramp.texi (direntry): Use ssh but rsh.
(all): Encode all environment variable names with @env{...}.
(Bug Reports): Refer to Testing node.

10 years ago* make-dist: Distribute new build-aux files.
Glenn Morris [Thu, 12 Dec 2013 09:39:13 +0000 (01:39 -0800)]
* make-dist: Distribute new build-aux files.

10 years ago* Makefile.in (${srcdir}/info/dir): Parallel make fix.
Glenn Morris [Thu, 12 Dec 2013 09:08:26 +0000 (01:08 -0800)]
* Makefile.in (${srcdir}/info/dir): Parallel make fix.

10 years ago* Makefile.in (install-info): Remove some useless subshells.
Glenn Morris [Thu, 12 Dec 2013 09:02:27 +0000 (01:02 -0800)]
* Makefile.in (install-info): Remove some useless subshells.

10 years agoStop keeping info/dir in the repository.
Glenn Morris [Thu, 12 Dec 2013 08:54:21 +0000 (00:54 -0800)]
Stop keeping info/dir in the repository.

* build-aux/dir_top: Move here from admin/.

* build-aux/make-info-dir: New script.

* Makefile.in (bootstrap-clean): Delete info/.
(info-dir, ${srcdir}/info/dir): New rules.
(info): Also make info-dir.
(check-info): Rename from check-info-dir.
Instead of info/dir entries, check @dircategory in info/*.info.

* make-dist: Use `info' rule rather than `info-real'.
No more info/COPYING (not even the right license for info/ files).

* info/: Remove from repository.

* admin/update_autogen (info_dir):
Use dir_top from build-aux/ rather than admin/.

* .bzrignore: Ignore info/ altogether.

* doc/emacs/Makefile.in: Comment.

10 years ago* dispextern.h (FACE_SUITABLE_FOR_CHAR_P): Remove unused macro.
Dmitry Antipov [Thu, 12 Dec 2013 08:39:41 +0000 (12:39 +0400)]
* dispextern.h (FACE_SUITABLE_FOR_CHAR_P): Remove unused macro.
(FACE_FOR_CHAR): Simplify because face_for_char does the same.
* fontset.c (face_suitable_for_char_p) [0]: Remove unused function.
(font_for_char): Prefer ptrdiff_t to int for buffer position.
(face_for_char): Likewise.  Rearrange eassert and return ASCII
face for CHAR_BYTE8_P.
* fontset.h (font_for_char, face_for_char): Adjust prototypes.

10 years ago* lisp/progmodes/python.el (python-indent-context)
Fabián Ezequiel Gallina [Thu, 12 Dec 2013 05:37:09 +0000 (02:37 -0300)]
* lisp/progmodes/python.el (python-indent-context)
(python-indent-calculate-indentation): Fix auto-identation
behavior for comment blocks.

* test/automated/python-tests.el (python-indent-after-comment-1)
(python-indent-after-comment-2): New tests.

Fixes: debbugs:15916

10 years agoRevert my most-recent change re Solaris.
Paul Eggert [Thu, 12 Dec 2013 04:53:59 +0000 (20:53 -0800)]
Revert my most-recent change re Solaris.

10 years agoMark tiny change from author without assignment
Glenn Morris [Thu, 12 Dec 2013 04:17:40 +0000 (20:17 -0800)]
Mark tiny change from author without assignment

10 years ago* xterm.c (x_make_frame_visible): Restore hack which is needed when
Dmitry Antipov [Thu, 12 Dec 2013 04:04:35 +0000 (08:04 +0400)]
* xterm.c (x_make_frame_visible): Restore hack which is needed when
input polling is used.  This is still meaningful for Cygwin, see
http://lists.gnu.org/archive/html/emacs-devel/2013-12/msg00351.html.
* keyboard.c (poll_for_input_1, input_polling_used): Define
unconditionally.

10 years ago* lisp/progmodes/python.el (python-indent-calculate-indentation): When
Nathan Trapuzzano [Thu, 12 Dec 2013 03:47:41 +0000 (00:47 -0300)]
* lisp/progmodes/python.el (python-indent-calculate-indentation): When
determining indentation, don't treat "return", "pass", etc., as
operators when they are just string constituents.

* automated/python-test.el (python-indent-block-enders-1): Rename
from python-indent-block-enders.
(python-indent-block-enders-2): New test.

Fixes: debbugs:15812

10 years agoAuto-commit of info/dir files.
Glenn Morris [Thu, 12 Dec 2013 03:41:26 +0000 (22:41 -0500)]
Auto-commit of info/dir files.

10 years ago* admin/update_autogen (info_dir): Tweak commit message.
Glenn Morris [Thu, 12 Dec 2013 03:39:28 +0000 (19:39 -0800)]
* admin/update_autogen (info_dir): Tweak commit message.

10 years agoAdd support for auto-generating info/dir
Glenn Morris [Thu, 12 Dec 2013 03:37:38 +0000 (19:37 -0800)]
Add support for auto-generating info/dir

* admin/update_autogen: Add option to generate info/dir.
(Usage): Add -I.
(info_flag): New variable.
(-I): New option.
(doc): Maybe check its status.
(info_dir): New function.

* admin/dir_top: New file.

* doc/emacs/emacs.texi:
* doc/lispintro/emacs-lisp-intro.texi:
* doc/lispref/elisp.texi:
* doc/misc/autotype.texi, doc/misc/cc-mode.texi, doc/misc/ediff.texi:
* doc/misc/ert.texi, doc/misc/htmlfontify.texi, doc/misc/ido.texi:
* doc/misc/octave-mode.texi, doc/misc/org.texi, doc/misc/srecode.texi:
* doc/misc/todo-mode.texi, doc/misc/tramp.texi:
Sync direntry with info/dir version.