1. 20 Jan, 2015 5 commits
    • Jorgen Schaefer's avatar
      Removed test with spurious failures. · db5d4115
      Jorgen Schaefer authored
      * automated/package-test.el (package-test-install-prioritized):
      Removed test due to unreproducable failures.
      db5d4115
    • Michal Nazarewicz's avatar
      descr-text: add `describe-char-eldoc' describing character at point · 81681ed9
      Michal Nazarewicz authored
      * lisp/descr-text.el (describe-char-eldoc): New function returning
      basic Unicode codepoint information (e.g. name) about character
      at point.  It is meant to be used as a default value of the
      `eldoc-documentation-function' variable.
      (describe-char-eldoc--format, describe-char-eldoc--truncate):
      New helper functions for `describe-char-eldoc' function.
      
      * tests/automated/descr-text-test.el: New file with tests for
      `describe-char-eldoc--truncate', `describe-char-eldoc--format',
      and `describe-char-eldoc'.
      81681ed9
    • Michal Nazarewicz's avatar
    • Michal Nazarewicz's avatar
      tildify: add `tildify-double-space-undos' · d9af6e01
      Michal Nazarewicz authored
      * lisp/textmodes/tildify.el (tildify-double-space-undos): A new
      variable specifying whether pressing space in `tildify-mode' after
      a space has been replaced with hard space undos the substitution.
      (tildify-space): Add code branch for handling `tildify-doule-space'.
      
      * tests/automated/tildify-tests.el (tildify-space-undo-test--test):
      A new helper function for testing `tildify-double-space-undos'
      behaviour in the `tildify-space' function.
      (tildify-space-undo-test-html, tildify-space-undo-test-html-nbsp)
      (tildify-space-undo-test-xml, tildify-space-undo-test-tex): New
      tests for `tildify-doule-space-undos' behaviour.
      d9af6e01
    • Michal Nazarewicz's avatar
      tildify: add `tildify-space' and `tildify-mode' · 571441fc
      Michal Nazarewicz authored
      * lisp/textmodes/tildify.el (tildify-space): A new function
      which can be used as a `post-self-insert-hook' to automatically
      convert spaces into hard spaces.
      (tildify-space-pattern): A new variable specifying pattern where
      `tildify-space' should take effect.
      (tildify-space-predicates): A new variable specifying list of
      predicate functions that all must return non-nil for
      `tildify-space' to take effect.
      (tildify-space-region-predicate): A new functions meant to be
      used as a predicate in `tildify-space-predicates' list.
      (tildify-mode): A new minor mode enabling `tildify-space' as a
      `post-self-insert-hook'
      
      * tests/automated/tildify-tests.el (tildify-space-test--test):
      A new helper function for testing `tildify-space' function.
      (tildify-space-test-html, tildify-space-test-html-nbsp)
      (tildify-space-test-xml, tildify-space-test-tex): New tests for
      `tildify-space' function.
      571441fc
  2. 18 Jan, 2015 3 commits
    • Stefan Monnier's avatar
      * lisp/emacs-lisp/eieio-core.el: Add `subclass' specializer for cl-generic. · 1f545d33
      Stefan Monnier authored
      (eieio--generic-subclass-tagcode, eieio--generic-subclass-tag-types):
      New functions.
      (cl-generic-tagcode-function, cl-generic-tag-types-function): Use them.
      
      * test/automated/eieio-test-methodinvoke.el (eieio-test-cl-generic-1):
      Test `subclass' specializer.
      1f545d33
    • Stefan Monnier's avatar
      EIEIO&cl-generic: Add obsolescence warnings and fix corner case · 2a61bd00
      Stefan Monnier authored
      * lisp/emacs-lisp/cl-generic.el (cl-generic-define-method): Correctly handle
      introduction of a new dispatch argument.
      (cl--generic-cache-miss): Handle dispatch on an argument which was not
      considered as dispatchable for this method.
      (cl-defmethod): Warn when adding a method to an obsolete generic function.
      (cl--generic-lambda): Make sure it works if cl-lib is not yet loaded.
      
      * lisp/emacs-lisp/eieio-generic.el (eieio--defgeneric-init-form):
      Use autoloadp.
      
      * lisp/emacs-lisp/eieio.el (defclass): Add obsolescence warning for the
      `newname' argument.
      
      * test/automated/cl-generic-tests.el (cl-generic-test-10-weird): New test.
      Rename other tests to preserve ordering.
      2a61bd00
    • Leo Liu's avatar
      Fix seq-subseq and cl-subseq for bad bounding indices · 253d44bd
      Leo Liu authored
      Fixes: debbugs:19434 debbugs:19519
      
      * lisp/emacs-lisp/cl-extra.el (cl-subseq): Use seq-subseq and fix
      multiple evaluation.
      
      * lisp/emacs-lisp/seq.el (seq-subseq): Throw bad bounding indices
      error.
      
      * test/automated/seq-tests.el (test-seq-subseq): Add more tests.
      253d44bd
  3. 17 Jan, 2015 3 commits
    • Stefan Monnier's avatar
      * lisp/emacs-lisp/eieio.el: Improve `constructor' compatibility. · 4610ce96
      Stefan Monnier authored
      Fixes: debbugs:19620
      
      (eieio-constructor): Handle obsolete object name argument here...
      (defclass): ...instead of in the constructor here.
      
      * test/automated/eieio-tests.el
      (eieio-test-37-obsolete-name-in-constructor): New test.
      4610ce96
    • Stefan Monnier's avatar
      Don't enforce :protection in EIEIO objects any more · d48c98cd
      Stefan Monnier authored
      * doc/misc/eieio.texi (Slot Options): Document :protection as unsupported.
      
      * lisp/emacs-lisp/eieio-core.el (eieio--scoped-class-stack): Remove var.
      (eieio--scoped-class): Remove function.
      (eieio--with-scoped-class): Remove macro.  Replace uses with `progn'.
      (eieio--slot-name-index): Don't check the :protection anymore.
      (eieio-initializing-object): Remove var.
      (eieio-set-defaults): Don't let-bind eieio-initializing-object.
      
      * lisp/emacs-lisp/eieio-generic.el (call-next-method): Don't bother checking
      eieio--scoped-class any more.
      
      * test/automated/eieio-test-methodinvoke.el (eieio-test-method-store):
      Use an explicit arg instead of eieio--scoped-class.  Update all callers.
      
      * test/automated/eieio-tests.el (eieio-test-25-slot-tests)
      (eieio-test-26-default-inheritance, eieio-test-28-slot-protection)
      (eieio-test-30-slot-attribute-override)
      (eieio-test-31-slot-attribute-override-class-allocation): Don't check
      that we enforce :protection since we don't any more.
      d48c98cd
    • Stefan Monnier's avatar
      Improve handling of doc-strings and describe-function for cl-generic · 24b7f775
      Stefan Monnier authored
      * lisp/help-fns.el (find-lisp-object-file-name): Accept any `type' as long
      as it's a symbol.
      (help-fns-short-filename): New function.
      (describe-function-1): Use it.  Use autoload-do-load.
      
      * lisp/help-mode.el (help-function-def): Add optional arg `type'.
      
      * lisp/emacs-lisp/cl-generic.el (cl-generic-ensure-function): It's OK to
      override an autoload.
      (cl-generic-current-method-specializers): Replace dyn-bind variable
      with a lexically-scoped macro.
      (cl--generic-lambda): Update accordingly.
      (cl-generic-define-method): Record manually in the load-history with
      type `cl-defmethod'.
      (cl--generic-get-dispatcher): Minor optimization.
      (cl--generic-search-method): New function.
      (find-function-regexp-alist): Add entry for `cl-defmethod' type.
      (cl--generic-search-method): Add hyperlinks for methods.  Merge the
      specializers and the function's arguments.
      
      * lisp/emacs-lisp/eieio-core.el (eieio--defalias): Move to eieio-generic.el.
      (eieio-defclass-autoload): Don't record the superclasses any more.
      (eieio-defclass-internal): Reuse the old class object if it was just an
      autoload stub.
      (eieio--class-precedence-list): Load the class if it's autoloaded.
      
      * lisp/emacs-lisp/eieio-generic.el (eieio--defalias): Move from eieio-core.
      (eieio--defgeneric-init-form): Don't throw away a previous docstring.
      (eieio--method-optimize-primary): Don't mess with the docstring.
      (defgeneric): Keep the `args' in the docstring.
      (defmethod): Don't use the method's docstring for the generic
      function's docstring.
      
      * lisp/emacs-lisp/find-func.el: Use lexical-binding.
      (find-function-regexp): Don't rule out `defgeneric'.
      (find-function-regexp-alist): Document new possibility of including
      a function instead of a regexp.
      (find-function-search-for-symbol): Implement that new possibility.
      (find-function-library): Don't assume that `function' is a symbol.
      (find-function-do-it): Remove unused var `orig-buf'.
      
      * test/automated/cl-generic-tests.el (cl-generic-test-8-after/before):
      Rename from cl-generic-test-7-after/before.
      (cl--generic-test-advice): New function.
      (cl-generic-test-9-advice): New test.
      
      * test/automated/eieio-test-methodinvoke.el (eieio-test-cl-generic-1): Reset
      eieio-test--1.
      24b7f775
  4. 16 Jan, 2015 1 commit
  5. 15 Jan, 2015 3 commits
    • Wolfgang Jenkner's avatar
      Handle the `neg' operator in some calc-units functions. · 2290000e
      Wolfgang Jenkner authored
      * lisp/calc/calc-units.el (math-units-in-expr-p)
      (math-single-units-in-expr-p, math-find-compatible-unit-rec)
      (math-extract-units): Handle the `neg' operator.  (Bug#19582)
      * test/automated/calc-tests.el (calc-tests-equal, calc-tests-simple):
      New functions.
      (test-calc-remove-units, test-calc-extract-units)
      (test-calc-convert-units): New tests.
      2290000e
    • Wolfgang Jenkner's avatar
      Use POSIX redirection. · b577fe28
      Wolfgang Jenkner authored
      * test/automated/Makefile.in (WRITE_LOG): Use POSIX redirection.
      b577fe28
    • Stefan Monnier's avatar
      * lisp/emacs-lisp/eieio-core.el: Provide support for cl-generic. · 483c98a0
      Stefan Monnier authored
      (eieio--generic-tagcode): New function.
      (cl-generic-tagcode-function): Use it.
      (eieio--generic-tag-types): New function.
      (cl-generic-tag-types-function): Use it.
      (eieio-object-p): Tighten up the test.
      
      * lisp/emacs-lisp/cl-generic.el (cl-generic-define-method): Fix paren typo.
      
      * test/automated/eieio-test-methodinvoke.el (eieio-test-method-store): Add
      keysym arg instead of relying on internal var eieio--generic-call-key.
      Update all callers.
      (eieio-test-cl-generic-1): New tests.
      483c98a0
  6. 14 Jan, 2015 1 commit
    • Stefan Monnier's avatar
      * lisp/emacs-lisp/cl-generic.el: New file. · 9def17e9
      Stefan Monnier authored
      * lisp/emacs-lisp/cl-macs.el (cl-flet): Allow (FUN EXP) forms.
      (cl-load-time-value, cl-labels): Use closures rather than
      backquoted lambdas.
      (cl-macrolet): Use `eval' to create the function value, and support CL
      style arguments in for the defined macros.
      * test/automated/cl-generic-tests.el: New file.
      9def17e9
  7. 08 Jan, 2015 2 commits
    • Stefan Monnier's avatar
      * emacs-lisp/eieio-generic.el: New file. · 54181569
      Stefan Monnier authored
      * lisp/emacs-lisp/eieio-core.el: Move all generic function code to
      eieio-generic.el.
      (eieio--defmethod): Declare.
      * lisp/emacs-lisp/eieio.el: Require eieio-generic.  Move all generic
      function code to eieio-generic.el.
      * lisp/emacs-lisp/eieio-opt.el (eieio-help-generic): Move to
      eieio-generic.el.
      * lisp/emacs-lisp/eieio-datadebug.el (eieio-debug-methodinvoke): Update call
      to eieio--generic-call.
      * lisp/emacs-lisp/eieio-base.el (eieio-instance-inheritor): Don't use
      <class>-child type.
      * test/automated/eieio-test-methodinvoke.el (eieio-test-method-store):
      Update reference to eieio--generic-call-key.
      * test/automated/eieio-tests.el (eieio-test-23-inheritance-check): Don't use
      <foo>-child-p.
      54181569
    • Stefan Monnier's avatar
      lisp/emacs-lisp/eieio-core.el (eieio-backward-compatibility): New var. · 1599688e
      Stefan Monnier authored
      * lisp/cedet/ede/speedbar.el (ede-speedbar-compile-line)
      (ede-speedbar-get-top-project-for-line):
      * lisp/cedet/ede.el (ede-buffer-belongs-to-target-p)
      (ede-buffer-belongs-to-project-p, ede-build-forms-menu)
      (ede-add-project-to-global-list):
      * lisp/cedet/semantic/db-typecache.el (semanticdb-get-typecache):
      * lisp/cedet/semantic/db-file.el (semanticdb-load-database):
      * lisp/cedet/semantic/db-el.el (semanticdb-elisp-sym->tag):
      * lisp/cedet/semantic/db-ebrowse.el (semanticdb-ebrowse-load-helper):
      * lisp/cedet/ede/project-am.el (project-am-preferred-target-type):
      * lisp/cedet/ede/proj.el (ede-proj-load):
      * lisp/cedet/ede/custom.el (ede-customize-current-target, ede-customize-target):
      * lisp/cedet/semantic/ede-grammar.el ("semantic grammar"):
      * lisp/cedet/semantic/scope.el (semantic-scope-reset-cache)
      (semantic-calculate-scope):
      * lisp/cedet/srecode/map.el (srecode-map-update-map):
      * lisp/cedet/srecode/insert.el (srecode-insert-show-error-report)
      (srecode-insert-method, srecode-insert-include-lookup)
      (srecode-insert-method):
      * lisp/cedet/srecode/fields.el (srecode-active-template-region):
      * lisp/cedet/srecode/compile.el (srecode-flush-active-templates)
      (srecode-compile-inserter): Don't use <class> as a variable.
      Use `oref-default' for class slots.
      
      * lisp/cedet/semantic/grammar.el (semantic-grammar-eldoc-last-data): New var.
      (semantic-grammar-eldoc-get-macro-docstring): Use it instead of
      eldoc-last-data.
      * lisp/cedet/semantic/fw.el (semantic-exit-on-input): Use `declare'.
      (semantic-throw-on-input): Use `with-current-buffer'.
      * lisp/cedet/semantic/db.el (semanticdb-abstract-table-list): Define if not
      pre-defined.
      * lisp/cedet/semantic/db-find.el (semanticdb-find-tags-collector):
      Use save-current-buffer.
      (semanticdb-find-tags-collector): Don't use <class> as a variable.
      * lisp/cedet/semantic/complete.el (semantic-complete-active-default)
      (semantic-complete-current-matched-tag): Declare.
      (semantic-complete-inline-custom-type): Don't use <class> as a variable.
      * lisp/cedet/semantic/bovine/make.el (semantic-analyze-possible-completions):
      Use with-current-buffer.
      * lisp/cedet/semantic.el (semantic-parser-warnings): Declare.
      * lisp/cedet/ede/base.el (ede-target-list): Define if not pre-defined.
      (ede-with-projectfile): Prefer find-file-noselect over
      save-window-excursion.
      
      * lisp/emacs-lisp/chart.el (chart-add-sequence, chart-bar-quickie):
      Don't use <class> as a variable.
      
      * lisp/emacs-lisp/eieio-base.el (eieio-persistent-validate/fix-slot-value):
      Improve error messages.
      (eieio-persistent-slot-type-is-class-p): Handle `list-of' types, as
      well as user-defined types.  Emit errors for legacy types like
      <class>-child and <class>-list, if not eieio-backward-compatibility.
      
      * lisp/emacs-lisp/eieio-core.el (eieio-backward-compatibility): New var.
      (eieio-defclass-autoload): Obey it.
      (eieio--class-object): Improve error behavior.
      (eieio-class-children-fast, same-class-fast-p): Remove.  Inline at
      every use site.
      (eieio--defgeneric-form-primary-only): Rename from
      eieio-defgeneric-form-primary-only; update all callers.
      (eieio--defgeneric-form-primary-only-one): Rename from
      eieio-defgeneric-form-primary-only-one; update all callers.
      (eieio-defgeneric-reset-generic-form)
      (eieio-defgeneric-reset-generic-form-primary-only)
      (eieio-defgeneric-reset-generic-form-primary-only-one): Remove.
      (eieio--method-optimize-primary): New function to replace them.
      (eieio--defmethod, eieio-defmethod): Use it.
      (eieio--perform-slot-validation): Rename from
      eieio-perform-slot-validation; update all callers.
      (eieio--validate-slot-value): Rename from eieio-validate-slot-value.
      Change `class' to be a class object.  Update all callers.
      (eieio--validate-class-slot-value): Rename from
      eieio-validate-class-slot-value.  Change `class' to be a class object.
      Update all callers.
      (eieio-oset-default): Accept class object as well.
      (eieio--generic-call-primary-only): Rename from
      eieio-generic-call-primary-only.  Update all callers.
      
      * lisp/emacs-lisp/eieio-opt.el (eieio-read-generic-p): Remove.
      (eieio-read-generic): Use `generic-p' instead.
      
      * lisp/emacs-lisp/eieio.el (same-class-p): Accept class object as well.
      (call-next-method): Simplify.
      (clone): Obey eieio-backward-compatibility.
      
      * lisp/gnus/registry.el: Don't use <class> as a variable.
      
      * test/automated/eieio-test-methodinvoke.el
      (eieio-test-method-order-list-4):
      Don't use <class> as a variable.
      
      * test/automated/eieio-test-persist.el (persistent-with-objs-list-slot):
      Don't use <class>-list type.
      
      * test/automated/eieio-tests.el: Use cl-lib.  Don't use <class> as a variable.
      Don't use <class>-list types and <class>-list-p predicates.
      1599688e
  8. 05 Jan, 2015 1 commit
    • Stefan Monnier's avatar
      * lisp/emacs-lisp/eieio*.el: Use class objects in `parent' field. · cb4db863
      Stefan Monnier authored
      * lisp/emacs-lisp/eieio-core.el (eieio-class-object): New function.
      (eieio-class-parents-fast): Remove macro.
      (eieio--class-option-assoc): Rename from class-option-assoc.
      Update all callers.
      (eieio--class-option): Rename from class-option.  Change `class' arg to
      be a class object.  Update all callers.
      (eieio--class-method-invocation-order): Rename from
      class-method-invocation-order.  Change `class' arg to be a class
      object.  Update all callers.
      (eieio-defclass-autoload, eieio-defclass): Set the `parent' field to
      a list of class objects rather than names.
      (eieio-defclass): Remove redundant quotes.  Use `eieio-oref-default'
      for accessors to class allocated slots.
      (eieio--perform-slot-validation-for-default): Rename from
      eieio-perform-slot-validation-for-default.  Update all callers.
      (eieio--add-new-slot): Rename from eieio-add-new-slot.
      Update all callers.  Use push.
      (eieio-copy-parents-into-subclass): Adjust to new content of
      `parent' field.  Use dolist.
      (eieio-oref): Remove support for providing a class rather than
      an object.
      (eieio-oref-default): Prefer class objects over class names.
      (eieio--slot-originating-class-p): Rename from
      eieio-slot-originating-class-p.  Update all callers.  Use `or'.
      (eieio--slot-name-index): Turn check into assertion.
      (eieio--class-slot-name-index): Rename from
      eieio-class-slot-name-index.  Change `class' arg to be a class object.
      Update all callers.
      (eieio-attribute-to-initarg): Move to eieio-test-persist.el.
      (eieio--c3-candidate): Rename from eieio-c3-candidate.
      Update all callers.
      (eieio--c3-merge-lists): Rename from eieio-c3-merge-lists.
      Update all callers.
      (eieio--class-precedence-c3): Rename from eieio-class-precedence-c3.
      Update all callers.
      (eieio--class-precedence-dfs): Rename from eieio-class-precedence-dfs.
      Update all callers.
      (eieio--class-precedence-bfs): Rename from eieio-class-precedence-bfs.
      Update all callers.  Adjust to new `parent' content.
      (eieio--class-precedence-list): Rename from -class-precedence-list.
      Update all callers.
      (eieio-generic-call): Use autoloadp and autoload-do-load.
      Slight simplification.
      (eieio-generic-call, eieio-generic-call-primary-only): Adjust to new
      return value of `eieio-generic-form'.
      (eieiomt-add): Index the hashtable with class objects rather than
      class names.
      (eieio-generic-form): Accept class objects as well.
      
      * lisp/emacs-lisp/eieio.el (eieio-class-parents): Accept class objects.
      (eieio--class-slot-initarg): Rename from class-slot-initarg.
      Change `class' arg to be a class object.  Update all callers.
      (call-next-method): Adjust to new return value of `eieio-generic-form'.
      (eieio-default-superclass): Set var to the class object.
      (eieio-edebug-prin1-to-string): Fix recursive call for lists.
      Change print behavior to affect class objects rather than
      class symbols.
      
      * lisp/emacs-lisp/eieio-base.el (eieio-persistent-convert-list-to-object):
      Adjust to new convention for eieio-persistent-validate/fix-slot-value.
      (eieio-persistent-validate/fix-slot-value):
      Change `class' arg to be a class object.  Update all callers.
      
      * test/automated/eieio-test-persist.el (eieio--attribute-to-initarg):
      Move from eieio-core.el.  Rename from eieio-attribute-to-initarg.
      Change arg to be a class object.  Update all callers.
      
      * test/automated/eieio-tests.el (eieio-test-04-static-method)
      (eieio-test-05-static-method-2): Use oref-default to access
      class slots.
      (eieio-test-23-inheritance-check): Don't assume that
      eieio-class-parents returns class names, or that a class can only have
      a single name.
      cb4db863
  9. 01 Jan, 2015 1 commit
  10. 30 Dec, 2014 1 commit
  11. 29 Dec, 2014 2 commits
    • Stefan Monnier's avatar
      lisp/emacs-lisp/eieio*.el: Reduce object header to 1 slot · 232823a1
      Stefan Monnier authored
      * lisp/emacs-lisp/eieio-core.el (eieio--with-scoped-class): Use let-binding.
      (object): Remove first (constant) slot; rename second to `class-tag'.
      (eieio--object-class-object, eieio--object-class-name): New funs
      to replace eieio--object-class.
      (eieio--class-object, eieio--class-p): New functions.
      (same-class-fast-p): Make it a defsubst, change its implementation
      to check the class objects rather than their names.
      (eieio-object-p): Rewrite.
      (eieio-defclass): Adjust the object initialization according to the new
      object layout.
      (eieio--scoped-class): Declare it returns a class object (not a class
      name any more).  Adjust calls accordingly (along with calls to
      eieio--with-scoped-class).
      (eieio--slot-name-index): Rename from eieio-slot-name-index and change
      its class arg to be a class object.  Adjust callers accordingly.
      (eieio-slot-originating-class-p): Make its start-class arg a class
      object.  Adjust all callers.
      (eieio--initarg-to-attribute): Rename from eieio-initarg-to-attribute.
      Make its `class' arg a class object.  Adjust all callers.
      
      * lisp/emacs-lisp/eieio-base.el (eieio-persistent-validate/fix-slot-value):
      Use eieio--slot-name-index rather than eieio-slot-name-index.
      
      * lisp/emacs-lisp/eieio.el (child-of-class-p): Make it accept class objects
      additionally to class names.
      
      * test/automated/eieio-test-methodinvoke.el (eieio-test-method-store):
      Adjust to new semantics of eieio--scoped-class.
      (eieio-test-match): Improve error feedback.
      232823a1
    • Michael Albinus's avatar
      Sync with Tramp 2.2.11. · 96ebe180
      Michael Albinus authored
      * automated/tramp-tests.el (tramp-test30-special-characters):
      Skip test on MS-Windows.
      96ebe180
  12. 27 Dec, 2014 5 commits
    • Fabián Ezequiel Gallina's avatar
      python.el: Native readline completion. · 2cb75922
      Fabián Ezequiel Gallina authored
      This commit adds native readline completion that fallbacks to the old
      mechanism when it cannot be used for the current interpreter.
      
      * lisp/progmodes/python.el (python-shell-completion-native-disabled-interpreters)
      (python-shell-completion-native-enable)
      (python-shell-completion-native-output-timeout): New defcustoms.
      (python-shell-completion-native-interpreter-disabled-p)
      (python-shell-completion-native-try)
      (python-shell-completion-native-setup)
      (python-shell-completion-native-turn-off)
      (python-shell-completion-native-turn-on)
      (python-shell-completion-native-turn-on-maybe)
      (python-shell-completion-native-turn-on-maybe-with-msg)
      (python-shell-completion-native-toggle): New functions.
      (python-shell-completion-native-get-completions): New function.
      (python-shell-completion-at-point): Use it.
      
      * test/automated/python-tests.el
      (python-shell-completion-native-interpreter-disabled-p-1): New
      test.
      2cb75922
    • Glenn Morris's avatar
      ee01a8c0
    • Fabián Ezequiel Gallina's avatar
      python.el: Enhance shell user interaction and deprecate python-shell-get-or-create-process. · 7d1e62d5
      Fabián Ezequiel Gallina authored
      * lisp/progmodes/python.el
      (python-shell-get-process-or-error): New function.
      (python-shell-with-shell-buffer): Use it.
      (python-shell-send-string, python-shell-send-region)
      (python-shell-send-buffer, python-shell-send-defun)
      (python-shell-send-file, python-shell-switch-to-shell): Use it.
      Add argument MSG to display user-friendly message when no process
      is running.
      (python-shell-switch-to-shell): Call pop-to-buffer with NORECORD.
      (python-shell-make-comint): Rename argument SHOW from POP.  Use
      display-buffer instead of pop-to-buffer.
      (run-python): Doc fix.  Return process.
      (python-shell-get-or-create-process): Make obsolete.
      
      * test/automated/python-tests.el (python-shell-get-or-create-process-1)
      (python-shell-get-or-create-process-2)
      (python-shell-get-or-create-process-3): Remove tests.
      7d1e62d5
    • Fabián Ezequiel Gallina's avatar
      * lisp/progmodes/python.el (python-shell-buffer-substring): Handle · 433af0a0
      Fabián Ezequiel Gallina authored
      cornercase when region sent starts at point-min.
      433af0a0
    • Fabián Ezequiel Gallina's avatar
      python.el: Handle file encoding for shell. · 2dd5163d
      Fabián Ezequiel Gallina authored
      * lisp/progmodes/python.el (python-rx-constituents): Add coding-cookie.
      (python-shell--save-temp-file): Write file with proper encoding.
      (python-shell-buffer-substring): Add coding cookie for detected
      encoding to generated content.  Fix blank lines when removing
      if-name-main block.
      (python-shell-send-file): Handle file encoding.
      (python-info-encoding-from-cookie)
      (python-info-encoding): New functions.
      
      * test/automated/python-tests.el (python-shell-buffer-substring-1)
      (python-shell-buffer-substring-2, python-shell-buffer-substring-3)
      (python-shell-buffer-substring-4, python-shell-buffer-substring-5)
      (python-shell-buffer-substring-6, python-shell-buffer-substring-7)
      (python-shell-buffer-substring-8)
      (python-info-encoding-from-cookie-1)
      (python-info-encoding-from-cookie-2)
      (python-info-encoding-from-cookie-3)
      (python-info-encoding-from-cookie-4)
      (python-info-encoding-from-cookie-5)
      (python-info-encoding-from-cookie-6)
      (python-info-encoding-from-cookie-7, python-info-encoding-1)
      (python-info-encoding-2): New tests.
      2dd5163d
  13. 26 Dec, 2014 1 commit
    • Fabián Ezequiel Gallina's avatar
      python.el: Generate clearer shell buffer names. · 7284a174
      Fabián Ezequiel Gallina authored
      * lisp/progmodes/python.el (python-shell-get-process-name)
      (python-shell-internal-get-process-name): Use `buffer-name`.
      (python-shell-internal-get-or-create-process): Simplify.
      
      * test/automated/python-tests.el (python-shell-get-process-name-1)
      (python-shell-internal-get-process-name-1): Cleanup.
      (python-shell-get-process-name-2)
      (python-shell-internal-get-process-name-2): New tests.
      (python-shell-calculate-command-1)
      (python-shell-calculate-process-environment-3)
      (python-shell-calculate-exec-path-2, python-shell-make-comint-1)
      (python-shell-make-comint-2, python-shell-make-comint-4)
      (python-shell-get-process-1, python-util-clone-local-variables-1):
      Replace obsolete function and variable references with current.
      7284a174
  14. 25 Dec, 2014 1 commit
  15. 24 Dec, 2014 1 commit
  16. 22 Dec, 2014 2 commits
    • Stefan Monnier's avatar
      * lisp/emacs-lisp/eieio*.el: Use hashtables rather than obarrays · bcebc831
      Stefan Monnier authored
      * 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 $.
      bcebc831
    • Fabián Ezequiel Gallina's avatar
      python.el: Fix electric colon behavior · 749813e9
      Fabián Ezequiel Gallina authored
      * lisp/progmodes/python.el (python-indent-post-self-insert-function):
      Make colon to re-indent only for dedenters, handling
      multiline-statements gracefully.
      
      * test/automated/python-tests.el (python-indent-electric-colon-2)
      (python-indent-electric-colon-3): New tests.
      749813e9
  17. 19 Dec, 2014 2 commits
  18. 18 Dec, 2014 1 commit
  19. 16 Dec, 2014 3 commits
  20. 14 Dec, 2014 1 commit
    • Joao Tavora's avatar
      Consider electric-pair-mode in tex-mode. · bb57c94d
      Joao Tavora authored
      Fixes: debbugs:19356
      
      * lisp/textmodes/tex-mode.el (tex-insert-quote): Consider and respect
      `electric-pair-mode'.
      
      * test/automated/electric-tests.el (autowrapping-7): New test for
      tex-mode's autowrapping.
      (electric-pair-test-for): Call the actual key-binding
      interactively.
      bb57c94d