changeset 103308:49bdb788956d

* textmodes/two-column.el (2C-split): Call move-to-column, to compensate for the 2007-10-19 change from next-line to forward-line (Bug#3435). Account for fringe and scroll-bar when setting 2C-window-width.
author Chong Yidong <cyd@stupidchicken.com>
date Thu, 04 Jun 2009 01:11:06 +0000
parents e1566685f778
children 87eafd3e9efc
files lisp/textmodes/two-column.el
diffstat 1 files changed, 12 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/textmodes/two-column.el	Thu Jun 04 01:09:02 2009 +0000
+++ b/lisp/textmodes/two-column.el	Thu Jun 04 01:11:06 2009 +0000
@@ -412,9 +412,9 @@
 	     (erase-buffer))
 	 (signal 'quit nil)))
   (let ((point (point))
-	; make next-line always come back to same column
-	(goal-column (current-column))
-	; a counter for empty lines in other buffer
+	;; make next-line always come back to same column
+	(column (current-column))
+	;; a counter for empty lines in other buffer
 	(n (1- (count-lines (point-min) (point))))
 	chars other)
     (save-excursion
@@ -423,13 +423,17 @@
       (skip-chars-forward " \t" point)
       (make-local-variable '2C-separator)
       (setq 2C-separator (buffer-substring (point) point)
-	    2C-window-width (current-column)))
+	    2C-window-width (+ (fringe-columns 'left)
+			       (fringe-columns 'right)
+			       (scroll-bar-columns 'left)
+			       (scroll-bar-columns 'right)
+			       (current-column))))
     (2C-two-columns)
     (setq other (2C-other))
-    ; now we're ready to actually split
+    ;; now we're ready to actually split
     (save-excursion
       (while (not (eobp))
-	(if (not (and (= (current-column) goal-column)
+	(if (not (and (= (current-column) column)
 		      (string= chars
 			       (buffer-substring (point)
 						 (save-excursion
@@ -448,7 +452,8 @@
 						 (1+ (point)))))
 	  (delete-region point (point))
 	  (setq n 0))
-	(forward-line 1)))))
+	(forward-line 1)
+	(move-to-column column)))))