From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: David Ponce Newsgroups: gmane.emacs.devel Subject: Re: comment-column and goal-column supports to ruler-mode.el Date: Sat, 11 Jan 2003 12:36:57 +0100 Sender: emacs-devel-bounces+emacs-devel=quimby.gnus.org@gnu.org Message-ID: <3E2001D9.3090906@wanadoo.fr> References: <3E075B46007C459C@mel-rta9.wanadoo.fr> (added by postmaster@wanadoo.fr) NNTP-Posting-Host: main.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------010304000605000906080802" X-Trace: main.gmane.org 1042285083 15199 80.91.224.249 (11 Jan 2003 11:38:03 GMT) X-Complaints-To: usenet@main.gmane.org NNTP-Posting-Date: Sat, 11 Jan 2003 11:38:03 +0000 (UTC) Cc: emacs-devel@gnu.org Return-path: Original-Received: from quimby.gnus.org ([80.91.224.244]) by main.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 18XJxf-0003wS-00 for ; Sat, 11 Jan 2003 12:37:59 +0100 Original-Received: from monty-python.gnu.org ([199.232.76.173]) by quimby.gnus.org with esmtp (Exim 3.12 #1 (Debian)) id 18XK49-0003FD-00 for ; Sat, 11 Jan 2003 12:44:41 +0100 Original-Received: from localhost ([127.0.0.1] helo=monty-python.gnu.org) by monty-python.gnu.org with esmtp (Exim 4.10.13) id 18XJud-0000Xo-00 for emacs-devel@quimby.gnus.org; Sat, 11 Jan 2003 06:34:51 -0500 Original-Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.10.13) id 18XJtb-0008GR-00 for emacs-devel@gnu.org; Sat, 11 Jan 2003 06:33:47 -0500 Original-Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.10.13) id 18XJtR-00085X-00 for emacs-devel@gnu.org; Sat, 11 Jan 2003 06:33:41 -0500 Original-Received: from smtp-out-4.wanadoo.fr ([193.252.19.23] helo=mel-rto4.wanadoo.fr) by monty-python.gnu.org with esmtp (Exim 4.10.13) id 18XJsv-0007pp-00; Sat, 11 Jan 2003 06:33:06 -0500 Original-Received: from mel-rta6.wanadoo.fr (193.252.19.26) by mel-rto4.wanadoo.fr (6.7.015) id 3E0C33FD008497C9; Sat, 11 Jan 2003 12:33:02 +0100 Original-Received: from wanadoo.fr (217.128.128.47) by mel-rta6.wanadoo.fr (6.7.015) id 3E075AF7008598EC; Sat, 11 Jan 2003 12:33:02 +0100 User-Agent: Mozilla/5.0 (Windows; U; WinNT4.0; en-US; rv:1.3b) Gecko/20030109 X-Accept-Language: en-us, en Original-To: lektu@terra.es In-Reply-To: Original-cc: rms@gnu.org Original-cc: jet@gyve.org X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1b5 Precedence: list List-Id: Emacs development discussions. List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , Errors-To: emacs-devel-bounces+emacs-devel=quimby.gnus.org@gnu.org Xref: main.gmane.org gmane.emacs.devel:10652 X-Report-Spam: http://spam.gmane.org/gmane.emacs.devel:10652 This is a multi-part message in MIME format. --------------010304000605000906080802 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7Bit Richard Stallman wrote: > I don't know if you need to sign legal paper for that? > > (He already did.) > > Does anyone else have an opinion? > > If you like the changes, that is good enough for me. > > Juanma, would you like to install these changes for Masatake Yamato? > Hi, Attached you will find a new "cleaned" patch for ruler-mode.el. I shortened and fixed some doc strings, and renamed some variable for consistency. I updated version and copyright too. Finally I added a small patch I had for better save/restore of previous header-line-format when enabling/disabling ruler-mode. The updated change log follows. Thanks! David * ruler-mode.el (ruler-mode-comment-column-char) (ruler-mode-goal-column-char) (ruler-mode-set-goal-column-ding-flag) (ruler-mode-mouse-current-grab-object): New variables. (ruler-mode-comment-column-face) (ruler-mode-goal-column-face): New faces. (ruler-mode-mouse-set-fill-column): Removed. (ruler-mode-mouse-grab-any-column) (ruler-mode-mouse-drag-any-column-iteration) (ruler-mode-mouse-drag-any-column): New functions. (ruler-mode-map): [header-line down-mouse-2] Bound to `ruler-mode-mouse-grab-any-column' instead of `ruler-mode-mouse-set-fill-column'. (ruler-mode): Cleanup buffer local variable `header-line-format' if it didn't exist when `ruler-mode' was enabled. (ruler-mode-ruler-help-echo): Updated its value. (ruler-mode-ruler-help-echo-when-goal-column): New help string used when goal-column is already set. (ruler-mode-ruler-help-echo-tab): Renamed to... (ruler-mode-ruler-help-echo-when-tab-stops)): New. (ruler-mode-fill-column-help-echo) (ruler-mode-comment-column-help-echo) (ruler-mode-goal-column-help-echo): New help strings. (ruler-mode-ruler): Use `ruler-mode-ruler-help-echo-when-goal-column' instead of `ruler-mode-ruler-help-echo' if `goal-column' is set. Show `comment-column' and `goal-column'. Echo the different help string for each *-column characters on the ruler. --------------010304000605000906080802 Content-Type: text/x-patch; name="ruler-mode.el.patch" Content-Disposition: inline; filename="ruler-mode.el.patch" Content-Transfer-Encoding: Quoted-Printable Index: ruler-mode.el =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /cvsroot/emacs/emacs/lisp/ruler-mode.el,v retrieving revision 1.9 diff -c -r1.9 ruler-mode.el *** ruler-mode.el 12 Sep 2002 03:21:21 -0000 1.9 --- ruler-mode.el 11 Jan 2003 11:29:52 -0000 *************** *** 1,11 **** ;;; ruler-mode.el --- display a ruler in the header line =20 ! ;; Copyright (C) 2001 Free Software Foundation, Inc. =20 ;; Author: David Ponce ;; Maintainer: David Ponce ;; Created: 24 Mar 2001 ! ;; Version: 1.4 ;; Keywords: convenience =20 ;; This file is part of GNU Emacs. --- 1,11 ---- ;;; ruler-mode.el --- display a ruler in the header line =20 ! ;; Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. =20 ;; Author: David Ponce ;; Maintainer: David Ponce ;; Created: 24 Mar 2001 ! ;; Version: 1.5 ;; Keywords: convenience =20 ;; This file is part of GNU Emacs. *************** *** 30,37 **** ;; This library provides a minor mode to display a ruler in the header ;; line. It works only on Emacs 21. ;; ! ;; You can use the mouse to change the `fill-column', `window-margins' ! ;; and `tab-stop-list' settings: ;; ;; [header-line (shift down-mouse-1)] set left margin to the ruler ;; graduation where the mouse pointer is on. --- 30,37 ---- ;; This library provides a minor mode to display a ruler in the header ;; line. It works only on Emacs 21. ;; ! ;; You can use the mouse to change the `fill-column' `comment-column', ! ;; `goal-column', `window-margins' and `tab-stop-list' settings: ;; ;; [header-line (shift down-mouse-1)] set left margin to the ruler ;; graduation where the mouse pointer is on. *************** *** 39,46 **** ;; [header-line (shift down-mouse-3)] set right margin to the ruler ;; graduation where the mouse pointer is on. ;; ! ;; [header-line down-mouse-2] set `fill-column' to the ruler ! ;; graduation where the mouse pointer is on. ;; ;; [header-line (control down-mouse-1)] add a tab stop to the ruler ;; graduation where the mouse pointer is on. --- 39,46 ---- ;; [header-line (shift down-mouse-3)] set right margin to the ruler ;; graduation where the mouse pointer is on. ;; ! ;; [header-line down-mouse-2] set `fill-column', `comment-column' or ! ;; `goal-column' to the ruler graduation with the mouse dragging. ;; ;; [header-line (control down-mouse-1)] add a tab stop to the ruler ;; graduation where the mouse pointer is on. *************** *** 55,61 **** ;; ;; In the ruler the character `ruler-mode-current-column-char' shows ;; the `current-column' location, `ruler-mode-fill-column-char' shows ! ;; the `fill-column' location and `ruler-mode-tab-stop-char' shows tab ;; stop locations. `window-margins' areas are shown with a different ;; background color. ;; --- 55,63 ---- ;; ;; In the ruler the character `ruler-mode-current-column-char' shows ;; the `current-column' location, `ruler-mode-fill-column-char' shows ! ;; the `fill-column' location, `ruler-mode-comment-column-char' shows ! ;; the `comment-column' location, `ruler-mode-goal-column-char' shows ! ;; the `goal-column' and `ruler-mode-tab-stop-char' shows tab ;; stop locations. `window-margins' areas are shown with a different ;; background color. ;; *************** *** 73,78 **** --- 75,84 ---- ;; - `ruler-mode-default-face' the ruler default face. ;; - `ruler-mode-fill-column-face' the face used to highlight the ;; `fill-column' character. + ;; - `ruler-mode-comment-column-face' the face used to highlight the + ;; `comment-column' character. + ;; - `ruler-mode-goal-column-face' the face used to highlight the + ;; `goal-column' character. ;; - `ruler-mode-current-column-face' the face used to highlight the ;; `current-column' character. ;; - `ruler-mode-tab-stop-face' the face used to highlight tab stop *************** *** 128,134 **** (widget-put widget :error (format "Invalid character value: %S" value)) widget)))) ! =20 (defcustom ruler-mode-fill-column-char (if window-system ?\=B6 ?\|) --- 134,140 ---- (widget-put widget :error (format "Invalid character value: %S" value)) widget)))) !=20 (defcustom ruler-mode-fill-column-char (if window-system ?\=B6 ?\|) *************** *** 139,144 **** --- 145,166 ---- (integer :tag "Integer char value" :validate ruler-mode-character-validate))) =20 + (defcustom ruler-mode-comment-column-char ?\# + "*Character used at the `comment-column' location." + :group 'ruler-mode + :type '(choice + (character :tag "Character") + (integer :tag "Integer char value" + :validate ruler-mode-character-validate))) +=20 + (defcustom ruler-mode-goal-column-char ?G + "*Character used at the `goal-column' location." + :group 'ruler-mode + :type '(choice + (character :tag "Character") + (integer :tag "Integer char value" + :validate ruler-mode-character-validate))) +=20 (defcustom ruler-mode-current-column-char (if window-system ?\=A6 ?\@) *************** *** 180,185 **** --- 202,212 ---- (character :tag "Character") (integer :tag "Integer char value" :validate ruler-mode-character-validate))) +=20 + (defcustom ruler-mode-set-goal-column-ding-flag t + "*Non-nil means do `ding' when `goal-column' is set." + :group 'ruler-mode + :type 'boolean) =0C (defface ruler-mode-default-face '((((type tty)) *************** *** 214,219 **** --- 241,262 ---- "Face used to highlight the fill column character." :group 'ruler-mode) =20 + (defface ruler-mode-comment-column-face + '((t + (:inherit ruler-mode-default-face + :foreground "red" + ))) + "Face used to highlight the comment column character." + :group 'ruler-mode) +=20 + (defface ruler-mode-goal-column-face + '((t + (:inherit ruler-mode-default-face + :foreground "red" + ))) + "Face used to highlight the goal column character." + :group 'ruler-mode) +=20 (defface ruler-mode-tab-stop-face '((t (:inherit ruler-mode-default-face *************** *** 281,307 **** (message "Right margin set to %d (was %d)" rm rm0) (set-window-margins nil lm rm))))) =20 ! (defun ruler-mode-mouse-set-fill-column (start-event) ! "Set `fill-column' to the graduation where the mouse pointer is on. ! START-EVENT is the mouse click event." (interactive "e") (let* ((start (event-start start-event)) (end (event-end start-event)) ! m col w lm rm hs fc) ! (if (eq start end) ;; mouse click ! (save-selected-window ! (select-window (posn-window start)) ! (setq m (window-margins) ! lm (or (car m) 0) ! rm (or (cdr m) 0) ! col (- (car (posn-col-row start)) lm) ! w (window-width) ! hs (window-hscroll) ! fc (+ col hs)) ! (and (>=3D col 0) (< (+ col lm rm) w) ! (progn ! (message "Fill column set to %d (was %d)" fc fill-colu= mn) ! (setq fill-column fc))))))) =0C (defun ruler-mode-mouse-add-tab-stop (start-event) "Add a tab stop to the graduation where the mouse pointer is on. --- 324,441 ---- (message "Right margin set to %d (was %d)" rm rm0) (set-window-margins nil lm rm))))) =20 ! (defvar ruler-mode-mouse-current-grab-object nil ! "Column symbol dragged in the ruler. ! That is `fill-column', `comment-column', `goal-column', or nil when ! nothing is dragged.") !=20 ! (defun ruler-mode-mouse-grab-any-column (start-event) ! "Set a column symbol to the graduation with mouse dragging. ! See also variable `ruler-mode-mouse-current-grab-object'. ! START-EVENT is the mouse down event." (interactive "e") + (setq ruler-mode-mouse-current-grab-object nil) + (let* ((start (event-start start-event)) + m col w lm rm hs newc oldc) + (save-selected-window + (select-window (posn-window start)) + (setq m (window-margins) + lm (or (car m) 0) + rm (or (cdr m) 0) + col (- (car (posn-col-row start)) lm) + w (window-width) + hs (window-hscroll) + newc (+ col hs)) + ;; + ;; About the ways to handle the goal column: + ;; A. update the value of the goal column if goal-column has + ;; non-nil value and if the mouse is dragged + ;; B. set value to the goal column if goal-column has nil and if + ;; the mouse is just clicked, not dragged. + ;; C. unset value to the goal column if goal-column has non-nil + ;; and mouse is just clicked on goal-column character on the + ;; ruler, not dragged. + ;; + (and (>=3D col 0) (< (+ col lm rm) w) + (cond + ((eq newc fill-column) + (setq oldc fill-column) + (setq ruler-mode-mouse-current-grab-object 'fill-column) + t) + ((eq newc comment-column) + (setq oldc comment-column) + (setq ruler-mode-mouse-current-grab-object 'comment-column= ) + t) + ((eq newc goal-column) ; A. update goal column + (setq oldc goal-column) + (setq ruler-mode-mouse-current-grab-object 'goal-column) + t) + ((null goal-column) ; B. set goal column + (setq oldc goal-column) + (setq goal-column newc) + ;; mouse-2 coming AFTER drag-mouse-2 invokes `ding'. + ;; This `ding' flushes the next messages about setting + ;; goal column. So here I force fetch the event(mouse-2) + ;; and throw away. + (read-event) + ;; Ding BEFORE `message' is OK. + (if ruler-mode-set-goal-column-ding-flag + (ding)) + (message + "Goal column %d (click `%s' on the ruler again to unset i= t)" + newc + (propertize (char-to-string ruler-mode-goal-column-char) + 'face 'ruler-mode-goal-column-face)) + ;; don't enter drag iteration + nil)) + (if (eq 'click (ruler-mode-mouse-drag-any-column-iteration + (posn-window start))) + (if (eq 'goal-column ruler-mode-mouse-current-grab-objec= t) + ;; C. unset goal column + (set-goal-column t)) + ;; *-column is updated; report it + (message "%s is set to %d (was %d)" + ruler-mode-mouse-current-grab-object + (eval ruler-mode-mouse-current-grab-object) + oldc)))))) +=20 + (defun ruler-mode-mouse-drag-any-column-iteration (window) + "Update the ruler while dragging the mouse. + WINDOW is the window where the last down-mouse event is occurred. + Return a symbol `drag' if the mouse is actually dragged. + Return a symbol `click' if the mouse is just clicked." + (let (newevent + (drag-count 0)) + (track-mouse + (while (progn + (setq newevent (read-event)) + (mouse-movement-p newevent)) + (setq drag-count (1+ drag-count)) + (if (eq window (posn-window (event-end newevent))) + (progn + (ruler-mode-mouse-drag-any-column newevent) + (force-mode-line-update))))) + (if (and (eq drag-count 0) + (eq 'click (car (event-modifiers newevent)))) + 'click + 'drag))) +=20 + (defun ruler-mode-mouse-drag-any-column (start-event) + "Update the ruler for START-EVENT, one mouse motion event." (let* ((start (event-start start-event)) (end (event-end start-event)) ! m col w lm rm hs newc) ! (save-selected-window ! (select-window (posn-window start)) ! (setq m (window-margins) ! lm (or (car m) 0) ! rm (or (cdr m) 0) ! col (- (car (posn-col-row end)) lm) ! w (window-width) ! hs (window-hscroll) ! newc (+ col hs)) ! (if (and (>=3D col 0) (< (+ col lm rm) w)) ! (set ruler-mode-mouse-current-grab-object newc))))) =0C (defun ruler-mode-mouse-add-tab-stop (start-event) "Add a tab stop to the graduation where the mouse pointer is on. *************** *** 346,352 **** col (- (car (posn-col-row start)) lm) w (window-width) hs (window-hscroll) ! ts (+ col hs)) =20 (and (>=3D col 0) (< (+ col lm rm) w) (member ts tab-stop-list) (progn --- 480,486 ---- col (- (car (posn-col-row start)) lm) w (window-width) hs (window-hscroll) ! ts (+ col hs)) (and (>=3D col 0) (< (+ col lm rm) w) (member ts tab-stop-list) (progn *************** *** 367,373 **** (define-key km [header-line down-mouse-3] #'ignore) (define-key km [header-line down-mouse-2] ! #'ruler-mode-mouse-set-fill-column) (define-key km [header-line (shift down-mouse-1)] #'ruler-mode-mouse-set-left-margin) (define-key km [header-line (shift down-mouse-3)] --- 501,507 ---- (define-key km [header-line down-mouse-3] #'ignore) (define-key km [header-line down-mouse-2] ! #'ruler-mode-mouse-grab-any-column) (define-key km [header-line (shift down-mouse-1)] #'ruler-mode-mouse-set-left-margin) (define-key km [header-line (shift down-mouse-3)] *************** *** 399,435 **** (progn ;; When `ruler-mode' is on save previous header line format ;; and install the ruler header line format. ! (setq ruler-mode-header-line-format-old header-line-format ! header-line-format ruler-mode-header-line-format) (add-hook 'post-command-hook ; add local hook #'force-mode-line-update nil t)) ;; When `ruler-mode' is off restore previous header line format if ;; the current one is the ruler header line format. ! (if (eq header-line-format ruler-mode-header-line-format) ! (setq header-line-format ruler-mode-header-line-format-old)) (remove-hook 'post-command-hook ; remove local hook #'force-mode-line-update t))) =0C ;; Add ruler-mode to the minor mode menu in the mode line (define-key mode-line-mode-menu [ruler-mode] `(menu-item "Ruler" ruler-mode ! :button (:toggle . ruler-mode))) =20 (defconst ruler-mode-ruler-help-echo "\ S-mouse-1/3: set L/R margin, \ ! mouse-2: set fill col, \ C-mouse-2: show tabs" ! "Help string shown when mouse pointer is over the ruler. `ruler-mode-show-tab-stops' is nil.") =20 ! (defconst ruler-mode-ruler-help-echo-tab "\ C-mouse1/3: set/unset tab, \ C-mouse-2: hide tabs" ! "Help string shown when mouse pointer is over the ruler. `ruler-mode-show-tab-stops' is non-nil.") =20 (defconst ruler-mode-left-margin-help-echo "Left margin %S" "Help string shown when mouse is over the left margin area.") --- 533,593 ---- (progn ;; When `ruler-mode' is on save previous header line format ;; and install the ruler header line format. ! (when (local-variable-p 'header-line-format) ! (setq ruler-mode-header-line-format-old header-line-format)) ! (setq header-line-format ruler-mode-header-line-format) (add-hook 'post-command-hook ; add local hook #'force-mode-line-update nil t)) ;; When `ruler-mode' is off restore previous header line format if ;; the current one is the ruler header line format. ! (when (eq header-line-format ruler-mode-header-line-format) ! (kill-local-variable 'header-line-format) ! (when ruler-mode-header-line-format-old ! (setq header-line-format ruler-mode-header-line-format-old))) (remove-hook 'post-command-hook ; remove local hook #'force-mode-line-update t))) =0C ;; Add ruler-mode to the minor mode menu in the mode line (define-key mode-line-mode-menu [ruler-mode] `(menu-item "Ruler" ruler-mode ! :button (:toggle . ruler-mode))) =20 (defconst ruler-mode-ruler-help-echo "\ S-mouse-1/3: set L/R margin, \ ! mouse-2: set goal column, \ C-mouse-2: show tabs" ! "Help string shown when mouse is over the ruler. `ruler-mode-show-tab-stops' is nil.") =20 ! (defconst ruler-mode-ruler-help-echo-when-goal-column ! "\ ! S-mouse-1/3: set L/R margin, \ ! C-mouse-2: show tabs" ! "Help string shown when mouse is over the ruler. ! `goal-column' is set and `ruler-mode-show-tab-stops' is nil.") !=20 ! (defconst ruler-mode-ruler-help-echo-when-tab-stops "\ C-mouse1/3: set/unset tab, \ C-mouse-2: hide tabs" ! "Help string shown when mouse is over the ruler. `ruler-mode-show-tab-stops' is non-nil.") =20 + (defconst ruler-mode-fill-column-help-echo + "drag-mouse-2: set fill column" + "Help string shown when mouse is on the fill column character.") +=20 + (defconst ruler-mode-comment-column-help-echo + "drag-mouse-2: set comment column" + "Help string shown when mouse is on the comment column character.") +=20 + (defconst ruler-mode-goal-column-help-echo + "\ + drag-mouse-2: set goal column, \ + mouse-2: unset goal column" + "Help string shown when mouse is on the goal column character.") +=20 (defconst ruler-mode-left-margin-help-echo "Left margin %S" "Help string shown when mouse is over the left margin area.") *************** *** 452,462 **** "Return the width, measured in columns, of the left vertical scrollba= r." '(if (eq (frame-parameter nil 'vertical-scroll-bars) 'left) (let ((sbw (frame-parameter nil 'scroll-bar-width))) ! ;; nil means it's a non-toolkit scroll bar, ! ;; and its width in columns is 14 pixels rounded up. ! (unless sbw (setq sbw 14)) ! ;; Always round up to multiple of columns. ! (ceiling sbw (frame-char-width))) 0)) =20 (defmacro ruler-mode-right-scroll-bar-cols () --- 610,620 ---- "Return the width, measured in columns, of the left vertical scrollba= r." '(if (eq (frame-parameter nil 'vertical-scroll-bars) 'left) (let ((sbw (frame-parameter nil 'scroll-bar-width))) ! ;; nil means it's a non-toolkit scroll bar, ! ;; and its width in columns is 14 pixels rounded up. ! (unless sbw (setq sbw 14)) ! ;; Always round up to multiple of columns. ! (ceiling sbw (frame-char-width))) 0)) =20 (defmacro ruler-mode-right-scroll-bar-cols () *************** *** 491,500 **** 'face 'ruler-mode-default-face ruler) (put-text-property 0 (length ruler) ! 'help-echo=20 (if ruler-mode-show-tab-stops ! ruler-mode-ruler-help-echo-tab ! ruler-mode-ruler-help-echo) ruler) ;; Setup the local map. (put-text-property 0 (length ruler) --- 649,660 ---- 'face 'ruler-mode-default-face ruler) (put-text-property 0 (length ruler) ! 'help-echo (if ruler-mode-show-tab-stops ! ruler-mode-ruler-help-echo-when-tab-stop= s ! (if goal-column ! ruler-mode-ruler-help-echo-when-goal-c= olumn ! ruler-mode-ruler-help-echo)) ruler) ;; Setup the local map. (put-text-property 0 (length ruler) *************** *** 546,559 **** (while (< i (length ruler)) (aset ruler i ruler-mode-margins-char) (setq i (1+ i))) ! =20 ;; Show the `fill-column' marker. (setq i (- fill-column o)) (and (>=3D i 0) (< i r) (aset ruler i ruler-mode-fill-column-char) ! (put-text-property ! i (1+ i) 'face 'ruler-mode-fill-column-face ! ruler)) =20 ;; Show the `tab-stop-list' markers. (if ruler-mode-show-tab-stops --- 706,749 ---- (while (< i (length ruler)) (aset ruler i ruler-mode-margins-char) (setq i (1+ i))) !=20 ! ;; Show the `goal-column' marker. ! (if goal-column ! (progn ! (setq i (- goal-column o)) ! (and (>=3D i 0) (< i r) ! (aset ruler i ruler-mode-goal-column-char) ! (progn ! (put-text-property ! i (1+ i) 'face 'ruler-mode-goal-column-face ! ruler) ! (put-text-property ! i (1+ i) 'help-echo ruler-mode-goal-column-help-e= cho ! ruler)) ! ))) !=20 ! ;; Show the `comment-column' marker. ! (setq i (- comment-column o)) ! (and (>=3D i 0) (< i r) ! (aset ruler i ruler-mode-comment-column-char) ! (progn ! (put-text-property ! i (1+ i) 'face 'ruler-mode-comment-column-face ! ruler) ! (put-text-property ! i (1+ i) 'help-echo ruler-mode-comment-column-help-echo ! ruler))) !=20 ;; Show the `fill-column' marker. (setq i (- fill-column o)) (and (>=3D i 0) (< i r) (aset ruler i ruler-mode-fill-column-char) ! (progn (put-text-property ! i (1+ i) 'face 'ruler-mode-fill-column-face ! ruler) ! (put-text-property ! i (1+ i) 'help-echo ruler-mode-fill-column-help-ec= ho ! ruler))) =20 ;; Show the `tab-stop-list' markers. (if ruler-mode-show-tab-stops *************** *** 567,575 **** (put-text-property i (1+ i) 'face (cond ! ;; Don't override the fill-column face ((eq ts fill-column) 'ruler-mode-fill-column-face) (t 'ruler-mode-tab-stop-face)) ruler))))) --- 757,769 ---- (put-text-property i (1+ i) 'face (cond ! ;; Don't override the *-column face ((eq ts fill-column) 'ruler-mode-fill-column-face) + ((eq ts comment-column) + 'ruler-mode-comment-column-face) + ((eq ts goal-column) + 'ruler-mode-goal-column-face) (t 'ruler-mode-tab-stop-face)) ruler))))) *************** *** 581,587 **** (put-text-property i (1+ i) 'face 'ruler-mode-current-column-face ruler)) ! =20 ruler))) =20 (provide 'ruler-mode) --- 775,781 ---- (put-text-property i (1+ i) 'face 'ruler-mode-current-column-face ruler)) !=20 ruler))) =20 (provide 'ruler-mode) --------------010304000605000906080802 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit _______________________________________________ Emacs-devel mailing list Emacs-devel@gnu.org http://mail.gnu.org/mailman/listinfo/emacs-devel --------------010304000605000906080802--