2013-07-06 Lars Ingebrigtsen <larsi@gnus.org>
* gnus.texi (Emacsen): Fix version.
* gnus-faq.texi (FAQ 1-6): Mention the correct Emacs version.
2013-07-06 Lars Ingebrigtsen <larsi@gnus.org>
* gnus-art.el (gnus-block-private-groups): Allow `global' methods to
display images.
* gnus.el (gnus-valid-select-methods): Mark nnrss as global.
* message.el (message-cancel-news): According to
<mailman.216.1372942181.12400.help-gnu-emacs@gnu.org>, "cancel" is
preferred over "cmsg cancel" in the Subject.
* nnir.el (nnir-engines): Note that the group specs are regexps
(bug#13238).
* gnus-msg.el (gnus-copy-article-buffer): If the article buffer has
gotten read-only text properties, ensure that those aren't heeded when
copying stuff over (bug#13434).
* mm-view.el (mm-inline-text-html): Don't bug out on multipart messages
(bug#13762).
* admin.el (make-manuals): Add the option to only make certain output types.
(manual-misc-html): Special-case ccmode and efaq.
(manual-html-mono, manual-html-node, manual-pdf, manual-ps):
Move creation of output directory here from make-manuals.
(manual-html-fix-index-2): Avoid dynamic reference to `f'.
Jan Djärv [Sat, 6 Jul 2013 17:58:41 +0000 (19:58 +0200)]
* lisp/files.el (write-file): Do not display confirm dialog for NS,
it does its own dialog, which can't be cancelled.
* src/nsfns.m: Remove panelOK.
(ns_fd_data): New.
(ns_run_file_dialog): New function.
(Fns_read_file_name): Fill in ns_fd_data, post an event and start the
event loop, so file dialog is popped up by ns_run_file_dialog, called
by sendEvent (Bug#14578).
(EmacsSavePanel, EmacsOpenPanel): Remove ok and cancel methods.
Martin Rudalics [Sat, 6 Jul 2013 14:24:54 +0000 (16:24 +0200)]
lisp/window.el (window-state-put): Remove window if buffer was not restored.
(window-state-put-stale-windows): New variable.
(window--state-put-2): Save list of windows without matching buffer.
(window-state-put): Remove "bufferless" windows if possible.
David Kastrup [Sat, 6 Jul 2013 12:49:38 +0000 (12:49 +0000)]
lisp/gnus/auth-source.el (auth-source-netrc-parse-one): Allow empty strings in authinfo file again (important for blank passwords). This had been broken with 2013-06-15 change
Leo Liu [Sat, 6 Jul 2013 12:37:12 +0000 (20:37 +0800)]
* ido.el (ido-use-virtual-buffers): Allow new value 'auto.
(ido-enable-virtual-buffers): New variable.
(ido-buffer-internal, ido-toggle-virtual-buffers)
(ido-make-buffer-list): Use it.
(ido-exhibit): Support turning on and off virtual buffers
automatically.
Eli Zaretskii [Sat, 6 Jul 2013 10:41:38 +0000 (13:41 +0300)]
Fix bug #14771 with scroll-step = 1 and non-nil line-spacing.
src/xdisp.c (default_line_pixel_height): New function.
(pos_visible_p, move_it_vertically_backward, try_scrolling)
(try_cursor_movement, redisplay_window, try_window)
(try_window_id): Use it instead of FRAME_LINE_HEIGHT. (Bug#14771)
src/window.c (window_scroll_pixel_based): use
default_line_pixel_height.
src/dispextern.h (default_line_pixel_height): Add prototype.
src/frame.c (x_set_line_spacing): Accept a float value for
line-spacing parameter, per the documentation.
Michael Albinus [Fri, 5 Jul 2013 14:06:14 +0000 (16:06 +0200)]
* automated/file-notify-tests.el
(file-notify-test-remote-temporary-file-directory): Use
`null-device' on w32.
(file-notify--test-tmpfile, file-notify--test-tmpfile1)
(file-notify--test-results, file-notify--test-event)
(file-notify--deftest-remote, file-notify--event-test)
(file-notify--test-event-handler)
(file-notify--test-make-temp-name): Renamed, in order to mark them
internal.
(tramp-message-show-message, tramp-read-passwd): Tweak them for
better fitting in noninteractive tests.
(file-notify-test00-availability): Renamed from `file-notify-test0'.
(file-notify-test01-add-watch): Renamed from `file-notify-test1'.
Use `temporary-file-directory '.
(file-notify-test01-add-watch-remote): New test.
(file-notify-test02-events): Renamed from `file-notify-test2'.
(file-notify-test02-events-remote): Renamed from `file-notify-test3'.
(file-notify-test03-autorevert): Renamed from
`file-notify-test4'. Use timeouts.
(file-notify-test03-autorevert-remote): Renamed from
`file-notify-test5'.
Stephen Berman [Fri, 5 Jul 2013 14:03:35 +0000 (16:03 +0200)]
* calendar/todo-mode.el: Add handling of file deletion, both by
mode command and externally. Fix various related bugs. Clarify
Commentary and improve some documentation strings and code.
(todo-delete-file): New command.
(todo-check-file): New function.
(todo-show): Handle external deletion of the file we're trying to
show. Replace called-interactively-p by an optional
prefix argument to avoid problematic interaction with catch form
when byte compiled (bug#14702).
(todo-quit): Handle external deletion of the archive's todo file.
Make sure the buffer that was visiting the archive file is still
live before trying to bury it.
(todo-category-completions): Handle external deletion of any
category completion files.
(todo-jump-to-category, todo-basic-insert-item): Recalculate list
of todo files, in case of external deletion.
(todo-add-file): Replace unnecessary setq by let-binding.
(todo-find-archive): Check whether there are any archives.
Replace unnecessary setq by let-binding.
(todo-archive-done-item): Use find-file-noselect to get the
archive buffer whether or not the archive already exists. Remove
superfluous code. Use file size instead of buffer-file-name to
check if the archive is new; if it is, update list of archives.
(todo-default-todo-file): Allow nil to be a valid value for when
there are no todo files.
(todo-reevaluate-default-file-defcustom): Use corrected definition
of todo-default-todo-file.
(todo-key-bindings-t+a+f): Add key binding for todo-delete-file.
(todo-delete-category, todo-show-categories-table)
(todo-category-number): Clarify comment.
(todo-filter-items): Clarify documentation string.
(todo-show-current-file, todo-display-as-todo-file)
(todo-reset-and-enable-done-separator): Tweak documentation string.
(todo-done-separator): Make separator length window-width, since
bug#2749 is now fixed.
Michael Albinus [Fri, 5 Jul 2013 13:34:01 +0000 (15:34 +0200)]
* net/tramp-sh.el (tramp-sh-handle-file-notify-add-watch): Support
both "gvfs-monitor-dir" and "inotifywait".
(tramp-sh-file-inotifywait-process-filter): Renamed from
`tramp-sh-file-notify-process-filter'.
(tramp-sh-file-gvfs-monitor-dir-process-filter)
(tramp-get-remote-gvfs-monitor-dir): New defuns.
Paul Eggert [Thu, 4 Jul 2013 15:25:54 +0000 (08:25 -0700)]
Scale ImageMagick images more carefully.
* image.c (scale_image_size) [HAVE_IMAGEMAGICK]: New function.
(compute_image_size): Use it. Define only if HAVE_IMAGEMAGICK.
Be more careful about avoiding undefined behavior after
integer overflow and division by zero.
Michael Albinus [Thu, 4 Jul 2013 09:29:28 +0000 (11:29 +0200)]
* fileio.c (Qfile_notify_error): New error symbol.
* gfilenotify.c (Fgfile_add_watch, Fgfile_rm_watch):
* inotify.c (inotify_callback, symbol_to_inotifymask)
(Finotify_add_watch, Finotify_rm_watch): Use it.
(inotifyevent_to_event): Exchange order of cookie and file name.
(Finotify_add_watch): Adapt docstring.
Paul Eggert [Thu, 4 Jul 2013 06:20:55 +0000 (23:20 -0700)]
Try again to fix FreeBSD bug re multithreaded memory alloc.
* emacs.c (main) [HAVE_PTHREAD && !SYSTEM_MALLOC && !DOUG_LEA_MALLOC]:
Do not clear _malloc_thread_enabled_p, undoing the previous change,
which did not work (see <http://bugs.gnu.org/14569#307>).
(main): Do not invoke malloc_enable_thread if (! CANNOT_DUMP
&& (!noninteractive || initialized)). This attempts to thread
the needle between the Scylla of FreeBSD and the Charybdis of Cygwin.
* lisp/buff-menu.el (Buffer-menu-mode-map): Bind "M-s a C-o" to
`Buffer-menu-multi-occur'. Add it to the menu.
(Buffer-menu-mode): Document it in docstring.
(Buffer-menu-multi-occur): New command.
* doc/misc/gnus.texi (Top): Restrict "Other related manuals" to info output.
(Foreign Groups): Use @indicateurl for examples.
(Direct Functions): Remove defunct URL.
(RSS): Update URL.
* lisp/info.el (Info-find-node, Info-find-in-tag-table)
(Info-find-node-in-buffer, Info-find-node-2, Info-goto-node):
Add option for exact case matching of nodes.
* lisp/info-xref.el (info-xref): New custom group.
(info-xref-case-fold): New option.
(info-xref-goto-node-p): Pass info-xref-case-fold to Info-goto-node.
* lisp/progmodes/ruby-mode.el (ruby-move-to-block): When we're at a
middle of block statement initially, lower the depth. Remove
FIXME comment, not longer valid. Remove middle of block statement
detection, no need to do that anymore since we've been using
`ruby-parse-region' here.
Eli Zaretskii [Tue, 2 Jul 2013 15:52:07 +0000 (18:52 +0300)]
Fix bug #2749 with overflow-newline-into-fringe in visual-line-mode.
src/xdisp.c (IT_OVERFLOW_NEWLINE_INTO_FRINGE): Don't disallow
word-wrap, so that overflow-newline-into-fringe would work in
visual-line-mode.
(move_it_in_display_line_to): When the last scanned display
element fits exactly on the display line, and
overflow-newline-into-fringe is non-nil, but wrap_it is valid,
don't return MOVE_NEWLINE_OR_CR, but instead back up to the last
wrap point and return MOVE_LINE_CONTINUED. Fixes problems with
finding buffer position that corresponds to pixel coordinates,
e.g. in buffer_posn_from_coords.
2012-03-22 Lars Magne Ingebrigtsen <larsi@gnus.org>
* gnus.texi (Client-Side IMAP Splitting):
Note that `nnimap-inbox' now can be a list.
2013-06-05 David Engster <deng@randomsample.de>
* gnus-sum.el (gnus-update-marks): Do not remove empty 'unexist'
ranges, since `nnimap-retrieve-group-data-early' also uses it as a flag
to see whether the group was synced before.
2012-09-05 Martin Stjernholm <mast@lysator.liu.se>
* nnimap.el (nnimap-request-move-article): Decode the group name when
doing internal moves to avoid charset issues.
2012-09-05 Julien Danjou <julien@danjou.info>
* nnimap.el (nnimap-request-list):
Revert change that made listing synchronous.
(nnimap-get-responses): Restore.
2012-08-31 Dave Abrahams <dave@boostpro.com>
* nnimap.el (nnimap-change-group): Document result value.
* nnimap.el (nnimap-find-article-by-message-id):
Account for the fact that nnimap-change-group can return t.
2012-08-06 Julien Danjou <julien@danjou.info>
* nnimap.el (nnimap-request-head):
Resture to-buffer parameter, used by `nnimap-request-move-article'.
* nnimap.el (nnimap-request-head): Remove to-buffer argument.
* gnus-int.el (gnus-request-head): Remove to-buffer argument, only
supported by nnimap actually. Reverts previous change.
* gnus-int.el (gnus-request-head): Add an optional to-buffer parameter
to mimic `gnus-request-article' and enjoy backends the nn*-request-head
to-buffer argument that is already supported.
2012-06-25 Julien Danjou <julien@danjou.info>
* nnimap.el (nnimap-request-articles-find-limit): Rename from
`nnimap-request-move-articles-find-limit' since we do not use it
only for move operations.
(nnimap-request-accept-article):
Use `nnimap-request-articles-find-limit' to limit search by message-id.
2012-06-19 Julien Danjou <julien@danjou.info>
* nnir.el (nnir-run-imap): Fix, use `nnimap-change-group'.
* nnimap.el (nnimap-log-buffer):
Check that `window-point-insertion-type' is boundp, since it's not
available in XEmacs.
2012-06-19 Michael Welsh Duggan <md5i@md5i.com>
* nnimap.el (nnimap-log-buffer):
Add this, setting `window-point-insertion-type' in the buffer to t.
(nnimap-log-command): Use nnimap-log-buffer.
2012-06-19 Julien Danjou <julien@danjou.info>
* nnimap.el (nnimap-find-article-by-message-id):
Add an optional limit argument to be able to limit the search.
(nnimap-request-move-article):
Use `nnimap-request-move-articles-find-limit'.
(nnimap-request-move-articles-find-limit):
Add this to limit the search by Message-Id after a message move.
(nnimap): Add defgroup.
2012-06-15 Julien Danjou <julien@danjou.info>
* nnimap.el (nnimap-find-article-by-message-id):
Use `nnimap-possibly-change-group' rather than its own EXAMINE call.
(nnimap-possibly-change-group): Add read-only argument.
(nnimap-request-list): Use nnimap-possibly-change-group rather than
issuing EXAMINE manually.
(nnimap-find-article-by-message-id):
Use `nnimap-possibly-change-group' with read-only argument.
(nnimap-change-group): Rename from `nnimap-possibly-change-group'.
We cannot possibly change because we need to be sure that it's either
read-write or read-only.
2012-06-10 Lars Magne Ingebrigtsen <larsi@gnus.org>
* gnus-sum.el (gnus-summary-insert-old-articles):
Don't include unexistent messages.
2012-04-10 Lars Magne Ingebrigtsen <larsi@gnus.org>
* gnus-start.el (gnus-clean-old-newsrc):
Remove totally bogus `unexists' entries.
(gnus-clean-old-newsrc): Fix last checkin.
* nnimap.el (nnimap-update-info):
None of the articles below the active low-water mark exist.
2012-03-22 Sergio Martinez <samf0xb58@gmail.com> (tiny change)
* nnimap.el (nnimap-request-scan):
Allow `nnimap-inbox' to be a list of inboxes.
2012-03-10 Lars Magne Ingebrigtsen <larsi@gnus.org>
* gnus-group.el (gnus-group-expire-articles-1):
Don't try to expire messages that don't exist.
* gnus-sum.el (gnus-summary-expire-articles): Ditto.
2012-02-20 Lars Ingebrigtsen <larsi@gnus.org>
* gnus-start.el (gnus-clean-old-newsrc): Allow a FORCE parameter.
2012-02-15 Lars Ingebrigtsen <larsi@gnus.org>
* gnus-start.el (gnus-clean-old-newsrc):
Delete `unexist' from pre-Ma Gnus 0.3.
2012-02-15 Lars Ingebrigtsen <larsi@gnus.org>
* gnus-sum.el (gnus-summary-local-variables):
Make `gnus-newsgroup-unexist' into a local variable.
2012-02-11 Lars Ingebrigtsen <larsi@gnus.org>
* gnus-sum.el (gnus-adjust-marked-articles):
Add to `gnus-newsgroup-unexist'.
* gnus.el (gnus-article-mark-lists):
Add `unexist' to the list of marks.
(gnus-article-special-mark-lists):
Put the `unexist' in the special marks list instead.
* gnus-sum.el (gnus-articles-to-read): Don't include unexisting
articles in the list of articles to be selected.
* nnimap.el (nnimap-retrieve-group-data-early):
Query for unexisting articles.
(nnimap-update-info): Keep track of unexisting articles.
(nnimap-update-qresync-info): Ditto.
2012-02-01 Lars Ingebrigtsen <larsi@gnus.org>
* gnus-start.el (gnus-clean-old-newsrc): New function.
(gnus-read-newsrc-file): Use it.
Paul Eggert [Tue, 2 Jul 2013 03:41:16 +0000 (20:41 -0700)]
Don't convert function pointers to void * and back.
It isn't portable C, and it's easy enough to avoid.
* alloc.c: Verify SAVE_FUNCPOINTER bits, too.
(make_save_value): Add support for SAVE_FUNCPOINTER.
* keymap.c (map_keymap_char_table_item, map_keymap_internal):
* print.c (print_object):
Distinguish function from object pointers.
* lisp.h (SAVE_FUNCPOINTER): New constant.
(SAVE_SLOT_BITS): Adjust to it.
(SAVE_TYPE_FUNCPTR_PTR_OBJ): New constant, replacing
SAVE_TYPE_PTR_PTR_OBJ. Change the only use.
(voidfuncptr): New typedef.
(struct Lisp_Save_Value): New member data[0].funcpointer.
(XSAVE_FUNCPOINTER): New function.
Paul Eggert [Tue, 2 Jul 2013 00:57:46 +0000 (17:57 -0700)]
Simplify buildobj processing.
* Makefile.in (buildobj.h): Make it a sequence of strings each
followed by comma, rather than a single string. Put it into a
.tmp file in case there's an error while generating it.
(gl-stamp): Use .tmp for temp files.
(mostlyclean): Clean .tmp files.
* doc.c (buildobj): Move to just the routine that needs it.
It's now an array of strings, so processing is simpler.
Paul Eggert [Tue, 2 Jul 2013 00:33:04 +0000 (17:33 -0700)]
Prefer plain 'static' to 'static inline'.
I missed these instances of 'static inline' in an earlier sweep.
* ebrowse.c (putstr):
* etags.c (hash):
* make-docfile.c (put_char): No longer inline.
* etags.c (hash): Prefer int to unsigned when either will do.
Paul Eggert [Mon, 1 Jul 2013 21:06:12 +0000 (14:06 -0700)]
Fix bug re noninteractive multithreaded memory allocation.
* emacs.c (malloc_enable_thread): Hoist extern decl to top level.
(main) [HAVE_PTHREAD && !SYSTEM_MALLOC && !DOUG_LEA_MALLOC]:
Invoke malloc_enable_thread even when not interactive.
Problem reported by Ken Brown in <http://bugs.gnu.org/14569#275>.
* process.c (init_process_emacs) [CYGWIN]: Tickle glib even
in this case, since the underlying bug has now been fixed.
lisp/desktop.el: More fixes to frame restoration.
(desktop-restore-frames): Rename from desktop-save-windows.
(desktop-restore-in-current-display): New customization option.
(desktop--excluded-frame-parameters): Add `font'.
(desktop--save-frames): Rename from desktop--save-windows.
(desktop--restore-in-this-display-p): New function.
(desktop--make-full-frame): Remove unwanted width/height from
full(width|height) frames.
(desktop--restore-frames): Rename from desktop--restore-windows.
Obey desktop-restore-current-display. Do not delete old frames or
select a new frame unless we were able to restore at least one frame.
Add `remember-notes' function to store random notes across Emacs
restarts.
* remember.el (remember-data-file): Add :set callback to affect
notes buffer (if any).
(remember-notes): New command.
(remember-notes-buffer-name, bury-remember-notes-on-kill):
New defcustoms for the `remember-notes' function.
(remember-notes-save-and-bury-buffer): New command.
(remember-notes-mode-map): New variable.
(remember-mode): New minor mode.
(remember-notes--kill-buffer-query): New function.
* lisp/startup.el (initial-buffer-choice): Add notes to custom type.
* src/buffer.c (FKill_buffer): Run `kill-buffer-query-functions'
before checking whether buffer is modified. This lets
`kill-buffer-query-functions' cancel killing of the buffer or save
its content before `kill-buffer' asks user the "Buffer %s
modified; kill anyway?" question.
* remember.el (remember-append-to-file):
Don't mix `find-buffer-visiting' and `get-file-buffer'.
Paul Eggert [Sun, 30 Jun 2013 15:24:14 +0000 (08:24 -0700)]
Do not use GTK 3 if it exists but cannot be compiled.
* configure.ac: Leave GTK_OBJ and term_header alone if GTK 3
exists but cannot be compiled.
* src/xmenu.c (x_menu_wait_for_event) [!USE_GTK]:
* src/xterm.c (x_error_handler) [!USE_GTK]:
Do not use GTK 3.