1. 28 Jan, 2015 3 commits
    • Tassilo Horn's avatar
      Fix issues with BibTeX entries containing ")". · 8a8bd38f
      Tassilo Horn authored
      * textmodes/reftex.el (reftex-syntax-table-for-bib): Give ( and )
      punctuation syntax since to allow bibtex fields with values such
      as {Test 1) and 2)} (bug#19205, bug#19707).
      (reftex--prepare-syntax-tables): New function.
      (reftex-mode): Use it.
      8a8bd38f
    • Fabián Ezequiel Gallina's avatar
      Cleanup lisp/ChangeLog · 028ddef7
      Fabián Ezequiel Gallina authored
      028ddef7
    • Stefan Monnier's avatar
      Tighten up the tagcode used for eieio and cl-struct objects · 2668ac1a
      Stefan Monnier authored
      * lisp/emacs-lisp/eieio-core.el (eieio-defclass-internal): Set the function
      slot of the tag symbol to :quick-object-witness-check.
      (eieio-object-p): Use :quick-object-witness-check.
      (eieio--generic-tagcode): Use cl--generic-struct-tag.
      * lisp/emacs-lisp/cl-preloaded.el: New file.
      * lisp/emacs-lisp/cl-macs.el (cl--bind-inits): Remove, unused.
      (cl--transform-lambda, cl-destructuring-bind): Remove cl--bind-inits.
      (cl--make-usage-args): Strip away &aux args.
      (cl-case, cl-typecase, cl--parse-loop-clause): Use macroexp-let2.
      (cl-the, cl-check-type): Use macroexp-let2 and cl-typep.
      (cl-defstruct): Use `declare' and cl-struct-define.
      * lisp/emacs-lisp/cl-generic.el (cl--generic-struct-tag): New function.
      (cl--generic-struct-tagcode): Use it to tighten the tagcode.
      * lisp/loadup.el: Load cl-preloaded.
      * src/lisp.mk (lisp): Add cl-preloaded.
      2668ac1a
  2. 27 Jan, 2015 9 commits
    • Katsumi Yamaoka's avatar
    • Ivan Shmakov's avatar
      Allow for adding new members to Tar archives. · a56eab82
      Ivan Shmakov authored
      * lisp/tar-mode.el: Allow for adding new archive members.
      (tar-new-regular-file-header, tar--pad-to, tar--put-at)
      (tar-header-serialize): New functions.
      (tar-current-position): Split from tar-current-descriptor.
      (tar-current-descriptor): Use it.
      (tar-new-entry): New command.
      (tar-mode-map): Bind it.
      * doc/emacs/files.texi (File Archives): Document "I" for tar-new-entry.
      * etc/NEWS: Mention the new tar-new-entry command.
      
      Fixes: debbugs:19274
      a56eab82
    • Sam Steingold's avatar
      minor tweaks for `python-check' · bd7a1e15
      Sam Steingold authored
      * lisp/progmodes/python.el (python-check-custom-command): Buffer local
      because it usually includes the buffer name.
      (python-check-command): Set to epylint when pyflakes is not available.
      bd7a1e15
    • Thomas Fitzsimmons's avatar
      EUDC: New maintainer · 3a546663
      Thomas Fitzsimmons authored
      * net/eudcb-bbdb.el, net/eudcb-ldap.el, net/eudcb-mab.el,
      net/eudc-bob.el, net/eudcb-ph.el, net/eudc.el, net/eudc-export.el,
      net/eudc-hotlist.el, net/eudc-vars.el: New maintainer.
      3a546663
    • Artur Malabarba's avatar
    • Oleh Krehel's avatar
      lisp/emacs-lisp/derived.el (define-derived-mode): Declare indent 3. · 2c3b05c9
      Oleh Krehel authored
      Now, e.g. `indent-sexp' will produce:
      
          (define-derived-mode outline-mode text-mode "Outline"
            "Set ...")
      
      instead of:
      
          (define-derived-mode outline-mode text-mode "Outline"
                               "Set ...")
      2c3b05c9
    • Katsumi Yamaoka's avatar
      lisp/ChangeLog (2015-01-27): Add bug# · de925ab1
      Katsumi Yamaoka authored
      de925ab1
    • Fabián Ezequiel Gallina's avatar
      python.el: New non-global state dependent indentation engine. · 5485e3e5
      Fabián Ezequiel Gallina authored
      Fixes: debbugs:18319
      Fixes: debbugs:19595
      
      * lisp/progmodes/python.el (python-syntax-comment-or-string-p): Accept
      PPSS as argument.
      (python-syntax-closing-paren-p): New function.
      (python-indent-current-level)
      (python-indent-levels): Mark obsolete.
      (python-indent-context): Return more context cases.
      (python-indent--calculate-indentation)
      (python-indent--calculate-levels): New functions.
      (python-indent-calculate-levels): Use them.
      (python-indent-calculate-indentation, python-indent-line):
      (python-indent-line-function): Rewritten to use new API.
      (python-indent-dedent-line): Simplify logic.
      (python-indent-dedent-line-backspace): Use `unless`.
      (python-indent-toggle-levels): Delete function.
      
      * test/automated/python-tests.el (python-indent-pep8-1)
      (python-indent-pep8-2, python-indent-pep8-3)
      (python-indent-after-comment-1, python-indent-after-comment-2)
      (python-indent-inside-paren-1, python-indent-inside-paren-2)
      (python-indent-after-block-1, python-indent-after-block-2)
      (python-indent-after-backslash-1, python-indent-after-backslash-2)
      (python-indent-after-backslash-3, python-indent-block-enders-1)
      (python-indent-block-enders-2, python-indent-block-enders-3)
      (python-indent-block-enders-4, python-indent-block-enders-5)
      (python-indent-dedenters-1, python-indent-dedenters-2)
      (python-indent-dedenters-3, python-indent-dedenters-4)
      (python-indent-dedenters-5, python-indent-dedenters-6)
      (python-indent-dedenters-7, python-indent-dedenters-8): Fix tests.
      (python-indent-base-case, python-indent-after-block-3)
      (python-indent-after-backslash-5, python-indent-inside-paren-3)
      (python-indent-inside-paren-4, python-indent-inside-paren-5)
      (python-indent-inside-paren-6, python-indent-inside-string-1)
      (python-indent-inside-string-2, python-indent-inside-string-3)
      (python-indent-dedent-line-backspace-1): New Tests.
      5485e3e5
    • Katsumi Yamaoka's avatar
  3. 26 Jan, 2015 6 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
      (shr-make-table-1): Make colspan display more sensibly. · 1a369fc7
      Lars Magne Ingebrigtsen authored
      This makes display of stuff like
      
       ---------- ---- ---- ----
      |R1C1      |R1C2|R1C2|R1C2|
       ---------- ---- ---- ----
      |R2C1 and R2C2  |RC4      |
      |in one         |         |
       ---------- ---- ---- ----
      
      work
      1a369fc7
    • Lars Magne Ingebrigtsen's avatar
      776705f4
    • 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
  4. 25 Jan, 2015 2 commits
  5. 23 Jan, 2015 1 commit
  6. 22 Jan, 2015 5 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
    • Wolfgang Jenkner's avatar
      Backport: Handle the `neg' operator in some calc-units functions. · 3a345b50
      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.
      3a345b50
    • 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
  7. 21 Jan, 2015 6 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
    • Daniel Koning's avatar
      Prevent artist-mode from creating runaway timers (Bug#6130). · 3ea1b31f
      Daniel Koning authored
      * subr.el (posnp): Correct docstring of `posnp'.
      (posn-col-row): Make it work with all mouse position objects.
      * textmodes/artist.el (artist-mouse-draw-continously): Cancel
      timers if an error occurs during continuous drawing.  (Bug#6130)
      
      * commands.texi (Drag Events, Motion Events, Event Examples)
      (Accessing Mouse): Describe actual range of values that mouse
      position objects can have.
      3ea1b31f
    • 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
  8. 20 Jan, 2015 8 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
    • Eli Zaretskii's avatar
    • 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