summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
Commit message (Collapse)AuthorAgeFilesLines
* * lisp/emacs-lisp/eieio*.el: Remove "name" field of objectsStefan Monnier2014-12-224-101/+98
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/eieio-base.el (clone) <eieio-instance-inheritor>: Use call-next-method. (eieio-constructor): Rename from `constructor'. (eieio-persistent-convert-list-to-object): Drop objname. (eieio-persistent-validate/fix-slot-value): Don't hardcode eieio--object-num-slots. (eieio-named): Use a normal slot. (slot-missing) <eieio-named>: Remove. (eieio-object-name-string, eieio-object-set-name-string, clone) <eieio-named>: New methods. * lisp/emacs-lisp/eieio-core.el (eieio--defalias): Follow aliases. (eieio--object): Remove `name' field. (eieio-defclass): Adjust to new convention where constructors don't take an "object name" any more. (eieio--defgeneric-init-form, eieio--defmethod): Follow aliases. (eieio-validate-slot-value, eieio-oset-default) (eieio-slot-name-index): Don't hardcode eieio--object-num-slots. (eieio-generic-call-primary-only): Simplify. * lisp/emacs-lisp/eieio-custom.el (eieio-widget-test): Remove dummy arg. (eieio-object-value-get): Use eieio-object-set-name-string. * lisp/emacs-lisp/eieio.el (make-instance): Simplify by not adding an object name argument. (eieio-object-name): Use eieio-object-name-string. (eieio--object-names): New const. (eieio-object-name-string, eieio-object-set-name-string): Re-implement using a hashtable rather than a built-in slot. (eieio-constructor): Rename from `constructor'. Remove `newname' arg. (clone): Don't mess with the object's "name". * test/automated/eieio-test-persist.el (persistent-with-objs-slot-subs): The type FOO-child is the same as FOO. * test/automated/eieio-tests.el: Remove dummy object names.
* * lisp/emacs-lisp/eieio-core.el (eieio--class-v): Rename from class-v.Stefan Monnier2014-12-227-157/+148
| | | | | | | | (method-*): Add a "eieio--" prefix to those constants. * lisp/emacs-lisp/eieio-speedbar.el: Use lexical-binding. * lisp/emacs-lisp/eieio.el: Move edebug specs to the corresponding macro.
* * lisp/emacs-lisp/eieio*.el: Use hashtables rather than obarraysStefan Monnier2014-12-226-353/+288
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/eieio-core.el (class): Rename field symbol-obarray to symbol-hashtable. It contains a hashtable instead of an obarray. (generic-p): Use symbol property `eieio-method-hashtable' instead of `eieio-method-obarray'. (generic-primary-only-p, generic-primary-only-one-p): Slight optimization. (eieio-defclass-autoload-map): Use a hashtable instead of an obarray. (eieio-defclass-autoload, eieio-defclass): Adjust/simplify accordingly. (eieio-class-un-autoload): Use autoload-do-load. (eieio-defclass): Use dolist, cl-pushnew, cl-callf. Use new cl-deftype-satisfies. Adjust to use of hashtables. Don't hardcode the value of eieio--object-num-slots. (eieio-defgeneric-form-primary-only-one): Remove `doc-string' arg. Use a closure rather than a backquoted lambda. (eieio--defmethod): Adjust call accordingly. Set doc-string via the function-documentation property. (eieio-slot-originating-class-p, eieio-slot-name-index) (eieiomt--optimizing-hashtable, eieiomt-install, eieiomt-add) (eieio-generic-form): Adjust to use of hashtables. (eieiomt--sym-optimize): Rename from eieiomt-sym-optimize; take additional class argument. (eieio-generic-call-methodname): Remove, unused. * lisp/emacs-lisp/eieio-custom.el: Use lexical-binding. (eieio-object-value-to-abstract): Simplify. * lisp/emacs-lisp/eieio-datadebug.el: Use lexical-binding. * lisp/emacs-lisp/eieio-opt.el (eieio-build-class-list): Use cl-mapcan. (eieio-build-class-alist): Use dolist. (eieio-all-generic-functions): Adjust to use of hashtables. * lisp/emacs-lisp/eieio.el (child-of-class-p): Fix case where `class' is `eieio-default-superclass'. * test/automated/eieio-test-methodinvoke.el (eieio-test-method-store): Remove use of eieio-generic-call-methodname. (eieio-test-method-order-list-3, eieio-test-method-order-list-6) (eieio-test-method-order-list-7, eieio-test-method-order-list-8): Adjust the expected result accordingly. * lisp/emacs-lisp/eieio-base.el (eieio-persistent-slot-type-is-class-p): Prefer \' to $.
* Fix the `with-demoted-errors' callsSam Steingold2014-12-181-2/+2
| | | | | * lisp/emacs-lisp/package.el (package-activate-1): Fix the `with-demoted-errors' calls: the first argument must be a string literal.
* Avoid a compilation warningSam Steingold2014-12-181-0/+1
| | | | | * lisp/emacs-lisp/package.el: Avoid a compilation warning by declaring the `find-library-name' function.
* Fixes: debbugs:19390Dmitry Gutov2014-12-181-1/+1
| | | | | * lisp/emacs-lisp/package.el (package-activate): Do not re-activate or reload the dependencies.
* Don't reload packages at startupDmitry Gutov2014-12-181-4/+8
| | | | | | | | | | Fixes: debbugs:19390 * lisp/emacs-lisp/package.el (package-activate-1): Add RELOAD argument and a docstring. (package-activate): Call itself on dependencies on PACKAGE with the same FORCE argument. Pass FORCE as RELOAD into `package-activate-1' .
* load-history may contain nil "filenames"Sam Steingold2014-12-171-3/+6
| | | | | * lisp/emacs-lisp/package.el (package--list-loaded-files): Handle `(nil ...)' elements in `load-history'.
* Speed up package--list-loaded-files a bitDmitry Gutov2014-12-171-2/+1
| | | | | | | Fixes: debbugs:19390 * lisp/emacs-lisp/package.el (package--list-loaded-files): Don't call file-truename on load-history elements.
* * lisp/emacs-lisp/seq.el: New file.Nicolas Petton2014-12-161-0/+269
| | | | | * doc/lispref/sequences.texi (Seq Library): Add documentation for seq.el. * test/automated/seq-tests.el: New file.
* Add an extra column for Version in list-packages tableSteve Purcell2014-12-141-1/+1
| | | | | * emacs-lisp/package.el (package-menu-mode): Use an extra column for the "Version" column, to accomodate date-and-time-based versions.
* Spelling fixesPaul Eggert2014-12-132-29/+30
| | | | | | | | | | | | | All uses changed. * lib-src/etags.c (analyze_regex): Rename from analyse_regex. * lisp/cedet/semantic/lex-spp.el: (semantic-lex-spp-analyzer-do-replace): Rename from semantic-lex-spp-anlyzer-do-replace. * lisp/emacs-lisp/cconv.el (cconv--analyze-use): Rename from cconv--analyse-use. (cconv--analyze-function): Rename from cconv--analyse-function. (cconv-analyze-form): Rename from cconv-analyse-form. * src/regex.c (analyze_first): Rename from analyze_first.
* emacs-lisp/package.el (package-activate-1): Reload package after upgradeArtur Malabarba2014-12-131-4/+16
| | | | | | After installing a package, reloads files returned by `package--list-loaded-files'. Fix bug#10125, bug#18443, and bug#18448.
* emacs-lisp/package.el (package--list-loaded-files): New functionArtur Malabarba2014-12-131-0/+32
| | | | | List files in a given directory which correspond to already loaded files.
* * lisp/emacs-lisp/eldoc.el (eldoc-documentation-function): Change default.Stefan Monnier2014-12-101-7/+9
| | | | (eldoc-mode, eldoc-schedule-timer): Adjust to new default.
* * lisp/emacs-lisp/avl-tree.el: Use lexical-binding and cl-lib.Stefan Monnier2014-12-081-31/+27
| | | | (avl-tree--root): Remove redundant defsetf.
* * lisp: Prefer inlinable functions to macros.Stefan Monnier2014-12-051-0/+4
| | | | | | | | | | | | | | | | | * lisp/fringe.el (fringe-bitmap-p): Make it a plain function. * lisp/tooltip.el (tooltip-region-active-p): Remove. * lisp/net/shr.el (shr-char-breakable-p, shr-char-kinsoku-bol-p) (shr-char-kinsoku-eol-p, shr-char-nospace-p): Use define-inline. * lisp/url/url-future.el (url-future-done-p, url-future-completed-p) (url-future-errored-p, url-future-cancelled-p): * lisp/url/url-dav.el (url-dav-http-success-p): Use define-inline. * lisp/vc/ediff-init.el (ediff-odd-p): Remove. (ediff-background-face): Use cl-oddp instead. (ediff-buffer-live-p): Make it a defsubst.
* * lisp/emacs-lisp/eieio-core.el: Prefer inlinable functions over macros.Stefan Monnier2014-12-051-16/+15
| | | | | | | (class-p, generic-p, eieio-object-p, class-abstract-p): Make them defsubst, so as to avoid corner case problems where the arg might be evaluated in the condition-case, or it can't be passed to higher-order functions like `cl-some'.
* * lisp/emacs-lisp/inline.el: Cosmetic and minor fixes.Stefan Monnier2014-12-031-12/+23
| | | | | | | | | * lisp/emacs-lisp/inline.el: Fix up copyright header. (inline-quote, inline-const-p, inline-const-val, inline-error): Silence compiler warnings. (inline-letevals): Fix edebug spec. (inline--testconst-p): Consider lambda expressions as const-p. (inline--getconst-val): Use inline--testconst-p.
* New macro `define-inline'.Stefan Monnier2014-12-012-6/+256
| | | | * lisp/emacs-lisp/inline.el: New file.
* byte-run.el (function-put): Match argument names to docstring (bug#19118).Nicolas Richard2014-11-251-3/+4
|
* New macro macroexp-let2*Leo Liu2014-11-244-18/+24
| | | | | | | | | | * emacs-lisp/macroexp.el (macroexp-let2*): New macro. * window.el (with-temp-buffer-window) (with-current-buffer-window, with-displayed-buffer-window): * emacs-lisp/cl-macs.el (cl--compiler-macro-adjoin): * emacs-lisp/cl-lib.el (substring): * emacs-lisp/cl-extra.el (cl-getf): Use it.
* New macro define-adviceLeo Liu2014-11-182-2/+26
| | | | | | | | | | * doc/lispref/functions.texi (Advising Named Functions): Document define-advice. * lisp/emacs-lisp/nadvice.el (define-advice): New macro. * lisp/emacs-lisp/lisp-mode.el (lisp-imenu-generic-expression): Add define-advice. (lisp-font-lock-keywords-1): Add define-advice.
* Improve time stamp handling, and be more consistent about it.Paul Eggert2014-11-161-9/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This implements a suggestion made in: http://lists.gnu.org/archive/html/emacs-devel/2014-10/msg00587.html Among other things, this means timer.el no longer needs to autoload the time-date module. * doc/lispref/os.texi (Time of Day, Time Conversion, Time Parsing) (Processor Run Time, Time Calculations): Document the new behavior, plus be clearer about the old behavior. (Idle Timers): Take advantage of new functionality. * etc/NEWS: Document the changes. * lisp/allout-widgets.el (allout-elapsed-time-seconds): Doc fix. * lisp/arc-mode.el (archive-ar-summarize): * lisp/calendar/time-date.el (seconds-to-time, days-to-time, time-since): * lisp/emacs-lisp/timer.el (timer-relative-time, timer-event-handler) (run-at-time, with-timeout-suspend, with-timeout-unsuspend): * lisp/net/tramp.el (tramp-time-less-p, tramp-time-subtract): * lisp/proced.el (proced-time-lessp): * lisp/timezone.el (timezone-time-from-absolute): * lisp/type-break.el (type-break-schedule, type-break-time-sum): Simplify by using new functionality. * lisp/calendar/cal-dst.el (calendar-next-time-zone-transition): Do not return time values in obsolete and undocumented (HI . LO) format; use (HI LO) instead. * lisp/calendar/time-date.el (with-decoded-time-value): Treat 'nil' as current time. This is mostly for XEmacs. (encode-time-value, with-decoded-time-value): Obsolete. (time-add, time-subtract, time-less-p): Use no-op autoloads, for XEmacs. Define only if XEmacs, as they're now C builtins in Emacs. * lisp/ldefs-boot.el: Update to match new time-date.el * lisp/proced.el: Do not require time-date. * src/editfns.c (invalid_time): New function. Use it instead of 'error ("Invalid time specification")'. (time_add, time_subtract, time_arith, Ftime_add, Ftime_less_p) (decode_float_time, lisp_to_timespec, lisp_time_struct): New functions. (make_time_tail, make_time): Remove. All uses changed to use new functions or plain list4i. (disassemble_lisp_time): Return effective length if successful. Check that LOW is an integer, if it's combined with other components. (decode_time_components): Decode into struct lisp_time, not struct timespec, so that we can support a wide set of times regardless of whether time_t is signed. Decode plain numbers as seconds since the Epoch, and nil as the current time. (lisp_time_argument, lisp_seconds_argument, Ffloat_time): Reimplement in terms of new functions. (Fencode_time): Just use list2i. (syms_of_editfns): Add time-add, time-subtract, time-less-p. * src/keyboard.c (decode_timer): Don't allow the new formats (floating point or nil) in timers. * src/systime.h (LO_TIME_BITS): New constant. Use it everywhere in place of the magic number '16'. (struct lisp_time): New type. (decode_time_components): Use it. (lisp_to_timespec): New decl.
* * lisp/emacs-lisp/backquote.el (backquote-process): Optimize away the ,' case.Stefan Monnier2014-11-151-8/+9
|
* Update from CEDET trunk.David Engster2014-11-102-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * grammars/c.by (template-type): Add :template-specifier and :typevar to capture extra details about the template. (opt-post-fcn-modifiers): Splice in the found symbol into the return value correctly. (QUESTION): New punctuation. (expression): Add ternary conditional support. * grammars/scheme.by (MODULE): New token. (scheme): Handle expanding the MODULE tag. (scheme-list): Remove closeparen required match. (scheme-in-list): Remove extraneous matches for DEFINE. Add support for MODULE Simplify matching for code & make work. (name-args, name-arg-list, name-arg-expand): Make it work. * semantic.el (semantic-mode): Add/remove 3 completion-at-point-functions. (semantic-completion-at-point-function): Removed. (semantic-analyze-completion-at-point-function) (semantic-analyze-notc-completion-at-point-function) (semantic-analyze-nolongprefix-completion-at-point-function): New completion at point functions. * semantic/doc.el (semantic-doc-snarf-comment-for-tag): Fix case when comment-end is empty string. * semantic/debug.el (semantic-debug-parser-debugger-source): New buffer local variable. (semantic-debug-interface): Add 'nil' initform to overlays. (semantic-debug-mode): Remove read-only tags from buffers on exit. (semantic-debug): Add autoload cookie. Force the language specific debugger to load. * semantic/db.el (generic::semanticdb-full-filename): New generic method to allow this method to be used on buffer names via an associated database. * semantic/symref.el (semantic-symref-cleanup-recent-buffers-fcn): When cleaning up buffers, don't clean up buffers that are being used (i.e., in a window) when the hook fires. (semantic-symref-recently-opened-buffers): New tracking variable. (semantic-symref-cleanup-recent-buffers-fcn): New hook fcn. (semantic-symref-result-get-tags): Move logic into `semantic-symref-hit-to-tag-via-buffer', and cleanup buffers via the symref cleanup function in post-command-hook. (semantic-symref-hit-to-tag-via-buffer): Logic that used to be from above. (semantic-symref-hit-to-tag-via-db): New. * semantic/analyze.el: (semantic-analyze-find-tag-sequence-default): If first entry in sequence is the only one, apply tagclass filter. (semantic-analyze-princ-sequence): Show slot even if empty. (semantic-analyze-find-tag-sequence) (semantic-analyze-find-tag-sequence-default): Add flags argument. Add support for forcing the final entry of the sequence to be of class variable. (semantic-analyze-find-tag): Fix bug where input class filter was ignored if there was a typecache match. (semantic-analyze-current-context-default): For assignments, the assignee now must be of class variable. * semantic/analyze/complete.el (semantic-analyze-possible-completions-default): Add 'no-longprefix' flag. When used, the prefix and prefixtypes are shortened to just the last symbol. * semantic/bovine/c.el (semantic-c-do-lex-if): Catch errors from 'hideif', and push to the parser warning stack. (semantic-lex-cpp-define): When a comment is at the end of a macro, do not subtract an extra 1 from the found position. Fixes bug with: #define foo (a)/**/ adding an extra ')' to the stream. * semantic/bovine/scm.el (semantic-lex-scheme-symbol): Allow symbols to be one char long. * semantic/bovine/grammar.el (bovine-grammar-calculate-source-on-path): New. (bovine-grammar-setupcode-builder): Use it. * ede.el (ede/detect): New require. (ede-version): Bump version (ede-initialize-state-current-buffer): Use new `ede-detect-directory-for-project' to detect projects first instead of depending on currente dir only. (ede-delete-project-from-global-list): New. (ede-flush-deleted-projects): Use above. (ede-check-project-query-fcn): New variable (ede-check-project-directory): Use above when querying the user. Added to support unit testing of this security measure. (ede-initialize-state-current-buffer): Use `ede-directory-project-cons' instead of the -detect- fcn to take advantage of the cache. Pass found project into `ede-load-project-file'. (ede-load-project-file): Add new input DETECTIN. (ede-rescan-toplevel): Get the proj root a better way. (ede-load-project-file): Return the loaded object. When asking for existing project, ask for an exact match. (ede-initialize-state-current-buffer): Simplify some conditional logic. (ede-load-project-file): Simplify conditional logic. (ede-global-list-sanity-check): New Testing fcn. (ede-parent-project): Replace old code with call to faster `ede-find-subproject-for-directory'. (ede-load-project-file): Use `ede-directory-get-toplevel-open-project' instead of above deleted. Rename "pfc" to "autoloader". Use `ede-directory-project-cons' to detect a project. Delete no project found case where we search up the tree. * ede/auto.el (ede-project-autoload): Fix doc typo. Add `:root-only' slot. (ede-auto-load-project): Doc update: warn to not use. (ede-dir-to-projectfile): Deleted. (ede-project-autoload-dirmatch): Add subdir-only slot. Make configdatastash unbound by default. (ede-do-dirmatch): If subdir-only is true, then don't allow exact matches. Account for configdatastash as unbound. Assume value of nil means no tool installed. Make sure loaded path matches from beginning. Stash the regexp, not the raw string. (ede-project-class-files): Note that makefile and automake are not root only. (ede-auto-detect-in-dir): New (for use with `ede/detect.el'). (ede-project-dirmatch-p): Deleted. (ede-project-root-directory): Remove body, return nil. (ede-project-autoload): :proj-root-dirmatch can be null & doc fix. (ede-auto-detect-in-dir): If there is no :proj-file, check for a dirmatch. * ede/generic.el (ede/config): Replace require of ede. (ede-generic-new-autoloader): Generic projects are now safe by default. Note this is NOT a root only project. (project-rescan, ede-project-root, ede-generic-target-java) (ede-java-classpath, ede-find-subproject-for-directory): New. (ede-enable-generic-projects): Add new autoloaders for git, bzr, hg, sv, CVS. (ede-generic-vc-project) (ede-generic-vc-project::ede-generic-setup-configuration): New. (ede-generic-config): Remove slots: c-include-path, c-preprocessor-table, c-preprocessor-files, classpath, build-command, debug-command, run command. Inherit from ede-extra-config-build, ede-extra-config-program. Make run-command :value match :custom so only strings are accepted. Add some more :group slot specifiers. (ede-generic-project): Add mixins `ede-project-with-config-c' and `ede-project-with-config-java'. Inherit from `ede-project-with-config-build', `ede-project-with-config-program'. Subclass `ede-project-with-config'. Remove duplication from new baseclass. (ede-generic-target): Inherit from `ede-target-with-config-build', `ede-target-with-config-program'. Subclass `ede-target-with-config'. (ede-generic-target-c-cpp): Add mixin `ede-target-with-config-c'. (ede-generic-target-java): Add mixin `ede-target-with-config-java'. (ede-preprocessor-map, ede-system-include-path) (edejava-classpath): Deleted, moved to config.el. (project-compile-project, project-compile-target) (project-debug-target, project-run-target): Deleted. (ede-generic-get-configuration, ede-generic-setup-configuration) (ede-commit-project, project-rescan) (ede-generic-project::ede-customize) (ede-generic-target::ede-customize) (ede-generic-config::eieio-done-customizing) (ede-generic-config::ede-commit): Deleted. Subsumed by new baseclass. (ede-preprocessor-map, ede-system-include-path) (project-debug-target, project-run-target): Call new `ede-config-get-configuration' instead of old version. (ede-generic-load): Do not add to global list here. * ede/files.el (ede-find-project-root) (ede-files-find-existing) (ede-directory-get-toplevel-open-project-new): Deleted. (ede-project-root-directory): Use `ede-project-root' first. (ede-project-directory-remove-hash) (ede--directory-project-from-hash) (ede--directory-project-add-description-to-hash): Rename to make internal symbols (via --). Expand input dir first. (ede-directory-project-p): Doc fix (note obsoleted.) (ede-toplevel-project-or-nil): Alias to `ede-toplevel-project'. (ede-toplevel-project): Doc Fix. Delete commented out old code. Simplify returning result from ede-detect-directory-for-project. (ede-directory-get-open-project): Support when inodes are disabled. If disabled to str compare on root project. (ede-directory-get-toplevel-open-project): Enabled nested projects. When doing directory name matching, save the 'short' version of an answer (non-exact match) and eventually select the shortest answer at the end. Expand the filename of tested projects. Better support for when inodes are disabled. Add 'exact' option so that it will return a project that is an exact match. (ede-find-subproject-for-directory): Small optimization to run `file-truename' less often. (ede-directory-project-p): Move content, then use `ede-directory-project-cons'. Use `ede-detect-directory-for-project', replacing old detection loop. (ede-directory-project-cons): New, from above. (ede-toplevel-project): Toss old scanning code. Use `ede-detect-directory-for-project' instead. (ede-directory-get-toplevel-open-project-new): New. * ede/linux.el (ede-linux-project-root): Deleted. (ede-project-autoload): Remove dirmatch entry - it is no longer needed. * lisp/cedet/ede/proj.el (project-rescan): Replace direct manipulation of `ede-projects' with equivalent and better functions. (ede-proj-load): Replace call to test if dir has project to explicity ask filesystem if Project.ede is there. * ede/config.el: * ede/detect.el: New files. * ede/project-am.el (project-run-target): Add "./" to program to run for systems where '.' isn't in PATH. (project-am-load): Remove old code regarding `ede-constructing'. Just read in the makefiles. * ede/linux.el (ede-linux-load): Do not add to global list here. Don't check for existing anymore. (project-rescan): New. (ede-linux-project-list, ede-linux-file-existing): Deleted. (ede-linux-project-root): Delete body. Need symbol for autoloads for now. (ede-linux-project): No longer instance tracker. (ede-project-autoload): Don't provide :proj-root * ede/emacs.el (ede-emacs-load): Do not add project to global list here. Don't look for existing first. (ede-project-autoload): Remove dirmatch entry - it is no longer needed. Don't provide proj-root anymore. (ede-emacs-project-list, ede-emacs-file-existing): Delete. (ede-emacs-project-root): Remove body (need symbol for loaddefs still). (ede-emacs-project): Do not instance track anymore. * ede/cpp-root.el (initialize-instance): Remove commented code. Add note about why we are adding the project to the master list. Make sure if we are replacing a prev version, remove from global list. (ede-cpp-root-file-existing) (ede-cpp-root-project-file-for-dir) (ede-cpp-root-count, ede-cpp-root-project-root, ede-cpp-root-load) (ede-project-autoload cpp-root): Deleted. (ede-project-root-directory): Return :directory instead of calculating from :file. (project-rescan): New. * ede/base.el (ede-toplevel): Only use buffer cached value if subproj not passed in. * srecode/java.el (srecode-semantic-handle-:java): Fix case when an EDE project didn't support java paths. * lisp/cedet/ede/proj-elisp.el (ede-proj-target-elisp::ede-proj-tweak-autoconf): Kill buffer after saving modified elisp-comp script, as to avoid "file has changed on disk; really edit the buffer" questions when script gets rewritten. * emacs-lisp/eieio-custom.el (eieio-customize-object): Set eieio-cog (current group) to g, which is an improved form of input group. * srecode/doc-cpp.srt (mode): Set to c mode so this works with both C and C++.
* Fix bootstrap failure after last change to eval-and-compile.Stefan Monnier2014-11-095-31/+39
| | | | | | | | | | | | | * lisp/emacs-lisp/bytecomp.el (byte-compile-initial-macro-environment): Don't call byte-compile-preprocess since the result will go through cconv. (byte-compile-output-docform): Handle uninterned `name' correctly. * lisp/emacs-lisp/cl-macs.el (cl-define-compiler-macro): Use interned name to circumvent byte-compiler bug. * lisp/emacs-lisp/cl-extra.el (cl-get): Silence compiler warning. * lisp/emacs-lisp/macroexp.el (macroexp--expand-all): Fix typo. (macroexp--compiler-macro): Remove left-over debug code.
* Merge from emacs-24; up to 117689Glenn Morris2014-11-081-2/+5
|\
| * * bytecomp.el (byte-compile-report-error): Allow the argument to be a string.Glenn Morris2014-11-081-2/+5
| | | | | | | | Due to the vague doc, it was already being used this way.
* | * lisp/emacs-lisp/bytecomp.el: Add a warning and remove a spurious warning.Stefan Monnier2014-11-081-50/+54
| | | | | | | | | | | | | | (byte-compile-initial-macro-environment): Don't compile before eval in `eval-and-compile'. (byte-compile-arglist-warn): Add check for defining macros after their first use. Check call use even if the function is fboundp.
* | package.el: Fix the last commitDaiki Ueno2014-11-061-3/+1
| |
* | package.el: Display output sent to stderr, when verification failedDaiki Ueno2014-11-061-7/+23
| | | | | | | | | | * emacs-lisp/package.el (package--display-verify-error): New function. (package--check-signature): Use it to display output sent to stderr.
* | * lisp/emacs-lisp/macroexp.el (macroexp--expand-all): Optimize away trivialStefan Monnier2014-11-051-0/+4
| | | | | | | | uses of `funcall'.
* | Revert previous accidental commitGlenn Morris2014-11-042-34/+9
| |
* | Merge from emacs-24; up to 117669Glenn Morris2014-11-042-9/+34
| |
* | * lisp/emacs-lisp/byte-run.el (defun-declarations-alist): Fix compiler-macroStefan Monnier2014-11-032-9/+16
| | | | | | | | | | | | autoloading when specified as a lambda. * lisp/emacs-lisp/edebug.el (edebug-safe-prin1-to-string): Assume that edebug-prin1-to-string already handles circularity.
* | Fix bug #18897 with printing large objects from eieio.el.Eric Abrahamsen2014-11-021-12/+8
| | | | | | | | | | | | lisp/emacs-lisp/eieio.el (eieio-edebug-prin1-to-string): Adjust for use as advice. (edebug-setup-hook): Advise `edebug-prin1-to-string'.
* | * lisp/emacs-lisp/pp.el (pp-macroexpand-expression): Use macroexpand-1.Stefan Monnier2014-11-022-3/+3
| | | | | | | | | | | | * lisp/progmodes/elisp-mode.el (emacs-lisp-macroexpand): Idem. Fixes: debbugs:18821
* | * lisp/emacs-lisp/macroexp.el (macroexpand-1): New function.Stefan Monnier2014-10-312-7/+30
| | | | | | | | | | | | | | (macroexp--expand-all): Unrelated tweaks. * lisp/emacs-lisp/gv.el (gv-get): Use macroexpand-1. Fixes: debbugs:18821
* | Merge from emacs-24; up to 117634Glenn Morris2014-10-292-9/+15
|\|
| * * lisp/emacs-lisp/bytecomp.el: Require cl-extra.Stefan Monnier2014-10-232-1/+6
| | | | | | | | | | | | * lisp/emacs-lisp/cl-extra.el: Add missing provide. Fixes: debbugs:18804
| * * lisp/emacs-lisp/bytecomp.el (byte-compile-and-folded): Optimize case whereStefan Monnier2014-10-221-9/+10
| | | | | | | | | | | | | | all args are copyable. (=, <, >, <=, >=): Re-enable the optimization. Fixes: debbugs:18767
* | * ses.el (macroexp): add require for this package, so that functionVincent Belaïche2014-10-252-6/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `ses--cell gets macroexp-quote. (ses--cell): makes formula a macroexp-quote of value when formula is nil. The rationale of this changr is to allow in the future shorter SES files, e.g. we could have only `(ses-cell A1 1.0)' instead of `(ses-cell A1 1.0 1.0 nil REFLIST)'. In such a case reference list REFLIST would be re-computed after load --- thus trading off load time against file size. * emacs-lisp/package.el (package--alist-to-plist-args): use macroexp-quote instead of a lambda expression which has the same content as macroexp-quote. (macroexp): add require for this package, so that function `package--alist-to-plist-args' gets macroexp-quote. * emacs-lisp/macroexp.el (macroexp-quote): new defun.
* | * lisp/emacs-lisp/cl-macs.el (cl-defstruct): Define an internal predicateStefan Monnier2014-10-231-48/+54
| | | | | | | | | | | | even if :predicate was nil, for the benefit of typep. Record the name of the predicate for typep's use. (cl--make-type-test): Use pcase. Obey new cl-deftype-satisfies property.
* | * lisp/epg.el: Use cl-defstruct.Stefan Monnier2014-10-231-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (epg-make-data-from-file, epg-make-data-from-string, epg-data-file) (epg-data-string): Define via cl-defstruct. (epg--gv-nreverse): New macro. (epg-context--make): New constructor (provided vi cl-defstruct). (epg-make-context): Rewrite using it. (epg-context-protocol, epg-context-program) (epg-context-home-directory, epg-context-armor, epg-context-textmode) (epg-context-include-certs, epg-context-cipher-algorithm) (epg-context-digest-algorithm, epg-context-compress-algorithm) (epg-context-passphrase-callback, epg-context-progress-callback) (epg-context-signers, epg-context-sig-notations, epg-context-process) (epg-context-output-file, epg-context-result, epg-context-operation) (epg-context-pinentry-mode): Define using cl-defstruct. (epg-context-set-protocol, epg-context-set-program) (epg-context-set-include-certs, epg-context-set-cipher-algorithm) (epg-context-set-digest-algorithm) (epg-context-set-sig-notations, epg-context-set-process) (epg-context-set-output-file, epg-context-set-result) (epg-context-set-operation, epg-context-set-pinentry-mode) (epg-context-set-compress-algorithm): Remove. Use setf instead. (epg-context-set-armor, epg-context-set-textmode) (epg-context-set-signers): Redefine using setf and declare as obsolete. (epg-context-set-passphrase-callback) (epg-context-set-progress-callback): Use setf. (epg-signature-notations): Rename from epg-sig-notations. (epg-make-signature, epg-signature-status, epg-signature-key-id) (epg-signature-validity, epg-signature-fingerprint) (epg-signature-creation-time, epg-signature-expiration-time) (epg-signature-pubkey-algorithm, epg-signature-digest-algorithm) (epg-signature-class, epg-signature-version): Define vi cl-defstruct. (epg-signature-set-status, epg-signature-set-key-id) (epg-signature-set-validity, epg-signature-set-fingerprint) (epg-signature-set-creation-time, epg-signature-set-expiration-time) (epg-signature-set-pubkey-algorithm) (epg-signature-set-digest-algorithm, epg-signature-set-class) (epg-signature-set-version, epg-signature-set-notations): Remove. Use setf instead. (epg-make-new-signature, epg-new-signature-type) (epg-new-signature-pubkey-algorithm) (epg-new-signature-digest-algorithm, epg-new-signature-class) (epg-new-signature-creation-time, epg-new-signature-fingerprint): Define using cl-defstruct. (epg-make-key, epg-key-owner-trust, epg-key-sub-key-list) (epg-key-user-id-list): Define using cl-defstruct. (epg-key-set-sub-key-list, epg-key-set-user-id-list): Remove. Use setf instead. (epg-make-sub-key, epg-sub-key-validity, epg-sub-key-capability) (epg-sub-key-secret-p, epg-sub-key-algorithm, epg-sub-key-length) (epg-sub-key-id, epg-sub-key-creation-time) (epg-sub-key-expiration-time, epg-sub-key-fingerprint): Define using cl-defstruct. (epg-sub-key-set-fingerprint): Remove. Use setf instead. (epg-make-user-id, epg-user-id-validity, epg-user-id-string) (epg-user-id-signature-list): Define using cl-defstruct. (epg-user-id-set-signature-list): Remove. Use setf instead. (epg-make-key-signature, epg-key-signature-validity) (epg-key-signature-pubkey-algorithm, epg-key-signature-key-id) (epg-key-signature-creation-time, epg-key-signature-expiration-time) (epg-key-signature-user-id, epg-key-signature-class) (epg-key-signature-exportable-p): Define using cl-defstruct. (epg-make-sig-notation, epg-sig-notation-name) (epg-sig-notation-value, epg-sig-notation-human-readable) (epg-sig-notation-critical): Define using cl-defstruct. (epg-sig-notation-set-value): Remove. Use setf instead. (epg-make-import-status, epg-import-status-fingerprint) (epg-import-status-reason, epg-import-status-new) (epg-import-status-user-id, epg-import-status-signature) (epg-import-status-sub-key, epg-import-status-secret): Define using cl-defstruct. (epg-make-import-result, epg-import-result-considered) (epg-import-result-no-user-id, epg-import-result-imported) (epg-import-result-imported-rsa, epg-import-result-unchanged) (epg-import-result-new-user-ids, epg-import-result-new-sub-keys) (epg-import-result-new-signatures, epg-import-result-new-revocations) (epg-import-result-secret-read, epg-import-result-secret-imported) (epg-import-result-secret-unchanged, epg-import-result-not-imported) (epg-import-result-imports): Define using cl-defstruct. * lisp/emacs-lisp/package.el: Require EPG during macroexpansion. (package--check-signature, package-import-keyring): Use setf instead of epg-context-set-home-directory.
* | * lisp/emacs-lisp/bytecomp.el (byte-compile--use-old-handlers): Change default.Stefan Monnier2014-10-231-1/+1
| |
* | * lisp/select.el: Use lexical-binding.Stefan Monnier2014-10-221-5/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (gui-set-selection): Provide an implementation for non-GUI frames. * lisp/term/x-win.el: Use lexical-binding. (x-clipboard-yank): Fix up missed renamings. * lisp/term/w32-win.el (libgif-version, libjpeg-version): Silence compiler. (w32--set-selection): Fix up var names. * lisp/term/pc-win.el: Use lexical-binding. (w16-selection-exists-p): Silence compiler warning. (w16-selection-owner-p): Fix up missed renamings. * lisp/emacs-lisp/bytecomp.el (byte-compile-form): Remove left-over debug. * lisp/frame.el (frame-notice-user-settings): Fix excessive quoting. Fixes: debbugs:18791
* | Merge from emacs-24; up to 2014-07-28T06:28:15Z!dmantipov@yandex.ruGlenn Morris2014-10-201-5/+6
|\|
| * Restore temporarily reverted bytecomp changeStefan Monnier2014-10-201-5/+6
| | | | | | | | | | | | * lisp/emacs-lisp/bytecomp.el (=, <, >, <=, >=): Don't optimize multi-arg case. Fixes: debbugs:18767
| * Temporarily revert previous bytecomp changeGlenn Morris2014-10-201-6/+5
| |