# HG changeset patch # User Katsumi Yamaoka # Date 1266107444 0 # Node ID 40f3f51b5329dc5f7ea0fc5df5ed5e5d2093ce34 # Parent 21e3344fd9bc4c13fb63aee08e36d15f74042ec6# Parent 0811f079d15e7b6f42b1e8469f487bd06ba2ea8f Merge from mainline. diff -r 21e3344fd9bc -r 40f3f51b5329 lisp/ChangeLog --- a/lisp/ChangeLog Sat Feb 13 08:15:10 2010 +0000 +++ b/lisp/ChangeLog Sun Feb 14 00:30:44 2010 +0000 @@ -1,3 +1,15 @@ +2010-02-14 Juri Linkov + + * man.el (Man-fontify-manpage, Man-cleanup-manpage): + Remove remaining ^H with their preceding chars. (Bug#5566) + +2010-02-13 Glenn Morris + + * simple.el (transpose-subr): Give it a doc-string. + + * textmodes/paragraphs.el (transpose-paragraphs, transpose-sentences): + Doc fixes. + 2010-02-12 Juri Linkov * arc-mode.el (archive-unique-fname): Make directories for nested diff -r 21e3344fd9bc -r 40f3f51b5329 lisp/man.el --- a/lisp/man.el Sat Feb 13 08:15:10 2010 +0000 +++ b/lisp/man.el Sun Feb 14 00:30:44 2010 +0000 @@ -1087,6 +1087,11 @@ (while (re-search-forward "[-|]\\(\b[-|]\\)+" nil t) (replace-match "+") (put-text-property (1- (point)) (point) 'face 'bold)) + ;; When the header is longer than the manpage name, groff tries to + ;; condense it to a shorter line interspered with ^H. Remove ^H with + ;; their preceding chars (but don't put Man-overstrike-face). (Bug#5566) + (goto-char (point-min)) + (while (re-search-forward ".\b" nil t) (backward-delete-char 2)) (goto-char (point-min)) ;; Try to recognize common forms of cross references. (Man-highlight-references) @@ -1174,6 +1179,11 @@ )) (goto-char (point-min)) (while (re-search-forward "[-|]\\(\b[-|]\\)+" nil t) (replace-match "+")) + ;; When the header is longer than the manpage name, groff tries to + ;; condense it to a shorter line interspered with ^H. Remove ^H with + ;; their preceding chars (but don't put Man-overstrike-face). (Bug#5566) + (goto-char (point-min)) + (while (re-search-forward ".\b" nil t) (backward-delete-char 2)) (Man-softhyphen-to-minus) (message "%s man page cleaned up" Man-arguments)) diff -r 21e3344fd9bc -r 40f3f51b5329 lisp/simple.el --- a/lisp/simple.el Sat Feb 13 08:15:10 2010 +0000 +++ b/lisp/simple.el Sun Feb 14 00:30:44 2010 +0000 @@ -4854,7 +4854,18 @@ (forward-line arg)))) arg)) +;; FIXME seems to leave point BEFORE the current object when ARG = 0, +;; which seems inconsistent with the ARG /= 0 case. +;; FIXME document SPECIAL. (defun transpose-subr (mover arg &optional special) + "Subroutine to do the work of transposing objects. +Works for lines, sentences, paragraphs, etc. MOVER is a function that +moves forward by units of the given object (e.g. forward-sentence, +forward-paragraph). If ARG is zero, exchanges the current object +with the one containing mark. If ARG is an integer, moves the +current object past ARG following (if ARG is positive) or +preceding (if ARG is negative) objects, leaving point after the +current object." (let ((aux (if special mover (lambda (x) (cons (progn (funcall mover x) (point)) diff -r 21e3344fd9bc -r 40f3f51b5329 lisp/textmodes/paragraphs.el --- a/lisp/textmodes/paragraphs.el Sat Feb 13 08:15:10 2010 +0000 +++ b/lisp/textmodes/paragraphs.el Sun Feb 14 00:30:44 2010 +0000 @@ -1,7 +1,8 @@ ;;; paragraphs.el --- paragraph and sentence parsing ;; Copyright (C) 1985, 1986, 1987, 1991, 1994, 1995, 1996, 1997, 1999, 2000, -;; 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +;; 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 +;; Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: wp @@ -409,7 +410,12 @@ (kill-region (point) (progn (backward-paragraph arg) (point)))) (defun transpose-paragraphs (arg) - "Interchange this (or next) paragraph with previous one." + "Interchange the current paragraph with the next one. +With prefix argument ARG a non-zero integer, moves the current +paragraph past ARG paragraphs, leaving point after the current paragraph. +If ARG is positive, moves the current paragraph forwards, if +ARG is negative moves it backwards. If ARG is zero, exchanges +the current paragraph with the one containing the mark." (interactive "*p") (transpose-subr 'forward-paragraph arg)) @@ -509,7 +515,12 @@ nil t)) (defun transpose-sentences (arg) - "Interchange this (next) and previous sentence." + "Interchange the current sentence with the next one. +With prefix argument ARG a non-zero integer, moves the current +sentence past ARG sentences, leaving point after the current sentence. +If ARG is positive, moves the current sentence forwards, if +ARG is negative moves it backwards. If ARG is zero, exchanges +the current sentence with the one containing the mark." (interactive "*p") (transpose-subr 'forward-sentence arg)) diff -r 21e3344fd9bc -r 40f3f51b5329 src/ChangeLog --- a/src/ChangeLog Sat Feb 13 08:15:10 2010 +0000 +++ b/src/ChangeLog Sun Feb 14 00:30:44 2010 +0000 @@ -1,3 +1,10 @@ +2010-02-13 Jan Djärv + + * xterm.c (x_clear_frame_area): Call gtk_widget_queue_draw if USE_GTK, + bug #5571. + (XTflash): Use Gdk-routines if USE_GTK so scroll bars doesn't get + overdrawn. + 2010-02-10 Jan Djärv * xsmfns.c (x_session_initialize): Move initialization of ice_fd and diff -r 21e3344fd9bc -r 40f3f51b5329 src/xterm.c --- a/src/xterm.c Sat Feb 13 08:15:10 2010 +0000 +++ b/src/xterm.c Sun Feb 14 00:30:44 2010 +0000 @@ -3015,6 +3015,21 @@ BLOCK_INPUT; { +#ifdef USE_GTK + /* Use Gdk routines to draw. This way, we won't draw over scroll bars + when the scroll bars and the edit widget share the same X window. */ + GdkGCValues vals; + vals.foreground.pixel = (FRAME_FOREGROUND_PIXEL (f) + ^ FRAME_BACKGROUND_PIXEL (f)); + vals.function = GDK_XOR; + GdkGC *gc = gdk_gc_new_with_values (FRAME_GTK_WIDGET (f)->window, + &vals, + GDK_GC_FUNCTION + | GDK_GC_FOREGROUND); +#define XFillRectangle(d, win, gc, x, y, w, h) \ + gdk_draw_rectangle (FRAME_GTK_WIDGET (f)->window, \ + gc, TRUE, x, y, w, h) +#else GC gc; /* Create a GC that will use the GXxor function to flip foreground @@ -3029,7 +3044,7 @@ gc = XCreateGC (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f), GCFunction | GCForeground, &values); } - +#endif { /* Get the height not including a menu bar widget. */ int height = FRAME_TEXT_LINES_TO_PIXEL_HEIGHT (f, FRAME_LINES (f)); @@ -3072,6 +3087,7 @@ (height - flash_height - FRAME_INTERNAL_BORDER_WIDTH (f)), width, flash_height); + } else /* If it is short, flash it all. */ @@ -3133,7 +3149,12 @@ flash_left, FRAME_INTERNAL_BORDER_WIDTH (f), width, height - 2 * FRAME_INTERNAL_BORDER_WIDTH (f)); +#ifdef USE_GTK + g_object_unref (G_OBJECT (gc)); +#undef XFillRectangle +#else XFreeGC (FRAME_X_DISPLAY (f), gc); +#endif x_flush (f); } } @@ -7446,6 +7467,11 @@ { x_clear_area (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f), x, y, width, height, False); +#ifdef USE_GTK + /* Must queue a redraw, because scroll bars might have been cleared. */ + if (FRAME_GTK_WIDGET (f)) + gtk_widget_queue_draw (FRAME_GTK_WIDGET (f)); +#endif }