Now on revision 113932. ------------------------------------------------------------ revno: 113932 committer: Xue Fuqiao branch nick: trunk timestamp: Sat 2013-08-17 12:31:22 +0800 message: * doc/emacs/text.texi (Filling): Add cross-reference for hard newlines. diff: === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2013-08-17 00:48:35 +0000 +++ doc/lispref/ChangeLog 2013-08-17 04:31:22 +0000 @@ -2,6 +2,7 @@ * text.texi (Maintaining Undo): Mention interactive call of buffer-disable-undo. + (Filling): Add cross-reference for hard newlines. 2013-08-16 Xue Fuqiao === modified file 'doc/lispref/text.texi' --- doc/lispref/text.texi 2013-08-17 02:45:22 +0000 +++ doc/lispref/text.texi 2013-08-17 04:31:22 +0000 @@ -1613,7 +1613,8 @@ @defvar use-hard-newlines If this variable is non-@code{nil}, the filling functions do not delete newlines that have the @code{hard} text property. These ``hard -newlines'' act as paragraph separators. +newlines'' act as paragraph separators. @xref{Hard and Soft +Newlines,, Hard and Soft Newlines, emacs, The GNU Emacs Manual}. @end defvar @node Margins ------------------------------------------------------------ revno: 113931 committer: Xue Fuqiao branch nick: trunk timestamp: Sat 2013-08-17 10:45:22 +0800 message: * doc/emacs/text.texi (Enriched Justification): Minor fixes. diff: === modified file 'doc/emacs/ChangeLog' --- doc/emacs/ChangeLog 2013-08-14 10:45:10 +0000 +++ doc/emacs/ChangeLog 2013-08-17 02:45:22 +0000 @@ -1,3 +1,7 @@ +2013-08-17 Xue Fuqiao + + * text.texi (Enriched Justification): Minor fixes. + 2013-08-14 Xue Fuqiao * files.texi (Filesets): Add an index. === modified file 'doc/emacs/text.texi' --- doc/emacs/text.texi 2013-01-05 19:21:17 +0000 +++ doc/emacs/text.texi 2013-08-17 02:45:22 +0000 @@ -2255,6 +2255,7 @@ @node Enriched Justification @subsection Justification in Enriched Text +@cindex justification style In Enriched mode, you can use the following commands to specify various @dfn{justification styles} for filling. These commands apply @@ -2293,13 +2294,13 @@ still indent the left margin. @end table +@c FIXME: We should explain the effect of these symbols. --xfq @vindex default-justification You can also specify justification styles using the Justification -submenu in the Text Properties menu. - The default justification style is specified by the per-buffer -variable @code{default-justification}. Its value should be one of the -symbols @code{left}, @code{right}, @code{full}, @code{center}, or -@code{none}. +submenu in the Text Properties menu. The default justification style +is specified by the per-buffer variable @code{default-justification}. +Its value should be one of the symbols @code{left}, @code{right}, +@code{full}, @code{center}, or @code{none}. @node Enriched Properties @subsection Setting Other Text Properties === modified file 'doc/lispref/text.texi' --- doc/lispref/text.texi 2013-08-17 00:48:35 +0000 +++ doc/lispref/text.texi 2013-08-17 02:45:22 +0000 @@ -1499,6 +1499,7 @@ a regular expression; if it matches the beginning of a line, that line is treated as a citation marker. +@c FIXME: "That mode" is confusing. It isn't a major/minor mode. Ordinarily, @code{fill-individual-paragraphs} regards each change in indentation as starting a new paragraph. If @code{fill-individual-varying-indent} is non-@code{nil}, then only ------------------------------------------------------------ revno: 113930 committer: Xue Fuqiao branch nick: trunk timestamp: Sat 2013-08-17 08:48:35 +0800 message: Mention interactive call of buffer-disable-undo. * doc/lispref/text.texi (Maintaining Undo): Mention interactive call of buffer-disable-undo. diff: === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2013-08-16 14:16:45 +0000 +++ doc/lispref/ChangeLog 2013-08-17 00:48:35 +0000 @@ -1,3 +1,8 @@ +2013-08-17 Xue Fuqiao + + * text.texi (Maintaining Undo): Mention interactive call of + buffer-disable-undo. + 2013-08-16 Xue Fuqiao * text.texi (Insertion): Refine. === modified file 'doc/lispref/text.texi' --- doc/lispref/text.texi 2013-08-16 22:32:24 +0000 +++ doc/lispref/text.texi 2013-08-17 00:48:35 +0000 @@ -1381,7 +1381,8 @@ the undo list of @var{buffer-or-name} is already disabled, this function has no effect. -This function returns @code{nil}. +In an interactive call, BUFFER-OR-NAME is the current buffer. You +cannot specify any other buffer. This function returns @code{nil}. @end deffn As editing continues, undo lists get longer and longer. To prevent ------------------------------------------------------------ revno: 113929 committer: Xue Fuqiao branch nick: trunk timestamp: Sat 2013-08-17 06:32:24 +0800 message: Another doc fix for `buffer-undo-list'. diff: === modified file 'doc/lispref/text.texi' --- doc/lispref/text.texi 2013-08-16 14:16:45 +0000 +++ doc/lispref/text.texi 2013-08-16 22:32:24 +0000 @@ -1289,7 +1289,7 @@ @item (apply @var{delta} @var{beg} @var{end} @var{funname} . @var{args}) This is an extensible undo item, which records a change limited to the range @var{beg} to @var{end}, which increased the size of the buffer -by @var{delta} bytes. It is undone by calling @var{funname} with +by @var{delta} characters. It is undone by calling @var{funname} with arguments @var{args}. This kind of element enables undo limited to a region to determine === modified file 'src/ChangeLog' --- src/ChangeLog 2013-08-16 15:31:04 +0000 +++ src/ChangeLog 2013-08-16 22:32:24 +0000 @@ -8,6 +8,8 @@ 2013-08-16 Xue Fuqiao + * buffer.c (syms_of_buffer) : Doc fix. + * editfns.c (insert_before_markers): Mention overlay in the doc string. * marker.c (set_marker): Remove documentation of undefined behavior. === modified file 'src/buffer.c' --- src/buffer.c 2013-08-11 01:30:20 +0000 +++ src/buffer.c 2013-08-16 22:32:24 +0000 @@ -6106,7 +6106,7 @@ An entry (apply DELTA BEG END FUN-NAME . ARGS) supports selective undo in the active region. BEG and END is the range affected by this entry -and DELTA is the number of bytes added or deleted in that range by +and DELTA is the number of characters added or deleted in that range by this change. An entry (MARKER . DISTANCE) indicates that the marker MARKER ------------------------------------------------------------ revno: 113928 committer: Lars Magne Ingebrigtsen branch nick: trunk timestamp: Fri 2013-08-16 17:31:04 +0200 message: (imagemagick_load_image): Remove the ping_wand code The apparently only saved time on invalid animated images, and slowed down everything else. Optimise for the common case. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2013-08-16 15:10:13 +0000 +++ src/ChangeLog 2013-08-16 15:31:04 +0000 @@ -2,6 +2,9 @@ * image.c: Implement an ImageMagick per-image cache. (imagemagick_get_animation_cache): Fix a double-free error. + (imagemagick_load_image): Remove the ping_wand code, which only + apparently saved time on invalid animated images, and slowed down + everything else. Optimise for the common case. 2013-08-16 Xue Fuqiao === modified file 'src/image.c' --- src/image.c 2013-08-16 15:13:42 +0000 +++ src/image.c 2013-08-16 15:31:04 +0000 @@ -8095,7 +8095,6 @@ XImagePtr ximg; int x, y; MagickWand *image_wand; - MagickWand *ping_wand; PixelIterator *iterator; PixelWand **pixels, *bg_wand = NULL; MagickPixelPacket pixel; @@ -8118,60 +8117,38 @@ MagickWandGenesis (); image = image_spec_value (img->spec, QCindex, NULL); ino = INTEGERP (image) ? XFASTINT (image) : 0; - ping_wand = NewMagickWand (); - /* MagickSetResolution (ping_wand, 2, 2); (Bug#10112) */ + image_wand = NewMagickWand (); if (filename) - status = MagickPingImage (ping_wand, filename); + status = MagickReadImage (image_wand, filename); else { filename_hint = imagemagick_filename_hint (img->spec, hint_buffer); - MagickSetFilename (ping_wand, filename_hint); - status = MagickPingImageBlob (ping_wand, contents, size); + MagickSetFilename (image_wand, filename_hint); + status = MagickReadImageBlob (image_wand, contents, size); } if (status == MagickFalse) { - imagemagick_error (ping_wand); - DestroyMagickWand (ping_wand); + imagemagick_error (image_wand); + DestroyMagickWand (image_wand); return 0; } - if (ino < 0 || ino >= MagickGetNumberImages (ping_wand)) + if (ino < 0 || ino >= MagickGetNumberImages (image_wand)) { image_error ("Invalid image number `%s' in image `%s'", image, img->spec); - DestroyMagickWand (ping_wand); + DestroyMagickWand (image_wand); return 0; } - if (MagickGetNumberImages (ping_wand) > 1) + if (MagickGetNumberImages (image_wand) > 1) img->lisp_data = Fcons (Qcount, - Fcons (make_number (MagickGetNumberImages (ping_wand)), + Fcons (make_number (MagickGetNumberImages (image_wand)), img->lisp_data)); - DestroyMagickWand (ping_wand); - - /* Now we know how many images are inside the file. If it's not a - bundle, the number is one. Load the image data. */ - - image_wand = NewMagickWand (); - - if (filename) - status = MagickReadImage (image_wand, filename); - else - { - MagickSetFilename (image_wand, filename_hint); - status = MagickReadImageBlob (image_wand, contents, size); - } - - if (status == MagickFalse) - { - imagemagick_error (image_wand); - goto imagemagick_error; - } - /* If we have an animated image, get the new wand based on the "super-wand". */ if (MagickGetNumberImages (image_wand) > 1) ------------------------------------------------------------ revno: 113927 committer: Lars Magne Ingebrigtsen branch nick: trunk timestamp: Fri 2013-08-16 17:17:21 +0200 message: * net/shr.el (shr-rescale-image): Use ImageMagick even for GIFs Now that Emacs supports ImageMagick animations. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-08-16 12:41:17 +0000 +++ lisp/ChangeLog 2013-08-16 15:17:21 +0000 @@ -1,3 +1,8 @@ +2013-08-16 Lars Magne Ingebrigtsen + + * net/shr.el (shr-rescale-image): Use ImageMagick even for GIFs + now that Emacs supports ImageMagick animations. + 2013-08-16 Michael Albinus * net/tramp-cmds.el (top): Don't declare `buffer-name'. === modified file 'lisp/net/shr.el' --- lisp/net/shr.el 2013-08-13 20:13:02 +0000 +++ lisp/net/shr.el 2013-08-16 15:17:21 +0000 @@ -779,7 +779,6 @@ "Rescale DATA, if too big, to fit the current buffer. If FORCE, rescale the image anyway." (if (or (not (fboundp 'imagemagick-types)) - (eq (image-type-from-data data) 'gif) (not (get-buffer-window (current-buffer)))) (create-image data nil t :ascent 100) (let ((edges (window-inside-pixel-edges ------------------------------------------------------------ revno: 113926 committer: Lars Magne Ingebrigtsen branch nick: trunk timestamp: Fri 2013-08-16 17:13:42 +0200 message: image.c: Fix debugging code accidentally checked in diff: === modified file 'src/image.c' --- src/image.c 2013-08-16 15:10:13 +0000 +++ src/image.c 2013-08-16 15:13:42 +0000 @@ -7903,7 +7903,7 @@ struct animation_cache *cache = animation_cache; struct animation_cache *prev = NULL; EMACS_TIME old = sub_emacs_time (current_emacs_time (), - EMACS_TIME_FROM_DOUBLE (5)); + EMACS_TIME_FROM_DOUBLE (60)); while (cache) { ------------------------------------------------------------ revno: 113925 committer: Lars Magne Ingebrigtsen branch nick: trunk timestamp: Fri 2013-08-16 17:10:13 +0200 message: (imagemagick_get_animation_cache): Fix a double-free error. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2013-08-16 14:54:46 +0000 +++ src/ChangeLog 2013-08-16 15:10:13 +0000 @@ -1,6 +1,7 @@ 2013-08-16 Lars Magne Ingebrigtsen * image.c: Implement an ImageMagick per-image cache. + (imagemagick_get_animation_cache): Fix a double-free error. 2013-08-16 Xue Fuqiao === modified file 'src/image.c' --- src/image.c 2013-08-16 14:54:46 +0000 +++ src/image.c 2013-08-16 15:10:13 +0000 @@ -7901,9 +7901,9 @@ imagemagick_prune_animation_cache () { struct animation_cache *cache = animation_cache; - struct animation_cache *prev; + struct animation_cache *prev = NULL; EMACS_TIME old = sub_emacs_time (current_emacs_time (), - EMACS_TIME_FROM_DOUBLE (60)); + EMACS_TIME_FROM_DOUBLE (5)); while (cache) { @@ -7920,17 +7920,18 @@ cache = cache->next; free (this_cache); } - else { - prev = cache; - cache = cache->next; - } + else + { + prev = cache; + cache = cache->next; + } } } struct animation_cache * imagemagick_get_animation_cache (MagickWand *wand) { - char *signature = MagickGetImageSignature (wand); + char *signature = xstrdup (MagickGetImageSignature (wand)); struct animation_cache *cache = animation_cache; imagemagick_prune_animation_cache (); ------------------------------------------------------------ revno: 113924 committer: Lars Magne Ingebrigtsen branch nick: trunk timestamp: Fri 2013-08-16 16:54:46 +0200 message: * image.c: Implement an ImageMagick per-image cache. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2013-08-16 02:09:08 +0000 +++ src/ChangeLog 2013-08-16 14:54:46 +0000 @@ -1,3 +1,7 @@ +2013-08-16 Lars Magne Ingebrigtsen + + * image.c: Implement an ImageMagick per-image cache. + 2013-08-16 Xue Fuqiao * editfns.c (insert_before_markers): Mention overlay in the doc string. === modified file 'src/image.c' --- src/image.c 2013-08-16 05:15:51 +0000 +++ src/image.c 2013-08-16 14:54:46 +0000 @@ -7869,10 +7869,91 @@ follow. If following images have non-transparent colors, these are composed "on top" of the master image. So, in general, one has to compute ann the preceding images to be able to display a particular - sub-image. */ - -static MagickWand *animation_cache = NULL; -static int animation_index = 0; + sub-image. + + Computing all the preceding images is too slow, so we maintain a + cache of previously computed images. We have to maintain a cache + separate from the image cache, because the images may be scaled + before display. */ + +struct animation_cache +{ + char *signature; + MagickWand *wand; + int index; + EMACS_TIME update_time; + struct animation_cache *next; +}; + +static struct animation_cache *animation_cache = NULL; + +struct animation_cache * +imagemagick_create_cache (char *signature) +{ + struct animation_cache *cache = xzalloc (sizeof (struct animation_cache)); + cache->signature = signature; + cache->update_time = current_emacs_time (); + return cache; +} + +/* Discard cached images that haven't been used for a minute. */ +void +imagemagick_prune_animation_cache () +{ + struct animation_cache *cache = animation_cache; + struct animation_cache *prev; + EMACS_TIME old = sub_emacs_time (current_emacs_time (), + EMACS_TIME_FROM_DOUBLE (60)); + + while (cache) + { + if (EMACS_TIME_LT (cache->update_time, old)) + { + struct animation_cache *this_cache = cache; + free (cache->signature); + if (cache->wand) + DestroyMagickWand (cache->wand); + if (prev) + prev->next = cache->next; + else + animation_cache = cache->next; + cache = cache->next; + free (this_cache); + } + else { + prev = cache; + cache = cache->next; + } + } +} + +struct animation_cache * +imagemagick_get_animation_cache (MagickWand *wand) +{ + char *signature = MagickGetImageSignature (wand); + struct animation_cache *cache = animation_cache; + + imagemagick_prune_animation_cache (); + + if (! cache) + { + animation_cache = imagemagick_create_cache (signature); + return animation_cache; + } + + while (strcmp(signature, cache->signature) && + cache->next) + cache = cache->next; + + if (strcmp(signature, cache->signature)) + { + cache->next = imagemagick_create_cache (signature); + return cache->next; + } + + cache->update_time = current_emacs_time (); + return cache; +} static MagickWand * imagemagick_compute_animated_image (MagickWand *super_wand, int ino) @@ -7880,18 +7961,23 @@ int i; MagickWand *composite_wand; size_t dest_width, dest_height; + struct animation_cache *cache = imagemagick_get_animation_cache (super_wand); MagickSetIteratorIndex (super_wand, 0); - if (ino == 0 || animation_cache == NULL) - composite_wand = MagickGetImage (super_wand); + if (ino == 0 || cache->wand == NULL || cache->index > ino) + { + composite_wand = MagickGetImage (super_wand); + if (cache->wand) + DestroyMagickWand (cache->wand); + } else - composite_wand = animation_cache; + composite_wand = cache->wand; dest_width = MagickGetImageWidth (composite_wand); dest_height = MagickGetImageHeight (composite_wand); - for (i = max (1, animation_index + 1); i <= ino; i++) + for (i = max (1, cache->index + 1); i <= ino; i++) { MagickWand *sub_wand; PixelIterator *source_iterator, *dest_iterator; @@ -7916,7 +8002,7 @@ { DestroyMagickWand (composite_wand); DestroyMagickWand (sub_wand); - animation_cache = NULL; + cache->wand = NULL; image_error ("Imagemagick pixel iterator creation failed", Qnil, Qnil); return NULL; @@ -7928,7 +8014,7 @@ DestroyMagickWand (composite_wand); DestroyMagickWand (sub_wand); DestroyPixelIterator (source_iterator); - animation_cache = NULL; + cache->wand = NULL; image_error ("Imagemagick pixel iterator creation failed", Qnil, Qnil); return NULL; @@ -7979,8 +8065,8 @@ /* Cache a copy for the next iteration. The current wand will be destroyed by the caller. */ - animation_cache = CloneMagickWand (composite_wand); - animation_index = ino; + cache->wand = CloneMagickWand (composite_wand); + cache->index = ino; return composite_wand; } ------------------------------------------------------------ revno: 113923 committer: Xue Fuqiao branch nick: trunk timestamp: Fri 2013-08-16 22:16:45 +0800 message: Doc fix for `buffer-undo-list'. diff: === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2013-08-16 06:03:18 +0000 +++ doc/lispref/ChangeLog 2013-08-16 14:16:45 +0000 @@ -2,6 +2,7 @@ * text.texi (Insertion): Refine. (Margins): Add an index. + (Undo): Doc fix for `buffer-undo-list'. * positions.texi (Character Motion): * markers.texi (Moving Markers): === modified file 'doc/lispref/text.texi' --- doc/lispref/text.texi 2013-08-16 08:27:49 +0000 +++ doc/lispref/text.texi 2013-08-16 14:16:45 +0000 @@ -1289,8 +1289,8 @@ @item (apply @var{delta} @var{beg} @var{end} @var{funname} . @var{args}) This is an extensible undo item, which records a change limited to the range @var{beg} to @var{end}, which increased the size of the buffer -by @var{delta}. It is undone by calling @var{funname} with arguments -@var{args}. +by @var{delta} bytes. It is undone by calling @var{funname} with +arguments @var{args}. This kind of element enables undo limited to a region to determine whether the element pertains to that region. @@ -3030,6 +3030,7 @@ @table @code @cindex property category of text character +@c FIXME: Isn't @kindex for keyboard commands? @kindex category @r{(text property)} @item category If a character has a @code{category} property, we call it the ------------------------------------------------------------ revno: 113922 committer: Michael Albinus branch nick: trunk timestamp: Fri 2013-08-16 14:41:17 +0200 message: * net/tramp-cmds.el (top): Don't declare `buffer-name'. (tramp-append-tramp-buffers): Rewrite buffer local variables part. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-08-16 09:44:32 +0000 +++ lisp/ChangeLog 2013-08-16 12:41:17 +0000 @@ -1,3 +1,8 @@ +2013-08-16 Michael Albinus + + * net/tramp-cmds.el (top): Don't declare `buffer-name'. + (tramp-append-tramp-buffers): Rewrite buffer local variables part. + 2013-08-16 Martin Rudalics * window.el (mouse-autoselect-window-select): Do autoselect when === modified file 'lisp/net/tramp-cmds.el' --- lisp/net/tramp-cmds.el 2013-08-15 17:02:09 +0000 +++ lisp/net/tramp-cmds.el 2013-08-16 12:41:17 +0000 @@ -32,7 +32,6 @@ ;; Pacify byte-compiler. (eval-when-compile - (defvar buffer-name) (defvar reporter-eval-buffer) (defvar reporter-prompt-for-summary-p)) @@ -272,6 +271,7 @@ (goto-char (point-max)) ;; Dump buffer local variables. + (insert "\nlocal variables:\n================") (dolist (buffer (delq nil (mapcar @@ -279,21 +279,23 @@ (when (string-match "\\*tramp/" (buffer-name b)) b)) (buffer-list)))) (let ((reporter-eval-buffer buffer) - (buffer-name (buffer-name buffer)) (elbuf (get-buffer-create " *tmp-reporter-buffer*"))) (with-current-buffer elbuf (emacs-lisp-mode) (erase-buffer) - (insert "\n(setq\n") + (insert (format "\n;; %s\n(setq-local\n" (buffer-name buffer))) (lisp-indent-line) - (tramp-compat-funcall - 'reporter-dump-variable 'buffer-name (current-buffer)) - (dolist (varsym-or-cons-cell (buffer-local-variables buffer)) - (let ((varsym (or (car-safe varsym-or-cons-cell) - varsym-or-cons-cell))) - (when (string-match "tramp" (symbol-name varsym)) - (tramp-compat-funcall - 'reporter-dump-variable varsym (current-buffer))))) + (dolist + (varsym + (sort + (append + (mapcar + 'intern + (all-completions "tramp-" (buffer-local-variables buffer))) + ;; Non-tramp variables of interest. + '(default-directory)) + 'string<)) + (tramp-compat-funcall 'reporter-dump-variable varsym elbuf)) (lisp-indent-line) (insert ")\n")) (insert-buffer-substring elbuf))) ------------------------------------------------------------ revno: 113921 committer: Glenn Morris branch nick: trunk timestamp: Fri 2013-08-16 06:17:35 -0400 message: Auto-commit of generated files. diff: === modified file 'autogen/config.in' --- autogen/config.in 2013-08-12 10:17:43 +0000 +++ autogen/config.in 2013-08-16 10:17:35 +0000 @@ -210,7 +210,7 @@ #undef GNU_MALLOC /* Define to set the G_SLICE environment variable to "always-malloc" at - startup, if using GTK. */ + startup. */ #undef G_SLICE_ALWAYS_MALLOC /* Define to 1 if you have the `accept4' function. */ === modified file 'autogen/configure' --- autogen/configure 2013-08-14 10:17:37 +0000 +++ autogen/configure 2013-08-16 10:17:35 +0000 @@ -17066,7 +17066,7 @@ case $opsys in - cygwin) + cygwin) $as_echo "#define G_SLICE_ALWAYS_MALLOC 1" >>confdefs.h ------------------------------------------------------------ revno: 113920 committer: martin rudalics branch nick: trunk timestamp: Fri 2013-08-16 11:44:32 +0200 message: In mouse-autoselect-window-select do autoselect when mouse pointer is on margin. * window.el (mouse-autoselect-window-select): Do autoselect when mouse pointer is on margin. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-08-16 08:27:49 +0000 +++ lisp/ChangeLog 2013-08-16 09:44:32 +0000 @@ -1,3 +1,8 @@ +2013-08-16 Martin Rudalics + + * window.el (mouse-autoselect-window-select): Do autoselect when + mouse pointer is on margin. + 2013-08-16 William Parsons (tiny change) * net/ange-ftp.el (ange-ftp-skip-msgs): Add 500 EPSV. (Bug#1972) === modified file 'lisp/window.el' --- lisp/window.el 2013-08-14 09:14:32 +0000 +++ lisp/window.el 2013-08-16 09:44:32 +0000 @@ -6680,8 +6680,10 @@ (cond ((or (menu-or-popup-active-p) (and window - (not (consp (coordinates-in-window-p - (cdr mouse-position) window))))) + (let ((coords (coordinates-in-window-p + (cdr mouse-position) window))) + (and (not (consp coords)) + (not (memq coords '(left-margin right-margin))))))) ;; A menu / popup dialog is active or the mouse is not on the ;; text region of WINDOW: Suspend autoselection temporarily. (mouse-autoselect-window-start mouse-position nil t)) ------------------------------------------------------------ revno: 113919 committer: Xue Fuqiao branch nick: trunk timestamp: Fri 2013-08-16 16:27:49 +0800 message: Reverse previous change, because kill-{new, append} don't have obvious advantage. diff: === modified file 'doc/lispref/text.texi' --- doc/lispref/text.texi 2013-08-16 08:11:44 +0000 +++ doc/lispref/text.texi 2013-08-16 08:27:49 +0000 @@ -924,6 +924,7 @@ text anyway.) @end defun +@c FIXME: Add an index for yank-handler. If you put a @code{yank-handler} text property on all or part of a string, that alters how @code{insert-for-yank} inserts the string. If different parts of the string have different @code{yank-handler} === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-08-16 08:11:44 +0000 +++ lisp/ChangeLog 2013-08-16 08:27:49 +0000 @@ -23,11 +23,6 @@ New functions. (image-animate-timeout): Respect image :speed property. -2013-08-16 Xue Fuqiao - - * simple.el (copy-region-as-kill, kill-ring-save): Advertise using - `kill-new' and `kill-append' in Lisp programs. - 2013-08-15 Stefan Monnier * emacs-lisp/debug.el (debugger-setup-buffer): Put point on the === modified file 'lisp/simple.el' --- lisp/simple.el 2013-08-16 08:11:44 +0000 +++ lisp/simple.el 2013-08-16 08:27:49 +0000 @@ -3622,10 +3622,7 @@ If `interprogram-cut-function' is non-nil, also save the text for a window system cut and paste. -This command's old key binding has been given to `kill-ring-save'. - -Do not use this function in Lisp programs, use `kill-new' or -`kill-append' instead." +This command's old key binding has been given to `kill-ring-save'." (interactive "r") (if (eq last-command 'kill-region) (kill-append (filter-buffer-substring beg end) (< end beg)) @@ -3643,10 +3640,7 @@ use \\[append-next-kill] before \\[kill-ring-save]. This command is similar to `copy-region-as-kill', except that it gives -visual feedback indicating the extent of the region being copied. - -Do not use this function in Lisp programs, use `kill-new' or -`kill-append' instead." +visual feedback indicating the extent of the region being copied." (interactive "r") (copy-region-as-kill beg end) ;; This use of called-interactively-p is correct because the code it ------------------------------------------------------------ revno: 113918 committer: Xue Fuqiao branch nick: trunk timestamp: Fri 2013-08-16 16:11:44 +0800 message: Advertise using `kill-new' and `kill-append' in Lisp programs. * lisp/simple.el (copy-region-as-kill, kill-ring-save): Advertise using `kill-new' and `kill-append' in Lisp programs. diff: === modified file 'doc/emacs/killing.texi' --- doc/emacs/killing.texi 2013-01-01 09:11:05 +0000 +++ doc/emacs/killing.texi 2013-08-16 08:11:44 +0000 @@ -109,6 +109,8 @@ delete all the text in the region if it is active (@pxref{Using Region}). +@c FIXME: `cycle-spacing' should be documented, too. (Maybe not in +@c this node, tho.) --xfq @kindex M-\ @findex delete-horizontal-space @kindex M-SPC === modified file 'doc/lispref/text.texi' --- doc/lispref/text.texi 2013-08-16 06:03:18 +0000 +++ doc/lispref/text.texi 2013-08-16 08:11:44 +0000 @@ -779,6 +779,7 @@ blank lines immediately following it. A blank line is defined as a line containing only tabs and spaces. +@c and the Newline character? @code{delete-blank-lines} returns @code{nil}. @end deffn === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-08-16 07:17:33 +0000 +++ lisp/ChangeLog 2013-08-16 08:11:44 +0000 @@ -23,6 +23,11 @@ New functions. (image-animate-timeout): Respect image :speed property. +2013-08-16 Xue Fuqiao + + * simple.el (copy-region-as-kill, kill-ring-save): Advertise using + `kill-new' and `kill-append' in Lisp programs. + 2013-08-15 Stefan Monnier * emacs-lisp/debug.el (debugger-setup-buffer): Put point on the === modified file 'lisp/simple.el' --- lisp/simple.el 2013-08-13 14:26:39 +0000 +++ lisp/simple.el 2013-08-16 08:11:44 +0000 @@ -3622,7 +3622,10 @@ If `interprogram-cut-function' is non-nil, also save the text for a window system cut and paste. -This command's old key binding has been given to `kill-ring-save'." +This command's old key binding has been given to `kill-ring-save'. + +Do not use this function in Lisp programs, use `kill-new' or +`kill-append' instead." (interactive "r") (if (eq last-command 'kill-region) (kill-append (filter-buffer-substring beg end) (< end beg)) @@ -3640,7 +3643,10 @@ use \\[append-next-kill] before \\[kill-ring-save]. This command is similar to `copy-region-as-kill', except that it gives -visual feedback indicating the extent of the region being copied." +visual feedback indicating the extent of the region being copied. + +Do not use this function in Lisp programs, use `kill-new' or +`kill-append' instead." (interactive "r") (copy-region-as-kill beg end) ;; This use of called-interactively-p is correct because the code it ------------------------------------------------------------ revno: 113917 committer: Glenn Morris branch nick: trunk timestamp: Fri 2013-08-16 00:18:17 -0700 message: * net/ange-ftp.el (ange-ftp-skip-msgs): Bump :version. diff: === modified file 'lisp/net/ange-ftp.el' --- lisp/net/ange-ftp.el 2013-08-16 07:17:33 +0000 +++ lisp/net/ange-ftp.el 2013-08-16 07:18:17 +0000 @@ -726,6 +726,7 @@ "^22[789] .*[Pp]assive\\|^200 EPRT\\|^500 .*EPRT\\|^500 .*EPSV") "Regular expression matching FTP messages that can be ignored." :group 'ange-ftp + :version "24.4" ; add EPSV :type 'regexp) (defcustom ange-ftp-fatal-msgs ------------------------------------------------------------ revno: 113916 fixes bug: http://debbugs.gnu.org/1972 author: William Parsons committer: Glenn Morris branch nick: trunk timestamp: Fri 2013-08-16 00:17:33 -0700 message: * net/ange-ftp.el (ange-ftp-skip-msgs): Add 500 EPSV (tiny change) diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-08-16 07:13:48 +0000 +++ lisp/ChangeLog 2013-08-16 07:17:33 +0000 @@ -1,3 +1,7 @@ +2013-08-16 William Parsons (tiny change) + + * net/ange-ftp.el (ange-ftp-skip-msgs): Add 500 EPSV. (Bug#1972) + 2013-08-16 Glenn Morris * net/ange-ftp.el (ange-ftp-good-msgs, ange-ftp-get-pwd): === modified file 'lisp/net/ange-ftp.el' --- lisp/net/ange-ftp.el 2013-08-16 07:13:48 +0000 +++ lisp/net/ange-ftp.el 2013-08-16 07:17:33 +0000 @@ -723,7 +723,7 @@ "^504 Unknown security mechanism\\|" "^530 Please login with USER and PASS\\|" ; non kerberized vsFTPd "^534 Kerberos Authentication not enabled\\|" - "^22[789] .*[Pp]assive\\|^200 EPRT\\|^500 .*EPRT") + "^22[789] .*[Pp]assive\\|^200 EPRT\\|^500 .*EPRT\\|^500 .*EPSV") "Regular expression matching FTP messages that can be ignored." :group 'ange-ftp :type 'regexp) ------------------------------------------------------------ revno: 113915 fixes bug: http://debbugs.gnu.org/15058 committer: Glenn Morris branch nick: trunk timestamp: Fri 2013-08-16 00:13:48 -0700 message: * lisp/net/ange-ftp.el (ange-ftp-good-msgs, ange-ftp-get-pwd): Handle "Remote Directory" response of some clients. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-08-16 06:53:41 +0000 +++ lisp/ChangeLog 2013-08-16 07:13:48 +0000 @@ -1,5 +1,8 @@ 2013-08-16 Glenn Morris + * net/ange-ftp.el (ange-ftp-good-msgs, ange-ftp-get-pwd): + Handle "Remote Directory" response of some clients. (Bug#15058) + * emacs-lisp/bytecomp.el (byte-compile-make-variable-buffer-local): Tweak warning. (Bug#14926) === modified file 'lisp/net/ange-ftp.el' --- lisp/net/ange-ftp.el 2013-08-09 21:22:44 +0000 +++ lisp/net/ange-ftp.el 2013-08-16 07:13:48 +0000 @@ -1,7 +1,6 @@ ;;; ange-ftp.el --- transparent FTP support for GNU Emacs -;; Copyright (C) 1989-1996, 1998, 2000-2013 Free Software Foundation, -;; Inc. +;; Copyright (C) 1989-1996, 1998, 2000-2013 Free Software Foundation, Inc. ;; Author: Andy Norman (ange@hplb.hpl.hp.com) ;; Maintainer: FSF @@ -700,7 +699,7 @@ "Regular expression matching the start of a multiline FTP reply.") (defvar ange-ftp-good-msgs - "^220 \\|^230 \\|^226 \\|^25. \\|^221 \\|^200 \\|^[Hh]ash mark" + "^220 \\|^230 \\|^226 \\|^25. \\|^221 \\|^200 \\|^[Hh]ash mark\\|^Remote directory:" "Regular expression matching FTP \"success\" messages.") ;; CMS and the odd VMS machine say 200 Port rather than 200 PORT. @@ -3021,6 +3020,9 @@ (if (car result) (save-match-data (and (or (string-match "\"\\([^\"]*\\)\"" line) + ;; Some clients cache the value and return it in + ;; this way without asking the server. (Bug#15058) + (string-match "^Remote directory: \\(.*\\)" line) (string-match " \\([^ ]+\\) " line)) ; stone-age VMS servers! (setq dir (match-string 1 line))))) (cons dir line))) ------------------------------------------------------------ revno: 113914 fixes bug: http://debbugs.gnu.org/14926 committer: Glenn Morris branch nick: trunk timestamp: Thu 2013-08-15 23:53:41 -0700 message: * bytecomp.el (byte-compile-make-variable-buffer-local): Tweak warning. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-08-16 06:50:58 +0000 +++ lisp/ChangeLog 2013-08-16 06:53:41 +0000 @@ -1,5 +1,8 @@ 2013-08-16 Glenn Morris + * emacs-lisp/bytecomp.el (byte-compile-make-variable-buffer-local): + Tweak warning. (Bug#14926) + * menu-bar.el (send-mail-item-name, read-mail-item-name): Remove. (menu-bar-tools-menu): Simplify news and mail items. (Bug#15095) === modified file 'lisp/emacs-lisp/bytecomp.el' --- lisp/emacs-lisp/bytecomp.el 2013-08-08 01:37:47 +0000 +++ lisp/emacs-lisp/bytecomp.el 2013-08-16 06:53:41 +0000 @@ -4274,7 +4274,7 @@ (if (and (eq (car-safe (car-safe (cdr-safe form))) 'quote) (byte-compile-warning-enabled-p 'make-local)) (byte-compile-warn - "`make-variable-buffer-local' should be called at toplevel")) + "`make-variable-buffer-local' not called at toplevel")) (byte-compile-normal-call form)) (put 'make-variable-buffer-local 'byte-hunk-handler 'byte-compile-form-make-variable-buffer-local)