1. 14 Dec, 2013 16 commits
    • Paul Eggert's avatar
      Use bool for boolean, focusing on headers. · 96c06863
      Paul Eggert authored
      * 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.
      96c06863
    • Ted Zlatanov's avatar
      Support filtering by keywords in package listings. · 5ae811dd
      Ted Zlatanov authored
      * 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.
      5ae811dd
    • Eli Zaretskii's avatar
      Fix bug #16148 with visual-mode cursor motion and whitespace-newline-mode. · 2897da4d
      Eli Zaretskii authored
       src/xdisp.c (Fmove_point_visually): Expect overshoot in move_it_to
       when character at point is displayed from a display vector.
      2897da4d
    • Ted Zlatanov's avatar
      New verify-error GnuTLS interface for certificate validation · 31b4827e
      Ted Zlatanov authored
      * 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.
      31b4827e
    • Martin Rudalics's avatar
      Have display-buffer-below-selected never split window horizontally. · f93cc74f
      Martin Rudalics authored
      * window.el (display-buffer-below-selected): Never split window
      horizontally.  Suggested by Juri Linkov <juri@jurta.org>.
      f93cc74f
    • Tom Willemse's avatar
      * lisp/emacs-lisp/package.el (package--prepare-dependencies): New function. · f77d7d17
      Tom Willemse authored
      (package-buffer-info): Use it.
      
      Fixes: debbugs:15108
      f77d7d17
    • Stefan Monnier's avatar
      * lisp/icomplete.el (icomplete-completions): Make sure the prefix is already · aa2bddd7
      Stefan Monnier authored
      displayed elsewhere before hiding it.
      aa2bddd7
    • Dmitry Gutov's avatar
      660efa1a
    • Martin Rudalics's avatar
      Hack frame resizing on Windows (Bug#16028). · 5645852c
      Martin Rudalics authored
      * w32term.c (w32_enable_frame_resize_hack): New variable.
      (x_set_window_size): Use it to hack frame resizing on Windows
      (Bug#16028).
      5645852c
    • Eli Zaretskii's avatar
      Revert 2 last commits in src/alloc.c. · 287d7076
      Eli Zaretskii authored
      287d7076
    • Dani Moncayo's avatar
      * configure.ac (srcdir) [MINGW32]: Convert to an absolute MSYS · 6084a28b
      Dani Moncayo authored
      path of the form "/c/foo/bar" to simplify conversion of formats.
      6084a28b
    • Eli Zaretskii's avatar
      Minor tweak of the last commit. · 88927a8f
      Eli Zaretskii authored
      88927a8f
    • Eli Zaretskii's avatar
      Avoid crashing due to closing of font whose driver pointer is NULL. · 95c21652
      Eli Zaretskii authored
       src/alloc.c (cleanup_vector): Don't call the font driver's 'close'
       method if the 'driver' pointer is NULL.
      95c21652
    • Eli Zaretskii's avatar
      0b32070b
    • Eli Zaretskii's avatar
      Fix copy-file on MS-Windows with file names outside of current locale. · ec4440cf
      Eli Zaretskii authored
       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)
      ec4440cf
    • Dmitry Gutov's avatar
      Fix bug#16118 · 276bc333
      Dmitry Gutov authored
      * 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.
      276bc333
  2. 13 Dec, 2013 16 commits
  3. 12 Dec, 2013 8 commits
    • Fabián Ezequiel Gallina's avatar
      * lisp/progmodes/python.el (python-indent-calculate-indentation): Fix · bc9222c9
      Fabián Ezequiel Gallina authored
      de-denters cornercase.
      
      * test/automated/python-tests.el (python-indent-dedenters-2): New test.
      
      Fixes: debbugs:15731
      bc9222c9
    • Glenn Morris's avatar
      Generate info/dir from .texi files rather than .info files · b55e11bf
      Glenn Morris authored
      * 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).
      b55e11bf
    • David Engster's avatar
      Merge from CEDET upstream. · 2cc82b9f
      David Engster authored
      2cc82b9f
    • David Engster's avatar
      Merge with CEDET upstream. · b0fe992f
      David Engster authored
      * 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.
      b0fe992f
    • Eli Zaretskii's avatar
      Remove stale comment from fileio.c. · 163e9935
      Eli Zaretskii authored
      163e9935
    • Paul Eggert's avatar
      Spelling fixes. · 32e93c9e
      Paul Eggert authored
      32e93c9e
    • Stefan Monnier's avatar
      * lisp/emacs-lisp/nadvice.el: Add `depth' property to manage ordering. · cb3a1380
      Stefan Monnier authored
      (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.
      cb3a1380
    • Paul Eggert's avatar
      Avoid undefined behavior with huge regexp interval counts. · 4618713a
      Paul Eggert authored
      * 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.
      4618713a