1. 27 Jan, 2015 8 commits
  2. 26 Jan, 2015 4 commits
    • Stefan Monnier's avatar
      * lisp/emacs-lisp/cl-generic.el (cl--generic-method): New struct. · a9a3d429
      Stefan Monnier authored
      (cl--generic): The method-table is now a (list-of cl--generic-method).
      (cl--generic-member-method): New function.
      (cl-generic-define-method): Use it.
      (cl--generic-build-combined-method, cl--generic-cache-miss):
      Adapt to new method-table.
      (cl--generic-no-next-method-function): Add `method' argument.
      (cl-generic-call-method): Adapt to new method representation.
      (cl--generic-cnm-sample, cl--generic-nnm-sample): Adjust.
      (cl-find-method, cl-method-qualifiers): New functions.
      (cl--generic-method-info): Adapt to new method representation.
      Return a string for the qualifiers.
      (cl--generic-describe):
      * lisp/emacs-lisp/eieio-opt.el (eieio-help-class): Adjust accordingly.
      (eieio-all-generic-functions, eieio-method-documentation):
      Adjust to new method representation.
      
      * lisp/emacs-lisp/eieio-compat.el (eieio--defmethod): Use cl-find-method.
      
      * test/automated/cl-generic-tests.el: Try and make sure cl-lib is not
      required at run-time.
      a9a3d429
    • Stefan Monnier's avatar
      * lisp/emacs-lisp/cl-generic.el: Add a method-combination hook. · 4cdde919
      Stefan Monnier authored
      (cl-generic-method-combination-function): New var.
      (cl--generic-lambda): Remove `with-cnm' arg.
      (cl-defmethod): Change accordingly.
      (cl-generic-define-method): Don't check qualifiers validity.
      Preserve all qualifiers in `method-table'.
      (cl-generic-call-method): New function.
      (cl--generic-nest): Remove (morph into cl-generic-call-method).
      (cl--generic-build-combined-method): Adjust to new format of method-table
      and use cl-generic-method-combination-function.
      (cl--generic-standard-method-combination): New function, extracted from
      cl--generic-build-combined-method.
      (cl--generic-cnm-sample): Adjust to new format of method-table.
      
      * lisp/emacs-lisp/eieio-compat.el (eieio--defmethod): Use () qualifiers
      instead of :primary.
      
      * lisp/emacs-lisp/eieio-datadebug.el (eieio-debug-methodinvoke):
      Remove obsolete function.
      
      * test/automated/cl-generic-tests.el (cl-generic-test-11-next-method-p):
      New test.
      4cdde919
    • Lars Magne Ingebrigtsen's avatar
    • Lars Ingebrigtsen's avatar
      * lisp/net/eww.el (eww-add-bookmark): Fix prompt · c3d4505b
      Lars Ingebrigtsen authored
      And clean up the code slightly.
      c3d4505b
  3. 25 Jan, 2015 2 commits
  4. 23 Jan, 2015 1 commit
  5. 22 Jan, 2015 4 commits
    • Paul Eggert's avatar
      Don't downcase system diagnostics' first letters · 8dd58a2d
      Paul Eggert authored
      * etc/NEWS: Document this.
      * lisp/emacs-lisp/bytecomp.el (byte-compile-file):
      * lisp/ffap.el (find-file-at-point):
      * lisp/files.el (insert-file-1):
      * lisp/net/ange-ftp.el (ange-ftp-barf-if-not-directory)
      (ange-ftp-copy-file-internal):
      * lisp/progmodes/etags.el (visit-tags-table):
      * lisp/url/url-dav.el (url-dav-delete-directory, url-dav-delete-file)
      (url-dav-directory-files):
      Keep diagnostics consistent with system's.
      * lisp/erc/erc-dcc.el (erc-dcc-server):
      * lisp/ffap.el (ffap-machine-p):
      Ignore case while comparing diagnostics.
      * src/fileio.c (report_file_errno): Don't downcase, and simplify.
      Fixes: bug#19642
      8dd58a2d
    • Stefan Monnier's avatar
      Avoid generating invalid usage info for pathological function · 938bca8e
      Stefan Monnier authored
      Fixes: debbugs:19645
      
      * lisp/help.el (help-make-usage): Don't turn a "_" arg into an empty-string.
      * lisp/emacs-lisp/cl-generic.el (cl--generic-lambda): Don't confuse a string
      body with a docstring.
      938bca8e
    • Dmitry Gutov's avatar
      xref: Replace defgeneric and defmethod with cl- counterparts · 03346fb0
      Dmitry Gutov authored
      * lisp/progmodes/xref.el (xref-location-marker, xref-location-group):
      Use `cl-defgeneric' and `cl-defmethod' instead of the EIEIO
      counterparts.
      
      * lisp/progmodes/etags.el (xref-location-marker): Same.
      03346fb0
    • Dmitry Gutov's avatar
      xref: Input history and minor tweaks · a17a5dae
      Dmitry Gutov authored
      * lisp/progmodes/xref.el (xref--current): Rename from `xref--selected'.
      (xref--inhibit-mark-current): Rename from
      `xref--inhibit-mark-selected'.  Update the usages.
      (xref-quit): Reword the docstring.  Kill buffers after quitting
      windows instead of before.
      (xref--insert-xrefs): Tweak help-echo.
      (xref--read-identifier-history, xref--read-pattern-history):
      New variables.
      (xref--read-identifier, xref-find-apropos): Use them.
      a17a5dae
  6. 21 Jan, 2015 5 commits
    • Ulrich Müller's avatar
      Allow update-game-score to run sgid instead of suid. · 20f66485
      Ulrich Müller authored
      * configure.ac (gamegroup): New AC_SUBST.
      (--with-gameuser): Allow to specify a group instead of a user.
      In the default case, check at configure time if a 'games' user
      exists.
      * lib-src/update-game-score.c: Allow the program to run sgid
      instead of suid, in order to match common practice for most games.
      (main): Check if we are running sgid.  Pass appropriate file
      permission bits to 'write_scores'.
      (write_scores): New 'mode' argument, instead of hardcoding 0644.
      (get_prefix): Update error message.
      * lib-src/Makefile.in (gamegroup): New variable, set by configure.
      ($(DESTDIR)${archlibdir}): Handle both suid or sgid when
      installing the 'update-game-score' program.
      * lisp/play/gamegrid.el (gamegrid-add-score-with-update-game-score):
      Allow the 'update-game-score' helper program to run suid or sgid.
      20f66485
    • Stefan Monnier's avatar
      * lisp/emacs-lisp/eieio*.el: Fix up warnings and improve compatibility · 59e7fe6d
      Stefan Monnier authored
      Fixes: debbugs:19645
      
      * lisp/emacs-lisp/cl-generic.el (cl-defgeneric): Add support for `declare'.
      (cl--generic-setf-rewrite): Setup the setf expander right away.
      (cl-defmethod): Make sure the setf expander is setup before we expand
      the body.
      (cl-defmethod): Silence byte-compiler warnings.
      (cl-generic-define-method): Shuffle code to change return value.
      (cl--generic-method-info): New function, extracted from
      cl--generic-describe.
      (cl--generic-describe): Use it.
      
      * lisp/emacs-lisp/eieio-speedbar.el:
      * lisp/emacs-lisp/eieio-datadebug.el:
      * lisp/emacs-lisp/eieio-custom.el:
      * lisp/emacs-lisp/eieio-base.el: Use cl-defmethod.
      
      * lisp/emacs-lisp/eieio-compat.el (eieio--defmethod): Avoid no-next-method
      errors when there's a `before' but no `primary'.
      (next-method-p): Return nil rather than signal an error.
      (eieio-defgeneric): Remove bogus (fboundp 'method).
      
      * lisp/emacs-lisp/eieio-opt.el: Adapt to cl-generic.
      (eieio--specializers-apply-to-class-p):	New function.
      (eieio-all-generic-functions): Use it.
      (eieio-method-documentation): Use it as well as cl--generic-method-info.
      Change format of return value.
      (eieio-help-class): Adapt accordingly.
      
      * lisp/emacs-lisp/eieio.el: Use cl-defmethod.
      (defclass): Generate cl-defmethod calls; use setf methods for :accessor.
      (eieio-object-name-string): Declare as obsolete.
      
      * test/automated/cl-generic-tests.el (setf cl--generic-2): Make sure
      the setf can be used already in the body of the method.
      59e7fe6d
    • Dmitry Gutov's avatar
      Remap quit-window to xref-quit in xref buffers · e7697d97
      Dmitry Gutov authored
      Fixes: debbugs:19466
      
      * lisp/progmodes/xref.el (xref--xref-buffer-mode-map): Define before
      the major mode.  Remap `quit-window' to `xref-quit'.
      (xref--xref-buffer-mode): Inherit from special-mode.
      e7697d97
    • Dmitry Gutov's avatar
      xref: Keep track of temporary buffers · 956b13c5
      Dmitry Gutov authored
      Fixes: debbugs:19466
      
      xref: Keep track of temporary buffers.
      * lisp/progmodes/xref.el (xref--temporary-buffers, xref--selected)
      (xref--inhibit-mark-selected): New variables.
      (xref--mark-selected): New function.
      (xref--show-location): Maybe add the buffer to
      `xref--temporary-buffers', add `xref--mark-selected' to
      `buffer-list-update-hook' there.
      (xref--window): Add docstring.
      (xref-quit): Rename from `xref--quit'.  Update both references.
      Add KILL argument.  When it's non-nil, kill the temporary buffers
      that haven't been selected by the user.
      (xref--show-xref-buffer): Change the second argument to alist,
      extract the values for `xref--window' and
      `xref--temporary-buffers' from it.  Add `xref--mark-selected' to
      `buffer-list-update-hook' to each buffer in the list.
      (xref--show-xrefs): Move the logic of calling `xref-find-function'
      here.  Save the difference between buffer lists before and after
      it's called as "temporary buffers", and `pass it to
      `xref-show-xrefs-function'.
      (xref--find-definitions, xref-find-references)
      (xref-find-apropos): Update accordingly.
      956b13c5
    • Artur Malabarba's avatar
  7. 20 Jan, 2015 10 commits
    • Stefan Monnier's avatar
      lisp/emacs-lisp/eieio*.el: Rewrite our generics on top of cl-generic · 3a8312d0
      Stefan Monnier authored
      * lisp/emacs-lisp/eieio-generic.el: Remove.
      (defgeneric, defmethod): Move to eieio-compat.el.  Mark obsolete.
      * lisp/emacs-lisp/eieio-compat.el: New file.
      * lisp/emacs-lisp/eieio.el: Don't require eieio-generic any more.
      * lisp/emacs-lisp/eieio-core.el (eieio--slot-originating-class-p):
      Remove unused function.
      (eieio-defclass): Move to eieio-compat.el.
      * lisp/emacs-lisp/macroexp.el (macroexp-macroexpand): New function.
      (macroexp--expand-all): Use it.
      * lisp/emacs-lisp/bytecomp.el (byte-compile-recurse-toplevel): Here too.
      3a8312d0
    • Michal Nazarewicz's avatar
      eldoc: modify `eldoc-documentation-function' using `add-function' · fd020a29
      Michal Nazarewicz authored
      * lisp/emacs-lisp/eldoc.el (eldoc-documentation-function): Describe how
      major modes should use `add-function' to alter value of the variable.
      
      * lisp/hexl.el (hexl-mode): Set `eldoc-documentation-function' using
      `add-function' so the default value is always used.
      * lisp/ielm.el (inferior-emacs-lisp-mode): Set
      `eldoc-documentation-function' using `add-function' so the default
      value is always used.
      * lisp/progmodes/cfengine.el (cfengine3-mode): Set
      `eldoc-documentation-function' using `add-function' so the default
      value is always used.
      * lisp/progmodes/elisp-mode (emacs-lisp-mode): Set
      `eldoc-documentation-function' using `add-function' so the default
      value is always used.
      * lisp/progmodes/octave.el (octave-mode): Set
      `eldoc-documentation-function' using `add-function' so the default
      value is always used.
      * lisp/progmodes/python.el (python-mode): Set
      `eldoc-documentation-function' using `add-function' so the default
      value is always used.
      * lisp/simple.el (read--expression): Set `eldoc-documentation-function'
      using `add-function' so the default value is always used.
      fd020a29
    • 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
      paragraphs: recognise more Unicode characters as end of sentence · 11e161f5
      Michal Nazarewicz authored
      * lisp/textmodes/paragraphs.el (sentence-end-base): Include an
      ellipsis (…) and interrobang (‽) characters as end of a sentence,
      and a closing single quote (’) as an end of a quote.
      11e161f5
    • 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
    • Daniel Colascione's avatar
      Make vc-dir default to repository root · f3024754
      Daniel Colascione authored
      * lisp/vc/vc-dir.el (vc-dir): Default to repository root, not
      default-directory.
      f3024754
    • Dmitry Gutov's avatar
      Expand xref help-echo string · 3ca37be9
      Dmitry Gutov authored
      * lisp/progmodes/xref.el (xref--insert-xrefs): Expand help-echo string.
      3ca37be9
    • Dmitry Gutov's avatar
      Use etags-goto-tag-location in etags xref backend · 05fb53a1
      Dmitry Gutov authored
      * progmodes/etags.el (xref-etags-location): New class.
      (xref-make-etags-location): New function.
      (etags--xref-find-definitions): Use it.
      (xref-location-marker): New method implementation.
      
      * lisp/progmodes/xref.el: Mention that xref-location is an EIEIO class.
      05fb53a1
  8. 19 Jan, 2015 6 commits