1. 12 Dec, 2013 1 commit
    • 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
  2. 11 Dec, 2013 14 commits
  3. 10 Dec, 2013 2 commits
  4. 09 Dec, 2013 8 commits
  5. 08 Dec, 2013 10 commits
    • Katsumi Yamaoka's avatar
      lisp/gnus/gnus-msg.el (gnus-setup-message): Fix the type of argument passed to... · b51eddb2
      Katsumi Yamaoka authored
      lisp/gnus/gnus-msg.el (gnus-setup-message): Fix the type of argument passed to nnir-article-number and nnir-article-group
      b51eddb2
    • Paul Eggert's avatar
      Spelling fixes. · 09a7c0fe
      Paul Eggert authored
      09a7c0fe
    • Dmitry Gutov's avatar
      Port indentation code from js2-mode to js-mode · 47e59c66
      Dmitry Gutov authored
      * lisp/progmodes/js.el (js-auto-indent-flag): Remove, was unused.
      (js-switch-indent-offset): New option.
      (js--proper-indentation): Use it.  And handle the case when
      "default" is actually a key in an object literal.
      (js--same-line): New function.
      (js--multi-line-declaration-indentation): Use it.
      (js--indent-in-array-comp, js--array-comp-indentation): New
      functions.
      (js--proper-indentation): Use them, to handle array comprehension
      continuations.
      47e59c66
    • Leo Liu's avatar
      Re-write flymake-highlight-line in flymake.el · 974ebc9c
      Leo Liu authored
      * progmodes/flymake.el (flymake-highlight-line): Re-write.
      (flymake-make-overlay): Remove arg MOUSE-FACE.
      (flymake-save-string-to-file, flymake-read-file-to-string): Remove.
      974ebc9c
    • Stefan Monnier's avatar
      Make CUA-mode use shift-select-mode. · 27262e39
      Stefan Monnier authored
      * lisp/emulation/cua-base.el (cua--explicit-region-start)
      (cua--last-region-shifted): Remove.
      (cua--deactivate): Use deactivate-mark.
      (cua--pre-command-handler-1): Don't handle shift-selection.
      (cua--post-command-handler-1): Don't change transient-mark-mode.
      (cua--select-keymaps): Use region-active-p rather than
      cua--explicit-region-start or cua--last-region-shifted.
      (cua-mode): Enable shift-select-mode.
      * lisp/emulation/cua-rect.el (cua--rectangle-highlight-for-redisplay):
      New function.
      (redisplay-highlight-region-function): Use it.
      27262e39
    • Stefan Monnier's avatar
      * lisp/rect.el (rectangle-mark-mode): Activate mark even if · 02033d49
      Stefan Monnier authored
      transient-mark-mode is off.
      (rectangle--highlight-for-redisplay): Fix boundary condition when point
      is > mark and at bolp.
      
      Fixes: debbugs:16066
      02033d49
    • Leo Liu's avatar
      Re-implement popup menu for flymake · 6407822c
      Leo Liu authored
      * progmodes/flymake.el (flymake-popup-current-error-menu): Rename
      from flymake-display-err-menu-for-current-line. Reimplement.
      (flymake-posn-at-point-as-event, flymake-popup-menu)
      (flymake-make-emacs-menu): Remove.
      
      Fixes: debbugs:16077
      6407822c
    • Stefan Monnier's avatar
      Use delete-selection-mode in cua-mode. · 6f8dfccf
      Stefan Monnier authored
      * lisp/emulation/cua-base.el (cua--prefix-copy-handler)
      (cua--prefix-cut-handler): Rely on region-extract-function rather than
      checking cua--rectangle.
      (cua-delete-region): Use region-extract-function.
      (cua-replace-region): Delete function.
      (cua-copy-region, cua-cut-region): Obey region-extract-function.
      (cua--pre-command-handler-1): Don't do the delete-selection thing.
      (cua--self-insert-char-p): Ignore `self-insert-iso'.
      (cua--init-keymaps): Don't remap delete-selection commands.
      (cua-mode): Use delete-selection-mode instead of rolling our own.
      * lisp/emulation/cua-rect.el (cua--rectangle-region-extract): New function.
      (region-extract-function): Use it.
      (cua-mouse-save-then-kill-rectangle): Use cua-copy-region.
      (cua-copy-rectangle, cua-cut-rectangle, cua-delete-rectangle):
      Delete functions.
      (cua--init-rectangles): Don't re-remap copy-region-as-kill,
      kill-ring-save, kill-region, delete-char, delete-forward-char.
      Ignore self-insert-iso.
      * lisp/menu-bar.el (clipboard-kill-ring-save, clipboard-kill-region):
      Obey region-extract-function.
      * lisp/emulation/cua-gmrk.el (cua--init-global-mark):
      Ignore `self-insert-iso'.
      
      Fixes: debbugs:16085
      6f8dfccf
    • Stefan Monnier's avatar
      Make registers and delete-selection-mode work on rectangles. · 00a2b823
      Stefan Monnier authored
      * lisp/register.el (describe-register-1): Don't modify the register's value.
      (copy-to-register): Obey region-extract-function.
      * lisp/delsel.el (delete-active-region): Obey region-extract-function.
      00a2b823
    • Leo Liu's avatar
      Clean up flymake.el · a92fa5f1
      Leo Liu authored
      * lisp/progmodes/flymake.el (flymake, flymake-error-bitmap)
      (flymake-warning-bitmap, flymake-fringe-indicator-position)
      (flymake-compilation-prevents-syntax-check)
      (flymake-start-syntax-check-on-newline)
      (flymake-no-changes-timeout, flymake-gui-warnings-enabled)
      (flymake-start-syntax-check-on-find-file, flymake-log-level)
      (flymake-xml-program, flymake-master-file-dirs)
      (flymake-master-file-count-limit)
      (flymake-allowed-file-name-masks): Relocate.
      (flymake-makehash, flymake-float-time)
      (flymake-replace-regexp-in-string, flymake-split-string)
      (flymake-get-temp-dir): Remove.
      (flymake-popup-menu, flymake-nop, flymake-make-xemacs-menu)
      (flymake-current-row, flymake-selected-frame)
      (flymake-get-point-pixel-pos): Remove xemacs compatibity and
      related functions.
      
      Fixes: debbugs:16077
      a92fa5f1
  6. 07 Dec, 2013 3 commits
  7. 06 Dec, 2013 2 commits
    • Michael Albinus's avatar
      Bug#16045 · 4803595d
      Michael Albinus authored
      * progmodes/compile.el (compilation-start):
      * progmodes/grep.el (rgrep): Revert change of 2012-12-20T11:15:38Z!michael.albinus@gmx.de.
      
      * net/tramp-sh.el (tramp-sh-handle-start-file-process):
      Handle long command lines, lasting from "sh -c ...".  (Bug#16045)
      4803595d
    • Eli Zaretskii's avatar
      a59d76e0