# HG changeset patch # User Stefan Monnier # Date 1054672101 0 # Node ID 13588bcc615a49d5db35f0cb1af1cd741d1ed377 # Parent 4c85e6a5a9d2520dbc624d2018a59033de18f99d (Info-fontify-node): Use :align-to display prop. Use `invisible' rather than `display' prop to hide text. diff -r 4c85e6a5a9d2 -r 13588bcc615a lisp/info.el --- a/lisp/info.el Tue Jun 03 19:54:42 2003 +0000 +++ b/lisp/info.el Tue Jun 03 20:28:21 2003 +0000 @@ -2903,33 +2903,40 @@ (set-marker m nil)))) (goto-char (point-min)) - (if (and (search-forward "\n* Menu:" nil t) - (not (string-match "\\" Info-current-node)) - ;; Don't take time to annotate huge menus - (< (- (point-max) (point)) Info-fontify-maximum-menu-size)) - (let ((n 0) - cont) - (while (re-search-forward "^\\* +\\([^:\t\n]*\\)\\(:[^.,:(]*\\(([^)]*)[^.,:]*\\)?[,:.][ \t]*\\)" nil t) - (setq n (1+ n)) - (if (zerop (% n 3)) ; visual aids to help with 1-9 keys - (put-text-property (match-beginning 0) - (1+ (match-beginning 0)) - 'font-lock-face 'info-menu-5)) - (add-text-properties (match-beginning 1) (match-end 1) - '(font-lock-face info-xref - mouse-face highlight - help-echo "mouse-2: go to this node")) - (when (eq Info-hide-note-references t) - (add-text-properties (match-beginning 2) (match-end 2) - (list 'display - (make-string (max 2 (- 22 (- (match-end 1) (match-beginning 1)))) ? ))) - (setq cont (looking-at "[ \t]*[^\n]"))) - (if (eq Info-hide-note-references t) - (while (and (= (forward-line 1) 0) - (looking-at "\\([ \t]+\\)[^*\n]")) - (add-text-properties (match-beginning 1) (match-end 1) - (list 'display (make-string (+ 22 (if cont 4 2)) ? ))) - (setq cont t)))))) + (when (and (search-forward "\n* Menu:" nil t) + (not (string-match "\\" Info-current-node)) + ;; Don't take time to annotate huge menus + (< (- (point-max) (point)) Info-fontify-maximum-menu-size)) + (let ((n 0) + cont) + (while (re-search-forward "^\\* +\\([^:\t\n]*\\)\\(:[^.,:(]*\\(([^)]*)[^.,:]*\\)?[,:.]\\([ \t]*\\)\\)" nil t) + (setq n (1+ n)) + (if (zerop (% n 3)) ; visual aids to help with 1-9 keys + (put-text-property (match-beginning 0) + (1+ (match-beginning 0)) + 'font-lock-face 'info-menu-5)) + (add-text-properties (match-beginning 1) (match-end 1) + '(font-lock-face info-xref + mouse-face highlight + help-echo "mouse-2: go to this node")) + (when (eq Info-hide-note-references t) + (put-text-property (match-beginning 2) (match-beginning 4) + 'invisible t) + ;; We need a stretchable space like :align-to but with + ;; a minimum value. + (put-text-property (match-beginning 4) (match-end 4) 'display + (if (>= 22 (- (match-end 1) + (match-beginning 0))) + '(space :align-to 24) + '(space :width 2))) + (setq cont (looking-at ".")) + (while (and (= (forward-line 1) 0) + (looking-at "\\([ \t]+\\)[^*\n]")) + (put-text-property (match-beginning 1) (match-end 1) 'display + (if cont + '(space :align-to 26) + '(space :align-to 24))) + (setq cont t)))))) (Info-fontify-menu-headers) (set-buffer-modified-p nil)))))