Commit graph

114288 commits

Author SHA1 Message Date
Dmitry Antipov
5ae356d991 * 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).
2013-12-16 11:45:33 +04:00
Stefan Monnier
2013a2f955 * 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.
2013-12-15 21:24:08 -05:00
Eli Zaretskii
db50ad5f11 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>.
2013-12-15 22:39:36 +02:00
Eli Zaretskii
1014b1dc34 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.
2013-12-15 20:37:48 +02:00
Eli Zaretskii
e088f89414 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>.
2013-12-15 19:52:14 +02:00
Juanma Barranquero
119f64dbf6 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.
2013-12-15 18:40:44 +01:00
Eli Zaretskii
cdeb10ce51 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.
2013-12-15 18:51:59 +02:00
Eli Zaretskii
dd1fb8cb77 Fix session GUI startup.
src/frame.h (FRAME_MOUSE_UPDATE): Fix a typo that caused infloop at
 startup.
2013-12-15 18:27:25 +02:00
Paul Eggert
27c1b04384 Add ChangeLog entry for previous checkin of gnutls.c.
This entry was inadvertantly omitted.
2013-12-14 20:42:23 -08:00
Paul Eggert
b4dd49e0fa 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.
2013-12-14 20:20:53 -08:00
Dani Moncayo
f629af5493 * configure.ac (srcdir) [MINGW32]: Yet another tweak to avoid failure
when srcdir is ".".  Fix also the indentation.
2013-12-14 23:59:20 +01:00
Dani Moncayo
c07ff981a3 * configure.ac (srcdir) [MINGW32]: Tweak to 2013-12-14T09:30:15Z!dmoncayo@gmail.com. 2013-12-14 23:06:30 +01:00
Paul Eggert
96c0686368 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.
2013-12-14 13:36:44 -08:00
Ted Zlatanov
5ae811ddef 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.
2013-12-14 14:55:19 -05:00
Eli Zaretskii
2897da4d7b 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.
2013-12-14 21:32:50 +02:00
Ted Zlatanov
31b4827ea9 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.
2013-12-14 13:04:09 -05:00
Martin Rudalics
f93cc74f04 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>.
2013-12-14 18:00:54 +01:00
Tom Willemse
f77d7d1773 * lisp/emacs-lisp/package.el (package--prepare-dependencies): New function.
(package-buffer-info): Use it.

Fixes: debbugs:15108
2013-12-14 11:02:39 -05:00
Stefan Monnier
aa2bddd73d * lisp/icomplete.el (icomplete-completions): Make sure the prefix is already
displayed elsewhere before hiding it.
2013-12-14 09:24:36 -05:00
Dmitry Gutov
660efa1a14 Fix comment from the last change to `ruby-smie-rules' 2013-12-14 15:57:58 +02:00
Martin Rudalics
5645852c2e 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).
2013-12-14 12:06:00 +01:00
Eli Zaretskii
287d70764c Revert 2 last commits in src/alloc.c. 2013-12-14 11:57:53 +02:00
Dani Moncayo
6084a28b66 * configure.ac (srcdir) [MINGW32]: Convert to an absolute MSYS
path of the form "/c/foo/bar" to simplify conversion of formats.
2013-12-14 10:30:15 +01:00
Eli Zaretskii
88927a8f62 Minor tweak of the last commit. 2013-12-14 11:18:23 +02:00
Eli Zaretskii
95c216526e 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.
2013-12-14 11:16:10 +02:00
Eli Zaretskii
0b32070bbd src/fileio.c: Remove redundant empty #ifdef. 2013-12-14 10:33:06 +02:00
Eli Zaretskii
ec4440cf5e 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)
2013-12-14 10:29:42 +02:00
Dmitry Gutov
276bc3337b 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.
2013-12-14 08:46:13 +02:00
Paul Eggert
dc7909c40a * lread.c (load_path_default): Prototype. 2013-12-13 14:27:05 -08:00
David Engster
fa5265fc99 * etc/NEWS: Add sections for CEDET and EIEIO. 2013-12-13 22:41:35 +01:00
Ted Zlatanov
a5c1ac0ca1 progmodes/cfengine.el: Fix `add-hook' doc.
* progmodes/cfengine.el: Fix `add-hook' doc.
2013-12-13 14:49:56 -05:00
Ted Zlatanov
d43957f334 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.
2013-12-13 13:55:08 -05:00
Glenn Morris
06a4f1102f 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
2013-12-13 13:25:30 -05:00
Ted Zlatanov
978a5fdaa3 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.
2013-12-13 13:18:19 -05:00
Martin Rudalics
71e6691e5c 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.
2013-12-13 18:06:30 +01:00
Dmitry Antipov
5035fbc19e * 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.
2013-12-13 19:55:23 +04:00
Dmitry Antipov
b6c888cc7a * font.c (font_close_object): Check for live frame (Bug#16128). 2013-12-13 17:34:05 +04:00
Dmitry Gutov
84c73ba099 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).
2013-12-13 06:14:17 +02:00
Paul Eggert
11dde52908 * 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.
2013-12-12 19:44:59 -08:00
Leo Liu
b9e20952ea * bindings.el (visual-order-cursor-movement): Fix version.
* indent.el (indent-region): Disable progress reporter in
minibuffer.

Fixes: debbugs:16108
2013-12-13 09:54:09 +08:00
Juri Linkov
4a9c6865cb * lisp/simple.el <Keypad support>: Remove key bindings duplicated with bindings.el.
Fixes: debbugs:14397
2013-12-13 03:03:04 +02:00
Fabián Ezequiel Gallina
ce03045172 * 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
2013-12-12 21:56:12 -03:00
Paul Eggert
a3fab1ec17 Fix bug in previous regex.c change, which broke a\{2,}. 2013-12-12 16:51:47 -08:00
Juri Linkov
2bc170c3f1 * lisp/comint.el (comint-mode-map): Replace delete-char' with delete-forward-char'.
Fixes: debbugs:16109
2013-12-13 02:47:18 +02:00
Fabián Ezequiel Gallina
bc9222c934 * 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
2013-12-12 20:32:05 -03:00
Glenn Morris
b55e11bf85 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).
2013-12-12 17:41:31 -05:00
David Engster
2cc82b9fbc Merge from CEDET upstream. 2013-12-12 23:09:15 +01:00
David Engster
b0fe992f36 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.
2013-12-12 22:33:06 +01:00
Eli Zaretskii
163e99358a Remove stale comment from fileio.c. 2013-12-12 22:52:38 +02:00
Paul Eggert
32e93c9e89 Spelling fixes. 2013-12-12 12:07:40 -08:00