1. 19 Mar, 2017 2 commits
  2. 27 Feb, 2017 1 commit
    • Tino Calancha's avatar
      Prevent for consing in cl-mapc and cl-mapl · 4daca38d
      Tino Calancha authored
      * lisp/emacs-lisp/cl-extra.el (cl--mapcar-many): Add optional arg ACC;
      If non-nil, accumulate values in the result (Bug#25826).
      (cl-mapc): Do computations inside function instead of call cl-map.
      (cl-mapl): Do computations inside function instead of call cl-maplist.
      * lisp/emacs-lisp/cl-lib.el (mapcar): Add autoload cookie.
      Call cl--mapcar-many with non-nil 3rd argument.
      * test/lisp/emacs-lisp/cl-extra-tests.el (cl-extra-test-map)
      (cl-extra-test-mapc, cl-extra-test-mapcar, cl-extra-test-mapl)
      (cl-extra-test-maplist): New tests.
      4daca38d
  3. 20 Feb, 2017 1 commit
    • Noam Postavsky's avatar
      Simplify cl-get using `plist-member' · 2f53c0c4
      Noam Postavsky authored
      * lisp/emacs-lisp/cl-extra.el (cl-get, cl-getf, cl--set-getf): Use
      `plist-member' instead of explicit loop.
      * test/lisp/emacs-lisp/cl-extra-tests.el: New tests.
      2f53c0c4
  4. 01 Jan, 2017 1 commit
  5. 09 Jul, 2016 1 commit
    • Mario Lang's avatar
      An efficient built-in mapcan · 466ee1b3
      Mario Lang authored
      A built-in version of `mapcan' avoids consing up (and GC'ing) the
      intermediate list.
      
      * src/fns.c (Fmapcan): New built-in.
      (syms_of_fns): Define.
      
      * lisp/emacs-lisp/cl.el (mapcan): Remove defalias.
      
      * lisp/emacs-lisp/cl-extra.el (cl-mapcan): Use built-in `mapcan'
      if only one sequence is provided.
      
      * lisp/progmodes/hideif.el (hif-delimit):
      * lisp/dired-aux.el (dired-do-find-regexp):
      * lisp/woman.el (woman-parse-colon-path): Use `mapcan' instead of
      `cl-mapcan'.
      
      * lisp/woman.el (eval-when-compile): Require 'cl-lib only when
      compiling.
      
      * lisp/mouse.el (mouse-buffer-menu-map):
      * lisp/net/pop3.el (pop3-uidl-dele):
      * lisp/progmodes/gud.el (gud-jdb-build-source-files-list):
      * lisp/cedet/semantic/db-find.el (semanticdb-fast-strip-find-results):
      * lisp/cedet/semantic/symref/grep.el (semantic-symref-derive-find-filepatterns):
      * lisp/gnus/nnmail.el (nnmail-split-it):
      * lisp/gnus/gnus-sum.el (gnus-articles-in-thread):
      * lisp/gnus/gnus-registry.el (gnus-registry-sort-addresses):
      * lisp/gnus/gnus-util.el (gnus-mapcar): Use `mapcan'.
      466ee1b3
  6. 09 May, 2016 1 commit
    • Dmitry Gutov's avatar
      Publicize cl--generic-all-functions · 963541a6
      Dmitry Gutov authored
      * lisp/emacs-lisp/cl-generic.el (cl-generic-all-functions):
      Rename from cl--generic-all-functions.  Update both callers.
      
      * lisp/cedet/semantic/db-el.el
      (semanticdb-find-tags-external-children-of-type-method):
      And use it here (bug#23042).
      963541a6
  7. 01 Jan, 2016 1 commit
  8. 21 Oct, 2015 1 commit
    • Paul Eggert's avatar
      (/ N) now returns the reciprocal of N · e9af822a
      Paul Eggert authored
      This is more compatible with Common Lisp and XEmacs (Bug#21690).  See:
      http://lists.gnu.org/archive/html/emacs-devel/2015-10/msg01053.html
      * lisp/color.el (color-hue-to-rgb, color-hsl-to-rgb)
      (color-xyz-to-srgb, color-xyz-to-lab):
      * lisp/emacs-lisp/cl-extra.el (cl-float-limits):
      * lisp/net/shr-color.el (shr-color-hue-to-rgb)
      (shr-color-hsl-to-rgb-fractions):
      Exploit the change to simplify the code a bit.
      * lisp/emacs-lisp/bytecomp.el (byte-compile-quo):
      Don’t complain about single-argument calls to ‘/’.
      * src/data.c (arith_driver, float_arith_driver):
      Implement the change.
      e9af822a
  9. 07 Sep, 2015 1 commit
    • Paul Eggert's avatar
      Go back to grave quoting in source-code docstrings etc. · 6afef3f6
      Paul Eggert authored
      This reverts almost all my recent changes to use curved quotes
      in docstrings and/or strings used for error diagnostics.
      There are a few exceptions, e.g., Bahá’í proper names.
      * admin/unidata/unidata-gen.el (unidata-gen-table):
      * lisp/abbrev.el (expand-region-abbrevs):
      * lisp/align.el (align-region):
      * lisp/allout.el (allout-mode, allout-solicit-alternate-bullet)
      (outlineify-sticky):
      * lisp/apropos.el (apropos-library):
      * lisp/bookmark.el (bookmark-default-annotation-text):
      * lisp/button.el (button-category-symbol, button-put)
      (make-text-button):
      * lisp/calc/calc-aent.el (math-read-if, math-read-factor):
      * lisp/calc/calc-embed.el (calc-do-embedded):
      * lisp/calc/calc-ext.el (calc-user-function-list):
      * lisp/calc/calc-graph.el (calc-graph-show-dumb):
      * lisp/calc/calc-help.el (calc-describe-key)
      (calc-describe-thing, calc-full-help):
      * lisp/calc/calc-lang.el (calc-c-language)
      (math-parse-fortran-vector-end, math-parse-tex-sum)
      (math-parse-eqn-matrix, math-parse-eqn-prime)
      (calc-yacas-language, calc-maxima-language, calc-giac-language)
      (math-read-giac-subscr, math-read-math-subscr)
      (math-read-big-rec, math-read-big-balance):
      * lisp/calc/calc-misc.el (calc-help, report-calc-bug):
      * lisp/calc/calc-mode.el (calc-auto-why, calc-save-modes)
      (calc-auto-recompute):
      * lisp/calc/calc-prog.el (calc-fix-token-name)
      (calc-read-parse-table-part, calc-user-define-invocation)
      (math-do-arg-check):
      * lisp/calc/calc-store.el (calc-edit-variable):
      * lisp/calc/calc-units.el (math-build-units-table-buffer):
      * lisp/calc/calc-vec.el (math-read-brackets):
      * lisp/calc/calc-yank.el (calc-edit-mode):
      * lisp/calc/calc.el (calc, calc-do, calc-user-invocation):
      * lisp/calendar/appt.el (appt-display-message):
      * lisp/calendar/diary-lib.el (diary-check-diary-file)
      (diary-mail-entries, diary-from-outlook):
      * lisp/calendar/icalendar.el (icalendar-export-region)
      (icalendar--convert-float-to-ical)
      (icalendar--convert-date-to-ical)
      (icalendar--convert-ical-to-diary)
      (icalendar--convert-recurring-to-diary)
      (icalendar--add-diary-entry):
      * lisp/calendar/time-date.el (format-seconds):
      * lisp/calendar/timeclock.el (timeclock-mode-line-display)
      (timeclock-make-hours-explicit, timeclock-log-data):
      * lisp/calendar/todo-mode.el (todo-prefix, todo-delete-category)
      (todo-item-mark, todo-check-format)
      (todo-insert-item--next-param, todo-edit-item--next-key)
      (todo-mode):
      * lisp/cedet/ede/pmake.el (ede-proj-makefile-insert-dist-rules):
      * lisp/cedet/mode-local.el (describe-mode-local-overload)
      (mode-local-print-binding, mode-local-describe-bindings-2):
      * lisp/cedet/semantic/complete.el (semantic-displayor-show-request):
      * lisp/cedet/srecode/srt-mode.el (srecode-macro-help):
      * lisp/cus-start.el (standard):
      * lisp/cus-theme.el (describe-theme-1):
      * lisp/custom.el (custom-add-dependencies, custom-check-theme)
      (custom--sort-vars-1, load-theme):
      * lisp/descr-text.el (describe-text-properties-1, describe-char):
      * lisp/dired-x.el (dired-do-run-mail):
      * lisp/dired.el (dired-log):
      * lisp/emacs-lisp/advice.el (ad-read-advised-function)
      (ad-read-advice-class, ad-read-advice-name, ad-enable-advice)
      (ad-disable-advice, ad-remove-advice, ad-set-argument)
      (ad-set-arguments, ad--defalias-fset, ad-activate)
      (ad-deactivate):
      * lisp/emacs-lisp/byte-opt.el (byte-compile-inline-expand)
      (byte-compile-unfold-lambda, byte-optimize-form-code-walker)
      (byte-optimize-while, byte-optimize-apply):
      * lisp/emacs-lisp/byte-run.el (defun, defsubst):
      * lisp/emacs-lisp/bytecomp.el (byte-compile-lapcode)
      (byte-compile-log-file, byte-compile-format-warn)
      (byte-compile-nogroup-warn, byte-compile-arglist-warn)
      (byte-compile-cl-warn)
      (byte-compile-warn-about-unresolved-functions)
      (byte-compile-file, byte-compile--declare-var)
      (byte-compile-file-form-defmumble, byte-compile-form)
      (byte-compile-normal-call, byte-compile-check-variable)
      (byte-compile-variable-ref, byte-compile-variable-set)
      (byte-compile-subr-wrong-args, byte-compile-setq-default)
      (byte-compile-negation-optimizer)
      (byte-compile-condition-case--old)
      (byte-compile-condition-case--new, byte-compile-save-excursion)
      (byte-compile-defvar, byte-compile-autoload)
      (byte-compile-lambda-form)
      (byte-compile-make-variable-buffer-local, display-call-tree)
      (batch-byte-compile):
      * lisp/emacs-lisp/cconv.el (cconv-convert, cconv--analyze-use):
      * lisp/emacs-lisp/chart.el (chart-space-usage):
      * lisp/emacs-lisp/check-declare.el (check-declare-scan)
      (check-declare-warn, check-declare-file)
      (check-declare-directory):
      * lisp/emacs-lisp/checkdoc.el (checkdoc-this-string-valid-engine)
      (checkdoc-message-text-engine):
      * lisp/emacs-lisp/cl-extra.el (cl-parse-integer)
      (cl--describe-class):
      * lisp/emacs-lisp/cl-generic.el (cl-defgeneric)
      (cl--generic-describe, cl-generic-generalizers):
      * lisp/emacs-lisp/cl-macs.el (cl--parse-loop-clause, cl-tagbody)
      (cl-symbol-macrolet):
      * lisp/emacs-lisp/cl.el (cl-unload-function, flet):
      * lisp/emacs-lisp/copyright.el (copyright)
      (copyright-update-directory):
      * lisp/emacs-lisp/edebug.el (edebug-read-list):
      * lisp/emacs-lisp/eieio-base.el (eieio-persistent-read):
      * lisp/emacs-lisp/eieio-core.el (eieio--slot-override)
      (eieio-oref):
      * lisp/emacs-lisp/eieio-opt.el (eieio-help-constructor):
      * lisp/emacs-lisp/eieio-speedbar.el:
      (eieio-speedbar-child-make-tag-lines)
      (eieio-speedbar-child-description):
      * lisp/emacs-lisp/eieio.el (defclass, change-class):
      * lisp/emacs-lisp/elint.el (elint-file, elint-get-top-forms)
      (elint-init-form, elint-check-defalias-form)
      (elint-check-let-form):
      * lisp/emacs-lisp/ert.el (ert-get-test, ert-results-mode-menu)
      (ert-results-pop-to-backtrace-for-test-at-point)
      (ert-results-pop-to-messages-for-test-at-point)
      (ert-results-pop-to-should-forms-for-test-at-point)
      (ert-describe-test):
      * lisp/emacs-lisp/find-func.el (find-function-search-for-symbol)
      (find-function-library):
      * lisp/emacs-lisp/generator.el (iter-yield):
      * lisp/emacs-lisp/gv.el (gv-define-simple-setter):
      * lisp/emacs-lisp/lisp-mnt.el (lm-verify):
      * lisp/emacs-lisp/macroexp.el (macroexp--obsolete-warning):
      * lisp/emacs-lisp/map-ynp.el (map-y-or-n-p):
      * lisp/emacs-lisp/nadvice.el (advice--make-docstring)
      (advice--make, define-advice):
      * lisp/emacs-lisp/package-x.el (package-upload-file):
      * lisp/emacs-lisp/package.el (package-version-join)
      (package-disabled-p, package-activate-1, package-activate)
      (package--download-one-archive)
      (package--download-and-read-archives)
      (package-compute-transaction, package-install-from-archive)
      (package-install, package-install-selected-packages)
      (package-delete, package-autoremove, describe-package-1)
      (package-install-button-action, package-delete-button-action)
      (package-menu-hide-package, package-menu--list-to-prompt)
      (package-menu--perform-transaction)
      (package-menu--find-and-notify-upgrades):
      * lisp/emacs-lisp/pcase.el (pcase-exhaustive, pcase--u1):
      * lisp/emacs-lisp/re-builder.el (reb-enter-subexp-mode):
      * lisp/emacs-lisp/ring.el (ring-previous, ring-next):
      * lisp/emacs-lisp/rx.el (rx-check, rx-anything)
      (rx-check-any-string, rx-check-any, rx-check-not, rx-=)
      (rx-repeat, rx-check-backref, rx-syntax, rx-check-category)
      (rx-form):
      * lisp/emacs-lisp/smie.el (smie-config-save):
      * lisp/emacs-lisp/subr-x.el (internal--check-binding):
      * lisp/emacs-lisp/tabulated-list.el (tabulated-list-put-tag):
      * lisp/emacs-lisp/testcover.el (testcover-1value):
      * lisp/emacs-lisp/timer.el (timer-event-handler):
      * lisp/emulation/viper-cmd.el (viper-toggle-parse-sexp-ignore-comments)
      (viper-toggle-search-style, viper-kill-buffer)
      (viper-brac-function):
      * lisp/emulation/viper-macs.el (viper-record-kbd-macro):
      * lisp/env.el (setenv):
      * lisp/erc/erc-button.el (erc-nick-popup):
      * lisp/erc/erc.el (erc-cmd-LOAD, erc-handle-login, english):
      * lisp/eshell/em-dirs.el (eshell/cd):
      * lisp/eshell/em-glob.el (eshell-glob-regexp)
      (eshell-glob-entries):
      * lisp/eshell/em-pred.el (eshell-parse-modifiers):
      * lisp/eshell/esh-opt.el (eshell-show-usage):
      * lisp/facemenu.el (facemenu-add-new-face)
      (facemenu-add-new-color):
      * lisp/faces.el (read-face-name, read-face-font, describe-face)
      (x-resolve-font-name):
      * lisp/files-x.el (modify-file-local-variable):
      * lisp/files.el (locate-user-emacs-file, find-alternate-file)
      (set-auto-mode, hack-one-local-variable--obsolete)
      (dir-locals-set-directory-class, write-file, basic-save-buffer)
      (delete-directory, copy-directory, recover-session)
      (recover-session-finish, insert-directory)
      (file-modes-char-to-who, file-modes-symbolic-to-number)
      (move-file-to-trash):
      * lisp/filesets.el (filesets-add-buffer, filesets-remove-buffer):
      * lisp/find-cmd.el (find-generic, find-to-string):
      * lisp/finder.el (finder-commentary):
      * lisp/font-lock.el (font-lock-fontify-buffer):
      * lisp/format.el (format-write-file, format-find-file)
      (format-insert-file):
      * lisp/frame.el (get-device-terminal, select-frame-by-name):
      * lisp/fringe.el (fringe--check-style):
      * lisp/gnus/nnmairix.el (nnmairix-widget-create-query):
      * lisp/help-fns.el (help-fns--key-bindings)
      (help-fns--compiler-macro, help-fns--parent-mode)
      (help-fns--obsolete, help-fns--interactive-only)
      (describe-function-1, describe-variable):
      * lisp/help.el (describe-mode)
      (describe-minor-mode-from-indicator):
      * lisp/image.el (image-type):
      * lisp/international/ccl.el (ccl-dump):
      * lisp/international/fontset.el (x-must-resolve-font-name):
      * lisp/international/mule-cmds.el (prefer-coding-system)
      (select-safe-coding-system-interactively)
      (select-safe-coding-system, activate-input-method)
      (toggle-input-method, describe-current-input-method)
      (describe-language-environment):
      * lisp/international/mule-conf.el (code-offset):
      * lisp/international/mule-diag.el (describe-character-set)
      (list-input-methods-1):
      * lisp/mail/feedmail.el (feedmail-run-the-queue):
      * lisp/mouse.el (minor-mode-menu-from-indicator):
      * lisp/mpc.el (mpc-playlist-rename):
      * lisp/msb.el (msb--choose-menu):
      * lisp/net/ange-ftp.el (ange-ftp-shell-command):
      * lisp/net/imap.el (imap-interactive-login):
      * lisp/net/mairix.el (mairix-widget-create-query):
      * lisp/net/newst-backend.el (newsticker--sentinel-work):
      * lisp/net/newst-treeview.el (newsticker--treeview-load):
      * lisp/net/rlogin.el (rlogin):
      * lisp/obsolete/iswitchb.el (iswitchb-possible-new-buffer):
      * lisp/obsolete/otodo-mode.el (todo-more-important-p):
      * lisp/obsolete/pgg-gpg.el (pgg-gpg-process-region):
      * lisp/obsolete/pgg-pgp.el (pgg-pgp-process-region):
      * lisp/obsolete/pgg-pgp5.el (pgg-pgp5-process-region):
      * lisp/org/ob-core.el (org-babel-goto-named-src-block)
      (org-babel-goto-named-result):
      * lisp/org/ob-fortran.el (org-babel-fortran-ensure-main-wrap):
      * lisp/org/ob-ref.el (org-babel-ref-resolve):
      * lisp/org/org-agenda.el (org-agenda-prepare):
      * lisp/org/org-clock.el (org-clock-notify-once-if-expired)
      (org-clock-resolve):
      * lisp/org/org-ctags.el (org-ctags-ask-rebuild-tags-file-then-find-tag):
      * lisp/org/org-feed.el (org-feed-parse-atom-entry):
      * lisp/org/org-habit.el (org-habit-parse-todo):
      * lisp/org/org-mouse.el (org-mouse-popup-global-menu)
      (org-mouse-context-menu):
      * lisp/org/org-table.el (org-table-edit-formulas):
      * lisp/org/ox.el (org-export-async-start):
      * lisp/proced.el (proced-log):
      * lisp/progmodes/ada-mode.el (ada-get-indent-case)
      (ada-check-matching-start, ada-goto-matching-start):
      * lisp/progmodes/ada-prj.el (ada-prj-display-page):
      * lisp/progmodes/ada-xref.el (ada-find-executable):
      * lisp/progmodes/ebrowse.el (ebrowse-tags-apropos):
      * lisp/progmodes/etags.el (etags-tags-apropos-additional):
      * lisp/progmodes/flymake.el (flymake-parse-err-lines)
      (flymake-start-syntax-check-process):
      * lisp/progmodes/python.el (python-shell-get-process-or-error)
      (python-define-auxiliary-skeleton):
      * lisp/progmodes/sql.el (sql-comint):
      * lisp/progmodes/verilog-mode.el (verilog-load-file-at-point):
      * lisp/progmodes/vhdl-mode.el (vhdl-widget-directory-validate):
      * lisp/recentf.el (recentf-open-files):
      * lisp/replace.el (query-replace-read-from)
      (occur-after-change-function, occur-1):
      * lisp/scroll-bar.el (scroll-bar-columns):
      * lisp/server.el (server-get-auth-key):
      * lisp/simple.el (execute-extended-command)
      (undo-outer-limit-truncate, list-processes--refresh)
      (compose-mail, set-variable, choose-completion-string)
      (define-alternatives):
      * lisp/startup.el (site-run-file, tty-handle-args, command-line)
      (command-line-1):
      * lisp/subr.el (noreturn, define-error, add-to-list)
      (read-char-choice, version-to-list):
      * lisp/term/common-win.el (x-handle-xrm-switch)
      (x-handle-name-switch, x-handle-args):
      * lisp/term/x-win.el (x-handle-parent-id, x-handle-smid):
      * lisp/textmodes/reftex-ref.el (reftex-label):
      * lisp/textmodes/reftex-toc.el (reftex-toc-rename-label):
      * lisp/textmodes/two-column.el (2C-split):
      * lisp/tutorial.el (tutorial--describe-nonstandard-key)
      (tutorial--find-changed-keys):
      * lisp/type-break.el (type-break-noninteractive-query):
      * lisp/wdired.el (wdired-do-renames, wdired-do-symlink-changes)
      (wdired-do-perm-changes):
      * lisp/whitespace.el (whitespace-report-region):
      Prefer grave quoting in source-code strings used to generate help
      and diagnostics.
      * lisp/faces.el (face-documentation):
      No need to convert quotes, since the result is a docstring.
      * lisp/info.el (Info-virtual-index-find-node)
      (Info-virtual-index, info-apropos):
      Simplify by generating only curved quotes, since info files are
      typically that ways nowadays anyway.
      * lisp/international/mule-diag.el (list-input-methods):
      Don’t assume text quoting style is curved.
      * lisp/org/org-bibtex.el (org-bibtex-fields):
      Revert my recent changes, going back to the old quoting style.
      6afef3f6
  10. 24 Aug, 2015 1 commit
    • NicolasPetton's avatar
      Fix cl-subseq and cl-concatenate · 291593a0
      NicolasPetton authored
      * lisp/emacs-lisp/cl-extra.el (cl-subseq, cl-concatenate): Do not use
      seq functions.
      * lisp/emacs-lisp/seq.el (seq-concatenate): Call cl-concatenate in
      seq-concatenate.
      291593a0
  11. 23 Aug, 2015 2 commits
  12. 22 Aug, 2015 1 commit
    • Paul Eggert's avatar
      text-quoting-style in emacs-lisp diagnostics · c87523bd
      Paul Eggert authored
      * lisp/emacs-lisp/advice.el (ad-read-advised-function)
      (ad-read-advice-class, ad-read-advice-name, ad-enable-advice)
      (ad-disable-advice, ad-remove-advice, ad-set-argument)
      (ad-set-arguments):
      * lisp/emacs-lisp/byte-opt.el (byte-compile-inline-expand)
      (byte-compile-unfold-lambda, byte-optimize-form-code-walker)
      (byte-optimize-while, byte-optimize-apply):
      * lisp/emacs-lisp/bytecomp.el (byte-compile-lapcode)
      (byte-compile-log-file, byte-compile-format-warn)
      (byte-compile-nogroup-warn, byte-compile-arglist-warn)
      (byte-compile-cl-warn)
      (byte-compile-warn-about-unresolved-functions)
      (byte-compile-file, byte-compile-fix-header)
      (byte-compile--declare-var, byte-compile-file-form-defmumble)
      (byte-compile-form, byte-compile-normal-call)
      (byte-compile-variable-ref, byte-compile-variable-set)
      (byte-compile-subr-wrong-args, byte-compile-setq-default)
      (byte-compile-negation-optimizer)
      (byte-compile-condition-case--old)
      (byte-compile-condition-case--new, byte-compile-save-excursion)
      (byte-compile-defvar, byte-compile-autoload)
      (byte-compile-lambda-form)
      (byte-compile-make-variable-buffer-local, display-call-tree)
      (batch-byte-compile):
      * lisp/emacs-lisp/cconv.el (cconv-convert, cconv--analyze-use)
      (cconv-analyze-form):
      * lisp/emacs-lisp/chart.el (chart-space-usage):
      * lisp/emacs-lisp/check-declare.el (check-declare-scan)
      (check-declare-warn, check-declare-file)
      (check-declare-directory):
      * lisp/emacs-lisp/checkdoc.el (checkdoc-this-string-valid-engine)
      (checkdoc-message-text-engine):
      * lisp/emacs-lisp/cl-extra.el (cl-parse-integer):
      * lisp/emacs-lisp/cl-macs.el (cl--parse-loop-clause, cl-tagbody)
      (cl-symbol-macrolet):
      * lisp/emacs-lisp/cl.el (cl-unload-function, flet):
      * lisp/emacs-lisp/copyright.el (copyright)
      (copyright-update-directory):
      * lisp/emacs-lisp/edebug.el (edebug-read-list):
      * lisp/emacs-lisp/eieio-base.el (eieio-persistent-read):
      * lisp/emacs-lisp/eieio-core.el (eieio--slot-override)
      (eieio-oref, eieio-oset-default):
      * lisp/emacs-lisp/eieio-speedbar.el:
      (eieio-speedbar-child-make-tag-lines)
      (eieio-speedbar-child-description):
      * lisp/emacs-lisp/eieio.el (defclass, change-class):
      * lisp/emacs-lisp/elint.el (elint-file, elint-get-top-forms)
      (elint-init-form, elint-check-defalias-form)
      (elint-check-let-form):
      * lisp/emacs-lisp/ert.el (ert-get-test):
      * lisp/emacs-lisp/find-func.el (find-function-search-for-symbol)
      (find-function-library):
      * lisp/emacs-lisp/generator.el (iter-yield):
      * lisp/emacs-lisp/gv.el (gv-define-simple-setter):
      * lisp/emacs-lisp/lisp-mnt.el (lm-verify):
      * lisp/emacs-lisp/package-x.el (package-upload-file):
      * lisp/emacs-lisp/package.el (package-version-join)
      (package-disabled-p, package-activate-1, package-activate)
      (package--download-one-archive)
      (package--download-and-read-archives)
      (package-compute-transaction, package-install-from-archive)
      (package-install, package-install-selected-packages)
      (package-delete, package-autoremove)
      (package-install-button-action, package-delete-button-action)
      (package-menu-hide-package, package-menu--list-to-prompt)
      (package-menu--perform-transaction)
      (package-menu--find-and-notify-upgrades):
      * lisp/emacs-lisp/pcase.el (pcase-exhaustive, pcase--u1):
      * lisp/emacs-lisp/re-builder.el (reb-enter-subexp-mode):
      * lisp/emacs-lisp/ring.el (ring-next, ring-previous):
      * lisp/emacs-lisp/rx.el (rx-check, rx-anything):
      * lisp/emacs-lisp/smie.el (smie-config-save):
      * lisp/emacs-lisp/subr-x.el (internal--check-binding):
      * lisp/emacs-lisp/testcover.el (testcover-1value):
      Use curved quotes in diagnostic format strings.
      c87523bd
  13. 14 Aug, 2015 1 commit
    • Paul Eggert's avatar
      Prefer ‘format’ to ‘substitute-command-keys’ · 6af5aad2
      Paul Eggert authored
      * src/character.h (uLSQM, uRSQM): Move here ...
      * src/doc.c (uLSQM, uRSQM): ... from here.
      * src/doc.c (Fsubstitute_command_keys):
      * src/syntax.c (Finternal_describe_syntax_value):
      * lisp/cedet/mode-local.el (mode-local-print-binding)
      (mode-local-describe-bindings-2):
      * lisp/cedet/srecode/srt-mode.el (srecode-macro-help):
      * lisp/cus-theme.el (describe-theme-1):
      * lisp/descr-text.el (describe-text-properties-1, describe-char):
      * lisp/emacs-lisp/cl-extra.el (cl--describe-class):
      * lisp/emacs-lisp/cl-generic.el (cl--generic-describe):
      * lisp/emacs-lisp/eieio-opt.el (eieio-help-constructor):
      * lisp/emacs-lisp/package.el (describe-package-1):
      * lisp/faces.el (describe-face):
      * lisp/help-fns.el (help-fns--key-bindings)
      (help-fns--compiler-macro, help-fns--parent-mode)
      (help-fns--obsolete, help-fns--interactive-only)
      (describe-function-1, describe-variable):
      * lisp/help.el (describe-mode):
      Prefer ‘format’ to ‘substitute-command-keys’ when either will do
      to implement quoting style.  This generally makes the code simpler.
      6af5aad2
  14. 07 Aug, 2015 1 commit
    • Phillip Lord's avatar
      Improve error signalling for seq-subseq. · feadec30
      Phillip Lord authored
      The existing behaviour for seq-subseq is to error when indexes are too
      large, but to silently ignore numbers which are too negative for lists.
      String and vector handling errors in both cases. This has been
      regularlised.
      
      Error signalling behaviour has been explicitly added to the docstring of
      seq-subseq, and also to cl-subseq which largely defers to
      seq-subseq (and is therefore also impacted by this change).
      
      Tests have been added for these exceptional cases, as well as one non
      exceptional base case.
      feadec30
  15. 02 Aug, 2015 1 commit
    • Paul Eggert's avatar
      Substitute some customization etc. doc strings · bd3b426e
      Paul Eggert authored
      These changes apply substitute-command-keys to some
      doc strings that were going through untranslated
      when creating customization or other widgets.
      * lisp/cus-edit.el (custom-group-value-create):
      * lisp/wid-edit.el (widget-default-create):
      (widget-push-button-value-create):
      Treat the widget tag as a doc string.
      * lisp/emacs-lisp/cl-extra.el (cl--describe-class-slot):
      Treat the :documentation value as a doc string.
      * lisp/wid-edit.el (widget-choose):
      Treat the choice names as doc strings.
      (widget-default-create): Treat the :doc value as a doc string.
      (widget-toggle-value-create): Treat the :on and :off values
      as doc strings.
      (widget-documentation-string-value-create):
      Substitute the doc string.
      bd3b426e
  16. 07 Jul, 2015 1 commit
    • Stefan Monnier's avatar
      Add online-help support to describe types · 59b5723c
      Stefan Monnier authored
      * lisp/help-fns.el (describe-symbol-backends): Move to help-mode.el.
      (describe-symbol): Improve the selection of default.
      
      * lisp/help-mode.el: Require cl-lib.
      (describe-symbol-backends): Move from help-fns.el.
      (help-make-xrefs): Use it.
      
      * lisp/emacs-lisp/cl-extra.el (describe-symbol-backends): Add entry
      for types.
      (cl--typedef-regexp): New const.
      (find-function-regexp-alist): Add entry for types.
      (cl-help-type, cl-type-definition): New buttons.
      (cl-find-class): New function.
      (cl-describe-type): New command.
      (cl--describe-class, cl--describe-class-slot)
      (cl--describe-class-slots): New functions, moved from eieio-opt.el.
      
      * lisp/emacs-lisp/cl-generic.el (cl--generic-method-documentation)
      (cl--generic-all-functions, cl--generic-specializers-apply-to-type-p):
      New functions.  Moved from eieio-opt.el.
      (cl--generic-class-parents): New function, extracted from
      cl--generic-struct-specializers.
      (cl--generic-struct-specializers): Use it.
      
      * lisp/emacs-lisp/cl-macs.el (cl-defstruct): Use pcase-dolist.
      Improve constructor's docstrings.
      (cl-struct-unknown-slot): New error.
      (cl-struct-slot-offset): Use it.
      
      * lisp/emacs-lisp/cl-preloaded.el (cl-struct-define): Record the type
      definition in current-load-list.
      
      * lisp/emacs-lisp/eieio-core.el (eieio--known-slot-names): New var.
      (eieio--add-new-slot): Set it.
      (eieio-defclass-internal): Use new name for current-load-list.
      (eieio-oref): Add compiler-macro to warn about unknown slots.
      * lisp/emacs-lisp/eieio.el (defclass): Update eieio--known-slot-names
      as compile-time as well.  Improve constructor docstrings.
      
      * lisp/emacs-lisp/eieio-opt.el (eieio-help-class)
      (eieio--help-print-slot, eieio-help-class-slots): Move to cl-extra.el.
      (eieio-class-def): Remove button.
      (eieio-help-constructor): Use new name for load-history element.
      (eieio--specializers-apply-to-class-p, eieio-all-generic-functions)
      (eieio-method-documentation): Move to cl-generic.el.
      (eieio-display-method-list): Use new names.
      
      * lisp/emacs-lisp/lisp-mode.el (lisp-imenu-generic-expression):
      Add "define-linline".
      (lisp-fdefs): Remove "defsubst".
      (el-fdefs): Add "defsubst", "cl-defsubst", and "define-linline".
      
      * lisp/emacs-lisp/macroexp.el (macroexp--warned): New var.
      (macroexp--warn-and-return): Use it to avoid inf-loops.
      Add `compile-only' argument.
      59b5723c
  17. 27 Jun, 2015 1 commit
    • Paul Eggert's avatar
      cl-extra fixes for most-negative-fixnum · da5e0050
      Paul Eggert authored
      * lisp/emacs-lisp/cl-extra.el (cl-gcd, cl-lcm, cl-random):
      Don't mishandle an argument equal to most-negative-fixnum,
      whose absolute value equals itself.
      (cl-gcd, cl-lcm): Use dolist rather than doing it by hand.
      da5e0050
  18. 15 Apr, 2015 1 commit
  19. 18 Jan, 2015 1 commit
    • 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
  20. 01 Jan, 2015 2 commits
  21. 24 Nov, 2014 1 commit
    • Leo Liu's avatar
      New macro macroexp-let2* · 6dbaf047
      Leo Liu authored
      * 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.
      6dbaf047
  22. 09 Nov, 2014 1 commit
    • Stefan Monnier's avatar
      Fix bootstrap failure after last change to eval-and-compile. · 57db3f3a
      Stefan Monnier authored
      * 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.
      57db3f3a
  23. 23 Oct, 2014 1 commit
  24. 08 Oct, 2014 1 commit
    • Leo Liu's avatar
      Enhance terpri to allow conditionally output a newline · 2dbd7a37
      Leo Liu authored
      * doc/lispref/streams.texi (Output Functions): Document new argument ENSURE to
      terpri.
      
      * doc/misc/cl.texi (Porting Common Lisp): Remove parse-integer.
      
      * lisp/emacs-lisp/cl-extra.el (cl-fresh-line): New function.
      
      * src/keymap.c (describe_vector_princ):
      * src/keyboard.c (Fcommand_error_default_function): Adapt to change to
      Fterpri.
      
      * src/print.c (printchar_stdout_last): Declare.
      (printchar): Record the last char written to stdout.
      (Fterpri): Add optional argument ENSURE.
      
      * test/automated/print-tests.el: New file.
      (terpri): Tests for terpri.  (Bug#18652)
      2dbd7a37
  25. 26 Sep, 2014 2 commits
    • Leo Liu's avatar
      d73f2d85
    • Leo Liu's avatar
      Add cl-parse-integer based on parse-integer · 89b354a5
      Leo Liu authored
      * doc/misc/cl.texi (Predicates on Numbers): Document cl-digit-char-p.
      (Numerical Functions): Document cl-parse-integer. 
      
      * lisp/calendar/parse-time.el (parse-time-digits): Remove.
      (digit-char-p, parse-integer) Moved to cl-lib.el.
      (parse-time-tokenize, parse-time-rules, parse-time-string): Use
      cl-parse-integer.
      
      * lisp/emacs-lisp/cl-extra.el (cl-parse-integer): New function.
      
      * lisp/emacs-lisp/cl-lib.el (cl-digit-char-table): New var.
      (cl-digit-char-p): New function.
      
      * test/automated/cl-lib.el (cl-digit-char-p, cl-parse-integer): New
      tests.
      
      Fixes: debbugs:18557
      89b354a5
  26. 20 Mar, 2014 1 commit
  27. 01 Jan, 2014 1 commit
  28. 15 May, 2013 1 commit
  29. 01 Jan, 2013 1 commit
  30. 06 Dec, 2012 1 commit
    • Stefan Monnier's avatar
      Further cleanup of the "cl-" namespace. Fit CL in 80 columns. · 338bfefa
      Stefan Monnier authored
      * lisp/emacs-lisp/cl-macs.el (cl--pop2, cl--optimize-safety)
      (cl--optimize-speed, cl--not-toplevel, cl--parse-loop-clause)
      (cl--expand-do-loop, cl--proclaim-history, cl--declare-stack)
      (cl--do-proclaim, cl--proclaims-deferred): Rename from the "cl-" prefix.
      (cl-progv): Don't rely on dynamic scoping to find the body.
      * lisp/emacs-lisp/cl-lib.el (cl--optimize-speed, cl--optimize-safety)
      (cl--proclaims-deferred): Rename from the "cl-" prefix.
      (cl-declaim): Use backquotes.
      * lisp/emacs-lisp/cl-extra.el (cl-make-random-state, cl-random-state-p):
      Use "cl--" prefix for the object's tag.
      338bfefa
  31. 05 Nov, 2012 1 commit
    • Glenn Morris's avatar
      Misc small cl doc fixes · 5593ed90
      Glenn Morris authored
      * emacs-lisp/cl-extra.el (cl-maplist, cl-mapcan): Doc fix.
      
      * emacs-lisp/cl-extra.el (cl-prettyexpand):
      * emacs-lisp/cl-lib.el (cl-proclaim, cl-declaim):
      * emacs-lisp/cl-macs.el (cl-destructuring-bind, cl-locally)
      (cl-the, cl-compiler-macroexpand): Add basic doc strings.
      5593ed90
  32. 03 Nov, 2012 1 commit
    • Glenn Morris's avatar
      Rename cl-random-time to cl--random-time · 376a8e83
      Glenn Morris authored
      * emacs-lisp/cl-lib.el (cl--random-time): Rename from cl-random-time. 
      (cl--gensym-counter, cl--random-state): Update callers.
      * emacs-lisp/cl-extra.el (cl-make-random-state): Update callers.
      
      Fixes: debbugs:12773
      376a8e83
  33. 30 Oct, 2012 1 commit
    • Glenn Morris's avatar
      cl-mapc small fixes · f43a5263
      Glenn Morris authored
      * lisp/emacs-lisp/cl-extra.el (cl-mapc): Add autoload cookie.  Doc fix.
      
      * doc/misc/cl.texi (Mapping over Sequences): Mention cl-mapc naming oddity.
      f43a5263
  34. 28 Sep, 2012 1 commit
  35. 11 Jul, 2012 1 commit
    • Stefan Monnier's avatar
      More CL cleanups and reduction of use of cl.el. · a464a6c7
      Stefan Monnier authored
      * woman.el, winner.el, vc/vc-rcs.el, vc/vc-hooks.el, vc/vc-hg.el:
      * vc/vc-git.el, vc/vc-dir.el, vc/vc-bzr.el, vc/vc-annotate.el:
      * textmodes/tex-mode.el, textmodes/sgml-mode.el, tar-mode.el:
      * strokes.el, ses.el, server.el, progmodes/js.el, progmodes/gdb-mi.el:
      * progmodes/flymake.el, progmodes/ebrowse.el, progmodes/compile.el:
      * play/tetris.el, play/snake.el, play/pong.el, play/landmark.el:
      * play/hanoi.el, play/decipher.el, play/5x5.el, nxml/nxml-mode.el:
      * net/secrets.el, net/quickurl.el, midnight.el, mail/footnote.el:
      * image-dired.el, ibuffer.el, ibuf-macs.el, ibuf-ext.el, hexl.el:
      * eshell/eshell.el, eshell/esh-io.el, eshell/esh-ext.el:
      * eshell/esh-cmd.el, eshell/em-ls.el, eshell/em-hist.el:
      * eshell/em-cmpl.el, eshell/em-banner.el:
      * url/url.el, url/url-queue.el, url/url-parse.el, url/url-http.el:
      * url/url-future.el, url/url-dav.el, url/url-cookie.el:
      * calendar/parse-time.el, test/eshell.el: Use cl-lib.
      * wid-browse.el, wdired.el, vc/vc.el, vc/vc-mtn.el, vc/vc-cvs.el:
      * vc/vc-arch.el, tree-widget.el, textmodes/texinfo.el:
      * textmodes/refill.el, textmodes/css-mode.el, term/tvi970.el:
      * term/ns-win.el, term.el, shell.el, ps-samp.el:
      * progmodes/perl-mode.el, progmodes/pascal.el, progmodes/gud.el:
      * progmodes/glasses.el, progmodes/etags.el, progmodes/cwarn.el:
      * play/gamegrid.el, play/bubbles.el, novice.el, notifications.el:
      * net/zeroconf.el, net/xesam.el, net/snmp-mode.el, net/mairix.el:
      * net/ldap.el, net/eudc.el, net/browse-url.el, man.el:
      * mail/mailheader.el, mail/feedmail.el:
      * url/url-util.el, url/url-privacy.el, url/url-nfs.el, url/url-misc.el:
      * url/url-methods.el, url/url-gw.el, url/url-file.el, url/url-expand.el:
      Dont use CL.
      * ibuf-ext.el (ibuffer-mark-old-buffers): Use float-time.
      * eshell/esh-opt.el (eshell-eval-using-options): Quote code with
      `lambda' rather than with `quote'.
      (eshell-do-opt): Adjust accordingly.
      (eshell-process-option): Simplify.
      * eshell/esh-var.el:
      * eshell/em-script.el: Require `esh-opt' for eshell-eval-using-options.
      * emacs-pcase.el (pcase--dontcare-upats, pcase--let*)
      (pcase--expand, pcase--u1): Rename pcase's internal `dontcare' pattern
      to `pcase--dontcare'.
      * emacs-cl.el (labels): Mark obsolete.
      (cl--letf, letf): Move to cl-lib.
      (cl--letf*, letf*): Remove.
      * emacs-cl-lib.el (cl-nth-value): Use defalias.
      * emacs-cl-macs.el (cl-dolist, cl-dotimes): Add indent rule.
      (cl-progv): Rewrite.
      (cl--letf, cl-letf): Move from cl.el.
      (cl-letf*): New macro.
      * emacs-cl-extra.el (cl--progv-before, cl--progv-after): Remove.
      a464a6c7
  36. 22 Jun, 2012 1 commit
    • Stefan Monnier's avatar
      Further GV/CL cleanups. · 36cec983
      Stefan Monnier authored
      * lisp/emacs-lisp/gv.el (gv-get): Autoload functions to find their
      gv-expander.
      (gv--defun-declaration): New function.
      (defun-declarations-alist): Use it.
      (gv-define-modify-macro, gv-pushnew!, gv-inc!, gv-dec!): Remove.
      (gv-place): Autoload.
      * lisp/emacs-lisp/cl.el (cl--dotimes, cl--dolist): Remember subr.el's
      original definition of dotimes and dolist.
      * lisp/emacs-lisp/cl-macs.el (cl-expr-access-order): Remove unused.
      (cl-dolist, cl-dotimes): Use `dolist' and `dotimes'.
      * lisp/emacs-lisp/cl-lib.el: Move gv handlers from cl-macs to here.
      (cl-fifth, cl-sixth, cl-seventh, cl-eighth)
      (cl-ninth, cl-tenth): Move gv handler to the function's definition.
      * lisp/emacs-lisp/cl-extra.el (cl-subseq, cl-get, cl-getf): Move gv handler
      to the function's definition.
      * lisp/Makefile.in (COMPILE_FIRST): Re-order to speed it up by about 50%.
      * lisp/window.el:
      * lisp/files.el:
      * lisp/faces.el:
      * lisp/env.el: Don't use CL.
      36cec983