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.
Eli Zaretskii [Sun, 30 Jun 2013 14:49:33 +0000 (17:49 +0300)]
Don't call sit-for in right-char and left-char for visual cursor motion.
src/xdisp.c (Fmove_point_visually): Invalidate the cursor position
when moving point by using the current glyph matrix. This avoids
the need to force redisplay when this function is called in a
loop.
lisp/bindings.el (right-char, left-char): Don't call sit-for, this is
no longer needed. Use arithmetic comparison only for numerical
arguments.
* net/shr.el (shr-make-table-1): Add a sanity check that allows
progression on degenerate tables.
(shr-rescale-image): ImageMagick animated images currently doesn't
work.
Some fixes and improvements for desktop frame restoration.
It is still experimental and disabled by default.
* lisp/desktop.el (desktop--save-windows): Put the selected frame at
the head of the list.
(desktop--make-full-frame): New function.
(desktop--restore-windows): Try to re-select the frame that was
selected upon saving. Do not abort if some frames fail to restore,
just show an error message and contnue. Set up maximized frames so
they have default non-maximized dimensions.
Grégoire Jadi [Sat, 29 Jun 2013 15:49:35 +0000 (17:49 +0200)]
* src/.gdbinit (xxwidget): Add convenient command to print some
information about an xwidget from GDB (similar to xbuffer, xwindow, ...).
(xpr): Use `xxwidget' on PVEC_XWIDGET.
Eli Zaretskii [Sat, 29 Jun 2013 13:36:19 +0000 (16:36 +0300)]
Implement visual-order cursor motion.
src/xdisp.c (Fmove_point_visually): New function.
lisp/bindings.el (visual-order-cursor-movement): New defcustom.
(right-char, left-char): Provide visual-order cursor motion by
calling move-point-visually. Update the doc strings.
doc/emacs/basic.texi (Moving Point): Document visual-order-cursor-movement
and its effect on right-char and left-char.
Glenn Morris [Sat, 29 Jun 2013 01:51:32 +0000 (18:51 -0700)]
* admin/admin.el (make-manuals): Don't bother with txt or dvi any more.
(manual-txt): Remove.
(manual-pdf): Doc fix.
(manual-ps): Rename from manual-dvi.
Grégoire Jadi [Fri, 28 Jun 2013 19:18:47 +0000 (21:18 +0200)]
* src/xwidget.c: Replace xwidget_views by Vxwidget_view_list.
xwidget_views was an hardcoded array of fixed lenght of `struct
xwidget_view', Vxwidget_view_list is a list of Lisp_Object.
* src/xwidget.h (xwidget_view): Remove member `initialized'.
This field was only used to determine whether a given xwidget_view was
initialized or not in `xwidget_views'. Now only initialized xwidget_view
are stored in Vxwidget_view_list.
Grégoire Jadi [Fri, 28 Jun 2013 15:16:27 +0000 (17:16 +0200)]
* src/xwidget.h (xwidget_view): Convert member `model' to Lisp_Object.
(XXWIDGET_VIEW_P, XXWIDGET_VIEW): Add standard macros to manipulate xwidget_view.
* src/xwidget.c: Fix access to model in xwidget_view (now a Lisp_Object).
Kenichi Handa [Fri, 28 Jun 2013 14:59:50 +0000 (23:59 +0900)]
coding.h (define_coding_undecided_arg_index): New enum.
(coding_attr_index): New members
coding_attr_undecided_inhibit_null_byte_detection,
coding_attr_undecided_inhibit_iso_escape_detection,
coding_attr_undecided_prefer_utf_8.
(undecided_spec): New struct.
(struct coding_system): New member `undecied' of the member
`spec'.
Kenichi Handa [Fri, 28 Jun 2013 14:54:18 +0000 (23:54 +0900)]
mule.el (define-coding-system): New coding system
properties :inhibit-null-byte-detection,
:inhibit-iso-escape-detection, and :prefer-utf-8.
(set-buffer-file-coding-system): If :charset-list property of
CODING-SYSTEM is `emacs', do not check if CODING-SYSTEM is
appropriate for setting.
Kenichi Handa [Fri, 28 Jun 2013 14:42:55 +0000 (23:42 +0900)]
mule-cmds.el (select-safe-coding-system): If
DEFAULT-CODING-SYSTEM is prefer-utf-8 and the buffer contains
multibyte characters, return utf-8 (or one of it's siblings).
Kenichi Handa [Fri, 28 Jun 2013 14:39:40 +0000 (23:39 +0900)]
decoder-tests.el (decoder-tests-gen-file): New arg FILE.
(decoder-tests-ao-gen-file): Renamed from decoder-tests-filename.
Callers changed.
(decoder-tests-filename): New function.
(decoder-tests-prefer-utf-8-read)
(decoder-tests-prefer-utf-8-write): New function.
(ert-test-decoder-prefer-utf-8): New test.
Paul Eggert [Thu, 27 Jun 2013 14:47:52 +0000 (07:47 -0700)]
Do not tickle glib SIGCHLD handling if Cygwin.
This mostly consists of undoing recent changes.
* callproc.c (Fcall_process):
* process.c (create_process):
Do not worry about catching SIGCHLD here, undoing previous change.
* nsterm.m (ns_term_init): Re-catch SIGCHLD, undoing previous change.
* process.c, process.h (catch_child_signal):
No longer extern if !NS_IMPL_GNUSTEP, undoing 06-22 change.
* process.c (catch_child_handler): Don't worry about being called
lazily and do not assume caller has blocked SIGCHLD, undoing
previous change. Move first-time stuff back to
init_process_emacs, undoing 06-22 change. If CYGWIN, do not
tickle glib, as that causes Cygwin bootstrap to fail. Do not
set lib_child_handler if it's already initialized, which may
help avoid problems on GNUStep.
Dmitry Gutov [Thu, 27 Jun 2013 09:51:55 +0000 (13:51 +0400)]
* test/automated/package-x-test.el: Change the commentary.
(package-x-test--single-archive-entry-1-3)
(package-x-test--single-archive-entry-1-4): Fix the tests, by
using the appropriate data structure.
Dmitry Gutov [Thu, 27 Jun 2013 09:26:54 +0000 (13:26 +0400)]
* automated/Makefile.in (setwins): Include the 'data' subdirectory.
* automated/package-x-test.el: New file.
* automated/package-test.el: New file.
* automated/data/package: New directory, with test examples.
* lisp/emacs-lisp/package-x.el (package-upload-buffer-internal): Adapt
to `package-desc-version' being a list. Use
`package--ac-desc-version' to retrieve version from a package
archive element.
New experimental feature to save&restore window and frame setup.
* etc/NEWS: Document new Desktop option `desktop-save-windows'.
* lisp/desktop.el (desktop-save-windows): New defcustom.
(desktop--saved-states): New var.
(desktop--excluded-frame-parameters): New defconst.
(desktop--filter-frame-parms, desktop--find-frame-in-display)
(desktop--restore-windows, desktop--save-windows): New functions.
(desktop-save): Call `desktop--save-windows'.
(desktop-read): Call `desktop--restore-windows'.
Stefan Monnier [Wed, 26 Jun 2013 22:31:19 +0000 (18:31 -0400)]
* lisp/emacs-lisp/nadvice.el (advice--defalias-fset): Move advice back to
advice--pending if newdef is nil or an autoload.
(advice-mapc): New function.
* net/eww.el (eww-mode): Undo isn't necessary in eww buffers,
probably.
(eww-mode-map): Add a menu bar.
(eww-add-bookmark): New command.
(eww-bookmark-mode): New mode and commands.