1. 05 Feb, 2015 1 commit
    • Stefan Monnier's avatar
      Add (:documentation <form>) for dynamically-generated docstrings · ad5a7c86
      Stefan Monnier authored
      * lisp/emacs-lisp/bytecomp.el:
      (byte-compile-initial-macro-environment): Use macroexp-progn.
      (byte-compile-cl-warn): Don't silence use of cl-macroexpand-all.
      (byte-compile-file-form-defvar-function): Rename from
      byte-compile-file-form-define-abbrev-table.
      (defvaralias, byte-compile-file-form-custom-declare-variable): Use it.
      (byte-compile): Use byte-compile-top-level rather than
      byte-compile-lambda so we can compile non-values.
      (byte-compile-form): Add warnings for failed uses of lexical vars via
      quoted symbols.
      (byte-compile-unfold-bcf): Improve message for failed inlining.
      (byte-compile-make-closure): Handle new format of internal-make-closure
      for dynamically-generated docstrings.
      
      * lisp/emacs-lisp/cconv.el (cconv--convert-function):
      Add `docstring' argument.
      (cconv-convert): Use it to handle the new (:documentation ...) form.
      (cconv-analyze-form): Handle the new (:documentation ...) form.
      
      * src/eval.c (Ffunction): Handle the new (:documentation ...) form.
      (syms_of_eval): Declare `:documentation'.
      ad5a7c86
  2. 03 Feb, 2015 1 commit
  3. 01 Feb, 2015 2 commits
  4. 27 Jan, 2015 2 commits
    • 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
    • Thomas Fitzsimmons's avatar
      etc/NEWS: Document EUDC improvements · c7effd7c
      Thomas Fitzsimmons authored
      c7effd7c
  5. 25 Jan, 2015 1 commit
    • Paul Eggert's avatar
      Use gnustep-config if available · f6ef8365
      Paul Eggert authored
      * configure.ac (--with-gnustep): Document this.
      (NS_GNUSTEP_CONFIG): New variable, set if gnustep-config works.
      If gnustep-config works, use 'gnustep-config --objc-flags' and
      'gnustep-config --gui-libs' to compute GNUstep configuration
      variables, instead of attempting to infer them individually.
      * etc/NEWS: Document this.
      * src/emacs.c [NS_IMPL_GNUSTEP]: Don't include <GNUstepBase/GSConfig.h>.
      It doesn't appear to be needed, and the inclusion breaks on
      Ubuntu 14.10 when 'configure' uses 'gnustep-config'.
      Fixes: bug#19507
      f6ef8365
  6. 22 Jan, 2015 1 commit
    • 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
  7. 21 Jan, 2015 1 commit
    • 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
  8. 20 Jan, 2015 3 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
      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
      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
  9. 18 Jan, 2015 1 commit
    • 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
  10. 17 Jan, 2015 2 commits
    • 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
    • Artur Malabarba's avatar
      40d963ff
  11. 15 Jan, 2015 1 commit
    • Eli Zaretskii's avatar
      Add set-binary-mode primitive to switch a standard stream to binary I/O. · 0f238ea4
      Eli Zaretskii authored
       src/fileio.c: Include binary-io.h.
       (Fset_binary_mode): New function.
       (syms_of_fileio): Defsubr it.
       (syms_of_fileio) <Qstdin, Qstdout, Qstderr>: DEFSYM them.
      
       admin/unidata/unidata/uvs.el (uvs-print-table-ivd): Call set-binary-mode on
       stdout.
      
       doc/lispref/streams.texi (Input Functions): Document 'set-binary-mode'.
       (Output Functions): Cross-reference to documentation of
       'set-binary-mode'.
      
       etc/NEWS: Mention 'set-binary-mode'.
      0f238ea4
  12. 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
  13. 11 Jan, 2015 1 commit
    • Paul Eggert's avatar
      Default to 'configure --enable-silent-rules' · b995b4ae
      Paul Eggert authored
      This greatly shortens the 'make' output, making it more readable
      and useful.  For example, on my platform it shortens a
      4125-character line "gcc -std=gnu99 -c -Demacs -I. -I. -I../lib
      ... emacs.c" -- a line so long that it's hard to see what's going
      on or where the diagnostics are -- to just "CC emacs.o".
      * INSTALL: Document this.
      * configure.ac: Add AM_SILENT_RULES([yes]).
      (AM_DEFAULT_VERBOSITY): Remove now-unnecessary initialization.
      * etc/NEWS: Document this.
      Fixes: bug#19501
      b995b4ae
  14. 10 Jan, 2015 1 commit
  15. 08 Jan, 2015 2 commits
    • Stefan Monnier's avatar
      * lisp/emacs-lisp/eieio*.el: Move the function defs to defclass. · 6a67b20d
      Stefan Monnier authored
      * lisp/emacs-lisp/eieio.el (defclass): Move from eieio-defclass all the code
      that creates functions, and most of the sanity checks.
      Mark as obsolete the <class>-child-p function.
      * lisp/emacs-lisp/eieio-core.el (eieio--define-field-accessors): Remove.
      (eieio--class, eieio--object): Use cl-defstruct.
      (eieio--object-num-slots): Define manually.
      (eieio-defclass-autoload): Use eieio--class-make.
      (eieio-defclass-internal): Rename from eieio-defclass.  Move all the
      `(lambda...) definitions and most of the sanity checks to `defclass'.
      Mark as obsolete the <class>-list-p function, the <class> variable and
      the <initarg> variables.  Use pcase-dolist.
      (eieio-defclass): New compatibility function.
      * lisp/emacs-lisp/eieio-opt.el (eieio-build-class-alist)
      (eieio-class-speedbar): Don't use eieio-default-superclass var.
      6a67b20d
    • Glenn Morris's avatar
      * lisp/files.el (file-tree-walk): Remove; of unknown authorship. · ffa86039
      Glenn Morris authored
      * etc/NEWS: Remove entry.
      
      Fixes: debbugs:19325
      ffa86039
  16. 06 Jan, 2015 1 commit
  17. 05 Jan, 2015 1 commit
  18. 04 Jan, 2015 1 commit
    • Paul Eggert's avatar
      batch write-region no longer says "Wrote FOO" · d20f82e6
      Paul Eggert authored
      This cuts down on 'make' chatter a bit.
      * doc/lispref/files.texi (Writing to Files):
      * etc/NEWS: Document this.
      * src/fileio.c (Fwrite_region):
      Don't output "Wrote /whatever/foo.elc" if noninteractive.
      d20f82e6
  19. 01 Jan, 2015 2 commits
  20. 31 Dec, 2014 1 commit
  21. 29 Dec, 2014 3 commits
    • Paul Eggert's avatar
      97311068
    • Paul Eggert's avatar
      system-name's returned value can vary · f9acac75
      Paul Eggert authored
      Also, the system-name variable is now obsolete.
      Fixes Bug#19438.
      * doc/lispref/os.texi (System Environment):
      * etc/NEWS: Document this.
      * doc/misc/efaq.texi:
      (Displaying the current file name in the titlebar):
      * lisp/desktop.el (desktop-save-frameset):
      * lisp/dnd.el (dnd-get-local-file-uri):
      * lisp/gnus/message.el (message-make-fqdn):
      * lisp/gnus/nnvirtual.el (nnvirtual-retrieve-headers)
      (nnvirtual-update-xref-header):
      * lisp/nxml/rng-uri.el (rng-uri-file-name-1):
      * lisp/org/org-clock.el (org-clock-save):
      * src/filelock.c (current_lock_owner):
      * src/xrdb.c (get_environ_db):
      * src/xterm.c (same_x_server):
      * src/xterm.c (x_term_init):
      Prefer (system-name) to system-name, and avoid naming
      locals 'system-name'.
      * doc/misc/smtpmail.texi (Server workarounds): Fix grammar.
      * lisp/startup.el (system-name): Now an obsolete variable.
      * src/editfns.c (cached_system_name): New static var.
      (init_and_cache_system_name): New function.
      (init_editfns, Fsystem_name): Use it.
      (syms_of_editfns): Initialize it and Vsystem_name to the same value.
      * src/sysdep.c [HAVE_SOCKETS]: Don't include <sys/socket.h>, <netdb.h>.
      (h_errno) [TRY_AGAIN && !HAVE_H_ERRNO]: Remove decl.
      (init_system_name) [HAVE_SOCKETS]: Don't canonicalize the name.
      Don't create a new string if the current value is already correct.
      f9acac75
    • Dmitry Gutov's avatar
      Declare many etags command obsolete; update the goto menu · c1eec814
      Dmitry Gutov authored
      * lisp/menu-bar.el (menu-bar-goto-menu): Replace all but one etags item
      with xref ones.
      
      * lisp/progmodes/etags.el (find-tag-other-window)
      (find-tag-other-frame, find-tag-regexp, tags-loop-continue)
      (tags-apropos): Declare obsolete.
      c1eec814
  22. 28 Dec, 2014 1 commit
    • Juri Linkov's avatar
      Use diff faces for compare-windows · d143df5a
      Juri Linkov authored
      * lisp/vc/compare-w.el: Require diff-mode for diff faces.
      (compare-windows-removed, compare-windows-added): New faces
      inheriting from diff faces.
      (compare-windows): Define obsolete face alias.
      (compare-windows-highlight): Replace face `compare-windows' with
      new faces `compare-windows-added' and `compare-windows-removed'.
      (compare-windows-get-recent-window): Signal an error when
      no other window is found.
      
      Fixes: debbugs:19451
      d143df5a
  23. 26 Dec, 2014 1 commit
  24. 25 Dec, 2014 2 commits
    • Dmitry Gutov's avatar
      Consolidate cross-referencing commands · 394ce951
      Dmitry Gutov authored
      Move autoloaded bindings for `M-.', `M-,', `C-x 4 .' and
      `C-x 5 .' from etags.el to xref.el.
      
      * progmodes/xref.el: New file.
      
      * progmodes/elisp-mode.el (elisp--identifier-types): New variable.
      (elisp--identifier-location): New function, extracted from
      `elisp--company-location'.
      (elisp--company-location): Use it.
      (elisp--identifier-completion-table): New variable.
      (elisp-completion-at-point): Use it.
      (emacs-lisp-mode): Set the local values of `xref-find-function'
      and `xref-identifier-completion-table-function'.
      (elisp-xref-find, elisp--xref-find-definitions)
      (elisp--xref-identifier-completion-table): New functions.
      
      * progmodes/etags.el (find-tag-marker-ring): Mark obsolete in
      favor of `xref--marker-ring'.
      (tags-lazy-completion-table): Autoload.
      (tags-reset-tags-tables): Use `xref-clear-marker-stack'.
      (find-tag-noselect): Use `xref-push-marker-stack'.
      (pop-tag-mark): Make an alias for `xref-pop-marker-stack'.
      (etags--xref-limit): New constant.
      (etags-xref-find, etags--xref-find-definitions): New functions.
      394ce951
    • Karl Fogel's avatar
      * etc/NEWS: Mention new buffer display behavior for `shell'. · ac549019
      Karl Fogel authored
      This follows up to Sam Steingold's change of 2014-12-23
      in ../lisp/shell.el, in git commit e55a467e.
      ac549019
  25. 19 Dec, 2014 1 commit
  26. 18 Dec, 2014 5 commits
    • Sam Steingold's avatar
      Keyboard interface (C-f10) to `mouse-buffer-menu' (C-down-mouse-1). · 87f9ec7a
      Sam Steingold authored
      * lisp/mouse.el (mouse-buffer-menu-map): Extract from `mouse-buffer-menu'.
      (mouse-buffer-menu): Use `mouse-buffer-menu-map'.
      * lisp/menu-bar.el (menu-bar-buffer-vector): Extract from
      `menu-bar-update-buffers'.
      (menu-bar-update-buffers): Use `menu-bar-buffer-vector'.
      (buffer-menu-open): New user command, bound globally to C-f10,
      provides a keyboard interface to `mouse-buffer-menu' (C-down-mouse-1).
      (mouse-buffer-menu-keymap): Use `menu-bar-buffer-vector' to
      convert the value returned by `mouse-buffer-menu-map' to a list
      acceptable to `popup-menu' for `buffer-menu-open'.
      87f9ec7a
    • Martin Rudalics's avatar
      Add code for "preserving" window sizes. · 47f730e3
      Martin Rudalics authored
      * frame.c (frame_windows_min_size): New argument IGNORE.
      (adjust_frame_size): When called from change_frame_size call
      frame_windows_min_size with IGNORE Qt so we can ignore size
      restrictions.
      
      * dired.el (dired-pop-to-buffer): Call fit-window-to-buffer with
      `preserve-size' t.
      (dired-mark-pop-up): Preserve size of window showing marked
      files.
      * electric.el (Electric-pop-up-window):
      * help.el (resize-temp-buffer-window): Call fit-window-to-buffer
      with `preserve-size' t.
      * minibuffer.el (minibuffer-completion-help): Use
      `resize-temp-buffer-window' instead of `fit-window-to-buffer'
      (Bug#19355).  Preserve size of completions window.
      * register.el (register-preview): Preserve size of register
      preview window.
      * tmm.el (tmm-add-prompt): Call fit-window-to-buffer
      with `preserve-size' t (Bug#1291).
      * window.el (with-displayed-buffer-window): Add calls to
      `window-preserve-size'.
      (window-min-pixel-size, window--preservable-size)
      (window-preserve-size, window-preserved-size)
      (window--preserve-size, window--min-size-ignore-p): New
      functions.
      (window-min-size, window-min-delta, window--resizable)
      (window--resize-this-window, split-window-below)
      (split-window-right): Amend doc-string.
      (adjust-window-trailing-edge): Handle preserving window
      sizes.  Signal user-error instead of an error when there's no
      window above or below.
      (window--min-size-1, window-sizable, window--size-fixed-1)
      (window-size-fixed-p, window--min-delta-1)
      (frame-windows-min-size, window--max-delta-1, window-resize)
      (window--resize-child-windows, window--resize-siblings)
      (enlarge-window, shrink-window, split-window): Handle preserving
      window sizes.
      (window--state-put-2): Handle horizontal scroll bars.
      (window--display-buffer): Call `preserve-size' if asked for.
      (display-buffer): Mention `preserve-size' alist member in
      doc-string.
      (fit-window-to-buffer): New argument PRESERVE-SIZE.
      47f730e3
    • Eli Zaretskii's avatar
      Allow querying font by name for its height and other info. (Bug#19395) · b1978229
      Eli Zaretskii authored
       src/font.c (Ffont_info): Add more font information to the vector
       returned by the function, inspired by query-font.  Doc fix.
      
       doc/lispref/display.texi (Low-Level Font): Document font-info and query-font.
      
       lisp/international/mule-diag.el (describe-font-internal): Display
       additional info returned by font-info.
       lisp/linum.el (linum--face-width): Rename from linum--face-height,
       and use the new functionality of font-info.
       (linum-update-window): Use linum--face-width and frame-char-width,
       instead of approximating with height.
      
       etc/NEWS: Mention the enhancement in font-info.
      b1978229
    • Stefan Monnier's avatar
      * lisp/subr.el (redisplay-dont-pause): Mark as obsolete. · 78101c2b
      Stefan Monnier authored
      * doc/lispref/display.texi (Forcing Redisplay): Remove references to
      redisplay-dont-pause and redisplay-preemption-period (which doesn't
      even exist).
      78101c2b
    • NicolasPetton's avatar
      62d7857d